]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Extend the provider MAC bridge for SIPHASH
authorMatt Caswell <matt@openssl.org>
Tue, 11 Aug 2020 13:54:18 +0000 (14:54 +0100)
committerPauli <paul.dale@oracle.com>
Sat, 29 Aug 2020 07:40:10 +0000 (17:40 +1000)
The previous commits added support for HMAC into the provider MAC bridge.
We now extend that for SIPHASH too.

Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12637)

crypto/evp/pmeth_lib.c
providers/defltprov.c
providers/implementations/include/prov/implementations.h
providers/implementations/signature/mac_legacy.c

index 1d5585583ebb4154696d48fdec3b3eab02f7335a..db4b6f8fa1216b2f01b294ff5df5b6206223711b 100644 (file)
@@ -151,7 +151,6 @@ static int is_legacy_alg(int id, const char *keytype)
      */
     case EVP_PKEY_SM2:
     case EVP_PKEY_CMAC:
-    case EVP_PKEY_SIPHASH:
     case EVP_PKEY_POLY1305:
         return 1;
     default:
index c5b3407894a2c33788e3976e292ed6c663635d91..aaf1cfe6b0cb35352594326113a9d7604fa2b13b 100644 (file)
@@ -365,6 +365,7 @@ static const OSSL_ALGORITHM deflt_signature[] = {
     { "ECDSA", "provider=default", ecdsa_signature_functions },
 #endif
     { "HMAC", "provider=default", mac_hmac_signature_functions },
+    { "SIPHASH", "provider=default", mac_siphash_signature_functions },
     { NULL, NULL, NULL }
 };
 
@@ -394,6 +395,7 @@ static const OSSL_ALGORITHM deflt_keymgmt[] = {
     { "HKDF", "provider=default", kdf_keymgmt_functions },
     { "SCRYPT:id-scrypt", "provider=default", kdf_keymgmt_functions },
     { "HMAC", "provider=default", mac_keymgmt_functions },
+    { "SIPHASH", "provider=default", mac_keymgmt_functions },
     { NULL, NULL, NULL }
 };
 
index d975226fb51b0ab86eee68d36a8488653d9001bb..7c6412ceb5c33fbd0194d82c092503aed7be6d3a 100644 (file)
@@ -296,6 +296,7 @@ extern const OSSL_DISPATCH ed25519_signature_functions[];
 extern const OSSL_DISPATCH ed448_signature_functions[];
 extern const OSSL_DISPATCH ecdsa_signature_functions[];
 extern const OSSL_DISPATCH mac_hmac_signature_functions[];
+extern const OSSL_DISPATCH mac_siphash_signature_functions[];
 
 /* Asym Cipher */
 extern const OSSL_DISPATCH rsa_asym_cipher_functions[];
index 67acea3288e5795e32baf74ae87ced4abbbec8d0..bb3bf5b55d7f60047bfe11463f3646f93abcb8b5 100644 (file)
@@ -70,6 +70,7 @@ static void *mac_newctx(void *provctx, const char *propq, const char *macname)
     }
 
 MAC_NEWCTX(hmac, "HMAC")
+MAC_NEWCTX(siphash, "SIPHASH")
 
 static int mac_digest_sign_init(void *vpmacctx, const char *mdname, void *vkey)
 {
@@ -176,4 +177,5 @@ static void *mac_dupctx(void *vpmacctx)
         { 0, NULL } \
     };
 
-MAC_SIGNATURE_FUNCTIONS(hmac)
\ No newline at end of file
+MAC_SIGNATURE_FUNCTIONS(hmac)
+MAC_SIGNATURE_FUNCTIONS(siphash)