diff --git a/libtomcrypt-two-key-triple-des.patch b/libtomcrypt-two-key-triple-des.patch new file mode 100644 index 0000000..9a48a20 --- /dev/null +++ b/libtomcrypt-two-key-triple-des.patch @@ -0,0 +1,53 @@ +From 445dfa67a64dcd30067dab823f6bae31d1019c1e Mon Sep 17 00:00:00 2001 +From: Paul Howarth +Date: Tue, 15 Apr 2014 11:25:18 +0100 +Subject: [PATCH] des.c: Add support for two-key Triple-DES + +Add two-key 3DES support, needed by pycrypto. + +This commit is based on the one for the bundled libtomcrypt 1.16 +code in pycrypto: + +https://github.com/dlitz/pycrypto/commit/65085f16 +--- + src/ciphers/des.c | 16 +++++++++++++--- + 1 file changed, 13 insertions(+), 3 deletions(-) + +diff --git a/src/ciphers/des.c b/src/ciphers/des.c +index af3a4d0..0034c80 100644 +--- a/src/ciphers/des.c ++++ b/src/ciphers/des.c +@@ -1562,17 +1562,27 @@ int des3_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_k + return CRYPT_INVALID_ROUNDS; + } + +- if (keylen != 24) { ++ if (keylen != 24 && keylen != 16) { + return CRYPT_INVALID_KEYSIZE; + } + + deskey(key, EN0, skey->des3.ek[0]); + deskey(key+8, DE1, skey->des3.ek[1]); +- deskey(key+16, EN0, skey->des3.ek[2]); ++ if (keylen == 24) { ++ deskey(key+16, EN0, skey->des3.ek[2]); ++ } else { ++ /* two-key 3DES: K3=K1 */ ++ deskey(key, EN0, skey->des3.ek[2]); ++ } + + deskey(key, DE1, skey->des3.dk[2]); + deskey(key+8, EN0, skey->des3.dk[1]); +- deskey(key+16, DE1, skey->des3.dk[0]); ++ if (keylen == 24) { ++ deskey(key+16, DE1, skey->des3.dk[0]); ++ } else { ++ /* two-key 3DES: K3=K1 */ ++ deskey(key, DE1, skey->des3.dk[0]); ++ } + + return CRYPT_OK; + } +-- +1.9.0 + diff --git a/libtomcrypt.spec b/libtomcrypt.spec index 0c9667e..0e14bb7 100644 --- a/libtomcrypt.spec +++ b/libtomcrypt.spec @@ -1,6 +1,6 @@ Name: libtomcrypt Version: 1.17 -Release: 21%{?dist} +Release: 22%{?dist} Summary: A comprehensive, portable cryptographic toolkit License: Public Domain @@ -8,6 +8,7 @@ URL: http://www.libtom.org/?page=features&newsitems=5&whatfile=crypt Source0: http://www.libtom.org/files/crypt-%{version}.tar.bz2 Patch0: %{name}-makefile.patch Patch1: %{name}-pkgconfig.patch +Patch2: %{name}-two-key-triple-des.patch BuildRequires: ghostscript BuildRequires: libtommath-devel >= 0.42.0-3 @@ -54,8 +55,9 @@ The %{name}-doc package contains documentation for use with %{name}. %prep %setup -q -%patch0 -p1 -b .makefile -%patch1 -p1 -b .pkgconfig +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 %build # No configure script ships with libtomcrypt. Its only requirement is ANSI C and @@ -104,6 +106,9 @@ find %{buildroot} -name 'libtomcrypt_prof*' -delete %doc LICENSE doc/crypt.pdf %changelog +* Thu May 15 2014 Paul Howarth - 1.17-22 +- Add two-key 3DES support, needed by pycrypto. + * Sun Sep 29 2013 Simone Caronni - 1.17-21 - Move headers to default location.