aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/crypt_burn.c
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2015-03-27 10:21:43 +0100
committerMartin Willi <martin@revosec.ch>2015-04-15 11:35:25 +0200
commit466d560a336ba0f6e736394af743d3a434c3ab78 (patch)
treefb42826478abb9f0fc87a0d925f2f0dab6c0d068 /scripts/crypt_burn.c
parent5da79478ffd7bac86f4da7cefa63454d73beca01 (diff)
downloadstrongswan-466d560a336ba0f6e736394af743d3a434c3ab78.tar.bz2
strongswan-466d560a336ba0f6e736394af743d3a434c3ab78.tar.xz
crypt-burn: Set a defined key, as some backends require that
Diffstat (limited to 'scripts/crypt_burn.c')
-rw-r--r--scripts/crypt_burn.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/scripts/crypt_burn.c b/scripts/crypt_burn.c
index bcd07c968..138fcb2b3 100644
--- a/scripts/crypt_burn.c
+++ b/scripts/crypt_burn.c
@@ -18,7 +18,7 @@
static int burn_crypter(const proposal_token_t *token, u_int limit)
{
- chunk_t iv, data;
+ chunk_t iv, key, data;
crypter_t *crypter;
int i = 0;
bool ok;
@@ -36,8 +36,10 @@ static int burn_crypter(const proposal_token_t *token, u_int limit)
memset(iv.ptr, 0xFF, iv.len);
data = chunk_alloc(round_up(1024, crypter->get_block_size(crypter)));
memset(data.ptr, 0xDD, data.len);
+ key = chunk_alloc(crypter->get_key_size(crypter));
+ memset(key.ptr, 0xAA, key.len);
- ok = TRUE;
+ ok = crypter->set_key(crypter, key);
while (ok)
{
if (!crypter->encrypt(crypter, data, iv, NULL))
@@ -61,13 +63,14 @@ static int burn_crypter(const proposal_token_t *token, u_int limit)
free(iv.ptr);
free(data.ptr);
+ free(key.ptr);
return ok;
}
static bool burn_aead(const proposal_token_t *token, u_int limit)
{
- chunk_t iv, data, dataicv, assoc;
+ chunk_t iv, key, data, dataicv, assoc;
aead_t *aead;
int i = 0;
bool ok;
@@ -89,8 +92,10 @@ static bool burn_aead(const proposal_token_t *token, u_int limit)
memset(data.ptr, 0xDD, data.len);
assoc = chunk_alloc(13);
memset(assoc.ptr, 0xCC, assoc.len);
+ key = chunk_alloc(aead->get_key_size(aead));
+ memset(key.ptr, 0xAA, key.len);
- ok = TRUE;
+ ok = aead->set_key(aead, key);
while (ok)
{
if (!aead->encrypt(aead, data, assoc, iv, NULL))
@@ -114,6 +119,7 @@ static bool burn_aead(const proposal_token_t *token, u_int limit)
free(iv.ptr);
free(data.ptr);
+ free(key.ptr);
return ok;
}