Initial support for Certificate Policies extension: print out works but setting
[oweals/openssl.git] / crypto / asn1 / asn1.h
index 2ea7bc4bcf9a6122d151b274861e79a7c52ddd32..04174cdedba706236cbe9dc050197c89caab25a7 100644 (file)
@@ -150,7 +150,7 @@ typedef struct asn1_ctx_st
 #define ASN1_OBJECT_FLAG_DYNAMIC_DATA   0x08   /* internal use */
 typedef struct asn1_object_st
        {
-       char *sn,*ln;
+       const char *sn,*ln;
        int nid;
        int length;
        unsigned char *data;
@@ -315,6 +315,28 @@ typedef struct asn1_header_st
                        B_ASN1_BMPSTRING|\
                        B_ASN1_UNKNOWN)
 
+#define DIRECTORYSTRING_new() ASN1_STRING_type_new(V_ASN1_PRINTABLESTRING)
+#define DIRECTORYSTRING_free(a)        ASN1_STRING_free((ASN1_STRING *)a)
+#define M_i2d_DIRECTORYSTRING(a,pp) i2d_ASN1_bytes((ASN1_STRING *)a,\
+                                               pp,a->type,V_ASN1_UNIVERSAL)
+#define M_d2i_DIRECTORYSTRING(a,pp,l) \
+               d2i_ASN1_type_bytes((ASN1_STRING **)a,pp,l, \
+                       B_ASN1_PRINTABLESTRING| \
+                       B_ASN1_TELETEXSTRING|\
+                       B_ASN1_BMPSTRING|\
+                       B_ASN1_UNIVERSALSTRING|\
+                       B_ASN1_UTF8STRING)
+
+#define DISPLAYTEXT_new() ASN1_STRING_type_new(V_ASN1_VISIBLESTRING)
+#define DISPLAYTEXT_free(a) ASN1_STRING_free((ASN1_STRING *)a)
+#define M_i2d_DISPLAYTEXT(a,pp) i2d_ASN1_bytes((ASN1_STRING *)a,\
+                                               pp,a->type,V_ASN1_UNIVERSAL)
+#define M_d2i_DISPLAYTEXT(a,pp,l) \
+               d2i_ASN1_type_bytes((ASN1_STRING **)a,pp,l, \
+                       B_ASN1_VISIBLESTRING| \
+                       B_ASN1_BMPSTRING|\
+                       B_ASN1_UTF8STRING)
+
 #define ASN1_PRINTABLESTRING_new() (ASN1_PRINTABLESTRING *)\
                ASN1_STRING_type_new(V_ASN1_PRINTABLESTRING)
 #define ASN1_PRINTABLESTRING_free(a)   ASN1_STRING_free((ASN1_STRING *)a)
