forked from ports/contrib
156 lines
4.1 KiB
Diff
156 lines
4.1 KiB
Diff
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)" )
|