I might regret this one day.
#include "asn1/asn1c/OCTET_STRING.h" /* Implemented via OCTET STRING type */
-#ifdef __cplusplus
-extern "C" {
-#endif
-
typedef struct ANY {
uint8_t *buf; /* BER-encoded ANY contents */
int size; /* Size of the above buffer */
#define ANY_new_fromBuf(buf, size) OCTET_STRING_new_fromBuf( \
&asn_DEF_ANY, (buf), (size))
-#ifdef __cplusplus
-}
-#endif
-
#endif /* ASN_TYPE_ANY_H */
/* Including external dependencies */
#include "asn1/asn1c/INTEGER.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* ASId */
typedef INTEGER_t ASId_t;
der_type_encoder_f ASId_encode_der;
xer_type_encoder_f ASId_encode_xer;
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _ASId_H_ */
#include "asn1/asn1c/asn_internal.h"
#include "asn1/asn1c/ASRange.h"
#include "asn1/asn1c/constr_CHOICE.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* Dependencies */
typedef enum ASIdOrRange_PR {
ASIdOrRange_PR_NOTHING, /* No components present */
extern asn_CHOICE_specifics_t asn_SPC_ASIdOrRange_specs_1;
extern asn_TYPE_member_t asn_MBR_ASIdOrRange_1[2];
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _ASIdOrRange_H_ */
#include "asn1/asn1c/asn_internal.h"
#include "asn1/asn1c/constr_SEQUENCE_OF.h"
#include "asn1/asn1c/constr_CHOICE.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* Dependencies */
typedef enum ASIdentifierChoice_PR {
ASIdentifierChoice_PR_NOTHING, /* No components present */
extern asn_CHOICE_specifics_t asn_SPC_ASIdentifierChoice_specs_1;
extern asn_TYPE_member_t asn_MBR_ASIdentifierChoice_1[2];
-#ifdef __cplusplus
-}
-#endif
-
/* Referred external types */
#include "asn1/asn1c/ASIdOrRange.h"
/* Including external dependencies */
#include "asn1/asn1c/constr_SEQUENCE.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* Forward declarations */
struct ASIdentifierChoice;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_ASIdentifiers;
-#ifdef __cplusplus
-}
-#endif
-
/* Referred external types */
#include "asn1/asn1c/ASIdentifierChoice.h"
#include "asn1/asn1c/ASId.h"
#include "asn1/asn1c/constr_SEQUENCE.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* ASRange */
typedef struct ASRange {
ASId_t min;
extern asn_SEQUENCE_specifics_t asn_SPC_ASRange_specs_1;
extern asn_TYPE_member_t asn_MBR_ASRange_1[2];
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _ASRange_H_ */
#include "asn1/asn1c/asn_internal.h"
#include "asn1/asn1c/ANY.h"
#include "asn1/asn1c/constr_SEQUENCE.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* AlgorithmIdentifier */
typedef struct AlgorithmIdentifier {
OBJECT_IDENTIFIER_t algorithm;
extern asn_SEQUENCE_specifics_t asn_SPC_AlgorithmIdentifier_specs_1;
extern asn_TYPE_member_t asn_MBR_AlgorithmIdentifier_1[2];
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _AlgorithmIdentifier_H_ */
#include "asn1/asn1c/asn_internal.h"
/* Including external dependencies */
#include "asn1/asn1c/OBJECT_IDENTIFIER.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* AttributeType */
typedef OBJECT_IDENTIFIER_t AttributeType_t;
der_type_encoder_f AttributeType_encode_der;
xer_type_encoder_f AttributeType_encode_xer;
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _AttributeType_H_ */
#include "asn1/asn1c/asn_internal.h"
#include "asn1/asn1c/AttributeValue.h"
#include "asn1/asn1c/constr_SEQUENCE.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* AttributeTypeAndValue */
typedef struct AttributeTypeAndValue {
AttributeType_t type;
extern asn_SEQUENCE_specifics_t asn_SPC_AttributeTypeAndValue_specs_1;
extern asn_TYPE_member_t asn_MBR_AttributeTypeAndValue_1[2];
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _AttributeTypeAndValue_H_ */
#include "asn1/asn1c/asn_internal.h"
/* Including external dependencies */
#include "asn1/asn1c/ANY.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* AttributeValue */
typedef ANY_t AttributeValue_t;
der_type_encoder_f AttributeValue_encode_der;
xer_type_encoder_f AttributeValue_encode_xer;
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _AttributeValue_H_ */
#include "asn1/asn1c/asn_internal.h"
#include "asn1/asn1c/OCTET_STRING.h" /* Some help from OCTET STRING */
-#ifdef __cplusplus
-extern "C" {
-#endif
-
typedef struct BIT_STRING_s {
uint8_t *buf; /* BIT STRING body */
size_t size; /* Size of the above buffer */
#define BIT_STRING_decode_ber OCTET_STRING_decode_ber
#define BIT_STRING_encode_der OCTET_STRING_encode_der
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _BIT_STRING_H_ */
#include "asn1/asn1c/asn_application.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/*
* The underlying integer may contain various values, but everything
* non-zero is capped to 0xff by the DER encoder. The BER decoder may
#define BOOLEAN_constraint asn_generic_no_constraint
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _BOOLEAN_H_ */
/* Including external dependencies */
#include "asn1/asn1c/BinaryTime.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* BinarySigningTime */
typedef BinaryTime_t BinarySigningTime_t;
der_type_encoder_f BinarySigningTime_encode_der;
xer_type_encoder_f BinarySigningTime_encode_xer;
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _BinarySigningTime_H_ */
#include "asn1/asn1c/asn_internal.h"
/* Including external dependencies */
#include "asn1/asn1c/INTEGER.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* BinaryTime */
typedef INTEGER_t BinaryTime_t;
der_type_encoder_f BinaryTime_encode_der;
xer_type_encoder_f BinaryTime_encode_xer;
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _BinaryTime_H_ */
#include "asn1/asn1c/asn_internal.h"
#include "asn1/asn1c/constr_SET_OF.h"
#include "asn1/asn1c/constr_SEQUENCE.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* CMSAttribute */
typedef struct CMSAttribute {
OBJECT_IDENTIFIER_t attrType;
extern asn_SEQUENCE_specifics_t asn_SPC_CMSAttribute_specs_1;
extern asn_TYPE_member_t asn_MBR_CMSAttribute_1[2];
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _CMSAttribute_H_ */
#include "asn1/asn1c/asn_internal.h"
/* Including external dependencies */
#include "asn1/asn1c/ANY.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* CMSAttributeValue */
typedef ANY_t CMSAttributeValue_t;
der_type_encoder_f CMSAttributeValue_encode_der;
xer_type_encoder_f CMSAttributeValue_encode_xer;
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _CMSAttributeValue_H_ */
#include "asn1/asn1c/asn_internal.h"
/* Including external dependencies */
#include "asn1/asn1c/OCTET_STRING.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* CMSSubjectKeyIdentifier */
typedef OCTET_STRING_t CMSSubjectKeyIdentifier_t;
der_type_encoder_f CMSSubjectKeyIdentifier_encode_der;
xer_type_encoder_f CMSSubjectKeyIdentifier_encode_xer;
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _CMSSubjectKeyIdentifier_H_ */
#include "asn1/asn1c/asn_internal.h"
/* Including external dependencies */
#include "asn1/asn1c/INTEGER.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* Dependencies */
typedef enum CMSVersion {
CMSVersion_v0 = 0,
der_type_encoder_f CMSVersion_encode_der;
xer_type_encoder_f CMSVersion_encode_xer;
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _CMSVersion_H_ */
#include "asn1/asn1c/asn_internal.h"
#include "asn1/asn1c/BIT_STRING.h"
#include "asn1/asn1c/constr_SEQUENCE.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* CertificateList */
typedef struct CertificateList {
TBSCertList_t tbsCertList;
extern asn_SEQUENCE_specifics_t asn_SPC_CertificateList_specs_1;
extern asn_TYPE_member_t asn_MBR_CertificateList_1[3];
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _CertificateList_H_ */
#include "asn1/asn1c/asn_internal.h"
/* Including external dependencies */
#include "asn1/asn1c/INTEGER.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* CertificateSerialNumber */
typedef INTEGER_t CertificateSerialNumber_t;
der_type_encoder_f CertificateSerialNumber_encode_der;
xer_type_encoder_f CertificateSerialNumber_encode_xer;
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _CertificateSerialNumber_H_ */
#include "asn1/asn1c/asn_internal.h"
#include "asn1/asn1c/asn_SET_OF.h"
#include "asn1/asn1c/constr_SET_OF.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* CertificateSet */
typedef struct CertificateSet {
A_SET_OF(ANY_t) list;
extern asn_SET_OF_specifics_t asn_SPC_CertificateSet_specs_1;
extern asn_TYPE_member_t asn_MBR_CertificateSet_1[1];
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _CertificateSet_H_ */
#include "asn1/asn1c/asn_internal.h"
#include "asn1/asn1c/ANY.h"
#include "asn1/asn1c/constr_SEQUENCE.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* ContentInfo */
typedef struct ContentInfo {
ContentType_t contentType;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_ContentInfo;
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _ContentInfo_H_ */
#include "asn1/asn1c/asn_internal.h"
/* Including external dependencies */
#include "asn1/asn1c/OBJECT_IDENTIFIER.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* ContentType */
typedef OBJECT_IDENTIFIER_t ContentType_t;
der_type_encoder_f ContentType_encode_der;
xer_type_encoder_f ContentType_encode_xer;
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _ContentType_H_ */
#include "asn1/asn1c/asn_internal.h"
/* Including external dependencies */
#include "asn1/asn1c/OCTET_STRING.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* ContentTypePKCS7 */
typedef OCTET_STRING_t ContentTypePKCS7_t;
der_type_encoder_f ContentTypePKCS7_encode_der;
xer_type_encoder_f ContentTypePKCS7_encode_xer;
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _ContentTypePKCS7_H_ */
#include "asn1/asn1c/asn_internal.h"
/* Including external dependencies */
#include "asn1/asn1c/SignerInfo.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* Countersignature */
typedef SignerInfo_t Countersignature_t;
der_type_encoder_f Countersignature_encode_der;
xer_type_encoder_f Countersignature_encode_xer;
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _Countersignature_H_ */
#include "asn1/asn1c/asn_internal.h"
/* Including external dependencies */
#include "asn1/asn1c/AlgorithmIdentifier.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* DigestAlgorithmIdentifier */
typedef AlgorithmIdentifier_t DigestAlgorithmIdentifier_t;
der_type_encoder_f DigestAlgorithmIdentifier_encode_der;
xer_type_encoder_f DigestAlgorithmIdentifier_encode_xer;
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _DigestAlgorithmIdentifier_H_ */
#include "asn1/asn1c/asn_internal.h"
#include "asn1/asn1c/asn_SET_OF.h"
#include "asn1/asn1c/constr_SET_OF.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* Forward declarations */
struct DigestAlgorithmIdentifier;
extern asn_SET_OF_specifics_t asn_SPC_DigestAlgorithmIdentifiers_specs_1;
extern asn_TYPE_member_t asn_MBR_DigestAlgorithmIdentifiers_1[1];
-#ifdef __cplusplus
-}
-#endif
-
/* Referred external types */
#include "asn1/asn1c/DigestAlgorithmIdentifier.h"
/* Including external dependencies */
#include "asn1/asn1c/RDNSequence.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* DistinguishedName */
typedef RDNSequence_t DistinguishedName_t;
der_type_encoder_f DistinguishedName_encode_der;
xer_type_encoder_f DistinguishedName_encode_xer;
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _DistinguishedName_H_ */
#include "asn1/asn1c/asn_internal.h"
#include "asn1/asn1c/OCTET_STRING.h"
#include "asn1/asn1c/constr_SEQUENCE.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* EncapsulatedContentInfo */
typedef struct EncapsulatedContentInfo {
ContentType_t eContentType;
extern asn_SEQUENCE_specifics_t asn_SPC_EncapsulatedContentInfo_specs_1;
extern asn_TYPE_member_t asn_MBR_EncapsulatedContentInfo_1[2];
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _EncapsulatedContentInfo_H_ */
#include "asn1/asn1c/asn_internal.h"
#include "asn1/asn1c/ANY.h"
#include "asn1/asn1c/constr_SEQUENCE.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* EncapsulatedContentInfoPKCS7 */
typedef struct EncapsulatedContentInfoPKCS7 {
ContentType_t eContentType;
extern asn_SEQUENCE_specifics_t asn_SPC_EncapsulatedContentInfoPKCS7_specs_1;
extern asn_TYPE_member_t asn_MBR_EncapsulatedContentInfoPKCS7_1[2];
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _EncapsulatedContentInfoPKCS7_H_ */
#include "asn1/asn1c/asn_internal.h"
#include "asn1/asn1c/OCTET_STRING.h"
#include "asn1/asn1c/constr_SEQUENCE.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* Extension */
typedef struct Extension {
OBJECT_IDENTIFIER_t extnID;
extern asn_SEQUENCE_specifics_t asn_SPC_Extension_specs_1;
extern asn_TYPE_member_t asn_MBR_Extension_1[3];
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _Extension_H_ */
#include "asn1/asn1c/asn_internal.h"
#include "asn1/asn1c/asn_SEQUENCE_OF.h"
#include "asn1/asn1c/constr_SEQUENCE_OF.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* Forward declarations */
struct Extension;
extern asn_SET_OF_specifics_t asn_SPC_Extensions_specs_1;
extern asn_TYPE_member_t asn_MBR_Extensions_1[1];
-#ifdef __cplusplus
-}
-#endif
-
/* Referred external types */
#include "asn1/asn1c/Extension.h"
#include "asn1/asn1c/BIT_STRING.h"
#include "asn1/asn1c/constr_SEQUENCE.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* FileAndHash */
typedef struct FileAndHash {
IA5String_t file;
extern asn_SEQUENCE_specifics_t asn_SPC_FileAndHash_specs_1;
extern asn_TYPE_member_t asn_MBR_FileAndHash_1[2];
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _FileAndHash_H_ */
#include "asn1/asn1c/asn_internal.h"
#include <sys/stat.h>
#include <time.h>
-#ifdef __cplusplus
-extern "C" {
-#endif
-
typedef OCTET_STRING_t GeneralizedTime_t; /* Implemented via OCTET STRING */
extern asn_TYPE_descriptor_t asn_DEF_GeneralizedTime;
GeneralizedTime_t *asn_time2GT_frac(GeneralizedTime_t *_optional_gt,
const struct tm *, int frac_value, int frac_digits);
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _GeneralizedTime_H_ */
#include "asn1/asn1c/OCTET_STRING.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
typedef OCTET_STRING_t IA5String_t; /* Implemented via OCTET STRING */
/*
#define IA5String_encode_der OCTET_STRING_encode_der
#define IA5String_encode_xer OCTET_STRING_encode_xer_utf8
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _IA5String_H_ */
#include "asn1/asn1c/asn_application.h"
#include "asn1/asn1c/asn_codecs_prim.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
typedef ASN__PRIMITIVE_TYPE_t INTEGER_t;
extern asn_TYPE_descriptor_t asn_DEF_INTEGER;
const asn_INTEGER_enum_map_t *INTEGER_map_value2enum(
const asn_INTEGER_specifics_t *specs, long value);
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _INTEGER_H_ */
#include "asn1/asn1c/asn_SEQUENCE_OF.h"
#include "asn1/asn1c/constr_SEQUENCE_OF.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* Forward declarations */
struct IPAddressFamily;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_IPAddrBlocks;
-#ifdef __cplusplus
-}
-#endif
-
/* Referred external types */
#include "asn1/asn1c/IPAddressFamily.h"
/* Including external dependencies */
#include "asn1/asn1c/BIT_STRING.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* IPAddress */
typedef BIT_STRING_t IPAddress_t;
der_type_encoder_f IPAddress_encode_der;
xer_type_encoder_f IPAddress_encode_xer;
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _IPAddress_H_ */
#include "asn1/asn1c/asn_internal.h"
#include "asn1/asn1c/constr_SEQUENCE_OF.h"
#include "asn1/asn1c/constr_CHOICE.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* Dependencies */
typedef enum IPAddressChoice_PR {
IPAddressChoice_PR_NOTHING, /* No components present */
extern asn_CHOICE_specifics_t asn_SPC_IPAddressChoice_specs_1;
extern asn_TYPE_member_t asn_MBR_IPAddressChoice_1[2];
-#ifdef __cplusplus
-}
-#endif
-
/* Referred external types */
#include "asn1/asn1c/IPAddressOrRange.h"
#include "asn1/asn1c/IPAddressChoice.h"
#include "asn1/asn1c/constr_SEQUENCE.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* IPAddressFamily */
typedef struct IPAddressFamily {
OCTET_STRING_t addressFamily;
extern asn_SEQUENCE_specifics_t asn_SPC_IPAddressFamily_specs_1;
extern asn_TYPE_member_t asn_MBR_IPAddressFamily_1[2];
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _IPAddressFamily_H_ */
#include "asn1/asn1c/asn_internal.h"
#include "asn1/asn1c/IPAddressRange.h"
#include "asn1/asn1c/constr_CHOICE.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* Dependencies */
typedef enum IPAddressOrRange_PR {
IPAddressOrRange_PR_NOTHING, /* No components present */
extern asn_CHOICE_specifics_t asn_SPC_IPAddressOrRange_specs_1;
extern asn_TYPE_member_t asn_MBR_IPAddressOrRange_1[2];
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _IPAddressOrRange_H_ */
#include "asn1/asn1c/asn_internal.h"
#include "asn1/asn1c/IPAddress.h"
#include "asn1/asn1c/constr_SEQUENCE.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* IPAddressRange */
typedef struct IPAddressRange {
IPAddress_t min;
extern asn_SEQUENCE_specifics_t asn_SPC_IPAddressRange_specs_1;
extern asn_TYPE_member_t asn_MBR_IPAddressRange_1[2];
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _IPAddressRange_H_ */
#include "asn1/asn1c/asn_internal.h"
#include "asn1/asn1c/CertificateSerialNumber.h"
#include "asn1/asn1c/constr_SEQUENCE.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* IssuerAndSerialNumber */
typedef struct IssuerAndSerialNumber {
Name_t issuer;
extern asn_SEQUENCE_specifics_t asn_SPC_IssuerAndSerialNumber_specs_1;
extern asn_TYPE_member_t asn_MBR_IssuerAndSerialNumber_1[2];
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _IssuerAndSerialNumber_H_ */
#include "asn1/asn1c/asn_internal.h"
#include "asn1/asn1c/constr_SEQUENCE_OF.h"
#include "asn1/asn1c/constr_SEQUENCE.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* Forward declarations */
struct FileAndHash;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_Manifest;
-#ifdef __cplusplus
-}
-#endif
-
/* Referred external types */
#include "asn1/asn1c/FileAndHash.h"
/* Including external dependencies */
#include "asn1/asn1c/OCTET_STRING.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* MessageDigest */
typedef OCTET_STRING_t MessageDigest_t;
der_type_encoder_f MessageDigest_encode_der;
xer_type_encoder_f MessageDigest_encode_xer;
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _MessageDigest_H_ */
#include "asn1/asn1c/asn_internal.h"
#include "asn1/asn1c/asn_application.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/*
* The value of the NULL type is meaningless.
* Use the BOOLEAN type if you need to carry true/false semantics.
#define NULL_constraint asn_generic_no_constraint
-#ifdef __cplusplus
-}
-#endif
-
#endif /* NULL_H */
#include "asn1/asn1c/RDNSequence.h"
#include "asn1/asn1c/constr_CHOICE.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* Dependencies */
typedef enum Name_PR {
Name_PR_NOTHING, /* No components present */
extern asn_CHOICE_specifics_t asn_SPC_Name_specs_1;
extern asn_TYPE_member_t asn_MBR_Name_1[1];
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _Name_H_ */
#include "asn1/asn1c/asn_internal.h"
#include "asn1/asn1c/asn_codecs_prim.h"
#include "asn1/asn1c/OCTET_STRING.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
typedef uint32_t asn_oid_arc_t;
#define ASN_OID_ARC_MAX (~((asn_oid_arc_t)0))
ssize_t OBJECT_IDENTIFIER_set_single_arc(uint8_t *arcbuf, size_t arcbuf_len,
asn_oid_arc_t arc_value);
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _OBJECT_IDENTIFIER_H_ */
#include "asn1/asn1c/asn_application.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/*
* Note: Though this sometimes represents an actual string, I don't see any
* guarantees of a NULL character.
const asn_TYPE_descriptor_t *, const asn_encoding_constraints_t *,
size_t max_length);
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _OCTET_STRING_H_ */
#include "asn1/asn1c/asn_application.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
#define OPEN_TYPE_free CHOICE_free
#define OPEN_TYPE_print CHOICE_print
#define OPEN_TYPE_compare CHOICE_compare
const asn_TYPE_member_t *element,
const void *ptr, size_t size);
-#ifdef __cplusplus
-}
-#endif
-
#endif /* ASN_OPEN_TYPE_H */
#include "asn1/asn1c/ANY.h"
#include "asn1/asn1c/constr_SEQUENCE.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* OtherRevocationInfoFormat */
typedef struct OtherRevocationInfoFormat {
OBJECT_IDENTIFIER_t otherRevInfoFormat;
extern asn_SEQUENCE_specifics_t asn_SPC_OtherRevocationInfoFormat_specs_1;
extern asn_TYPE_member_t asn_MBR_OtherRevocationInfoFormat_1[2];
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _OtherRevocationInfoFormat_H_ */
#include "asn1/asn1c/asn_internal.h"
#include "asn1/asn1c/asn_SEQUENCE_OF.h"
#include "asn1/asn1c/constr_SEQUENCE_OF.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* Forward declarations */
struct RelativeDistinguishedName;
extern asn_SET_OF_specifics_t asn_SPC_RDNSequence_specs_1;
extern asn_TYPE_member_t asn_MBR_RDNSequence_1[1];
-#ifdef __cplusplus
-}
-#endif
-
/* Referred external types */
#include "asn1/asn1c/RelativeDistinguishedName.h"
#include "asn1/asn1c/INTEGER.h"
#include "asn1/asn1c/constr_SEQUENCE.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* ROAIPAddress */
typedef struct ROAIPAddress {
IPAddress_t address;
extern asn_SEQUENCE_specifics_t asn_SPC_ROAIPAddress_specs_1;
extern asn_TYPE_member_t asn_MBR_ROAIPAddress_1[2];
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _ROAIPAddress_H_ */
#include "asn1/asn1c/asn_internal.h"
#include "asn1/asn1c/constr_SEQUENCE_OF.h"
#include "asn1/asn1c/constr_SEQUENCE.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* Forward declarations */
struct ROAIPAddress;
extern asn_SEQUENCE_specifics_t asn_SPC_ROAIPAddressFamily_specs_1;
extern asn_TYPE_member_t asn_MBR_ROAIPAddressFamily_1[2];
-#ifdef __cplusplus
-}
-#endif
-
/* Referred external types */
#include "asn1/asn1c/ROAIPAddress.h"
#include "asn1/asn1c/asn_SET_OF.h"
#include "asn1/asn1c/constr_SET_OF.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* Forward declarations */
struct AttributeTypeAndValue;
extern asn_SET_OF_specifics_t asn_SPC_RelativeDistinguishedName_specs_1;
extern asn_TYPE_member_t asn_MBR_RelativeDistinguishedName_1[1];
-#ifdef __cplusplus
-}
-#endif
-
/* Referred external types */
#include "asn1/asn1c/AttributeTypeAndValue.h"
#include "asn1/asn1c/OtherRevocationInfoFormat.h"
#include "asn1/asn1c/constr_CHOICE.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* Dependencies */
typedef enum RevocationInfoChoice_PR {
RevocationInfoChoice_PR_NOTHING, /* No components present */
extern asn_CHOICE_specifics_t asn_SPC_RevocationInfoChoice_specs_1;
extern asn_TYPE_member_t asn_MBR_RevocationInfoChoice_1[2];
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _RevocationInfoChoice_H_ */
#include "asn1/asn1c/asn_internal.h"
#include "asn1/asn1c/asn_SET_OF.h"
#include "asn1/asn1c/constr_SET_OF.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* Forward declarations */
struct RevocationInfoChoice;
extern asn_SET_OF_specifics_t asn_SPC_RevocationInfoChoices_specs_1;
extern asn_TYPE_member_t asn_MBR_RevocationInfoChoices_1[1];
-#ifdef __cplusplus
-}
-#endif
-
/* Referred external types */
#include "asn1/asn1c/RevocationInfoChoice.h"
#include "asn1/asn1c/constr_SEQUENCE_OF.h"
#include "asn1/asn1c/constr_SEQUENCE.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* Forward declarations */
struct ROAIPAddressFamily;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RouteOriginAttestation;
-#ifdef __cplusplus
-}
-#endif
-
/* Referred external types */
#include "asn1/asn1c/ROAIPAddressFamily.h"
/* Including external dependencies */
#include "asn1/asn1c/AlgorithmIdentifier.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* SignatureAlgorithmIdentifier */
typedef AlgorithmIdentifier_t SignatureAlgorithmIdentifier_t;
der_type_encoder_f SignatureAlgorithmIdentifier_encode_der;
xer_type_encoder_f SignatureAlgorithmIdentifier_encode_xer;
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _SignatureAlgorithmIdentifier_H_ */
#include "asn1/asn1c/asn_internal.h"
/* Including external dependencies */
#include "asn1/asn1c/OCTET_STRING.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* SignatureValue */
typedef OCTET_STRING_t SignatureValue_t;
der_type_encoder_f SignatureValue_encode_der;
xer_type_encoder_f SignatureValue_encode_xer;
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _SignatureValue_H_ */
#include "asn1/asn1c/asn_internal.h"
#include "asn1/asn1c/asn_SET_OF.h"
#include "asn1/asn1c/constr_SET_OF.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* Forward declarations */
struct CMSAttribute;
extern asn_SET_OF_specifics_t asn_SPC_SignedAttributes_specs_1;
extern asn_TYPE_member_t asn_MBR_SignedAttributes_1[1];
-#ifdef __cplusplus
-}
-#endif
-
/* Referred external types */
#include "asn1/asn1c/CMSAttribute.h"
#include "asn1/asn1c/SignerInfos.h"
#include "asn1/asn1c/constr_SEQUENCE.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* Forward declarations */
struct CertificateSet;
struct RevocationInfoChoices;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_SignedData;
-#ifdef __cplusplus
-}
-#endif
-
/* Referred external types */
#include "asn1/asn1c/CertificateSet.h"
#include "asn1/asn1c/RevocationInfoChoices.h"
#include "asn1/asn1c/SignerInfos.h"
#include "asn1/asn1c/constr_SEQUENCE.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* Forward declarations */
struct CertificateSet;
struct RevocationInfoChoices;
/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_SignedDataPKCS7;
-#ifdef __cplusplus
-}
-#endif
-
/* Referred external types */
#include "asn1/asn1c/CertificateSet.h"
#include "asn1/asn1c/RevocationInfoChoices.h"
#include "asn1/asn1c/CMSSubjectKeyIdentifier.h"
#include "asn1/asn1c/constr_CHOICE.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* Dependencies */
typedef enum SignerIdentifier_PR {
SignerIdentifier_PR_NOTHING, /* No components present */
extern asn_CHOICE_specifics_t asn_SPC_SignerIdentifier_specs_1;
extern asn_TYPE_member_t asn_MBR_SignerIdentifier_1[2];
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _SignerIdentifier_H_ */
#include "asn1/asn1c/asn_internal.h"
#include "asn1/asn1c/SignatureValue.h"
#include "asn1/asn1c/constr_SEQUENCE.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* Forward declarations */
struct SignedAttributes;
struct UnsignedAttributes;
extern asn_SEQUENCE_specifics_t asn_SPC_SignerInfo_specs_1;
extern asn_TYPE_member_t asn_MBR_SignerInfo_1[7];
-#ifdef __cplusplus
-}
-#endif
-
/* Referred external types */
#include "asn1/asn1c/SignedAttributes.h"
#include "asn1/asn1c/UnsignedAttributes.h"
#include "asn1/asn1c/asn_SET_OF.h"
#include "asn1/asn1c/constr_SET_OF.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* Forward declarations */
struct SignerInfo;
extern asn_SET_OF_specifics_t asn_SPC_SignerInfos_specs_1;
extern asn_TYPE_member_t asn_MBR_SignerInfos_1[1];
-#ifdef __cplusplus
-}
-#endif
-
/* Referred external types */
#include "asn1/asn1c/SignerInfo.h"
/* Including external dependencies */
#include "asn1/asn1c/Time.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* SigningTime */
typedef Time_t SigningTime_t;
der_type_encoder_f SigningTime_encode_der;
xer_type_encoder_f SigningTime_encode_xer;
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _SigningTime_H_ */
#include "asn1/asn1c/asn_internal.h"
#include "asn1/asn1c/constr_SEQUENCE.h"
#include "asn1/asn1c/constr_SEQUENCE_OF.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* Forward declarations */
struct Time;
struct Extensions;
extern asn_SEQUENCE_specifics_t asn_SPC_TBSCertList_specs_1;
extern asn_TYPE_member_t asn_MBR_TBSCertList_1[7];
-#ifdef __cplusplus
-}
-#endif
-
/* Referred external types */
#include "asn1/asn1c/Time.h"
#include "asn1/asn1c/Extensions.h"
#include "asn1/asn1c/GeneralizedTime.h"
#include "asn1/asn1c/constr_CHOICE.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* Dependencies */
typedef enum Time_PR {
Time_PR_NOTHING, /* No components present */
extern asn_CHOICE_specifics_t asn_SPC_Time_specs_1;
extern asn_TYPE_member_t asn_MBR_Time_1[2];
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _Time_H_ */
#include "asn1/asn1c/asn_internal.h"
#include <sys/stat.h>
#include <time.h>
-#ifdef __cplusplus
-extern "C" {
-#endif
-
typedef OCTET_STRING_t UTCTime_t; /* Implemented via OCTET STRING */
extern asn_TYPE_descriptor_t asn_DEF_UTCTime;
/* See asn_time2GT() in GeneralizedTime.h */
UTCTime_t *asn_time2UT(UTCTime_t *__opt_ut, const struct tm *);
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _UTCTime_H_ */
#include "asn1/asn1c/asn_SET_OF.h"
#include "asn1/asn1c/constr_SET_OF.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* Forward declarations */
struct CMSAttribute;
extern asn_SET_OF_specifics_t asn_SPC_UnsignedAttributes_specs_1;
extern asn_TYPE_member_t asn_MBR_UnsignedAttributes_1[1];
-#ifdef __cplusplus
-}
-#endif
-
/* Referred external types */
#include "asn1/asn1c/CMSAttribute.h"
/* Including external dependencies */
#include "asn1/asn1c/INTEGER.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* Dependencies */
typedef enum Version {
Version_v1 = 0,
der_type_encoder_f Version_encode_der;
xer_type_encoder_f Version_encode_xer;
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _Version_H_ */
#include "asn1/asn1c/asn_internal.h"
#include "asn1/asn1c/asn_SET_OF.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/*
* SEQUENCE OF is the same as SET OF with a tiny difference:
* the delete operation preserves the initial order of elements
#define _A_SEQUENCE_FROM_VOID(ptr) ((asn_anonymous_sequence_ *)(ptr))
#define _A_CSEQUENCE_FROM_VOID(ptr) ((const asn_anonymous_sequence_ *)(ptr))
-#ifdef __cplusplus
-}
-#endif
-
#endif /* ASN_SEQUENCE_OF_H */
#define ASN_SET_OF_H
#include <stdlib.h>
-#ifdef __cplusplus
-#define A_SET_OF(type) \
- struct { \
- type **array; \
- int count; /* Meaningful size */ \
- int size; /* Allocated size */ \
- void (*free)(decltype(*array)); \
- }
-#else /* C */
#define A_SET_OF(type) \
struct { \
type **array; \
int size; /* Allocated size */ \
void (*free)(type *); \
}
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
#define ASN_SET_ADD(headptr, ptr) \
asn_set_add((headptr), (ptr))
#define _A_SET_FROM_VOID(ptr) ((asn_anonymous_set_ *)(ptr))
#define _A_CSET_FROM_VOID(ptr) ((const asn_anonymous_set_ *)(ptr))
-#ifdef __cplusplus
-}
-#endif
-
#endif /* ASN_SET_OF_H */
#include "asn1/asn1c/asn_system.h" /* for platform-dependent types */
#include "asn1/asn1c/asn_codecs.h" /* for ASN.1 codecs specifics */
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/*
* A selection of ASN.1 Transfer Syntaxes to use with generalized
* encoders and decoders declared further in this .h file.
const void *structure_which_failed_ptr,
const char *error_message_format, ...) CC_PRINTFLIKE(4, 5);
-
-#ifdef __cplusplus
-}
-#endif
-
#include "asn1/asn1c/constr_TYPE.h" /* for asn_TYPE_descriptor_t */
#endif /* ASN_APPLICATION_H */
#include <sys/types.h>
#include <unistd.h>
-#ifdef __cplusplus
-extern "C" {
-#endif
-
struct asn_TYPE_descriptor_s; /* Forward declaration */
/*
return tmp_error; \
} while(0)
-#ifdef __cplusplus
-}
-#endif
-
#endif /* ASN_CODECS_H */
#include "asn1/asn1c/asn_application.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
typedef struct ASN__PRIMITIVE_TYPE_s {
uint8_t *buf; /* Buffer with consecutive primitive encoding bytes */
size_t size; /* Size of the buffer */
ber_type_decoder_f ber_decode_primitive;
der_type_encoder_f der_encode_primitive;
-#ifdef __cplusplus
-}
-#endif
-
#endif /* ASN_CODECS_PRIM_H */
#endif
#include "asn1/asn1c/asn_application.h" /* Application-visible API */
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/* Environment version might be used to avoid running with the old library */
#define ASN1C_ENVIRONMENT_VERSION 923 /* Compile-time version */
int get_asn1c_environment_version(void); /* Run-time version */
return 0;
}
-#ifdef __cplusplus
-}
-#endif
-
#endif /* ASN_INTERNAL_H */
#include "asn1/asn1c/asn_system.h" /* Platform-specific types */
-#ifdef __cplusplus
-extern "C" {
-#endif
-
struct asn_TYPE_descriptor_s;
struct asn_ioc_cell_s;
} open_type;
} asn_ioc_cell_t;
-
-#ifdef __cplusplus
-}
-#endif
-
#endif /* ASN_IOC_H */
#include "asn1/asn1c/asn_application.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
struct asn_TYPE_descriptor_s; /* Forward declaration */
struct asn_codec_ctx_s; /* Forward declaration */
ber_tlv_len_t *last_length, int *opt_tlv_form /* optional tag form */
);
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _BER_DECODER_H_ */
#include <sys/types.h>
#include <unistd.h>
-#ifdef __cplusplus
-extern "C" {
-#endif
-
typedef ssize_t ber_tlv_len_t;
/*
*/
size_t der_tlv_length_serialize(ber_tlv_len_t len, void *bufptr, size_t size);
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _BER_TLV_LENGTH_H_ */
#include <sys/types.h>
#include <unistd.h>
-#ifdef __cplusplus
-extern "C" {
-#endif
-
enum asn_tag_class {
ASN_TAG_CLASS_UNIVERSAL = 0, /* 0b00 */
ASN_TAG_CLASS_APPLICATION = 1, /* 0b01 */
*/
size_t ber_tlv_tag_serialize(ber_tlv_tag_t tag, void *bufptr, size_t size);
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _BER_TLV_TAG_H_ */
#include "asn1/asn1c/asn_application.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
typedef struct asn_CHOICE_specifics_s {
/*
* Target structure description.
int CHOICE_variant_set_presence(const asn_TYPE_descriptor_t *td,
void *structure_ptr, unsigned present);
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _CONSTR_CHOICE_H_ */
#include "asn1/asn1c/asn_application.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
typedef struct asn_SEQUENCE_specifics_s {
/*
* Target structure description.
asn_random_fill_f SEQUENCE_random_fill;
extern asn_TYPE_operation_t asn_OP_SEQUENCE;
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _CONSTR_SEQUENCE_H_ */
#include "asn1/asn1c/asn_application.h"
#include "asn1/asn1c/constr_SET_OF.h" /* Implemented using SET OF */
-#ifdef __cplusplus
-extern "C" {
-#endif
-
/*
* A set specialized functions dealing with the SEQUENCE OF type.
* Generally implemented using SET OF.
#define SEQUENCE_OF_decode_ber SET_OF_decode_ber
#define SEQUENCE_OF_random_fill SET_OF_random_fill
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _CONSTR_SET_OF_H_ */
#include "asn1/asn1c/asn_application.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
typedef struct asn_SET_OF_specifics_s {
/*
* Target structure description.
asn_random_fill_f SET_OF_random_fill;
extern asn_TYPE_operation_t asn_OP_SET_OF;
-#ifdef __cplusplus
-}
-#endif
-
#endif /* CONSTR_SET_OF_H */
#include "asn1/asn1c/ber_tlv_length.h"
#include "asn1/asn1c/ber_tlv_tag.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
struct asn_TYPE_descriptor_s; /* Forward declaration */
struct asn_TYPE_member_s; /* Forward declaration */
const asn_TYPE_descriptor_t *td, /* ASN.1 type descriptor */
const void *struct_ptr); /* Structure to be printed */
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _CONSTR_TYPE_H_ */
#include "asn1/asn1c/asn_system.h" /* Platform-dependent types */
-#ifdef __cplusplus
-extern "C" {
-#endif
-
struct asn_TYPE_descriptor_s; /* Forward declaration */
/*
*/
#define ASN__CTFAIL if(ctfailcb) ctfailcb
-#ifdef __cplusplus
-}
-#endif
-
#endif /* ASN1_CONSTRAINTS_VALIDATOR_H */
#include "asn1/asn1c/asn_application.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
struct asn_TYPE_descriptor_s; /* Forward declaration */
/*
asn_app_consume_bytes_f *consume_bytes_cb,
void *app_key);
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _DER_ENCODER_H_ */
#include "asn1/asn1c/asn_application.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
struct asn_TYPE_descriptor_s; /* Forward declaration */
/* Flags used by the xer_encode() and (*xer_type_encoder_f), defined below */
void *app_key /* Arbitrary callback argument */
);
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _XER_ENCODER_H_ */
#include <sys/types.h>
#include <unistd.h>
-/* These macros use decltype or the earlier __typeof GNU extension.
- As decltype is only available in newer compilers (VS2010 or gcc 4.3+
- when compiling c++ source) this code uses whatever method is needed
- or, for VS2008 where neither is available, uses casting workarounds. */
#if !defined(DECLTYPE) && !defined(NO_DECLTYPE)
-#if defined(_MSC_VER) /* MS compiler */
-#if _MSC_VER >= 1600 && defined(__cplusplus) /* VS2010 or newer in C++ mode */
-#define DECLTYPE(x) (decltype(x))
-#else /* VS2008 or older (or VS2010 in C mode) */
-#define NO_DECLTYPE
-#endif
-#elif defined(__BORLANDC__) || defined(__ICCARM__) || defined(__LCC__) || defined(__WATCOMC__)
-#define NO_DECLTYPE
-#else /* GNU, Sun and other compilers */
#define DECLTYPE(x) (__typeof(x))
#endif
-#endif
#ifdef NO_DECLTYPE
#define DECLTYPE(x)