131 lines
2.9 KiB
C
131 lines
2.9 KiB
C
|
/* Copyright (C) Microsoft Corporation, 1996 - 1999 All rights reserved. */
|
||
|
/* ASN.1 definitions for X509 v3 certificates */
|
||
|
|
||
|
#ifndef _PRVTKEY_Module_H_
|
||
|
#define _PRVTKEY_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;
|
||
|
|
||
|
typedef ASN1int32_t Version;
|
||
|
|
||
|
typedef OCTETSTRING PrivateKey;
|
||
|
|
||
|
typedef OCTETSTRING EncryptedData;
|
||
|
|
||
|
typedef struct AlgorithmIdentifier {
|
||
|
union {
|
||
|
ASN1uint16_t bit_mask;
|
||
|
ASN1octet_t o[1];
|
||
|
};
|
||
|
ObjectID algorithm;
|
||
|
# define parameters_present 0x80
|
||
|
NOCOPYANY parameters;
|
||
|
} AlgorithmIdentifier;
|
||
|
|
||
|
typedef struct AttributeSetValue {
|
||
|
ASN1uint32_t count;
|
||
|
NOCOPYANY *value;
|
||
|
} AttributeSetValue;
|
||
|
|
||
|
typedef struct Attributes {
|
||
|
ASN1uint32_t count;
|
||
|
struct Attribute *value;
|
||
|
} Attributes;
|
||
|
|
||
|
typedef struct RSAPrivateKey {
|
||
|
Version version;
|
||
|
HUGEINTEGER modulus;
|
||
|
ASN1int32_t publicExponent;
|
||
|
HUGEINTEGER privateExponent;
|
||
|
HUGEINTEGER prime1;
|
||
|
HUGEINTEGER prime2;
|
||
|
HUGEINTEGER exponent1;
|
||
|
HUGEINTEGER exponent2;
|
||
|
HUGEINTEGER coefficient;
|
||
|
} RSAPrivateKey;
|
||
|
#define RSAPrivateKey_PDU 0
|
||
|
#define SIZE_PRVTKEY_Module_PDU_0 sizeof(RSAPrivateKey)
|
||
|
|
||
|
typedef AlgorithmIdentifier PrivateKeyAlgorithmIdentifier;
|
||
|
|
||
|
typedef struct PrivateKeyInfo {
|
||
|
union {
|
||
|
ASN1uint16_t bit_mask;
|
||
|
ASN1octet_t o[1];
|
||
|
};
|
||
|
Version version;
|
||
|
PrivateKeyAlgorithmIdentifier privateKeyAlgorithm;
|
||
|
PrivateKey privateKey;
|
||
|
# define privateKeyAttributes_present 0x80
|
||
|
Attributes privateKeyAttributes;
|
||
|
} PrivateKeyInfo;
|
||
|
#define PrivateKeyInfo_PDU 1
|
||
|
#define SIZE_PRVTKEY_Module_PDU_1 sizeof(PrivateKeyInfo)
|
||
|
|
||
|
typedef AlgorithmIdentifier EncryptionAlgorithmIdentifier;
|
||
|
|
||
|
typedef struct EncryptedPrivateKeyInfo {
|
||
|
EncryptionAlgorithmIdentifier encryptionAlgorithm;
|
||
|
EncryptedData encryptedData;
|
||
|
} EncryptedPrivateKeyInfo;
|
||
|
#define EncryptedPrivateKeyInfo_PDU 2
|
||
|
#define SIZE_PRVTKEY_Module_PDU_2 sizeof(EncryptedPrivateKeyInfo)
|
||
|
|
||
|
typedef struct Attribute {
|
||
|
ObjectID type;
|
||
|
AttributeSetValue values;
|
||
|
} Attribute;
|
||
|
#define Attribute_PDU 3
|
||
|
#define SIZE_PRVTKEY_Module_PDU_3 sizeof(Attribute)
|
||
|
|
||
|
|
||
|
extern ASN1module_t PRVTKEY_Module;
|
||
|
extern void ASN1CALL PRVTKEY_Module_Startup(void);
|
||
|
extern void ASN1CALL PRVTKEY_Module_Cleanup(void);
|
||
|
|
||
|
/* Prototypes of element functions for SEQUENCE OF and SET OF constructs */
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
} /* extern "C" */
|
||
|
#endif
|
||
|
|
||
|
#endif /* _PRVTKEY_Module_H_ */
|