248 lines
5.8 KiB
C
248 lines
5.8 KiB
C
|
/* Copyright (C) Microsoft Corporation, 1996 - 1999 All rights reserved. */
|
||
|
/* ASN.1 definitions for Indirect data contents */
|
||
|
|
||
|
#ifndef _WTASN_Module_H_
|
||
|
#define _WTASN_Module_H_
|
||
|
|
||
|
#include "msber.h"
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
typedef ASN1intx_t HUGEINTEGER;
|
||
|
|
||
|
typedef ASN1bitstring_t BITSTRING;
|
||
|
|
||
|
typedef ASN1octetstring_t OCTETSTRING;
|
||
|
|
||
|
typedef ASN1open_t NOCOPYANY;
|
||
|
|
||
|
typedef ASN1charstring_t NUMERICSTRING;
|
||
|
|
||
|
typedef ASN1charstring_t PRINTABLESTRING;
|
||
|
|
||
|
typedef ASN1charstring_t TELETEXSTRING;
|
||
|
|
||
|
typedef ASN1charstring_t T61STRING;
|
||
|
|
||
|
typedef ASN1charstring_t VIDEOTEXSTRING;
|
||
|
|
||
|
typedef ASN1charstring_t IA5STRING;
|
||
|
|
||
|
typedef ASN1charstring_t GRAPHICSTRING;
|
||
|
|
||
|
typedef ASN1charstring_t VISIBLESTRING;
|
||
|
|
||
|
typedef ASN1charstring_t ISO646STRING;
|
||
|
|
||
|
typedef ASN1charstring_t GENERALSTRING;
|
||
|
|
||
|
typedef ASN1char32string_t UNIVERSALSTRING;
|
||
|
|
||
|
typedef ASN1char16string_t BMPSTRING;
|
||
|
|
||
|
typedef ASN1objectidentifier2_t ObjectID;
|
||
|
#define ObjectID_PDU 0
|
||
|
#define SIZE_WTASN_Module_PDU_0 sizeof(ObjectID)
|
||
|
|
||
|
typedef OCTETSTRING SpcUuid;
|
||
|
|
||
|
typedef ASN1bitstring_t SpcPeImageFlags;
|
||
|
#define includeResources 0x80
|
||
|
#define includeDebugInfo 0x40
|
||
|
#define includeImportAddressTable 0x20
|
||
|
|
||
|
typedef ASN1bool_t SpcMinimalCriteria;
|
||
|
#define SpcMinimalCriteria_PDU 1
|
||
|
#define SIZE_WTASN_Module_PDU_1 sizeof(SpcMinimalCriteria)
|
||
|
|
||
|
typedef ASN1utctime_t UtcTime;
|
||
|
#define UtcTime_PDU 2
|
||
|
#define SIZE_WTASN_Module_PDU_2 sizeof(UtcTime)
|
||
|
|
||
|
typedef struct AlgorithmIdentifier {
|
||
|
union {
|
||
|
ASN1uint16_t bit_mask;
|
||
|
ASN1octet_t o[1];
|
||
|
};
|
||
|
ObjectID algorithm;
|
||
|
# define parameters_present 0x80
|
||
|
NOCOPYANY parameters;
|
||
|
} AlgorithmIdentifier;
|
||
|
|
||
|
typedef struct DigestInfo {
|
||
|
AlgorithmIdentifier digestAlgorithm;
|
||
|
OCTETSTRING digest;
|
||
|
} DigestInfo;
|
||
|
|
||
|
typedef struct SpcAttributeTypeAndOptionalValue {
|
||
|
union {
|
||
|
ASN1uint16_t bit_mask;
|
||
|
ASN1octet_t o[1];
|
||
|
};
|
||
|
ObjectID type;
|
||
|
# define value_present 0x80
|
||
|
NOCOPYANY value;
|
||
|
} SpcAttributeTypeAndOptionalValue;
|
||
|
|
||
|
typedef struct SpcString {
|
||
|
ASN1choice_t choice;
|
||
|
union {
|
||
|
# define unicode_chosen 1
|
||
|
BMPSTRING unicode;
|
||
|
# define ascii_chosen 2
|
||
|
IA5STRING ascii;
|
||
|
} u;
|
||
|
} SpcString;
|
||
|
|
||
|
typedef struct SpcSerializedObject {
|
||
|
SpcUuid classId;
|
||
|
OCTETSTRING serializedData;
|
||
|
} SpcSerializedObject;
|
||
|
|
||
|
typedef struct SpcLink {
|
||
|
ASN1choice_t choice;
|
||
|
union {
|
||
|
# define url_chosen 1
|
||
|
IA5STRING url;
|
||
|
# define moniker_chosen 2
|
||
|
SpcSerializedObject moniker;
|
||
|
# define file_chosen 3
|
||
|
SpcString file;
|
||
|
} u;
|
||
|
} SpcLink;
|
||
|
#define SpcLink_PDU 3
|
||
|
#define SIZE_WTASN_Module_PDU_3 sizeof(SpcLink)
|
||
|
|
||
|
typedef struct SpcPeImageData {
|
||
|
union {
|
||
|
ASN1uint16_t bit_mask;
|
||
|
ASN1octet_t o[1];
|
||
|
};
|
||
|
# define flags_present 0x80
|
||
|
SpcPeImageFlags flags;
|
||
|
# define file_present 0x40
|
||
|
SpcLink file;
|
||
|
} SpcPeImageData;
|
||
|
#define SpcPeImageData_PDU 4
|
||
|
#define SIZE_WTASN_Module_PDU_4 sizeof(SpcPeImageData)
|
||
|
|
||
|
typedef struct SpcSigInfo {
|
||
|
ASN1int32_t dwSIPversion;
|
||
|
SpcUuid gSIPguid;
|
||
|
ASN1int32_t dwReserved1;
|
||
|
ASN1int32_t dwReserved2;
|
||
|
ASN1int32_t dwReserved3;
|
||
|
ASN1int32_t dwReserved4;
|
||
|
ASN1int32_t dwReserved5;
|
||
|
} SpcSigInfo;
|
||
|
#define SpcSigInfo_PDU 5
|
||
|
#define SIZE_WTASN_Module_PDU_5 sizeof(SpcSigInfo)
|
||
|
|
||
|
typedef struct SpcImage {
|
||
|
union {
|
||
|
ASN1uint16_t bit_mask;
|
||
|
ASN1octet_t o[1];
|
||
|
};
|
||
|
# define imageLink_present 0x80
|
||
|
SpcLink imageLink;
|
||
|
# define bitmap_present 0x40
|
||
|
OCTETSTRING bitmap;
|
||
|
# define metafile_present 0x20
|
||
|
OCTETSTRING metafile;
|
||
|
# define enhancedMetafile_present 0x10
|
||
|
OCTETSTRING enhancedMetafile;
|
||
|
# define gifFile_present 0x8
|
||
|
OCTETSTRING gifFile;
|
||
|
} SpcImage;
|
||
|
|
||
|
typedef struct SpcFinancialCriteria {
|
||
|
ASN1bool_t financialInfoAvailable;
|
||
|
ASN1bool_t meetsCriteria;
|
||
|
} SpcFinancialCriteria;
|
||
|
#define SpcFinancialCriteria_PDU 6
|
||
|
#define SIZE_WTASN_Module_PDU_6 sizeof(SpcFinancialCriteria)
|
||
|
|
||
|
typedef struct SpcStatementType {
|
||
|
ASN1uint32_t count;
|
||
|
ObjectID *value;
|
||
|
} SpcStatementType;
|
||
|
#define SpcStatementType_PDU 7
|
||
|
#define SIZE_WTASN_Module_PDU_7 sizeof(SpcStatementType)
|
||
|
|
||
|
typedef struct SpcSpOpusInfo {
|
||
|
union {
|
||
|
ASN1uint16_t bit_mask;
|
||
|
ASN1octet_t o[1];
|
||
|
};
|
||
|
# define programName_present 0x80
|
||
|
SpcString programName;
|
||
|
# define moreInfo_present 0x40
|
||
|
SpcLink moreInfo;
|
||
|
# define publisherInfo_present 0x20
|
||
|
SpcLink publisherInfo;
|
||
|
} SpcSpOpusInfo;
|
||
|
#define SpcSpOpusInfo_PDU 8
|
||
|
#define SIZE_WTASN_Module_PDU_8 sizeof(SpcSpOpusInfo)
|
||
|
|
||
|
typedef struct NameValue {
|
||
|
BMPSTRING refname;
|
||
|
ASN1int32_t typeaction;
|
||
|
OCTETSTRING value;
|
||
|
} NameValue;
|
||
|
#define NameValue_PDU 9
|
||
|
#define SIZE_WTASN_Module_PDU_9 sizeof(NameValue)
|
||
|
|
||
|
typedef struct NameValues {
|
||
|
ASN1uint32_t count;
|
||
|
struct NameValue *value;
|
||
|
} NameValues;
|
||
|
#define NameValues_PDU 10
|
||
|
#define SIZE_WTASN_Module_PDU_10 sizeof(NameValues)
|
||
|
|
||
|
typedef struct MemberInfo {
|
||
|
BMPSTRING subguid;
|
||
|
ASN1int32_t certversion;
|
||
|
} MemberInfo;
|
||
|
#define MemberInfo_PDU 11
|
||
|
#define SIZE_WTASN_Module_PDU_11 sizeof(MemberInfo)
|
||
|
|
||
|
typedef struct SpcIndirectDataContent {
|
||
|
SpcAttributeTypeAndOptionalValue data;
|
||
|
DigestInfo messageDigest;
|
||
|
} SpcIndirectDataContent;
|
||
|
#define SpcIndirectDataContent_PDU 12
|
||
|
#define SIZE_WTASN_Module_PDU_12 sizeof(SpcIndirectDataContent)
|
||
|
|
||
|
typedef struct SpcSpAgencyInformation {
|
||
|
union {
|
||
|
ASN1uint16_t bit_mask;
|
||
|
ASN1octet_t o[1];
|
||
|
};
|
||
|
# define policyInformation_present 0x80
|
||
|
SpcLink policyInformation;
|
||
|
# define policyDisplayText_present 0x40
|
||
|
SpcString policyDisplayText;
|
||
|
# define logoImage_present 0x20
|
||
|
SpcImage logoImage;
|
||
|
# define logoLink_present 0x10
|
||
|
SpcLink logoLink;
|
||
|
} SpcSpAgencyInformation;
|
||
|
#define SpcSpAgencyInformation_PDU 13
|
||
|
#define SIZE_WTASN_Module_PDU_13 sizeof(SpcSpAgencyInformation)
|
||
|
|
||
|
extern SpcPeImageFlags SpcPeImageData_flags_default;
|
||
|
|
||
|
extern ASN1module_t WTASN_Module;
|
||
|
extern void ASN1CALL WTASN_Module_Startup(void);
|
||
|
extern void ASN1CALL WTASN_Module_Cleanup(void);
|
||
|
|
||
|
/* Prototypes of element functions for SEQUENCE OF and SET OF constructs */
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
} /* extern "C" */
|
||
|
#endif
|
||
|
|
||
|
#endif /* _WTASN_Module_H_ */
|