ASN.1 OIDs and sum: Change algorithm for sum

New sum algorithm has no clashes at this time.
Old algorithm enabled by defining: WOLFSSL_OLD_OID_SUM.
New oid_sum.h file generated with scripts/asn1_oid_sum.pl.

Added bunch of OID names into asn1 example.
pull/8655/head
Sean Parkinson 2025-04-10 17:46:32 +10:00
parent 4450167ab0
commit 112351667a
22 changed files with 20748 additions and 627 deletions

View File

@ -23,8 +23,8 @@ jobs:
check_filenames: true
check_hidden: true
# Add comma separated list of words that occur multiple times that should be ignored (sorted alphabetically, case sensitive)
ignore_words_list: adin,aNULL,brunch,carryIn,chainG,ciph,cLen,cliKs,dout,haveA,inCreated,inOut,inout,larg,LEAPYEAR,Merget,optionA,parm,parms,repid,rIn,userA,ser,siz,te,Te
ignore_words_list: adin,aNULL,brunch,carryIn,chainG,ciph,cLen,cliKs,dout,haveA,inCreated,inOut,inout,larg,LEAPYEAR,Merget,optionA,parm,parms,repid,rIn,userA,ser,siz,te,Te,
# The exclude_file contains lines of code that should be ignored. This is useful for individual lines which have non-words that can safely be ignored.
exclude_file: '.codespellexcludelines'
# To skip files entirely from being processed, add it to the following list:
skip: '*.cproject,*.der,*.mtpj,*.pem,*.vcxproj,.git,*.launch,*.scfg,*.revoked'
skip: '*.cproject,*.der,*.mtpj,*.pem,*.vcxproj,.git,*.launch,*.scfg,*.revoked,dumpasn1.cfg,oid_names.h'

View File

@ -23,6 +23,8 @@ jobs:
'',
'--enable-all --enable-asn=template',
'--enable-all --enable-asn=original',
'--enable-all --enable-asn=template CPPFLAGS=-DWOLFSSL_OLD_OID_SUM',
'--enable-all --enable-asn=original CPPFLAGS=-DWOLFSSL_OLD_OID_SUM',
'--enable-harden-tls',
'--enable-tls13 --enable-session-ticket --enable-dtls --enable-dtls13
--enable-opensslextra --enable-sessioncerts

View File

