[arch-commits] Commit in softhsm (4 files)
Massimiliano Torromeo
mtorromeo at archlinux.org
Wed May 20 07:49:23 UTC 2020
Date: Wednesday, May 20, 2020 @ 07:49:22
Author: mtorromeo
Revision: 630374
archrelease: copy trunk to community-x86_64
Added:
softhsm/repos/
softhsm/repos/community-x86_64/
softhsm/repos/community-x86_64/PKGBUILD
(from rev 630373, softhsm/trunk/PKGBUILD)
softhsm/repos/community-x86_64/softhsm-2.6.1-rh1831086-exit.patch
(from rev 630373, softhsm/trunk/softhsm-2.6.1-rh1831086-exit.patch)
------------------------------------+
PKGBUILD | 58 ++++++++++++++++++++++++++++
softhsm-2.6.1-rh1831086-exit.patch | 72 +++++++++++++++++++++++++++++++++++
2 files changed, 130 insertions(+)
Copied: softhsm/repos/community-x86_64/PKGBUILD (from rev 630373, softhsm/trunk/PKGBUILD)
===================================================================
--- repos/community-x86_64/PKGBUILD (rev 0)
+++ repos/community-x86_64/PKGBUILD 2020-05-20 07:49:22 UTC (rev 630374)
@@ -0,0 +1,58 @@
+# Maintainer: Massimiliano Torromeo <massimiliano.torromeo at gmail.com>
+# Contributor: Javier Torres <javitonino [at] gmail [dot] com>
+
+pkgname=softhsm
+pkgver=2.6.1
+pkgrel=1
+pkgdesc="Software PKCS#11 store"
+arch=('x86_64')
+url="https://www.opendnssec.org/softhsm/"
+license=('BSD')
+depends=('botan' 'sqlite3' 'openssl' 'p11-kit')
+checkdepends=('cppunit')
+backup=("etc/softhsm2.conf")
+options=(!libtool)
+source=("https://dist.opendnssec.org/source/$pkgname-$pkgver.tar.gz"{,.sig}
+ "softhsm-2.6.1-rh1831086-exit.patch")
+sha256sums=('61249473054bcd1811519ef9a989a880a7bdcc36d317c9c25457fc614df475f2'
+ 'SKIP'
+ '163338a73ab1bcc475e07b96f054d3c8f67ac9d2637b8f74ddaa97aa6b4171e1')
+validpgpkeys=('4D0388CE86BB398B387B663041F623BE4FCB0B94')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -p1 -i "$srcdir/softhsm-2.6.1-rh1831086-exit.patch"
+ sed -i 's:^full_libdir=":#full_libdir=":g' configure.ac
+ sed -i "s:libdir)/@PACKAGE@:libdir):" Makefile.in
+ autoreconf -vfi
+ ./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib/pkcs11 \
+ --datarootdir=/usr/share \
+ --localstatedir=/var \
+ --sysconfdir=/etc \
+ --with-p11-kit=/usr/share/p11-kit/modules/ \
+ --with-migrate \
+ --enable-visibility \
+ --enable-ecc \
+ --enable-eddsa \
+ --disable-gost
+ make
+}
+
+check() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make check
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+ install -Dm0644 "LICENSE" "$pkgdir/usr/share/licenses/softhsm/LICENSE"
+ rm "$pkgdir/etc/softhsm2.conf.sample"
+
+ cd "$pkgdir/usr/lib"
+ install -dm0755 softhsm
+ ln -s pkcs11/libsofthsm2.so softhsm/
+ ln -s pkcs11/libsofthsm2.so
+}
Copied: softhsm/repos/community-x86_64/softhsm-2.6.1-rh1831086-exit.patch (from rev 630373, softhsm/trunk/softhsm-2.6.1-rh1831086-exit.patch)
===================================================================
--- repos/community-x86_64/softhsm-2.6.1-rh1831086-exit.patch (rev 0)
+++ repos/community-x86_64/softhsm-2.6.1-rh1831086-exit.patch 2020-05-20 07:49:22 UTC (rev 630374)
@@ -0,0 +1,72 @@
+diff --git a/src/lib/crypto/OSSLCryptoFactory.cpp b/src/lib/crypto/OSSLCryptoFactory.cpp
+index 32daca2..ace4bcb 100644
+--- a/src/lib/crypto/OSSLCryptoFactory.cpp
++++ b/src/lib/crypto/OSSLCryptoFactory.cpp
+@@ -226,31 +226,49 @@ err:
+ // Destructor
+ OSSLCryptoFactory::~OSSLCryptoFactory()
+ {
+-#ifdef WITH_GOST
+- // Finish the GOST engine
+- if (eg != NULL)
++ bool ossl_shutdown = false;
++
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
++ // OpenSSL 1.1.0+ will register an atexit() handler to run
++ // OPENSSL_cleanup(). If that has already happened we must
++ // not attempt to free any ENGINEs because they'll already
++ // have been destroyed and the use-after-free would cause
++ // a deadlock or crash.
++ //
++ // Detect that situation because reinitialisation will fail
++ // after OPENSSL_cleanup() has run.
++ (void)ERR_set_mark();
++ ossl_shutdown = !OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_RDRAND, NULL);
++ (void)ERR_pop_to_mark();
++#endif
++ if (!ossl_shutdown)
+ {
+- ENGINE_finish(eg);
+- ENGINE_free(eg);
+- eg = NULL;
+- }
++#ifdef WITH_GOST
++ // Finish the GOST engine
++ if (eg != NULL)
++ {
++ ENGINE_finish(eg);
++ ENGINE_free(eg);
++ eg = NULL;
++ }
+ #endif
+
+- // Finish the rd_rand engine
+- ENGINE_finish(rdrand_engine);
+- ENGINE_free(rdrand_engine);
+- rdrand_engine = NULL;
++ // Finish the rd_rand engine
++ ENGINE_finish(rdrand_engine);
++ ENGINE_free(rdrand_engine);
++ rdrand_engine = NULL;
+
++ // Recycle locks
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
++ if (setLockingCallback)
++ {
++ CRYPTO_set_locking_callback(NULL);
++ }
++#endif
++ }
+ // Destroy the one-and-only RNG
+ delete rng;
+
+- // Recycle locks
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
+- if (setLockingCallback)
+- {
+- CRYPTO_set_locking_callback(NULL);
+- }
+-#endif
+ for (unsigned i = 0; i < nlocks; i++)
+ {
+ MutexFactory::i()->recycleMutex(locks[i]);
More information about the arch-commits
mailing list