summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaiki Ueno <ueno@gnu.org>2020-01-30 11:47:40 +0000
committerDaiki Ueno <ueno@gnu.org>2020-01-30 11:47:40 +0000
commitbc0f8e0c427f47a793257ef279db9efb2e2af41d (patch)
tree28de8682b89daafee77bf6b8fb8c7fec4e151759
parent4d253929734c07c2fba61f2b0ea361e1a6203919 (diff)
parenteef0ee7a5bf1fc0a530fb228707978a569a410f8 (diff)
downloadgcr-bc0f8e0c427f47a793257ef279db9efb2e2af41d.tar.gz
Merge branch 'new-crq' into 'master'
gcr: add support for "NEW CERTIFICATE REQUEST" header See merge request GNOME/gcr!44
-rw-r--r--gcr/fixtures/new_cert_request.csr7
-rw-r--r--gcr/gcr-parser.c5
2 files changed, 12 insertions, 0 deletions
diff --git a/gcr/fixtures/new_cert_request.csr b/gcr/fixtures/new_cert_request.csr
new file mode 100644
index 0000000..f5bdc2e
--- /dev/null
+++ b/gcr/fixtures/new_cert_request.csr
@@ -0,0 +1,7 @@
+-----BEGIN NEW CERTIFICATE REQUEST-----
+MIHTMIGBAgEAMBIxEDAOBgNVBAMTB0V4YW1wbGUwZjAfBggqhQMHAQEBATATBgcq
+hQMCAiMABggqhQMHAQECAgNDAARAC9hv5djbiWaPeJtOHbqFhcVQi0XsW1nYkG3b
+cOJJK3/ad/+HGhD73ydm0pPF0WSvuzx7lzpByIXRHXDWibTxJqAAMAoGCCqFAwcB
+AQMCA0EAaqqzjjXUqqUXlAMBeZEi2FVIT1efTLuW1jzf3zrMQypBqijS8asUgoDN
+ntVv7aQZdAU1VKQnZ7g60EP9OdwEkw==
+-----END NEW CERTIFICATE REQUEST-----
diff --git a/gcr/gcr-parser.c b/gcr/gcr-parser.c
index 8fa36a1..288a3f1 100644
--- a/gcr/gcr-parser.c
+++ b/gcr/gcr-parser.c
@@ -178,6 +178,7 @@ static GQuark PEM_PRIVATE_KEY;
static GQuark PEM_PKCS7;
static GQuark PEM_PKCS12;
static GQuark PEM_CERTIFICATE_REQUEST;
+static GQuark PEM_NEW_CERTIFICATE_REQUEST;
static GQuark PEM_PUBLIC_KEY;
static GQuark ARMOR_PGP_PUBLIC_KEY_BLOCK;
@@ -203,6 +204,7 @@ init_quarks (void)
QUARK (PEM_PKCS7, "PKCS7");
QUARK (PEM_PKCS12, "PKCS12");
QUARK (PEM_CERTIFICATE_REQUEST, "CERTIFICATE REQUEST");
+ QUARK (PEM_NEW_CERTIFICATE_REQUEST, "NEW CERTIFICATE REQUEST");
QUARK (PEM_PUBLIC_KEY, "PUBLIC KEY");
QUARK (ARMOR_PGP_PRIVATE_KEY_BLOCK, "PGP PRIVATE KEY BLOCK");
@@ -1880,6 +1882,9 @@ formats_for_armor_type (GQuark armor_type,
} else if (armor_type == PEM_CERTIFICATE_REQUEST) {
*inner_format = GCR_FORMAT_DER_PKCS10;
*outer_format = GCR_FORMAT_PEM_PKCS10;
+ } else if (armor_type == PEM_NEW_CERTIFICATE_REQUEST) {
+ *inner_format = GCR_FORMAT_DER_PKCS10;
+ *outer_format = GCR_FORMAT_PEM_PKCS10;
} else if (armor_type == PEM_PKCS12) {
*inner_format = GCR_FORMAT_DER_PKCS12;
*outer_format = GCR_FORMAT_PEM_PKCS12;