diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2004-05-15 06:37:44 +0000 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2004-05-15 06:37:44 +0000 |
commit | 3f1242ab2b36336590cc667b8a33b1bded3bd5a6 (patch) | |
tree | 45460a2ddc68387517dfba1293752a8ac2bec79e /src/certtool-cfg.c | |
parent | 12732f78a75cbbae4727d14ee27f6219a5842d37 (diff) | |
download | gnutls-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.c | 53 |
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 |