summaryrefslogtreecommitdiff
path: root/src/libstrongswan/plugins/pem
diff options
context:
space:
mode:
authorRene Mayrhofer <rene@mayrhofer.eu.org>2010-08-09 08:09:54 +0000
committerRene Mayrhofer <rene@mayrhofer.eu.org>2010-08-09 08:09:54 +0000
commitb8064f4099997a9e2179f3ad4ace605f5ccac3a1 (patch)
tree81778e976b476374c48b4fe83d084b986b890421 /src/libstrongswan/plugins/pem
parent1ac70afcc1f7d6d2738a34308810719b0976d29f (diff)
downloadvyos-strongswan-b8064f4099997a9e2179f3ad4ace605f5ccac3a1.tar.gz
vyos-strongswan-b8064f4099997a9e2179f3ad4ace605f5ccac3a1.zip
[svn-upgrade] new version strongswan (4.4.1)
Diffstat (limited to 'src/libstrongswan/plugins/pem')
-rw-r--r--src/libstrongswan/plugins/pem/Makefile.in2
-rw-r--r--src/libstrongswan/plugins/pem/pem_builder.c2
-rw-r--r--src/libstrongswan/plugins/pem/pem_encoder.c73
-rw-r--r--src/libstrongswan/plugins/pem/pem_encoder.h4
4 files changed, 50 insertions, 31 deletions
diff --git a/src/libstrongswan/plugins/pem/Makefile.in b/src/libstrongswan/plugins/pem/Makefile.in
index 4e39c8f7b..e19a66fa5 100644
--- a/src/libstrongswan/plugins/pem/Makefile.in
+++ b/src/libstrongswan/plugins/pem/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
diff --git a/src/libstrongswan/plugins/pem/pem_builder.c b/src/libstrongswan/plugins/pem/pem_builder.c
index 65be9501b..a15c3f258 100644
--- a/src/libstrongswan/plugins/pem/pem_builder.c
+++ b/src/libstrongswan/plugins/pem/pem_builder.c
@@ -528,7 +528,7 @@ static void *pem_load(credential_type_t type, int subtype, va_list args)
break;
}
- if (pem.ptr)
+ if (pem.len)
{
return load_from_blob(pem, type, subtype, cb, cb_data, flags);
}
diff --git a/src/libstrongswan/plugins/pem/pem_encoder.c b/src/libstrongswan/plugins/pem/pem_encoder.c
index 13c99a958..e255d6fd0 100644
--- a/src/libstrongswan/plugins/pem/pem_encoder.c
+++ b/src/libstrongswan/plugins/pem/pem_encoder.c
@@ -20,7 +20,7 @@
/**
* See header.
*/
-bool pem_encoder_encode(key_encoding_type_t type, chunk_t *encoding,
+bool pem_encoder_encode(cred_encoding_type_t type, chunk_t *encoding,
va_list args)
{
chunk_t asn1;
@@ -31,62 +31,81 @@ bool pem_encoder_encode(key_encoding_type_t type, chunk_t *encoding,
switch (type)
{
- case KEY_PUB_PEM:
+ case PUBKEY_PEM:
label ="PUBLIC KEY";
/* direct PKCS#1 PEM encoding */
- 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))
+ if (cred_encoding_args(args, CRED_PART_RSA_PUB_ASN1_DER,
+ &asn1, CRED_PART_END) ||
+ cred_encoding_args(args, CRED_PART_ECDSA_PUB_ASN1_DER,
+ &asn1, CRED_PART_END))
{
break;
}
/* indirect PEM encoding from components */
- if (key_encoding_args(args, KEY_PART_RSA_MODULUS, &n,
- KEY_PART_RSA_PUB_EXP, &e, KEY_PART_END))
+ if (cred_encoding_args(args, CRED_PART_RSA_MODULUS, &n,
+ CRED_PART_RSA_PUB_EXP, &e, CRED_PART_END))
{
- if (lib->encoding->encode(lib->encoding, KEY_PUB_SPKI_ASN1_DER,
- NULL, &asn1, KEY_PART_RSA_MODULUS, n,
- KEY_PART_RSA_PUB_EXP, e, KEY_PART_END))
+ if (lib->encoding->encode(lib->encoding, PUBKEY_SPKI_ASN1_DER,
+ NULL, &asn1, CRED_PART_RSA_MODULUS, n,
+ CRED_PART_RSA_PUB_EXP, e, CRED_PART_END))
{
to_free = asn1;
break;
}
}
return FALSE;
- case KEY_PRIV_PEM:
+ case PRIVKEY_PEM:
label ="RSA PRIVATE KEY";
/* direct PKCS#1 PEM encoding */
- if (key_encoding_args(args, KEY_PART_RSA_PRIV_ASN1_DER,
- &asn1, KEY_PART_END))
+ if (cred_encoding_args(args, CRED_PART_RSA_PRIV_ASN1_DER,
+ &asn1, CRED_PART_END))
{
break;
}
/* indirect PEM encoding from components */
- if (key_encoding_args(args, KEY_PART_RSA_MODULUS, &n,
- KEY_PART_RSA_PUB_EXP, &e, KEY_PART_RSA_PRIV_EXP, &d,
- KEY_PART_RSA_PRIME1, &p, KEY_PART_RSA_PRIME2, &q,
- KEY_PART_RSA_EXP1, &exp1, KEY_PART_RSA_EXP2, &exp2,
- KEY_PART_RSA_COEFF, &coeff, KEY_PART_END))
+ if (cred_encoding_args(args, CRED_PART_RSA_MODULUS, &n,
+ CRED_PART_RSA_PUB_EXP, &e, CRED_PART_RSA_PRIV_EXP, &d,
+ CRED_PART_RSA_PRIME1, &p, CRED_PART_RSA_PRIME2, &q,
+ CRED_PART_RSA_EXP1, &exp1, CRED_PART_RSA_EXP2, &exp2,
+ CRED_PART_RSA_COEFF, &coeff, CRED_PART_END))
{
- if (lib->encoding->encode(lib->encoding, KEY_PRIV_ASN1_DER, NULL,
- &asn1, KEY_PART_RSA_MODULUS, n,
- KEY_PART_RSA_PUB_EXP, e, KEY_PART_RSA_PRIV_EXP, d,
- KEY_PART_RSA_PRIME1, p, KEY_PART_RSA_PRIME2, q,
- KEY_PART_RSA_EXP1, exp1, KEY_PART_RSA_EXP2, exp2,
- KEY_PART_RSA_COEFF, coeff, KEY_PART_END))
+ if (lib->encoding->encode(lib->encoding, PRIVKEY_ASN1_DER, NULL,
+ &asn1, CRED_PART_RSA_MODULUS, n,
+ CRED_PART_RSA_PUB_EXP, e, CRED_PART_RSA_PRIV_EXP, d,
+ CRED_PART_RSA_PRIME1, p, CRED_PART_RSA_PRIME2, q,
+ CRED_PART_RSA_EXP1, exp1, CRED_PART_RSA_EXP2, exp2,
+ CRED_PART_RSA_COEFF, coeff, CRED_PART_END))
{
to_free = asn1;
break;
}
}
- if (key_encoding_args(args, KEY_PART_ECDSA_PRIV_ASN1_DER,
- &asn1, KEY_PART_END))
+ if (cred_encoding_args(args, CRED_PART_ECDSA_PRIV_ASN1_DER,
+ &asn1, CRED_PART_END))
{
label ="EC PRIVATE KEY";
break;
}
return FALSE;
+ case CERT_PEM:
+ if (cred_encoding_args(args, CRED_PART_X509_ASN1_DER,
+ &asn1, CRED_PART_END))
+ { /* PEM encode x509 certificate */
+ label = "CERTIFICATE";
+ break;
+ }
+ if (cred_encoding_args(args, CRED_PART_X509_CRL_ASN1_DER,
+ &asn1, CRED_PART_END))
+ { /* PEM encode CRL */
+ label = "X509 CRL";
+ break;
+ }
+ if (cred_encoding_args(args, CRED_PART_PKCS10_ASN1_DER,
+ &asn1, CRED_PART_END))
+ { /* PEM encode PKCS10 certificate reqeuest */
+ label = "CERTIFICATE REQUEST";
+ break;
+ }
default:
return FALSE;
}
diff --git a/src/libstrongswan/plugins/pem/pem_encoder.h b/src/libstrongswan/plugins/pem/pem_encoder.h
index a181133b7..d8f05dd73 100644
--- a/src/libstrongswan/plugins/pem/pem_encoder.h
+++ b/src/libstrongswan/plugins/pem/pem_encoder.h
@@ -21,12 +21,12 @@
#ifndef PEM_ENCODER_H_
#define PEM_ENCODER_H_
-#include <credentials/keys/key_encoding.h>
+#include <credentials/cred_encoding.h>
/**
* Encoding from ASN.1 to PEM format.
*/
-bool pem_encoder_encode(key_encoding_type_t type, chunk_t *encoding,
+bool pem_encoder_encode(cred_encoding_type_t type, chunk_t *encoding,
va_list args);
#endif /** PEM_ENCODER_H_ @}*/