From 9f56c5803ee467a044470adffa9b9af49ed0ae6b Mon Sep 17 00:00:00 2001 From: Karel Miko Date: Fri, 24 Apr 2026 16:49:08 +0200 Subject: [PATCH 1/2] fix RSA import --- src/misc/pem/pem_pkcs.c | 1 + src/pk/asn1/der/general/der_encode_asn1_length.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/misc/pem/pem_pkcs.c b/src/misc/pem/pem_pkcs.c index 5abf243f4..6a6d4e457 100644 --- a/src/misc/pem/pem_pkcs.c +++ b/src/misc/pem/pem_pkcs.c @@ -115,6 +115,7 @@ typedef int (*import_fn)(const unsigned char *, unsigned long, void*); static const import_fn s_import_openssl_fns[LTC_PKA_NUM] = { #ifdef LTC_MRSA [LTC_PKA_RSA] = (import_fn)rsa_import, + [LTC_PKA_RSA_PSS] = (import_fn)rsa_import, #endif #ifdef LTC_MDSA [LTC_PKA_DSA] = (import_fn)dsa_import, diff --git a/src/pk/asn1/der/general/der_encode_asn1_length.c b/src/pk/asn1/der/general/der_encode_asn1_length.c index 7892eea24..e5bf77d62 100644 --- a/src/pk/asn1/der/general/der_encode_asn1_length.c +++ b/src/pk/asn1/der/general/der_encode_asn1_length.c @@ -29,7 +29,7 @@ int der_encode_asn1_length(unsigned long len, unsigned char *out, unsigned long x >>= 8; } if (y == 0) { - return CRYPT_PK_ASN1_ERROR; + y = 1; /* len == 0 is valid: short form, single byte 0x00 */ } if (out == NULL) { From 55bf39c50e94184b936b37c12c651d6e6a699efb Mon Sep 17 00:00:00 2001 From: Steffen Jaeckel Date: Fri, 24 Apr 2026 18:32:50 +0200 Subject: [PATCH 2/2] Also add the failing key to the test corpus. Signed-off-by: Steffen Jaeckel --- tests/pem/pkcs/extra/zerolength.pem | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 tests/pem/pkcs/extra/zerolength.pem diff --git a/tests/pem/pkcs/extra/zerolength.pem b/tests/pem/pkcs/extra/zerolength.pem new file mode 100644 index 000000000..e6d78fdea --- /dev/null +++ b/tests/pem/pkcs/extra/zerolength.pem @@ -0,0 +1,9 @@ +-----BEGIN PUBLIC KEY----- +MIIBIjANBgkqhkiG9w0BAQowAAOCAQ8AMIIBCgKCAQEAvTHHoCaR0tlYfvapRv94 +hUTMrdSymIrWIIZ5Kmv5bIYWtK0TMX0icLkB0PzR2IDLj1L7hzBKUljBGzjf6ujf +Zwru5+odDZ344A6AhH5B5Zie1ALUTnizD+8XtWcdOtv4aF5NwgRJns0YY+HVr/KK +fPZurfMf7JI2wSCt0TRRUixkfJgypnLNZNMowcMiGD9GYdCb2mC43V8DKNpUIIIU +JK/auxqAxdEnY6GwI4zYnQdCv8ULai/LcB2CQhj5gm9PeKI6K1qkKs5/F1N2+2y9 +srrSk7pYPU0xxrj5Ap5GsTaJJJhV9QV1bgDiJaakWhh2m9jSs6SsufHCPT5RiCVh +5QIDAQAB +-----END PUBLIC KEY----- \ No newline at end of file