[network-manager-openvpn: 1/4] import: accept inline RSA private keys
- From: Beniamino Galvani <bgalvani src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [network-manager-openvpn: 1/4] import: accept inline RSA private keys
- Date: Wed, 20 Jan 2016 09:21:35 +0000 (UTC)
commit 6ddbfb8bb5ad6aea068d57277002e225d30098e6
Author: Beniamino Galvani <bgalvani redhat com>
Date: Mon Jan 18 13:47:16 2016 +0100
import: accept inline RSA private keys
The inline key can be a PKCS#1 RSA key, add support for parsing it.
properties/import-export.c | 12 +++++++++++-
1 files changed, 11 insertions(+), 1 deletions(-)
---
diff --git a/properties/import-export.c b/properties/import-export.c
index bad0369..7a77584 100644
--- a/properties/import-export.c
+++ b/properties/import-export.c
@@ -193,6 +193,8 @@ handle_path_item (const char *line,
#define CERT_END "-----END CERTIFICATE-----"
#define PRIV_KEY_BEGIN "-----BEGIN PRIVATE KEY-----"
#define PRIV_KEY_END "-----END PRIVATE KEY-----"
+#define RSA_PRIV_KEY_BEGIN "-----BEGIN RSA PRIVATE KEY-----"
+#define RSA_PRIV_KEY_END "-----END RSA PRIVATE KEY-----"
static gboolean
handle_blob_item (const char ***line,
@@ -203,6 +205,7 @@ handle_blob_item (const char ***line,
{
gboolean success = FALSE;
const char *blob_mark_start, *blob_mark_end;
+ const char *blob_mark_start2 = NULL, *blob_mark_end2 = NULL;
const char *start_tag, *end_tag;
char *filename = NULL;
char *dirname = NULL;
@@ -225,6 +228,8 @@ handle_blob_item (const char ***line,
end_tag = KEY_BLOB_END_TAG;
blob_mark_start = PRIV_KEY_BEGIN;
blob_mark_end = PRIV_KEY_END;
+ blob_mark_start2 = RSA_PRIV_KEY_BEGIN;
+ blob_mark_end2 = RSA_PRIV_KEY_END;
} else
g_return_val_if_reached (FALSE);
@@ -232,8 +237,13 @@ handle_blob_item (const char ***line,
if (strncmp (*p, start_tag, strlen (start_tag)))
goto finish;
p++;
- if (strcmp (*p, blob_mark_start))
+
+ if (blob_mark_start2 && !strcmp (*p, blob_mark_start2)) {
+ blob_mark_start = blob_mark_start2;
+ blob_mark_end = blob_mark_end2;
+ } else if (strcmp (*p, blob_mark_start))
goto finish;
+
p++;
in_file = g_string_new (NULL);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]