More X509_ATTRIBUTE changes.
[openssl.git] / crypto / asn1 / asn1.h
index d36e868e901c5b899c853206d6773e87ed63d58d..cebbcd37375277dce67cb8b0b3c1a53c18e3e751 100644 (file)
@@ -212,6 +212,10 @@ typedef struct asn1_string_st
        } ASN1_STRING;
 
 #define STABLE_FLAGS_MALLOC    0x01
+#define STABLE_NO_MASK         0x02
+#define DIRSTRING_TYPE \
+ (B_ASN1_PRINTABLESTRING|B_ASN1_T61STRING|B_ASN1_BMPSTRING|B_ASN1_UTF8STRING)
+#define PKCS9STRING_TYPE (DIRSTRING_TYPE|B_ASN1_IA5STRING)
 
 typedef struct asn1_string_table_st {
        int nid;
@@ -268,6 +272,8 @@ typedef struct asn1_string_st ASN1_VISIBLESTRING;
 typedef struct asn1_string_st ASN1_UTF8STRING;
 #endif
 
+typedef int ASN1_NULL;
+
 typedef struct asn1_type_st
        {
        int type;
@@ -599,6 +605,11 @@ int                i2d_ASN1_UTF8STRING(ASN1_UTF8STRING *a,unsigned char **pp);
 ASN1_UTF8STRING *d2i_ASN1_UTF8STRING(ASN1_UTF8STRING **a,
                        unsigned char **pp,long length);
 
+ASN1_NULL *    ASN1_NULL_new(void);
+void           ASN1_NULL_free(ASN1_NULL *a);
+int            i2d_ASN1_NULL(ASN1_NULL *a,unsigned char **pp);
+ASN1_NULL *d2i_ASN1_NULL(ASN1_NULL **a, unsigned char **pp,long length);
+
 ASN1_BMPSTRING *       ASN1_BMPSTRING_new(void);
 void           ASN1_BMPSTRING_free(ASN1_BMPSTRING *a);
 int i2d_ASN1_BMPSTRING(ASN1_BMPSTRING *a, unsigned char **pp);
@@ -617,6 +628,7 @@ ASN1_PRINTABLESTRING *      ASN1_PRINTABLESTRING_new(void);
 void           ASN1_PRINTABLESTRING_free(ASN1_PRINTABLESTRING *a);
 ASN1_PRINTABLESTRING *d2i_ASN1_PRINTABLESTRING(ASN1_PRINTABLESTRING **a,
        unsigned char **pp, long l);
+int i2d_ASN1_PRINTABLESTRING(ASN1_PRINTABLESTRING *a, unsigned char **pp);
 
 ASN1_STRING *  DIRECTORYSTRING_new(void);
 void           DIRECTORYSTRING_free(ASN1_STRING *a);
@@ -773,7 +785,6 @@ int ASN1_mbstring_ncopy(ASN1_STRING **out, const unsigned char *in, int len,
 
 ASN1_STRING *ASN1_STRING_set_by_NID(ASN1_STRING **out, 
                const unsigned char *in, int inlen, int inform, int nid);
-int ASN1_STRING_TABLE_add_standard(void);
 ASN1_STRING_TABLE *ASN1_STRING_TABLE_get(int nid);
 void ASN1_STRING_TABLE_cleanup(void);
 
@@ -812,7 +823,6 @@ void ASN1_STRING_TABLE_cleanup(void);
 #define ASN1_F_ASN1_SIGN                                114
 #define ASN1_F_ASN1_STRING_NEW                          115
 #define ASN1_F_ASN1_STRING_TABLE_ADD                    283
-#define ASN1_F_ASN1_STRING_TABLE_ADD_STANDARD           284
 #define ASN1_F_ASN1_STRING_TYPE_NEW                     116
 #define ASN1_F_ASN1_TYPE_GET_INT_OCTETSTRING            117
 #define ASN1_F_ASN1_TYPE_GET_OCTETSTRING                118
@@ -824,7 +834,7 @@ void ASN1_STRING_TABLE_cleanup(void);
 #define ASN1_F_BASIC_CONSTRAINTS_NEW                    226
 #define ASN1_F_BN_TO_ASN1_ENUMERATED                    234
 #define ASN1_F_BN_TO_ASN1_INTEGER                       122
-#define ASN1_F_D2I_ACCESS_DESCRIPTION                   292
+#define ASN1_F_D2I_ACCESS_DESCRIPTION                   284
 #define ASN1_F_D2I_ASN1_BIT_STRING                      123
 #define ASN1_F_D2I_ASN1_BMPSTRING                       124
 #define ASN1_F_D2I_ASN1_BOOLEAN                                 125
@@ -833,6 +843,7 @@ void ASN1_STRING_TABLE_cleanup(void);
 #define ASN1_F_D2I_ASN1_GENERALIZEDTIME                         223
 #define ASN1_F_D2I_ASN1_HEADER                          127
 #define ASN1_F_D2I_ASN1_INTEGER                                 128
+#define ASN1_F_D2I_ASN1_NULL                            292
 #define ASN1_F_D2I_ASN1_OBJECT                          129
 #define ASN1_F_D2I_ASN1_OCTET_STRING                    130
 #define ASN1_F_D2I_ASN1_PRINT_TYPE                      131
@@ -990,6 +1001,7 @@ void ASN1_STRING_TABLE_cleanup(void);
 #define ASN1_R_BN_LIB                                   107
 #define ASN1_R_BOOLEAN_IS_WRONG_LENGTH                  108
 #define ASN1_R_BUFFER_TOO_SMALL                                 109
+#define ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER          166
 #define ASN1_R_DATA_IS_WRONG                            110
 #define ASN1_R_DECODE_ERROR                             155
 #define ASN1_R_DECODING_ERROR                           111
@@ -1003,6 +1015,7 @@ void ASN1_STRING_TABLE_cleanup(void);
 #define ASN1_R_EXPECTING_A_BIT_STRING                   116
 #define ASN1_R_EXPECTING_A_BOOLEAN                      117
 #define ASN1_R_EXPECTING_A_GENERALIZEDTIME              151
+#define ASN1_R_EXPECTING_A_NULL                                 164
 #define ASN1_R_EXPECTING_A_TIME                                 152
 #define ASN1_R_EXPECTING_A_UTCTIME                      118
 #define ASN1_R_FIRST_NUM_TOO_LARGE                      119
@@ -1020,6 +1033,7 @@ void ASN1_STRING_TABLE_cleanup(void);
 #define ASN1_R_MISSING_SECOND_NUMBER                    126
 #define ASN1_R_NON_HEX_CHARACTERS                       127
 #define ASN1_R_NOT_ENOUGH_DATA                          128
+#define ASN1_R_NULL_IS_WRONG_LENGTH                     165
 #define ASN1_R_ODD_NUMBER_OF_CHARS                      129
 #define ASN1_R_PARSING                                  130
 #define ASN1_R_PRIVATE_KEY_HEADER_MISSING               131