diff options
author | Martin Willi <martin@revosec.ch> | 2010-11-02 12:13:03 +0100 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2011-01-05 16:45:41 +0100 |
commit | dacf65803695a45230063e715e1b703fcbda584b (patch) | |
tree | 46dc835743edddca0f4e35aa78aad898cb4bcf57 | |
parent | 3b3e5c0de54b01c54b0f2afcfa285def23a29a8d (diff) | |
download | strongswan-dacf65803695a45230063e715e1b703fcbda584b.tar.bz2 strongswan-dacf65803695a45230063e715e1b703fcbda584b.tar.xz |
Implemented cert payload constructor for custom encoding types
-rw-r--r-- | src/libcharon/encoding/payloads/cert_payload.c | 12 | ||||
-rw-r--r-- | src/libcharon/encoding/payloads/cert_payload.h | 9 |
2 files changed, 21 insertions, 0 deletions
diff --git a/src/libcharon/encoding/payloads/cert_payload.c b/src/libcharon/encoding/payloads/cert_payload.c index 80239f654..19eb51380 100644 --- a/src/libcharon/encoding/payloads/cert_payload.c +++ b/src/libcharon/encoding/payloads/cert_payload.c @@ -343,3 +343,15 @@ cert_payload_t *cert_payload_create_from_hash_and_url(chunk_t hash, char *url) return &this->public; } +/* + * Described in header + */ +cert_payload_t *cert_payload_create_custom(cert_encoding_t type, chunk_t data) +{ + private_cert_payload_t *this = (private_cert_payload_t*)cert_payload_create(); + + this->encoding = type; + this->data = data; + this->payload_length = CERT_PAYLOAD_HEADER_LENGTH + this->data.len; + return &this->public; +} diff --git a/src/libcharon/encoding/payloads/cert_payload.h b/src/libcharon/encoding/payloads/cert_payload.h index aa1c7bf5a..c35d4919b 100644 --- a/src/libcharon/encoding/payloads/cert_payload.h +++ b/src/libcharon/encoding/payloads/cert_payload.h @@ -134,4 +134,13 @@ cert_payload_t *cert_payload_create_from_cert(certificate_t *cert); */ cert_payload_t *cert_payload_create_from_hash_and_url(chunk_t hash, char *url); +/** + * Creates a custom certificate payload using type and associated data. + * + * @param type encoding type of certificate + * @param url associated data (gets owned) + * @return cert_payload_t object + */ +cert_payload_t *cert_payload_create_custom(cert_encoding_t type, chunk_t data); + #endif /** CERT_PAYLOAD_H_ @}*/ |