diff options
author | tb <> | 2019-03-17 18:17:45 +0000 |
---|---|---|
committer | tb <> | 2019-03-17 18:17:45 +0000 |
commit | af9a3893c75bea9cdb40ebd337ad14721e571211 (patch) | |
tree | b05f68bd83b8de77bfa409e47aaaf56b0150950b /src | |
parent | fb0b540c39c782c9152081c2021f54363e04307c (diff) | |
download | openbsd-af9a3893c75bea9cdb40ebd337ad14721e571211.tar.gz openbsd-af9a3893c75bea9cdb40ebd337ad14721e571211.tar.bz2 openbsd-af9a3893c75bea9cdb40ebd337ad14721e571211.zip |
Provide EVP_PKEY_get0_hmac(). From OpenSSL 1.1.1 which is still
freely licensed.
From jsing
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/libcrypto/Symbols.list | 1 | ||||
-rw-r--r-- | src/lib/libcrypto/evp/evp.h | 4 | ||||
-rw-r--r-- | src/lib/libcrypto/evp/evp_err.c | 3 | ||||
-rw-r--r-- | src/lib/libcrypto/evp/p_lib.c | 18 |
4 files changed, 23 insertions, 3 deletions
diff --git a/src/lib/libcrypto/Symbols.list b/src/lib/libcrypto/Symbols.list index 9fdf723f87..9a8eacc8e3 100644 --- a/src/lib/libcrypto/Symbols.list +++ b/src/lib/libcrypto/Symbols.list | |||
@@ -1438,6 +1438,7 @@ EVP_PKEY_get0_DSA | |||
1438 | EVP_PKEY_get0_EC_KEY | 1438 | EVP_PKEY_get0_EC_KEY |
1439 | EVP_PKEY_get0_RSA | 1439 | EVP_PKEY_get0_RSA |
1440 | EVP_PKEY_get0_asn1 | 1440 | EVP_PKEY_get0_asn1 |
1441 | EVP_PKEY_get0_hmac | ||
1441 | EVP_PKEY_get1_DH | 1442 | EVP_PKEY_get1_DH |
1442 | EVP_PKEY_get1_DSA | 1443 | EVP_PKEY_get1_DSA |
1443 | EVP_PKEY_get1_EC_KEY | 1444 | EVP_PKEY_get1_EC_KEY |
diff --git a/src/lib/libcrypto/evp/evp.h b/src/lib/libcrypto/evp/evp.h index 22876f9fe9..e8ab36693a 100644 --- a/src/lib/libcrypto/evp/evp.h +++ b/src/lib/libcrypto/evp/evp.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: evp.h,v 1.74 2019/03/17 18:07:41 tb Exp $ */ | 1 | /* $OpenBSD: evp.h,v 1.75 2019/03/17 18:17:44 tb Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -902,6 +902,7 @@ int EVP_PKEY_set_type(EVP_PKEY *pkey, int type); | |||
902 | int EVP_PKEY_set_type_str(EVP_PKEY *pkey, const char *str, int len); | 902 | int EVP_PKEY_set_type_str(EVP_PKEY *pkey, const char *str, int len); |
903 | int EVP_PKEY_assign(EVP_PKEY *pkey, int type, void *key); | 903 | int EVP_PKEY_assign(EVP_PKEY *pkey, int type, void *key); |
904 | void *EVP_PKEY_get0(const EVP_PKEY *pkey); | 904 | void *EVP_PKEY_get0(const EVP_PKEY *pkey); |
905 | const unsigned char *EVP_PKEY_get0_hmac(const EVP_PKEY *pkey, size_t *len); | ||
905 | 906 | ||
906 | #ifndef OPENSSL_NO_RSA | 907 | #ifndef OPENSSL_NO_RSA |
907 | struct rsa_st; | 908 | struct rsa_st; |
@@ -1487,6 +1488,7 @@ void ERR_load_EVP_strings(void); | |||
1487 | #define EVP_R_ERROR_LOADING_SECTION 165 | 1488 | #define EVP_R_ERROR_LOADING_SECTION 165 |
1488 | #define EVP_R_ERROR_SETTING_FIPS_MODE 166 | 1489 | #define EVP_R_ERROR_SETTING_FIPS_MODE 166 |
1489 | #define EVP_R_EVP_PBE_CIPHERINIT_ERROR 119 | 1490 | #define EVP_R_EVP_PBE_CIPHERINIT_ERROR 119 |
1491 | #define EVP_R_EXPECTING_AN_HMAC_KEY 174 | ||
1490 | #define EVP_R_EXPECTING_AN_RSA_KEY 127 | 1492 | #define EVP_R_EXPECTING_AN_RSA_KEY 127 |
1491 | #define EVP_R_EXPECTING_A_DH_KEY 128 | 1493 | #define EVP_R_EXPECTING_A_DH_KEY 128 |
1492 | #define EVP_R_EXPECTING_A_DSA_KEY 129 | 1494 | #define EVP_R_EXPECTING_A_DSA_KEY 129 |
diff --git a/src/lib/libcrypto/evp/evp_err.c b/src/lib/libcrypto/evp/evp_err.c index 814637c739..6bfb1c1dae 100644 --- a/src/lib/libcrypto/evp/evp_err.c +++ b/src/lib/libcrypto/evp/evp_err.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: evp_err.c,v 1.23 2019/03/17 18:07:41 tb Exp $ */ | 1 | /* $OpenBSD: evp_err.c,v 1.24 2019/03/17 18:17:44 tb Exp $ */ |
2 | /* ==================================================================== | 2 | /* ==================================================================== |
3 | * Copyright (c) 1999-2011 The OpenSSL Project. All rights reserved. | 3 | * Copyright (c) 1999-2011 The OpenSSL Project. All rights reserved. |
4 | * | 4 | * |
@@ -100,6 +100,7 @@ static ERR_STRING_DATA EVP_str_reasons[] = { | |||
100 | {ERR_REASON(EVP_R_ERROR_LOADING_SECTION) , "error loading section"}, | 100 | {ERR_REASON(EVP_R_ERROR_LOADING_SECTION) , "error loading section"}, |
101 | {ERR_REASON(EVP_R_ERROR_SETTING_FIPS_MODE), "error setting fips mode"}, | 101 | {ERR_REASON(EVP_R_ERROR_SETTING_FIPS_MODE), "error setting fips mode"}, |
102 | {ERR_REASON(EVP_R_EVP_PBE_CIPHERINIT_ERROR), "evp pbe cipherinit error"}, | 102 | {ERR_REASON(EVP_R_EVP_PBE_CIPHERINIT_ERROR), "evp pbe cipherinit error"}, |
103 | {ERR_PACK(ERR_LIB_EVP, 0, EVP_R_EXPECTING_AN_HMAC_KEY), "expecting an hmac key"}, | ||
103 | {ERR_REASON(EVP_R_EXPECTING_AN_RSA_KEY) , "expecting an rsa key"}, | 104 | {ERR_REASON(EVP_R_EXPECTING_AN_RSA_KEY) , "expecting an rsa key"}, |
104 | {ERR_REASON(EVP_R_EXPECTING_A_DH_KEY) , "expecting a dh key"}, | 105 | {ERR_REASON(EVP_R_EXPECTING_A_DH_KEY) , "expecting a dh key"}, |
105 | {ERR_REASON(EVP_R_EXPECTING_A_DSA_KEY) , "expecting a dsa key"}, | 106 | {ERR_REASON(EVP_R_EXPECTING_A_DSA_KEY) , "expecting a dsa key"}, |
diff --git a/src/lib/libcrypto/evp/p_lib.c b/src/lib/libcrypto/evp/p_lib.c index 0e4c38e218..13a9d65f28 100644 --- a/src/lib/libcrypto/evp/p_lib.c +++ b/src/lib/libcrypto/evp/p_lib.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: p_lib.c,v 1.24 2018/05/30 15:40:50 tb Exp $ */ | 1 | /* $OpenBSD: p_lib.c,v 1.25 2019/03/17 18:17:45 tb Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -282,6 +282,22 @@ EVP_PKEY_get0(const EVP_PKEY *pkey) | |||
282 | return pkey->pkey.ptr; | 282 | return pkey->pkey.ptr; |
283 | } | 283 | } |
284 | 284 | ||
285 | const unsigned char * | ||
286 | EVP_PKEY_get0_hmac(const EVP_PKEY *pkey, size_t *len) | ||
287 | { | ||
288 | ASN1_OCTET_STRING *os; | ||
289 | |||
290 | if (pkey->type != EVP_PKEY_HMAC) { | ||
291 | EVPerror(EVP_R_EXPECTING_AN_HMAC_KEY); | ||
292 | return NULL; | ||
293 | } | ||
294 | |||
295 | os = EVP_PKEY_get0(pkey); | ||
296 | *len = os->length; | ||
297 | |||
298 | return os->data; | ||
299 | } | ||
300 | |||
285 | #ifndef OPENSSL_NO_RSA | 301 | #ifndef OPENSSL_NO_RSA |
286 | RSA * | 302 | RSA * |
287 | EVP_PKEY_get0_RSA(EVP_PKEY *pkey) | 303 | EVP_PKEY_get0_RSA(EVP_PKEY *pkey) |