From 8859c1f26b06bfb92c0322b189acd5ede0aa0040 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Wed, 2 Nov 2011 18:43:27 +0100 Subject: [PATCH] pkcs11: Fix encoding of RSA public keys. --- src/libstrongswan/plugins/pkcs11/pkcs11_public_key.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/libstrongswan/plugins/pkcs11/pkcs11_public_key.c b/src/libstrongswan/plugins/pkcs11/pkcs11_public_key.c index 65bf54bc0b..81ab6cb31a 100644 --- a/src/libstrongswan/plugins/pkcs11/pkcs11_public_key.c +++ b/src/libstrongswan/plugins/pkcs11/pkcs11_public_key.c @@ -192,6 +192,10 @@ static bool encode_rsa(private_pkcs11_public_key_t *this, { chunk_t n, e; n = chunk_create(attr[0].pValue, attr[0].ulValueLen); + if (n.ptr[0] & 0x80) + { /* add leading 0x00, encoders expect it already like this */ + n = chunk_cata("cc", chunk_from_chars(0x00), n); + } e = chunk_create(attr[1].pValue, attr[1].ulValueLen); success = lib->encoding->encode(lib->encoding, type, cache, encoding, CRED_PART_RSA_MODULUS, n, CRED_PART_RSA_PUB_EXP, e, CRED_PART_END); -- 2.47.2