aboutsummaryrefslogtreecommitdiffstats
path: root/src/libstrongswan
diff options
context:
space:
mode:
authorMartin Willi <martin@strongswan.org>2008-05-07 11:54:30 +0000
committerMartin Willi <martin@strongswan.org>2008-05-07 11:54:30 +0000
commit4ce78f9356cf1f6eda733ca93610db308825dd49 (patch)
treefd27997158782084867a79ef5fd4596b53e0f1ac /src/libstrongswan
parent5302703407ae1cb6254cb93a211a68e6afbb3d77 (diff)
downloadstrongswan-4ce78f9356cf1f6eda733ca93610db308825dd49.tar.bz2
strongswan-4ce78f9356cf1f6eda733ca93610db308825dd49.tar.xz
fixed 3DES encryption
Diffstat (limited to 'src/libstrongswan')
-rwxr-xr-xsrc/libstrongswan/asn1/pem.c7
-rw-r--r--src/libstrongswan/plugins/des/des_crypter.c4
2 files changed, 10 insertions, 1 deletions
diff --git a/src/libstrongswan/asn1/pem.c b/src/libstrongswan/asn1/pem.c
index 63b30728c..c79e98b94 100755
--- a/src/libstrongswan/asn1/pem.c
+++ b/src/libstrongswan/asn1/pem.c
@@ -303,7 +303,12 @@ err_t pem_to_bin(chunk_t *blob, chunk_t *passphrase, bool *pgp)
if (state != PEM_POST)
return "file coded in unknown format, discarded";
- return (encrypted)? pem_decrypt(blob, alg, key_size, &iv, passphrase) : NULL;
+ if (!encrypted)
+ {
+ return NULL;
+ }
+ return pem_decrypt(blob, alg, key_size, &iv, passphrase);
+
}
/* load a coded key or certificate file with autodetection
diff --git a/src/libstrongswan/plugins/des/des_crypter.c b/src/libstrongswan/plugins/des/des_crypter.c
index 06d497946..17defda50 100644
--- a/src/libstrongswan/plugins/des/des_crypter.c
+++ b/src/libstrongswan/plugins/des/des_crypter.c
@@ -1370,6 +1370,7 @@ static void decrypt(private_des_crypter_t *this, chunk_t data, chunk_t iv,
if (decrypted)
{
*decrypted = chunk_alloc(data.len);
+ out = decrypted->ptr;
}
memcpy(&ivb, iv.ptr, sizeof(des_cblock));
des_cbc_encrypt((des_cblock*)(data.ptr), (des_cblock*)out,
@@ -1390,6 +1391,7 @@ static void encrypt(private_des_crypter_t *this, chunk_t data, chunk_t iv,
if (encrypted)
{
*encrypted = chunk_alloc(data.len);
+ out = encrypted->ptr;
}
memcpy(&ivb, iv.ptr, sizeof(des_cblock));
des_cbc_encrypt((des_cblock*)(data.ptr), (des_cblock*)out,
@@ -1409,6 +1411,7 @@ static void decrypt3(private_des_crypter_t *this, chunk_t data, chunk_t iv,
if (decrypted)
{
*decrypted = chunk_alloc(data.len);
+ out = decrypted->ptr;
}
memcpy(&ivb, iv.ptr, sizeof(des_cblock));
des_ede3_cbc_encrypt((des_cblock*)(data.ptr), (des_cblock*)out,
@@ -1429,6 +1432,7 @@ static void encrypt3(private_des_crypter_t *this, chunk_t data, chunk_t iv,
if (encrypted)
{
*encrypted = chunk_alloc(data.len);
+ out = encrypted->ptr;
}
memcpy(&ivb, iv.ptr, sizeof(des_cblock));
des_ede3_cbc_encrypt((des_cblock*)(data.ptr), (des_cblock*)out,