* add ecryptfs-utils

This commit is contained in:
Alexander Baldeck 2019-03-27 10:57:55 +00:00
parent 05e52bed82
commit 2171a0896e
2 changed files with 115 additions and 0 deletions

39
ecryptfs-utils/PKGBUILD Normal file
View File

@ -0,0 +1,39 @@
# POWER Maintainer: Alexander Baldeck <alex.bldck@gmail.com>
# Maintainer: Timothy Redaelli <timothy.redaelli@gmail.com>
# Contributor: Richard Murri <admin@richardmurri.com>
# Contributor: Michal Krenek <mikos@sg1.cz>
pkgname=ecryptfs-utils
pkgver=111
pkgrel=3
arch=(x86_64 powerpc64le)
pkgdesc="Enterprise-class stacked cryptographic filesystem for Linux"
url="https://launchpad.net/ecryptfs"
license=('GPL')
makedepends=('swig' 'intltool' 'gettext' 'python2')
depends=('nss' 'pam')
optdepends=('python2: for python module')
source=("https://launchpad.net/ecryptfs/trunk/${pkgver}/+download/${pkgname}_${pkgver}.orig.tar.gz"
"${pkgname}_${pkgver}.orig.tar.gz.sig::https://launchpad.net/ecryptfs/trunk/${pkgver}/+download/..-${pkgname}_${pkgver}.orig.tar.gz.asc"
"openssl-1.1.x.patch")
md5sums=('83513228984f671930752c3518cac6fd'
'SKIP'
'bc69f5adcd397220bb8575252486c69f')
validpgpkeys=('E2D9E1C5F9F5D59291F4607D95E64373F1529469')
prepare() {
cd "${pkgname}-${pkgver}"
patch -Np0 -i $srcdir/openssl-1.1.x.patch
}
build() {
cd "${pkgname}-${pkgver}"
./configure --prefix=/usr --with-pamdir=/usr/lib/security PYTHON=python2
make
}
package() {
cd "${pkgname}-${pkgver}"
make DESTDIR="$pkgdir/" rootsbindir='/usr/bin' install
chmod +s "$pkgdir/usr/bin/mount.ecryptfs_private"
}

View File

@ -0,0 +1,76 @@
=== modified file 'src/key_mod/ecryptfs_key_mod_openssl.c'
--- src/key_mod/ecryptfs_key_mod_openssl.c 2013-10-25 19:45:09 +0000
+++ src/key_mod/ecryptfs_key_mod_openssl.c 2017-03-13 20:34:27 +0000
@@ -50,6 +50,20 @@
#include "../include/ecryptfs.h"
#include "../include/decision_graph.h"
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+void RSA_get0_key(const RSA *r,
+ const BIGNUM **n, const BIGNUM **e, const BIGNUM **d)
+{
+ if (n != NULL)
+ *n = r->n;
+ if (e != NULL)
+ *e = r->e;
+ if (d != NULL)
+ *d = r->d;
+}
+#endif
+
+
struct openssl_data {
char *path;
char *passphrase;
@@ -142,6 +156,7 @@
{
int len, nbits, ebits, i;
int nbytes, ebytes;
+ const BIGNUM *key_n, *key_e;
unsigned char *hash;
unsigned char *data = NULL;
int rc = 0;
@@ -152,11 +167,13 @@
rc = -ENOMEM;
goto out;
}
- nbits = BN_num_bits(key->n);
+ RSA_get0_key(key, &key_n, NULL, NULL);
+ nbits = BN_num_bits(key_n);
nbytes = nbits / 8;
if (nbits % 8)
nbytes++;
- ebits = BN_num_bits(key->e);
+ RSA_get0_key(key, NULL, &key_e, NULL);
+ ebits = BN_num_bits(key_e);
ebytes = ebits / 8;
if (ebits % 8)
ebytes++;
@@ -179,11 +196,13 @@
data[i++] = '\02';
data[i++] = (nbits >> 8);
data[i++] = nbits;
- BN_bn2bin(key->n, &(data[i]));
+ RSA_get0_key(key, &key_n, NULL, NULL);
+ BN_bn2bin(key_n, &(data[i]));
i += nbytes;
data[i++] = (ebits >> 8);
data[i++] = ebits;
- BN_bn2bin(key->e, &(data[i]));
+ RSA_get0_key(key, NULL, &key_e, NULL);
+ BN_bn2bin(key_e, &(data[i]));
i += ebytes;
SHA1(data, len + 3, hash);
to_hex(sig, (char *)hash, ECRYPTFS_SIG_SIZE);
@@ -278,7 +297,9 @@
BIO *in = NULL;
int rc;
+ #if OPENSSL_VERSION_NUMBER < 0x10100000L
CRYPTO_malloc_init();
+ #endif
ERR_load_crypto_strings();
OpenSSL_add_all_algorithms();
ENGINE_load_builtin_engines();