summaryrefslogtreecommitdiff
path: root/src/certtool-cfg.c
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2004-05-15 06:37:44 +0000
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2004-05-15 06:37:44 +0000
commit3f1242ab2b36336590cc667b8a33b1bded3bd5a6 (patch)
tree45460a2ddc68387517dfba1293752a8ac2bec79e /src/certtool-cfg.c
parent12732f78a75cbbae4727d14ee27f6219a5842d37 (diff)
downloadgnutls-3f1242ab2b36336590cc667b8a33b1bded3bd5a6.tar.gz
certtool has now support for more X.520 DN attribute types.
Diffstat (limited to 'src/certtool-cfg.c')
-rw-r--r--src/certtool-cfg.c53
1 files changed, 53 insertions, 0 deletions
diff --git a/src/certtool-cfg.c b/src/certtool-cfg.c
index ef578ebd09..cb9ad0e44e 100644
--- a/src/certtool-cfg.c
+++ b/src/certtool-cfg.c
@@ -46,6 +46,7 @@ typedef struct _cfg_ctx
char *dns_name;
char* ip_addr;
char *email;
+ char **dn_oid;
char *crl_dist_points;
char *password;
char *pkcs12_key_name;
@@ -96,6 +97,9 @@ int template_parse(const char *template)
{NULL, '\0', "dns_name", CFG_STR, (void *) &cfg.dns_name, 0},
{NULL, '\0', "ip_address", CFG_STR, (void *) &cfg.ip_addr, 0},
{NULL, '\0', "email", CFG_STR, (void *) &cfg.email, 0},
+
+ {NULL, '\0', "dn_oid", CFG_STR+CFG_MULTI_SEPARATED, (void *) &cfg.dn_oid, 0},
+
{NULL, '\0', "crl_dist_points", CFG_STR, (void *) &cfg.crl_dist_points, 0},
{NULL, '\0', "pkcs12_key_name", CFG_STR, (void *) &cfg.pkcs12_key_name, 0},
@@ -369,6 +373,30 @@ int ret;
}
+void get_oid_crt_set( gnutls_x509_crt crt)
+{
+int ret, i;
+
+ if (batch) {
+ if (!cfg.dn_oid) return;
+ for( i = 0; cfg.dn_oid[i] != NULL; i+=2) {
+ if (cfg.dn_oid[i+1]==NULL) {
+ fprintf(stderr, "dn_oid: %s does not have an argument.\n",
+ cfg.dn_oid[i]);
+ exit(1);
+ }
+ ret = gnutls_x509_crt_set_dn_by_oid(crt, cfg.dn_oid[i], 0,
+ cfg.dn_oid[i+1], strlen(cfg.dn_oid[i+1]));
+
+ if (ret < 0) {
+ fprintf(stderr, "set_dn_oid: %s\n", gnutls_strerror(ret));
+ exit(1);
+ }
+ }
+ }
+
+}
+
void get_pkcs9_email_crt_set( gnutls_x509_crt crt)
{
@@ -698,4 +726,29 @@ int ret;
}
+void get_oid_crq_set( gnutls_x509_crq crq)
+{
+int ret, i;
+
+ if (batch) {
+ if (!cfg.dn_oid) return;
+ for( i = 0; cfg.dn_oid[i] != NULL; i+=2) {
+ if (cfg.dn_oid[i+1]==NULL) {
+ fprintf(stderr, "dn_oid: %s does not have an argument.\n",
+ cfg.dn_oid[i]);
+ exit(1);
+ }
+ ret = gnutls_x509_crq_set_dn_by_oid(crq, cfg.dn_oid[i], 0,
+ cfg.dn_oid[i+1], strlen(cfg.dn_oid[i+1]));
+
+ if (ret < 0) {
+ fprintf(stderr, "set_dn_oid: %s\n", gnutls_strerror(ret));
+ exit(1);
+ }
+ }
+ }
+
+}
+
+
#endif