@ -34,6 +34,8 @@
#if defined(WOLFSSL_ASN_PRINT) && !defined(NO_FILESYSTEM)
#include "oid_names.h"
/* Increment allocated data by this much. */
#define DATA_INC_LEN 256
@ -50,6 +52,20 @@ static Asn1PrintOptions opts;
/* ASN.1 parsing state. */
static Asn1 asn1;
static const char* asn1App_OidToName(unsigned char* oid, word32 len)
{
int i;
for (i = 0; i < asn1App_oid_names_len; i++) {
if ((len == asn1App_oid_name[i].len) &&
(XMEMCMP(oid, asn1App_oid_name[i].oid, len) == 0)) {
return asn1App_oid_name[i].name;
}
}
return NULL;
}
/* Read the contents of a file into a dynamically allocated buffer.
*
* Uses realloc as input may be stdin.
@ -65,9 +81,10 @@ static int asn1App_ReadFile(FILE* fp, unsigned char** pdata, word32* plen)
int ret = 0;
word32 len = 0;
size_t read_len;
/* Allocate a minimum amount. */
unsigned char* data = (unsigned char*)XMALLOC(DATA_INC_LEN, NULL, DYNAMIC_TYPE_TMP_BUFFER);
unsigned char* data;
/* Allocate a minimum amount. */
data = (unsigned char*)XMALLOC(DATA_INC_LEN, NULL, DYNAMIC_TYPE_TMP_BUFFER);
if (data != NULL) {
/* Read more data. */
while ((read_len = fread(data + len, 1, DATA_INC_LEN, fp)) != 0) {
@ -87,7 +104,8 @@ static int asn1App_ReadFile(FILE* fp, unsigned char** pdata, word32* plen)
}
/* Make space for more data to be added to buffer. */
p = (unsigned char*)XREALLOC(data, len + DATA_INC_LEN, NULL, DYNAMIC_TYPE_TMP_BUFFER);
p = (unsigned char*)XREALLOC(data, len + DATA_INC_LEN, NULL,
DYNAMIC_TYPE_TMP_BUFFER);
if (p == NULL) {
/* Reallocation failed - free current buffer. */
XFREE(data, NULL, DYNAMIC_TYPE_TMP_BUFFER);
@ -299,6 +317,7 @@ const char* usage[] = {
" -B, --base64 file contents are Base64 encoded",
#endif
" -d, --dump show all ASN.1 item data as a hex dump",
" -D, --der file format is DER",
" -h, --headers show all ASN.1 item headers as a hex dump",
" -i, --indent indent tag name with depth",
" -l, --length LEN display length bytes of data",
@ -340,6 +359,7 @@ int main(int argc, char* argv[])
int file_format = FORMAT_DER;
word32 indent = 0;
int pem_skip = 0;
int format_set = 0;
/* Reset options. */
(void)wc_Asn1PrintOptions_Init(&opts);
@ -365,6 +385,11 @@ int main(int argc, char* argv[])
(strcmp(argv[0], "--dump") == 0)) {
wc_Asn1PrintOptions_Set(&opts, ASN1_PRINT_OPT_SHOW_DATA, 1);
}
else if ((strcmp(argv[0], "-D") == 0) ||
(strcmp(argv[0], "--der") == 0)) {
file_format = FORMAT_DER;
format_set = 1;
}
/* Dump ASN.1 item headers. */
else if ((strcmp(argv[0], "-h") == 0) ||
(strcmp(argv[0], "--headers") == 0)) {
@ -421,6 +446,7 @@ int main(int argc, char* argv[])
else if ((strcmp(argv[0], "-p") == 0) ||
(strcmp(argv[0], "--pem") == 0)) {
file_format = FORMAT_PEM;
format_set = 1;
}
#endif
/* Skip a number of PEM blocks. */
@ -451,10 +477,25 @@ int main(int argc, char* argv[])
return 1;
}
else {
int nameLen;
if (fp != stdin) {
fprintf(stderr, "At most one input file can be supplied.\n");
return 1;
}
if (!format_set) {
nameLen = (int)XSTRLEN(argv[0]);
if (nameLen > 3) {
if (XMEMCMP(argv[0] + nameLen - 4, ".pem", 4) == 0) {
file_format = FORMAT_PEM;
}
else if (XMEMCMP(argv[0] + nameLen - 4, ".der", 4) == 0) {
file_format = FORMAT_DER;
}
}
}
/* Name of file to read. */
fp = fopen(argv[0], "r");
if (fp == NULL) {
@ -472,6 +513,7 @@ int main(int argc, char* argv[])
(void)wc_Asn1_Init(&asn1);
(void)wc_Asn1_SetFile(&asn1, stdout);
(void)wc_Asn1_SetOidToNameCb(&asn1, asn1App_OidToName);
/* Process file based on type. */
if (file_format == FORMAT_DER) {

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,137 @@
#!/usr/bin/ruby
class OidName
def initialize(oid, name)
@oid = oid
@name = name
end
def der_to_str(d)
s = "(byte*)\""
d.each do |b|
s += sprintf("\\x%02x", b)
end
s + "\""
end
def write()
puts <<EOF
{ #{der_to_str(@oid)}, #{@oid.length},
"#{@name.gsub(/\"/, '\\"')}" },
EOF
end
end
class OidNames
def initialize()
@oid_name = []
end
def decode_dotted(oid)
i = 0
n = 0
der = []
oid.split(/ /).each do |s|
t = s.to_i
i += 1
if i == 1
n = t * 40
next
elsif i == 2
n += t
else
n = t
end
if n == 0
der << 0
end
tmp = []
bit = 0;
while n > 0
tmp << ((n & 0x7f) | bit)
n >>= 7
bit = 0x80
end
der += tmp.reverse
end
der
end
def add(oid, name)
@oid_name << OidName.new(decode_dotted(oid), name)
end
def write_struct()
puts <<EOF
typedef struct asn1App_OidName {
byte* oid;
word32 len;
const char* name;
} asn1App_OidName;
EOF
end
def write()
puts <<EOF
/* oid_names.h
*
* Copyright (C) 2006-2025 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
* wolfSSL is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* wolfSSL is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
*/
/* Generated using (from wolfssl):
* cd examples/asn1
* ruby ./gen_oid_names.rb dumpasn1.cfg > oid_names.h
*/
EOF
puts
write_struct()
puts
puts "static asn1App_OidName asn1App_oid_name[#{@oid_name.length}] = {"
@oid_name.each do |o|
o.write()
end
puts "};"
puts
puts "int asn1App_oid_names_len = #{@oid_name.length};"
puts
end
end
oid = ""
oidNames = OidNames.new()
File.readlines(ARGV[0]).each do |l|
next if l.length == 0
next if l[0] == '#'
var, value = l.split(/ = /)
case var
when /OID/
oid = value
when /Description/
oidNames.add(oid, value.strip)
end
end
oidNames.write()

View File

@ -8,5 +8,9 @@ noinst_PROGRAMS += examples/asn1/asn1
examples_asn1_asn1_SOURCES = examples/asn1/asn1.c
examples_asn1_asn1_LDADD = src/libwolfssl@LIBSUFFIX@.la $(LIB_STATIC_ADD)
examples_asn1_asn1_DEPENDENCIES = src/libwolfssl@LIBSUFFIX@.la
EXTRA_DIST += examples/asn1/oid_names.h \
examples/asn1/dumpasn1.cfg \
examples/asn1/gen_oid_names.rb
endif

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -110,7 +110,8 @@ EXTRA_DIST += scripts/sniffer-static-rsa.pcap \
scripts/memtest.sh \
scripts/makedistsmall.sh \
scripts/openssl_srtp.test \
scripts/aria-cmake-build-test.sh
scripts/aria-cmake-build-test.sh \
scripts/asn1_oid_sum.pl
# leave openssl.test as extra until non bash works

139
src/ssl.c
View File

@ -18446,8 +18446,8 @@ int wolfSSL_cmp_peer_cert_to_file(WOLFSSL* ssl, const char *fname)
const WOLFSSL_ObjectInfo wolfssl_object_info[] = {
#ifndef NO_CERTS
/* oidCertExtType */
{ WC_NID_basic_constraints, BASIC_CA_OID, oidCertExtType, "basicConstraints",
"X509v3 Basic Constraints"},
{ WC_NID_basic_constraints, BASIC_CA_OID, oidCertExtType,
"basicConstraints", "X509v3 Basic Constraints"},
{ WC_NID_subject_alt_name, ALT_NAMES_OID, oidCertExtType, "subjectAltName",
"X509v3 Subject Alternative Name"},
{ WC_NID_crl_distribution_points, CRL_DIST_OID, oidCertExtType,
@ -18493,40 +18493,48 @@ const WOLFSSL_ObjectInfo wolfssl_object_info[] = {
"OCSPSigning", "OCSP Signing"},
/* oidCertNameType */
{ WC_NID_commonName, WC_NID_commonName, oidCertNameType, "CN", "commonName"},
{ WC_NID_commonName, WC_NAME_COMMON_NAME_OID, oidCertNameType,
"CN", "commonName"},
#if !defined(WOLFSSL_CERT_REQ)
{ WC_NID_surname, WC_NID_surname, oidCertNameType, "SN", "surname"},
{ WC_NID_surname, WC_NAME_SURNAME_OID, oidCertNameType, "SN", "surname"},
#endif
{ WC_NID_serialNumber, WC_NID_serialNumber, oidCertNameType, "serialNumber",
"serialNumber"},
{ WC_NID_serialNumber, WC_NAME_SERIAL_NUMBER_OID, oidCertNameType,
"serialNumber", "serialNumber"},
{ WC_NID_userId, WC_NID_userId, oidCertNameType, "UID", "userid"},
{ WC_NID_countryName, WC_NID_countryName, oidCertNameType, "C", "countryName"},
{ WC_NID_localityName, WC_NID_localityName, oidCertNameType, "L", "localityName"},
{ WC_NID_stateOrProvinceName, WC_NID_stateOrProvinceName, oidCertNameType, "ST",
"stateOrProvinceName"},
{ WC_NID_streetAddress, WC_NID_streetAddress, oidCertNameType, "street",
"streetAddress"},
{ WC_NID_organizationName, WC_NID_organizationName, oidCertNameType, "O",
"organizationName"},
{ WC_NID_organizationalUnitName, WC_NID_organizationalUnitName, oidCertNameType,
"OU", "organizationalUnitName"},
{ WC_NID_emailAddress, WC_NID_emailAddress, oidCertNameType, "emailAddress",
"emailAddress"},
{ WC_NID_domainComponent, WC_NID_domainComponent, oidCertNameType, "DC",
"domainComponent"},
{ WC_NID_rfc822Mailbox, WC_NID_rfc822Mailbox, oidCertNameType, "rfc822Mailbox",
"rfc822Mailbox"},
{ WC_NID_favouriteDrink, WC_NID_favouriteDrink, oidCertNameType, "favouriteDrink",
"favouriteDrink"},
{ WC_NID_businessCategory, WC_NID_businessCategory, oidCertNameType,
{ WC_NID_countryName, WC_NAME_COUNTRY_NAME_OID, oidCertNameType,
"C", "countryName"},
{ WC_NID_localityName, WC_NAME_LOCALITY_NAME_OID, oidCertNameType,
"L", "localityName"},
{ WC_NID_stateOrProvinceName, WC_NAME_STATE_NAME_OID, oidCertNameType,
"ST", "stateOrProvinceName"},
{ WC_NID_streetAddress, WC_NAME_STREET_ADDRESS_OID, oidCertNameType,
"street", "streetAddress"},
{ WC_NID_organizationName, WC_NAME_ORGANIZATION_NAME_OID, oidCertNameType,
"O", "organizationName"},
{ WC_NID_organizationalUnitName, WC_NAME_ORGANIZATION_UNIT_NAME_OID,
oidCertNameType, "OU", "organizationalUnitName"},
{ WC_NID_title, WC_NAME_TITLE_OID, oidCertNameType, "title", "title"},
{ WC_NID_description, WC_NAME_DESCRIPTION_OID, oidCertNameType,
"description", "description"},
{ WC_NID_emailAddress, WC_NAME_EMAIL_ADDRESS_OID, oidCertNameType,
"emailAddress", "emailAddress"},
{ WC_NID_domainComponent, WC_NAME_DOMAIN_COMPONENT_OID, oidCertNameType,
"DC", "domainComponent"},
{ WC_NID_rfc822Mailbox, WC_NAME_RFC822_MAILBOX_OID, oidCertNameType,
"rfc822Mailbox", "rfc822Mailbox"},
{ WC_NID_favouriteDrink, WC_NAME_FAVOURITE_DRINK_OID, oidCertNameType,
"favouriteDrink", "favouriteDrink"},
{ WC_NID_businessCategory, WC_NAME_BUSINESS_CATEGORY_OID, oidCertNameType,
"businessCategory", "businessCategory"},
{ WC_NID_jurisdictionCountryName, WC_NID_jurisdictionCountryName, oidCertNameType,
"jurisdictionC", "jurisdictionCountryName"},
{ WC_NID_jurisdictionStateOrProvinceName, WC_NID_jurisdictionStateOrProvinceName,
{ WC_NID_jurisdictionCountryName, WC_NAME_JURIS_COUNTRY_OID,
oidCertNameType, "jurisdictionC", "jurisdictionCountryName"},
{ WC_NID_jurisdictionStateOrProvinceName, WC_NAME_JURIS_STATE_PROV_OID,
oidCertNameType, "jurisdictionST", "jurisdictionStateOrProvinceName"},
{ WC_NID_postalCode, WC_NID_postalCode, oidCertNameType, "postalCode",
{ WC_NID_postalCode, WC_NAME_POSTAL_CODE_OID, oidCertNameType, "postalCode",
"postalCode"},
{ WC_NID_userId, WC_NID_userId, oidCertNameType, "UID", "userId"},
{ WC_NID_userId, WC_NAME_USER_ID_OID, oidCertNameType, "UID", "userId"},
{ WC_NID_netscape_cert_type, NETSCAPE_CT_OID, oidCertNameType,
"nsCertType", "Netscape Cert Type"},
#if defined(WOLFSSL_CERT_REQ) || defined(WOLFSSL_CERT_NAME_ALL)
{ WC_NID_pkcs9_challengePassword, CHALLENGE_PASSWORD_OID,
@ -18535,12 +18543,12 @@ const WOLFSSL_ObjectInfo wolfssl_object_info[] = {
oidCsrAttrType, "contentType", "contentType" },
{ WC_NID_pkcs9_unstructuredName, UNSTRUCTURED_NAME_OID,
oidCsrAttrType, "unstructuredName", "unstructuredName" },
{ WC_NID_name, NAME_OID, oidCsrAttrType, "name", "name" },
{ WC_NID_name, WC_NAME_NAME_OID, oidCsrAttrType, "name", "name" },
{ WC_NID_surname, SURNAME_OID,
oidCsrAttrType, "surname", "surname" },
{ WC_NID_givenName, GIVEN_NAME_OID,
{ WC_NID_givenName, WC_NAME_GIVEN_NAME_OID,
oidCsrAttrType, "givenName", "givenName" },
{ WC_NID_initials, INITIALS_OID,
{ WC_NID_initials, WC_NAME_INITIALIS_OID,
oidCsrAttrType, "initials", "initials" },
{ WC_NID_dnQualifier, DNQUALIFIER_OID,
oidCsrAttrType, "dnQualifer", "dnQualifier" },
@ -18592,7 +18600,8 @@ const WOLFSSL_ObjectInfo wolfssl_object_info[] = {
/* oidSigType */
#ifndef NO_DSA
#ifndef NO_SHA
{ WC_NID_dsaWithSHA1, CTC_SHAwDSA, oidSigType, "DSA-SHA1", "dsaWithSHA1"},
{ WC_NID_dsaWithSHA1, CTC_SHAwDSA, oidSigType,
"DSA-SHA1", "dsaWithSHA1"},
{ WC_NID_dsa_with_SHA256, CTC_SHA256wDSA, oidSigType, "dsa_with_SHA256",
"dsa_with_SHA256"},
#endif
@ -18611,20 +18620,20 @@ const WOLFSSL_ObjectInfo wolfssl_object_info[] = {
"sha1WithRSAEncryption"},
#endif
#ifdef WOLFSSL_SHA224
{ WC_NID_sha224WithRSAEncryption, CTC_SHA224wRSA, oidSigType, "RSA-SHA224",
"sha224WithRSAEncryption"},
{ WC_NID_sha224WithRSAEncryption, CTC_SHA224wRSA, oidSigType,
"RSA-SHA224", "sha224WithRSAEncryption"},
#endif
#ifndef NO_SHA256
{ WC_NID_sha256WithRSAEncryption, CTC_SHA256wRSA, oidSigType, "RSA-SHA256",
"sha256WithRSAEncryption"},
{ WC_NID_sha256WithRSAEncryption, CTC_SHA256wRSA, oidSigType,
"RSA-SHA256", "sha256WithRSAEncryption"},
#endif
#ifdef WOLFSSL_SHA384
{ WC_NID_sha384WithRSAEncryption, CTC_SHA384wRSA, oidSigType, "RSA-SHA384",
"sha384WithRSAEncryption"},
{ WC_NID_sha384WithRSAEncryption, CTC_SHA384wRSA, oidSigType,
"RSA-SHA384", "sha384WithRSAEncryption"},
#endif
#ifdef WOLFSSL_SHA512
{ WC_NID_sha512WithRSAEncryption, CTC_SHA512wRSA, oidSigType, "RSA-SHA512",
"sha512WithRSAEncryption"},
{ WC_NID_sha512WithRSAEncryption, CTC_SHA512wRSA, oidSigType,
"RSA-SHA512", "sha512WithRSAEncryption"},
#endif
#ifdef WOLFSSL_SHA3
#ifndef WOLFSSL_NOSHA3_224
@ -18645,7 +18654,8 @@ const WOLFSSL_ObjectInfo wolfssl_object_info[] = {
#endif
#endif
#ifdef WC_RSA_PSS
{ WC_NID_rsassaPss, CTC_RSASSAPSS, oidSigType, "RSASSA-PSS", "rsassaPss" },
{ WC_NID_rsassaPss, CTC_RSASSAPSS, oidSigType,
"RSASSA-PSS", "rsassaPss" },
#endif
#endif /* NO_RSA */
#ifdef HAVE_ECC
@ -18739,22 +18749,22 @@ const WOLFSSL_ObjectInfo wolfssl_object_info[] = {
/* oidCurveType */
#ifdef HAVE_ECC
{ WC_NID_X9_62_prime192v1, ECC_SECP192R1_OID, oidCurveType, "prime192v1",
"prime192v1"},
{ WC_NID_X9_62_prime192v2, ECC_PRIME192V2_OID, oidCurveType, "prime192v2",
"prime192v2"},
{ WC_NID_X9_62_prime192v3, ECC_PRIME192V3_OID, oidCurveType, "prime192v3",
"prime192v3"},
{ WC_NID_X9_62_prime192v1, ECC_SECP192R1_OID, oidCurveType,
"prime192v1", "prime192v1"},
{ WC_NID_X9_62_prime192v2, ECC_PRIME192V2_OID, oidCurveType,
"prime192v2", "prime192v2"},
{ WC_NID_X9_62_prime192v3, ECC_PRIME192V3_OID, oidCurveType,
"prime192v3", "prime192v3"},
{ WC_NID_X9_62_prime239v1, ECC_PRIME239V1_OID, oidCurveType, "prime239v1",
"prime239v1"},
{ WC_NID_X9_62_prime239v2, ECC_PRIME239V2_OID, oidCurveType, "prime239v2",
"prime239v2"},
{ WC_NID_X9_62_prime239v3, ECC_PRIME239V3_OID, oidCurveType, "prime239v3",
"prime239v3"},
{ WC_NID_X9_62_prime239v1, ECC_PRIME239V1_OID, oidCurveType,
"prime239v1", "prime239v1"},
{ WC_NID_X9_62_prime239v2, ECC_PRIME239V2_OID, oidCurveType,
"prime239v2", "prime239v2"},
{ WC_NID_X9_62_prime239v3, ECC_PRIME239V3_OID, oidCurveType,
"prime239v3", "prime239v3"},
{ WC_NID_X9_62_prime256v1, ECC_SECP256R1_OID, oidCurveType, "prime256v1",
"prime256v1"},
{ WC_NID_X9_62_prime256v1, ECC_SECP256R1_OID, oidCurveType,
"prime256v1", "prime256v1"},
{ WC_NID_secp112r1, ECC_SECP112R1_OID, oidCurveType, "secp112r1",
"secp112r1"},
@ -18896,7 +18906,7 @@ const WOLFSSL_ObjectInfo wolfssl_object_info[] = {
#endif
#if defined(WOLFSSL_APACHE_HTTPD)
/* "1.3.6.1.5.5.7.8.7" */
{ WC_NID_id_on_dnsSRV, WC_NID_id_on_dnsSRV, oidCertNameType,
{ WC_NID_id_on_dnsSRV, WOLFSSL_DNS_SRV_SUM, oidCertNameType,
WOLFSSL_SN_DNS_SRV, WOLFSSL_LN_DNS_SRV },
/* "1.3.6.1.4.1.311.20.2.3" */
@ -20550,9 +20560,7 @@ void* wolfSSL_GetHKDFExtractCtx(WOLFSSL* ssl)
ret = EncodePolicyOID(out, &outSz, s, NULL);
if (ret == 0) {
/* sum OID */
for (i = 0; i < outSz; i++) {
sum += out[i];
}
sum = wc_oid_sum(out, outSz);
}
#endif /* WOLFSSL_CERT_EXT */
@ -23149,9 +23157,12 @@ const WOLF_EC_NIST_NAME kNistCurves[] = {
{CURVE_NAME("K-192"), WC_NID_secp192k1, WOLFSSL_ECC_SECP192K1},
{CURVE_NAME("K-224"), WC_NID_secp224k1, WOLFSSL_ECC_SECP224R1},
{CURVE_NAME("K-256"), WC_NID_secp256k1, WOLFSSL_ECC_SECP256K1},
{CURVE_NAME("B-256"), WC_NID_brainpoolP256r1, WOLFSSL_ECC_BRAINPOOLP256R1},
{CURVE_NAME("B-384"), WC_NID_brainpoolP384r1, WOLFSSL_ECC_BRAINPOOLP384R1},
{CURVE_NAME("B-512"), WC_NID_brainpoolP512r1, WOLFSSL_ECC_BRAINPOOLP512R1},
{CURVE_NAME("B-256"), WC_NID_brainpoolP256r1,
WOLFSSL_ECC_BRAINPOOLP256R1},
{CURVE_NAME("B-384"), WC_NID_brainpoolP384r1,
WOLFSSL_ECC_BRAINPOOLP384R1},
{CURVE_NAME("B-512"), WC_NID_brainpoolP512r1,
WOLFSSL_ECC_BRAINPOOLP512R1},
#endif
#ifdef HAVE_CURVE25519
{CURVE_NAME("X25519"), WC_NID_X25519, WOLFSSL_ECC_X25519},

View File

@ -43819,7 +43819,7 @@ static int test_wolfSSL_X509_EXTENSION_get_object(void)
ExpectNotNull(ext = wolfSSL_X509_get_ext(x509, 0));
ExpectNull(wolfSSL_X509_EXTENSION_get_object(NULL));
ExpectNotNull(o = wolfSSL_X509_EXTENSION_get_object(ext));
ExpectIntEQ(o->nid, 128);
ExpectIntEQ(o->nid, SUBJ_KEY_OID);
ExpectNotNull(dup = wolfSSL_X509_EXTENSION_dup(ext));
wolfSSL_X509_EXTENSION_free(dup);

View File

@ -6670,6 +6670,7 @@ static int DumpOID(const byte* oidData, word32 oidSz, word32 oid,
}
#endif /* ASN_DUMP_OID */
#ifdef WOLFSSL_OLD_OID_SUM
#ifdef WOLFSSL_FPKI
/* Handles the large number of collisions from FPKI certificate policy
* OID sums. Returns a special value (100000 + actual sum) if a
@ -6832,6 +6833,31 @@ static word32 fpkiCertPolOid(const byte* oid, word32 oidSz, word32 oidSum) {
return 0;
}
#endif
#endif /* WOLFSSL_OLD_OID_SUM */
word32 wc_oid_sum(const byte* input, int length)
{
int i;
word32 oid = 0;
#ifndef WOLFSSL_OLD_OID_SUM
int shift = 0;
#endif
/* Sum it up for now. */
for (i = 0; i < length; i++) {
#ifdef WOLFSSL_OLD_OID_SUM
oid += (word32)input[i];
#else
oid ^= ((word32)(~input[i])) << shift;
shift = (shift + 8) & 0x1f;
#endif
}
#ifndef WOLFSSL_OLD_OID_SUM
oid &= 0x7fffffff;
#endif
return oid;
}
/* Get the OID data and verify it is of the type specified when compiled in.
*
@ -6858,8 +6884,10 @@ static int GetOID(const byte* input, word32* inOutIdx, word32* oid,
const byte* checkOid = NULL;
word32 checkOidSz;
#endif /* NO_VERIFY_OID */
#ifdef WOLFSSL_OLD_OID_SUM
#if defined(HAVE_SPHINCS) || defined(WOLFSSL_FPKI)
word32 found_collision = 0;
#endif
#endif
(void)oidType;
*oid = 0;
@ -6870,6 +6898,7 @@ static int GetOID(const byte* input, word32* inOutIdx, word32* oid,
actualOidSz = (word32)length;
#endif /* NO_VERIFY_OID */
#ifdef WOLFSSL_OLD_OID_SUM
#if defined(HAVE_SPHINCS)
/* Since we are summing it up, there could be collisions...and indeed there
* are: SPHINCS_FAST_LEVEL1 and SPHINCS_FAST_LEVEL3.
@ -6885,14 +6914,12 @@ static int GetOID(const byte* input, word32* inOutIdx, word32* oid,
found_collision = SPHINCS_FAST_LEVEL3k;
}
#endif /* HAVE_SPHINCS */
#endif
/* Sum it up for now. */
while (length--) {
/* odd HC08 compiler behavior here when input[idx++] */
*oid += (word32)input[idx];
idx++;
}
*oid = wc_oid_sum(actualOid, (int)actualOidSz);
idx += actualOidSz;
#ifdef WOLFSSL_OLD_OID_SUM
#ifdef WOLFSSL_FPKI
/* Due to the large number of OIDs for FPKI certificate policy, there
are multiple collsisions. Handle them in a dedicated function,
@ -6907,6 +6934,7 @@ static int GetOID(const byte* input, word32* inOutIdx, word32* oid,
*oid = found_collision;
}
#endif /* HAVE_SPHINCS */
#endif
/* Return the index after the OID data. */
*inOutIdx = idx;
@ -6917,6 +6945,7 @@ static int GetOID(const byte* input, word32* inOutIdx, word32* oid,
/* Get the OID data for the id-type. */
checkOid = OidFromId(*oid, oidType, &checkOidSz);
#ifdef WOLFSSL_OLD_OID_SUM
#if defined(WOLFSSL_FPKI)
/* Handle OID sum collision of
AES256CBCb (454) 2.16.840.1.101.3.4.1.42
@ -6932,6 +6961,7 @@ static int GetOID(const byte* input, word32* inOutIdx, word32* oid,
}
#endif /* HAVE_AES_CBC */
#endif /* WOLFSSL_FPKI */
#endif
#ifdef ASN_DUMP_OID
/* Dump out the data for debug. */
@ -41195,6 +41225,75 @@ int wc_Asn1_SetFile(Asn1* asn1, XFILE file)
return ret;
}
/* Set the OID name callback to use when printing.
*
* @param [in, out] asn1 ASN.1 parse object.
* @param [in] nameCb OID name callback.
* @return 0 on success.
* @return BAD_FUNC_ARG when asn1 is NULL.
* @return BAD_FUNC_ARG when nameCb is NULL.
*/
int wc_Asn1_SetOidToNameCb(Asn1* asn1, Asn1OidToNameCb nameCb)
{
int ret = 0;
if ((asn1 == NULL) || (nameCb == NULL)) {
ret = BAD_FUNC_ARG;
}
else {
asn1->nameCb = nameCb;
}
return ret;
}
/* Encode dotted form of OID into byte array version.
*
* @param [in] in Byte array containing OID.
* @param [in] inSz Size of OID in bytes.
* @param [in] out Array to hold dotted form of OID.
* @param [in, out] outSz On in, number of elements in array.
* On out, count of numbers in dotted form.
* @return 0 on success
* @return BAD_FUNC_ARG when in or outSz is NULL.
* @return BUFFER_E when dotted form buffer too small.
*/
static int EncodedDottedForm(const byte* in, word32 inSz, word32* out,
word32* outSz)
{
int x = 0, y = 0;
word32 t = 0;
/* check args */
if (in == NULL || outSz == NULL) {
return BAD_FUNC_ARG;
}
/* decode bytes */
while (inSz--) {
t = (t << 7) | (in[x] & 0x7F);
if (!(in[x] & 0x80)) {
if (y >= (int)*outSz) {
return BUFFER_E;
}
if (y == 0) {
out[0] = (word16)(t / 40);
out[1] = (word16)(t % 40);
y = 2;
}
else {
out[y++] = t;
}
t = 0; /* reset tmp */
}
x++;
}
/* return length */
*outSz = (word32)y;
return 0;
}
/* Print OID in dotted form or as hex bytes.
*
* @param [in] file File pointer to write to.
@ -41203,12 +41302,12 @@ int wc_Asn1_SetFile(Asn1* asn1, XFILE file)
*/
static void PrintObjectIdNum(XFILE file, unsigned char* oid, word32 len)
{
word16 dotted_nums[ASN1_OID_DOTTED_MAX_SZ];
word32 dotted_nums[ASN1_OID_DOTTED_MAX_SZ];
word32 num = ASN1_OID_DOTTED_MAX_SZ;
word32 i;
/* Decode OBJECT_ID into dotted form array. */
if (DecodeObjectId(oid, len, dotted_nums, &num) == 0) {
if (EncodedDottedForm(oid, len, dotted_nums, &num) == 0) {
/* Print out each number of dotted form. */
for (i = 0; i < num; i++) {
XFPRINTF(file, "%d", dotted_nums[i]);
@ -41313,12 +41412,17 @@ static void PrintObjectIdText(Asn1* asn1, Asn1PrintOptions* opts)
else
#endif
/* Lookup long name for extra known OID values. */
if (!Oid2LongName(oid, &ln)) {
if (Oid2LongName(oid, &ln) != 0) {
}
else if ((asn1->nameCb != NULL) &&
((ln = asn1->nameCb(asn1->data + asn1->offset + 2,
i - 2))) != NULL) {
}
else {
/* Unknown OID value. */
ln = NULL;
known = 0;
}
XFPRINTF(asn1->file, ":");
/* Show OID value if not known or asked to. */
if ((!known) || opts->show_oid) {

View File

@ -37,27 +37,6 @@
#endif
#ifdef NO_ASN
enum Hash_Sum {
MD2h = 646,
MD5h = 649,
SHAh = 88,
SHA224h = 417,
SHA256h = 414,
SHA384h = 415,
SHA512h = 416,
SHA512_224h = 418,
SHA512_256h = 419,
SHA3_224h = 420,
SHA3_256h = 421,
SHA3_384h = 422,
SHA3_512h = 423,
SHAKE128h = 424,
SHAKE256h = 425,
SM3h = 640 /* 0x2A,0x81,0x1C,0xCF,0x55,0x01,0x83,0x11 */
};
#endif /* !NO_ASN */
#if !defined(NO_PWDBASED) || !defined(NO_ASN)
/* function converts int hash type to enum */
enum wc_HashType wc_HashTypeConvert(int hashType)

View File

@ -44,16 +44,6 @@
#define ERROR_OUT(err, eLabel) { ret = (err); goto eLabel; }
enum {
WC_PKCS12_KeyBag = 667,
WC_PKCS12_ShroudedKeyBag = 668,
WC_PKCS12_CertBag = 669,
WC_PKCS12_CertBag_Type1 = 675,
WC_PKCS12_CrlBag = 670,
WC_PKCS12_SecretBag = 671,
WC_PKCS12_SafeContentsBag = 672,
WC_PKCS12_DATA = 651,
WC_PKCS12_ENCRYPTED_DATA = 656,
WC_PKCS12_DATA_OBJ_SZ = 11,
WC_PKCS12_MAC_SALT_SZ = 8
};

View File

@ -6441,7 +6441,11 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t hash_test(void)
if (ret != WC_NO_ERR_TRACE(HASH_TYPE_E))
ERROR_OUT(WC_TEST_RET_ENC_EC(ret), out);
#endif
#ifdef WOLFSSL_OLD_OID_SUM
hashType = wc_OidGetHash(646); /* Md2h */
#else
hashType = wc_OidGetHash(0x044a8bdd); /* Md2h */
#endif
#ifdef WOLFSSL_MD2
if (hashType != WC_HASH_TYPE_MD2)
ERROR_OUT(WC_TEST_RET_ENC_NC, out);

View File

@ -789,13 +789,14 @@ extern const WOLFSSL_ObjectInfo wolfssl_object_info[];
/* otherName strings */
#define WOLFSSL_SN_MS_UPN "msUPN"
#define WOLFSSL_LN_MS_UPN "Microsoft User Principal Name"
#define WOLFSSL_MS_UPN_SUM 265
#define WOLFSSL_MS_UPN_SUM UPN_OID
#define WOLFSSL_SN_DNS_SRV "id-on-dnsSRV"
#define WOLFSSL_LN_DNS_SRV "SRVName"
#define WOLFSSL_DNS_SRV_SUM DNS_SRV_OID
/* TLS features extension strings */
#define WOLFSSL_SN_TLS_FEATURE "tlsfeature"
#define WOLFSSL_LN_TLS_FEATURE "TLS Feature"
#define WOLFSSL_TLS_FEATURE_SUM 92
#define WOLFSSL_TLS_FEATURE_SUM TLS_FEATURE_OID
#endif
/* Maximum number of allowed subject alternative names in a certificate.
@ -898,23 +899,23 @@ extern const WOLFSSL_ObjectInfo wolfssl_object_info[];
#define WC_NID_initials 101 /* 2.5.4.43 */
#define WC_NID_title 106
#define WC_NID_description 107
#define WC_NID_basic_constraints 133
#define WC_NID_key_usage 129 /* 2.5.29.15 */
#define WC_NID_ext_key_usage 151 /* 2.5.29.37 */
#define WC_NID_subject_key_identifier 128
#define WC_NID_authority_key_identifier 149
#define WC_NID_private_key_usage_period 130 /* 2.5.29.16 */
#define WC_NID_subject_alt_name 131
#define WC_NID_issuer_alt_name 132
#define WC_NID_info_access 69
#define WC_NID_sinfo_access 79 /* id-pe 11 */
#define WC_NID_name_constraints 144 /* 2.5.29.30 */
#define WC_NID_crl_distribution_points 145 /* 2.5.29.31 */
#define WC_NID_certificate_policies 146
#define WC_NID_policy_mappings 147
#define WC_NID_policy_constraints 150
#define WC_NID_inhibit_any_policy 168 /* 2.5.29.54 */
#define WC_NID_tlsfeature 1020 /* id-pe 24 */
#define WC_NID_basic_constraints BASIC_CA_OID
#define WC_NID_key_usage KEY_USAGE_OID /* 2.5.29.15 */
#define WC_NID_ext_key_usage EXT_KEY_USAGE_OID /* 2.5.29.37 */
#define WC_NID_subject_key_identifier SUBJ_KEY_OID
#define WC_NID_authority_key_identifier AUTH_KEY_OID
#define WC_NID_private_key_usage_period PRIV_KEY_USAGE_PERIOD_OID
#define WC_NID_subject_alt_name ALT_NAMES_OID
#define WC_NID_issuer_alt_name ISSUE_ALT_NAMES_OID
#define WC_NID_info_access AUTH_INFO_OID
#define WC_NID_sinfo_access SUBJ_INFO_ACC_OID /* id-pe 11 */
#define WC_NID_name_constraints NAME_CONS_OID /* 2.5.29.30 */
#define WC_NID_crl_distribution_points CRL_DIST_OID /* 2.5.29.31 */
#define WC_NID_certificate_policies CERT_POLICY_OID
#define WC_NID_policy_mappings POLICY_MAP_OID
#define WC_NID_policy_constraints POLICY_CONST_OID
#define WC_NID_inhibit_any_policy INHIBIT_ANY_OID /* 2.5.29.54 */
#define WC_NID_tlsfeature TLS_FEATURE_OID /* id-pe 24 */
#define WC_NID_buildingName 1494
#define WC_NID_dnQualifier 174 /* 2.5.4.46 */
@ -940,7 +941,7 @@ extern const WOLFSSL_ObjectInfo wolfssl_object_info[];
#define WC_NID_registeredAddress 870
#define WC_NID_emailAddress 0x30 /* emailAddress */
#define WC_NID_id_on_dnsSRV 82 /* 1.3.6.1.5.5.7.8.7 */
#define WC_NID_ms_upn 265 /* 1.3.6.1.4.1.311.20.2.3 */
#define WC_NID_ms_upn UPN_OID /* 1.3.6.1.4.1.311.20.2.3 */
#define WC_NID_X9_62_prime_field 406 /* 1.2.840.10045.1.1 */
@ -1267,375 +1268,6 @@ enum Oid_Types {
};
enum Hash_Sum {
MD2h = 646,
MD4h = 648,
MD5h = 649,
SHAh = 88,
SHA224h = 417,
SHA256h = 414,
SHA384h = 415,
SHA512h = 416,
SHA512_224h = 418,
SHA512_256h = 419,
SHA3_224h = 420,
SHA3_256h = 421,
SHA3_384h = 422,
SHA3_512h = 423,
SHAKE128h = 424,
SHAKE256h = 425,
SM3h = 640
};
#if !defined(NO_DES3) || !defined(NO_AES)
enum Block_Sum {
#ifdef WOLFSSL_AES_128
AES128CBCb = 414,
AES128GCMb = 418,
AES128CCMb = 419,
#endif
#ifdef WOLFSSL_AES_192
AES192CBCb = 434,
AES192GCMb = 438,
AES192CCMb = 439,
#endif
#ifdef WOLFSSL_AES_256
AES256CBCb = 454,
AES256GCMb = 458,
AES256CCMb = 459,
#endif
#ifndef NO_DES3
DESb = 69,
DES3b = 652
#endif
};
#endif /* !NO_DES3 || !NO_AES */
enum Key_Sum {
ANONk = 0,
DSAk = 515,
RSAk = 645,
RSAPSSk = 654,
RSAESOAEPk = 651, /* 1.2.840.113549.1.1.7 */
ECDSAk = 518,
SM2k = 667,
ED25519k = 256, /* 1.3.101.112 */
X25519k = 254, /* 1.3.101.110 */
ED448k = 257, /* 1.3.101.113 */
X448k = 255, /* 1.3.101.111 */
DHk = 647, /* dhKeyAgreement OID: 1.2.840.113549.1.3.1 */
FALCON_LEVEL1k = 273, /* 1.3.9999.3.6 */
FALCON_LEVEL5k = 276, /* 1.3.9999.3.9 */
DILITHIUM_LEVEL2k = 218, /* 1.3.6.1.4.1.2.267.12.4.4 */
DILITHIUM_LEVEL3k = 221, /* 1.3.6.1.4.1.2.267.12.6.5 */
DILITHIUM_LEVEL5k = 225, /* 1.3.6.1.4.1.2.267.12.8.7 */
ML_DSA_LEVEL2k = 431, /* 2.16.840.1.101.3.4.3.17 */
ML_DSA_LEVEL3k = 432, /* 2.16.840.1.101.3.4.3.18 */
ML_DSA_LEVEL5k = 433, /* 2.16.840.1.101.3.4.3.19 */
SPHINCS_FAST_LEVEL1k = 281, /* 1 3 9999 6 7 4 */
SPHINCS_FAST_LEVEL3k = 283, /* 1 3 9999 6 8 3 + 2 (See GetOID() in asn.c) */
SPHINCS_FAST_LEVEL5k = 282, /* 1 3 9999 6 9 3 */
SPHINCS_SMALL_LEVEL1k = 287, /* 1 3 9999 6 7 10 */
SPHINCS_SMALL_LEVEL3k = 285, /* 1 3 9999 6 8 7 */
SPHINCS_SMALL_LEVEL5k = 286 /* 1 3 9999 6 9 7 */
};
#if !defined(NO_AES) || defined(HAVE_PKCS7)
enum KeyWrap_Sum {
#ifdef WOLFSSL_AES_128
AES128_WRAP = 417,
#endif
#ifdef WOLFSSL_AES_192
AES192_WRAP = 437,
#endif
#ifdef WOLFSSL_AES_256
AES256_WRAP = 457,
#endif
#ifdef HAVE_PKCS7
PWRI_KEK_WRAP = 680 /*id-alg-PWRI-KEK, 1.2.840.113549.1.9.16.3.9 */
#endif
};
#endif /* !NO_AES || PKCS7 */
enum Key_Agree {
dhSinglePass_stdDH_sha1kdf_scheme = 464,
dhSinglePass_stdDH_sha224kdf_scheme = 188,
dhSinglePass_stdDH_sha256kdf_scheme = 189,
dhSinglePass_stdDH_sha384kdf_scheme = 190,
dhSinglePass_stdDH_sha512kdf_scheme = 191
};
enum KDF_Sum {
PBKDF2_OID = 660,
MGF1_OID = 652
};
enum HMAC_Sum {
HMAC_SHA224_OID = 652,
HMAC_SHA256_OID = 653,
HMAC_SHA384_OID = 654,
HMAC_SHA512_OID = 655,
HMAC_SHA3_224_OID = 426,
HMAC_SHA3_256_OID = 427,
HMAC_SHA3_384_OID = 428,
HMAC_SHA3_512_OID = 429
};
enum Extensions_Sum {
BASIC_CA_OID = 133, /* 2.5.29.19 */
ALT_NAMES_OID = 131, /* 2.5.29.17 */
CRL_DIST_OID = 145, /* 2.5.29.31 */
AUTH_INFO_OID = 69, /* 1.3.6.1.5.5.7.1.1 */
AUTH_KEY_OID = 149, /* 2.5.29.35 */
SUBJ_KEY_OID = 128, /* 2.5.29.14 */
CERT_POLICY_OID = 146, /* 2.5.29.32 */
CRL_NUMBER_OID = 134, /* 2.5.29.20 */
KEY_USAGE_OID = 129, /* 2.5.29.15 */
INHIBIT_ANY_OID = 168, /* 2.5.29.54 */
EXT_KEY_USAGE_OID = 151, /* 2.5.29.37 */
NAME_CONS_OID = 144, /* 2.5.29.30 */
PRIV_KEY_USAGE_PERIOD_OID = 130, /* 2.5.29.16 */
SUBJ_INFO_ACC_OID = 79, /* 1.3.6.1.5.5.7.1.11 */
POLICY_MAP_OID = 147, /* 2.5.29.33 */
POLICY_CONST_OID = 150, /* 2.5.29.36 */
ISSUE_ALT_NAMES_OID = 132, /* 2.5.29.18 */
TLS_FEATURE_OID = 92, /* 1.3.6.1.5.5.7.1.24 */
NETSCAPE_CT_OID = 753, /* 2.16.840.1.113730.1.1 */
OCSP_NOCHECK_OID = 121, /* 1.3.6.1.5.5.7.48.1.5
id-pkix-ocsp-nocheck */
SUBJ_DIR_ATTR_OID = 123, /* 2.5.29.9 */
AKEY_PACKAGE_OID = 1048, /* 2.16.840.1.101.2.1.2.78.5
RFC 5958 - Asymmetric Key Packages */
FASCN_OID = 419, /* 2.16.840.1.101.3.6.6 Federal PKI Policy FASC-N */
UPN_OID = 265, /* 1.3.6.1.4.1.311.20.2.3 UPN */
#ifdef WOLFSSL_DUAL_ALG_CERTS
SUBJ_ALT_PUB_KEY_INFO_OID = 186, /* 2.5.29.72 subject alt public key info */
ALT_SIG_ALG_OID = 187, /* 2.5.29.73 alt sig alg */
ALT_SIG_VAL_OID = 188, /* 2.5.29.74 alt sig val */
#endif
WOLF_ENUM_DUMMY_LAST_ELEMENT(Extensions_Sum)
};
enum CertificatePolicy_Sum {
CP_ANY_OID = 146, /* id-ce 32 0 */
CP_ISRG_DOMAIN_VALID = 430, /* 1.3.6.1.4.1.44947.1.1.1 */
#ifdef WOLFSSL_FPKI
/* Federal PKI OIDs */
CP_FPKI_HIGH_ASSURANCE_OID = 417, /* 2.16.840.1.101.3.2.1.3.4 */
CP_FPKI_COMMON_HARDWARE_OID = 420, /* 2.16.840.1.101.3.2.1.3.7 */
CP_FPKI_MEDIUM_HARDWARE_OID = 425, /* 2.16.840.1.101.3.2.1.3.12 */
CP_FPKI_COMMON_AUTH_OID = 426, /* 2.16.840.1.101.3.2.1.3.13 */
CP_FPKI_COMMON_HIGH_OID = 429, /* 2.16.840.1.101.3.2.1.3.16 */
CP_FPKI_PIVI_HARDWARE_OID = 431, /* 2.16.840.1.101.3.2.1.3.18 */
CP_FPKI_PIVI_CONTENT_SIGNING_OID = 433, /* 2.16.840.1.101.3.2.1.3.20 */
CP_FPKI_COMMON_DEVICES_HARDWARE_OID = 449, /* 2.16.840.1.101.3.2.1.3.36 */
CP_FPKI_MEDIUM_DEVICE_HARDWARE_OID = 451, /* 2.16.840.1.101.3.2.1.3.38 */
CP_FPKI_COMMON_PIV_CONTENT_SIGNING_OID = 452, /* 2.16.840.1.101.3.2.1.3.39 */
CP_FPKI_PIV_AUTH_OID = 453, /* 2.16.840.1.101.3.2.1.3.40 */
CP_FPKI_PIV_AUTH_HW_OID = 454, /* 2.16.840.1.101.3.2.1.3.41 */
CP_FPKI_PIVI_AUTH_OID = 458, /* 2.16.840.1.101.3.2.1.3.45 */
CP_FPKI_COMMON_PIVI_CONTENT_SIGNING_OID = 460, /* 2.16.840.1.101.3.2.1.3.47 */
/* Federal PKI Test OIDs */
CP_FPKI_AUTH_TEST_OID = 469, /* 2.16.840.1.101.3.2.1.48.11 */
CP_FPKI_CARDAUTH_TEST_OID = 471, /* 2.16.840.1.101.3.2.1.48.13 */
CP_FPKI_PIV_CONTENT_TEST_OID = 544, /* 2.16.840.1.101.3.2.1.48.86 */
CP_FPKI_PIV_AUTH_DERIVED_TEST_OID = 567, /* 2.16.840.1.101.3.2.1.48.109 */
CP_FPKI_PIV_AUTH_DERIVED_HW_TEST_OID = 568, /* 2.16.840.1.101.3.2.1.48.110 */
/* DoD PKI OIDs */
CP_DOD_MEDIUM_OID = 423, /* 2.16.840.1.101.2.1.11.5 */
CP_DOD_MEDIUM_HARDWARE_OID = 427, /* 2.16.840.1.101.2.1.11.9 */
CP_DOD_PIV_AUTH_OID = 428, /* 2.16.840.1.101.2.1.11.10 */
CP_DOD_MEDIUM_NPE_OID = 435, /* 2.16.840.1.101.2.1.11.17 */
CP_DOD_MEDIUM_2048_OID = 436, /* 2.16.840.1.101.2.1.11.18 */
CP_DOD_MEDIUM_HARDWARE_2048_OID = 437, /* 2.16.840.1.101.2.1.11.19 */
CP_DOD_PIV_AUTH_2048_OID = 438, /* 2.16.840.1.101.2.1.11.20 */
CP_DOD_PEER_INTEROP_OID = 100449, /* 2.16.840.1.101.2.1.11.31 */
CP_DOD_MEDIUM_NPE_112_OID = 100454, /* 2.16.840.1.101.2.1.11.36 */
CP_DOD_MEDIUM_NPE_128_OID = 455, /* 2.16.840.1.101.2.1.11.37 */
CP_DOD_MEDIUM_NPE_192_OID = 456, /* 2.16.840.1.101.2.1.11.38 */
CP_DOD_MEDIUM_112_OID = 457, /* 2.16.840.1.101.2.1.11.39 */
CP_DOD_MEDIUM_128_OID = 100458, /* 2.16.840.1.101.2.1.11.40 */
CP_DOD_MEDIUM_192_OID = 459, /* 2.16.840.1.101.2.1.11.41 */
CP_DOD_MEDIUM_HARDWARE_112_OID = 100460, /* 2.16.840.1.101.2.1.11.42 */
CP_DOD_MEDIUM_HARDWARE_128_OID = 461, /* 2.16.840.1.101.2.1.11.43 */
CP_DOD_MEDIUM_HARDWARE_192_OID = 462, /* 2.16.840.1.101.2.1.11.44 */
CP_DOD_ADMIN_OID = 477, /* 2.16.840.1.101.2.1.11.59 */
CP_DOD_INTERNAL_NPE_112_OID = 478, /* 2.16.840.1.101.2.1.11.60 */
CP_DOD_INTERNAL_NPE_128_OID = 479, /* 2.16.840.1.101.2.1.11.61 */
CP_DOD_INTERNAL_NPE_192_OID = 480, /* 2.16.840.1.101.2.1.11.62 */
/* ECA PKI OIDs */
CP_ECA_MEDIUM_OID = 100423, /* 2.16.840.1.101.3.2.1.12.1 */
CP_ECA_MEDIUM_HARDWARE_OID = 424, /* 2.16.840.1.101.3.2.1.12.2 */
CP_ECA_MEDIUM_TOKEN_OID = 100425, /* 2.16.840.1.101.3.2.1.12.3 */
CP_ECA_MEDIUM_SHA256_OID = 100426, /* 2.16.840.1.101.3.2.1.12.4 */
CP_ECA_MEDIUM_TOKEN_SHA256_OID = 100427, /* 2.16.840.1.101.3.2.1.12.5 */
CP_ECA_MEDIUM_HARDWARE_PIVI_OID = 100428, /* 2.16.840.1.101.3.2.1.12.6 */
CP_ECA_CONTENT_SIGNING_PIVI_OID = 100430, /* 2.16.840.1.101.3.2.1.12.8 */
CP_ECA_MEDIUM_DEVICE_SHA256_OID = 431, /* 2.16.840.1.101.3.2.1.12.9 */
CP_ECA_MEDIUM_HARDWARE_SHA256_OID = 432, /* 2.16.840.1.101.3.2.1.12.10 */
/* Department of State PKI OIDs */
CP_STATE_BASIC_OID = 100417, /* 2.16.840.1.101.3.2.1.6.1 */
CP_STATE_LOW_OID = 418, /* 2.16.840.1.101.3.2.1.6.2 */
CP_STATE_MODERATE_OID = 100419, /* 2.16.840.1.101.3.2.1.6.3 */
CP_STATE_HIGH_OID = 100420, /* 2.16.840.1.101.3.2.1.6.4 */
CP_STATE_MEDHW_OID = 101428, /* 2.16.840.1.101.3.2.1.6.12 */
CP_STATE_MEDDEVHW_OID = 101454, /* 2.16.840.1.101.3.2.1.6.38 */
/* U.S. Treasury SSP PKI OIDs */
CP_TREAS_MEDIUMHW_OID = 419, /* 2.16.840.1.101.3.2.1.5.4 */
CP_TREAS_HIGH_OID = 101420, /* 2.16.840.1.101.3.2.1.5.5 */
CP_TREAS_PIVI_HW_OID = 101425, /* 2.16.840.1.101.3.2.1.5.10 */
CP_TREAS_PIVI_CONTENT_OID = 101427, /* 2.16.840.1.101.3.2.1.5.12 */
/* Boeing PKI OIDs */
CP_BOEING_MEDIUMHW_SHA256_OID = 159, /* 1.3.6.1.4.1.73.15.3.1.12 */
CP_BOEING_MEDIUMHW_CONTENT_SHA256_OID = 164, /* 1.3.6.1.4.1.73.15.3.1.17 */
/* Carillon Federal Services OIDs */
CP_CARILLON_MEDIUMHW_256_OID = 467, /* 1.3.6.1.4.1.45606.3.1.12 */
CP_CARILLON_AIVHW_OID = 475, /* 1.3.6.1.4.1.45606.3.1.20 */
CP_CARILLON_AIVCONTENT_OID = 100477, /* 1.3.6.1.4.1.45606.3.1.22 */
/* Carillon Information Security OIDs */
CP_CIS_MEDIUMHW_256_OID = 489, /* 1.3.6.1.4.1.25054.3.1.12 */
CP_CIS_MEDDEVHW_256_OID = 491, /* 1.3.6.1.4.1.25054.3.1.14 */
CP_CIS_ICECAP_HW_OID = 497, /* 1.3.6.1.4.1.25054.3.1.20 */
CP_CIS_ICECAP_CONTENT_OID = 499, /* 1.3.6.1.4.1.25054.3.1.22 */
/* CertiPath Bridge OIDs */
CP_CERTIPATH_MEDIUMHW_OID = 100459, /* 1.3.6.1.4.1.24019.1.1.1.2 */
CP_CERTIPATH_HIGHHW_OID = 101460, /* 1.3.6.1.4.1.24019.1.1.1.3 */
CP_CERTIPATH_ICECAP_HW_OID = 464, /* 1.3.6.1.4.1.24019.1.1.1.7 */
CP_CERTIPATH_ICECAP_CONTENT_OID = 466, /* 1.3.6.1.4.1.24019.1.1.1.9 */
CP_CERTIPATH_VAR_MEDIUMHW_OID = 100475, /* 1.3.6.1.4.1.24019.1.1.1.18 */
CP_CERTIPATH_VAR_HIGHHW_OID = 476, /* 1.3.6.1.4.1.24019.1.1.1.19 */
/* TSCP Bridge OIDs */
CP_TSCP_MEDIUMHW_OID = 442, /* 1.3.6.1.4.1.38099.1.1.1.2 */
CP_TSCP_PIVI_OID = 445, /* 1.3.6.1.4.1.38099.1.1.1.5 */
CP_TSCP_PIVI_CONTENT_OID = 447, /* 1.3.6.1.4.1.38099.1.1.1.7 */
/* DigiCert NFI PKI OIDs */
CP_DIGICERT_NFSSP_MEDIUMHW_OID = 796, /* 2.16.840.1.113733.1.7.23.3.1.7 */
CP_DIGICERT_NFSSP_AUTH_OID = 802, /* 2.16.840.1.113733.1.7.23.3.1.13 */
CP_DIGICERT_NFSSP_PIVI_HW_OID = 807, /* 2.16.840.1.113733.1.7.23.3.1.18 */
CP_DIGICERT_NFSSP_PIVI_CONTENT_OID = 809, /* 2.16.840.1.113733.1.7.23.3.1.20 */
CP_DIGICERT_NFSSP_MEDDEVHW_OID = 825, /* 2.16.840.1.113733.1.7.23.3.1.36 */
/* Entrust Managed Services NFI PKI OIDs */
CP_ENTRUST_NFSSP_MEDIUMHW_OID = 1017, /* 2.16.840.1.114027.200.3.10.7.2 */
CP_ENTRUST_NFSSP_MEDAUTH_OID = 1019, /* 2.16.840.1.114027.200.3.10.7.4 */
CP_ENTRUST_NFSSP_PIVI_HW_OID = 1021, /* 2.16.840.1.114027.200.3.10.7.6 */
CP_ENTRUST_NFSSP_PIVI_CONTENT_OID = 1024, /* 2.16.840.1.114027.200.3.10.7.9 */
CP_ENTRUST_NFSSP_MEDDEVHW_OID = 1031, /* 2.16.840.1.114027.200.3.10.7.16 */
/* Exostar LLC PKI OIDs */
CP_EXOSTAR_MEDIUMHW_SHA2_OID = 100424, /* 1.3.6.1.4.1.13948.1.1.1.6 */
/* IdenTrust NFI OIDs */
CP_IDENTRUST_MEDIUMHW_SIGN_OID = 846, /* 2.16.840.1.113839.0.100.12.1 */
CP_IDENTRUST_MEDIUMHW_ENC_OID = 847, /* 2.16.840.1.113839.0.100.12.2 */
CP_IDENTRUST_PIVI_HW_ID_OID = 851, /* 2.16.840.1.113839.0.100.18.0 */
CP_IDENTRUST_PIVI_HW_SIGN_OID = 852, /* 2.16.840.1.113839.0.100.18.1 */
CP_IDENTRUST_PIVI_HW_ENC_OID = 853, /* 2.16.840.1.113839.0.100.18.2 */
CP_IDENTRUST_PIVI_CONTENT_OID = 854, /* 2.16.840.1.113839.0.100.20.1 */
/* Lockheed Martin PKI OIDs */
CP_LOCKHEED_MEDIUMHW_OID = 266, /* 1.3.6.1.4.1.103.100.1.1.3.3 */
/* Northrop Grumman PKI OIDs */
CP_NORTHROP_MEDIUM_256_HW_OID = 654, /* 1.3.6.1.4.1.16334.509.2.8 */
CP_NORTHROP_PIVI_256_HW_OID = 655, /* 1.3.6.1.4.1.16334.509.2.9 */
CP_NORTHROP_PIVI_256_CONTENT_OID = 657, /* 1.3.6.1.4.1.16334.509.2.11 */
CP_NORTHROP_MEDIUM_384_HW_OID = 660, /* 1.3.6.1.4.1.16334.509.2.14 */
/* Raytheon PKI OIDs */
CP_RAYTHEON_MEDIUMHW_OID = 251, /* 1.3.6.1.4.1.1569.10.1.12 */
CP_RAYTHEON_MEDDEVHW_OID = 257, /* 1.3.6.1.4.1.1569.10.1.18 */
CP_RAYTHEON_SHA2_MEDIUMHW_OID = 433, /* 1.3.6.1.4.1.26769.10.1.12 */
CP_RAYTHEON_SHA2_MEDDEVHW_OID = 439, /* 1.3.6.1.4.1.26769.10.1.18 */
/* WidePoint NFI PKI OIDs */
CP_WIDEPOINT_MEDIUMHW_OID = 310, /* 1.3.6.1.4.1.3922.1.1.1.12 */
CP_WIDEPOINT_PIVI_HW_OID = 316, /* 1.3.6.1.4.1.3922.1.1.1.18 */
CP_WIDEPOINT_PIVI_CONTENT_OID = 318, /* 1.3.6.1.4.1.3922.1.1.1.20 */
CP_WIDEPOINT_MEDDEVHW_OID = 336, /* 1.3.6.1.4.1.3922.1.1.1.38 */
/* Australian Defence Organisation PKI OIDs */
CP_ADO_MEDIUM_OID = 293, /* 1.2.36.1.334.1.2.1.2 */
CP_ADO_HIGH_OID = 294, /* 1.2.36.1.334.1.2.1.3 */
CP_ADO_RESOURCE_MEDIUM_OID = 100294, /* 1.2.36.1.334.1.2.2.2 */
/* Comodo Ltd PKI OID */
CP_COMODO_OID = 100293, /* 1.3.6.1.4.1.6449.1.2.1.3.4 */
/* Netherlands Ministry of Defence PKI OIDs */
CP_NL_MOD_AUTH_OID = 496, /* 2.16.528.1.1003.1.2.5.1 */
CP_NL_MOD_IRREFUT_OID = 100497, /* 2.16.528.1.1003.1.2.5.2 */
CP_NL_MOD_CONFID_OID = 498, /* 2.16.528.1.1003.1.2.5.3 */
#endif /* WOLFSSL_FPKI */
WOLF_ENUM_DUMMY_LAST_ELEMENT(CertificatePolicy_Sum)
};
enum SepHardwareName_Sum {
HW_NAME_OID = 79 /* 1.3.6.1.5.5.7.8.4 from RFC 4108*/
};
enum AuthInfo_Sum {
AIA_OCSP_OID = 116, /* 1.3.6.1.5.5.7.48.1, id-ad-ocsp */
AIA_CA_ISSUER_OID = 117, /* 1.3.6.1.5.5.7.48.2, id-ad-caIssuers */
#ifdef WOLFSSL_SUBJ_INFO_ACC
AIA_CA_REPO_OID = 120, /* 1.3.6.1.5.5.7.48.5, id-ad-caRepository */
#endif /* WOLFSSL_SUBJ_INFO_ACC */
WOLF_ENUM_DUMMY_LAST_ELEMENT(AuthInfo_Sum)
};
#define ID_PKIX(num) (67+(num)) /* 1.3.6.1.5.5.7.num, id-pkix num */
#define ID_KP(num) (ID_PKIX(3)+(num)) /* 1.3.6.1.5.5.7.3.num, id-kp num */
enum ExtKeyUsage_Sum { /* From RFC 5280 */
EKU_ANY_OID = 151, /* 2.5.29.37.0, anyExtendedKeyUsage */
EKU_SERVER_AUTH_OID = 71, /* 1.3.6.1.5.5.7.3.1, id-kp-serverAuth */
EKU_CLIENT_AUTH_OID = 72, /* 1.3.6.1.5.5.7.3.2, id-kp-clientAuth */
EKU_CODESIGNING_OID = 73, /* 1.3.6.1.5.5.7.3.3, id-kp-codeSigning */
EKU_EMAILPROTECT_OID = 74, /* 1.3.6.1.5.5.7.3.4, id-kp-emailProtection */
EKU_TIMESTAMP_OID = 78, /* 1.3.6.1.5.5.7.3.8, id-kp-timeStamping */
EKU_OCSP_SIGN_OID = 79, /* 1.3.6.1.5.5.7.3.9, id-kp-OCSPSigning */
/* From RFC 6187: X.509v3 Certificates for Secure Shell Authentication */
EKU_SSH_CLIENT_AUTH_OID = ID_KP(21), /* id-kp-secureShellClient */
EKU_SSH_MSCL_OID = 264,
/* 1.3.6.1.4.1.311.20.2.2, MS Smart Card Logon */
EKU_SSH_KP_CLIENT_AUTH_OID = 64
/* 1.3.6.1.5.2.3.4, id-pkinit-KPClientAuth*/
};
#ifdef WOLFSSL_SUBJ_DIR_ATTR
#define ID_PDA(num) (ID_PKIX(9)+(num)) /* 1.3.6.1.5.5.7.9.num, id-pda num */
enum SubjDirAttr_Sum { /* From RFC 3739, section 3.3.2 */
SDA_DOB_OID = ID_PDA(1), /* id-pda-dateOfBirth */
SDA_POB_OID = ID_PDA(2), /* id-pda-placeOfBirth */
SDA_GENDER_OID = ID_PDA(3), /* id-pda-gender */
SDA_COC_OID = ID_PDA(4), /* id-pda-countryOfCitizenship */
SDA_COR_OID = ID_PDA(5) /* id-pda-countryOfResidence */
};
#endif /* WOLFSSL_SUBJ_DIR_ATTR */
#ifdef HAVE_LIBZ
enum CompressAlg_Sum {
ZLIBc = 679 /* 1.2.840.113549.1.9.16.3.8, id-alg-zlibCompress */
};
#endif
enum VerifyType {
NO_VERIFY = 0,
VERIFY = 1,
@ -1653,22 +1285,6 @@ enum KeyIdType {
};
#endif
#if defined(WOLFSSL_CERT_REQ) || defined(WOLFSSL_CERT_NAME_ALL)
enum CsrAttrType {
UNSTRUCTURED_NAME_OID = 654,
PKCS9_CONTENT_TYPE_OID = 655,
CHALLENGE_PASSWORD_OID = 659,
SERIAL_NUMBER_OID = 94,
EXTENSION_REQUEST_OID = 666,
USER_ID_OID = 865,
DNQUALIFIER_OID = 135,
INITIALS_OID = 132,
SURNAME_OID = 93,
NAME_OID = 130,
GIVEN_NAME_OID = 131
};
#endif
/* Key usage extension bits (based on RFC 5280) */
#define KEYUSE_DIGITAL_SIG 0x0080
#define KEYUSE_CONTENT_COMMIT 0x0040
@ -2622,6 +2238,8 @@ WOLFSSL_LOCAL int GetInt(mp_int* mpi, const byte* input, word32* inOutIdx,
WOLFSSL_ASN_API int GetASNInt(const byte* input, word32* inOutIdx, int* len,
word32 maxIdx);
WOLFSSL_LOCAL word32 wc_oid_sum(const byte* input, int length);
#ifdef HAVE_OID_ENCODING
WOLFSSL_API int wc_EncodeObjectId(const word16* in, word32 inSz,
byte* out, word32* outSz);
@ -2818,11 +2436,6 @@ enum Ocsp_Cert_Status {
};
enum Ocsp_Sums {
OCSP_BASIC_OID = 117,
OCSP_NONCE_OID = 118
};
#ifdef OPENSSL_EXTRA
enum Ocsp_Verify_Error {
OCSP_VERIFY_ERROR_NONE = 0,

View File

@ -81,42 +81,6 @@ This library defines the interface APIs for X509 certificates.
#define WC_SPHINCSKEY_TYPE_DEFINED
#endif
enum Ecc_Sum {
ECC_SECP112R1_OID = 182,
ECC_SECP112R2_OID = 183,
ECC_SECP128R1_OID = 204,
ECC_SECP128R2_OID = 205,
ECC_SECP160R1_OID = 184,
ECC_SECP160R2_OID = 206,
ECC_SECP160K1_OID = 185,
ECC_BRAINPOOLP160R1_OID = 98,
ECC_SECP192R1_OID = 520,
ECC_PRIME192V2_OID = 521,
ECC_PRIME192V3_OID = 522,
ECC_SECP192K1_OID = 207,
ECC_BRAINPOOLP192R1_OID = 100,
ECC_SECP224R1_OID = 209,
ECC_SECP224K1_OID = 208,
ECC_BRAINPOOLP224R1_OID = 102,
ECC_PRIME239V1_OID = 523,
ECC_PRIME239V2_OID = 524,
ECC_PRIME239V3_OID = 525,
ECC_SECP256R1_OID = 526,
ECC_SECP256K1_OID = 186,
ECC_BRAINPOOLP256R1_OID = 104,
ECC_SM2P256V1_OID = 667,
ECC_X25519_OID = 365,
ECC_ED25519_OID = 256,
ECC_BRAINPOOLP320R1_OID = 106,
ECC_X448_OID = 362,
ECC_ED448_OID = 257,
ECC_SECP384R1_OID = 210,
ECC_BRAINPOOLP384R1_OID = 108,
ECC_BRAINPOOLP512R1_OID = 110,
ECC_SECP521R1_OID = 211
};
enum EncPkcs8Types {
ENC_PKCS8_VER_PKCS12 = 1,
ENC_PKCS8_VER_PKCS5 = 5,
@ -187,58 +151,6 @@ enum CertType {
};
/* Signature type, by OID sum */
enum Ctc_SigType {
CTC_SHAwDSA = 517,
CTC_SHA256wDSA = 416,
CTC_MD2wRSA = 646,
CTC_MD5wRSA = 648,
CTC_SHAwRSA = 649,
CTC_SHAwECDSA = 520,
CTC_SHA224wRSA = 658,
CTC_SHA224wECDSA = 523,
CTC_SHA256wRSA = 655,
CTC_SHA256wECDSA = 524,
CTC_SHA384wRSA = 656,
CTC_SHA384wECDSA = 525,
CTC_SHA512wRSA = 657,
CTC_SHA512wECDSA = 526,
/* https://csrc.nist.gov/projects/computer-security-objects-register/algorithm-registration */
CTC_SHA3_224wECDSA = 423,
CTC_SHA3_256wECDSA = 424,
CTC_SHA3_384wECDSA = 425,
CTC_SHA3_512wECDSA = 426,
CTC_SHA3_224wRSA = 427,
CTC_SHA3_256wRSA = 428,
CTC_SHA3_384wRSA = 429,
CTC_SHA3_512wRSA = 430,
CTC_RSASSAPSS = 654,
CTC_SM3wSM2 = 740, /* 1.2.156.10197.1.501 */
CTC_ED25519 = 256,
CTC_ED448 = 257,
CTC_FALCON_LEVEL1 = 273,
CTC_FALCON_LEVEL5 = 276,
CTC_DILITHIUM_LEVEL2 = 218,
CTC_DILITHIUM_LEVEL3 = 221,
CTC_DILITHIUM_LEVEL5 = 225,
CTC_ML_DSA_LEVEL2 = 431,
CTC_ML_DSA_LEVEL3 = 432,
CTC_ML_DSA_LEVEL5 = 433,
CTC_SPHINCS_FAST_LEVEL1 = 281,
CTC_SPHINCS_FAST_LEVEL3 = 283,
CTC_SPHINCS_FAST_LEVEL5 = 282,
CTC_SPHINCS_SMALL_LEVEL1 = 287,
CTC_SPHINCS_SMALL_LEVEL3 = 285,
CTC_SPHINCS_SMALL_LEVEL5 = 286
};
enum Ctc_Encoding {
CTC_UTF8 = 0x0c, /* utf8 */
CTC_PRINTABLE = 0x13 /* printable */
@ -1058,6 +970,8 @@ typedef struct Asn1Item {
/* Maximum supported depth of ASN.1 items. */
#define ASN_MAX_DEPTH 16
typedef const char* (*Asn1OidToNameCb)(unsigned char* oid, word32 len);
/* ASN.1 parsing state. */
typedef struct Asn1 {
/* ASN.1 item data. */
@ -1080,6 +994,9 @@ typedef struct Asn1 {
/* File pointer to print to. */
XFILE file;
/* Callback to get a name for an hex OID. */
Asn1OidToNameCb nameCb;
} Asn1;
WOLFSSL_API int wc_Asn1PrintOptions_Init(Asn1PrintOptions* opts);
@ -1088,6 +1005,7 @@ WOLFSSL_API int wc_Asn1PrintOptions_Set(Asn1PrintOptions* opts,
WOLFSSL_API int wc_Asn1_Init(Asn1* asn1);
WOLFSSL_API int wc_Asn1_SetFile(Asn1* asn1, XFILE file);
WOLFSSL_API int wc_Asn1_SetOidToNameCb(Asn1* asn1, Asn1OidToNameCb nameCb);
WOLFSSL_API int wc_Asn1_PrintAll(Asn1* asn1, Asn1PrintOptions* opts,
unsigned char* data, word32 len);

View File

@ -85,7 +85,8 @@ nobase_include_HEADERS+= \
wolfssl/wolfcrypt/ext_lms.h \
wolfssl/wolfcrypt/xmss.h \
wolfssl/wolfcrypt/wc_xmss.h \
wolfssl/wolfcrypt/ext_xmss.h
wolfssl/wolfcrypt/ext_xmss.h \
wolfssl/wolfcrypt/oid_sum.h
noinst_HEADERS+= \
wolfssl/wolfcrypt/port/aria/aria-crypt.h \

File diff suppressed because it is too large Load Diff

View File

@ -81,22 +81,6 @@
#define WOLFSSL_SIGNING_TIME_ATTRIBUTE 0x4
#define WOLFSSL_MESSAGE_DIGEST_ATTRIBUTE 0x8
/* PKCS#7 content types, ref RFC 2315 (Section 14) */
enum PKCS7_TYPES {
PKCS7_MSG = 650, /* 1.2.840.113549.1.7 */
DATA = 651, /* 1.2.840.113549.1.7.1 */
SIGNED_DATA = 652, /* 1.2.840.113549.1.7.2 */
ENVELOPED_DATA = 653, /* 1.2.840.113549.1.7.3 */
SIGNED_AND_ENVELOPED_DATA = 654, /* 1.2.840.113549.1.7.4 */
DIGESTED_DATA = 655, /* 1.2.840.113549.1.7.5 */
ENCRYPTED_DATA = 656, /* 1.2.840.113549.1.7.6 */
#if defined(HAVE_LIBZ) && !defined(NO_PKCS7_COMPRESSED_DATA)
COMPRESSED_DATA = 678, /* 1.2.840.113549.1.9.16.1.9, RFC 3274 */
#endif
FIRMWARE_PKG_DATA = 685, /* 1.2.840.113549.1.9.16.1.16, RFC 4108 */
AUTH_ENVELOPED_DATA = 692 /* 1.2.840.113549.1.9.16.1.23, RFC 5083 */
};
enum PKCS7_STATE {
WC_PKCS7_START = 0,

View File

@ -3583,6 +3583,13 @@ extern void uITRON4_free(void *p) ;
#endif
#endif
#ifdef WOLFSSL_PYTHON
/* Need to use old OID sum algorithm until OSP patches, in particular to
* tests, for all versions reflect the new OID sum value. */
#undef WOLFSSL_OLD_OID_SUM
#define WOLFSSL_OLD_OID_SUM
#endif
/* Linux Kernel Module */
#ifdef WOLFSSL_LINUXKM

View File

@ -33,6 +33,7 @@ decouple library dependencies with standard string, memory and so on.
#include <wolfssl/wolfcrypt/settings.h>
#include <wolfssl/wolfcrypt/wc_port.h>
#include <wolfssl/wolfcrypt/oid_sum.h>
#if defined(EXTERNAL_OPTS_OPENVPN) && defined(BUILDING_WOLFSSL)
#error EXTERNAL_OPTS_OPENVPN should not be defined in compiled wolfssl library files.