diff options
author | Andreas Steffen <andreas.steffen@strongswan.org> | 2006-07-03 06:27:45 +0000 |
---|---|---|
committer | Andreas Steffen <andreas.steffen@strongswan.org> | 2006-07-03 06:27:45 +0000 |
commit | 971218c3ae71713e4bcff6113331c98d6a05f898 (patch) | |
tree | e038fea582349b5160209b92b3314811b6140771 /src/charon/encoding/payloads/cert_payload.c | |
parent | 1d390631d7f6e8ec61b8daeafa5d3256b35feec1 (diff) | |
download | strongswan-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.c | 43 |
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 |