Skip to content

Commit a0f3d53

Browse files
committed
more modern preferences for rfc9580/pqc
1 parent 7ab4373 commit a0f3d53

File tree

2 files changed

+20
-4
lines changed

2 files changed

+20
-4
lines changed

src/lib/keygen.cpp

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -399,16 +399,31 @@ UserPrefs::add_aead_prefs(pgp_symm_alg_t sym_alg, pgp_aead_alg_t aead_alg)
399399
#endif
400400

401401
void
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)
423438
void
424439
CertParams::check_defaults(const KeygenParams &params)
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

src/lib/keygen.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,8 @@ class UserPrefs {
149149
#if defined(ENABLE_CRYPTO_REFRESH)
150150
void add_aead_prefs(pgp_symm_alg_t sym_alg, pgp_aead_alg_t aead_alg);
151151
#endif
152-
void check_defaults(pgp_version_t version = PGP_V4);
152+
void check_defaults(pgp_version_t version = PGP_V4,
153+
pgp_pubkey_alg_t pk_alg = PGP_PKA_NOTHING);
153154
};
154155

155156
class CertParams {

0 commit comments

Comments
 (0)