diff options
author | Martin Willi <martin@revosec.ch> | 2010-08-17 17:36:09 +0200 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2010-08-19 19:02:33 +0200 |
commit | b519071299562400b8f3f3a7c43e5d2d2009c08b (patch) | |
tree | 790c44cd9f26c019170cebdd7c95de17b8c4d73e /src/libcharon/encoding/generator.c | |
parent | 7fc4b0814fa3aeefd1d9685e99900e48a7cfbab2 (diff) | |
download | strongswan-b519071299562400b8f3f3a7c43e5d2d2009c08b.tar.bz2 strongswan-b519071299562400b8f3f3a7c43e5d2d2009c08b.tar.xz |
Use AEAD wrapper for encryption payload encryption/decryption
Diffstat (limited to 'src/libcharon/encoding/generator.c')
-rw-r--r-- | src/libcharon/encoding/generator.c | 25 |
1 files changed, 8 insertions, 17 deletions
diff --git a/src/libcharon/encoding/generator.c b/src/libcharon/encoding/generator.c index c114eb2fd..224f76fce 100644 --- a/src/libcharon/encoding/generator.c +++ b/src/libcharon/encoding/generator.c @@ -463,24 +463,15 @@ static void generate_from_chunk(private_generator_t *this, u_int32_t offset) write_bytes_to_buffer(this, value->ptr, value->len); } -METHOD(generator_t, write_to_chunk, void, - private_generator_t *this, chunk_t *data) +METHOD(generator_t, get_chunk, chunk_t, + private_generator_t *this, u_int32_t **lenpos) { - u_int32_t len, val; + chunk_t data; - len = get_length(this); - - /* write length into header length field */ - if (this->header_length_position_offset > 0) - { - val = htonl(len); - write_bytes_to_buffer_at_offset(this, &val, sizeof(u_int32_t), - this->header_length_position_offset); - } - *data = chunk_alloc(len); - memcpy(data->ptr, this->buffer, len); - - DBG3(DBG_ENC, "generated data of this generator %B", data); + *lenpos = (u_int32_t*)(this->buffer + this->header_length_position_offset); + data = chunk_create(this->buffer, get_length(this)); + DBG3(DBG_ENC, "generated data of this generator %B", &data); + return data; } METHOD(generator_t, generate_payload, void, @@ -864,7 +855,7 @@ generator_t *generator_create() INIT(this, .public = { - .write_to_chunk = _write_to_chunk, + .get_chunk = _get_chunk, .generate_payload = _generate_payload, .destroy = _destroy, }, |