diff options
author | Tobias Brunner <tobias@strongswan.org> | 2014-06-12 21:42:07 +0200 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2014-10-10 09:31:17 +0200 |
commit | 1e0d8f3ec087cb108c61857f98ad7443728e17aa (patch) | |
tree | 48b486fbcf992287ce563a12ec94b90924a7c128 /src | |
parent | 44996b5866928e3cc05e22e7f08209bd74aecda3 (diff) | |
download | strongswan-1e0d8f3ec087cb108c61857f98ad7443728e17aa.tar.bz2 strongswan-1e0d8f3ec087cb108c61857f98ad7443728e17aa.tar.xz |
encrypted_payload: Expose generate() to generate the plaintext
Diffstat (limited to 'src')
-rw-r--r-- | src/libcharon/encoding/payloads/encrypted_payload.c | 8 | ||||
-rw-r--r-- | src/libcharon/encoding/payloads/encrypted_payload.h | 10 |
2 files changed, 17 insertions, 1 deletions
diff --git a/src/libcharon/encoding/payloads/encrypted_payload.c b/src/libcharon/encoding/payloads/encrypted_payload.c index bd309a974..431f7bb28 100644 --- a/src/libcharon/encoding/payloads/encrypted_payload.c +++ b/src/libcharon/encoding/payloads/encrypted_payload.c @@ -24,7 +24,6 @@ #include <daemon.h> #include <encoding/payloads/encodings.h> #include <collections/linked_list.h> -#include <encoding/generator.h> #include <encoding/parser.h> typedef struct private_encrypted_payload_t private_encrypted_payload_t; @@ -298,6 +297,12 @@ static chunk_t generate(private_encrypted_payload_t *this, return chunk; } +METHOD(encrypted_payload_t, generate_payloads, void, + private_encrypted_payload_t *this, generator_t *generator) +{ + generate(this, generator); +} + /** * Append the encrypted payload header to the associated data */ @@ -646,6 +651,7 @@ encrypted_payload_t *encrypted_payload_create(payload_type_t type) .get_length = _get_length, .add_payload = _add_payload, .remove_payload = _remove_payload, + .generate_payloads = _generate_payloads, .set_transform = _set_transform, .encrypt = _encrypt, .decrypt = _decrypt, diff --git a/src/libcharon/encoding/payloads/encrypted_payload.h b/src/libcharon/encoding/payloads/encrypted_payload.h index 57bcc2158..663360f80 100644 --- a/src/libcharon/encoding/payloads/encrypted_payload.h +++ b/src/libcharon/encoding/payloads/encrypted_payload.h @@ -1,4 +1,5 @@ /* + * Copyright (C) 2014 Tobias Brunner * Copyright (C) 2005-2010 Martin Willi * Copyright (C) 2010 revosec AG * Copyright (C) 2005 Jan Hutter @@ -28,6 +29,7 @@ typedef struct encrypted_payload_t encrypted_payload_t; #include <library.h> #include <crypto/aead.h> #include <encoding/payloads/payload.h> +#include <encoding/generator.h> /** * The encrypted payload as described in RFC section 3.14. @@ -62,6 +64,14 @@ struct encrypted_payload_t { payload_t* (*remove_payload)(encrypted_payload_t *this); /** + * Uses the given generator to generate the contained payloads. + * + * @param generator generator used to generate the contained payloads + */ + void (*generate_payloads)(encrypted_payload_t *this, + generator_t *generator); + + /** * Set the AEAD transform to use. * * @param aead aead transform to use |