1 // SPDX-License-Identifier: MIT
2 
3 #ifndef OQS_SIG_PICNIC_H
4 #define OQS_SIG_PICNIC_H
5 
6 #include <oqs/oqs.h>
7 
8 #ifdef OQS_ENABLE_SIG_picnic_L1_FS
9 
10 #define OQS_SIG_picnic_L1_FS_length_public_key 33
11 #define OQS_SIG_picnic_L1_FS_length_secret_key 49
12 #define OQS_SIG_picnic_L1_FS_length_signature 34036
13 
14 OQS_SIG *OQS_SIG_picnic_L1_FS_new(void);
15 
16 OQS_API OQS_STATUS OQS_SIG_picnic_L1_FS_keypair(uint8_t *public_key, uint8_t *secret_key);
17 OQS_API OQS_STATUS OQS_SIG_picnic_L1_FS_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key);
18 OQS_API OQS_STATUS OQS_SIG_picnic_L1_FS_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key);
19 
20 #endif
21 
22 #ifdef OQS_ENABLE_SIG_picnic_L1_UR
23 
24 #define OQS_SIG_picnic_L1_UR_length_public_key 33
25 #define OQS_SIG_picnic_L1_UR_length_secret_key 49
26 #define OQS_SIG_picnic_L1_UR_length_signature 53965
27 
28 OQS_SIG *OQS_SIG_picnic_L1_UR_new(void);
29 
30 OQS_API OQS_STATUS OQS_SIG_picnic_L1_UR_keypair(uint8_t *public_key, uint8_t *secret_key);
31 OQS_API OQS_STATUS OQS_SIG_picnic_L1_UR_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key);
32 OQS_API OQS_STATUS OQS_SIG_picnic_L1_UR_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key);
33 
34 #endif
35 
36 #ifdef OQS_ENABLE_SIG_picnic_L1_full
37 
38 #define OQS_SIG_picnic_L1_full_length_public_key 35
39 #define OQS_SIG_picnic_L1_full_length_secret_key 52
40 #define OQS_SIG_picnic_L1_full_length_signature 32065
41 
42 OQS_SIG *OQS_SIG_picnic_L1_full_new(void);
43 
44 OQS_API OQS_STATUS OQS_SIG_picnic_L1_full_keypair(uint8_t *public_key, uint8_t *secret_key);
45 OQS_API OQS_STATUS OQS_SIG_picnic_L1_full_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key);
46 OQS_API OQS_STATUS OQS_SIG_picnic_L1_full_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key);
47 
48 #endif
49 
50 #ifdef OQS_ENABLE_SIG_picnic_L3_FS
51 
52 #define OQS_SIG_picnic_L3_FS_length_public_key 49
53 #define OQS_SIG_picnic_L3_FS_length_secret_key 73
54 #define OQS_SIG_picnic_L3_FS_length_signature 76776
55 
56 OQS_SIG *OQS_SIG_picnic_L3_FS_new(void);
57 
58 OQS_API OQS_STATUS OQS_SIG_picnic_L3_FS_keypair(uint8_t *public_key, uint8_t *secret_key);
59 OQS_API OQS_STATUS OQS_SIG_picnic_L3_FS_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key);
60 OQS_API OQS_STATUS OQS_SIG_picnic_L3_FS_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key);
61 
62 #endif
63 
64 #ifdef OQS_ENABLE_SIG_picnic_L3_UR
65 
66 #define OQS_SIG_picnic_L3_UR_length_public_key 49
67 #define OQS_SIG_picnic_L3_UR_length_secret_key 73
68 #define OQS_SIG_picnic_L3_UR_length_signature 121849
69 
70 OQS_SIG *OQS_SIG_picnic_L3_UR_new(void);
71 
72 OQS_API OQS_STATUS OQS_SIG_picnic_L3_UR_keypair(uint8_t *public_key, uint8_t *secret_key);
73 OQS_API OQS_STATUS OQS_SIG_picnic_L3_UR_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key);
74 OQS_API OQS_STATUS OQS_SIG_picnic_L3_UR_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key);
75 
76 #endif
77 
78 #ifdef OQS_ENABLE_SIG_picnic_L3_full
79 
80 #define OQS_SIG_picnic_L3_full_length_public_key 49
81 #define OQS_SIG_picnic_L3_full_length_secret_key 73
82 #define OQS_SIG_picnic_L3_full_length_signature 71183
83 
84 OQS_SIG *OQS_SIG_picnic_L3_full_new(void);
85 
86 OQS_API OQS_STATUS OQS_SIG_picnic_L3_full_keypair(uint8_t *public_key, uint8_t *secret_key);
87 OQS_API OQS_STATUS OQS_SIG_picnic_L3_full_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key);
88 OQS_API OQS_STATUS OQS_SIG_picnic_L3_full_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key);
89 
90 #endif
91 
92 #ifdef OQS_ENABLE_SIG_picnic_L5_FS
93 
94 #define OQS_SIG_picnic_L5_FS_length_public_key 65
95 #define OQS_SIG_picnic_L5_FS_length_secret_key 97
96 #define OQS_SIG_picnic_L5_FS_length_signature 132860
97 
98 OQS_SIG *OQS_SIG_picnic_L5_FS_new(void);
99 
100 OQS_API OQS_STATUS OQS_SIG_picnic_L5_FS_keypair(uint8_t *public_key, uint8_t *secret_key);
101 OQS_API OQS_STATUS OQS_SIG_picnic_L5_FS_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key);
102 OQS_API OQS_STATUS OQS_SIG_picnic_L5_FS_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key);
103 
104 #endif
105 
106 #ifdef OQS_ENABLE_SIG_picnic_L5_UR
107 
108 #define OQS_SIG_picnic_L5_UR_length_public_key 65
109 #define OQS_SIG_picnic_L5_UR_length_secret_key 97
110 #define OQS_SIG_picnic_L5_UR_length_signature 209510
111 
112 OQS_SIG *OQS_SIG_picnic_L5_UR_new(void);
113 
114 OQS_API OQS_STATUS OQS_SIG_picnic_L5_UR_keypair(uint8_t *public_key, uint8_t *secret_key);
115 OQS_API OQS_STATUS OQS_SIG_picnic_L5_UR_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key);
116 OQS_API OQS_STATUS OQS_SIG_picnic_L5_UR_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key);
117 
118 #endif
119 
120 #ifdef OQS_ENABLE_SIG_picnic_L5_full
121 
122 #define OQS_SIG_picnic_L5_full_length_public_key 65
123 #define OQS_SIG_picnic_L5_full_length_secret_key 97
124 #define OQS_SIG_picnic_L5_full_length_signature 126290
125 
126 OQS_SIG *OQS_SIG_picnic_L5_full_new(void);
127 
128 OQS_API OQS_STATUS OQS_SIG_picnic_L5_full_keypair(uint8_t *public_key, uint8_t *secret_key);
129 OQS_API OQS_STATUS OQS_SIG_picnic_L5_full_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key);
130 OQS_API OQS_STATUS OQS_SIG_picnic_L5_full_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key);
131 
132 #endif
133 
134 #ifdef OQS_ENABLE_SIG_picnic3_L1
135 
136 #define OQS_SIG_picnic3_L1_length_public_key 35
137 #define OQS_SIG_picnic3_L1_length_secret_key 52
138 #define OQS_SIG_picnic3_L1_length_signature 14612
139 
140 OQS_SIG *OQS_SIG_picnic3_L1_new(void);
141 
142 OQS_API OQS_STATUS OQS_SIG_picnic3_L1_keypair(uint8_t *public_key, uint8_t *secret_key);
143 OQS_API OQS_STATUS OQS_SIG_picnic3_L1_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key);
144 OQS_API OQS_STATUS OQS_SIG_picnic3_L1_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key);
145 
146 #endif
147 
148 #ifdef OQS_ENABLE_SIG_picnic3_L3
149 
150 #define OQS_SIG_picnic3_L3_length_public_key 49
151 #define OQS_SIG_picnic3_L3_length_secret_key 73
152 #define OQS_SIG_picnic3_L3_length_signature 35028
153 
154 OQS_SIG *OQS_SIG_picnic3_L3_new(void);
155 
156 OQS_API OQS_STATUS OQS_SIG_picnic3_L3_keypair(uint8_t *public_key, uint8_t *secret_key);
157 OQS_API OQS_STATUS OQS_SIG_picnic3_L3_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key);
158 OQS_API OQS_STATUS OQS_SIG_picnic3_L3_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key);
159 
160 #endif
161 
162 #ifdef OQS_ENABLE_SIG_picnic3_L5
163 
164 #define OQS_SIG_picnic3_L5_length_public_key 65
165 #define OQS_SIG_picnic3_L5_length_secret_key 97
166 #define OQS_SIG_picnic3_L5_length_signature 61028
167 
168 OQS_SIG *OQS_SIG_picnic3_L5_new(void);
169 
170 OQS_API OQS_STATUS OQS_SIG_picnic3_L5_keypair(uint8_t *public_key, uint8_t *secret_key);
171 OQS_API OQS_STATUS OQS_SIG_picnic3_L5_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key);
172 OQS_API OQS_STATUS OQS_SIG_picnic3_L5_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key);
173 
174 #endif
175 
176 #endif // OQS_SIG_PICNIC_H
177