aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2014-06-12 21:42:07 +0200
committerTobias Brunner <tobias@strongswan.org>2014-10-10 09:31:17 +0200
commit1e0d8f3ec087cb108c61857f98ad7443728e17aa (patch)
tree48b486fbcf992287ce563a12ec94b90924a7c128 /src
parent44996b5866928e3cc05e22e7f08209bd74aecda3 (diff)
downloadstrongswan-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.c8
-rw-r--r--src/libcharon/encoding/payloads/encrypted_payload.h10
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