qca-ossl: initial import

This commit is contained in:
Danny Rawlins 2013-11-02 10:33:12 +11:00
parent e2eb04c543
commit 2912cbbdfa
4 changed files with 190 additions and 0 deletions

6
qca-ossl/.footprint Normal file
View File

@ -0,0 +1,6 @@
drwxr-xr-x root/root usr/
drwxr-xr-x root/root usr/share/
drwxr-xr-x root/root usr/share/qt4/
drwxr-xr-x root/root usr/share/qt4/plugins/
drwxr-xr-x root/root usr/share/qt4/plugins/crypto/
-rwxr-xr-x root/root usr/share/qt4/plugins/crypto/libqca-ossl.so

2
qca-ossl/.md5sum Normal file
View File

@ -0,0 +1,2 @@
bdc62c01321385c7da8d27b3902910ce qca-ossl-2.0.0-beta3.tar.bz2
3b443b8e0347cf3cdf8f6c70e519a18f qca-ossl-openssl-1.0.0.patch

27
qca-ossl/Pkgfile Normal file
View File

@ -0,0 +1,27 @@
# Description: QCA openssl plugin.
# URL: http://delta.affinix.com/qca/
# Maintainer: Danny Rawlins, monster dot romster at gmail dot com
# Packager: Jose V Beneyto, sepen at crux dot nu
# Depends on: qca openssl
name=qca-ossl
version=2.0.0
release=1
source=(http://delta.affinix.com/download/qca/2.0/plugins/$name-$version-beta3.tar.bz2
qca-ossl-openssl-1.0.0.patch)
build() {
cd $name-$version-beta3
patch -p1 -i $SRC/qca-ossl-openssl-1.0.0.patch
# non-standard configure script
./configure \
--qtdir=/usr/share/qt4 \
--release \
--no-separate-debug-info
[ "$CXX" ] || CXX=g++
make CXX="$CXX" LINK="$CXX" $MAKEFLAGS
make INSTALL_ROOT=${PKG} install
}

View File

