|
36 | 36 |
|
37 | 37 | #include "../../crypto/fipsmodule/evp/internal.h" |
38 | 38 | #include "../../crypto/fipsmodule/kem/internal.h" |
| 39 | +#include "../../crypto/fipsmodule/pqdsa/internal.h" |
39 | 40 | #include "../../crypto/fipsmodule/rand/internal.h" |
40 | 41 | #include "../../crypto/internal.h" |
41 | 42 |
|
@@ -431,18 +432,33 @@ int main(int argc, char **argv) { |
431 | 432 |
|
432 | 433 | /* ML-KEM */ |
433 | 434 | printf("About to Generate ML-KEM key\n"); |
434 | | - EVP_PKEY *raw = NULL; |
435 | | - EVP_PKEY_CTX *ctx = EVP_PKEY_CTX_new_id(EVP_PKEY_KEM, NULL); |
436 | | - if (ctx == NULL || !EVP_PKEY_CTX_kem_set_params(ctx, NID_MLKEM512) || |
437 | | - !EVP_PKEY_keygen_init(ctx) || |
438 | | - !EVP_PKEY_keygen(ctx, &raw)) { |
| 435 | + EVP_PKEY *kem_raw = NULL; |
| 436 | + EVP_PKEY_CTX *kem_ctx = EVP_PKEY_CTX_new_id(EVP_PKEY_KEM, NULL); |
| 437 | + if (kem_ctx == NULL || !EVP_PKEY_CTX_kem_set_params(kem_ctx, NID_MLKEM512) || |
| 438 | + !EVP_PKEY_keygen_init(kem_ctx) || |
| 439 | + !EVP_PKEY_keygen(kem_ctx, &kem_raw)) { |
439 | 440 | printf("ML-KEM keygen failed.\n"); |
440 | 441 | goto err; |
441 | 442 | } |
442 | 443 | printf("Generated public key: "); |
443 | | - hexdump(raw->pkey.kem_key->public_key, raw->pkey.kem_key->kem->public_key_len); |
444 | | - EVP_PKEY_free(raw); |
445 | | - EVP_PKEY_CTX_free(ctx); |
| 444 | + hexdump(kem_raw->pkey.kem_key->public_key, kem_raw->pkey.kem_key->kem->public_key_len); |
| 445 | + EVP_PKEY_free(kem_raw); |
| 446 | + EVP_PKEY_CTX_free(kem_ctx); |
| 447 | + |
| 448 | + /* ML-DSA */ |
| 449 | + printf("About to Generate ML-DSA key\n"); |
| 450 | + EVP_PKEY *dsa_raw = NULL; |
| 451 | + EVP_PKEY_CTX *dsa_ctx = EVP_PKEY_CTX_new_id(EVP_PKEY_PQDSA, NULL); |
| 452 | + if (dsa_ctx == NULL || !EVP_PKEY_CTX_pqdsa_set_params(dsa_ctx, NID_MLDSA44) || |
| 453 | + !EVP_PKEY_keygen_init(dsa_ctx) || |
| 454 | + !EVP_PKEY_keygen(dsa_ctx, &dsa_raw)) { |
| 455 | + printf("ML-DSA keygen failed.\n"); |
| 456 | + goto err; |
| 457 | + } |
| 458 | + printf("Generated public key: "); |
| 459 | + hexdump(dsa_raw->pkey.pqdsa_key->public_key, dsa_raw->pkey.pqdsa_key->pqdsa->public_key_len); |
| 460 | + EVP_PKEY_free(dsa_raw); |
| 461 | + EVP_PKEY_CTX_free(dsa_ctx); |
446 | 462 |
|
447 | 463 | /* DBRG */ |
448 | 464 | CTR_DRBG_STATE drbg; |
|
0 commit comments