gmp: Support of SHA-3 RSA signatures
This commit is contained in:
@@ -22,19 +22,19 @@ struct {
|
||||
signature_scheme_t sig[5];
|
||||
signature_scheme_t ike[5];
|
||||
} sig_constraints_tests[] = {
|
||||
{ "rsa-sha256", { SIGN_RSA_EMSA_PKCS1_SHA256, 0 }, {0}},
|
||||
{ "rsa-sha256-sha512", { SIGN_RSA_EMSA_PKCS1_SHA256, SIGN_RSA_EMSA_PKCS1_SHA512, 0 }, {0}},
|
||||
{ "rsa-sha256", { SIGN_RSA_EMSA_PKCS1_SHA2_256, 0 }, {0}},
|
||||
{ "rsa-sha256-sha512", { SIGN_RSA_EMSA_PKCS1_SHA2_256, SIGN_RSA_EMSA_PKCS1_SHA2_512, 0 }, {0}},
|
||||
{ "ecdsa-sha256", { SIGN_ECDSA_WITH_SHA256_DER, SIGN_ECDSA_256, 0 }, {0}},
|
||||
{ "rsa-sha256-ecdsa-sha256", { SIGN_RSA_EMSA_PKCS1_SHA256, SIGN_ECDSA_WITH_SHA256_DER, SIGN_ECDSA_256, 0 }, {0}},
|
||||
{ "pubkey-sha256", { SIGN_RSA_EMSA_PKCS1_SHA256, SIGN_ECDSA_WITH_SHA256_DER, SIGN_ECDSA_256, SIGN_BLISS_WITH_SHA2_256, 0 }, {0}},
|
||||
{ "ike:rsa-sha256", {0}, { SIGN_RSA_EMSA_PKCS1_SHA256, 0 }},
|
||||
{ "ike:rsa-sha256-rsa-sha256", { SIGN_RSA_EMSA_PKCS1_SHA256, 0 }, { SIGN_RSA_EMSA_PKCS1_SHA256, 0 }},
|
||||
{ "rsa-sha256-ike:rsa-sha256", { SIGN_RSA_EMSA_PKCS1_SHA256, 0 }, { SIGN_RSA_EMSA_PKCS1_SHA256, 0 }},
|
||||
{ "ike:pubkey-sha256", {0}, { SIGN_RSA_EMSA_PKCS1_SHA256, SIGN_ECDSA_WITH_SHA256_DER, SIGN_ECDSA_256, SIGN_BLISS_WITH_SHA2_256, 0 }},
|
||||
{ "rsa-sha256-ecdsa-sha256", { SIGN_RSA_EMSA_PKCS1_SHA2_256, SIGN_ECDSA_WITH_SHA256_DER, SIGN_ECDSA_256, 0 }, {0}},
|
||||
{ "pubkey-sha256", { SIGN_RSA_EMSA_PKCS1_SHA2_256, SIGN_ECDSA_WITH_SHA256_DER, SIGN_ECDSA_256, SIGN_BLISS_WITH_SHA2_256, 0 }, {0}},
|
||||
{ "ike:rsa-sha256", {0}, { SIGN_RSA_EMSA_PKCS1_SHA2_256, 0 }},
|
||||
{ "ike:rsa-sha256-rsa-sha256", { SIGN_RSA_EMSA_PKCS1_SHA2_256, 0 }, { SIGN_RSA_EMSA_PKCS1_SHA2_256, 0 }},
|
||||
{ "rsa-sha256-ike:rsa-sha256", { SIGN_RSA_EMSA_PKCS1_SHA2_256, 0 }, { SIGN_RSA_EMSA_PKCS1_SHA2_256, 0 }},
|
||||
{ "ike:pubkey-sha256", {0}, { SIGN_RSA_EMSA_PKCS1_SHA2_256, SIGN_ECDSA_WITH_SHA256_DER, SIGN_ECDSA_256, SIGN_BLISS_WITH_SHA2_256, 0 }},
|
||||
{ "rsa-ecdsa-sha256", { SIGN_ECDSA_WITH_SHA256_DER, SIGN_ECDSA_256, 0 }, {0}},
|
||||
{ "rsa-4096-ecdsa-sha256", { SIGN_ECDSA_WITH_SHA256_DER, SIGN_ECDSA_256, 0 }, {0}},
|
||||
{ "rsa-4096-ecdsa-256-sha256", { SIGN_ECDSA_WITH_SHA256_DER, SIGN_ECDSA_256, 0 }, {0}},
|
||||
{ "rsa-ecdsa256-sha256", { SIGN_RSA_EMSA_PKCS1_SHA256, 0 }, {0}},
|
||||
{ "rsa-ecdsa256-sha256", { SIGN_RSA_EMSA_PKCS1_SHA2_256, 0 }, {0}},
|
||||
{ "rsa4096-sha256", {0}, {0}},
|
||||
{ "sha256", {0}, {0}},
|
||||
{ "ike:sha256", {0}, {0}},
|
||||
|
||||
@@ -87,29 +87,33 @@ typedef struct {
|
||||
}hasher_sig_scheme_t;
|
||||
|
||||
static hasher_sig_scheme_t sig_schemes[] = {
|
||||
{ SIGN_UNKNOWN, HASH_UNKNOWN },
|
||||
{ SIGN_RSA_EMSA_PKCS1_NULL, HASH_UNKNOWN },
|
||||
{ SIGN_RSA_EMSA_PKCS1_MD5, HASH_MD5 },
|
||||
{ SIGN_RSA_EMSA_PKCS1_SHA1, HASH_SHA1 },
|
||||
{ SIGN_RSA_EMSA_PKCS1_SHA224, HASH_SHA224 },
|
||||
{ SIGN_RSA_EMSA_PKCS1_SHA256, HASH_SHA256 },
|
||||
{ SIGN_RSA_EMSA_PKCS1_SHA384, HASH_SHA384 },
|
||||
{ SIGN_RSA_EMSA_PKCS1_SHA512, HASH_SHA512 },
|
||||
{ SIGN_ECDSA_WITH_SHA1_DER, HASH_SHA1 },
|
||||
{ SIGN_ECDSA_WITH_SHA256_DER, HASH_SHA256 },
|
||||
{ SIGN_ECDSA_WITH_SHA384_DER, HASH_SHA384 },
|
||||
{ SIGN_ECDSA_WITH_SHA512_DER, HASH_SHA512 },
|
||||
{ SIGN_ECDSA_WITH_NULL, HASH_UNKNOWN },
|
||||
{ SIGN_ECDSA_256, HASH_SHA256 },
|
||||
{ SIGN_ECDSA_384, HASH_SHA384 },
|
||||
{ SIGN_ECDSA_521, HASH_SHA512 },
|
||||
{ SIGN_BLISS_WITH_SHA2_256, HASH_SHA256 },
|
||||
{ SIGN_BLISS_WITH_SHA2_384, HASH_SHA384 },
|
||||
{ SIGN_BLISS_WITH_SHA2_512, HASH_SHA512 },
|
||||
{ SIGN_BLISS_WITH_SHA3_256, HASH_SHA3_256 },
|
||||
{ SIGN_BLISS_WITH_SHA3_384, HASH_SHA3_384 },
|
||||
{ SIGN_BLISS_WITH_SHA3_512, HASH_SHA3_512 },
|
||||
{ 30, HASH_UNKNOWN }
|
||||
{ SIGN_UNKNOWN, HASH_UNKNOWN },
|
||||
{ SIGN_RSA_EMSA_PKCS1_NULL, HASH_UNKNOWN },
|
||||
{ SIGN_RSA_EMSA_PKCS1_MD5, HASH_MD5 },
|
||||
{ SIGN_RSA_EMSA_PKCS1_SHA1, HASH_SHA1 },
|
||||
{ SIGN_RSA_EMSA_PKCS1_SHA2_224, HASH_SHA224 },
|
||||
{ SIGN_RSA_EMSA_PKCS1_SHA2_256, HASH_SHA256 },
|
||||
{ SIGN_RSA_EMSA_PKCS1_SHA2_384, HASH_SHA384 },
|
||||
{ SIGN_RSA_EMSA_PKCS1_SHA2_512, HASH_SHA512 },
|
||||
{ SIGN_RSA_EMSA_PKCS1_SHA3_224, HASH_SHA3_224 },
|
||||
{ SIGN_RSA_EMSA_PKCS1_SHA3_256, HASH_SHA3_256 },
|
||||
{ SIGN_RSA_EMSA_PKCS1_SHA3_384, HASH_SHA3_384 },
|
||||
{ SIGN_RSA_EMSA_PKCS1_SHA3_512, HASH_SHA3_512 },
|
||||
{ SIGN_ECDSA_WITH_SHA1_DER, HASH_SHA1 },
|
||||
{ SIGN_ECDSA_WITH_SHA256_DER, HASH_SHA256 },
|
||||
{ SIGN_ECDSA_WITH_SHA384_DER, HASH_SHA384 },
|
||||
{ SIGN_ECDSA_WITH_SHA512_DER, HASH_SHA512 },
|
||||
{ SIGN_ECDSA_WITH_NULL, HASH_UNKNOWN },
|
||||
{ SIGN_ECDSA_256, HASH_SHA256 },
|
||||
{ SIGN_ECDSA_384, HASH_SHA384 },
|
||||
{ SIGN_ECDSA_521, HASH_SHA512 },
|
||||
{ SIGN_BLISS_WITH_SHA2_256, HASH_SHA256 },
|
||||
{ SIGN_BLISS_WITH_SHA2_384, HASH_SHA384 },
|
||||
{ SIGN_BLISS_WITH_SHA2_512, HASH_SHA512 },
|
||||
{ SIGN_BLISS_WITH_SHA3_256, HASH_SHA3_256 },
|
||||
{ SIGN_BLISS_WITH_SHA3_384, HASH_SHA3_384 },
|
||||
{ SIGN_BLISS_WITH_SHA3_512, HASH_SHA3_512 },
|
||||
{ 30, HASH_UNKNOWN }
|
||||
};
|
||||
|
||||
START_TEST(test_hasher_from_sig_scheme)
|
||||
|
||||
@@ -24,10 +24,10 @@ static signature_scheme_t schemes[] = {
|
||||
SIGN_RSA_EMSA_PKCS1_NULL,
|
||||
SIGN_RSA_EMSA_PKCS1_MD5,
|
||||
SIGN_RSA_EMSA_PKCS1_SHA1,
|
||||
SIGN_RSA_EMSA_PKCS1_SHA224,
|
||||
SIGN_RSA_EMSA_PKCS1_SHA256,
|
||||
SIGN_RSA_EMSA_PKCS1_SHA384,
|
||||
SIGN_RSA_EMSA_PKCS1_SHA512,
|
||||
SIGN_RSA_EMSA_PKCS1_SHA2_224,
|
||||
SIGN_RSA_EMSA_PKCS1_SHA2_256,
|
||||
SIGN_RSA_EMSA_PKCS1_SHA2_384,
|
||||
SIGN_RSA_EMSA_PKCS1_SHA2_512,
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -858,15 +858,22 @@ static struct {
|
||||
int size;
|
||||
signature_scheme_t expected[4];
|
||||
} scheme_data[] = {
|
||||
{KEY_RSA, 1024, { SIGN_RSA_EMSA_PKCS1_SHA256, SIGN_RSA_EMSA_PKCS1_SHA384, SIGN_RSA_EMSA_PKCS1_SHA512, SIGN_UNKNOWN }},
|
||||
{KEY_RSA, 2048, { SIGN_RSA_EMSA_PKCS1_SHA256, SIGN_RSA_EMSA_PKCS1_SHA384, SIGN_RSA_EMSA_PKCS1_SHA512, SIGN_UNKNOWN }},
|
||||
{KEY_RSA, 4096, { SIGN_RSA_EMSA_PKCS1_SHA384, SIGN_RSA_EMSA_PKCS1_SHA512, SIGN_UNKNOWN }},
|
||||
{KEY_RSA, 8192, { SIGN_RSA_EMSA_PKCS1_SHA512, SIGN_UNKNOWN }},
|
||||
{KEY_ECDSA, 256, { SIGN_ECDSA_WITH_SHA256_DER, SIGN_ECDSA_WITH_SHA384_DER, SIGN_ECDSA_WITH_SHA512_DER, SIGN_UNKNOWN }},
|
||||
{KEY_ECDSA, 384, { SIGN_ECDSA_WITH_SHA384_DER, SIGN_ECDSA_WITH_SHA512_DER, SIGN_UNKNOWN }},
|
||||
{KEY_RSA, 1024, { SIGN_RSA_EMSA_PKCS1_SHA2_256, SIGN_RSA_EMSA_PKCS1_SHA2_384,
|
||||
SIGN_RSA_EMSA_PKCS1_SHA2_512, SIGN_UNKNOWN }},
|
||||
{KEY_RSA, 2048, { SIGN_RSA_EMSA_PKCS1_SHA2_256, SIGN_RSA_EMSA_PKCS1_SHA2_384,
|
||||
SIGN_RSA_EMSA_PKCS1_SHA2_512, SIGN_UNKNOWN }},
|
||||
{KEY_RSA, 4096, { SIGN_RSA_EMSA_PKCS1_SHA2_384, SIGN_RSA_EMSA_PKCS1_SHA2_512,
|
||||
SIGN_UNKNOWN }},
|
||||
{KEY_RSA, 8192, { SIGN_RSA_EMSA_PKCS1_SHA2_512, SIGN_UNKNOWN }},
|
||||
{KEY_ECDSA, 256, { SIGN_ECDSA_WITH_SHA256_DER, SIGN_ECDSA_WITH_SHA384_DER,
|
||||
SIGN_ECDSA_WITH_SHA512_DER, SIGN_UNKNOWN }},
|
||||
{KEY_ECDSA, 384, { SIGN_ECDSA_WITH_SHA384_DER, SIGN_ECDSA_WITH_SHA512_DER,
|
||||
SIGN_UNKNOWN }},
|
||||
{KEY_ECDSA, 512, { SIGN_ECDSA_WITH_SHA512_DER, SIGN_UNKNOWN }},
|
||||
{KEY_BLISS, 128, { SIGN_BLISS_WITH_SHA2_256, SIGN_BLISS_WITH_SHA2_384, SIGN_BLISS_WITH_SHA2_512, SIGN_UNKNOWN }},
|
||||
{KEY_BLISS, 192, { SIGN_BLISS_WITH_SHA2_384, SIGN_BLISS_WITH_SHA2_512, SIGN_UNKNOWN }},
|
||||
{KEY_BLISS, 128, { SIGN_BLISS_WITH_SHA2_256, SIGN_BLISS_WITH_SHA2_384,
|
||||
SIGN_BLISS_WITH_SHA2_512, SIGN_UNKNOWN }},
|
||||
{KEY_BLISS, 192, { SIGN_BLISS_WITH_SHA2_384, SIGN_BLISS_WITH_SHA2_512,
|
||||
SIGN_UNKNOWN }},
|
||||
{KEY_BLISS, 256, { SIGN_BLISS_WITH_SHA2_512, SIGN_UNKNOWN }},
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user