| 
									
										
										
										
											2012-09-21 23:31:13 +01:00
										 |  |  | /* ASN.1 BER/DER/CER encoding definitions
 | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Copyright (C) 2012 Red Hat, Inc. All Rights Reserved. | 
					
						
							|  |  |  |  * Written by David Howells (dhowells@redhat.com) | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This program is free software; you can redistribute it and/or | 
					
						
							|  |  |  |  * modify it under the terms of the GNU General Public Licence | 
					
						
							|  |  |  |  * as published by the Free Software Foundation; either version | 
					
						
							|  |  |  |  * 2 of the Licence, or (at your option) any later version. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef _LINUX_ASN1_H
 | 
					
						
							|  |  |  | #define _LINUX_ASN1_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Class */ | 
					
						
							|  |  |  | enum asn1_class { | 
					
						
							|  |  |  | 	ASN1_UNIV	= 0,	/* Universal */ | 
					
						
							|  |  |  | 	ASN1_APPL	= 1,	/* Application */ | 
					
						
							|  |  |  | 	ASN1_CONT	= 2,	/* Context */ | 
					
						
							|  |  |  | 	ASN1_PRIV	= 3	/* Private */ | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | #define ASN1_CLASS_BITS	0xc0
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | enum asn1_method { | 
					
						
							|  |  |  | 	ASN1_PRIM	= 0,	/* Primitive */ | 
					
						
							|  |  |  | 	ASN1_CONS	= 1	/* Constructed */ | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | #define ASN1_CONS_BIT	0x20
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Tag */ | 
					
						
							|  |  |  | enum asn1_tag { | 
					
						
							|  |  |  | 	ASN1_EOC	= 0,	/* End Of Contents or N/A */ | 
					
						
							|  |  |  | 	ASN1_BOOL	= 1,	/* Boolean */ | 
					
						
							|  |  |  | 	ASN1_INT	= 2,	/* Integer */ | 
					
						
							|  |  |  | 	ASN1_BTS	= 3,	/* Bit String */ | 
					
						
							|  |  |  | 	ASN1_OTS	= 4,	/* Octet String */ | 
					
						
							|  |  |  | 	ASN1_NULL	= 5,	/* Null */ | 
					
						
							|  |  |  | 	ASN1_OID	= 6,	/* Object Identifier  */ | 
					
						
							|  |  |  | 	ASN1_ODE	= 7,	/* Object Description */ | 
					
						
							|  |  |  | 	ASN1_EXT	= 8,	/* External */ | 
					
						
							|  |  |  | 	ASN1_REAL	= 9,	/* Real float */ | 
					
						
							|  |  |  | 	ASN1_ENUM	= 10,	/* Enumerated */ | 
					
						
							|  |  |  | 	ASN1_EPDV	= 11,	/* Embedded PDV */ | 
					
						
							|  |  |  | 	ASN1_UTF8STR	= 12,	/* UTF8 String */ | 
					
						
							|  |  |  | 	ASN1_RELOID	= 13,	/* Relative OID */ | 
					
						
							|  |  |  | 	/* 14 - Reserved */ | 
					
						
							|  |  |  | 	/* 15 - Reserved */ | 
					
						
							|  |  |  | 	ASN1_SEQ	= 16,	/* Sequence and Sequence of */ | 
					
						
							|  |  |  | 	ASN1_SET	= 17,	/* Set and Set of */ | 
					
						
							|  |  |  | 	ASN1_NUMSTR	= 18,	/* Numerical String */ | 
					
						
							|  |  |  | 	ASN1_PRNSTR	= 19,	/* Printable String */ | 
					
						
							|  |  |  | 	ASN1_TEXSTR	= 20,	/* T61 String / Teletext String */ | 
					
						
							|  |  |  | 	ASN1_VIDSTR	= 21,	/* Videotex String */ | 
					
						
							|  |  |  | 	ASN1_IA5STR	= 22,	/* IA5 String */ | 
					
						
							|  |  |  | 	ASN1_UNITIM	= 23,	/* Universal Time */ | 
					
						
							|  |  |  | 	ASN1_GENTIM	= 24,	/* General Time */ | 
					
						
							|  |  |  | 	ASN1_GRASTR	= 25,	/* Graphic String */ | 
					
						
							|  |  |  | 	ASN1_VISSTR	= 26,	/* Visible String */ | 
					
						
							|  |  |  | 	ASN1_GENSTR	= 27,	/* General String */ | 
					
						
							|  |  |  | 	ASN1_UNISTR	= 28,	/* Universal String */ | 
					
						
							|  |  |  | 	ASN1_CHRSTR	= 29,	/* Character String */ | 
					
						
							|  |  |  | 	ASN1_BMPSTR	= 30,	/* BMP String */ | 
					
						
							|  |  |  | 	ASN1_LONG_TAG	= 31	/* Long form tag */ | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-12-05 11:55:28 +10:30
										 |  |  | #define ASN1_INDEFINITE_LENGTH 0x80
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-09-21 23:31:13 +01:00
										 |  |  | #endif /* _LINUX_ASN1_H */
 |