asn1.h

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

Generated on Sun Dec 31 13:48:51 2006 for wpa_supplicant by  doxygen 1.4.2