diff options
Diffstat (limited to 'src/libnm-crypto')
| -rw-r--r-- | src/libnm-crypto/nm-crypto.c | 7 | ||||
| -rw-r--r-- | src/libnm-crypto/nm-crypto.h | 3 |
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 { |