diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/regress/lib/libcrypto/mlkem/mlkem_unittest.c | 31 |
1 files changed, 26 insertions, 5 deletions
diff --git a/src/regress/lib/libcrypto/mlkem/mlkem_unittest.c b/src/regress/lib/libcrypto/mlkem/mlkem_unittest.c index 3f7e2886b9..23b3d8b261 100644 --- a/src/regress/lib/libcrypto/mlkem/mlkem_unittest.c +++ b/src/regress/lib/libcrypto/mlkem/mlkem_unittest.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: mlkem_unittest.c,v 1.5 2024/12/26 00:04:24 tb Exp $ */ | 1 | /* $OpenBSD: mlkem_unittest.c,v 1.6 2024/12/26 12:35:25 tb Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2024 Google Inc. | 3 | * Copyright (c) 2024 Google Inc. |
| 4 | * Copyright (c) 2024 Bob Beck <beck@obtuse.com> | 4 | * Copyright (c) 2024 Bob Beck <beck@obtuse.com> |
| @@ -182,8 +182,8 @@ MlKemUnitTest(struct unittest_ctx *ctx) | |||
| 182 | return failed; | 182 | return failed; |
| 183 | } | 183 | } |
| 184 | 184 | ||
| 185 | int | 185 | static int |
| 186 | main(void) | 186 | mlkem768_unittest(void) |
| 187 | { | 187 | { |
| 188 | struct MLKEM768_private_key mlkem768_priv, mlkem768_priv2; | 188 | struct MLKEM768_private_key mlkem768_priv, mlkem768_priv2; |
| 189 | struct MLKEM768_public_key mlkem768_pub, mlkem768_pub2; | 189 | struct MLKEM768_public_key mlkem768_pub, mlkem768_pub2; |
| @@ -207,6 +207,13 @@ main(void) | |||
| 207 | .encode_public_key = mlkem768_encode_public_key, | 207 | .encode_public_key = mlkem768_encode_public_key, |
| 208 | .public_from_private = mlkem768_public_from_private, | 208 | .public_from_private = mlkem768_public_from_private, |
| 209 | }; | 209 | }; |
| 210 | |||
| 211 | return MlKemUnitTest(&mlkem768_test); | ||
| 212 | } | ||
| 213 | |||
| 214 | static int | ||
| 215 | mlkem1024_unittest(void) | ||
| 216 | { | ||
| 210 | struct MLKEM1024_private_key mlkem1024_priv, mlkem1024_priv2; | 217 | struct MLKEM1024_private_key mlkem1024_priv, mlkem1024_priv2; |
| 211 | struct MLKEM1024_public_key mlkem1024_pub, mlkem1024_pub2; | 218 | struct MLKEM1024_public_key mlkem1024_pub, mlkem1024_pub2; |
| 212 | uint8_t mlkem1024_encoded_public_key[MLKEM1024_PUBLIC_KEY_BYTES]; | 219 | uint8_t mlkem1024_encoded_public_key[MLKEM1024_PUBLIC_KEY_BYTES]; |
| @@ -229,10 +236,24 @@ main(void) | |||
| 229 | .encode_public_key = mlkem1024_encode_public_key, | 236 | .encode_public_key = mlkem1024_encode_public_key, |
| 230 | .public_from_private = mlkem1024_public_from_private, | 237 | .public_from_private = mlkem1024_public_from_private, |
| 231 | }; | 238 | }; |
| 239 | |||
| 240 | return MlKemUnitTest(&mlkem1024_test); | ||
| 241 | } | ||
| 242 | |||
| 243 | int | ||
| 244 | main(void) | ||
| 245 | { | ||
| 232 | int failed = 0; | 246 | int failed = 0; |
| 233 | 247 | ||
| 234 | failed |= MlKemUnitTest(&mlkem768_test); | 248 | /* |
| 235 | failed |= MlKemUnitTest(&mlkem1024_test); | 249 | * XXX - this is split into two helper functions since having a few |
| 250 | * ML-KEM key blobs on the stack makes Emscripten's stack explode, | ||
| 251 | * leading to inscrutable silent failures unles ASAN is enabled. | ||
| 252 | * Go figure. | ||
| 253 | */ | ||
| 254 | |||
| 255 | failed |= mlkem768_unittest(); | ||
| 256 | failed |= mlkem1024_unittest(); | ||
| 236 | 257 | ||
| 237 | return failed; | 258 | return failed; |
| 238 | } | 259 | } |
