]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Extend the provider MAC bridge for Poly1305
authorMatt Caswell <matt@openssl.org>
Tue, 11 Aug 2020 14:28:07 +0000 (15:28 +0100)
committerPauli <paul.dale@oracle.com>
Sat, 29 Aug 2020 07:40:10 +0000 (17:40 +1000)
The previous commits added support for HMAC and SIPHASH into the provider
MAC bridge. We now extend that for Poly1305 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 db4b6f8fa1216b2f01b294ff5df5b6206223711b..dab1b15ab9f1d9d11162fb65d919aad9ca43f5c3 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_POLY1305:
         return 1;
     default:
         return 0;
index aaf1cfe6b0cb35352594326113a9d7604fa2b13b..34d2fb29f409876febb5238c1faba9d815491456 100644 (file)
@@ -366,6 +366,9 @@ static const OSSL_ALGORITHM deflt_signature[] = {
 #endif
     { "HMAC", "provider=default", mac_hmac_signature_functions },
     { "SIPHASH", "provider=default", mac_siphash_signature_functions },
+#ifndef OPENSSL_NO_POLY1305
+    { "POLY1305", "provider=default", mac_poly1305_signature_functions },
+#endif
     { NULL, NULL, NULL }
 };
 
@@ -396,6 +399,9 @@ static const OSSL_ALGORITHM deflt_keymgmt[] = {
     { "SCRYPT:id-scrypt", "provider=default", kdf_keymgmt_functions },
     { "HMAC", "provider=default", mac_keymgmt_functions },
     { "SIPHASH", "provider=default", mac_keymgmt_functions },
+#ifndef OPENSSL_NO_POLY1305
+    { "POLY1305", "provider=default", mac_keymgmt_functions },
+#endif
     { NULL, NULL, NULL }
 };
 
index 7c6412ceb5c33fbd0194d82c092503aed7be6d3a..fe5fbef57a29e31127f35279c0cde82e664f134e 100644 (file)
@@ -297,6 +297,7 @@ 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[];
+extern const OSSL_DISPATCH mac_poly1305_signature_functions[];
 
 /* Asym Cipher */
 extern const OSSL_DISPATCH rsa_asym_cipher_functions[];
index bb3bf5b55d7f60047bfe11463f3646f93abcb8b5..cf440efc059dae7a338f93b21eb9f3c1c6182dc1 100644 (file)
@@ -71,6 +71,7 @@ static void *mac_newctx(void *provctx, const char *propq, const char *macname)
 
 MAC_NEWCTX(hmac, "HMAC")
 MAC_NEWCTX(siphash, "SIPHASH")
+MAC_NEWCTX(poly1305, "POLY1305")
 
 static int mac_digest_sign_init(void *vpmacctx, const char *mdname, void *vkey)
 {
@@ -179,3 +180,4 @@ static void *mac_dupctx(void *vpmacctx)
 
 MAC_SIGNATURE_FUNCTIONS(hmac)
 MAC_SIGNATURE_FUNCTIONS(siphash)
+MAC_SIGNATURE_FUNCTIONS(poly1305)