Fix nid2* and *2nid functions

This commit is contained in:
Juliusz Sosinowicz
2020-03-19 16:05:59 +01:00
parent eb549f7095
commit 9722082372
6 changed files with 399 additions and 488 deletions

768
src/ssl.c
View File

@@ -30629,6 +30629,307 @@ int wolfSSL_cmp_peer_cert_to_file(WOLFSSL* ssl, const char *fname)
static WC_RNG globalRNG;
static int initGlobalRNG = 0;
#endif
#if defined(OPENSSL_EXTRA) || defined(OPENSSL_EXTRA_X509_SMALL)
const WOLFSSL_ObjectInfo wolfssl_object_info[] = {
#ifndef NO_CERTS
/* oidCertExtType */
{ NID_basic_constraints, BASIC_CA_OID, oidCertExtType, "basicConstraints",
"X509v3 Basic Constraints"},
{ NID_subject_alt_name, ALT_NAMES_OID, oidCertExtType, "subjectAltName",
"X509v3 Subject Alternative Name"},
{ CRL_DIST_OID, CRL_DIST_OID, oidCertExtType, "crlDistributionPoints",
"X509v3 CRL Distribution Points"},
{ NID_info_access, AUTH_INFO_OID, oidCertExtType, "authorityInfoAccess",
"Authority Information Access"},
{ NID_authority_key_identifier, AUTH_KEY_OID, oidCertExtType,
"authorityKeyIdentifier", "X509v3 Authority Key Identifier"},
{ NID_subject_key_identifier, SUBJ_KEY_OID, oidCertExtType,
"subjectKeyIdentifier", "X509v3 Subject Key Identifier"},
{ NID_key_usage, KEY_USAGE_OID, oidCertExtType, "keyUsage",
"X509v3 Key Usage"},
{ NID_inhibit_any_policy, INHIBIT_ANY_OID, oidCertExtType,
"inhibitAnyPolicy", "X509v3 Inhibit Any Policy"},
{ NID_ext_key_usage, KEY_USAGE_OID, oidCertExtType,
"extendedKeyUsage", "X509v3 Extended Key Usage"},
{ NID_name_constraints, NAME_CONS_OID, oidCertExtType,
"nameConstraints", "X509v3 Name Constraints"},
{ NID_certificate_policies, CERT_POLICY_OID, oidCertExtType,
"certificatePolicies", "X509v3 Certificate Policies"},
/* oidCertAuthInfoType */
{ AIA_OCSP_OID, AIA_OCSP_OID, oidCertAuthInfoType, "authorityInfoAccess",
"Authority Information Access"},
{ AIA_CA_ISSUER_OID, AIA_CA_ISSUER_OID, oidCertAuthInfoType,
"caIssuers", "CA Issuers"},
/* oidCertPolicyType */
{ NID_any_policy, CP_ANY_OID, oidCertPolicyType, "anyPolicy",
"X509v3 Any Policy"},
/* oidCertAltNameType */
{ NID_hw_name_oid, HW_NAME_OID, oidCertAltNameType, "Hardware name",""},
/* oidCertKeyUseType */
{ NID_anyExtendedKeyUsage, EKU_ANY_OID, oidCertKeyUseType,
"anyExtendedKeyUsage", "Any Extended Key Usage"},
{ EKU_SERVER_AUTH_OID, EKU_SERVER_AUTH_OID, oidCertKeyUseType,
"serverAuth", "TLS Web Server Authentication"},
{ EKU_CLIENT_AUTH_OID, EKU_CLIENT_AUTH_OID, oidCertKeyUseType,
"clientAuth", "TLS Web Client Authentication"},
{ EKU_OCSP_SIGN_OID, EKU_OCSP_SIGN_OID, oidCertKeyUseType,
"OCSPSigning", "OCSP Signing"},
/* oidCertNameType */
{ NID_commonName, NID_commonName, oidCertNameType, "CN", "commonName"},
{ NID_surname, NID_surname, oidCertNameType, "SN", "surname"},
{ NID_serialNumber, NID_serialNumber, oidCertNameType, "serialNumber",
"serialNumber"},
{ NID_countryName, NID_countryName, oidCertNameType, "C", "countryName"},
{ NID_localityName, NID_localityName, oidCertNameType, "L", "localityName"},
{ NID_stateOrProvinceName, NID_stateOrProvinceName, oidCertNameType, "ST",
"stateOrProvinceName"},
{ NID_organizationName, NID_organizationName, oidCertNameType, "O",
"organizationName"},
{ NID_organizationalUnitName, NID_organizationalUnitName, oidCertNameType,
"OU", "organizationalUnitName"},
{ NID_emailAddress, NID_emailAddress, oidCertNameType, "emailAddress",
"emailAddress"},
{ NID_domainComponent, NID_domainComponent, oidCertNameType, "DC",
"domainComponent"},
{ NID_businessCategory, NID_businessCategory, oidCertNameType, "businessCategory",
"businessCategory"},
{ NID_jurisdictionCountryName, NID_jurisdictionCountryName, oidCertNameType, "jurisdictionC",
"jurisdictionCountryName"},
{ NID_jurisdictionStateOrProvinceName, NID_jurisdictionStateOrProvinceName,
oidCertNameType, "jurisdictionST", "jurisdictionStateOrProvinceName"},
#endif
#ifdef OPENSSL_EXTRA /* OPENSSL_EXTRA_X509_SMALL only needs the above */
/* oidHashType */
#ifdef WOLFSSL_MD2
{ NID_md2, MD2h, oidHashType, "MD2", "md2"},
#endif
#ifdef WOLFSSL_MD5
{ NID_md5, MD5h, oidHashType, "MD5", "md5"},
#endif
#ifndef NO_SHA
{ NID_sha1, SHAh, oidHashType, "SHA1", "sha1"},
#endif
#ifdef WOLFSSL_SHA224
{ NID_sha224, SHA224h, oidHashType, "SHA224", "sha224"},
#endif
#ifndef NO_SHA256
{ NID_sha256, SHA256h, oidHashType, "SHA256", "sha256"},
#endif
#ifdef WOLFSSL_SHA384
{ NID_sha384, SHA384h, oidHashType, "SHA384", "sha384"},
#endif
#ifdef WOLFSSL_SHA512
{ NID_sha512, SHA512h, oidHashType, "SHA512", "sha512"},
#endif
/* oidSigType */
#ifndef NO_DSA
#ifndef NO_SHA
{ CTC_SHAwDSA, CTC_SHAwDSA, oidSigType, "DSA-SHA1", "dsaWithSHA1"},
#endif
#endif /* NO_DSA */
#ifndef NO_RSA
#ifdef WOLFSSL_MD2
{ CTC_MD2wRSA, CTC_MD2wRSA, oidSigType, "RSA-MD2",
"md2WithRSAEncryption"},
#endif
#ifndef NO_MD5
{ CTC_MD5wRSA, CTC_MD5wRSA, oidSigType, "RSA-MD5",
"md5WithRSAEncryption"},
#endif
#ifndef NO_SHA
{ CTC_SHAwRSA, CTC_SHAwRSA, oidSigType, "RSA-SHA1",
"sha1WithRSAEncryption"},
#endif
#ifdef WOLFSSL_SHA224
{ CTC_SHA224wRSA, CTC_SHA224wRSA, oidSigType, "RSA-SHA224",
"sha224WithRSAEncryption"},
#endif
#ifndef NO_SHA256
{ CTC_SHA256wRSA, CTC_SHA256wRSA, oidSigType, "RSA-SHA256",
"sha256WithRSAEncryption"},
#endif
#ifdef WOLFSSL_SHA384
{ CTC_SHA384wRSA, CTC_SHA384wRSA, oidSigType, "RSA-SHA384",
"sha384WithRSAEncryption"},
#endif
#ifdef WOLFSSL_SHA512
{ CTC_SHA512wRSA, CTC_SHA512wRSA, oidSigType, "RSA-SHA512",
"sha512WithRSAEncryption"},
#endif
#endif /* NO_RSA */
#ifdef HAVE_ECC
#ifndef NO_SHA
{ CTC_SHAwECDSA, CTC_SHAwECDSA, oidSigType, "ecdsa-with-SHA1", "shaWithECDSA"},
#endif
#ifdef WOLFSSL_SHA224
{ CTC_SHA224wECDSA, CTC_SHA224wECDSA, oidSigType, "ecdsa-with-SHA224","sha224WithECDSA"},
#endif
#ifndef NO_SHA256
{ CTC_SHA256wECDSA, CTC_SHA256wECDSA, oidSigType, "ecdsa-with-SHA256","sha256WithECDSA"},
#endif
#ifdef WOLFSSL_SHA384
{ CTC_SHA384wECDSA, CTC_SHA384wECDSA, oidSigType, "ecdsa-with-SHA384","sha384WithECDSA"},
#endif
#ifdef WOLFSSL_SHA512
{ CTC_SHA512wECDSA, CTC_SHA512wECDSA, oidSigType, "ecdsa-with-SHA512","sha512WithECDSA"},
#endif
#endif /* HAVE_ECC */
/* oidKeyType */
#ifndef NO_DSA
{ DSAk, DSAk, oidKeyType, "DSA", "dsaEncryption"},
#endif /* NO_DSA */
#ifndef NO_RSA
{ RSAk, RSAk, oidKeyType, "RSA", "rsaEncryption"},
#endif /* NO_RSA */
#ifdef HAVE_NTRU
{ NTRUk, NTRUk, oidKeyType, "NTRU", "ntruEncryption"},
#endif /* HAVE_NTRU */
#ifdef HAVE_ECC
{ ECDSAk, ECDSAk, oidKeyType, "ECDSA", "ecdsaEncryption"},
#endif /* HAVE_ECC */
/* oidCurveType */
#ifdef HAVE_ECC
{ NID_X9_62_prime192v1, ECC_SECP192R1_OID, oidCurveType, "prime192v1", "prime192v1"},
{ NID_X9_62_prime192v2, ECC_PRIME192V2_OID, oidCurveType, "prime192v2", "prime192v2"},
{ NID_X9_62_prime192v3, ECC_PRIME192V3_OID, oidCurveType, "prime192v3", "prime192v3"},
{ NID_X9_62_prime239v1, ECC_PRIME239V1_OID, oidCurveType, "prime239v1", "prime239v1"},
{ NID_X9_62_prime239v2, ECC_PRIME239V2_OID, oidCurveType, "prime239v2", "prime239v2"},
{ NID_X9_62_prime239v3, ECC_PRIME239V3_OID, oidCurveType, "prime239v3", "prime239v3"},
{ NID_X9_62_prime256v1, ECC_SECP256R1_OID, oidCurveType, "prime256v1", "prime256v1"},
{ NID_secp112r1, ECC_SECP112R1_OID, oidCurveType, "secp112r1", "secp112r1"},
{ NID_secp112r2, ECC_SECP112R2_OID, oidCurveType, "secp112r2", "secp112r2"},
{ NID_secp128r1, ECC_SECP128R1_OID, oidCurveType, "secp128r1", "secp128r1"},
{ NID_secp128r2, ECC_SECP128R2_OID, oidCurveType, "secp128r2", "secp128r2"},
{ NID_secp160r1, ECC_SECP160R1_OID, oidCurveType, "secp160r1", "secp160r1"},
{ NID_secp160r2, ECC_SECP160R2_OID, oidCurveType, "secp160r2", "secp160r2"},
{ NID_secp224r1, ECC_SECP224R1_OID, oidCurveType, "secp224r1", "secp224r1"},
{ NID_secp384r1, ECC_SECP384R1_OID, oidCurveType, "secp384r1", "secp384r1"},
{ NID_secp521r1, ECC_SECP521R1_OID, oidCurveType, "secp521r1", "secp521r1"},
{ NID_secp160k1, ECC_SECP160K1_OID, oidCurveType, "secp160k1", "secp160k1"},
{ NID_secp192k1, ECC_SECP192K1_OID, oidCurveType, "secp192k1", "secp192k1"},
{ NID_secp224k1, ECC_SECP224K1_OID, oidCurveType, "secp224k1", "secp224k1"},
{ NID_secp256k1, ECC_SECP256K1_OID, oidCurveType, "secp256k1", "secp256k1"},
{ NID_brainpoolP160r1, ECC_BRAINPOOLP160R1_OID, oidCurveType, "brainpoolP160r1", "brainpoolP160r1"},
{ NID_brainpoolP192r1, ECC_BRAINPOOLP192R1_OID, oidCurveType, "brainpoolP192r1", "brainpoolP192r1"},
{ NID_brainpoolP224r1, ECC_BRAINPOOLP224R1_OID, oidCurveType, "brainpoolP224r1", "brainpoolP224r1"},
{ NID_brainpoolP256r1, ECC_BRAINPOOLP256R1_OID, oidCurveType, "brainpoolP256r1", "brainpoolP256r1"},
{ NID_brainpoolP320r1, ECC_BRAINPOOLP320R1_OID, oidCurveType, "brainpoolP320r1", "brainpoolP320r1"},
{ NID_brainpoolP384r1, ECC_BRAINPOOLP384R1_OID, oidCurveType, "brainpoolP384r1", "brainpoolP384r1"},
{ NID_brainpoolP512r1, ECC_BRAINPOOLP512R1_OID, oidCurveType, "brainpoolP512r1", "brainpoolP512r1"},
#endif /* HAVE_ECC */
/* oidBlkType */
#ifdef WOLFSSL_AES_128
{ AES128CBCb, AES128CBCb, oidBlkType, "AES-128-CBC", "aes-128-cbc"},
#endif
#ifdef WOLFSSL_AES_192
{ AES192CBCb, AES192CBCb, oidBlkType, "AES-192-CBC", "aes-192-cbc"},
#endif
#ifdef WOLFSSL_AES_256
{ AES256CBCb, AES256CBCb, oidBlkType, "AES-256-CBC", "aes-256-cbc"},
#endif
#ifndef NO_DES3
{ NID_des, DESb, oidBlkType, "DES-CBC", "des-cbc"},
{ NID_des3, DES3b, oidBlkType, "DES-EDE3-CBC", "des-ede3-cbc"},
#endif /* !NO_DES3 */
/* oidOcspType */
#ifdef HAVE_OCSP
{ NID_id_pkix_OCSP_basic, OCSP_BASIC_OID, oidOcspType, "basicOCSPResponse",
"Basic OCSP Response"},
{ OCSP_NONCE_OID, OCSP_NONCE_OID, oidOcspType, "Nonce",
"OCSP Nonce"},
#endif /* HAVE_OCSP */
#ifndef NO_PWDBASED
/* oidKdfType */
{ PBKDF2_OID, PBKDF2_OID, oidKdfType, "PBKDFv2", "PBKDF2"},
/* oidPBEType */
{ PBE_SHA1_RC4_128, PBE_SHA1_RC4_128, oidPBEType,
"PBE-SHA1-RC4-128", "pbeWithSHA1And128BitRC4"},
{ PBE_SHA1_DES, PBE_SHA1_DES, oidPBEType, "PBE-SHA1-DES",
"pbeWithSHA1AndDES-CBC"},
{ PBE_SHA1_DES3, PBE_SHA1_DES3, oidPBEType, "PBE-SHA1-3DES",
"pbeWithSHA1And3-KeyTripleDES-CBC"},
#endif
/* oidKeyWrapType */
#ifdef WOLFSSL_AES_128
{ AES128_WRAP, AES128_WRAP, oidKeyWrapType, "AES-128 wrap", "aes128-wrap"},
#endif
#ifdef WOLFSSL_AES_192
{ AES192_WRAP, AES192_WRAP, oidKeyWrapType, "AES-192 wrap", "aes192-wrap"},
#endif
#ifdef WOLFSSL_AES_256
{ AES256_WRAP, AES256_WRAP, oidKeyWrapType, "AES-256 wrap", "aes256-wrap"},
#endif
#ifndef NO_PKCS7
#ifndef NO_DH
/* oidCmsKeyAgreeType */
#ifndef NO_SHA
{ dhSinglePass_stdDH_sha1kdf_scheme, dhSinglePass_stdDH_sha1kdf_scheme,
oidCmsKeyAgreeType, "dhSinglePass-stdDH-sha1kdf-scheme", "dhSinglePass-stdDH-sha1kdf-scheme"},
#endif
#ifdef WOLFSSL_SHA224
{ dhSinglePass_stdDH_sha224kdf_scheme,
dhSinglePass_stdDH_sha224kdf_scheme, oidCmsKeyAgreeType,
"dhSinglePass-stdDH-sha224kdf-scheme", "dhSinglePass-stdDH-sha224kdf-scheme"},
#endif
#ifndef NO_SHA256
{ dhSinglePass_stdDH_sha256kdf_scheme,
dhSinglePass_stdDH_sha256kdf_scheme, oidCmsKeyAgreeType,
"dhSinglePass-stdDH-sha256kdf-scheme", "dhSinglePass-stdDH-sha256kdf-scheme"},
#endif
#ifdef WOLFSSL_SHA384
{ dhSinglePass_stdDH_sha384kdf_scheme,
dhSinglePass_stdDH_sha384kdf_scheme, oidCmsKeyAgreeType,
"dhSinglePass-stdDH-sha384kdf-scheme", "dhSinglePass-stdDH-sha384kdf-scheme"},
#endif
#ifdef WOLFSSL_SHA512
{ dhSinglePass_stdDH_sha512kdf_scheme,
dhSinglePass_stdDH_sha512kdf_scheme, oidCmsKeyAgreeType,
"dhSinglePass-stdDH-sha512kdf-scheme", "dhSinglePass-stdDH-sha512kdf-scheme"},
#endif
#endif
#endif
#if defined(WOLFSSL_APACHE_HTTPD)
/* "1.3.6.1.5.5.7.8.7" */
{ NID_id_on_dnsSRV, NID_id_on_dnsSRV, oidCertNameType,
WOLFSSL_SN_DNS_SRV, WOLFSSL_LN_DNS_SRV },
/* "1.3.6.1.4.1.311.20.2.3" */
{ NID_ms_upn, WOLFSSL_MS_UPN_SUM, oidCertExtType, WOLFSSL_SN_MS_UPN,
WOLFSSL_LN_MS_UPN },
/* "1.3.6.1.5.5.7.1.24" */
{ NID_tlsfeature, WOLFSSL_TLS_FEATURE_SUM, oidTlsExtType,
WOLFSSL_SN_TLS_FEATURE, WOLFSSL_LN_TLS_FEATURE },
#endif
#endif /* OPENSSL_EXTRA */
};
#define WOLFSSL_OBJECT_INFO_SZ \
(sizeof(wolfssl_object_info) / sizeof(*wolfssl_object_info))
const size_t wolfssl_object_info_sz = WOLFSSL_OBJECT_INFO_SZ;
#endif
#if defined(OPENSSL_EXTRA) && \
!defined(NO_RSA) && !defined(HAVE_USER_RSA) && !defined(HAVE_FAST_RSA)
WC_RNG* WOLFSSL_RSA_GetRNG(WOLFSSL_RSA *rsa, WC_RNG **tmpRNG, int *initTmpRng)
@@ -36878,11 +37179,12 @@ int wolfSSL_EC_POINT_is_at_infinity(const WOLFSSL_EC_GROUP *group,
size_t wolfSSL_EC_get_builtin_curves(WOLFSSL_EC_BUILTIN_CURVE *r, size_t nitems)
{
size_t ecc_sets_count;
size_t i, min_nitems;
for (i = 0; ecc_sets[i].size != 0; i++);
#ifdef HAVE_SELFTEST
size_t ecc_sets_count;
for (i = 0; ecc_sets[i].size != 0 && ecc_sets[i].name != NULL; i++);
ecc_sets_count = i;
#endif
if (r == NULL || nitems == 0)
return ecc_sets_count;
@@ -36891,7 +37193,7 @@ size_t wolfSSL_EC_get_builtin_curves(WOLFSSL_EC_BUILTIN_CURVE *r, size_t nitems)
for (i = 0; i < min_nitems; i++) {
r[i].nid = EccEnumToNID(ecc_sets[i].id);
r[i].comment = ecc_sets[i].name;
r[i].comment = wolfSSL_OBJ_nid2sn(r[i].nid);
}
return ecc_sets_count;
@@ -39922,7 +40224,6 @@ void* wolfSSL_GetDhAgreeCtx(WOLFSSL* ssl)
void wolfSSL_cert_service(void) {}
#endif
#ifdef OPENSSL_EXTRA
#ifndef NO_CERTS
void wolfSSL_X509_NAME_free(WOLFSSL_X509_NAME *name)
@@ -41857,303 +42158,6 @@ err:
return SSL_SUCCESS;
}
typedef struct WOLFSSL_ObjectInfo {
int nid;
int id;
word32 type;
const char* sName;
const char* lName;
} WOLFSSL_ObjectInfo;
static WOLFSSL_ObjectInfo wolfssl_object_info[] = {
/* oidHashType */
#ifdef WOLFSSL_MD2
{ NID_md2, MD2h, oidHashType, "MD2", "md2"},
#endif
#ifdef WOLFSSL_MD5
{ NID_md5, MD5h, oidHashType, "MD5", "md5"},
#endif
#ifndef NO_SHA
{ NID_sha1, SHAh, oidHashType, "SHA1", "sha1"},
#endif
#ifdef WOLFSSL_SHA224
{ NID_sha224, SHA224h, oidHashType, "SHA224", "sha224"},
#endif
#ifndef NO_SHA256
{ NID_sha256, SHA256h, oidHashType, "SHA256", "sha256"},
#endif
#ifdef WOLFSSL_SHA384
{ NID_sha384, SHA384h, oidHashType, "SHA384", "sha384"},
#endif
#ifdef WOLFSSL_SHA512
{ NID_sha512, SHA512h, oidHashType, "SHA512", "sha512"},
#endif
/* oidSigType */
#ifndef NO_DSA
#ifndef NO_SHA
{ CTC_SHAwDSA, CTC_SHAwDSA, oidSigType, "DSA-SHA1", "dsaWithSHA1"},
#endif
#endif /* NO_DSA */
#ifndef NO_RSA
#ifdef WOLFSSL_MD2
{ CTC_MD2wRSA, CTC_MD2wRSA, oidSigType, "RSA-MD2",
"md2WithRSAEncryption"},
#endif
#ifndef NO_MD5
{ CTC_MD5wRSA, CTC_MD5wRSA, oidSigType, "RSA-MD5",
"md5WithRSAEncryption"},
#endif
#ifndef NO_SHA
{ CTC_SHAwRSA, CTC_SHAwRSA, oidSigType, "RSA-SHA1",
"sha1WithRSAEncryption"},
#endif
#ifdef WOLFSSL_SHA224
{ CTC_SHA224wRSA, CTC_SHA224wRSA, oidSigType, "RSA-SHA224",
"sha224WithRSAEncryption"},
#endif
#ifndef NO_SHA256
{ CTC_SHA256wRSA, CTC_SHA256wRSA, oidSigType, "RSA-SHA256",
"sha256WithRSAEncryption"},
#endif
#ifdef WOLFSSL_SHA384
{ CTC_SHA384wRSA, CTC_SHA384wRSA, oidSigType, "RSA-SHA384",
"sha384WithRSAEncryption"},
#endif
#ifdef WOLFSSL_SHA512
{ CTC_SHA512wRSA, CTC_SHA512wRSA, oidSigType, "RSA-SHA512",
"sha512WithRSAEncryption"},
#endif
#endif /* NO_RSA */
#ifdef HAVE_ECC
#ifndef NO_SHA
{ CTC_SHAwECDSA, CTC_SHAwECDSA, oidSigType, "ecdsa-with-SHA1", "shaWithECDSA"},
#endif
#ifdef WOLFSSL_SHA224
{ CTC_SHA224wECDSA, CTC_SHA224wECDSA, oidSigType, "ecdsa-with-SHA224","sha224WithECDSA"},
#endif
#ifndef NO_SHA256
{ CTC_SHA256wECDSA, CTC_SHA256wECDSA, oidSigType, "ecdsa-with-SHA256","sha256WithECDSA"},
#endif
#ifdef WOLFSSL_SHA384
{ CTC_SHA384wECDSA, CTC_SHA384wECDSA, oidSigType, "ecdsa-with-SHA384","sha384WithECDSA"},
#endif
#ifdef WOLFSSL_SHA512
{ CTC_SHA512wECDSA, CTC_SHA512wECDSA, oidSigType, "ecdsa-with-SHA512","sha512WithECDSA"},
#endif
#endif /* HAVE_ECC */
/* oidKeyType */
#ifndef NO_DSA
{ DSAk, DSAk, oidKeyType, "DSA", "dsaEncryption"},
#endif /* NO_DSA */
#ifndef NO_RSA
{ RSAk, RSAk, oidKeyType, "RSA", "rsaEncryption"},
#endif /* NO_RSA */
#ifdef HAVE_NTRU
{ NTRUk, NTRUk, oidKeyType, "NTRU", "ntruEncryption"},
#endif /* HAVE_NTRU */
#ifdef HAVE_ECC
{ ECDSAk, ECDSAk, oidKeyType, "ECDSA", "ecdsaEncryption"},
#endif /* HAVE_ECC */
/* oidCurveType */
#ifdef HAVE_ECC
{ NID_X9_62_prime192v1, ECC_SECP192R1_OID, oidCurveType, "prime192v1", ""},
{ NID_X9_62_prime192v2, ECC_PRIME192V2_OID, oidCurveType, "prime192v2", ""},
{ NID_X9_62_prime192v3, ECC_PRIME192V3_OID, oidCurveType, "prime192v3", ""},
{ NID_X9_62_prime239v1, ECC_PRIME239V1_OID, oidCurveType, "prime239v1", ""},
{ NID_X9_62_prime239v2, ECC_PRIME239V2_OID, oidCurveType, "prime239v2", ""},
{ NID_X9_62_prime239v3, ECC_PRIME239V3_OID, oidCurveType, "prime239v3", ""},
{ NID_X9_62_prime256v1, ECC_SECP256R1_OID, oidCurveType, "prime256v1", ""},
{ NID_secp112r1, ECC_SECP112R1_OID, oidCurveType, "secp112r1", ""},
{ NID_secp112r2, ECC_SECP112R2_OID, oidCurveType, "secp112r2", ""},
{ NID_secp128r1, ECC_SECP128R1_OID, oidCurveType, "secp128r1", ""},
{ NID_secp128r2, ECC_SECP128R2_OID, oidCurveType, "secp128r2", ""},
{ NID_secp160r1, ECC_SECP160R1_OID, oidCurveType, "secp160r1", ""},
{ NID_secp160r2, ECC_SECP160R2_OID, oidCurveType, "secp160r2", ""},
{ NID_secp224r1, ECC_SECP224R1_OID, oidCurveType, "secp224r1", ""},
{ NID_secp384r1, ECC_SECP384R1_OID, oidCurveType, "secp384r1", ""},
{ NID_secp521r1, ECC_SECP521R1_OID, oidCurveType, "secp521r1", ""},
{ NID_secp160k1, ECC_SECP160K1_OID, oidCurveType, "secp160k1", ""},
{ NID_secp192k1, ECC_SECP192K1_OID, oidCurveType, "secp192k1", ""},
{ NID_secp224k1, ECC_SECP224K1_OID, oidCurveType, "secp224k1", ""},
{ NID_secp256k1, ECC_SECP256K1_OID, oidCurveType, "secp256k1", ""},
{ NID_brainpoolP160r1, ECC_BRAINPOOLP160R1_OID, oidCurveType, "brainpoolP160r1", ""},
{ NID_brainpoolP192r1, ECC_BRAINPOOLP192R1_OID, oidCurveType, "brainpoolP192r1", ""},
{ NID_brainpoolP224r1, ECC_BRAINPOOLP224R1_OID, oidCurveType, "brainpoolP224r1", ""},
{ NID_brainpoolP256r1, ECC_BRAINPOOLP256R1_OID, oidCurveType, "brainpoolP256r1", ""},
{ NID_brainpoolP320r1, ECC_BRAINPOOLP320R1_OID, oidCurveType, "brainpoolP320r1", ""},
{ NID_brainpoolP384r1, ECC_BRAINPOOLP384R1_OID, oidCurveType, "brainpoolP384r1", ""},
{ NID_brainpoolP512r1, ECC_BRAINPOOLP512R1_OID, oidCurveType, "brainpoolP512r1", ""},
#endif /* HAVE_ECC */
/* oidBlkType */
#ifdef WOLFSSL_AES_128
{ AES128CBCb, AES128CBCb, oidBlkType, "AES-128-CBC", "aes-128-cbc"},
#endif
#ifdef WOLFSSL_AES_192
{ AES192CBCb, AES192CBCb, oidBlkType, "AES-192-CBC", "aes-192-cbc"},
#endif
#ifdef WOLFSSL_AES_256
{ AES256CBCb, AES256CBCb, oidBlkType, "AES-256-CBC", "aes-256-cbc"},
#endif
#ifndef NO_DES3
{ NID_des, DESb, oidBlkType, "DES-CBC", "des-cbc"},
{ NID_des3, DES3b, oidBlkType, "DES-EDE3-CBC", "des-ede3-cbc"},
#endif /* !NO_DES3 */
/* oidOcspType */
#ifdef HAVE_OCSP
{ NID_id_pkix_OCSP_basic, OCSP_BASIC_OID, oidOcspType, "basicOCSPResponse",
"Basic OCSP Response"},
{ OCSP_NONCE_OID, OCSP_NONCE_OID, oidOcspType, "Nonce",
"OCSP Nonce"},
#endif /* HAVE_OCSP */
#ifndef NO_CERTS
/* oidCertExtType */
{ NID_basic_constraints, BASIC_CA_OID, oidCertExtType, "basicConstraints",
"X509v3 Basic Constraints"},
{ NID_subject_alt_name, ALT_NAMES_OID, oidCertExtType, "subjectAltName",
"X509v3 Subject Alternative Name"},
{ CRL_DIST_OID, CRL_DIST_OID, oidCertExtType, "crlDistributionPoints",
"X509v3 CRL Distribution Points"},
{ NID_info_access, AUTH_INFO_OID, oidCertExtType, "authorityInfoAccess",
"Authority Information Access"},
{ NID_authority_key_identifier, AUTH_KEY_OID, oidCertExtType,
"authorityKeyIdentifier", "X509v3 Authority Key Identifier"},
{ NID_subject_key_identifier, SUBJ_KEY_OID, oidCertExtType,
"subjectKeyIdentifier", "X509v3 Subject Key Identifier"},
{ NID_key_usage, KEY_USAGE_OID, oidCertExtType, "keyUsage",
"X509v3 Key Usage"},
{ NID_inhibit_any_policy, INHIBIT_ANY_OID, oidCertExtType,
"inhibitAnyPolicy", "X509v3 Inhibit Any Policy"},
{ NID_ext_key_usage, KEY_USAGE_OID, oidCertExtType,
"extendedKeyUsage", "X509v3 Extended Key Usage"},
{ NID_name_constraints, NAME_CONS_OID, oidCertExtType,
"nameConstraints", "X509v3 Name Constraints"},
{ NID_certificate_policies, CERT_POLICY_OID, oidCertExtType,
"certificatePolicies", "X509v3 Certificate Policies"},
/* oidCertAuthInfoType */
{ AIA_OCSP_OID, AIA_OCSP_OID, oidCertAuthInfoType, "authorityInfoAccess",
"Authority Information Access"},
{ AIA_CA_ISSUER_OID, AIA_CA_ISSUER_OID, oidCertAuthInfoType,
"caIssuers", "CA Issuers"},
/* oidCertPolicyType */
{ NID_any_policy, CP_ANY_OID, oidCertPolicyType, "anyPolicy",
"X509v3 Any Policy"},
/* oidCertAltNameType */
{ NID_hw_name_oid, HW_NAME_OID, oidCertAltNameType, "Hardware name",""},
/* oidCertKeyUseType */
{ NID_anyExtendedKeyUsage, EKU_ANY_OID, oidCertKeyUseType,
"anyExtendedKeyUsage", "Any Extended Key Usage"},
{ EKU_SERVER_AUTH_OID, EKU_SERVER_AUTH_OID, oidCertKeyUseType,
"serverAuth", "TLS Web Server Authentication"},
{ EKU_CLIENT_AUTH_OID, EKU_CLIENT_AUTH_OID, oidCertKeyUseType,
"clientAuth", "TLS Web Client Authentication"},
{ EKU_OCSP_SIGN_OID, EKU_OCSP_SIGN_OID, oidCertKeyUseType,
"OCSPSigning", "OCSP Signing"},
/* oidCertNameType */
{ NID_commonName, NID_commonName, oidCertNameType, "CN", "commonName"},
{ NID_surname, NID_surname, oidCertNameType, "SN", "surname"},
{ NID_serialNumber, NID_serialNumber, oidCertNameType, "serialNumber",
"serialNumber"},
{ NID_countryName, NID_countryName, oidCertNameType, "C", "countryName"},
{ NID_localityName, NID_localityName, oidCertNameType, "L", "localityName"},
{ NID_stateOrProvinceName, NID_stateOrProvinceName, oidCertNameType, "ST",
"stateOrProvinceName"},
{ NID_organizationName, NID_organizationName, oidCertNameType, "O",
"organizationName"},
{ NID_organizationalUnitName, NID_organizationalUnitName, oidCertNameType,
"OU", "organizationUnitName"},
{ NID_emailAddress, NID_emailAddress, oidCertNameType, "emailAddress",
"emailAddress"},
#endif
#ifndef NO_PWDBASED
/* oidKdfType */
{ PBKDF2_OID, PBKDF2_OID, oidKdfType, "PBKDFv2", "PBKDF2"},
/* oidPBEType */
{ PBE_SHA1_RC4_128, PBE_SHA1_RC4_128, oidPBEType,
"PBE-SHA1-RC4-128", "pbeWithSHA1And128BitRC4"},
{ PBE_SHA1_DES, PBE_SHA1_DES, oidPBEType, "PBE-SHA1-DES",
"pbeWithSHA1AndDES-CBC"},
{ PBE_SHA1_DES3, PBE_SHA1_DES3, oidPBEType, "PBE-SHA1-3DES",
"pbeWithSHA1And3-KeyTripleDES-CBC"},
#endif
/* oidKeyWrapType */
#ifdef WOLFSSL_AES_128
{ AES128_WRAP, AES128_WRAP, oidKeyWrapType, "AES-128 wrap", "aes128-wrap"},
#endif
#ifdef WOLFSSL_AES_192
{ AES192_WRAP, AES192_WRAP, oidKeyWrapType, "AES-192 wrap", "aes192-wrap"},
#endif
#ifdef WOLFSSL_AES_256
{ AES256_WRAP, AES256_WRAP, oidKeyWrapType, "AES-256 wrap", "aes256-wrap"},
#endif
#ifndef NO_PKCS7
#ifndef NO_DH
/* oidCmsKeyAgreeType */
#ifndef NO_SHA
{ dhSinglePass_stdDH_sha1kdf_scheme, dhSinglePass_stdDH_sha1kdf_scheme,
oidCmsKeyAgreeType, "dhSinglePass-stdDH-sha1kdf-scheme", "dhSinglePass-stdDH-sha1kdf-scheme"},
#endif
#ifdef WOLFSSL_SHA224
{ dhSinglePass_stdDH_sha224kdf_scheme,
dhSinglePass_stdDH_sha224kdf_scheme, oidCmsKeyAgreeType,
"dhSinglePass-stdDH-sha224kdf-scheme", "dhSinglePass-stdDH-sha224kdf-scheme"},
#endif
#ifndef NO_SHA256
{ dhSinglePass_stdDH_sha256kdf_scheme,
dhSinglePass_stdDH_sha256kdf_scheme, oidCmsKeyAgreeType,
"dhSinglePass-stdDH-sha256kdf-scheme", "dhSinglePass-stdDH-sha256kdf-scheme"},
#endif
#ifdef WOLFSSL_SHA384
{ dhSinglePass_stdDH_sha384kdf_scheme,
dhSinglePass_stdDH_sha384kdf_scheme, oidCmsKeyAgreeType,
"dhSinglePass-stdDH-sha384kdf-scheme", "dhSinglePass-stdDH-sha384kdf-scheme"},
#endif
#ifdef WOLFSSL_SHA512
{ dhSinglePass_stdDH_sha512kdf_scheme,
dhSinglePass_stdDH_sha512kdf_scheme, oidCmsKeyAgreeType,
"dhSinglePass-stdDH-sha512kdf-scheme", "dhSinglePass-stdDH-sha512kdf-scheme"},
#endif
#endif
#endif
#if defined(WOLFSSL_APACHE_HTTPD)
/* "1.3.6.1.5.5.7.8.7" */
{ NID_id_on_dnsSRV, NID_id_on_dnsSRV, oidCertNameType,
WOLFSSL_SN_DNS_SRV, WOLFSSL_LN_DNS_SRV },
/* "1.3.6.1.4.1.311.20.2.3" */
{ NID_ms_upn, WOLFSSL_MS_UPN_SUM, oidCertExtType, WOLFSSL_SN_MS_UPN,
WOLFSSL_LN_MS_UPN },
/* "1.3.6.1.5.5.7.1.24" */
{ NID_tlsfeature, WOLFSSL_TLS_FEATURE_SUM, oidTlsExtType,
WOLFSSL_SN_TLS_FEATURE, WOLFSSL_LN_TLS_FEATURE },
#endif
};
#define WOLFSSL_OBJECT_INFO_SZ \
(sizeof(wolfssl_object_info) / sizeof(*wolfssl_object_info))
int wolfSSL_X509_NAME_add_entry_by_txt(WOLFSSL_X509_NAME *name,
const char *field, int type,
const unsigned char *bytes, int len,
@@ -42765,71 +42769,20 @@ err:
* or NULL if short name can't be found.
*/
const char * wolfSSL_OBJ_nid2sn(int n) {
const WOLFSSL_ObjectInfo *obj_info = wolfssl_object_info;
size_t i;
WOLFSSL_ENTER("wolfSSL_OBJ_nid2sn");
switch(n)
{
case NID_commonName :
return "CN";
case NID_countryName :
return "C";
case NID_localityName :
return "L";
case NID_stateOrProvinceName :
return "ST";
case NID_organizationName :
return "O";
case NID_organizationalUnitName :
return "OU";
case NID_emailAddress :
return "emailAddress";
case NID_basic_constraints :
return "basicConstraints";
case NID_subject_key_identifier :
return "subjectKeyIdentifier";
case NID_authority_key_identifier :
return "authorityKeyIdentifier";
case NID_certificate_policies:
return "certificatePolicies";
case NID_key_usage :
return "keyUsage";
case NID_info_access :
return "authorityInfoAccess";
case NID_crl_distribution_points :
return "cRLDistributionPoints";
case EXT_KEY_USAGE_OID :
return "extKeyUsage";
case AIA_OCSP_OID:
return "OCSP";
case AIA_CA_ISSUER_OID:
return "caIssuers";
default :
break;
}
#ifdef HAVE_ECC
{
int eccEnum;
int i;
/* Convert OpenSSL NID to enum value in ecc_curve_id */
if ((eccEnum = NIDToEccEnum(n)) != -1) {
/* find sn based on NID and return name */
for (i = 0; ecc_sets[i].size != 0; i++) {
if (eccEnum == ecc_sets[i].id) {
return ecc_sets[i].name;
}
}
for (i = 0; i < WOLFSSL_OBJECT_INFO_SZ; i++, obj_info++) {
if (obj_info->nid == n) {
return obj_info->sName;
}
}
#endif /* HAVE_ECC */
WOLFSSL_MSG("SN not found");
return NULL;
}
#if defined(OPENSSL_EXTRA) || defined(OPENSSL_EXTRA_X509_SMALL)
int wolfSSL_OBJ_sn2nid(const char *sn) {
WOLFSSL_ENTER("wolfSSL_OBJ_sn2nid");
if (sn == NULL)
return NID_undef;
@@ -42877,49 +42830,14 @@ err:
* n : NID value of ASN1_OBJECT to search */
const char* wolfSSL_OBJ_nid2ln(int n)
{
int i;
const WOLFSSL_ObjectInfo *obj_info = wolfssl_object_info;
size_t i;
WOLFSSL_ENTER("wolfSSL_OBJ_nid2ln");
switch(n)
{
case NID_commonName :
return WOLFSSL_LN_COMMON_NAME;
case NID_countryName :
return WOLFSSL_LN_COUNTRY_NAME;
case NID_localityName :
return WOLFSSL_LN_LOCALITY_NAME;
case NID_stateOrProvinceName :
return WOLFSSL_LN_STATE_NAME;
case NID_organizationName :
return WOLFSSL_LN_ORG_NAME;
case NID_organizationalUnitName :
return WOLFSSL_LN_ORGUNIT_NAME;
case NID_emailAddress :
return WOLFSSL_EMAIL_ADDR;
default:
break;
}
#ifdef HAVE_ECC
{
int eccEnum;
/* Convert OpenSSL NID to enum value in ecc_curve_id */
if ((eccEnum = NIDToEccEnum(n)) != -1) {
/* find sn based on NID and return name */
for (i = 0; i < ecc_sets[i].size; i++) {
if (eccEnum == ecc_sets[i].id) {
return ecc_sets[i].name;
}
}
for (i = 0; i < WOLFSSL_OBJECT_INFO_SZ; i++, obj_info++) {
if (obj_info->nid == n) {
return obj_info->lName;
}
}
#endif /* HAVE_ECC */
for (i = 0; i < (int)WOLFSSL_OBJECT_INFO_SZ; i++) {
if (wolfssl_object_info[i].nid == n)
return wolfssl_object_info[i].lName;
}
WOLFSSL_MSG("NID not found in table");
return NULL;
}
@@ -42929,51 +42847,25 @@ err:
*/
int wolfSSL_OBJ_ln2nid(const char *ln)
{
static const struct {
const char *ln;
int nid;
} ln2nid[] = {
{WOLFSSL_LN_COMMON_NAME, NID_commonName},
{WOLFSSL_LN_COUNTRY_NAME, NID_countryName},
{WOLFSSL_LN_LOCALITY_NAME, NID_localityName},
{WOLFSSL_LN_STATE_NAME, NID_stateOrProvinceName},
{WOLFSSL_LN_ORG_NAME, NID_organizationName},
{WOLFSSL_LN_ORGUNIT_NAME, NID_organizationalUnitName},
{WOLFSSL_EMAIL_ADDR, NID_emailAddress},
{NULL, -1}};
int i;
const WOLFSSL_ObjectInfo *obj_info = wolfssl_object_info;
size_t i, lnlen;
WOLFSSL_ENTER("wolfSSL_OBJ_ln2nid");
if (ln == NULL) return BAD_FUNC_ARG;
/* Return certificate info ln */
for(i=0; ln2nid[i].ln != NULL; i++) {
if(XSTRNCMP(ln, ln2nid[i].ln, XSTRLEN(ln2nid[i].ln)) == 0) {
return ln2nid[i].nid;
if (ln && (lnlen = XSTRLEN(ln)) > 0) {
/* Accept input like "/commonName=" */
if (ln[0] == '/') {
ln++;
lnlen--;
}
}
/* Return ECC ln */
#ifdef HAVE_ECC
{
int eccEnum;
/* Nginx uses this OpenSSL string. */
#ifdef WOLFSSL_NGINX
if (XSTRNCMP(ln, "prime256v1", 10) == 0) ln = "SECP256R1";
if (XSTRNCMP(ln, "secp384r1", 10) == 0) ln = "SECP384R1";
#endif
/* find based on name and return NID */
for (i = 0; i < ecc_sets[i].size; i++) {
if (XSTRNCMP(ln, ecc_sets[i].name, ECC_MAXNAME) == 0) {
eccEnum = ecc_sets[i].id;
/* Convert enum value in ecc_curve_id to OpenSSL NID */
return EccEnumToNID(eccEnum);
if (ln[lnlen-1] == '=') {
lnlen--;
}
for (i = 0; i < WOLFSSL_OBJECT_INFO_SZ; i++, obj_info++) {
if (lnlen == XSTRLEN(obj_info->lName) &&
XSTRNCMP(ln, obj_info->lName, lnlen) == 0) {
return obj_info->nid;
}
}
}
#endif /* HAVE_ECC */
return NID_undef;
}

View File

@@ -27953,18 +27953,39 @@ static void test_wolfSSL_EVP_PKEY_assign(void)
static void test_wolfSSL_OBJ_ln(void)
{
int i = 0, maxIdx = 7;
const int nid_set[] = {NID_commonName,NID_countryName,NID_localityName,
NID_stateOrProvinceName,NID_organizationName,
NID_organizationalUnitName,NID_emailAddress};
const char* ln_set[] = {WOLFSSL_LN_COMMON_NAME,WOLFSSL_LN_COUNTRY_NAME,
WOLFSSL_LN_LOCALITY_NAME,WOLFSSL_LN_STATE_NAME,
WOLFSSL_LN_ORG_NAME,WOLFSSL_LN_ORGUNIT_NAME,
WOLFSSL_EMAIL_ADDR};
const int nid_set[] = {
NID_commonName,
NID_serialNumber,
NID_countryName,
NID_localityName,
NID_stateOrProvinceName,
NID_organizationName,
NID_organizationalUnitName,
NID_domainComponent,
NID_businessCategory,
NID_jurisdictionCountryName,
NID_jurisdictionStateOrProvinceName,
NID_emailAddress
};
const char* ln_set[] = {
"commonName",
"serialNumber",
"countryName",
"localityName",
"stateOrProvinceName",
"organizationName",
"organizationalUnitName",
"domainComponent",
"businessCategory",
"jurisdictionCountryName",
"jurisdictionStateOrProvinceName",
"emailAddress",
};
int i = 0, maxIdx = sizeof(ln_set)/sizeof(char*);
printf(testingFmt, "wolfSSL_OBJ_ln");
AssertIntEQ(OBJ_ln2nid(NULL), BAD_FUNC_ARG);
AssertIntEQ(OBJ_ln2nid(NULL), NID_undef);
#ifdef HAVE_ECC
{

View File

@@ -5436,45 +5436,25 @@ WOLFSSL_API int EccEnumToNID(int n)
#if defined(OPENSSL_EXTRA) || defined(OPENSSL_EXTRA_X509_SMALL)
int wc_OBJ_sn2nid(const char *sn)
{
const struct {
const char *sn;
int nid;
} sn2nid[] = {
{WOLFSSL_COMMON_NAME, NID_commonName},
{WOLFSSL_COUNTRY_NAME, NID_countryName},
{WOLFSSL_LOCALITY_NAME, NID_localityName},
{WOLFSSL_STATE_NAME, NID_stateOrProvinceName},
{WOLFSSL_ORG_NAME, NID_organizationName},
{WOLFSSL_ORGUNIT_NAME, NID_organizationalUnitName},
{WOLFSSL_EMAIL_ADDR, NID_emailAddress},
{NULL, -1}};
int i;
#ifdef HAVE_ECC
int eccEnum;
#endif
WOLFSSL_ENTER("OBJ_sn2nid");
for(i=0; sn2nid[i].sn != NULL; i++) {
if(XSTRNCMP(sn, sn2nid[i].sn, XSTRLEN(sn2nid[i].sn)) == 0) {
return sn2nid[i].nid;
const WOLFSSL_ObjectInfo *obj_info = wolfssl_object_info;
size_t i, snlen;
WOLFSSL_ENTER("wolfSSL_OBJ_ln2nid");
if (sn && (snlen = XSTRLEN(sn)) > 0) {
/* Accept input like "/CN=" */
if (sn[0] == '/') {
sn++;
snlen--;
}
if (sn[snlen-1] == '=') {
snlen--;
}
for (i = 0; i < wolfssl_object_info_sz; i++, obj_info++) {
if (snlen == XSTRLEN(obj_info->sName) &&
XSTRNCMP(sn, obj_info->sName, snlen) == 0) {
return obj_info->nid;
}
}
}
#ifdef HAVE_ECC
/* Nginx uses this OpenSSL string. */
if (XSTRNCMP(sn, "prime256v1", 10) == 0)
sn = "SECP256R1";
if (XSTRNCMP(sn, "secp384r1", 10) == 0)
sn = "SECP384R1";
/* find based on name and return NID */
for (i = 0; ecc_sets[i].size != 0; i++) {
if (XSTRNCMP(sn, ecc_sets[i].name, ECC_MAXNAME) == 0) {
eccEnum = ecc_sets[i].id;
/* Convert enum value in ecc_curve_id to OpenSSL NID */
return EccEnumToNID(eccEnum);
}
}
#endif
return NID_undef;
}
#endif
@@ -10109,10 +10089,11 @@ int wc_EncryptedInfoParse(EncryptedInfo* info, char** pBuffer, size_t bufSz)
PEM_LINE_LEN));
}
if ((newline != NULL) && (newline > finish)) {
info->ivSz = (word32)(newline - (finish + 1));
if (info->ivSz >= IV_SZ)
finish++;
info->ivSz = (word32)(newline - finish);
if (info->ivSz > IV_SZ)
return BUFFER_E;
if (XMEMCPY(info->iv, finish + 1, info->ivSz) == NULL)
if (XMEMCPY(info->iv, finish, info->ivSz) == NULL)
return BUFFER_E;
info->set = 1;
}

View File

@@ -1141,6 +1141,7 @@ const ecc_set_type ecc_sets[] = {
}
};
#define ECC_SET_COUNT (sizeof(ecc_sets)/sizeof(ecc_set_type))
const size_t ecc_sets_count = ECC_SET_COUNT - 1;
#ifdef HAVE_OID_ENCODING

View File

@@ -134,6 +134,18 @@ enum DN_Tags {
ASN_DOMAIN_COMPONENT = 0x19 /* DC */
};
#if defined(OPENSSL_EXTRA) || defined(OPENSSL_EXTRA_X509_SMALL)
typedef struct WOLFSSL_ObjectInfo {
int nid;
int id;
word32 type;
const char* sName;
const char* lName;
} WOLFSSL_ObjectInfo;
extern const size_t wolfssl_object_info_sz;
extern const WOLFSSL_ObjectInfo wolfssl_object_info[];
#endif /* defined(OPENSSL_EXTRA) || defined(OPENSSL_EXTRA_X509_SMALL) */
/* DN Tag Strings */
#define WOLFSSL_COMMON_NAME "/CN="
#define WOLFSSL_LN_COMMON_NAME "/commonName="
@@ -217,7 +229,10 @@ enum
NID_stateOrProvinceName = 0x08, /* ST */
NID_organizationName = 0x0a, /* O */
NID_organizationalUnitName = 0x0b, /* OU */
NID_domainComponent = 0x19, /* matches ASN_DOMAIN_COMPONENT in asn.h */
NID_jurisdictionCountryName = 0xc,
NID_jurisdictionStateOrProvinceName = 0xd,
NID_businessCategory = ASN_BUS_CAT,
NID_domainComponent = ASN_DOMAIN_COMPONENT,
NID_emailAddress = 0x30, /* emailAddress */
NID_id_on_dnsSRV = 82, /* 1.3.6.1.5.5.7.8.7 */
NID_ms_upn = 265, /* 1.3.6.1.4.1.311.20.2.3 */

View File

@@ -422,6 +422,7 @@ WOLFSSL_ABI WOLFSSL_API void wc_ecc_key_free(ecc_key*);
/* ECC predefined curve sets */
extern const ecc_set_type ecc_sets[];
extern const size_t ecc_sets_count;
WOLFSSL_API
const char* wc_ecc_get_name(int curve_id);