From: Nikos Mavrogiannopoulos Date: Thu, 2 May 2013 17:57:47 +0000 (+0300) Subject: set the key purpose in certificate requests X-Git-Tag: gnutls_3_2_0~20 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f40fe83438fa075f5213c5d9779072ee0e9dd950;p=thirdparty%2Fgnutls.git set the key purpose in certificate requests --- 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);