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