1 // SPDX-License-Identifier: MIT 2 3 #ifndef OQS_SIG_SPHINCS_H 4 #define OQS_SIG_SPHINCS_H 5 6 #include <oqs/oqs.h> 7 8 #ifdef OQS_ENABLE_SIG_sphincs_haraka_128f_robust 9 #define OQS_SIG_sphincs_haraka_128f_robust_length_public_key 32 10 #define OQS_SIG_sphincs_haraka_128f_robust_length_secret_key 64 11 #define OQS_SIG_sphincs_haraka_128f_robust_length_signature 17088 12 13 OQS_SIG *OQS_SIG_sphincs_haraka_128f_robust_new(void); 14 OQS_API OQS_STATUS OQS_SIG_sphincs_haraka_128f_robust_keypair(uint8_t *public_key, uint8_t *secret_key); 15 OQS_API OQS_STATUS OQS_SIG_sphincs_haraka_128f_robust_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); 16 OQS_API OQS_STATUS OQS_SIG_sphincs_haraka_128f_robust_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); 17 #endif 18 19 #ifdef OQS_ENABLE_SIG_sphincs_haraka_128f_simple 20 #define OQS_SIG_sphincs_haraka_128f_simple_length_public_key 32 21 #define OQS_SIG_sphincs_haraka_128f_simple_length_secret_key 64 22 #define OQS_SIG_sphincs_haraka_128f_simple_length_signature 17088 23 24 OQS_SIG *OQS_SIG_sphincs_haraka_128f_simple_new(void); 25 OQS_API OQS_STATUS OQS_SIG_sphincs_haraka_128f_simple_keypair(uint8_t *public_key, uint8_t *secret_key); 26 OQS_API OQS_STATUS OQS_SIG_sphincs_haraka_128f_simple_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); 27 OQS_API OQS_STATUS OQS_SIG_sphincs_haraka_128f_simple_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); 28 #endif 29 30 #ifdef OQS_ENABLE_SIG_sphincs_haraka_128s_robust 31 #define OQS_SIG_sphincs_haraka_128s_robust_length_public_key 32 32 #define OQS_SIG_sphincs_haraka_128s_robust_length_secret_key 64 33 #define OQS_SIG_sphincs_haraka_128s_robust_length_signature 7856 34 35 OQS_SIG *OQS_SIG_sphincs_haraka_128s_robust_new(void); 36 OQS_API OQS_STATUS OQS_SIG_sphincs_haraka_128s_robust_keypair(uint8_t *public_key, uint8_t *secret_key); 37 OQS_API OQS_STATUS OQS_SIG_sphincs_haraka_128s_robust_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); 38 OQS_API OQS_STATUS OQS_SIG_sphincs_haraka_128s_robust_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); 39 #endif 40 41 #ifdef OQS_ENABLE_SIG_sphincs_haraka_128s_simple 42 #define OQS_SIG_sphincs_haraka_128s_simple_length_public_key 32 43 #define OQS_SIG_sphincs_haraka_128s_simple_length_secret_key 64 44 #define OQS_SIG_sphincs_haraka_128s_simple_length_signature 7856 45 46 OQS_SIG *OQS_SIG_sphincs_haraka_128s_simple_new(void); 47 OQS_API OQS_STATUS OQS_SIG_sphincs_haraka_128s_simple_keypair(uint8_t *public_key, uint8_t *secret_key); 48 OQS_API OQS_STATUS OQS_SIG_sphincs_haraka_128s_simple_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); 49 OQS_API OQS_STATUS OQS_SIG_sphincs_haraka_128s_simple_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); 50 #endif 51 52 #ifdef OQS_ENABLE_SIG_sphincs_haraka_192f_robust 53 #define OQS_SIG_sphincs_haraka_192f_robust_length_public_key 48 54 #define OQS_SIG_sphincs_haraka_192f_robust_length_secret_key 96 55 #define OQS_SIG_sphincs_haraka_192f_robust_length_signature 35664 56 57 OQS_SIG *OQS_SIG_sphincs_haraka_192f_robust_new(void); 58 OQS_API OQS_STATUS OQS_SIG_sphincs_haraka_192f_robust_keypair(uint8_t *public_key, uint8_t *secret_key); 59 OQS_API OQS_STATUS OQS_SIG_sphincs_haraka_192f_robust_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_sphincs_haraka_192f_robust_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); 61 #endif 62 63 #ifdef OQS_ENABLE_SIG_sphincs_haraka_192f_simple 64 #define OQS_SIG_sphincs_haraka_192f_simple_length_public_key 48 65 #define OQS_SIG_sphincs_haraka_192f_simple_length_secret_key 96 66 #define OQS_SIG_sphincs_haraka_192f_simple_length_signature 35664 67 68 OQS_SIG *OQS_SIG_sphincs_haraka_192f_simple_new(void); 69 OQS_API OQS_STATUS OQS_SIG_sphincs_haraka_192f_simple_keypair(uint8_t *public_key, uint8_t *secret_key); 70 OQS_API OQS_STATUS OQS_SIG_sphincs_haraka_192f_simple_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); 71 OQS_API OQS_STATUS OQS_SIG_sphincs_haraka_192f_simple_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); 72 #endif 73 74 #ifdef OQS_ENABLE_SIG_sphincs_haraka_192s_robust 75 #define OQS_SIG_sphincs_haraka_192s_robust_length_public_key 48 76 #define OQS_SIG_sphincs_haraka_192s_robust_length_secret_key 96 77 #define OQS_SIG_sphincs_haraka_192s_robust_length_signature 16224 78 79 OQS_SIG *OQS_SIG_sphincs_haraka_192s_robust_new(void); 80 OQS_API OQS_STATUS OQS_SIG_sphincs_haraka_192s_robust_keypair(uint8_t *public_key, uint8_t *secret_key); 81 OQS_API OQS_STATUS OQS_SIG_sphincs_haraka_192s_robust_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); 82 OQS_API OQS_STATUS OQS_SIG_sphincs_haraka_192s_robust_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); 83 #endif 84 85 #ifdef OQS_ENABLE_SIG_sphincs_haraka_192s_simple 86 #define OQS_SIG_sphincs_haraka_192s_simple_length_public_key 48 87 #define OQS_SIG_sphincs_haraka_192s_simple_length_secret_key 96 88 #define OQS_SIG_sphincs_haraka_192s_simple_length_signature 16224 89 90 OQS_SIG *OQS_SIG_sphincs_haraka_192s_simple_new(void); 91 OQS_API OQS_STATUS OQS_SIG_sphincs_haraka_192s_simple_keypair(uint8_t *public_key, uint8_t *secret_key); 92 OQS_API OQS_STATUS OQS_SIG_sphincs_haraka_192s_simple_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); 93 OQS_API OQS_STATUS OQS_SIG_sphincs_haraka_192s_simple_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); 94 #endif 95 96 #ifdef OQS_ENABLE_SIG_sphincs_haraka_256f_robust 97 #define OQS_SIG_sphincs_haraka_256f_robust_length_public_key 64 98 #define OQS_SIG_sphincs_haraka_256f_robust_length_secret_key 128 99 #define OQS_SIG_sphincs_haraka_256f_robust_length_signature 49856 100 101 OQS_SIG *OQS_SIG_sphincs_haraka_256f_robust_new(void); 102 OQS_API OQS_STATUS OQS_SIG_sphincs_haraka_256f_robust_keypair(uint8_t *public_key, uint8_t *secret_key); 103 OQS_API OQS_STATUS OQS_SIG_sphincs_haraka_256f_robust_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); 104 OQS_API OQS_STATUS OQS_SIG_sphincs_haraka_256f_robust_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); 105 #endif 106 107 #ifdef OQS_ENABLE_SIG_sphincs_haraka_256f_simple 108 #define OQS_SIG_sphincs_haraka_256f_simple_length_public_key 64 109 #define OQS_SIG_sphincs_haraka_256f_simple_length_secret_key 128 110 #define OQS_SIG_sphincs_haraka_256f_simple_length_signature 49856 111 112 OQS_SIG *OQS_SIG_sphincs_haraka_256f_simple_new(void); 113 OQS_API OQS_STATUS OQS_SIG_sphincs_haraka_256f_simple_keypair(uint8_t *public_key, uint8_t *secret_key); 114 OQS_API OQS_STATUS OQS_SIG_sphincs_haraka_256f_simple_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); 115 OQS_API OQS_STATUS OQS_SIG_sphincs_haraka_256f_simple_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); 116 #endif 117 118 #ifdef OQS_ENABLE_SIG_sphincs_haraka_256s_robust 119 #define OQS_SIG_sphincs_haraka_256s_robust_length_public_key 64 120 #define OQS_SIG_sphincs_haraka_256s_robust_length_secret_key 128 121 #define OQS_SIG_sphincs_haraka_256s_robust_length_signature 29792 122 123 OQS_SIG *OQS_SIG_sphincs_haraka_256s_robust_new(void); 124 OQS_API OQS_STATUS OQS_SIG_sphincs_haraka_256s_robust_keypair(uint8_t *public_key, uint8_t *secret_key); 125 OQS_API OQS_STATUS OQS_SIG_sphincs_haraka_256s_robust_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); 126 OQS_API OQS_STATUS OQS_SIG_sphincs_haraka_256s_robust_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); 127 #endif 128 129 #ifdef OQS_ENABLE_SIG_sphincs_haraka_256s_simple 130 #define OQS_SIG_sphincs_haraka_256s_simple_length_public_key 64 131 #define OQS_SIG_sphincs_haraka_256s_simple_length_secret_key 128 132 #define OQS_SIG_sphincs_haraka_256s_simple_length_signature 29792 133 134 OQS_SIG *OQS_SIG_sphincs_haraka_256s_simple_new(void); 135 OQS_API OQS_STATUS OQS_SIG_sphincs_haraka_256s_simple_keypair(uint8_t *public_key, uint8_t *secret_key); 136 OQS_API OQS_STATUS OQS_SIG_sphincs_haraka_256s_simple_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); 137 OQS_API OQS_STATUS OQS_SIG_sphincs_haraka_256s_simple_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); 138 #endif 139 140 #ifdef OQS_ENABLE_SIG_sphincs_sha256_128f_robust 141 #define OQS_SIG_sphincs_sha256_128f_robust_length_public_key 32 142 #define OQS_SIG_sphincs_sha256_128f_robust_length_secret_key 64 143 #define OQS_SIG_sphincs_sha256_128f_robust_length_signature 17088 144 145 OQS_SIG *OQS_SIG_sphincs_sha256_128f_robust_new(void); 146 OQS_API OQS_STATUS OQS_SIG_sphincs_sha256_128f_robust_keypair(uint8_t *public_key, uint8_t *secret_key); 147 OQS_API OQS_STATUS OQS_SIG_sphincs_sha256_128f_robust_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); 148 OQS_API OQS_STATUS OQS_SIG_sphincs_sha256_128f_robust_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); 149 #endif 150 151 #ifdef OQS_ENABLE_SIG_sphincs_sha256_128f_simple 152 #define OQS_SIG_sphincs_sha256_128f_simple_length_public_key 32 153 #define OQS_SIG_sphincs_sha256_128f_simple_length_secret_key 64 154 #define OQS_SIG_sphincs_sha256_128f_simple_length_signature 17088 155 156 OQS_SIG *OQS_SIG_sphincs_sha256_128f_simple_new(void); 157 OQS_API OQS_STATUS OQS_SIG_sphincs_sha256_128f_simple_keypair(uint8_t *public_key, uint8_t *secret_key); 158 OQS_API OQS_STATUS OQS_SIG_sphincs_sha256_128f_simple_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); 159 OQS_API OQS_STATUS OQS_SIG_sphincs_sha256_128f_simple_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); 160 #endif 161 162 #ifdef OQS_ENABLE_SIG_sphincs_sha256_128s_robust 163 #define OQS_SIG_sphincs_sha256_128s_robust_length_public_key 32 164 #define OQS_SIG_sphincs_sha256_128s_robust_length_secret_key 64 165 #define OQS_SIG_sphincs_sha256_128s_robust_length_signature 7856 166 167 OQS_SIG *OQS_SIG_sphincs_sha256_128s_robust_new(void); 168 OQS_API OQS_STATUS OQS_SIG_sphincs_sha256_128s_robust_keypair(uint8_t *public_key, uint8_t *secret_key); 169 OQS_API OQS_STATUS OQS_SIG_sphincs_sha256_128s_robust_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); 170 OQS_API OQS_STATUS OQS_SIG_sphincs_sha256_128s_robust_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); 171 #endif 172 173 #ifdef OQS_ENABLE_SIG_sphincs_sha256_128s_simple 174 #define OQS_SIG_sphincs_sha256_128s_simple_length_public_key 32 175 #define OQS_SIG_sphincs_sha256_128s_simple_length_secret_key 64 176 #define OQS_SIG_sphincs_sha256_128s_simple_length_signature 7856 177 178 OQS_SIG *OQS_SIG_sphincs_sha256_128s_simple_new(void); 179 OQS_API OQS_STATUS OQS_SIG_sphincs_sha256_128s_simple_keypair(uint8_t *public_key, uint8_t *secret_key); 180 OQS_API OQS_STATUS OQS_SIG_sphincs_sha256_128s_simple_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); 181 OQS_API OQS_STATUS OQS_SIG_sphincs_sha256_128s_simple_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); 182 #endif 183 184 #ifdef OQS_ENABLE_SIG_sphincs_sha256_192f_robust 185 #define OQS_SIG_sphincs_sha256_192f_robust_length_public_key 48 186 #define OQS_SIG_sphincs_sha256_192f_robust_length_secret_key 96 187 #define OQS_SIG_sphincs_sha256_192f_robust_length_signature 35664 188 189 OQS_SIG *OQS_SIG_sphincs_sha256_192f_robust_new(void); 190 OQS_API OQS_STATUS OQS_SIG_sphincs_sha256_192f_robust_keypair(uint8_t *public_key, uint8_t *secret_key); 191 OQS_API OQS_STATUS OQS_SIG_sphincs_sha256_192f_robust_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); 192 OQS_API OQS_STATUS OQS_SIG_sphincs_sha256_192f_robust_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); 193 #endif 194 195 #ifdef OQS_ENABLE_SIG_sphincs_sha256_192f_simple 196 #define OQS_SIG_sphincs_sha256_192f_simple_length_public_key 48 197 #define OQS_SIG_sphincs_sha256_192f_simple_length_secret_key 96 198 #define OQS_SIG_sphincs_sha256_192f_simple_length_signature 35664 199 200 OQS_SIG *OQS_SIG_sphincs_sha256_192f_simple_new(void); 201 OQS_API OQS_STATUS OQS_SIG_sphincs_sha256_192f_simple_keypair(uint8_t *public_key, uint8_t *secret_key); 202 OQS_API OQS_STATUS OQS_SIG_sphincs_sha256_192f_simple_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); 203 OQS_API OQS_STATUS OQS_SIG_sphincs_sha256_192f_simple_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); 204 #endif 205 206 #ifdef OQS_ENABLE_SIG_sphincs_sha256_192s_robust 207 #define OQS_SIG_sphincs_sha256_192s_robust_length_public_key 48 208 #define OQS_SIG_sphincs_sha256_192s_robust_length_secret_key 96 209 #define OQS_SIG_sphincs_sha256_192s_robust_length_signature 16224 210 211 OQS_SIG *OQS_SIG_sphincs_sha256_192s_robust_new(void); 212 OQS_API OQS_STATUS OQS_SIG_sphincs_sha256_192s_robust_keypair(uint8_t *public_key, uint8_t *secret_key); 213 OQS_API OQS_STATUS OQS_SIG_sphincs_sha256_192s_robust_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); 214 OQS_API OQS_STATUS OQS_SIG_sphincs_sha256_192s_robust_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); 215 #endif 216 217 #ifdef OQS_ENABLE_SIG_sphincs_sha256_192s_simple 218 #define OQS_SIG_sphincs_sha256_192s_simple_length_public_key 48 219 #define OQS_SIG_sphincs_sha256_192s_simple_length_secret_key 96 220 #define OQS_SIG_sphincs_sha256_192s_simple_length_signature 16224 221 222 OQS_SIG *OQS_SIG_sphincs_sha256_192s_simple_new(void); 223 OQS_API OQS_STATUS OQS_SIG_sphincs_sha256_192s_simple_keypair(uint8_t *public_key, uint8_t *secret_key); 224 OQS_API OQS_STATUS OQS_SIG_sphincs_sha256_192s_simple_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); 225 OQS_API OQS_STATUS OQS_SIG_sphincs_sha256_192s_simple_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); 226 #endif 227 228 #ifdef OQS_ENABLE_SIG_sphincs_sha256_256f_robust 229 #define OQS_SIG_sphincs_sha256_256f_robust_length_public_key 64 230 #define OQS_SIG_sphincs_sha256_256f_robust_length_secret_key 128 231 #define OQS_SIG_sphincs_sha256_256f_robust_length_signature 49856 232 233 OQS_SIG *OQS_SIG_sphincs_sha256_256f_robust_new(void); 234 OQS_API OQS_STATUS OQS_SIG_sphincs_sha256_256f_robust_keypair(uint8_t *public_key, uint8_t *secret_key); 235 OQS_API OQS_STATUS OQS_SIG_sphincs_sha256_256f_robust_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); 236 OQS_API OQS_STATUS OQS_SIG_sphincs_sha256_256f_robust_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); 237 #endif 238 239 #ifdef OQS_ENABLE_SIG_sphincs_sha256_256f_simple 240 #define OQS_SIG_sphincs_sha256_256f_simple_length_public_key 64 241 #define OQS_SIG_sphincs_sha256_256f_simple_length_secret_key 128 242 #define OQS_SIG_sphincs_sha256_256f_simple_length_signature 49856 243 244 OQS_SIG *OQS_SIG_sphincs_sha256_256f_simple_new(void); 245 OQS_API OQS_STATUS OQS_SIG_sphincs_sha256_256f_simple_keypair(uint8_t *public_key, uint8_t *secret_key); 246 OQS_API OQS_STATUS OQS_SIG_sphincs_sha256_256f_simple_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); 247 OQS_API OQS_STATUS OQS_SIG_sphincs_sha256_256f_simple_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); 248 #endif 249 250 #ifdef OQS_ENABLE_SIG_sphincs_sha256_256s_robust 251 #define OQS_SIG_sphincs_sha256_256s_robust_length_public_key 64 252 #define OQS_SIG_sphincs_sha256_256s_robust_length_secret_key 128 253 #define OQS_SIG_sphincs_sha256_256s_robust_length_signature 29792 254 255 OQS_SIG *OQS_SIG_sphincs_sha256_256s_robust_new(void); 256 OQS_API OQS_STATUS OQS_SIG_sphincs_sha256_256s_robust_keypair(uint8_t *public_key, uint8_t *secret_key); 257 OQS_API OQS_STATUS OQS_SIG_sphincs_sha256_256s_robust_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); 258 OQS_API OQS_STATUS OQS_SIG_sphincs_sha256_256s_robust_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); 259 #endif 260 261 #ifdef OQS_ENABLE_SIG_sphincs_sha256_256s_simple 262 #define OQS_SIG_sphincs_sha256_256s_simple_length_public_key 64 263 #define OQS_SIG_sphincs_sha256_256s_simple_length_secret_key 128 264 #define OQS_SIG_sphincs_sha256_256s_simple_length_signature 29792 265 266 OQS_SIG *OQS_SIG_sphincs_sha256_256s_simple_new(void); 267 OQS_API OQS_STATUS OQS_SIG_sphincs_sha256_256s_simple_keypair(uint8_t *public_key, uint8_t *secret_key); 268 OQS_API OQS_STATUS OQS_SIG_sphincs_sha256_256s_simple_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); 269 OQS_API OQS_STATUS OQS_SIG_sphincs_sha256_256s_simple_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); 270 #endif 271 272 #ifdef OQS_ENABLE_SIG_sphincs_shake256_128f_robust 273 #define OQS_SIG_sphincs_shake256_128f_robust_length_public_key 32 274 #define OQS_SIG_sphincs_shake256_128f_robust_length_secret_key 64 275 #define OQS_SIG_sphincs_shake256_128f_robust_length_signature 17088 276 277 OQS_SIG *OQS_SIG_sphincs_shake256_128f_robust_new(void); 278 OQS_API OQS_STATUS OQS_SIG_sphincs_shake256_128f_robust_keypair(uint8_t *public_key, uint8_t *secret_key); 279 OQS_API OQS_STATUS OQS_SIG_sphincs_shake256_128f_robust_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); 280 OQS_API OQS_STATUS OQS_SIG_sphincs_shake256_128f_robust_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); 281 #endif 282 283 #ifdef OQS_ENABLE_SIG_sphincs_shake256_128f_simple 284 #define OQS_SIG_sphincs_shake256_128f_simple_length_public_key 32 285 #define OQS_SIG_sphincs_shake256_128f_simple_length_secret_key 64 286 #define OQS_SIG_sphincs_shake256_128f_simple_length_signature 17088 287 288 OQS_SIG *OQS_SIG_sphincs_shake256_128f_simple_new(void); 289 OQS_API OQS_STATUS OQS_SIG_sphincs_shake256_128f_simple_keypair(uint8_t *public_key, uint8_t *secret_key); 290 OQS_API OQS_STATUS OQS_SIG_sphincs_shake256_128f_simple_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); 291 OQS_API OQS_STATUS OQS_SIG_sphincs_shake256_128f_simple_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); 292 #endif 293 294 #ifdef OQS_ENABLE_SIG_sphincs_shake256_128s_robust 295 #define OQS_SIG_sphincs_shake256_128s_robust_length_public_key 32 296 #define OQS_SIG_sphincs_shake256_128s_robust_length_secret_key 64 297 #define OQS_SIG_sphincs_shake256_128s_robust_length_signature 7856 298 299 OQS_SIG *OQS_SIG_sphincs_shake256_128s_robust_new(void); 300 OQS_API OQS_STATUS OQS_SIG_sphincs_shake256_128s_robust_keypair(uint8_t *public_key, uint8_t *secret_key); 301 OQS_API OQS_STATUS OQS_SIG_sphincs_shake256_128s_robust_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); 302 OQS_API OQS_STATUS OQS_SIG_sphincs_shake256_128s_robust_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); 303 #endif 304 305 #ifdef OQS_ENABLE_SIG_sphincs_shake256_128s_simple 306 #define OQS_SIG_sphincs_shake256_128s_simple_length_public_key 32 307 #define OQS_SIG_sphincs_shake256_128s_simple_length_secret_key 64 308 #define OQS_SIG_sphincs_shake256_128s_simple_length_signature 7856 309 310 OQS_SIG *OQS_SIG_sphincs_shake256_128s_simple_new(void); 311 OQS_API OQS_STATUS OQS_SIG_sphincs_shake256_128s_simple_keypair(uint8_t *public_key, uint8_t *secret_key); 312 OQS_API OQS_STATUS OQS_SIG_sphincs_shake256_128s_simple_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); 313 OQS_API OQS_STATUS OQS_SIG_sphincs_shake256_128s_simple_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); 314 #endif 315 316 #ifdef OQS_ENABLE_SIG_sphincs_shake256_192f_robust 317 #define OQS_SIG_sphincs_shake256_192f_robust_length_public_key 48 318 #define OQS_SIG_sphincs_shake256_192f_robust_length_secret_key 96 319 #define OQS_SIG_sphincs_shake256_192f_robust_length_signature 35664 320 321 OQS_SIG *OQS_SIG_sphincs_shake256_192f_robust_new(void); 322 OQS_API OQS_STATUS OQS_SIG_sphincs_shake256_192f_robust_keypair(uint8_t *public_key, uint8_t *secret_key); 323 OQS_API OQS_STATUS OQS_SIG_sphincs_shake256_192f_robust_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); 324 OQS_API OQS_STATUS OQS_SIG_sphincs_shake256_192f_robust_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); 325 #endif 326 327 #ifdef OQS_ENABLE_SIG_sphincs_shake256_192f_simple 328 #define OQS_SIG_sphincs_shake256_192f_simple_length_public_key 48 329 #define OQS_SIG_sphincs_shake256_192f_simple_length_secret_key 96 330 #define OQS_SIG_sphincs_shake256_192f_simple_length_signature 35664 331 332 OQS_SIG *OQS_SIG_sphincs_shake256_192f_simple_new(void); 333 OQS_API OQS_STATUS OQS_SIG_sphincs_shake256_192f_simple_keypair(uint8_t *public_key, uint8_t *secret_key); 334 OQS_API OQS_STATUS OQS_SIG_sphincs_shake256_192f_simple_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); 335 OQS_API OQS_STATUS OQS_SIG_sphincs_shake256_192f_simple_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); 336 #endif 337 338 #ifdef OQS_ENABLE_SIG_sphincs_shake256_192s_robust 339 #define OQS_SIG_sphincs_shake256_192s_robust_length_public_key 48 340 #define OQS_SIG_sphincs_shake256_192s_robust_length_secret_key 96 341 #define OQS_SIG_sphincs_shake256_192s_robust_length_signature 16224 342 343 OQS_SIG *OQS_SIG_sphincs_shake256_192s_robust_new(void); 344 OQS_API OQS_STATUS OQS_SIG_sphincs_shake256_192s_robust_keypair(uint8_t *public_key, uint8_t *secret_key); 345 OQS_API OQS_STATUS OQS_SIG_sphincs_shake256_192s_robust_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); 346 OQS_API OQS_STATUS OQS_SIG_sphincs_shake256_192s_robust_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); 347 #endif 348 349 #ifdef OQS_ENABLE_SIG_sphincs_shake256_192s_simple 350 #define OQS_SIG_sphincs_shake256_192s_simple_length_public_key 48 351 #define OQS_SIG_sphincs_shake256_192s_simple_length_secret_key 96 352 #define OQS_SIG_sphincs_shake256_192s_simple_length_signature 16224 353 354 OQS_SIG *OQS_SIG_sphincs_shake256_192s_simple_new(void); 355 OQS_API OQS_STATUS OQS_SIG_sphincs_shake256_192s_simple_keypair(uint8_t *public_key, uint8_t *secret_key); 356 OQS_API OQS_STATUS OQS_SIG_sphincs_shake256_192s_simple_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); 357 OQS_API OQS_STATUS OQS_SIG_sphincs_shake256_192s_simple_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); 358 #endif 359 360 #ifdef OQS_ENABLE_SIG_sphincs_shake256_256f_robust 361 #define OQS_SIG_sphincs_shake256_256f_robust_length_public_key 64 362 #define OQS_SIG_sphincs_shake256_256f_robust_length_secret_key 128 363 #define OQS_SIG_sphincs_shake256_256f_robust_length_signature 49856 364 365 OQS_SIG *OQS_SIG_sphincs_shake256_256f_robust_new(void); 366 OQS_API OQS_STATUS OQS_SIG_sphincs_shake256_256f_robust_keypair(uint8_t *public_key, uint8_t *secret_key); 367 OQS_API OQS_STATUS OQS_SIG_sphincs_shake256_256f_robust_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); 368 OQS_API OQS_STATUS OQS_SIG_sphincs_shake256_256f_robust_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); 369 #endif 370 371 #ifdef OQS_ENABLE_SIG_sphincs_shake256_256f_simple 372 #define OQS_SIG_sphincs_shake256_256f_simple_length_public_key 64 373 #define OQS_SIG_sphincs_shake256_256f_simple_length_secret_key 128 374 #define OQS_SIG_sphincs_shake256_256f_simple_length_signature 49856 375 376 OQS_SIG *OQS_SIG_sphincs_shake256_256f_simple_new(void); 377 OQS_API OQS_STATUS OQS_SIG_sphincs_shake256_256f_simple_keypair(uint8_t *public_key, uint8_t *secret_key); 378 OQS_API OQS_STATUS OQS_SIG_sphincs_shake256_256f_simple_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); 379 OQS_API OQS_STATUS OQS_SIG_sphincs_shake256_256f_simple_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); 380 #endif 381 382 #ifdef OQS_ENABLE_SIG_sphincs_shake256_256s_robust 383 #define OQS_SIG_sphincs_shake256_256s_robust_length_public_key 64 384 #define OQS_SIG_sphincs_shake256_256s_robust_length_secret_key 128 385 #define OQS_SIG_sphincs_shake256_256s_robust_length_signature 29792 386 387 OQS_SIG *OQS_SIG_sphincs_shake256_256s_robust_new(void); 388 OQS_API OQS_STATUS OQS_SIG_sphincs_shake256_256s_robust_keypair(uint8_t *public_key, uint8_t *secret_key); 389 OQS_API OQS_STATUS OQS_SIG_sphincs_shake256_256s_robust_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); 390 OQS_API OQS_STATUS OQS_SIG_sphincs_shake256_256s_robust_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); 391 #endif 392 393 #ifdef OQS_ENABLE_SIG_sphincs_shake256_256s_simple 394 #define OQS_SIG_sphincs_shake256_256s_simple_length_public_key 64 395 #define OQS_SIG_sphincs_shake256_256s_simple_length_secret_key 128 396 #define OQS_SIG_sphincs_shake256_256s_simple_length_signature 29792 397 398 OQS_SIG *OQS_SIG_sphincs_shake256_256s_simple_new(void); 399 OQS_API OQS_STATUS OQS_SIG_sphincs_shake256_256s_simple_keypair(uint8_t *public_key, uint8_t *secret_key); 400 OQS_API OQS_STATUS OQS_SIG_sphincs_shake256_256s_simple_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); 401 OQS_API OQS_STATUS OQS_SIG_sphincs_shake256_256s_simple_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); 402 #endif 403 404 #endif 405