summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--x11-misc/revelation/files/revelation-0.4.14-random.patch73
-rw-r--r--x11-misc/revelation/files/revelation-0.4.14-xor.patch59
-rw-r--r--x11-misc/revelation/revelation-0.4.14-r2.ebuild49
3 files changed, 181 insertions, 0 deletions
diff --git a/x11-misc/revelation/files/revelation-0.4.14-random.patch b/x11-misc/revelation/files/revelation-0.4.14-random.patch
new file mode 100644
index 000000000000..e54ac2bf0661
--- /dev/null
+++ b/x11-misc/revelation/files/revelation-0.4.14-random.patch
@@ -0,0 +1,73 @@
+--- src/bundle/AfSplitter.py.~1~ 2012-05-26 14:19:34.000000000 +0200
++++ src/bundle/AfSplitter.py 2017-07-15 10:10:57.817775246 +0200
+@@ -42,7 +42,7 @@
+
+ # will need changed to use Crypto.Random (now in python-crypt git)
+ # see: http://lists.dlitz.net/pipermail/pycrypto/2008q3/000020.html
+-from Crypto.Util.randpool import RandomPool
++from Crypto import Random
+ from Crypto.Cipher import XOR
+
+ def _xor(a, b):
+@@ -81,7 +81,7 @@
+
+ blockSize = len(data)
+
+- rand = RandomPool()
++ rand = Random.new()
+
+ bufblock = "\x00" * blockSize
+
+@@ -89,12 +89,7 @@
+ for i in range(0, stripes-1):
+
+ # Get some random data
+- rand.randomize()
+- rand.stir()
+- r = rand.get_bytes(blockSize)
+- if rand.entropy < 0:
+- print "Warning: RandomPool entropy dropped below 0"
+-
++ r = rand.rand(blockSize)
+ ret += r
+ bufblock = _xor(r, bufblock)
+ bufblock = _diffuse(bufblock, blockSize, digesttype)
+--- src/bundle/luks.py.~1~ 2012-05-26 14:19:34.000000000 +0200
++++ src/bundle/luks.py 2017-07-15 10:10:08.735052052 +0200
+@@ -65,7 +65,7 @@
+
+ # will need changed to use Crypto.Random (now in python-crypt git)
+ # see: http://lists.dlitz.net/pipermail/pycrypto/2008q3/000020.html
+-from Crypto.Util.randpool import RandomPool
++from Crypto import Random
+ from Crypto.Cipher import *
+ import PBKDFv2, AfSplitter
+
+@@ -178,13 +178,13 @@
+ self.keyBytes = masterSize
+ self.hashSpec = hashSpec
+
+- rand = RandomPool(self.SALT_SIZE + 16 + masterSize)
++ rand = Random.new()
+
+ # Generate the salt
+- self.mkDigestSalt = rand.get_bytes(self.SALT_SIZE)
++ self.mkDigestSalt = rand.read(self.SALT_SIZE)
+
+ # Generate a random master key
+- self.masterKey = rand.get_bytes(self.keyBytes)
++ self.masterKey = rand.read(self.keyBytes)
+ self.ivGen.set_key(self.masterKey)
+
+ # generate the master key digest
+@@ -263,8 +263,8 @@
+ key.passwordIterations = iterations
+
+ # Generate a random salt for this key
+- rand = RandomPool(self.SALT_SIZE)
+- key.passwordSalt = rand.get_bytes(self.SALT_SIZE)
++ rand = Random.new()
++ key.passwordSalt = rand.read(self.SALT_SIZE)
+
+ # Hash the key using PBKDFv2
+ pbkdf = PBKDFv2.PBKDFv2()
diff --git a/x11-misc/revelation/files/revelation-0.4.14-xor.patch b/x11-misc/revelation/files/revelation-0.4.14-xor.patch
new file mode 100644
index 000000000000..bac45c68b18b
--- /dev/null
+++ b/x11-misc/revelation/files/revelation-0.4.14-xor.patch
@@ -0,0 +1,59 @@
+--- src/bundle/AfSplitter.py.~1~ 2017-07-15 10:25:21.503324481 +0200
++++ src/bundle/AfSplitter.py 2017-07-15 10:26:39.589273253 +0200
+@@ -43,13 +43,7 @@
+ # will need changed to use Crypto.Random (now in python-crypt git)
+ # see: http://lists.dlitz.net/pipermail/pycrypto/2008q3/000020.html
+ from Crypto import Random
+-from Crypto.Cipher import XOR
+-
+-def _xor(a, b):
+- """Internal function to performs XOR on two strings a and b"""
+-
+- xor = XOR.new(a)
+- return xor.encrypt(b)
++from Crypto import Util
+
+ def _diffuse(block, size, digest):
+ """Internal function to diffuse information inside a buffer"""
+@@ -91,11 +85,11 @@
+ # Get some random data
+ r = rand.rand(blockSize)
+ ret += r
+- bufblock = _xor(r, bufblock)
++ bufblock = strxor(r, bufblock)
+ bufblock = _diffuse(bufblock, blockSize, digesttype)
+ rand.add_event(bufblock)
+
+- ret += _xor(bufblock, data)
++ ret += strxor(bufblock, data)
+ return ret
+
+ def AFMerge(data, stripes, digesttype='sha1'):
+@@ -108,7 +102,7 @@
+
+ bufblock = "\x00" * blockSize
+ for i in range(0, stripes - 1):
+- bufblock = _xor(data[i*blockSize:(i+1)*blockSize], bufblock)
++ bufblock = strxor(data[i*blockSize:(i+1)*blockSize], bufblock)
+ bufblock = _diffuse(bufblock, blockSize, digesttype)
+
+- return _xor(data[(stripes-1)*blockSize:], bufblock)
++ return strxor(data[(stripes-1)*blockSize:], bufblock)
+--- src/bundle/PBKDFv2.py.~1~ 2012-05-26 14:19:34.000000000 +0200
++++ src/bundle/PBKDFv2.py 2017-07-15 10:31:27.009731785 +0200
+@@ -32,7 +32,7 @@
+ """
+
+ import struct, string, math, hashlib, hmac # RFC2104
+-from Crypto.Cipher import XOR
++from Crypto import Util
+
+ ################ PBKDFv2
+ class PBKDFv2:
+@@ -145,5 +145,4 @@
+ if len(a) != len(b):
+ raise ValueError("ERROR: Strings are of different size! %s %s" % (len(a), len(b)))
+
+- xor = XOR.new(a)
+- return xor.encrypt(b)
++ return strxor(a, b)
diff --git a/x11-misc/revelation/revelation-0.4.14-r2.ebuild b/x11-misc/revelation/revelation-0.4.14-r2.ebuild
new file mode 100644
index 000000000000..0d8989e0b829
--- /dev/null
+++ b/x11-misc/revelation/revelation-0.4.14-r2.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+PYTHON_COMPAT=( python2_7 )
+
+inherit python-single-r1 gnome2
+
+DESCRIPTION="A password manager for GNOME"
+HOMEPAGE="http://revelation.olasagasti.info/"
+SRC_URI="https://www.bitbucket.org/erikg/revelation/downloads/${P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE=""
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RESTRICT="test"
+
+RDEPEND="${PYTHON_DEPS}
+ dev-python/pygtk[${PYTHON_USEDEP}]
+ dev-python/pycryptodome[${PYTHON_USEDEP}]
+ dev-python/gconf-python[${PYTHON_USEDEP}]
+ dev-python/libgnome-python[${PYTHON_USEDEP}]
+ dev-python/dbus-python[${PYTHON_USEDEP}]
+ sys-libs/cracklib[python,${PYTHON_USEDEP}]
+"
+
+DEPEND="${RDEPEND}"
+
+src_prepare() {
+ epatch "${FILESDIR}/${P}-random.patch" \
+ "${FILESDIR}/${P}-xor.patch"
+ eapply_user
+}
+
+src_configure() {
+ gnome2_src_configure \
+ --without-applet \
+ --disable-desktop-update \
+ --disable-mime-update
+}
+
+src_install() {
+ gnome2_src_install
+ python_fix_shebang "${ED}"
+}