summary refs log tree commit diff
path: root/src/libnm-crypto
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2022-08-12 19:21:11 +0200
committerMichael Biebl <biebl@debian.org>2022-08-12 19:21:11 +0200
commit6accbd3ec0e42d8633bbde4d47ed7bfe854e7e0b (patch)
treea77a0617213a5183a4de43824e3fbae9779e9b8e /src/libnm-crypto
parentf7c750061dab327e638c0129cfafd5b2215b3a2e (diff)
New upstream version 1.38.4 upstream/1.38.4
Diffstat (limited to 'src/libnm-crypto')
-rw-r--r--src/libnm-crypto/nm-crypto.c7
-rw-r--r--src/libnm-crypto/nm-crypto.h3
2 files changed, 9 insertions, 1 deletions
diff --git a/src/libnm-crypto/nm-crypto.c b/src/libnm-crypto/nm-crypto.c
index 69d2b53f..8cf66336 100644
--- a/src/libnm-crypto/nm-crypto.c
+++ b/src/libnm-crypto/nm-crypto.c
@@ -25,6 +25,9 @@
 #define PEM_DSA_KEY_BEGIN "-----BEGIN DSA PRIVATE KEY-----"
 #define PEM_DSA_KEY_END   "-----END DSA PRIVATE KEY-----"
 
+#define PEM_EC_KEY_BEGIN "-----BEGIN EC PRIVATE KEY-----"
+#define PEM_EC_KEY_END   "-----END EC PRIVATE KEY-----"
+
 #define PEM_CERT_BEGIN "-----BEGIN CERTIFICATE-----"
 #define PEM_CERT_END   "-----END CERTIFICATE-----"
 
@@ -201,6 +204,10 @@ parse_old_openssl_key_file(const guint8       *data,
         key_type  = NM_CRYPTO_KEY_TYPE_DSA;
         start_tag = PEM_DSA_KEY_BEGIN;
         end_tag   = PEM_DSA_KEY_END;
+    } else if (find_tag(PEM_EC_KEY_BEGIN, data, data_len, 0, &start)) {
+        key_type  = NM_CRYPTO_KEY_TYPE_EC;
+        start_tag = PEM_EC_KEY_BEGIN;
+        end_tag   = PEM_EC_KEY_END;
     } else {
         g_set_error(error,
                     _NM_CRYPTO_ERROR,
diff --git a/src/libnm-crypto/nm-crypto.h b/src/libnm-crypto/nm-crypto.h
index 48c7c6b7..289549c6 100644
--- a/src/libnm-crypto/nm-crypto.h
+++ b/src/libnm-crypto/nm-crypto.h
@@ -29,7 +29,8 @@ const NMCryptoCipherInfo *nm_crypto_cipher_get_info_by_name(const char *cipher_n
 typedef enum {
     NM_CRYPTO_KEY_TYPE_UNKNOWN = 0,
     NM_CRYPTO_KEY_TYPE_RSA,
-    NM_CRYPTO_KEY_TYPE_DSA
+    NM_CRYPTO_KEY_TYPE_DSA,
+    NM_CRYPTO_KEY_TYPE_EC,
 } NMCryptoKeyType;
 
 typedef enum {