]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
botan: Fully enable RSA OAEP decryption
authorAndreas Steffen <andreas.steffen@strongswan.org>
Mon, 8 Nov 2021 08:20:15 +0000 (09:20 +0100)
committerAndreas Steffen <andreas.steffen@strongswan.org>
Tue, 9 Nov 2021 16:58:28 +0000 (17:58 +0100)
src/libstrongswan/plugins/botan/botan_plugin.c
src/libstrongswan/plugins/botan/botan_rsa_private_key.c

index f045ba07489c67fe65b959652244a140d2a59dbd..205a274f4bd37c1909d9dba56292f9ec576fa1d4 100644 (file)
@@ -278,15 +278,21 @@ METHOD(plugin_t, get_features, int,
                PLUGIN_PROVIDE(PUBKEY_VERIFY, SIGN_RSA_EMSA_PSS),
 #endif
                PLUGIN_PROVIDE(PRIVKEY_DECRYPT, ENCRYPT_RSA_PKCS1),
-               PLUGIN_PROVIDE(PUBKEY_ENCRYPT, ENCRYPT_RSA_PKCS1),
+               PLUGIN_PROVIDE(PUBKEY_ENCRYPT,  ENCRYPT_RSA_PKCS1),
 #ifdef BOTAN_HAS_EME_OAEP
+               PLUGIN_PROVIDE(PRIVKEY_DECRYPT, ENCRYPT_RSA_OAEP_SHA1),
+               PLUGIN_PROVIDE(PUBKEY_ENCRYPT,  ENCRYPT_RSA_OAEP_SHA1),
 #ifdef BOTAN_HAS_SHA2_32
-               PLUGIN_PROVIDE(PUBKEY_ENCRYPT, ENCRYPT_RSA_OAEP_SHA224),
-               PLUGIN_PROVIDE(PUBKEY_ENCRYPT, ENCRYPT_RSA_OAEP_SHA256),
+               PLUGIN_PROVIDE(PRIVKEY_DECRYPT, ENCRYPT_RSA_OAEP_SHA224),
+               PLUGIN_PROVIDE(PUBKEY_ENCRYPT,  ENCRYPT_RSA_OAEP_SHA224),
+               PLUGIN_PROVIDE(PRIVKEY_DECRYPT, ENCRYPT_RSA_OAEP_SHA256),
+               PLUGIN_PROVIDE(PUBKEY_ENCRYPT,  ENCRYPT_RSA_OAEP_SHA256),
 #endif
 #ifdef BOTAN_HAS_SHA2_64
-               PLUGIN_PROVIDE(PUBKEY_ENCRYPT, ENCRYPT_RSA_OAEP_SHA384),
-               PLUGIN_PROVIDE(PUBKEY_ENCRYPT, ENCRYPT_RSA_OAEP_SHA512),
+               PLUGIN_PROVIDE(PRIVKEY_DECRYPT, ENCRYPT_RSA_OAEP_SHA384),
+               PLUGIN_PROVIDE(PUBKEY_ENCRYPT,  ENCRYPT_RSA_OAEP_SHA384),
+               PLUGIN_PROVIDE(PRIVKEY_DECRYPT, ENCRYPT_RSA_OAEP_SHA512),
+               PLUGIN_PROVIDE(PUBKEY_ENCRYPT,  ENCRYPT_RSA_OAEP_SHA512),
 #endif
 #endif
 #endif /* BOTAN_HAS_RSA */
index b8bfa6484b77c1691a914265830deed20ced6752..03ce257cce961b3694edff7f0e8bf291a272638c 100644 (file)
@@ -206,6 +206,7 @@ METHOD(private_key_t, decrypt, bool,
        if (botan_pk_op_decrypt(decrypt_op, plain->ptr, &plain->len, crypto.ptr,
                                                        crypto.len))
        {
+               DBG1(DBG_LIB, "RSA decryption failed");
                chunk_free(plain);
                botan_pk_op_decrypt_destroy(decrypt_op);
                return FALSE;