windows-nt/Source/XPSP1/NT/ds/security/cryptoapi/pki/wincrmsg/pkcs.h

651 lines
18 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
/* Copyright (C) Microsoft Corporation, 1996 - 1999 All rights reserved. */
/* ASN.1 definitions for GlobalDirectives */
#ifndef _PKCS_Module_H_
#define _PKCS_Module_H_
#include "msber.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef ASN1open_t SignerInfosNC_Set;
typedef ASN1open_t SetOfAny_Set;
typedef ASN1open_t AttributeSetValueNC_Set;
typedef ASN1open_t AttributeSetValue_Set;
typedef ASN1objectidentifier2_t ObjectID;
#define ObjectID_PDU 0
#define SIZE_PKCS_Module_PDU_0 sizeof(ObjectID)
typedef ASN1open_t Any;
typedef ObjectID ObjectIdentifierType;
#define ObjectIdentifierType_PDU 1
#define SIZE_PKCS_Module_PDU_1 sizeof(ObjectIdentifierType)
typedef ASN1octetstring_t OctetStringType;
#define OctetStringType_PDU 2
#define SIZE_PKCS_Module_PDU_2 sizeof(OctetStringType)
typedef ASN1int32_t IntegerType;
#define IntegerType_PDU 3
#define SIZE_PKCS_Module_PDU_3 sizeof(IntegerType)
typedef ASN1intx_t HugeIntegerType;
#define HugeIntegerType_PDU 4
#define SIZE_PKCS_Module_PDU_4 sizeof(HugeIntegerType)
typedef ASN1bitstring_t BitStringType;
typedef ASN1octetstring_t Digest;
typedef ASN1open_t CertificateRevocationList;
typedef ASN1open_t CertificateRevocationListNC;
typedef HugeIntegerType CertificateSerialNumber;
typedef ASN1open_t Name;
typedef ASN1open_t Certificate;
typedef ASN1open_t CertificateNC;
typedef ASN1open_t AlgorithmIdentifierNC;
typedef AlgorithmIdentifierNC DigestAlgorithmIdentifierNC;
typedef ASN1open_t AttributeNC;
typedef AlgorithmIdentifierNC ContentEncryptionAlgIdNC;
typedef ObjectID ContentType;
typedef ASN1octetstring_t Data;
typedef ASN1open_t DigestAlgorithmBlob;
typedef ASN1octetstring_t EncryptedDigest;
typedef ASN1octetstring_t EncryptedDigestNC;
typedef ASN1octetstring_t EncryptedContent;
typedef OctetStringType EncryptedKey;
typedef ASN1open_t CertIdentifierNC;
typedef OctetStringType SubjectKeyIdentifier;
typedef OctetStringType UserKeyingMaterial;
typedef struct AlgorithmIdentifier {
union {
ASN1uint16_t bit_mask;
ASN1octet_t o[1];
};
ObjectID algorithm;
# define AlgorithmIdentifier_parameters_present 0x80
ASN1open_t parameters;
} AlgorithmIdentifier;
#define AlgorithmIdentifier_PDU 5
#define SIZE_PKCS_Module_PDU_5 sizeof(AlgorithmIdentifier)
typedef struct AlgorithmIdentifierNC2 {
union {
ASN1uint16_t bit_mask;
ASN1octet_t o[1];
};
ObjectID algorithm;
# define AlgorithmIdentifierNC2_parameters_present 0x80
ASN1open_t parameters;
} AlgorithmIdentifierNC2;
#define AlgorithmIdentifierNC2_PDU 6
#define SIZE_PKCS_Module_PDU_6 sizeof(AlgorithmIdentifierNC2)
typedef AlgorithmIdentifier DigestAlgorithmIdentifier;
typedef struct AlgorithmIdentifiers {
ASN1uint32_t count;
struct AlgorithmIdentifier *value;
} AlgorithmIdentifiers;
#define AlgorithmIdentifiers_PDU 7
#define SIZE_PKCS_Module_PDU_7 sizeof(AlgorithmIdentifiers)
typedef struct AttributeSetValue {
ASN1uint32_t count;
AttributeSetValue_Set *value;
} AttributeSetValue;
#define AttributeSetValue_PDU 8
#define SIZE_PKCS_Module_PDU_8 sizeof(AttributeSetValue)
typedef struct AttributeSetValueNC {
ASN1uint32_t count;
AttributeSetValueNC_Set *value;
} AttributeSetValueNC;
#define AttributeSetValueNC_PDU 9
#define SIZE_PKCS_Module_PDU_9 sizeof(AttributeSetValueNC)
typedef struct SetOfAny {
ASN1uint32_t count;
SetOfAny_Set *value;
} SetOfAny;
#define SetOfAny_PDU 10
#define SIZE_PKCS_Module_PDU_10 sizeof(SetOfAny)
typedef struct Attribute {
ObjectID attributeType;
AttributeSetValue attributeValue;
} Attribute;
typedef struct AttributeNC2 {
ObjectID attributeType;
AttributeSetValueNC attributeValue;
} AttributeNC2;
#define AttributeNC2_PDU 11
#define SIZE_PKCS_Module_PDU_11 sizeof(AttributeNC2)
typedef struct Attributes {
ASN1uint32_t count;
struct Attribute *value;
} Attributes;
#define Attributes_PDU 12
#define SIZE_PKCS_Module_PDU_12 sizeof(Attributes)
typedef struct AttributesNC {
ASN1uint32_t count;
AttributeNC *value;
} AttributesNC;
#define AttributesNC_PDU 13
#define SIZE_PKCS_Module_PDU_13 sizeof(AttributesNC)
typedef struct AttributesNC2 {
ASN1uint32_t count;
struct AttributeNC2 *value;
} AttributesNC2;
#define AttributesNC2_PDU 14
#define SIZE_PKCS_Module_PDU_14 sizeof(AttributesNC2)
typedef struct Crls {
ASN1uint32_t count;
CertificateRevocationList *value;
} Crls;
typedef struct CrlsNC {
ASN1uint32_t count;
CertificateRevocationListNC *value;
} CrlsNC;
#define CrlsNC_PDU 15
#define SIZE_PKCS_Module_PDU_15 sizeof(CrlsNC)
typedef AlgorithmIdentifier ContentEncryptionAlgId;
typedef AlgorithmIdentifier DigestEncryptionAlgId;
typedef AlgorithmIdentifierNC2 DigestEncryptionAlgIdNC;
typedef struct Certificates {
ASN1uint32_t count;
Certificate *value;
} Certificates;
typedef struct CertificatesNC {
ASN1uint32_t count;
CertificateNC *value;
} CertificatesNC;
#define CertificatesNC_PDU 16
#define SIZE_PKCS_Module_PDU_16 sizeof(CertificatesNC)
typedef struct IssuerAndSerialNumber {
Name issuer;
CertificateSerialNumber serialNumber;
} IssuerAndSerialNumber;
#define IssuerAndSerialNumber_PDU 17
#define SIZE_PKCS_Module_PDU_17 sizeof(IssuerAndSerialNumber)
typedef AlgorithmIdentifier KeyEncryptionAlgId;
typedef struct ContentInfo {
union {
ASN1uint16_t bit_mask;
ASN1octet_t o[1];
};
ContentType contentType;
# define ContentInfo_content_present 0x80
ASN1open_t content;
} ContentInfo;
#define ContentInfo_PDU 18
#define SIZE_PKCS_Module_PDU_18 sizeof(ContentInfo)
typedef struct ContentInfoNC {
union {
ASN1uint16_t bit_mask;
ASN1octet_t o[1];
};
ContentType contentType;
# define ContentInfoNC_content_present 0x80
ASN1open_t content;
} ContentInfoNC;
#define ContentInfoNC_PDU 19
#define SIZE_PKCS_Module_PDU_19 sizeof(ContentInfoNC)
typedef struct DigestAlgorithmIdentifiers {
ASN1uint32_t count;
DigestAlgorithmIdentifier *value;
} DigestAlgorithmIdentifiers;
typedef struct DigestAlgorithmIdentifiersNC {
ASN1uint32_t count;
DigestAlgorithmIdentifierNC *value;
} DigestAlgorithmIdentifiersNC;
#define DigestAlgorithmIdentifiersNC_PDU 20
#define SIZE_PKCS_Module_PDU_20 sizeof(DigestAlgorithmIdentifiersNC)
typedef struct SignerInfos {
ASN1uint32_t count;
struct SignerInfo *value;
} SignerInfos;
#define SignerInfos_PDU 21
#define SIZE_PKCS_Module_PDU_21 sizeof(SignerInfos)
typedef struct DigestAlgorithmBlobs {
ASN1uint32_t count;
DigestAlgorithmBlob *value;
} DigestAlgorithmBlobs;
#define DigestAlgorithmBlobs_PDU 22
#define SIZE_PKCS_Module_PDU_22 sizeof(DigestAlgorithmBlobs)
typedef struct SignerInfosNC {
ASN1uint32_t count;
SignerInfosNC_Set *value;
} SignerInfosNC;
#define SignerInfosNC_PDU 23
#define SIZE_PKCS_Module_PDU_23 sizeof(SignerInfosNC)
typedef struct SignerInfoWithAABlobs {
ASN1uint32_t count;
struct SignerInfoWithAABlob *value;
} SignerInfoWithAABlobs;
#define SignerInfoWithAABlobs_PDU 24
#define SIZE_PKCS_Module_PDU_24 sizeof(SignerInfoWithAABlobs)
typedef struct SignerInfoWithAABlob {
union {
ASN1uint16_t bit_mask;
ASN1octet_t o[1];
};
ASN1open_t version;
ASN1open_t sid;
ASN1open_t digestAlgorithm;
ASN1open_t authenticatedAttributes;
ASN1open_t digestEncryptionAlgorithm;
ASN1open_t encryptedDigest;
# define dummyUAAs_present 0x80
AttributesNC dummyUAAs;
} SignerInfoWithAABlob;
#define SignerInfoWithAABlob_PDU 25
#define SIZE_PKCS_Module_PDU_25 sizeof(SignerInfoWithAABlob)
typedef struct SignerInfoWithAttrBlobs {
union {
ASN1uint16_t bit_mask;
ASN1octet_t o[1];
};
ASN1open_t version;
ASN1open_t sid;
ASN1open_t digestAlgorithm;
# define SignerInfoWithAttrBlobs_authAttributes_present 0x80
AttributesNC authAttributes;
DigestEncryptionAlgIdNC digestEncryptionAlgorithm;
ASN1open_t encryptedDigest;
# define SignerInfoWithAttrBlobs_unauthAttributes_present 0x40
AttributesNC unauthAttributes;
} SignerInfoWithAttrBlobs;
#define SignerInfoWithAttrBlobs_PDU 26
#define SIZE_PKCS_Module_PDU_26 sizeof(SignerInfoWithAttrBlobs)
typedef struct SignerInfoWithBlobs {
union {
ASN1uint16_t bit_mask;
ASN1octet_t o[1];
};
ASN1int32_t version;
CertIdentifierNC sid;
DigestAlgorithmIdentifierNC digestAlgorithm;
# define SignerInfoWithBlobs_authAttributes_present 0x80
AttributesNC2 authAttributes;
DigestEncryptionAlgIdNC digestEncryptionAlgorithm;
EncryptedDigestNC encryptedDigest;
# define SignerInfoWithBlobs_unauthAttributes_present 0x40
AttributesNC2 unauthAttributes;
} SignerInfoWithBlobs;
#define SignerInfoWithBlobs_PDU 27
#define SIZE_PKCS_Module_PDU_27 sizeof(SignerInfoWithBlobs)
typedef struct RecipientInfos {
ASN1uint32_t count;
struct RecipientInfo *value;
} RecipientInfos;
#define RecipientInfos_PDU 28
#define SIZE_PKCS_Module_PDU_28 sizeof(RecipientInfos)
typedef struct EncryptedContentInfo {
union {
ASN1uint16_t bit_mask;
ASN1octet_t o[1];
};
ContentType contentType;
ContentEncryptionAlgId contentEncryptionAlgorithm;
# define encryptedContent_present 0x80
EncryptedContent encryptedContent;
} EncryptedContentInfo;
#define EncryptedContentInfo_PDU 29
#define SIZE_PKCS_Module_PDU_29 sizeof(EncryptedContentInfo)
typedef struct RecipientInfo {
ASN1int32_t version;
IssuerAndSerialNumber issuerAndSerialNumber;
KeyEncryptionAlgId keyEncryptionAlgorithm;
EncryptedKey encryptedKey;
} RecipientInfo;
#define RecipientInfo_PDU 30
#define SIZE_PKCS_Module_PDU_30 sizeof(RecipientInfo)
typedef struct SignedAndEnvelopedData {
union {
ASN1uint16_t bit_mask;
ASN1octet_t o[1];
};
ASN1int32_t version;
RecipientInfos recipientInfos;
DigestAlgorithmIdentifiers digestAlgorithms;
EncryptedContentInfo encryptedContentInfo;
# define SignedAndEnvelopedData_certificates_present 0x80
Certificates certificates;
# define SignedAndEnvelopedData_crls_present 0x40
Crls crls;
SignerInfos signerInfos;
} SignedAndEnvelopedData;
#define SignedAndEnvelopedData_PDU 31
#define SIZE_PKCS_Module_PDU_31 sizeof(SignedAndEnvelopedData)
typedef struct DigestedData {
ASN1int32_t version;
DigestAlgorithmIdentifier digestAlgorithm;
ContentInfo contentInfo;
Digest digest;
} DigestedData;
#define DigestedData_PDU 32
#define SIZE_PKCS_Module_PDU_32 sizeof(DigestedData)
typedef struct EncryptedData {
ASN1int32_t version;
EncryptedContentInfo encryptedContentInfo;
} EncryptedData;
#define EncryptedData_PDU 33
#define SIZE_PKCS_Module_PDU_33 sizeof(EncryptedData)
typedef struct CertIdentifier {
ASN1choice_t choice;
union {
# define CertIdentifier_issuerAndSerialNumber_chosen 1
IssuerAndSerialNumber issuerAndSerialNumber;
# define CertIdentifier_subjectKeyIdentifier_chosen 2
SubjectKeyIdentifier subjectKeyIdentifier;
} u;
} CertIdentifier;
#define CertIdentifier_PDU 34
#define SIZE_PKCS_Module_PDU_34 sizeof(CertIdentifier)
typedef struct OriginatorInfo {
union {
ASN1uint16_t bit_mask;
ASN1octet_t o[1];
};
# define OriginatorInfo_certificates_present 0x80
Certificates certificates;
# define OriginatorInfo_crls_present 0x40
Crls crls;
} OriginatorInfo;
#define OriginatorInfo_PDU 35
#define SIZE_PKCS_Module_PDU_35 sizeof(OriginatorInfo)
typedef struct OriginatorInfoNC {
union {
ASN1uint16_t bit_mask;
ASN1octet_t o[1];
};
# define OriginatorInfoNC_certificates_present 0x80
CertificatesNC certificates;
# define OriginatorInfoNC_crls_present 0x40
CrlsNC crls;
} OriginatorInfoNC;
#define OriginatorInfoNC_PDU 36
#define SIZE_PKCS_Module_PDU_36 sizeof(OriginatorInfoNC)
typedef struct CmsRecipientInfos {
ASN1uint32_t count;
struct CmsRecipientInfo *value;
} CmsRecipientInfos;
#define CmsRecipientInfos_PDU 37
#define SIZE_PKCS_Module_PDU_37 sizeof(CmsRecipientInfos)
typedef struct KeyTransRecipientInfo {
ASN1int32_t version;
CertIdentifier rid;
KeyEncryptionAlgId keyEncryptionAlgorithm;
EncryptedKey encryptedKey;
} KeyTransRecipientInfo;
#define KeyTransRecipientInfo_PDU 38
#define SIZE_PKCS_Module_PDU_38 sizeof(KeyTransRecipientInfo)
typedef struct OriginatorPublicKey {
AlgorithmIdentifier algorithm;
BitStringType publicKey;
} OriginatorPublicKey;
typedef struct RecipientEncryptedKeys {
ASN1uint32_t count;
struct RecipientEncryptedKey *value;
} RecipientEncryptedKeys;
typedef struct OtherKeyAttribute {
union {
ASN1uint16_t bit_mask;
ASN1octet_t o[1];
};
ObjectID keyAttrId;
# define keyAttr_present 0x80
ASN1open_t keyAttr;
} OtherKeyAttribute;
typedef struct MailListKeyIdentifier {
union {
ASN1uint16_t bit_mask;
ASN1octet_t o[1];
};
OctetStringType kekIdentifier;
# define MailListKeyIdentifier_date_present 0x80
ASN1generalizedtime_t date;
# define MailListKeyIdentifier_other_present 0x40
OtherKeyAttribute other;
} MailListKeyIdentifier;
typedef struct DigestInfo {
DigestAlgorithmIdentifier digestAlgorithm;
Digest digest;
} DigestInfo;
#define DigestInfo_PDU 39
#define SIZE_PKCS_Module_PDU_39 sizeof(DigestInfo)
typedef struct SignedData {
union {
ASN1uint16_t bit_mask;
ASN1octet_t o[1];
};
ASN1int32_t version;
DigestAlgorithmIdentifiers digestAlgorithms;
ContentInfo contentInfo;
# define SignedData_certificates_present 0x80
Certificates certificates;
# define SignedData_crls_present 0x40
Crls crls;
SignerInfos signerInfos;
} SignedData;
#define SignedData_PDU 40
#define SIZE_PKCS_Module_PDU_40 sizeof(SignedData)
typedef struct SignerInfo {
union {
ASN1uint16_t bit_mask;
ASN1octet_t o[1];
};
ASN1int32_t version;
CertIdentifier sid;
DigestAlgorithmIdentifier digestAlgorithm;
# define authenticatedAttributes_present 0x80
Attributes authenticatedAttributes;
DigestEncryptionAlgId digestEncryptionAlgorithm;
EncryptedDigest encryptedDigest;
# define SignerInfo_unauthAttributes_present 0x40
Attributes unauthAttributes;
} SignerInfo;
#define SignerInfo_PDU 41
#define SIZE_PKCS_Module_PDU_41 sizeof(SignerInfo)
typedef struct SignedDataWithBlobs {
union {
ASN1uint16_t bit_mask;
ASN1octet_t o[1];
};
ASN1int32_t version;
DigestAlgorithmIdentifiersNC digestAlgorithms;
ContentInfoNC contentInfo;
# define SignedDataWithBlobs_certificates_present 0x80
CertificatesNC certificates;
# define SignedDataWithBlobs_crls_present 0x40
CrlsNC crls;
SignerInfosNC signerInfos;
} SignedDataWithBlobs;
#define SignedDataWithBlobs_PDU 42
#define SIZE_PKCS_Module_PDU_42 sizeof(SignedDataWithBlobs)
typedef struct EnvelopedData {
ASN1int32_t version;
RecipientInfos recipientInfos;
EncryptedContentInfo encryptedContentInfo;
} EnvelopedData;
#define EnvelopedData_PDU 43
#define SIZE_PKCS_Module_PDU_43 sizeof(EnvelopedData)
typedef struct CmsEnvelopedData {
union {
ASN1uint16_t bit_mask;
ASN1octet_t o[1];
};
ASN1int32_t version;
# define originatorInfo_present 0x80
OriginatorInfo originatorInfo;
CmsRecipientInfos recipientInfos;
EncryptedContentInfo encryptedContentInfo;
# define unprotectedAttrs_present 0x40
Attributes unprotectedAttrs;
} CmsEnvelopedData;
#define CmsEnvelopedData_PDU 44
#define SIZE_PKCS_Module_PDU_44 sizeof(CmsEnvelopedData)
typedef struct OriginatorIdentifierOrKey {
ASN1choice_t choice;
union {
# define OriginatorIdentifierOrKey_issuerAndSerialNumber_chosen 1
IssuerAndSerialNumber issuerAndSerialNumber;
# define OriginatorIdentifierOrKey_subjectKeyIdentifier_chosen 2
SubjectKeyIdentifier subjectKeyIdentifier;
# define originatorKey_chosen 3
OriginatorPublicKey originatorKey;
} u;
} OriginatorIdentifierOrKey;
typedef struct RecipientKeyIdentifier {
union {
ASN1uint16_t bit_mask;
ASN1octet_t o[1];
};
SubjectKeyIdentifier subjectKeyIdentifier;
# define RecipientKeyIdentifier_date_present 0x80
ASN1generalizedtime_t date;
# define RecipientKeyIdentifier_other_present 0x40
OtherKeyAttribute other;
} RecipientKeyIdentifier;
typedef struct MailListRecipientInfo {
ASN1int32_t version;
MailListKeyIdentifier mlid;
KeyEncryptionAlgId keyEncryptionAlgorithm;
EncryptedKey encryptedKey;
} MailListRecipientInfo;
#define MailListRecipientInfo_PDU 45
#define SIZE_PKCS_Module_PDU_45 sizeof(MailListRecipientInfo)
typedef struct KeyAgreeRecipientInfo {
union {
ASN1uint16_t bit_mask;
ASN1octet_t o[1];
};
ASN1int32_t version;
OriginatorIdentifierOrKey originator;
# define ukm_present 0x80
UserKeyingMaterial ukm;
KeyEncryptionAlgId keyEncryptionAlgorithm;
RecipientEncryptedKeys recipientEncryptedKeys;
} KeyAgreeRecipientInfo;
#define KeyAgreeRecipientInfo_PDU 46
#define SIZE_PKCS_Module_PDU_46 sizeof(KeyAgreeRecipientInfo)
typedef struct RecipientIdentifier {
ASN1choice_t choice;
union {
# define RecipientIdentifier_issuerAndSerialNumber_chosen 1
IssuerAndSerialNumber issuerAndSerialNumber;
# define rKeyId_chosen 2
RecipientKeyIdentifier rKeyId;
} u;
} RecipientIdentifier;
typedef struct CmsRecipientInfo {
ASN1choice_t choice;
union {
# define keyTransRecipientInfo_chosen 1
KeyTransRecipientInfo keyTransRecipientInfo;
# define keyAgreeRecipientInfo_chosen 2
KeyAgreeRecipientInfo keyAgreeRecipientInfo;
# define mailListRecipientInfo_chosen 3
MailListRecipientInfo mailListRecipientInfo;
} u;
} CmsRecipientInfo;
#define CmsRecipientInfo_PDU 47
#define SIZE_PKCS_Module_PDU_47 sizeof(CmsRecipientInfo)
typedef struct RecipientEncryptedKey {
RecipientIdentifier rid;
EncryptedKey encryptedKey;
} RecipientEncryptedKey;
extern ASN1module_t PKCS_Module;
extern void ASN1CALL PKCS_Module_Startup(void);
extern void ASN1CALL PKCS_Module_Cleanup(void);
/* Prototypes of element functions for SEQUENCE OF and SET OF constructs */
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* _PKCS_Module_H_ */