Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-or-later */
0002 /* ASN.1 BER/DER/CER encoding definitions
0003  *
0004  * Copyright (C) 2012 Red Hat, Inc. All Rights Reserved.
0005  * Written by David Howells (dhowells@redhat.com)
0006  */
0007 
0008 #ifndef _LINUX_ASN1_H
0009 #define _LINUX_ASN1_H
0010 
0011 /* Class */
0012 enum asn1_class {
0013     ASN1_UNIV   = 0,    /* Universal */
0014     ASN1_APPL   = 1,    /* Application */
0015     ASN1_CONT   = 2,    /* Context */
0016     ASN1_PRIV   = 3 /* Private */
0017 };
0018 #define ASN1_CLASS_BITS 0xc0
0019 
0020 
0021 enum asn1_method {
0022     ASN1_PRIM   = 0,    /* Primitive */
0023     ASN1_CONS   = 1 /* Constructed */
0024 };
0025 #define ASN1_CONS_BIT   0x20
0026 
0027 /* Tag */
0028 enum asn1_tag {
0029     ASN1_EOC    = 0,    /* End Of Contents or N/A */
0030     ASN1_BOOL   = 1,    /* Boolean */
0031     ASN1_INT    = 2,    /* Integer */
0032     ASN1_BTS    = 3,    /* Bit String */
0033     ASN1_OTS    = 4,    /* Octet String */
0034     ASN1_NULL   = 5,    /* Null */
0035     ASN1_OID    = 6,    /* Object Identifier  */
0036     ASN1_ODE    = 7,    /* Object Description */
0037     ASN1_EXT    = 8,    /* External */
0038     ASN1_REAL   = 9,    /* Real float */
0039     ASN1_ENUM   = 10,   /* Enumerated */
0040     ASN1_EPDV   = 11,   /* Embedded PDV */
0041     ASN1_UTF8STR    = 12,   /* UTF8 String */
0042     ASN1_RELOID = 13,   /* Relative OID */
0043     /* 14 - Reserved */
0044     /* 15 - Reserved */
0045     ASN1_SEQ    = 16,   /* Sequence and Sequence of */
0046     ASN1_SET    = 17,   /* Set and Set of */
0047     ASN1_NUMSTR = 18,   /* Numerical String */
0048     ASN1_PRNSTR = 19,   /* Printable String */
0049     ASN1_TEXSTR = 20,   /* T61 String / Teletext String */
0050     ASN1_VIDSTR = 21,   /* Videotex String */
0051     ASN1_IA5STR = 22,   /* IA5 String */
0052     ASN1_UNITIM = 23,   /* Universal Time */
0053     ASN1_GENTIM = 24,   /* General Time */
0054     ASN1_GRASTR = 25,   /* Graphic String */
0055     ASN1_VISSTR = 26,   /* Visible String */
0056     ASN1_GENSTR = 27,   /* General String */
0057     ASN1_UNISTR = 28,   /* Universal String */
0058     ASN1_CHRSTR = 29,   /* Character String */
0059     ASN1_BMPSTR = 30,   /* BMP String */
0060     ASN1_LONG_TAG   = 31    /* Long form tag */
0061 };
0062 
0063 #define ASN1_INDEFINITE_LENGTH 0x80
0064 
0065 #endif /* _LINUX_ASN1_H */