| /* |
| * Object Identifier definition. |
| */ |
| #ifndef ASN1_PARSER_OID_H |
| #define ASN1_PARSER_OID_H |
| |
| /******************************** |
| * Single Object Identifier Arc * |
| ********************************/ |
| |
| /* |
| * Object identifier arc (one number in the hierarchy). |
| */ |
| typedef struct asn1p_oid_arc_s { |
| asn1_integer_t number; /* -1 if not yet defined */ |
| char *name; /* 0 if not defined */ |
| } asn1p_oid_arc_t; |
| |
| |
| /* |
| * Arc constructor. |
| */ |
| asn1p_oid_arc_t *asn1p_oid_arc_new( |
| const char *optName, asn1_integer_t optNumber /* = -1 */); |
| /* |
| * Arc destructor. |
| */ |
| void asn1p_oid_arc_free(asn1p_oid_arc_t *); |
| |
| |
| /************************************************** |
| * Object Identifier itself, a collection of arcs * |
| **************************************************/ |
| |
| /* |
| * Object Identifier as a collection of arcs. |
| */ |
| typedef struct asn1p_oid_s { |
| asn1p_oid_arc_t *arcs; |
| int arcs_count; |
| } asn1p_oid_t; |
| |
| /* |
| * OID constructor. |
| */ |
| asn1p_oid_t *asn1p_oid_new(void); |
| |
| /* |
| * Add another arc using given one as a template |
| */ |
| int asn1p_oid_add_arc(asn1p_oid_t *, asn1p_oid_arc_t *template); |
| |
| /* |
| * OID destructor. |
| */ |
| void asn1p_oid_free(asn1p_oid_t *); |
| |
| /* |
| * RETURN VALUES: |
| * 0: The specified OIDs are equal. |
| * -1 or 1 otherwise. |
| */ |
| int asn1p_oid_compare(asn1p_oid_t *a, asn1p_oid_t *b); |
| |
| |
| #endif /* ASN1_PARSER_OID_H */ |