@ -0,0 +1,155 @@
diff -ru a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt 2007-06-29 23:10:53.000000000 +0200
+++ b/CMakeLists.txt 2010-04-18 04:05:09.000000000 +0200
@@ -1,5 +1,12 @@
# QCA OSSL
+INCLUDE(CheckFunctionExists)
+SET(CMAKE_REQUIRED_LIBRARIES ${OPENSSL_LIBRARIES})
+CHECK_FUNCTION_EXISTS(EVP_md2 HAVE_OPENSSL_MD2)
+IF (HAVE_OPENSSL_MD2)
+ ADD_DEFINITIONS(-DHAVE_OPENSSL_MD2)
+ENDIF (HAVE_OPENSSL_MD2)
+
SET(QCA_OSSL_SOURCES qca-ossl.cpp)
MY_AUTOMOC( QCA_OSSL_SOURCES )
diff -ru a/qca-ossl.cpp b/qca-ossl.cpp
--- a/qca-ossl.cpp 2007-12-11 07:34:57.000000000 +0100
+++ b/qca-ossl.cpp 2010-04-18 04:08:46.000000000 +0200
@@ -42,6 +42,15 @@
#define OSSL_097
#endif
+#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x10000000L
+// OpenSSL 1.0.0 makes a few changes that aren't very C++ friendly...
+// Among other things, CHECKED_PTR_OF returns a void*, but is used in
+// contexts requiring STACK pointers.
+#undef CHECKED_PTR_OF
+#define CHECKED_PTR_OF(type, p) \
+ ((_STACK*) (1 ? p : (type*)0))
+#endif
+
using namespace QCA;
namespace opensslQCAPlugin {
@@ -1771,8 +1780,10 @@
md = EVP_sha1();
else if(alg == EMSA3_MD5)
md = EVP_md5();
+#ifdef HAVE_OPENSSL_MD2
else if(alg == EMSA3_MD2)
md = EVP_md2();
+#endif
else if(alg == EMSA3_RIPEMD160)
md = EVP_ripemd160();
else if(alg == EMSA3_Raw)
@@ -1789,8 +1800,10 @@
md = EVP_sha1();
else if(alg == EMSA3_MD5)
md = EVP_md5();
+#ifdef HAVE_OPENSSL_MD2
else if(alg == EMSA3_MD2)
md = EVP_md2();
+#endif
else if(alg == EMSA3_RIPEMD160)
md = EVP_ripemd160();
else if(alg == EMSA3_Raw)
@@ -3385,9 +3398,11 @@
case NID_md5WithRSAEncryption:
p.sigalgo = QCA::EMSA3_MD5;
break;
+#ifdef HAVE_OPENSSL_MD2
case NID_md2WithRSAEncryption:
p.sigalgo = QCA::EMSA3_MD2;
break;
+#endif
case NID_ripemd160WithRSA:
p.sigalgo = QCA::EMSA3_RIPEMD160;
break;
@@ -3871,9 +3886,11 @@
case NID_md5WithRSAEncryption:
p.sigalgo = QCA::EMSA3_MD5;
break;
+#ifdef HAVE_OPENSSL_MD2
case NID_md2WithRSAEncryption:
p.sigalgo = QCA::EMSA3_MD2;
break;
+#endif
case NID_ripemd160WithRSA:
p.sigalgo = QCA::EMSA3_RIPEMD160;
break;
@@ -4061,9 +4078,11 @@
case NID_md5WithRSAEncryption:
p.sigalgo = QCA::EMSA3_MD5;
break;
+#ifdef HAVE_OPENSSL_MD2
case NID_md2WithRSAEncryption:
p.sigalgo = QCA::EMSA3_MD2;
break;
+#endif
case NID_ripemd160WithRSA:
p.sigalgo = QCA::EMSA3_RIPEMD160;
break;
@@ -6582,7 +6601,9 @@
list += "sha1";
list += "sha0";
list += "ripemd160";
+#ifdef HAVE_OPENSSL_MD2
list += "md2";
+#endif
list += "md4";
list += "md5";
#ifdef SHA224_DIGEST_LENGTH
@@ -6597,9 +6618,11 @@
#ifdef SHA512_DIGEST_LENGTH
list += "sha512";
#endif
+/*
#ifdef OBJ_whirlpool
list += "whirlpool";
#endif
+*/
return list;
}
@@ -6757,7 +6780,9 @@
list += all_hash_types();
list += all_mac_types();
list += all_cipher_types();
+#ifdef HAVE_OPENSSL_MD2
list += "pbkdf1(md2)";
+#endif
list += "pbkdf1(sha1)";
list += "pbkdf2(sha1)";
list += "pkey";
@@ -6788,8 +6813,10 @@
return new opensslHashContext( EVP_sha(), this, type);
else if ( type == "ripemd160" )
return new opensslHashContext( EVP_ripemd160(), this, type);
+#ifdef HAVE_OPENSSL_MD2
else if ( type == "md2" )
return new opensslHashContext( EVP_md2(), this, type);
+#endif
else if ( type == "md4" )
return new opensslHashContext( EVP_md4(), this, type);
else if ( type == "md5" )
@@ -6810,14 +6837,18 @@
else if ( type == "sha512" )
return new opensslHashContext( EVP_sha512(), this, type);
#endif
+/*
#ifdef OBJ_whirlpool
else if ( type == "whirlpool" )
return new opensslHashContext( EVP_whirlpool(), this, type);
#endif
+*/
else if ( type == "pbkdf1(sha1)" )
return new opensslPbkdf1Context( EVP_sha1(), this, type );
+#ifdef HAVE_OPENSSL_MD2
else if ( type == "pbkdf1(md2)" )
return new opensslPbkdf1Context( EVP_md2(), this, type );
+#endif
else if ( type == "pbkdf2(sha1)" )
return new opensslPbkdf2Context( this, type );
else if ( type == "hmac(md5)" )