From d1ad7c834e10543b3d1ecb36ccbd110384063b8f Mon Sep 17 00:00:00 2001 From: Antoine Salon Date: Thu, 20 Dec 2018 15:32:58 -0800 Subject: [PATCH] blake2: register MAC objects Signed-off-by: Antoine Salon Reviewed-by: Richard Levitte Reviewed-by: Matt Caswell (Merged from https://github.com/openssl/openssl/pull/7726) --- crypto/evp/c_allm.c | 3 +++ crypto/objects/obj_dat.h | 12 +++++++++--- crypto/objects/obj_mac.num | 2 ++ crypto/objects/objects.txt | 2 ++ include/openssl/evp.h | 2 ++ include/openssl/obj_mac.h | 8 ++++++++ 6 files changed, 26 insertions(+), 3 deletions(-) diff --git a/crypto/evp/c_allm.c b/crypto/evp/c_allm.c index 2cc0694221..e3e03e1261 100644 --- a/crypto/evp/c_allm.c +++ b/crypto/evp/c_allm.c @@ -12,6 +12,9 @@ void openssl_add_all_macs_int(void) { +#ifndef OPENSSL_NO_BLAKE2 + EVP_add_mac(&blake2b_mac_meth); +#endif #ifndef OPENSSL_NO_CMAC EVP_add_mac(&cmac_meth); #endif diff --git a/crypto/objects/obj_dat.h b/crypto/objects/obj_dat.h index 859795fa50..78a9e7acaf 100644 --- a/crypto/objects/obj_dat.h +++ b/crypto/objects/obj_dat.h @@ -1079,7 +1079,7 @@ static const unsigned char so[7767] = { 0x28,0xCC,0x45,0x03,0x04, /* [ 7761] OBJ_gmac */ }; -#define NUM_NID 1201 +#define NUM_NID 1203 static const ASN1_OBJECT nid_objs[NUM_NID] = { {"UNDEF", "undefined", NID_undef}, {"rsadsi", "RSA Data Security, Inc.", NID_rsadsi, 6, &so[0]}, @@ -2282,9 +2282,11 @@ static const ASN1_OBJECT nid_objs[NUM_NID] = { {"AES-128-SIV", "aes-128-siv", NID_aes_128_siv}, {"AES-192-SIV", "aes-192-siv", NID_aes_192_siv}, {"AES-256-SIV", "aes-256-siv", NID_aes_256_siv}, + {"BLAKE2BMAC", "blake2bmac", NID_blake2bmac}, + {"BLAKE2SMAC", "blake2smac", NID_blake2smac}, }; -#define NUM_SN 1192 +#define NUM_SN 1194 static const unsigned int sn_objs[NUM_SN] = { 364, /* "AD_DVCS" */ 419, /* "AES-128-CBC" */ @@ -2362,6 +2364,8 @@ static const unsigned int sn_objs[NUM_SN] = { 93, /* "BF-CFB" */ 92, /* "BF-ECB" */ 94, /* "BF-OFB" */ + 1201, /* "BLAKE2BMAC" */ + 1202, /* "BLAKE2SMAC" */ 1056, /* "BLAKE2b512" */ 1057, /* "BLAKE2s256" */ 14, /* "C" */ @@ -3480,7 +3484,7 @@ static const unsigned int sn_objs[NUM_SN] = { 1093, /* "x509ExtAdmission" */ }; -#define NUM_LN 1192 +#define NUM_LN 1194 static const unsigned int ln_objs[NUM_LN] = { 363, /* "AD Time Stamping" */ 405, /* "ANSI X9.62" */ @@ -3782,7 +3786,9 @@ static const unsigned int ln_objs[NUM_LN] = { 92, /* "bf-ecb" */ 94, /* "bf-ofb" */ 1056, /* "blake2b512" */ + 1201, /* "blake2bmac" */ 1057, /* "blake2s256" */ + 1202, /* "blake2smac" */ 921, /* "brainpoolP160r1" */ 922, /* "brainpoolP160t1" */ 923, /* "brainpoolP192r1" */ diff --git a/crypto/objects/obj_mac.num b/crypto/objects/obj_mac.num index 021875d9e4..87790200d4 100644 --- a/crypto/objects/obj_mac.num +++ b/crypto/objects/obj_mac.num @@ -1198,3 +1198,5 @@ kmac256 1197 aes_128_siv 1198 aes_192_siv 1199 aes_256_siv 1200 +blake2bmac 1201 +blake2smac 1202 diff --git a/crypto/objects/objects.txt b/crypto/objects/objects.txt index fc32606deb..344b67b395 100644 --- a/crypto/objects/objects.txt +++ b/crypto/objects/objects.txt @@ -17,6 +17,8 @@ iso 0 9797 3 4 : GMAC : gmac # There are no OIDs for these yet... : KMAC128 : kmac128 : KMAC256 : kmac256 + : BLAKE2BMAC : blake2bmac + : BLAKE2SMAC : blake2smac # HMAC OIDs identified-organization 6 1 5 5 8 1 1 : HMAC-MD5 : hmac-md5 diff --git a/include/openssl/evp.h b/include/openssl/evp.h index 0094806bd0..23f07eaa05 100644 --- a/include/openssl/evp.h +++ b/include/openssl/evp.h @@ -993,6 +993,8 @@ void EVP_MD_do_all_sorted(void (*fn) /* MAC stuff */ +# define EVP_MAC_BLAKE2B NID_blake2bmac +# define EVP_MAC_BLAKE2S NID_blake2smac # define EVP_MAC_CMAC NID_cmac # define EVP_MAC_GMAC NID_gmac # define EVP_MAC_HMAC NID_hmac diff --git a/include/openssl/obj_mac.h b/include/openssl/obj_mac.h index 242eaeb6ce..97b2204ba6 100644 --- a/include/openssl/obj_mac.h +++ b/include/openssl/obj_mac.h @@ -57,6 +57,14 @@ #define LN_kmac256 "kmac256" #define NID_kmac256 1197 +#define SN_blake2bmac "BLAKE2BMAC" +#define LN_blake2bmac "blake2bmac" +#define NID_blake2bmac 1201 + +#define SN_blake2smac "BLAKE2SMAC" +#define LN_blake2smac "blake2smac" +#define NID_blake2smac 1202 + #define SN_hmac_md5 "HMAC-MD5" #define LN_hmac_md5 "hmac-md5" #define NID_hmac_md5 780