@@ -399,16 +399,31 @@ UserPrefs::add_aead_prefs(pgp_symm_alg_t sym_alg, pgp_aead_alg_t aead_alg)
399399#endif
400400
401401void
402- UserPrefs::check_defaults (pgp_version_t version)
402+ UserPrefs::check_defaults (pgp_version_t version, pgp_pubkey_alg_t pk_alg )
403403{
404404 if (symm_algs.empty ()) {
405405 symm_algs = {PGP_SA_AES_256, PGP_SA_AES_192, PGP_SA_AES_128};
406406 }
407407 if (hash_algs.empty ()) {
408- hash_algs = {PGP_HASH_SHA256, PGP_HASH_SHA384, PGP_HASH_SHA512, PGP_HASH_SHA224};
408+ #if defined(ENABLE_PQC)
409+ if (Key::is_pqc_alg (pk_alg)) {
410+ hash_algs = {PGP_HASH_SHA256,
411+ PGP_HASH_SHA384,
412+ PGP_HASH_SHA512,
413+ PGP_HASH_SHA3_256,
414+ PGP_HASH_SHA3_512};
415+ } else
416+ #endif
417+ {
418+ hash_algs = {PGP_HASH_SHA256, PGP_HASH_SHA384, PGP_HASH_SHA512, PGP_HASH_SHA224};
419+ }
409420 }
410421 if (z_algs.empty ()) {
422+ #if defined(ENABLE_CRYPTO_REFRESH) || defined(ENABLE_PQC)
423+ z_algs = {PGP_C_NONE};
424+ #else
411425 z_algs = {PGP_C_ZLIB, PGP_C_BZIP2, PGP_C_ZIP, PGP_C_NONE};
426+ #endif
412427 }
413428#if defined(ENABLE_CRYPTO_REFRESH)
414429 if (aead_prefs.empty () && (version == PGP_V6)) {
@@ -423,7 +438,7 @@ UserPrefs::check_defaults(pgp_version_t version)
423438void
424439CertParams::check_defaults (const KeygenParams ¶ms)
425440{
426- prefs.check_defaults (params.version ());
441+ prefs.check_defaults (params.version (), params. alg () );
427442
428443 if (!flags) {
429444 // set some default key flags if none are provided
0 commit comments