wpa_supplicant / hostapd 2.0

asn1.h

Go to the documentation of this file.
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 
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines