created signature_scheme_from_oid() helper function
This commit is contained in:
committed by
Martin Willi
parent
9410aa262a
commit
f3e87f5935
@@ -13,6 +13,8 @@
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#include <asn1/oid.h>
|
||||
|
||||
#include "public_key.h"
|
||||
|
||||
ENUM(key_type_names, KEY_RSA, KEY_DSA,
|
||||
@@ -21,7 +23,8 @@ ENUM(key_type_names, KEY_RSA, KEY_DSA,
|
||||
"DSA"
|
||||
);
|
||||
|
||||
ENUM(signature_scheme_names, SIGN_DEFAULT, SIGN_ECDSA_521,
|
||||
ENUM(signature_scheme_names, SIGN_UNKNOWN, SIGN_ECDSA_521,
|
||||
"UNKNOWN",
|
||||
"DEFAULT",
|
||||
"RSA_EMSA_PKCS1_NULL",
|
||||
"RSA_EMSA_PKCS1_MD5",
|
||||
@@ -35,3 +38,33 @@ ENUM(signature_scheme_names, SIGN_DEFAULT, SIGN_ECDSA_521,
|
||||
"ECDSA-521",
|
||||
);
|
||||
|
||||
/*
|
||||
* Defined in header.
|
||||
*/
|
||||
signature_scheme_t signature_scheme_from_oid(int oid)
|
||||
{
|
||||
switch (oid)
|
||||
{
|
||||
case OID_MD5_WITH_RSA:
|
||||
case OID_MD5:
|
||||
return SIGN_RSA_EMSA_PKCS1_MD5;
|
||||
case OID_SHA1_WITH_RSA:
|
||||
case OID_SHA1:
|
||||
return SIGN_RSA_EMSA_PKCS1_SHA1;
|
||||
case OID_SHA256_WITH_RSA:
|
||||
case OID_SHA256:
|
||||
return SIGN_RSA_EMSA_PKCS1_SHA256;
|
||||
case OID_SHA384_WITH_RSA:
|
||||
case OID_SHA384:
|
||||
return SIGN_RSA_EMSA_PKCS1_SHA384;
|
||||
case OID_SHA512_WITH_RSA:
|
||||
case OID_SHA512:
|
||||
return SIGN_RSA_EMSA_PKCS1_SHA512;
|
||||
case OID_ECDSA_WITH_SHA1:
|
||||
case OID_EC_PUBLICKEY:
|
||||
return SIGN_ECDSA_WITH_SHA1;
|
||||
default:
|
||||
return SIGN_UNKNOWN;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -58,6 +58,8 @@ extern enum_name_t *key_type_names;
|
||||
* variants is OCTET_STRING instead of the default BIT_STRING.
|
||||
*/
|
||||
enum signature_scheme_t {
|
||||
/** Unknown signature scheme */
|
||||
SIGN_UNKNOWN,
|
||||
/** Default scheme of the underlying crypto system */
|
||||
SIGN_DEFAULT,
|
||||
/** EMSA-PKCS1_v1.5 signature over digest without digestInfo */
|
||||
@@ -164,4 +166,12 @@ struct public_key_t {
|
||||
void (*destroy)(public_key_t *this);
|
||||
};
|
||||
|
||||
/**
|
||||
* Conversion of ASN.1 signature or hash OID to signature scheme.
|
||||
*
|
||||
* @param oid ASN.1 OID
|
||||
* @return signature_scheme, SIGN_UNKNOWN if OID is unsupported
|
||||
*/
|
||||
signature_scheme_t signature_scheme_from_oid(int oid);
|
||||
|
||||
#endif /** PUBLIC_KEY_H_ @}*/
|
||||
|
||||
Reference in New Issue
Block a user