diff options
author | Andreas Steffen <andreas.steffen@strongswan.org> | 2010-04-04 23:59:24 +0200 |
---|---|---|
committer | Andreas Steffen <andreas.steffen@strongswan.org> | 2010-04-04 23:59:24 +0200 |
commit | 29cf15a919c21d180254ff12bec40d6ac683a7b4 (patch) | |
tree | eec7a6780d62dfc39d120f4503f2084e298a698d /src/libstrongswan/plugins/pem/pem_encoder.c | |
parent | cea2857263a7fa62e3a3d8cbd791b3de1f4db2c6 (diff) | |
download | strongswan-29cf15a919c21d180254ff12bec40d6ac683a7b4.tar.bz2 strongswan-29cf15a919c21d180254ff12bec40d6ac683a7b4.tar.xz |
PEM encoding for OpenSSL RSA and EC public and private keys
Diffstat (limited to 'src/libstrongswan/plugins/pem/pem_encoder.c')
-rw-r--r-- | src/libstrongswan/plugins/pem/pem_encoder.c | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/src/libstrongswan/plugins/pem/pem_encoder.c b/src/libstrongswan/plugins/pem/pem_encoder.c index 65073f50c..428341aea 100644 --- a/src/libstrongswan/plugins/pem/pem_encoder.c +++ b/src/libstrongswan/plugins/pem/pem_encoder.c @@ -31,21 +31,29 @@ bool pem_encoder_encode(key_encoding_type_t type, chunk_t *encoding, switch (type) { case KEY_PUB_PEM: - if (!key_encoding_args(args, KEY_PART_RSA_PUB_ASN1_DER, + if (key_encoding_args(args, KEY_PART_RSA_PUB_ASN1_DER, + &asn1, KEY_PART_END) || + key_encoding_args(args, KEY_PART_ECDSA_PUB_ASN1_DER, &asn1, KEY_PART_END)) { - return FALSE; + label ="PUBLIC KEY"; + break; } - label ="PUBLIC KEY"; - break; + return FALSE; case KEY_PRIV_PEM: - if (!key_encoding_args(args, KEY_PART_RSA_PRIV_ASN1_DER, + if (key_encoding_args(args, KEY_PART_RSA_PRIV_ASN1_DER, &asn1, KEY_PART_END)) { - return FALSE; + label ="RSA PRIVATE KEY"; + break; } - label ="RSA PRIVATE KEY"; - break; + if (key_encoding_args(args, KEY_PART_ECDSA_PRIV_ASN1_DER, + &asn1, KEY_PART_END)) + { + label ="EC PRIVATE KEY"; + break; + } + return FALSE; default: return FALSE; } |