summaryrefslogtreecommitdiffstats
path: root/crypto/x509/x509name.c
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>1999-10-27 00:15:11 +0000
committerDr. Stephen Henson <steve@openssl.org>1999-10-27 00:15:11 +0000
commit74400f7348c589bf9e7cd17f657c05b25f8758b1 (patch)
tree0f3af155bb1cf7cd0a717eab9a8183dae2bdf4ee /crypto/x509/x509name.c
parent62ac2938015939e2ef30f12295f0ee59ff79c11b (diff)
Continued multibyte character support.
Add a bunch of functions to simplify the creation of X509_NAME structures. Change the X509_NAME_entry_add stuff in req/ca so it no longer uses X509_NAME_entry_count(): passing -1 has the same effect.
Diffstat (limited to 'crypto/x509/x509name.c')
-rw-r--r--crypto/x509/x509name.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/crypto/x509/x509name.c b/crypto/x509/x509name.c
index 64c1315495..bd7b985629 100644
--- a/crypto/x509/x509name.c
+++ b/crypto/x509/x509name.c
@@ -171,6 +171,33 @@ X509_NAME_ENTRY *X509_NAME_delete_entry(X509_NAME *name, int loc)
return(ret);
}
+int X509_NAME_add_entry_by_OBJ(X509_NAME *name, ASN1_OBJECT *obj, int type,
+ unsigned char *bytes, int len, int loc, int set)
+{
+ X509_NAME_ENTRY *ne;
+ ne = X509_NAME_ENTRY_create_by_OBJ(NULL, obj, type, bytes, len);
+ if(!ne) return 0;
+ return X509_NAME_add_entry(name, ne, loc, set);
+}
+
+int X509_NAME_add_entry_by_NID(X509_NAME *name, int nid, int type,
+ unsigned char *bytes, int len, int loc, int set)
+{
+ X509_NAME_ENTRY *ne;
+ ne = X509_NAME_ENTRY_create_by_NID(NULL, nid, type, bytes, len);
+ if(!ne) return 0;
+ return X509_NAME_add_entry(name, ne, loc, set);
+}
+
+int X509_NAME_add_entry_by_txt(X509_NAME *name, char *field, int type,
+ unsigned char *bytes, int len, int loc, int set)
+{
+ X509_NAME_ENTRY *ne;
+ ne = X509_NAME_ENTRY_create_by_txt(NULL, field, type, bytes, len);
+ if(!ne) return 0;
+ return X509_NAME_add_entry(name, ne, loc, set);
+}
+
/* if set is -1, append to previous set, 0 'a new one', and 1,
* prepend to the guy we are about to stomp on. */
int X509_NAME_add_entry(X509_NAME *name, X509_NAME_ENTRY *ne, int loc,
@@ -236,6 +263,21 @@ err:
return(0);
}
+X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_txt(X509_NAME_ENTRY **ne,
+ char *field, int type, unsigned char *bytes, int len)
+ {
+ ASN1_OBJECT *obj;
+
+ obj=OBJ_txt2obj(field, 0);
+ if (obj == NULL)
+ {
+ X509err(X509_F_X509_NAME_ENTRY_CREATE_BY_TXT,
+ X509_R_INVALID_FIELD_NAME);
+ return(NULL);
+ }
+ return(X509_NAME_ENTRY_create_by_OBJ(ne,obj,type,bytes,len));
+ }
+
X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_NID(X509_NAME_ENTRY **ne, int nid,
int type, unsigned char *bytes, int len)
{