diff options
author | Martin Willi <martin@strongswan.org> | 2008-05-07 11:54:30 +0000 |
---|---|---|
committer | Martin Willi <martin@strongswan.org> | 2008-05-07 11:54:30 +0000 |
commit | 4ce78f9356cf1f6eda733ca93610db308825dd49 (patch) | |
tree | fd27997158782084867a79ef5fd4596b53e0f1ac /src/libstrongswan | |
parent | 5302703407ae1cb6254cb93a211a68e6afbb3d77 (diff) | |
download | strongswan-4ce78f9356cf1f6eda733ca93610db308825dd49.tar.bz2 strongswan-4ce78f9356cf1f6eda733ca93610db308825dd49.tar.xz |
fixed 3DES encryption
Diffstat (limited to 'src/libstrongswan')
-rwxr-xr-x | src/libstrongswan/asn1/pem.c | 7 | ||||
-rw-r--r-- | src/libstrongswan/plugins/des/des_crypter.c | 4 |
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, |