gmp: Support of SHA-3 RSA signatures
This commit is contained in:
@@ -80,30 +80,46 @@ METHOD(plugin_t, get_features, int,
|
||||
PLUGIN_PROVIDE(PUBKEY, KEY_RSA),
|
||||
/* signature schemes, private */
|
||||
PLUGIN_PROVIDE(PRIVKEY_SIGN, SIGN_RSA_EMSA_PKCS1_NULL),
|
||||
PLUGIN_PROVIDE(PRIVKEY_SIGN, SIGN_RSA_EMSA_PKCS1_SHA2_224),
|
||||
PLUGIN_DEPENDS(HASHER, HASH_SHA224),
|
||||
PLUGIN_PROVIDE(PRIVKEY_SIGN, SIGN_RSA_EMSA_PKCS1_SHA2_256),
|
||||
PLUGIN_DEPENDS(HASHER, HASH_SHA256),
|
||||
PLUGIN_PROVIDE(PRIVKEY_SIGN, SIGN_RSA_EMSA_PKCS1_SHA2_384),
|
||||
PLUGIN_DEPENDS(HASHER, HASH_SHA384),
|
||||
PLUGIN_PROVIDE(PRIVKEY_SIGN, SIGN_RSA_EMSA_PKCS1_SHA2_512),
|
||||
PLUGIN_DEPENDS(HASHER, HASH_SHA512),
|
||||
PLUGIN_PROVIDE(PRIVKEY_SIGN, SIGN_RSA_EMSA_PKCS1_SHA3_224),
|
||||
PLUGIN_DEPENDS(HASHER, HASH_SHA3_224),
|
||||
PLUGIN_PROVIDE(PRIVKEY_SIGN, SIGN_RSA_EMSA_PKCS1_SHA3_256),
|
||||
PLUGIN_DEPENDS(HASHER, HASH_SHA3_256),
|
||||
PLUGIN_PROVIDE(PRIVKEY_SIGN, SIGN_RSA_EMSA_PKCS1_SHA3_384),
|
||||
PLUGIN_DEPENDS(HASHER, HASH_SHA3_384),
|
||||
PLUGIN_PROVIDE(PRIVKEY_SIGN, SIGN_RSA_EMSA_PKCS1_SHA3_512),
|
||||
PLUGIN_DEPENDS(HASHER, HASH_SHA3_512),
|
||||
PLUGIN_PROVIDE(PRIVKEY_SIGN, SIGN_RSA_EMSA_PKCS1_SHA1),
|
||||
PLUGIN_DEPENDS(HASHER, HASH_SHA1),
|
||||
PLUGIN_PROVIDE(PRIVKEY_SIGN, SIGN_RSA_EMSA_PKCS1_SHA224),
|
||||
PLUGIN_DEPENDS(HASHER, HASH_SHA224),
|
||||
PLUGIN_PROVIDE(PRIVKEY_SIGN, SIGN_RSA_EMSA_PKCS1_SHA256),
|
||||
PLUGIN_DEPENDS(HASHER, HASH_SHA256),
|
||||
PLUGIN_PROVIDE(PRIVKEY_SIGN, SIGN_RSA_EMSA_PKCS1_SHA384),
|
||||
PLUGIN_DEPENDS(HASHER, HASH_SHA384),
|
||||
PLUGIN_PROVIDE(PRIVKEY_SIGN, SIGN_RSA_EMSA_PKCS1_SHA512),
|
||||
PLUGIN_DEPENDS(HASHER, HASH_SHA512),
|
||||
PLUGIN_PROVIDE(PRIVKEY_SIGN, SIGN_RSA_EMSA_PKCS1_MD5),
|
||||
PLUGIN_DEPENDS(HASHER, HASH_MD5),
|
||||
/* signature verification schemes */
|
||||
PLUGIN_PROVIDE(PUBKEY_VERIFY, SIGN_RSA_EMSA_PKCS1_NULL),
|
||||
PLUGIN_PROVIDE(PUBKEY_VERIFY, SIGN_RSA_EMSA_PKCS1_SHA2_224),
|
||||
PLUGIN_DEPENDS(HASHER, HASH_SHA224),
|
||||
PLUGIN_PROVIDE(PUBKEY_VERIFY, SIGN_RSA_EMSA_PKCS1_SHA2_256),
|
||||
PLUGIN_DEPENDS(HASHER, HASH_SHA256),
|
||||
PLUGIN_PROVIDE(PUBKEY_VERIFY, SIGN_RSA_EMSA_PKCS1_SHA2_384),
|
||||
PLUGIN_DEPENDS(HASHER, HASH_SHA384),
|
||||
PLUGIN_PROVIDE(PUBKEY_VERIFY, SIGN_RSA_EMSA_PKCS1_SHA2_512),
|
||||
PLUGIN_DEPENDS(HASHER, HASH_SHA512),
|
||||
PLUGIN_PROVIDE(PUBKEY_VERIFY, SIGN_RSA_EMSA_PKCS1_SHA3_224),
|
||||
PLUGIN_DEPENDS(HASHER, HASH_SHA3_224),
|
||||
PLUGIN_PROVIDE(PUBKEY_VERIFY, SIGN_RSA_EMSA_PKCS1_SHA3_256),
|
||||
PLUGIN_DEPENDS(HASHER, HASH_SHA3_256),
|
||||
PLUGIN_PROVIDE(PUBKEY_VERIFY, SIGN_RSA_EMSA_PKCS1_SHA3_384),
|
||||
PLUGIN_DEPENDS(HASHER, HASH_SHA3_384),
|
||||
PLUGIN_PROVIDE(PUBKEY_VERIFY, SIGN_RSA_EMSA_PKCS1_SHA3_512),
|
||||
PLUGIN_DEPENDS(HASHER, HASH_SHA3_512),
|
||||
PLUGIN_PROVIDE(PUBKEY_VERIFY, SIGN_RSA_EMSA_PKCS1_SHA1),
|
||||
PLUGIN_DEPENDS(HASHER, HASH_SHA1),
|
||||
PLUGIN_PROVIDE(PUBKEY_VERIFY, SIGN_RSA_EMSA_PKCS1_SHA224),
|
||||
PLUGIN_DEPENDS(HASHER, HASH_SHA224),
|
||||
PLUGIN_PROVIDE(PUBKEY_VERIFY, SIGN_RSA_EMSA_PKCS1_SHA256),
|
||||
PLUGIN_DEPENDS(HASHER, HASH_SHA256),
|
||||
PLUGIN_PROVIDE(PUBKEY_VERIFY, SIGN_RSA_EMSA_PKCS1_SHA384),
|
||||
PLUGIN_DEPENDS(HASHER, HASH_SHA384),
|
||||
PLUGIN_PROVIDE(PUBKEY_VERIFY, SIGN_RSA_EMSA_PKCS1_SHA512),
|
||||
PLUGIN_DEPENDS(HASHER, HASH_SHA512),
|
||||
PLUGIN_PROVIDE(PUBKEY_VERIFY, SIGN_RSA_EMSA_PKCS1_MD5),
|
||||
PLUGIN_DEPENDS(HASHER, HASH_MD5),
|
||||
/* en-/decryption schemes */
|
||||
|
||||
@@ -347,16 +347,24 @@ METHOD(private_key_t, sign, bool,
|
||||
{
|
||||
case SIGN_RSA_EMSA_PKCS1_NULL:
|
||||
return build_emsa_pkcs1_signature(this, HASH_UNKNOWN, data, signature);
|
||||
case SIGN_RSA_EMSA_PKCS1_SHA2_224:
|
||||
return build_emsa_pkcs1_signature(this, HASH_SHA224, data, signature);
|
||||
case SIGN_RSA_EMSA_PKCS1_SHA2_256:
|
||||
return build_emsa_pkcs1_signature(this, HASH_SHA256, data, signature);
|
||||
case SIGN_RSA_EMSA_PKCS1_SHA2_384:
|
||||
return build_emsa_pkcs1_signature(this, HASH_SHA384, data, signature);
|
||||
case SIGN_RSA_EMSA_PKCS1_SHA2_512:
|
||||
return build_emsa_pkcs1_signature(this, HASH_SHA512, data, signature);
|
||||
case SIGN_RSA_EMSA_PKCS1_SHA3_224:
|
||||
return build_emsa_pkcs1_signature(this, HASH_SHA3_224, data, signature);
|
||||
case SIGN_RSA_EMSA_PKCS1_SHA3_256:
|
||||
return build_emsa_pkcs1_signature(this, HASH_SHA3_256, data, signature);
|
||||
case SIGN_RSA_EMSA_PKCS1_SHA3_384:
|
||||
return build_emsa_pkcs1_signature(this, HASH_SHA3_384, data, signature);
|
||||
case SIGN_RSA_EMSA_PKCS1_SHA3_512:
|
||||
return build_emsa_pkcs1_signature(this, HASH_SHA3_512, data, signature);
|
||||
case SIGN_RSA_EMSA_PKCS1_SHA1:
|
||||
return build_emsa_pkcs1_signature(this, HASH_SHA1, data, signature);
|
||||
case SIGN_RSA_EMSA_PKCS1_SHA224:
|
||||
return build_emsa_pkcs1_signature(this, HASH_SHA224, data, signature);
|
||||
case SIGN_RSA_EMSA_PKCS1_SHA256:
|
||||
return build_emsa_pkcs1_signature(this, HASH_SHA256, data, signature);
|
||||
case SIGN_RSA_EMSA_PKCS1_SHA384:
|
||||
return build_emsa_pkcs1_signature(this, HASH_SHA384, data, signature);
|
||||
case SIGN_RSA_EMSA_PKCS1_SHA512:
|
||||
return build_emsa_pkcs1_signature(this, HASH_SHA512, data, signature);
|
||||
case SIGN_RSA_EMSA_PKCS1_MD5:
|
||||
return build_emsa_pkcs1_signature(this, HASH_MD5, data, signature);
|
||||
default:
|
||||
|
||||
@@ -291,18 +291,26 @@ METHOD(public_key_t, verify, bool,
|
||||
{
|
||||
case SIGN_RSA_EMSA_PKCS1_NULL:
|
||||
return verify_emsa_pkcs1_signature(this, HASH_UNKNOWN, data, signature);
|
||||
case SIGN_RSA_EMSA_PKCS1_MD5:
|
||||
return verify_emsa_pkcs1_signature(this, HASH_MD5, data, signature);
|
||||
case SIGN_RSA_EMSA_PKCS1_SHA2_224:
|
||||
return verify_emsa_pkcs1_signature(this, HASH_SHA224, data, signature);
|
||||
case SIGN_RSA_EMSA_PKCS1_SHA2_256:
|
||||
return verify_emsa_pkcs1_signature(this, HASH_SHA256, data, signature);
|
||||
case SIGN_RSA_EMSA_PKCS1_SHA2_384:
|
||||
return verify_emsa_pkcs1_signature(this, HASH_SHA384, data, signature);
|
||||
case SIGN_RSA_EMSA_PKCS1_SHA2_512:
|
||||
return verify_emsa_pkcs1_signature(this, HASH_SHA512, data, signature);
|
||||
case SIGN_RSA_EMSA_PKCS1_SHA3_224:
|
||||
return verify_emsa_pkcs1_signature(this, HASH_SHA3_224, data, signature);
|
||||
case SIGN_RSA_EMSA_PKCS1_SHA3_256:
|
||||
return verify_emsa_pkcs1_signature(this, HASH_SHA3_256, data, signature);
|
||||
case SIGN_RSA_EMSA_PKCS1_SHA3_384:
|
||||
return verify_emsa_pkcs1_signature(this, HASH_SHA3_384, data, signature);
|
||||
case SIGN_RSA_EMSA_PKCS1_SHA3_512:
|
||||
return verify_emsa_pkcs1_signature(this, HASH_SHA3_512, data, signature);
|
||||
case SIGN_RSA_EMSA_PKCS1_SHA1:
|
||||
return verify_emsa_pkcs1_signature(this, HASH_SHA1, data, signature);
|
||||
case SIGN_RSA_EMSA_PKCS1_SHA224:
|
||||
return verify_emsa_pkcs1_signature(this, HASH_SHA224, data, signature);
|
||||
case SIGN_RSA_EMSA_PKCS1_SHA256:
|
||||
return verify_emsa_pkcs1_signature(this, HASH_SHA256, data, signature);
|
||||
case SIGN_RSA_EMSA_PKCS1_SHA384:
|
||||
return verify_emsa_pkcs1_signature(this, HASH_SHA384, data, signature);
|
||||
case SIGN_RSA_EMSA_PKCS1_SHA512:
|
||||
return verify_emsa_pkcs1_signature(this, HASH_SHA512, data, signature);
|
||||
case SIGN_RSA_EMSA_PKCS1_MD5:
|
||||
return verify_emsa_pkcs1_signature(this, HASH_MD5, data, signature);
|
||||
default:
|
||||
DBG1(DBG_LIB, "signature scheme %N not supported in RSA",
|
||||
signature_scheme_names, scheme);
|
||||
|
||||
Reference in New Issue
Block a user