Update oids for SM2 (GH #542)

Also see https://www.cryptopp.com/wiki/SM2. The wiki page is documenting some of this stuff
pull/548/head
Jeffrey Walton 2017-11-25 10:40:17 -05:00
parent 1ca704aec6
commit 679c9583a0
No known key found for this signature in database
GPG Key ID: B36AB348921B1838
2 changed files with 19 additions and 0 deletions

View File

@ -268,10 +268,27 @@ static void GetRecommendedParameters(const EcRecommendedParameters<EC2N> *&begin
end = rec + sizeof(rec)/sizeof(rec[0]);
}
// See https://www.cryptopp.com/wiki/SM2 for details on sm2p256v1 and sm2encrypt_recommendedParameters
static void GetRecommendedParameters(const EcRecommendedParameters<ECP> *&begin, const EcRecommendedParameters<ECP> *&end)
{
// this array must be sorted by OID
static const EcRecommendedParameters<ECP> rec[] = {
EcRecommendedParameters<ECP>(ASN1::sm2p256v1(),
"FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFF FFFFFFFF",
"FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFF FFFFFFFC",
"28E9FA9E 9D9F5E34 4D5A9E4B CF6509A7 F39789F5 15AB8F92 DDBCBD41 4D940E93",
"04" "32C4AE2C 1F198119 5F990446 6A39C994 8FE30BBF F2660BE1 715A4589 334C74C7"
"BC3736A2 F4F6779C 59BDCEE3 6B692153 D0A9877C C62A4740 02DF32E5 2139F0A0",
"FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF 7203DF6B 21C6052B 53BBF409 39D54123",
1),
EcRecommendedParameters<ECP>(ASN1::sm2encrypt_recommendedParameters(),
"FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFF FFFFFFFF",
"FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFF FFFFFFFC",
"28E9FA9E 9D9F5E34 4D5A9E4B CF6509A7 F39789F5 15AB8F92 DDBCBD41 4D940E93",
"04" "32C4AE2C 1F198119 5F990446 6A39C994 8FE30BBF F2660BE1 715A4589 334C74C7"
"BC3736A2 F4F6779C 59BDCEE3 6B692153 D0A9877C C62A4740 02DF32E5 2139F0A0",
"FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF 7203DF6B 21C6052B 53BBF409 39D54123",
1),
EcRecommendedParameters<ECP>(ASN1::secp192r1(),
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF",
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFC",

2
oids.h
View File

@ -30,6 +30,8 @@ DEFINE_OID(1, iso)
DEFINE_OID(sm2p256v1()+1, sm2sign)
DEFINE_OID(sm2p256v1()+2, sm2exchange)
DEFINE_OID(sm2p256v1()+3, sm2encrypt)
DEFINE_OID(sm2encrypt()+1, sm2encrypt_recommendedParameters)
DEFINE_OID(sm2encrypt()+2, sm2encrypt_specifiedParameters)
DEFINE_OID(member_body()+840, iso_us)
DEFINE_OID(iso_us()+10040, ansi_x9_57)
DEFINE_OID(ansi_x9_57()+4+1, id_dsa)