From 8f112218930d8ed63fe7f223f3da2c9c962ef22c Mon Sep 17 00:00:00 2001 From: Nathaniel McCallum Date: Mon, 20 Jun 2016 03:47:11 -0400 Subject: [PATCH] Teach EVP_PKEY_HMAC keys how to EVP_PKEY_cmp() Fixes openssl/openssl#1236 --- crypto/hmac/hm_ameth.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/crypto/hmac/hm_ameth.c b/crypto/hmac/hm_ameth.c index 714068dc68603..78ae0ea63a867 100644 --- a/crypto/hmac/hm_ameth.c +++ b/crypto/hmac/hm_ameth.c @@ -46,6 +46,11 @@ static int hmac_pkey_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2) } } +static int hmac_pkey_public_cmp(const EVP_PKEY *a, const EVP_PKEY *b) +{ + return ASN1_OCTET_STRING_cmp(EVP_PKEY_get0(a), EVP_PKEY_get0(b)); +} + #ifdef HMAC_TEST_PRIVATE_KEY_FORMAT /* * A bogus private key format for test purposes. This is simply the HMAC key @@ -101,7 +106,7 @@ const EVP_PKEY_ASN1_METHOD hmac_asn1_meth = { "HMAC", "OpenSSL HMAC method", - 0, 0, 0, 0, + 0, 0, hmac_pkey_public_cmp, 0, 0, 0, 0,