diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2013-05-02 20:57:47 +0300 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2013-05-02 20:58:37 +0300 |
commit | f40fe83438fa075f5213c5d9779072ee0e9dd950 (patch) | |
tree | cfe35d4740f2f4808dfc58df241736b638c358b9 | |
parent | 935ca0b44b8726657b39d4ef06b1d115d0bf5eaa (diff) | |
download | gnutls-f40fe83438fa075f5213c5d9779072ee0e9dd950.tar.gz |
set the key purpose in certificate requests
-rw-r--r-- | src/certtool-cfg.c | 11 | ||||
-rw-r--r-- | src/certtool-cfg.h | 2 | ||||
-rw-r--r-- | src/certtool.c | 4 |
3 files changed, 11 insertions, 6 deletions
diff --git a/src/certtool-cfg.c b/src/certtool-cfg.c index f81914bf33..3edd151d92 100644 --- a/src/certtool-cfg.c +++ b/src/certtool-cfg.c @@ -748,7 +748,7 @@ get_oid_crt_set (gnutls_x509_crt_t crt) } void -get_key_purpose_set (gnutls_x509_crt_t crt) +get_key_purpose_set (int type, void *crt) { int ret, i; @@ -758,9 +758,12 @@ get_key_purpose_set (gnutls_x509_crt_t crt) return; for (i = 0; cfg.key_purpose_oids[i] != NULL; i++) { - ret = - gnutls_x509_crt_set_key_purpose_oid (crt, cfg.key_purpose_oids[i], - 0); + if (type == TYPE_CRT) + ret = + gnutls_x509_crt_set_key_purpose_oid (crt, cfg.key_purpose_oids[i], 0); + else + ret = + gnutls_x509_crq_set_key_purpose_oid (crt, cfg.key_purpose_oids[i], 0); if (ret < 0) { diff --git a/src/certtool-cfg.h b/src/certtool-cfg.h index cbfa896e05..98f42993d2 100644 --- a/src/certtool-cfg.h +++ b/src/certtool-cfg.h @@ -49,7 +49,7 @@ void get_dn_crq_set (gnutls_x509_crq_t crt); void get_uid_crt_set (gnutls_x509_crt_t crt); void get_pkcs9_email_crt_set (gnutls_x509_crt_t crt); void get_oid_crt_set (gnutls_x509_crt_t crt); -void get_key_purpose_set (gnutls_x509_crt_t crt); +void get_key_purpose_set (int type, void *crt); int get_serial (void); int get_days (void); int get_ca_status (void); diff --git a/src/certtool.c b/src/certtool.c index 8e4fc6e933..9cd72cae77 100644 --- a/src/certtool.c +++ b/src/certtool.c @@ -288,7 +288,7 @@ generate_certificate (gnutls_privkey_t * ret_key, get_dc_set (TYPE_CRT, crt); get_oid_crt_set (crt); - get_key_purpose_set (crt); + get_key_purpose_set (TYPE_CRT, crt); if (!batch) fprintf (stderr, @@ -1909,6 +1909,8 @@ generate_request (common_info_st * cinfo) if (ret < 0) error (EXIT_FAILURE, 0, "key_kp: %s", gnutls_strerror (ret)); } + + get_key_purpose_set (TYPE_CRQ, crq); } ret = gnutls_x509_crq_set_pubkey (crq, pubkey); |