certedef.c
来自「提供了很多种加密算法和CA认证及相关服务如CMP、OCSP等的开发」· C语言 代码 · 共 1,651 行 · 第 1/5 页
C
1,651 行
MKDESC( "generalName.otherName" )
BER_SEQUENCE, CTAG( 0 ),
FL_MORE | FL_OPTIONAL, 0, 0, 0, NULL },
{ NULL, CRYPT_CERTINFO_OTHERNAME_TYPEID,
MKDESC( "generalName.otherName.type-id" )
BER_OBJECT_IDENTIFIER, 0,
FL_MORE | FL_OPTIONAL, 3, 32, 0, NULL },
{ NULL, CRYPT_CERTINFO_OTHERNAME_VALUE,
MKDESC( "generalName.otherName.value" )
FIELDTYPE_BLOB, CTAG( 0 ),
FL_MORE | FL_OPTIONAL | FL_EXPLICIT | FL_SEQEND, 3, 512, 0, NULL },
{ NULL, CRYPT_CERTINFO_RFC822NAME,
MKDESC( "generalName.rfc822Name" )
BER_STRING_IA5, CTAG( 1 ),
FL_MORE | FL_OPTIONAL, MIN_RFC822_SIZE, MAX_RFC822_SIZE, 0, ( void * ) checkRFC822 },
{ NULL, CRYPT_CERTINFO_DNSNAME,
MKDESC( "generalName.dNSName" )
BER_STRING_IA5, CTAG( 2 ),
FL_MORE | FL_OPTIONAL, MIN_DNS_SIZE, MAX_DNS_SIZE, 0, ( void * ) checkDNS },
{ NULL, 0,
MKDESC( "generalName.directoryName" )
BER_SEQUENCE, CTAG( 4 ),
FL_MORE | FL_OPTIONAL, 0, 0, 0, NULL },
{ NULL, CRYPT_CERTINFO_DIRECTORYNAME,
MKDESC( "generalName.directoryName.name" )
FIELDTYPE_DN, BER_SEQUENCE,
FL_MORE | FL_OPTIONAL | FL_SEQEND_1, 0, 0, 0, ( void * ) checkDirectoryName },
{ NULL, 0,
MKDESC( "generalName.ediPartyName" )
BER_SEQUENCE, CTAG( 5 ),
FL_MORE | FL_OPTIONAL, 0, 0, 0, NULL },
{ NULL, CRYPT_CERTINFO_EDIPARTYNAME_NAMEASSIGNER,
MKDESC( "generalName.ediPartyName.nameAssigner" )
BER_STRING_PRINTABLE, CTAG( 0 ),
FL_MORE | FL_OPTIONAL, 1, CRYPT_MAX_TEXTSIZE, 0, NULL },
{ NULL, CRYPT_CERTINFO_EDIPARTYNAME_PARTYNAME,
MKDESC( "generalName.ediPartyName.partyName" )
BER_STRING_PRINTABLE, CTAG( 1 ),
FL_MORE | FL_OPTIONAL | FL_SEQEND, 1, CRYPT_MAX_TEXTSIZE, 0, NULL },
{ NULL, CRYPT_CERTINFO_UNIFORMRESOURCEIDENTIFIER,
MKDESC( "generalName.uniformResourceIdentifier" )
BER_STRING_IA5, CTAG( 6 ),
FL_MORE | FL_OPTIONAL, MIN_DNS_SIZE, MAX_DNS_SIZE, 0, ( void * ) checkURL },
{ NULL, CRYPT_CERTINFO_IPADDRESS,
MKDESC( "generalName.iPAddress" )
BER_OCTETSTRING, CTAG( 7 ),
FL_MORE | FL_OPTIONAL, 4, 4, 0, NULL },
{ NULL, CRYPT_CERTINFO_REGISTEREDID,
MKDESC( "generalName.registeredID" )
BER_OBJECT_IDENTIFIER, CTAG( 8 ),
FL_OPTIONAL, 3, 32, 0, NULL },
{ NULL, CRYPT_ERROR }
};
/****************************************************************************
* *
* CMS Attribute Definitions *
* *
****************************************************************************/
/* CMS attributes are encoded using the following table */
static const ATTRIBUTE_INFO FAR_BSS cmsAttributeInfo[] = {
/* contentType:
OID = 1 2 840 113549 1 9 3
OBJECT IDENTIFIER */
{ MKOID( "\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x09\x03" ), CRYPT_CERTINFO_CMS_CONTENTTYPE,
MKDESC( "contentType" )
FIELDTYPE_CHOICE, 0,
0, CRYPT_CONTENT_DATA, CRYPT_CONTENT_LAST, 0, ( void * ) contentTypeInfo },
/* messageDigest:
OID = 1 2 840 113549 1 9 4
OCTET STRING */
{ MKOID( "\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x09\x04" ), CRYPT_CERTINFO_CMS_MESSAGEDIGEST,
MKDESC( "messageDigest" )
BER_OCTETSTRING, 0,
0, 16, 32, 0, NULL },
/* signingTime:
OID = 1 2 840 113549 1 9 5
CHOICE {
utcTime UTCTime, -- Up to 2049
generalizedTime GeneralizedTime
} */
{ MKOID( "\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x09\x05" ), CRYPT_CERTINFO_CMS_SIGNINGTIME,
MKDESC( "signingTime" )
BER_TIME_UTC, 0,
0, sizeof( time_t ), sizeof( time_t ), 0, NULL },
/* counterSignature:
OID = 1 2 840 113549 1 9 6
CHOICE {
utcTime UTCTime, -- Up to 2049
generalizedTime GeneralizedTime
}
This field isn't an authenticated attribute so it isn't used */
{ MKOID( "\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x09\x06" ), CRYPT_CERTINFO_CMS_COUNTERSIGNATURE,
MKDESC( "counterSignature" )
-1, 0,
0, 0, 0, 0, NULL },
/* sMIMECapabilities:
OID = 1 2 840 113549 1 9 15
SEQUENCE OF {
SEQUENCE {
capabilityID OBJECT IDENTIFIER,
parameters ANY DEFINED BY capabilityID
}
} */
{ MKOID( "\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x09\x0F" ), CRYPT_CERTINFO_CMS_SMIMECAPABILITIES,
MKDESC( "sMIMECapabilities" )
BER_SEQUENCE, 0,
FL_MORE | FL_SETOF_FIXED, 0, 0, 0, NULL },
{ NULL, 0,
MKDESC( "sMIMECapabilities.capability (des-EDE3-CBC)" )
BER_SEQUENCE, 0,
FL_MORE | FL_IDENTIFIER, 0, 0, 0, NULL },
{ MKOID( "\x06\x08\x2A\x86\x48\x86\xF7\x0D\x03\x07" ), CRYPT_CERTINFO_CMS_SMIMECAP_3DES,
MKDESC( "sMIMECapabilities.capability.des-EDE3-CBC" )
FIELDTYPE_IDENTIFIER, 0,
FL_MORE | FL_NONENCODING | FL_SEQEND, 0, 0, 0, NULL },
{ NULL, 0,
MKDESC( "sMIMECapabilities.capability (aes128-CBC)" )
BER_SEQUENCE, 0,
FL_MORE | FL_IDENTIFIER, 0, 0, 0, NULL },
{ MKOID( "\x06\x09\x60\x86\x48\x01\x65\x03\x04\x01\x02" ), CRYPT_CERTINFO_CMS_SMIMECAP_AES,
MKDESC( "sMIMECapabilities.capability.aes128-CBC" )
FIELDTYPE_IDENTIFIER, 0,
FL_MORE | FL_NONENCODING | FL_SEQEND, 0, 0, 0, NULL },
{ NULL, 0,
MKDESC( "sMIMECapabilities.capability (cast5CBC)" )
BER_SEQUENCE, 0,
FL_MORE | FL_IDENTIFIER, 0, 0, 0, NULL },
{ MKOID( "\x06\x09\x2A\x86\x48\x86\xF6\x7D\x07\x42\x0A" ), CRYPT_CERTINFO_CMS_SMIMECAP_CAST128,
MKDESC( "sMIMECapabilities.capability.cast5CBC" )
FIELDTYPE_IDENTIFIER, 0,
FL_MORE | FL_NONENCODING, 0, 0, 0, NULL },
{ NULL, 0,
MKDESC( "sMIMECapabilities.capability.cast5CBC.parameter" )
FIELDTYPE_BLOB, 0, /* 128-bit key */
FL_MORE | FL_NONENCODING | FL_SEQEND, 0, 0, 4, "\x02\x02\x00\x80" },
{ NULL, 0,
MKDESC( "sMIMECapabilities.capability (ideaCBC)" )
BER_SEQUENCE, 0,
FL_MORE | FL_IDENTIFIER, 0, 0, 0, NULL },
{ MKOID( "\x06\x0B\x2B\x06\x01\x04\x01\x81\x3C\x07\x01\x01\x02" ), CRYPT_CERTINFO_CMS_SMIMECAP_IDEA,
MKDESC( "sMIMECapabilities.capability.ideaCBC (Ascom Tech variant)" )
FIELDTYPE_IDENTIFIER, 0,
FL_MORE | FL_NONENCODING | FL_SEQEND, 0, 0, 0, NULL },
{ NULL, 0,
MKDESC( "sMIMECapabilities.capability (rc2CBC)" )
BER_SEQUENCE, 0,
FL_MORE | FL_IDENTIFIER, 0, 0, 0, NULL },
{ MKOID( "\x06\x08\x2A\x86\x48\x86\xF7\x0D\x03\x02" ), CRYPT_CERTINFO_CMS_SMIMECAP_RC2,
MKDESC( "sMIMECapabilities.capability.rc2CBC" )
FIELDTYPE_IDENTIFIER, 0,
FL_MORE | FL_NONENCODING, 0, 0, 0, NULL },
{ NULL, 0,
MKDESC( "sMIMECapabilities.capability.rc2CBC.parameters" )
FIELDTYPE_BLOB, 0, /* 128-bit key */
FL_MORE | FL_NONENCODING | FL_SEQEND, 0, 0, 4, "\x02\x02\x00\x80" },
{ NULL, 0,
MKDESC( "sMIMECapabilities.capability (rC5-CBCPad)" )
BER_SEQUENCE, 0,
FL_MORE | FL_IDENTIFIER, 0, 0, 0, NULL },
{ MKOID( "\x06\x08\x2A\x86\x48\x86\xF7\x0D\x03\x09" ), CRYPT_CERTINFO_CMS_SMIMECAP_RC5,
MKDESC( "sMIMECapabilities.capability.rC5-CBCPad" )
FIELDTYPE_IDENTIFIER, 0,
FL_MORE | FL_NONENCODING, 0, 0, 0, NULL },
{ NULL, 0,
MKDESC( "sMIMECapabilities.capability.rC5-CBCPad.parameters" )
FIELDTYPE_BLOB, 0, /* 16-byte key, 12 rounds, 64-bit blocks */
FL_MORE | FL_NONENCODING | FL_SEQEND, 0, 0, 11, "\x30\x09\x02\x01\x10\x02\x01\x0C\x02\x01\x40" },
{ NULL, 0,
MKDESC( "sMIMECapabilities.capability (fortezzaConfidentialityAlgorithm)" )
BER_SEQUENCE, 0,
FL_MORE | FL_IDENTIFIER, 0, 0, 0, NULL },
{ MKOID( "\x06\x09\x60\x86\x48\x01\x65\x02\x01\x01\x04" ), CRYPT_CERTINFO_CMS_SMIMECAP_SKIPJACK,
MKDESC( "sMIMECapabilities.capability.fortezzaConfidentialityAlgorithm" )
FIELDTYPE_IDENTIFIER, 0,
FL_MORE | FL_NONENCODING | FL_SEQEND, 0, 0, 0, NULL },
{ NULL, 0,
MKDESC( "sMIMECapabilities.capability (desCBC)" )
BER_SEQUENCE, 0,
FL_MORE | FL_IDENTIFIER, 0, 0, 0, NULL },
{ MKOID( "\x06\x05\x2B\x0E\x03\x02\x07" ), CRYPT_CERTINFO_CMS_SMIMECAP_DES,
MKDESC( "sMIMECapabilities.capability.desCBC" )
FIELDTYPE_IDENTIFIER, 0,
FL_MORE | FL_NONENCODING | FL_SEQEND, 0, 0, 0, NULL },
{ NULL, 0,
MKDESC( "sMIMECapabilities.capability (preferSignedData)" )
BER_SEQUENCE, 0,
FL_MORE | FL_IDENTIFIER, 0, 0, 0, NULL },
{ MKOID( "\x06\x0A\x2A\x86\x48\x86\xF7\x0D\x01\x09\x0F\x01" ), CRYPT_CERTINFO_CMS_SMIMECAP_PREFERSIGNEDDATA,
MKDESC( "sMIMECapabilities.capability.preferSignedData" )
FIELDTYPE_IDENTIFIER, 0,
FL_MORE | FL_NONENCODING | FL_SEQEND, 0, 0, 0, NULL },
{ NULL, 0,
MKDESC( "sMIMECapabilities.capability (canNotDecryptAny)" )
BER_SEQUENCE, 0,
FL_MORE | FL_IDENTIFIER, 0, 0, 0, NULL },
{ MKOID( "\x06\x0A\x2A\x86\x48\x86\xF7\x0D\x01\x09\x0F\x02" ), CRYPT_CERTINFO_CMS_SMIMECAP_CANNOTDECRYPTANY,
MKDESC( "sMIMECapabilities.capability.canNotDecryptAny" )
FIELDTYPE_IDENTIFIER, 0,
FL_MORE | FL_NONENCODING | FL_SEQEND, 0, 0, 0, NULL },
{ NULL, 0,
MKDESC( "sMIMECapabilities.capability (catchAll)" )
BER_SEQUENCE, 0,
FL_MORE | FL_IDENTIFIER, 0, 0, 0, NULL },
{ NULL, 10000,
MKDESC( "sMIMECapabilities.capability.catchAll" )
FIELDTYPE_BLOB, 0, /* Match anything and ignore it */
FL_NONENCODING | FL_SEQEND, 0, 0, 0, NULL },
/* receiptRequest:
OID = 1 2 840 113549 1 9 16 2 1
SEQUENCE {
contentIdentifier OCTET STRING,
receiptsFrom [ 0 ] INTEGER (0..1),
receiptsTo SEQUENCE {
SEQUENCE OF GeneralName -- SIZE (1)
}
} */
{ MKOID( "\x06\x0B\x2A\x86\x48\x86\xF7\x0D\x01\x09\x10\x02\x01" ), CRYPT_CERTINFO_CMS_RECEIPTREQUEST,
MKDESC( "receiptRequest" )
BER_SEQUENCE, 0,
FL_MORE, 0, 0, 0, NULL },
{ NULL, CRYPT_CERTINFO_CMS_RECEIPT_CONTENTIDENTIFIER,
MKDESC( "receiptRequest.contentIdentifier" )
BER_OCTETSTRING, 0,
FL_MORE, 16, 64, 0, NULL },
{ NULL, CRYPT_CERTINFO_CMS_RECEIPT_FROM,
MKDESC( "receiptRequest.receiptsFrom" )
BER_INTEGER, CTAG( 0 ),
FL_MORE, 0, 1, 0, NULL },
{ NULL, 0,
MKDESC( "receiptRequest.receiptsTo" )
BER_SEQUENCE, 0,
FL_MORE, 0, 0, 0, NULL },
{ NULL, 0,
MKDESC( "receiptRequest.receiptsTo.generalNames" )
BER_SEQUENCE, 0,
FL_MORE, 0, 0, 0, NULL },
{ NULL, CRYPT_CERTINFO_CMS_RECEIPT_TO,
MKDESC( "receiptRequest.receiptsTo.generalNames.generalName" )
FIELDTYPE_SUBTYPED, 0,
FL_SEQEND_2, 0, 0, 0, ( void * ) generalNameInfo },
/* essSecurityLabel:
OID = 1 2 840 113549 1 9 16 2 2
SET {
policyIdentifier OBJECT IDENTIFIER,
classification INTEGER (0..5+6..255) OPTIONAL,
privacyMark PrintableString OPTIONAL,
categories SET OF { -- SIZE (1)
SEQUENCE {
type [ 0 ] OBJECT IDENTIFIER,
value [ 1 ] ANY DEFINED BY type
}
} OPTIONAL
}
Because this is a SET, we don't order the fields in the sequence
given in the above ASN.1 but in the order of encoded size to follow
the DER SET encoding rules */
{ MKOID( "\x06\x0B\x2A\x86\x48\x86\xF7\x0D\x01\x09\x10\x02\x02" ), CRYPT_CERTINFO_CMS_SECURITYLABEL,
MKDESC( "essSecurityLabel" )
BER_SET, 0,
FL_MORE, 0, 0, 0, NULL },
{ NULL, CRYPT_CERTINFO_CMS_SECLABEL_CLASSIFICATION,
MKDESC( "essSecurityLabel.securityClassification" )
BER_INTEGER, 0,
FL_MORE | FL_OPTIONAL, CRYPT_CLASSIFICATION_UNMARKED, CRYPT_CLASSIFICATION_LAST, 0, NULL },
{ NULL, CRYPT_CERTINFO_CMS_SECLABEL_POLICY,
MKDESC( "essSecurityLabel.securityPolicyIdentifier" )
BER_OBJECT_IDENTIFIER, 0,
FL_MORE, 3, 32, 0, NULL },
{ NULL, CRYPT_CERTINFO_CMS_SECLABEL_PRIVACYMARK,
MKDESC( "essSecurityLabel.privacyMark" )
BER_STRING_PRINTABLE, 0,
FL_MORE | FL_OPTIONAL, 1, 64, 0, NULL },
{ NULL, 0,
MKDESC( "essSecurityLabel.securityCategories" )
BER_SET, 0,
FL_MORE | FL_OPTIONAL, 0, 0, 0, NULL },
{ NULL, 0,
MKDESC( "essSecurityLabel.securityCategories.securityCategory" )
BER_SEQUENCE, 0,
FL_MORE, 0, 0, 0, NULL },
{ NULL, CRYPT_CERTINFO_CMS_SECLABEL_CATTYPE,
MKDESC( "essSecurityLabel.securityCategories.securityCategory.type" )
BER_OBJECT_IDENTIFIER, CTAG( 0 ),
FL_MORE | FL_OPTIONAL, 3, 32, 0, NULL },
{ NULL, CRYPT_CERTINFO_CMS_SECLABEL_CATVALUE,
MKDESC( "essSecurityLabel.securityCategories.securityCategory.type" )
FIELDTYPE_BLOB, CTAG( 1 ),
FL_SEQEND_2 | FL_OPTIONAL, 1, 512, 0, NULL },
/* mlExpansionHistory:
OID = 1 2 840 113549 1 9 16 2 3
SEQUENCE OF { -- SIZE (1)
SEQUENCE {
entityIdentifier IssuerAndSerialNumber (blob),
expansionTime GeneralizedTime,
mlReceiptPolicy CHOICE {
none [ 0 ] NULL,
insteadOf [ 1 ] SEQUENCE OF { -- SIZE (1)
SEQUENCE OF GeneralName -- GeneralNames
}
inAdditionTo [ 2 ] SEQUENCE OF { -- SIZE (1)
SEQUENCE OF GeneralName -- GeneralNames
}
}
} OPTIONAL
} */
{ MKOID( "\x06\x0B\x2A\x86\x48\x86\xF7\x0D\x01\x09\x10\x02\x03" ), CRYPT_CERTINFO_CMS_MLEXPANSIONHISTORY,
MKDESC( "mlExpansionHistory" )
BER_SEQUENCE, 0,
FL_MORE, 0, 0, 0, NULL },
{ NULL, 0,
MKDESC( "mlExpansionHistory.mlData" )
BER_SEQUENCE, 0,
FL_MORE, 0, 0, 0, NULL },
{ NULL, CRYPT_CERTINFO_CMS_MLEXP_ENTITYIDENTIFIER,
MKDESC( "mlExpansionHistory.mlData.mailListIdentifier.issuerAndSerialNumber" )
FIELDTY
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?