summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/asn1/asn1.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/asn1/asn1.h')
-rw-r--r--src/lib/libcrypto/asn1/asn1.h341
1 files changed, 64 insertions, 277 deletions
diff --git a/src/lib/libcrypto/asn1/asn1.h b/src/lib/libcrypto/asn1/asn1.h
index 424cd348bb..0184b475a7 100644
--- a/src/lib/libcrypto/asn1/asn1.h
+++ b/src/lib/libcrypto/asn1/asn1.h
@@ -60,19 +60,17 @@
60#define HEADER_ASN1_H 60#define HEADER_ASN1_H
61 61
62#include <time.h> 62#include <time.h>
63#include <openssl/e_os2.h>
64#ifndef OPENSSL_NO_BIO 63#ifndef OPENSSL_NO_BIO
65#include <openssl/bio.h> 64#include <openssl/bio.h>
66#endif 65#endif
66#include <openssl/e_os2.h>
67#include <openssl/bn.h>
67#include <openssl/stack.h> 68#include <openssl/stack.h>
68#include <openssl/safestack.h> 69#include <openssl/safestack.h>
69 70
70#include <openssl/symhacks.h> 71#include <openssl/symhacks.h>
71 72
72#include <openssl/ossl_typ.h> 73#include <openssl/ossl_typ.h>
73#ifndef OPENSSL_NO_DEPRECATED
74#include <openssl/bn.h>
75#endif
76 74
77#ifdef OPENSSL_BUILD_SHLIBCRYPTO 75#ifdef OPENSSL_BUILD_SHLIBCRYPTO
78# undef OPENSSL_EXTERN 76# undef OPENSSL_EXTERN
@@ -149,29 +147,19 @@ extern "C" {
149#define B_ASN1_UTF8STRING 0x2000 147#define B_ASN1_UTF8STRING 0x2000
150#define B_ASN1_UTCTIME 0x4000 148#define B_ASN1_UTCTIME 0x4000
151#define B_ASN1_GENERALIZEDTIME 0x8000 149#define B_ASN1_GENERALIZEDTIME 0x8000
152#define B_ASN1_SEQUENCE 0x10000
153 150
154/* For use with ASN1_mbstring_copy() */ 151/* For use with ASN1_mbstring_copy() */
155#define MBSTRING_FLAG 0x1000 152#define MBSTRING_FLAG 0x1000
156#define MBSTRING_UTF8 (MBSTRING_FLAG)
157#define MBSTRING_ASC (MBSTRING_FLAG|1) 153#define MBSTRING_ASC (MBSTRING_FLAG|1)
158#define MBSTRING_BMP (MBSTRING_FLAG|2) 154#define MBSTRING_BMP (MBSTRING_FLAG|2)
159#define MBSTRING_UNIV (MBSTRING_FLAG|4) 155#define MBSTRING_UNIV (MBSTRING_FLAG|3)
160 156#define MBSTRING_UTF8 (MBSTRING_FLAG|4)
161#define SMIME_OLDMIME 0x400
162#define SMIME_CRLFEOL 0x800
163#define SMIME_STREAM 0x1000
164 157
165struct X509_algor_st; 158struct X509_algor_st;
166DECLARE_STACK_OF(X509_ALGOR)
167 159
168#define DECLARE_ASN1_SET_OF(type) /* filled in by mkstack.pl */ 160#define DECLARE_ASN1_SET_OF(type) /* filled in by mkstack.pl */
169#define IMPLEMENT_ASN1_SET_OF(type) /* nothing, no longer needed */ 161#define IMPLEMENT_ASN1_SET_OF(type) /* nothing, no longer needed */
170 162
171/* We MUST make sure that, except for constness, asn1_ctx_st and
172 asn1_const_ctx are exactly the same. Fortunately, as soon as
173 the old ASN1 parsing macros are gone, we can throw this away
174 as well... */
175typedef struct asn1_ctx_st 163typedef struct asn1_ctx_st
176 { 164 {
177 unsigned char *p;/* work char pointer */ 165 unsigned char *p;/* work char pointer */
@@ -187,21 +175,6 @@ typedef struct asn1_ctx_st
187 int line; /* used in error processing */ 175 int line; /* used in error processing */
188 } ASN1_CTX; 176 } ASN1_CTX;
189 177
190typedef struct asn1_const_ctx_st
191 {
192 const unsigned char *p;/* work char pointer */
193 int eos; /* end of sequence read for indefinite encoding */
194 int error; /* error code to use when returning an error */
195 int inf; /* constructed if 0x20, indefinite is 0x21 */
196 int tag; /* tag from last 'get object' */
197 int xclass; /* class from last 'get object' */
198 long slen; /* length of last 'get object' */
199 const unsigned char *max; /* largest value of p allowed */
200 const unsigned char *q;/* temporary variable */
201 const unsigned char **pp;/* variable */
202 int line; /* used in error processing */
203 } ASN1_const_CTX;
204
205/* These are used internally in the ASN1_OBJECT to keep track of 178/* These are used internally in the ASN1_OBJECT to keep track of
206 * whether the names and data need to be free()ed */ 179 * whether the names and data need to be free()ed */
207#define ASN1_OBJECT_FLAG_DYNAMIC 0x01 /* internal use */ 180#define ASN1_OBJECT_FLAG_DYNAMIC 0x01 /* internal use */
@@ -218,18 +191,6 @@ typedef struct asn1_object_st
218 } ASN1_OBJECT; 191 } ASN1_OBJECT;
219 192
220#define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */ 193#define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */
221/* This indicates that the ASN1_STRING is not a real value but just a place
222 * holder for the location where indefinite length constructed data should
223 * be inserted in the memory buffer
224 */
225#define ASN1_STRING_FLAG_NDEF 0x010
226
227/* This flag is used by the CMS code to indicate that a string is not
228 * complete and is a place holder for content when it had all been
229 * accessed. The flag will be reset when content has been written to it.
230 */
231#define ASN1_STRING_FLAG_CONT 0x020
232
233/* This is the base type that holds just about everything :-) */ 194/* This is the base type that holds just about everything :-) */
234typedef struct asn1_string_st 195typedef struct asn1_string_st
235 { 196 {
@@ -298,19 +259,18 @@ typedef struct ASN1_VALUE_st ASN1_VALUE;
298 259
299#define DECLARE_ASN1_FUNCTIONS(type) DECLARE_ASN1_FUNCTIONS_name(type, type) 260#define DECLARE_ASN1_FUNCTIONS(type) DECLARE_ASN1_FUNCTIONS_name(type, type)
300 261
301#define DECLARE_ASN1_ALLOC_FUNCTIONS(type) \
302 DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, type)
303
304#define DECLARE_ASN1_FUNCTIONS_name(type, name) \ 262#define DECLARE_ASN1_FUNCTIONS_name(type, name) \
305 DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \ 263 type *name##_new(void); \
264 void name##_free(type *a); \
306 DECLARE_ASN1_ENCODE_FUNCTIONS(type, name, name) 265 DECLARE_ASN1_ENCODE_FUNCTIONS(type, name, name)
307 266
308#define DECLARE_ASN1_FUNCTIONS_fname(type, itname, name) \ 267#define DECLARE_ASN1_FUNCTIONS_fname(type, itname, name) \
309 DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \ 268 type *name##_new(void); \
269 void name##_free(type *a); \
310 DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name) 270 DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name)
311 271
312#define DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name) \ 272#define DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name) \
313 type *d2i_##name(type **a, const unsigned char **in, long len); \ 273 type *d2i_##name(type **a, unsigned char **in, long len); \
314 int i2d_##name(type *a, unsigned char **out); \ 274 int i2d_##name(type *a, unsigned char **out); \
315 DECLARE_ASN1_ITEM(itname) 275 DECLARE_ASN1_ITEM(itname)
316 276
@@ -319,37 +279,10 @@ typedef struct ASN1_VALUE_st ASN1_VALUE;
319 int i2d_##name(const type *a, unsigned char **out); \ 279 int i2d_##name(const type *a, unsigned char **out); \
320 DECLARE_ASN1_ITEM(name) 280 DECLARE_ASN1_ITEM(name)
321 281
322#define DECLARE_ASN1_NDEF_FUNCTION(name) \
323 int i2d_##name##_NDEF(name *a, unsigned char **out);
324
325#define DECLARE_ASN1_FUNCTIONS_const(name) \ 282#define DECLARE_ASN1_FUNCTIONS_const(name) \
326 DECLARE_ASN1_ALLOC_FUNCTIONS(name) \ 283 name *name##_new(void); \
327 DECLARE_ASN1_ENCODE_FUNCTIONS_const(name, name) 284 void name##_free(name *a);
328 285
329#define DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \
330 type *name##_new(void); \
331 void name##_free(type *a);
332
333#define D2I_OF(type) type *(*)(type **,const unsigned char **,long)
334#define I2D_OF(type) int (*)(type *,unsigned char **)
335#define I2D_OF_const(type) int (*)(const type *,unsigned char **)
336
337#define CHECKED_D2I_OF(type, d2i) \
338 ((d2i_of_void*) (1 ? d2i : ((D2I_OF(type))0)))
339#define CHECKED_I2D_OF(type, i2d) \
340 ((i2d_of_void*) (1 ? i2d : ((I2D_OF(type))0)))
341#define CHECKED_NEW_OF(type, xnew) \
342 ((void *(*)(void)) (1 ? xnew : ((type *(*)(void))0)))
343#define CHECKED_PTR_OF(type, p) \
344 ((void*) (1 ? p : (type*)0))
345#define CHECKED_PPTR_OF(type, p) \
346 ((void**) (1 ? p : (type**)0))
347
348#define TYPEDEF_D2I_OF(type) typedef type *d2i_of_##type(type **,const unsigned char **,long)
349#define TYPEDEF_I2D_OF(type) typedef int i2d_of_##type(type *,unsigned char **)
350#define TYPEDEF_D2I2D_OF(type) TYPEDEF_D2I_OF(type); TYPEDEF_I2D_OF(type)
351
352TYPEDEF_D2I2D_OF(void);
353 286
354/* The following macros and typedefs allow an ASN1_ITEM 287/* The following macros and typedefs allow an ASN1_ITEM
355 * to be embedded in a structure and referenced. Since 288 * to be embedded in a structure and referenced. Since
@@ -534,7 +467,6 @@ typedef struct asn1_type_st
534 * contain the set or sequence bytes */ 467 * contain the set or sequence bytes */
535 ASN1_STRING * set; 468 ASN1_STRING * set;
536 ASN1_STRING * sequence; 469 ASN1_STRING * sequence;
537 ASN1_VALUE * asn1_value;
538 } value; 470 } value;
539 } ASN1_TYPE; 471 } ASN1_TYPE;
540 472
@@ -543,17 +475,17 @@ DECLARE_ASN1_SET_OF(ASN1_TYPE)
543 475
544typedef struct asn1_method_st 476typedef struct asn1_method_st
545 { 477 {
546 i2d_of_void *i2d; 478 int (*i2d)();
547 d2i_of_void *d2i; 479 char *(*d2i)();
548 void *(*create)(void); 480 char *(*create)();
549 void (*destroy)(void *); 481 void (*destroy)();
550 } ASN1_METHOD; 482 } ASN1_METHOD;
551 483
552/* This is used when parsing some Netscape objects */ 484/* This is used when parsing some Netscape objects */
553typedef struct asn1_header_st 485typedef struct asn1_header_st
554 { 486 {
555 ASN1_OCTET_STRING *header; 487 ASN1_OCTET_STRING *header;
556 void *data; 488 char *data;
557 ASN1_METHOD *meth; 489 ASN1_METHOD *meth;
558 } ASN1_HEADER; 490 } ASN1_HEADER;
559 491
@@ -619,7 +551,6 @@ typedef struct BIT_STRING_BITNAME_st {
619 B_ASN1_UNIVERSALSTRING|\ 551 B_ASN1_UNIVERSALSTRING|\
620 B_ASN1_BMPSTRING|\ 552 B_ASN1_BMPSTRING|\
621 B_ASN1_UTF8STRING|\ 553 B_ASN1_UTF8STRING|\
622 B_ASN1_SEQUENCE|\
623 B_ASN1_UNKNOWN 554 B_ASN1_UNKNOWN
624 555
625#define B_ASN1_DIRECTORYSTRING \ 556#define B_ASN1_DIRECTORYSTRING \
@@ -765,14 +696,13 @@ DECLARE_ASN1_FUNCTIONS_fname(ASN1_TYPE, ASN1_ANY, ASN1_TYPE)
765 696
766int ASN1_TYPE_get(ASN1_TYPE *a); 697int ASN1_TYPE_get(ASN1_TYPE *a);
767void ASN1_TYPE_set(ASN1_TYPE *a, int type, void *value); 698void ASN1_TYPE_set(ASN1_TYPE *a, int type, void *value);
768int ASN1_TYPE_set1(ASN1_TYPE *a, int type, const void *value);
769 699
770ASN1_OBJECT * ASN1_OBJECT_new(void ); 700ASN1_OBJECT * ASN1_OBJECT_new(void );
771void ASN1_OBJECT_free(ASN1_OBJECT *a); 701void ASN1_OBJECT_free(ASN1_OBJECT *a);
772int i2d_ASN1_OBJECT(ASN1_OBJECT *a,unsigned char **pp); 702int i2d_ASN1_OBJECT(ASN1_OBJECT *a,unsigned char **pp);
773ASN1_OBJECT * c2i_ASN1_OBJECT(ASN1_OBJECT **a,const unsigned char **pp, 703ASN1_OBJECT * c2i_ASN1_OBJECT(ASN1_OBJECT **a,unsigned char **pp,
774 long length); 704 long length);
775ASN1_OBJECT * d2i_ASN1_OBJECT(ASN1_OBJECT **a,const unsigned char **pp, 705ASN1_OBJECT * d2i_ASN1_OBJECT(ASN1_OBJECT **a,unsigned char **pp,
776 long length); 706 long length);
777 707
778DECLARE_ASN1_ITEM(ASN1_OBJECT) 708DECLARE_ASN1_ITEM(ASN1_OBJECT)
@@ -788,7 +718,6 @@ int ASN1_STRING_cmp(ASN1_STRING *a, ASN1_STRING *b);
788 /* Since this is used to store all sorts of things, via macros, for now, make 718 /* Since this is used to store all sorts of things, via macros, for now, make
789 its data void * */ 719 its data void * */
790int ASN1_STRING_set(ASN1_STRING *str, const void *data, int len); 720int ASN1_STRING_set(ASN1_STRING *str, const void *data, int len);
791void ASN1_STRING_set0(ASN1_STRING *str, void *data, int len);
792int ASN1_STRING_length(ASN1_STRING *x); 721int ASN1_STRING_length(ASN1_STRING *x);
793void ASN1_STRING_length_set(ASN1_STRING *x, int n); 722void ASN1_STRING_length_set(ASN1_STRING *x, int n);
794int ASN1_STRING_type(ASN1_STRING *x); 723int ASN1_STRING_type(ASN1_STRING *x);
@@ -796,7 +725,7 @@ unsigned char * ASN1_STRING_data(ASN1_STRING *x);
796 725
797DECLARE_ASN1_FUNCTIONS(ASN1_BIT_STRING) 726DECLARE_ASN1_FUNCTIONS(ASN1_BIT_STRING)
798int i2c_ASN1_BIT_STRING(ASN1_BIT_STRING *a,unsigned char **pp); 727int i2c_ASN1_BIT_STRING(ASN1_BIT_STRING *a,unsigned char **pp);
799ASN1_BIT_STRING *c2i_ASN1_BIT_STRING(ASN1_BIT_STRING **a,const unsigned char **pp, 728ASN1_BIT_STRING *c2i_ASN1_BIT_STRING(ASN1_BIT_STRING **a,unsigned char **pp,
800 long length); 729 long length);
801int ASN1_BIT_STRING_set(ASN1_BIT_STRING *a, unsigned char *d, 730int ASN1_BIT_STRING_set(ASN1_BIT_STRING *a, unsigned char *d,
802 int length ); 731 int length );
@@ -812,13 +741,13 @@ int ASN1_BIT_STRING_set_asc(ASN1_BIT_STRING *bs, char *name, int value,
812 BIT_STRING_BITNAME *tbl); 741 BIT_STRING_BITNAME *tbl);
813 742
814int i2d_ASN1_BOOLEAN(int a,unsigned char **pp); 743int i2d_ASN1_BOOLEAN(int a,unsigned char **pp);
815int d2i_ASN1_BOOLEAN(int *a,const unsigned char **pp,long length); 744int d2i_ASN1_BOOLEAN(int *a,unsigned char **pp,long length);
816 745
817DECLARE_ASN1_FUNCTIONS(ASN1_INTEGER) 746DECLARE_ASN1_FUNCTIONS(ASN1_INTEGER)
818int i2c_ASN1_INTEGER(ASN1_INTEGER *a,unsigned char **pp); 747int i2c_ASN1_INTEGER(ASN1_INTEGER *a,unsigned char **pp);
819ASN1_INTEGER *c2i_ASN1_INTEGER(ASN1_INTEGER **a,const unsigned char **pp, 748ASN1_INTEGER *c2i_ASN1_INTEGER(ASN1_INTEGER **a,unsigned char **pp,
820 long length); 749 long length);
821ASN1_INTEGER *d2i_ASN1_UINTEGER(ASN1_INTEGER **a,const unsigned char **pp, 750ASN1_INTEGER *d2i_ASN1_UINTEGER(ASN1_INTEGER **a,unsigned char **pp,
822 long length); 751 long length);
823ASN1_INTEGER * ASN1_INTEGER_dup(ASN1_INTEGER *x); 752ASN1_INTEGER * ASN1_INTEGER_dup(ASN1_INTEGER *x);
824int ASN1_INTEGER_cmp(ASN1_INTEGER *x, ASN1_INTEGER *y); 753int ASN1_INTEGER_cmp(ASN1_INTEGER *x, ASN1_INTEGER *y);
@@ -827,7 +756,7 @@ DECLARE_ASN1_FUNCTIONS(ASN1_ENUMERATED)
827 756
828int ASN1_UTCTIME_check(ASN1_UTCTIME *a); 757int ASN1_UTCTIME_check(ASN1_UTCTIME *a);
829ASN1_UTCTIME *ASN1_UTCTIME_set(ASN1_UTCTIME *s,time_t t); 758ASN1_UTCTIME *ASN1_UTCTIME_set(ASN1_UTCTIME *s,time_t t);
830int ASN1_UTCTIME_set_string(ASN1_UTCTIME *s, const char *str); 759int ASN1_UTCTIME_set_string(ASN1_UTCTIME *s, char *str);
831int ASN1_UTCTIME_cmp_time_t(const ASN1_UTCTIME *s, time_t t); 760int ASN1_UTCTIME_cmp_time_t(const ASN1_UTCTIME *s, time_t t);
832#if 0 761#if 0
833time_t ASN1_UTCTIME_get(const ASN1_UTCTIME *s); 762time_t ASN1_UTCTIME_get(const ASN1_UTCTIME *s);
@@ -835,12 +764,12 @@ time_t ASN1_UTCTIME_get(const ASN1_UTCTIME *s);
835 764
836int ASN1_GENERALIZEDTIME_check(ASN1_GENERALIZEDTIME *a); 765int ASN1_GENERALIZEDTIME_check(ASN1_GENERALIZEDTIME *a);
837ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_set(ASN1_GENERALIZEDTIME *s,time_t t); 766ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_set(ASN1_GENERALIZEDTIME *s,time_t t);
838int ASN1_GENERALIZEDTIME_set_string(ASN1_GENERALIZEDTIME *s, const char *str); 767int ASN1_GENERALIZEDTIME_set_string(ASN1_GENERALIZEDTIME *s, char *str);
839 768
840DECLARE_ASN1_FUNCTIONS(ASN1_OCTET_STRING) 769DECLARE_ASN1_FUNCTIONS(ASN1_OCTET_STRING)
841ASN1_OCTET_STRING * ASN1_OCTET_STRING_dup(ASN1_OCTET_STRING *a); 770ASN1_OCTET_STRING * ASN1_OCTET_STRING_dup(ASN1_OCTET_STRING *a);
842int ASN1_OCTET_STRING_cmp(ASN1_OCTET_STRING *a, ASN1_OCTET_STRING *b); 771int ASN1_OCTET_STRING_cmp(ASN1_OCTET_STRING *a, ASN1_OCTET_STRING *b);
843int ASN1_OCTET_STRING_set(ASN1_OCTET_STRING *str, const unsigned char *data, int len); 772int ASN1_OCTET_STRING_set(ASN1_OCTET_STRING *str, unsigned char *data, int len);
844 773
845DECLARE_ASN1_FUNCTIONS(ASN1_VISIBLESTRING) 774DECLARE_ASN1_FUNCTIONS(ASN1_VISIBLESTRING)
846DECLARE_ASN1_FUNCTIONS(ASN1_UNIVERSALSTRING) 775DECLARE_ASN1_FUNCTIONS(ASN1_UNIVERSALSTRING)
@@ -863,17 +792,15 @@ DECLARE_ASN1_FUNCTIONS(ASN1_UTCTIME)
863DECLARE_ASN1_FUNCTIONS(ASN1_GENERALIZEDTIME) 792DECLARE_ASN1_FUNCTIONS(ASN1_GENERALIZEDTIME)
864DECLARE_ASN1_FUNCTIONS(ASN1_TIME) 793DECLARE_ASN1_FUNCTIONS(ASN1_TIME)
865 794
866DECLARE_ASN1_ITEM(ASN1_OCTET_STRING_NDEF)
867
868ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s,time_t t); 795ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s,time_t t);
869int ASN1_TIME_check(ASN1_TIME *t); 796int ASN1_TIME_check(ASN1_TIME *t);
870ASN1_GENERALIZEDTIME *ASN1_TIME_to_generalizedtime(ASN1_TIME *t, ASN1_GENERALIZEDTIME **out); 797ASN1_GENERALIZEDTIME *ASN1_TIME_to_generalizedtime(ASN1_TIME *t, ASN1_GENERALIZEDTIME **out);
871 798
872int i2d_ASN1_SET(STACK *a, unsigned char **pp, 799int i2d_ASN1_SET(STACK *a, unsigned char **pp,
873 i2d_of_void *i2d, int ex_tag, int ex_class, int is_set); 800 int (*func)(), int ex_tag, int ex_class, int is_set);
874STACK * d2i_ASN1_SET(STACK **a, const unsigned char **pp, long length, 801STACK * d2i_ASN1_SET(STACK **a, unsigned char **pp, long length,
875 d2i_of_void *d2i, void (*free_func)(void *), 802 char *(*func)(), void (*free_func)(void *),
876 int ex_tag, int ex_class); 803 int ex_tag, int ex_class);
877 804
878#ifndef OPENSSL_NO_BIO 805#ifndef OPENSSL_NO_BIO
879int i2a_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *a); 806int i2a_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *a);
@@ -905,70 +832,33 @@ BIGNUM *ASN1_ENUMERATED_to_BN(ASN1_ENUMERATED *ai,BIGNUM *bn);
905int ASN1_PRINTABLE_type(const unsigned char *s, int max); 832int ASN1_PRINTABLE_type(const unsigned char *s, int max);
906 833
907int i2d_ASN1_bytes(ASN1_STRING *a, unsigned char **pp, int tag, int xclass); 834int i2d_ASN1_bytes(ASN1_STRING *a, unsigned char **pp, int tag, int xclass);
908ASN1_STRING *d2i_ASN1_bytes(ASN1_STRING **a, const unsigned char **pp, 835ASN1_STRING *d2i_ASN1_bytes(ASN1_STRING **a, unsigned char **pp,
909 long length, int Ptag, int Pclass); 836 long length, int Ptag, int Pclass);
910unsigned long ASN1_tag2bit(int tag); 837unsigned long ASN1_tag2bit(int tag);
911/* type is one or more of the B_ASN1_ values. */ 838/* type is one or more of the B_ASN1_ values. */
912ASN1_STRING *d2i_ASN1_type_bytes(ASN1_STRING **a,const unsigned char **pp, 839ASN1_STRING *d2i_ASN1_type_bytes(ASN1_STRING **a,unsigned char **pp,
913 long length,int type); 840 long length,int type);
914 841
915/* PARSING */ 842/* PARSING */
916int asn1_Finish(ASN1_CTX *c); 843int asn1_Finish(ASN1_CTX *c);
917int asn1_const_Finish(ASN1_const_CTX *c);
918 844
919/* SPECIALS */ 845/* SPECIALS */
920int ASN1_get_object(const unsigned char **pp, long *plength, int *ptag, 846int ASN1_get_object(unsigned char **pp, long *plength, int *ptag,
921 int *pclass, long omax); 847 int *pclass, long omax);
922int ASN1_check_infinite_end(unsigned char **p,long len); 848int ASN1_check_infinite_end(unsigned char **p,long len);
923int ASN1_const_check_infinite_end(const unsigned char **p,long len);
924void ASN1_put_object(unsigned char **pp, int constructed, int length, 849void ASN1_put_object(unsigned char **pp, int constructed, int length,
925 int tag, int xclass); 850 int tag, int xclass);
926int ASN1_put_eoc(unsigned char **pp);
927int ASN1_object_size(int constructed, int length, int tag); 851int ASN1_object_size(int constructed, int length, int tag);
928 852
929/* Used to implement other functions */ 853/* Used to implement other functions */
930void *ASN1_dup(i2d_of_void *i2d, d2i_of_void *d2i, char *x); 854char *ASN1_dup(int (*i2d)(),char *(*d2i)(),char *x);
931
932#define ASN1_dup_of(type,i2d,d2i,x) \
933 ((type*)ASN1_dup(CHECKED_I2D_OF(type, i2d), \
934 CHECKED_D2I_OF(type, d2i), \
935 CHECKED_PTR_OF(type, x)))
936
937#define ASN1_dup_of_const(type,i2d,d2i,x) \
938 ((type*)ASN1_dup(CHECKED_I2D_OF(const type, i2d), \
939 CHECKED_D2I_OF(type, d2i), \
940 CHECKED_PTR_OF(const type, x)))
941 855
942void *ASN1_item_dup(const ASN1_ITEM *it, void *x); 856void *ASN1_item_dup(const ASN1_ITEM *it, void *x);
943 857
944/* ASN1 alloc/free macros for when a type is only used internally */
945
946#define M_ASN1_new_of(type) (type *)ASN1_item_new(ASN1_ITEM_rptr(type))
947#define M_ASN1_free_of(x, type) \
948 ASN1_item_free(CHECKED_PTR_OF(type, x), ASN1_ITEM_rptr(type))
949
950#ifndef OPENSSL_NO_FP_API 858#ifndef OPENSSL_NO_FP_API
951void *ASN1_d2i_fp(void *(*xnew)(void), d2i_of_void *d2i, FILE *in, void **x); 859char *ASN1_d2i_fp(char *(*xnew)(),char *(*d2i)(),FILE *fp,unsigned char **x);
952
953#define ASN1_d2i_fp_of(type,xnew,d2i,in,x) \
954 ((type*)ASN1_d2i_fp(CHECKED_NEW_OF(type, xnew), \
955 CHECKED_D2I_OF(type, d2i), \
956 in, \
957 CHECKED_PPTR_OF(type, x)))
958
959void *ASN1_item_d2i_fp(const ASN1_ITEM *it, FILE *in, void *x); 860void *ASN1_item_d2i_fp(const ASN1_ITEM *it, FILE *in, void *x);
960int ASN1_i2d_fp(i2d_of_void *i2d,FILE *out,void *x); 861int ASN1_i2d_fp(int (*i2d)(),FILE *out,unsigned char *x);
961
962#define ASN1_i2d_fp_of(type,i2d,out,x) \
963 (ASN1_i2d_fp(CHECKED_I2D_OF(type, i2d), \
964 out, \
965 CHECKED_PTR_OF(type, x)))
966
967#define ASN1_i2d_fp_of_const(type,i2d,out,x) \
968 (ASN1_i2d_fp(CHECKED_I2D_OF(const type, i2d), \
969 out, \
970 CHECKED_PTR_OF(const type, x)))
971
972int ASN1_item_i2d_fp(const ASN1_ITEM *it, FILE *out, void *x); 862int ASN1_item_i2d_fp(const ASN1_ITEM *it, FILE *out, void *x);
973int ASN1_STRING_print_ex_fp(FILE *fp, ASN1_STRING *str, unsigned long flags); 863int ASN1_STRING_print_ex_fp(FILE *fp, ASN1_STRING *str, unsigned long flags);
974#endif 864#endif
@@ -976,41 +866,23 @@ int ASN1_STRING_print_ex_fp(FILE *fp, ASN1_STRING *str, unsigned long flags);
976int ASN1_STRING_to_UTF8(unsigned char **out, ASN1_STRING *in); 866int ASN1_STRING_to_UTF8(unsigned char **out, ASN1_STRING *in);
977 867
978#ifndef OPENSSL_NO_BIO 868#ifndef OPENSSL_NO_BIO
979void *ASN1_d2i_bio(void *(*xnew)(void), d2i_of_void *d2i, BIO *in, void **x); 869char *ASN1_d2i_bio(char *(*xnew)(),char *(*d2i)(),BIO *bp,unsigned char **x);
980
981#define ASN1_d2i_bio_of(type,xnew,d2i,in,x) \
982 ((type*)ASN1_d2i_bio( CHECKED_NEW_OF(type, xnew), \
983 CHECKED_D2I_OF(type, d2i), \
984 in, \
985 CHECKED_PPTR_OF(type, x)))
986
987void *ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *x); 870void *ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *x);
988int ASN1_i2d_bio(i2d_of_void *i2d,BIO *out, unsigned char *x); 871int ASN1_i2d_bio(int (*i2d)(),BIO *out,unsigned char *x);
989
990#define ASN1_i2d_bio_of(type,i2d,out,x) \
991 (ASN1_i2d_bio(CHECKED_I2D_OF(type, i2d), \
992 out, \
993 CHECKED_PTR_OF(type, x)))
994
995#define ASN1_i2d_bio_of_const(type,i2d,out,x) \
996 (ASN1_i2d_bio(CHECKED_I2D_OF(const type, i2d), \
997 out, \
998 CHECKED_PTR_OF(const type, x)))
999
1000int ASN1_item_i2d_bio(const ASN1_ITEM *it, BIO *out, void *x); 872int ASN1_item_i2d_bio(const ASN1_ITEM *it, BIO *out, void *x);
1001int ASN1_UTCTIME_print(BIO *fp,ASN1_UTCTIME *a); 873int ASN1_UTCTIME_print(BIO *fp,ASN1_UTCTIME *a);
1002int ASN1_GENERALIZEDTIME_print(BIO *fp,ASN1_GENERALIZEDTIME *a); 874int ASN1_GENERALIZEDTIME_print(BIO *fp,ASN1_GENERALIZEDTIME *a);
1003int ASN1_TIME_print(BIO *fp,ASN1_TIME *a); 875int ASN1_TIME_print(BIO *fp,ASN1_TIME *a);
1004int ASN1_STRING_print(BIO *bp,ASN1_STRING *v); 876int ASN1_STRING_print(BIO *bp,ASN1_STRING *v);
1005int ASN1_STRING_print_ex(BIO *out, ASN1_STRING *str, unsigned long flags); 877int ASN1_STRING_print_ex(BIO *out, ASN1_STRING *str, unsigned long flags);
1006int ASN1_parse(BIO *bp,const unsigned char *pp,long len,int indent); 878int ASN1_parse(BIO *bp,unsigned char *pp,long len,int indent);
1007int ASN1_parse_dump(BIO *bp,const unsigned char *pp,long len,int indent,int dump); 879int ASN1_parse_dump(BIO *bp,unsigned char *pp,long len,int indent,int dump);
1008#endif 880#endif
1009const char *ASN1_tag2str(int tag); 881const char *ASN1_tag2str(int tag);
1010 882
1011/* Used to load and write netscape format cert/key */ 883/* Used to load and write netscape format cert/key */
1012int i2d_ASN1_HEADER(ASN1_HEADER *a,unsigned char **pp); 884int i2d_ASN1_HEADER(ASN1_HEADER *a,unsigned char **pp);
1013ASN1_HEADER *d2i_ASN1_HEADER(ASN1_HEADER **a,const unsigned char **pp, long length); 885ASN1_HEADER *d2i_ASN1_HEADER(ASN1_HEADER **a,unsigned char **pp, long length);
1014ASN1_HEADER *ASN1_HEADER_new(void ); 886ASN1_HEADER *ASN1_HEADER_new(void );
1015void ASN1_HEADER_free(ASN1_HEADER *a); 887void ASN1_HEADER_free(ASN1_HEADER *a);
1016 888
@@ -1031,20 +903,13 @@ int ASN1_TYPE_set_int_octetstring(ASN1_TYPE *a, long num,
1031int ASN1_TYPE_get_int_octetstring(ASN1_TYPE *a,long *num, 903int ASN1_TYPE_get_int_octetstring(ASN1_TYPE *a,long *num,
1032 unsigned char *data, int max_len); 904 unsigned char *data, int max_len);
1033 905
1034STACK *ASN1_seq_unpack(const unsigned char *buf, int len, 906STACK *ASN1_seq_unpack(unsigned char *buf, int len, char *(*d2i)(),
1035 d2i_of_void *d2i, void (*free_func)(void *)); 907 void (*free_func)(void *) );
1036unsigned char *ASN1_seq_pack(STACK *safes, i2d_of_void *i2d, 908unsigned char *ASN1_seq_pack(STACK *safes, int (*i2d)(), unsigned char **buf,
1037 unsigned char **buf, int *len ); 909 int *len );
1038void *ASN1_unpack_string(ASN1_STRING *oct, d2i_of_void *d2i); 910void *ASN1_unpack_string(ASN1_STRING *oct, char *(*d2i)());
1039void *ASN1_item_unpack(ASN1_STRING *oct, const ASN1_ITEM *it); 911void *ASN1_item_unpack(ASN1_STRING *oct, const ASN1_ITEM *it);
1040ASN1_STRING *ASN1_pack_string(void *obj, i2d_of_void *i2d, 912ASN1_STRING *ASN1_pack_string(void *obj, int (*i2d)(), ASN1_OCTET_STRING **oct);
1041 ASN1_OCTET_STRING **oct);
1042
1043#define ASN1_pack_string_of(type,obj,i2d,oct) \
1044 (ASN1_pack_string(CHECKED_PTR_OF(type, obj), \
1045 CHECKED_I2D_OF(type, i2d), \
1046 oct))
1047
1048ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct); 913ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct);
1049 914
1050void ASN1_STRING_set_default_mask(unsigned long mask); 915void ASN1_STRING_set_default_mask(unsigned long mask);
@@ -1067,25 +932,11 @@ void ASN1_STRING_TABLE_cleanup(void);
1067/* Old API compatible functions */ 932/* Old API compatible functions */
1068ASN1_VALUE *ASN1_item_new(const ASN1_ITEM *it); 933ASN1_VALUE *ASN1_item_new(const ASN1_ITEM *it);
1069void ASN1_item_free(ASN1_VALUE *val, const ASN1_ITEM *it); 934void ASN1_item_free(ASN1_VALUE *val, const ASN1_ITEM *it);
1070ASN1_VALUE * ASN1_item_d2i(ASN1_VALUE **val, const unsigned char **in, long len, const ASN1_ITEM *it); 935ASN1_VALUE * ASN1_item_d2i(ASN1_VALUE **val, unsigned char **in, long len, const ASN1_ITEM *it);
1071int ASN1_item_i2d(ASN1_VALUE *val, unsigned char **out, const ASN1_ITEM *it); 936int ASN1_item_i2d(ASN1_VALUE *val, unsigned char **out, const ASN1_ITEM *it);
1072int ASN1_item_ndef_i2d(ASN1_VALUE *val, unsigned char **out, const ASN1_ITEM *it);
1073 937
1074void ASN1_add_oid_module(void); 938void ASN1_add_oid_module(void);
1075 939
1076ASN1_TYPE *ASN1_generate_nconf(char *str, CONF *nconf);
1077ASN1_TYPE *ASN1_generate_v3(char *str, X509V3_CTX *cnf);
1078
1079typedef int asn1_output_data_fn(BIO *out, BIO *data, ASN1_VALUE *val, int flags,
1080 const ASN1_ITEM *it);
1081
1082int int_smime_write_ASN1(BIO *bio, ASN1_VALUE *val, BIO *data, int flags,
1083 int ctype_nid, int econt_nid,
1084 STACK_OF(X509_ALGOR) *mdalgs,
1085 asn1_output_data_fn *data_fn,
1086 const ASN1_ITEM *it);
1087ASN1_VALUE *SMIME_read_ASN1(BIO *bio, BIO **bcont, const ASN1_ITEM *it);
1088
1089/* BEGIN ERROR CODES */ 940/* BEGIN ERROR CODES */
1090/* The following lines are auto generated by the script mkerr.pl. Any changes 941/* The following lines are auto generated by the script mkerr.pl. Any changes
1091 * made after this point may be overwritten when the script is next run. 942 * made after this point may be overwritten when the script is next run.
@@ -1099,70 +950,49 @@ void ERR_load_ASN1_strings(void);
1099#define ASN1_F_A2I_ASN1_ENUMERATED 101 950#define ASN1_F_A2I_ASN1_ENUMERATED 101
1100#define ASN1_F_A2I_ASN1_INTEGER 102 951#define ASN1_F_A2I_ASN1_INTEGER 102
1101#define ASN1_F_A2I_ASN1_STRING 103 952#define ASN1_F_A2I_ASN1_STRING 103
1102#define ASN1_F_APPEND_EXP 176 953#define ASN1_F_ASN1_BIT_STRING_SET_BIT 176
1103#define ASN1_F_ASN1_BIT_STRING_SET_BIT 183
1104#define ASN1_F_ASN1_CB 177
1105#define ASN1_F_ASN1_CHECK_TLEN 104 954#define ASN1_F_ASN1_CHECK_TLEN 104
1106#define ASN1_F_ASN1_COLLATE_PRIMITIVE 105 955#define ASN1_F_ASN1_COLLATE_PRIMITIVE 105
1107#define ASN1_F_ASN1_COLLECT 106 956#define ASN1_F_ASN1_COLLECT 106
957#define ASN1_F_ASN1_D2I_BIO 107
1108#define ASN1_F_ASN1_D2I_EX_PRIMITIVE 108 958#define ASN1_F_ASN1_D2I_EX_PRIMITIVE 108
1109#define ASN1_F_ASN1_D2I_FP 109 959#define ASN1_F_ASN1_D2I_FP 109
1110#define ASN1_F_ASN1_D2I_READ_BIO 107 960#define ASN1_F_ASN1_DIGEST 177
1111#define ASN1_F_ASN1_DIGEST 184
1112#define ASN1_F_ASN1_DO_ADB 110 961#define ASN1_F_ASN1_DO_ADB 110
1113#define ASN1_F_ASN1_DUP 111 962#define ASN1_F_ASN1_DUP 111
1114#define ASN1_F_ASN1_ENUMERATED_SET 112 963#define ASN1_F_ASN1_ENUMERATED_SET 112
1115#define ASN1_F_ASN1_ENUMERATED_TO_BN 113 964#define ASN1_F_ASN1_ENUMERATED_TO_BN 113
1116#define ASN1_F_ASN1_EX_C2I 204 965#define ASN1_F_ASN1_FIND_END 182
1117#define ASN1_F_ASN1_FIND_END 190 966#define ASN1_F_ASN1_GENERALIZEDTIME_SET 178
1118#define ASN1_F_ASN1_GENERALIZEDTIME_SET 185
1119#define ASN1_F_ASN1_GENERATE_V3 178
1120#define ASN1_F_ASN1_GET_OBJECT 114 967#define ASN1_F_ASN1_GET_OBJECT 114
1121#define ASN1_F_ASN1_HEADER_NEW 115 968#define ASN1_F_ASN1_HEADER_NEW 115
1122#define ASN1_F_ASN1_I2D_BIO 116 969#define ASN1_F_ASN1_I2D_BIO 116
1123#define ASN1_F_ASN1_I2D_FP 117 970#define ASN1_F_ASN1_I2D_FP 117
1124#define ASN1_F_ASN1_INTEGER_SET 118 971#define ASN1_F_ASN1_INTEGER_SET 118
1125#define ASN1_F_ASN1_INTEGER_TO_BN 119 972#define ASN1_F_ASN1_INTEGER_TO_BN 119
1126#define ASN1_F_ASN1_ITEM_D2I_FP 206
1127#define ASN1_F_ASN1_ITEM_DUP 191
1128#define ASN1_F_ASN1_ITEM_EX_COMBINE_NEW 121
1129#define ASN1_F_ASN1_ITEM_EX_D2I 120 973#define ASN1_F_ASN1_ITEM_EX_D2I 120
1130#define ASN1_F_ASN1_ITEM_I2D_BIO 192 974#define ASN1_F_ASN1_ITEM_NEW 121
1131#define ASN1_F_ASN1_ITEM_I2D_FP 193 975#define ASN1_F_ASN1_MBSTRING_COPY 122
1132#define ASN1_F_ASN1_ITEM_PACK 198
1133#define ASN1_F_ASN1_ITEM_SIGN 195
1134#define ASN1_F_ASN1_ITEM_UNPACK 199
1135#define ASN1_F_ASN1_ITEM_VERIFY 197
1136#define ASN1_F_ASN1_MBSTRING_NCOPY 122
1137#define ASN1_F_ASN1_OBJECT_NEW 123 976#define ASN1_F_ASN1_OBJECT_NEW 123
1138#define ASN1_F_ASN1_OUTPUT_DATA 207
1139#define ASN1_F_ASN1_PACK_STRING 124 977#define ASN1_F_ASN1_PACK_STRING 124
1140#define ASN1_F_ASN1_PCTX_NEW 205 978#define ASN1_F_ASN1_PBE_SET 125
1141#define ASN1_F_ASN1_PKCS5_PBE_SET 125
1142#define ASN1_F_ASN1_SEQ_PACK 126 979#define ASN1_F_ASN1_SEQ_PACK 126
1143#define ASN1_F_ASN1_SEQ_UNPACK 127 980#define ASN1_F_ASN1_SEQ_UNPACK 127
1144#define ASN1_F_ASN1_SIGN 128 981#define ASN1_F_ASN1_SIGN 128
1145#define ASN1_F_ASN1_STR2TYPE 179 982#define ASN1_F_ASN1_STRING_SET 179
1146#define ASN1_F_ASN1_STRING_SET 186
1147#define ASN1_F_ASN1_STRING_TABLE_ADD 129 983#define ASN1_F_ASN1_STRING_TABLE_ADD 129
1148#define ASN1_F_ASN1_STRING_TYPE_NEW 130 984#define ASN1_F_ASN1_STRING_TYPE_NEW 130
985#define ASN1_F_ASN1_TEMPLATE_D2I 131
1149#define ASN1_F_ASN1_TEMPLATE_EX_D2I 132 986#define ASN1_F_ASN1_TEMPLATE_EX_D2I 132
1150#define ASN1_F_ASN1_TEMPLATE_NEW 133 987#define ASN1_F_ASN1_TEMPLATE_NEW 133
1151#define ASN1_F_ASN1_TEMPLATE_NOEXP_D2I 131
1152#define ASN1_F_ASN1_TIME_SET 175 988#define ASN1_F_ASN1_TIME_SET 175
1153#define ASN1_F_ASN1_TYPE_GET_INT_OCTETSTRING 134 989#define ASN1_F_ASN1_TYPE_GET_INT_OCTETSTRING 134
1154#define ASN1_F_ASN1_TYPE_GET_OCTETSTRING 135 990#define ASN1_F_ASN1_TYPE_GET_OCTETSTRING 135
1155#define ASN1_F_ASN1_UNPACK_STRING 136 991#define ASN1_F_ASN1_UNPACK_STRING 136
1156#define ASN1_F_ASN1_UTCTIME_SET 187 992#define ASN1_F_ASN1_UTCTIME_SET 180
1157#define ASN1_F_ASN1_VERIFY 137 993#define ASN1_F_ASN1_VERIFY 137
1158#define ASN1_F_B64_READ_ASN1 208
1159#define ASN1_F_B64_WRITE_ASN1 209
1160#define ASN1_F_BITSTR_CB 180
1161#define ASN1_F_BN_TO_ASN1_ENUMERATED 138 994#define ASN1_F_BN_TO_ASN1_ENUMERATED 138
1162#define ASN1_F_BN_TO_ASN1_INTEGER 139 995#define ASN1_F_BN_TO_ASN1_INTEGER 139
1163#define ASN1_F_C2I_ASN1_BIT_STRING 189
1164#define ASN1_F_C2I_ASN1_INTEGER 194
1165#define ASN1_F_C2I_ASN1_OBJECT 196
1166#define ASN1_F_COLLECT_DATA 140 996#define ASN1_F_COLLECT_DATA 140
1167#define ASN1_F_D2I_ASN1_BIT_STRING 141 997#define ASN1_F_D2I_ASN1_BIT_STRING 141
1168#define ASN1_F_D2I_ASN1_BOOLEAN 142 998#define ASN1_F_D2I_ASN1_BOOLEAN 142
@@ -1179,39 +1009,29 @@ void ERR_load_ASN1_strings(void);
1179#define ASN1_F_D2I_NETSCAPE_RSA_2 153 1009#define ASN1_F_D2I_NETSCAPE_RSA_2 153
1180#define ASN1_F_D2I_PRIVATEKEY 154 1010#define ASN1_F_D2I_PRIVATEKEY 154
1181#define ASN1_F_D2I_PUBLICKEY 155 1011#define ASN1_F_D2I_PUBLICKEY 155
1182#define ASN1_F_D2I_RSA_NET 200
1183#define ASN1_F_D2I_RSA_NET_2 201
1184#define ASN1_F_D2I_X509 156 1012#define ASN1_F_D2I_X509 156
1185#define ASN1_F_D2I_X509_CINF 157 1013#define ASN1_F_D2I_X509_CINF 157
1014#define ASN1_F_D2I_X509_NAME 158
1186#define ASN1_F_D2I_X509_PKEY 159 1015#define ASN1_F_D2I_X509_PKEY 159
1187#define ASN1_F_I2D_ASN1_SET 188 1016#define ASN1_F_I2D_ASN1_SET 181
1188#define ASN1_F_I2D_ASN1_TIME 160 1017#define ASN1_F_I2D_ASN1_TIME 160
1189#define ASN1_F_I2D_DSA_PUBKEY 161 1018#define ASN1_F_I2D_DSA_PUBKEY 161
1190#define ASN1_F_I2D_EC_PUBKEY 181 1019#define ASN1_F_I2D_NETSCAPE_RSA 162
1191#define ASN1_F_I2D_PRIVATEKEY 163 1020#define ASN1_F_I2D_PRIVATEKEY 163
1192#define ASN1_F_I2D_PUBLICKEY 164 1021#define ASN1_F_I2D_PUBLICKEY 164
1193#define ASN1_F_I2D_RSA_NET 162
1194#define ASN1_F_I2D_RSA_PUBKEY 165 1022#define ASN1_F_I2D_RSA_PUBKEY 165
1195#define ASN1_F_LONG_C2I 166 1023#define ASN1_F_LONG_C2I 166
1196#define ASN1_F_OID_MODULE_INIT 174 1024#define ASN1_F_OID_MODULE_INIT 174
1197#define ASN1_F_PARSE_TAGGING 182
1198#define ASN1_F_PKCS5_PBE2_SET 167 1025#define ASN1_F_PKCS5_PBE2_SET 167
1199#define ASN1_F_PKCS5_PBE_SET 202
1200#define ASN1_F_SMIME_READ_ASN1 210
1201#define ASN1_F_SMIME_TEXT 211
1202#define ASN1_F_X509_CINF_NEW 168 1026#define ASN1_F_X509_CINF_NEW 168
1203#define ASN1_F_X509_CRL_ADD0_REVOKED 169 1027#define ASN1_F_X509_CRL_ADD0_REVOKED 169
1204#define ASN1_F_X509_INFO_NEW 170 1028#define ASN1_F_X509_INFO_NEW 170
1205#define ASN1_F_X509_NAME_ENCODE 203 1029#define ASN1_F_X509_NAME_NEW 171
1206#define ASN1_F_X509_NAME_EX_D2I 158
1207#define ASN1_F_X509_NAME_EX_NEW 171
1208#define ASN1_F_X509_NEW 172 1030#define ASN1_F_X509_NEW 172
1209#define ASN1_F_X509_PKEY_NEW 173 1031#define ASN1_F_X509_PKEY_NEW 173
1210 1032
1211/* Reason codes. */ 1033/* Reason codes. */
1212#define ASN1_R_ADDING_OBJECT 171 1034#define ASN1_R_ADDING_OBJECT 171
1213#define ASN1_R_ASN1_PARSE_ERROR 198
1214#define ASN1_R_ASN1_SIG_PARSE_ERROR 199
1215#define ASN1_R_AUX_ERROR 100 1035#define ASN1_R_AUX_ERROR 100
1216#define ASN1_R_BAD_CLASS 101 1036#define ASN1_R_BAD_CLASS 101
1217#define ASN1_R_BAD_OBJECT_HEADER 102 1037#define ASN1_R_BAD_OBJECT_HEADER 102
@@ -1224,7 +1044,6 @@ void ERR_load_ASN1_strings(void);
1224#define ASN1_R_DATA_IS_WRONG 109 1044#define ASN1_R_DATA_IS_WRONG 109
1225#define ASN1_R_DECODE_ERROR 110 1045#define ASN1_R_DECODE_ERROR 110
1226#define ASN1_R_DECODING_ERROR 111 1046#define ASN1_R_DECODING_ERROR 111
1227#define ASN1_R_DEPTH_EXCEEDED 174
1228#define ASN1_R_ENCODE_ERROR 112 1047#define ASN1_R_ENCODE_ERROR 112
1229#define ASN1_R_ERROR_GETTING_TIME 173 1048#define ASN1_R_ERROR_GETTING_TIME 173
1230#define ASN1_R_ERROR_LOADING_SECTION 172 1049#define ASN1_R_ERROR_LOADING_SECTION 172
@@ -1239,68 +1058,39 @@ void ERR_load_ASN1_strings(void);
1239#define ASN1_R_FIELD_MISSING 121 1058#define ASN1_R_FIELD_MISSING 121
1240#define ASN1_R_FIRST_NUM_TOO_LARGE 122 1059#define ASN1_R_FIRST_NUM_TOO_LARGE 122
1241#define ASN1_R_HEADER_TOO_LONG 123 1060#define ASN1_R_HEADER_TOO_LONG 123
1242#define ASN1_R_ILLEGAL_BITSTRING_FORMAT 175
1243#define ASN1_R_ILLEGAL_BOOLEAN 176
1244#define ASN1_R_ILLEGAL_CHARACTERS 124 1061#define ASN1_R_ILLEGAL_CHARACTERS 124
1245#define ASN1_R_ILLEGAL_FORMAT 177
1246#define ASN1_R_ILLEGAL_HEX 178
1247#define ASN1_R_ILLEGAL_IMPLICIT_TAG 179
1248#define ASN1_R_ILLEGAL_INTEGER 180
1249#define ASN1_R_ILLEGAL_NESTED_TAGGING 181
1250#define ASN1_R_ILLEGAL_NULL 125 1062#define ASN1_R_ILLEGAL_NULL 125
1251#define ASN1_R_ILLEGAL_NULL_VALUE 182
1252#define ASN1_R_ILLEGAL_OBJECT 183
1253#define ASN1_R_ILLEGAL_OPTIONAL_ANY 126 1063#define ASN1_R_ILLEGAL_OPTIONAL_ANY 126
1254#define ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE 170 1064#define ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE 170
1255#define ASN1_R_ILLEGAL_TAGGED_ANY 127 1065#define ASN1_R_ILLEGAL_TAGGED_ANY 127
1256#define ASN1_R_ILLEGAL_TIME_VALUE 184
1257#define ASN1_R_INTEGER_NOT_ASCII_FORMAT 185
1258#define ASN1_R_INTEGER_TOO_LARGE_FOR_LONG 128 1066#define ASN1_R_INTEGER_TOO_LARGE_FOR_LONG 128
1259#define ASN1_R_INVALID_BMPSTRING_LENGTH 129 1067#define ASN1_R_INVALID_BMPSTRING_LENGTH 129
1260#define ASN1_R_INVALID_DIGIT 130 1068#define ASN1_R_INVALID_DIGIT 130
1261#define ASN1_R_INVALID_MIME_TYPE 200
1262#define ASN1_R_INVALID_MODIFIER 186
1263#define ASN1_R_INVALID_NUMBER 187
1264#define ASN1_R_INVALID_SEPARATOR 131 1069#define ASN1_R_INVALID_SEPARATOR 131
1265#define ASN1_R_INVALID_TIME_FORMAT 132 1070#define ASN1_R_INVALID_TIME_FORMAT 132
1266#define ASN1_R_INVALID_UNIVERSALSTRING_LENGTH 133 1071#define ASN1_R_INVALID_UNIVERSALSTRING_LENGTH 133
1267#define ASN1_R_INVALID_UTF8STRING 134 1072#define ASN1_R_INVALID_UTF8STRING 134
1268#define ASN1_R_IV_TOO_LARGE 135 1073#define ASN1_R_IV_TOO_LARGE 135
1269#define ASN1_R_LENGTH_ERROR 136 1074#define ASN1_R_LENGTH_ERROR 136
1270#define ASN1_R_LIST_ERROR 188
1271#define ASN1_R_MIME_NO_CONTENT_TYPE 201
1272#define ASN1_R_MIME_PARSE_ERROR 202
1273#define ASN1_R_MIME_SIG_PARSE_ERROR 203
1274#define ASN1_R_MISSING_EOC 137 1075#define ASN1_R_MISSING_EOC 137
1275#define ASN1_R_MISSING_SECOND_NUMBER 138 1076#define ASN1_R_MISSING_SECOND_NUMBER 138
1276#define ASN1_R_MISSING_VALUE 189
1277#define ASN1_R_MSTRING_NOT_UNIVERSAL 139 1077#define ASN1_R_MSTRING_NOT_UNIVERSAL 139
1278#define ASN1_R_MSTRING_WRONG_TAG 140 1078#define ASN1_R_MSTRING_WRONG_TAG 140
1279#define ASN1_R_NESTED_ASN1_STRING 197 1079#define ASN1_R_NESTED_ASN1_STRING 174
1280#define ASN1_R_NON_HEX_CHARACTERS 141 1080#define ASN1_R_NON_HEX_CHARACTERS 141
1281#define ASN1_R_NOT_ASCII_FORMAT 190
1282#define ASN1_R_NOT_ENOUGH_DATA 142 1081#define ASN1_R_NOT_ENOUGH_DATA 142
1283#define ASN1_R_NO_CONTENT_TYPE 204
1284#define ASN1_R_NO_MATCHING_CHOICE_TYPE 143 1082#define ASN1_R_NO_MATCHING_CHOICE_TYPE 143
1285#define ASN1_R_NO_MULTIPART_BODY_FAILURE 205
1286#define ASN1_R_NO_MULTIPART_BOUNDARY 206
1287#define ASN1_R_NO_SIG_CONTENT_TYPE 207
1288#define ASN1_R_NULL_IS_WRONG_LENGTH 144 1083#define ASN1_R_NULL_IS_WRONG_LENGTH 144
1289#define ASN1_R_OBJECT_NOT_ASCII_FORMAT 191
1290#define ASN1_R_ODD_NUMBER_OF_CHARS 145 1084#define ASN1_R_ODD_NUMBER_OF_CHARS 145
1291#define ASN1_R_PRIVATE_KEY_HEADER_MISSING 146 1085#define ASN1_R_PRIVATE_KEY_HEADER_MISSING 146
1292#define ASN1_R_SECOND_NUMBER_TOO_LARGE 147 1086#define ASN1_R_SECOND_NUMBER_TOO_LARGE 147
1293#define ASN1_R_SEQUENCE_LENGTH_MISMATCH 148 1087#define ASN1_R_SEQUENCE_LENGTH_MISMATCH 148
1294#define ASN1_R_SEQUENCE_NOT_CONSTRUCTED 149 1088#define ASN1_R_SEQUENCE_NOT_CONSTRUCTED 149
1295#define ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG 192
1296#define ASN1_R_SHORT_LINE 150 1089#define ASN1_R_SHORT_LINE 150
1297#define ASN1_R_SIG_INVALID_MIME_TYPE 208
1298#define ASN1_R_STREAMING_NOT_SUPPORTED 209
1299#define ASN1_R_STRING_TOO_LONG 151 1090#define ASN1_R_STRING_TOO_LONG 151
1300#define ASN1_R_STRING_TOO_SHORT 152 1091#define ASN1_R_STRING_TOO_SHORT 152
1301#define ASN1_R_TAG_VALUE_TOO_HIGH 153 1092#define ASN1_R_TAG_VALUE_TOO_HIGH 153
1302#define ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD 154 1093#define ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD 154
1303#define ASN1_R_TIME_NOT_ASCII_FORMAT 193
1304#define ASN1_R_TOO_LONG 155 1094#define ASN1_R_TOO_LONG 155
1305#define ASN1_R_TYPE_NOT_CONSTRUCTED 156 1095#define ASN1_R_TYPE_NOT_CONSTRUCTED 156
1306#define ASN1_R_UNABLE_TO_DECODE_RSA_KEY 157 1096#define ASN1_R_UNABLE_TO_DECODE_RSA_KEY 157
@@ -1310,13 +1100,10 @@ void ERR_load_ASN1_strings(void);
1310#define ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM 161 1100#define ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM 161
1311#define ASN1_R_UNKNOWN_OBJECT_TYPE 162 1101#define ASN1_R_UNKNOWN_OBJECT_TYPE 162
1312#define ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE 163 1102#define ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE 163
1313#define ASN1_R_UNKNOWN_TAG 194
1314#define ASN1_R_UNKOWN_FORMAT 195
1315#define ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE 164 1103#define ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE 164
1316#define ASN1_R_UNSUPPORTED_CIPHER 165 1104#define ASN1_R_UNSUPPORTED_CIPHER 165
1317#define ASN1_R_UNSUPPORTED_ENCRYPTION_ALGORITHM 166 1105#define ASN1_R_UNSUPPORTED_ENCRYPTION_ALGORITHM 166
1318#define ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE 167 1106#define ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE 167
1319#define ASN1_R_UNSUPPORTED_TYPE 196
1320#define ASN1_R_WRONG_TAG 168 1107#define ASN1_R_WRONG_TAG 168
1321#define ASN1_R_WRONG_TYPE 169 1108#define ASN1_R_WRONG_TYPE 169
1322 1109