diff options
author | Matt Caswell <matt@openssl.org> | 2020-08-07 16:40:25 +0100 |
---|---|---|
committer | Pauli <paul.dale@oracle.com> | 2020-08-29 17:39:37 +1000 |
commit | e538294f8f9b522279e523ebf6804ed4cb721b80 (patch) | |
tree | 4338aa6523f15f187c33d6ce994f7ae6cb08e1e5 /providers/implementations/include/prov | |
parent | bddfea0271d0596961a43283b36ff49923329a92 (diff) | |
download | openssl-new-e538294f8f9b522279e523ebf6804ed4cb721b80.tar.gz |
Implement key management for the EVP_PKEY MAC to EVP_MAC provider bridge
Some MAC implementations were available before the current EVP_MAC API. They
were used via EVP_DigestSign*. There exists a bridge between the old API and
the EVP_MAC API however this bridge itself uses a legacy EVP_PKEY_METHOD.
This commit implements the key management for provider side bridge without
having to useany legacy code.
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12637)
Diffstat (limited to 'providers/implementations/include/prov')
-rw-r--r-- | providers/implementations/include/prov/implementations.h | 1 | ||||
-rw-r--r-- | providers/implementations/include/prov/macsignature.h | 26 |
2 files changed, 27 insertions, 0 deletions
diff --git a/providers/implementations/include/prov/implementations.h b/providers/implementations/include/prov/implementations.h index f07a7b00f0..035196b317 100644 --- a/providers/implementations/include/prov/implementations.h +++ b/providers/implementations/include/prov/implementations.h @@ -278,6 +278,7 @@ extern const OSSL_DISPATCH ed25519_keymgmt_functions[]; extern const OSSL_DISPATCH ed448_keymgmt_functions[]; extern const OSSL_DISPATCH ec_keymgmt_functions[]; extern const OSSL_DISPATCH kdf_keymgmt_functions[]; +extern const OSSL_DISPATCH mac_keymgmt_functions[]; /* Key Exchange */ extern const OSSL_DISPATCH dh_keyexch_functions[]; diff --git a/providers/implementations/include/prov/macsignature.h b/providers/implementations/include/prov/macsignature.h new file mode 100644 index 0000000000..39a57416c8 --- /dev/null +++ b/providers/implementations/include/prov/macsignature.h @@ -0,0 +1,26 @@ +/* + * Copyright 2020 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#include <stdlib.h> +#include <openssl/crypto.h> +#include "internal/refcount.h" + +struct mac_key_st { + CRYPTO_RWLOCK *lock; + OPENSSL_CTX *libctx; + CRYPTO_REF_COUNT refcnt; + unsigned char *priv_key; + size_t priv_key_len; +}; + +typedef struct mac_key_st MAC_KEY; + +MAC_KEY *mac_key_new(OPENSSL_CTX *libctx); +void mac_key_free(MAC_KEY *mackey); +int mac_key_up_ref(MAC_KEY *mackey); |