@@ -499,6 +521,13 @@ ASN1_STRING *d2i_ASN1_PRINTABLE(ASN1_STRING **a,
 ASN1_PRINTABLESTRING *d2i_ASN1_PRINTABLESTRING(ASN1_PRINTABLESTRING **a,
        unsigned char **pp, long l);
 
+int    i2d_DIRECTORYSTRING(ASN1_STRING *a,unsigned char **pp);
+ASN1_STRING *d2i_DIRECTORYSTRING(ASN1_STRING **a, unsigned char **pp,
+                                                                long length);
+
+int    i2d_DISPLAYTEXT(ASN1_STRING *a,unsigned char **pp);
+ASN1_STRING *d2i_DISPLAYTEXT(ASN1_STRING **a, unsigned char **pp, long length);
+
 ASN1_T61STRING *d2i_ASN1_T61STRING(ASN1_T61STRING **a,
        unsigned char **pp, long l);
 int i2d_ASN1_IA5STRING(ASN1_IA5STRING *a,unsigned char **pp);
@@ -561,7 +590,7 @@ int i2a_ASN1_STRING(BIO *bp, ASN1_STRING *a, int type);
 #endif
 int i2t_ASN1_OBJECT(char *buf,int buf_len,ASN1_OBJECT *a);
 
-int a2d_ASN1_OBJECT(unsigned char *out,int olen, char *buf, int num);
+int a2d_ASN1_OBJECT(unsigned char *out,int olen, const char *buf, int num);
 ASN1_OBJECT *ASN1_OBJECT_create(int nid, unsigned char *data,int len,
        char *sn, char *ln);
 
@@ -690,6 +719,10 @@ int                i2d_ASN1_UTF8STRING();
 ASN1_UTF8STRING *d2i_ASN1_UTF8STRING();
 int i2d_ASN1_PRINTABLE();
 ASN1_STRING *d2i_ASN1_PRINTABLE();
+int    i2d_DIRECTORYSTRING();
+ASN1_STRING *d2i_DIRECTORYSTRING();
+int    i2d_DISPLAYTEXT();
+ASN1_STRING *d2i_DISPLAYTEXT();
 ASN1_PRINTABLESTRING *d2i_ASN1_PRINTABLESTRING();
 ASN1_T61STRING *d2i_ASN1_T61STRING();
 int i2d_ASN1_IA5STRING();
@@ -841,6 +874,7 @@ ASN1_STRING *ASN1_pack_string();
 #define ASN1_F_D2I_NETSCAPE_RSA_2                       142
 #define ASN1_F_D2I_NETSCAPE_SPKAC                       143
 #define ASN1_F_D2I_NETSCAPE_SPKI                        144
+#define ASN1_F_D2I_NOTICEREF                            268
 #define ASN1_F_D2I_PBE2PARAM                            262
 #define ASN1_F_D2I_PBEPARAM                             249
 #define ASN1_F_D2I_PBKDF2PARAM                          263
@@ -860,12 +894,15 @@ ASN1_STRING *ASN1_pack_string();
 #define ASN1_F_D2I_PKCS7_SIGN_ENVELOPE                  154
 #define ASN1_F_D2I_PKCS8_PRIV_KEY_INFO                  250
 #define ASN1_F_D2I_PKEY_USAGE_PERIOD                    239
+#define ASN1_F_D2I_POLICYINFO                           269
+#define ASN1_F_D2I_POLICYQUALINFO                       270
 #define ASN1_F_D2I_PRIVATEKEY                           155
 #define ASN1_F_D2I_PUBLICKEY                            156
 #define ASN1_F_D2I_RSAPRIVATEKEY                        157
 #define ASN1_F_D2I_RSAPUBLICKEY                                 158
 #define ASN1_F_D2I_SXNET                                241
 #define ASN1_F_D2I_SXNETID                              243
+#define ASN1_F_D2I_USERNOTICE                           271
 #define ASN1_F_D2I_X509                                         159
 #define ASN1_F_D2I_X509_ALGOR                           160
 #define ASN1_F_D2I_X509_ATTRIBUTE                       161
@@ -902,6 +939,7 @@ ASN1_STRING *ASN1_pack_string();
 #define ASN1_F_NETSCAPE_PKEY_NEW                        189
 #define ASN1_F_NETSCAPE_SPKAC_NEW                       190
 #define ASN1_F_NETSCAPE_SPKI_NEW                        191
+#define ASN1_F_NOTICEREF_NEW                            272
 #define ASN1_F_PBE2PARAM_NEW                            264
 #define ASN1_F_PBEPARAM_NEW                             251
 #define ASN1_F_PBKDF2PARAM_NEW                          265
@@ -921,8 +959,11 @@ ASN1_STRING *ASN1_pack_string();
 #define ASN1_F_PKCS7_SIGN_ENVELOPE_NEW                  201
 #define ASN1_F_PKCS8_PRIV_KEY_INFO_NEW                  252
 #define ASN1_F_PKEY_USAGE_PERIOD_NEW                    240
+#define ASN1_F_POLICYINFO_NEW                           273
+#define ASN1_F_POLICYQUALINFO_NEW                       274
 #define ASN1_F_SXNETID_NEW                              244
 #define ASN1_F_SXNET_NEW                                242
+#define ASN1_F_USERNOTICE_NEW                           275
 #define ASN1_F_X509_ALGOR_NEW                           202
 #define ASN1_F_X509_ATTRIBUTE_NEW                       203
 #define ASN1_F_X509_CINF_NEW                            204