|
wpa_supplicant / hostapd 2.0
|
00001 00010 #ifndef ASN1_H 00011 #define ASN1_H 00012 00013 #define ASN1_TAG_EOC 0x00 /* not used with DER */ 00014 #define ASN1_TAG_BOOLEAN 0x01 00015 #define ASN1_TAG_INTEGER 0x02 00016 #define ASN1_TAG_BITSTRING 0x03 00017 #define ASN1_TAG_OCTETSTRING 0x04 00018 #define ASN1_TAG_NULL 0x05 00019 #define ASN1_TAG_OID 0x06 00020 #define ASN1_TAG_OBJECT_DESCRIPTOR 0x07 /* not yet parsed */ 00021 #define ASN1_TAG_EXTERNAL 0x08 /* not yet parsed */ 00022 #define ASN1_TAG_REAL 0x09 /* not yet parsed */ 00023 #define ASN1_TAG_ENUMERATED 0x0A /* not yet parsed */ 00024 #define ASN1_TAG_UTF8STRING 0x0C /* not yet parsed */ 00025 #define ANS1_TAG_RELATIVE_OID 0x0D 00026 #define ASN1_TAG_SEQUENCE 0x10 /* shall be constructed */ 00027 #define ASN1_TAG_SET 0x11 00028 #define ASN1_TAG_NUMERICSTRING 0x12 /* not yet parsed */ 00029 #define ASN1_TAG_PRINTABLESTRING 0x13 00030 #define ASN1_TAG_TG1STRING 0x14 /* not yet parsed */ 00031 #define ASN1_TAG_VIDEOTEXSTRING 0x15 /* not yet parsed */ 00032 #define ASN1_TAG_IA5STRING 0x16 00033 #define ASN1_TAG_UTCTIME 0x17 00034 #define ASN1_TAG_GENERALIZEDTIME 0x18 /* not yet parsed */ 00035 #define ASN1_TAG_GRAPHICSTRING 0x19 /* not yet parsed */ 00036 #define ASN1_TAG_VISIBLESTRING 0x1A 00037 #define ASN1_TAG_GENERALSTRING 0x1B /* not yet parsed */ 00038 #define ASN1_TAG_UNIVERSALSTRING 0x1C /* not yet parsed */ 00039 #define ASN1_TAG_BMPSTRING 0x1D /* not yet parsed */ 00040 00041 #define ASN1_CLASS_UNIVERSAL 0 00042 #define ASN1_CLASS_APPLICATION 1 00043 #define ASN1_CLASS_CONTEXT_SPECIFIC 2 00044 #define ASN1_CLASS_PRIVATE 3 00045 00046 00047 struct asn1_hdr { 00048 const u8 *payload; 00049 u8 identifier, class, constructed; 00050 unsigned int tag, length; 00051 }; 00052 00053 #define ASN1_MAX_OID_LEN 20 00054 struct asn1_oid { 00055 unsigned long oid[ASN1_MAX_OID_LEN]; 00056 size_t len; 00057 }; 00058 00059 00060 int asn1_get_next(const u8 *buf, size_t len, struct asn1_hdr *hdr); 00061 int asn1_parse_oid(const u8 *buf, size_t len, struct asn1_oid *oid); 00062 int asn1_get_oid(const u8 *buf, size_t len, struct asn1_oid *oid, 00063 const u8 **next); 00064 void asn1_oid_to_str(struct asn1_oid *oid, char *buf, size_t len); 00065 unsigned long asn1_bit_string_to_long(const u8 *buf, size_t len); 00066 00067 #endif /* ASN1_H */ 00068
1.7.3