summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2013-05-02 20:57:47 +0300
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2013-05-02 20:58:37 +0300
commitf40fe83438fa075f5213c5d9779072ee0e9dd950 (patch)
treecfe35d4740f2f4808dfc58df241736b638c358b9
parent935ca0b44b8726657b39d4ef06b1d115d0bf5eaa (diff)
downloadgnutls-f40fe83438fa075f5213c5d9779072ee0e9dd950.tar.gz
set the key purpose in certificate requests
-rw-r--r--src/certtool-cfg.c11
-rw-r--r--src/certtool-cfg.h2
-rw-r--r--src/certtool.c4
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);