aboutsummaryrefslogtreecommitdiffstats
path: root/src/charon/encoding/payloads/cert_payload.c
diff options
context:
space:
mode:
authorAndreas Steffen <andreas.steffen@strongswan.org>2006-07-03 06:27:45 +0000
committerAndreas Steffen <andreas.steffen@strongswan.org>2006-07-03 06:27:45 +0000
commit971218c3ae71713e4bcff6113331c98d6a05f898 (patch)
treee038fea582349b5160209b92b3314811b6140771 /src/charon/encoding/payloads/cert_payload.c
parent1d390631d7f6e8ec61b8daeafa5d3256b35feec1 (diff)
downloadstrongswan-971218c3ae71713e4bcff6113331c98d6a05f898.tar.bz2
strongswan-971218c3ae71713e4bcff6113331c98d6a05f898.tar.xz
support of cert payloads
Diffstat (limited to 'src/charon/encoding/payloads/cert_payload.c')
-rw-r--r--src/charon/encoding/payloads/cert_payload.c43
1 files changed, 29 insertions, 14 deletions
diff --git a/src/charon/encoding/payloads/cert_payload.c b/src/charon/encoding/payloads/cert_payload.c
index 146d42eda..18bf24d47 100644
--- a/src/charon/encoding/payloads/cert_payload.c
+++ b/src/charon/encoding/payloads/cert_payload.c
@@ -28,22 +28,25 @@
/**
* String mappings for cert_encoding_t.
*/
-mapping_t cert_encoding_m[] = {
- {PKCS7_WRAPPED_X509_CERTIFICATE, "PKCS7_WRAPPED_X509_CERTIFICATE"},
- {PGP_CERTIFICATE, "PGP_CERTIFICATE"},
- {DNS_SIGNED_KEY, "DNS_SIGNED_KEY"},
- {X509_CERTIFICATE_SIGNATURE, "X509_CERTIFICATE_SIGNATURE"},
- {KERBEROS_TOKEN, "KERBEROS_TOKEN"},
- {CERTIFICATE_REVOCATION_LIST, "CERTIFICATE_REVOCATION_LIST"},
- {AUTHORITY_REVOCATION_LIST, "AUTHORITY_REVOCATION_LIST"},
- {SPKI_CERTIFICATE, "SPKI_CERTIFICATE"},
- {X509_CERTIFICATE_ATTRIBUTE, "X509_CERTIFICATE_ATTRIBUTE"},
- {RAW_SA_KEY, "RAW_SA_KEY"},
- {HASH_AND_URL_X509_CERTIFICATE, "HASH_AND_URL_X509_CERTIFICATE"},
- {HASH_AND_URL_X509_BUNDLE, "HASH_AND_URL_X509_BUNDLE"},
- {MAPPING_END, NULL}
+static const char *const cert_encoding_name[] = {
+ "CERT_NONE",
+ "CERT_PKCS7_WRAPPED_X509",
+ "CERT_PGP",
+ "CERT_DNS_SIGNED_KEY",
+ "CERT_X509_SIGNATURE",
+ "CERT_X509_KEY_EXCHANGE",
+ "CERT_KERBEROS_TOKENS",
+ "CERT_CRL",
+ "CERT_ARL",
+ "CERT_SPKI",
+ "CERT_X509_ATTRIBUTE",
+ "CERT_RAW_RSA_KEY",
+ "CERT_X509_HASH_AND_URL",
+ "CERT_X509_HASH_AND_URL_BUNDLE"
};
+enum_names cert_encoding_names =
+ { CERT_NONE, CERT_X509_HASH_AND_URL_BUNDLE, cert_encoding_name, NULL };
typedef struct private_cert_payload_t private_cert_payload_t;
@@ -277,3 +280,15 @@ cert_payload_t *cert_payload_create()
return (&(this->public));
}
+
+/*
+ * Described in header
+ */
+cert_payload_t *cert_payload_create_from_x509(x509_t *cert)
+{
+ cert_payload_t *this = cert_payload_create();
+
+ this->set_cert_encoding(this, CERT_X509_SIGNATURE);
+ this->set_data(this, cert->get_certificate(cert));
+ return this;
+} \ No newline at end of file