Add two-key 3DES support, needed by pycrypto.

epel9
Simone Caronni 11 years ago
parent 0133b308cc
commit 62d6721494

@ -0,0 +1,53 @@
From 445dfa67a64dcd30067dab823f6bae31d1019c1e Mon Sep 17 00:00:00 2001
From: Paul Howarth <paul@city-fan.org>
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

@ -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 <paul@city-fan.org> - 1.17-22
- Add two-key 3DES support, needed by pycrypto.
* Sun Sep 29 2013 Simone Caronni <negativo17@gmail.com> - 1.17-21
- Move headers to default location.

Loading…
Cancel
Save