summaryrefslogtreecommitdiff
path: root/packages/openssl
diff options
context:
space:
mode:
authormarco <marco@3ad0048d-3df7-0310-abae-a5850022a9f2>2011-06-02 16:19:52 +0000
committermarco <marco@3ad0048d-3df7-0310-abae-a5850022a9f2>2011-06-02 16:19:52 +0000
commita93b420040dedf71382b2a28914fe09f9565d99d (patch)
treeffbfcf39f4eed53d4e7265be7f5bff13b3a0f7bb /packages/openssl
parente139116c556186811027ea31c05afcc606fc0b6e (diff)
downloadfpc-a93b420040dedf71382b2a28914fe09f9565d99d.tar.gz
* patch from mantis #19039 which adds dessetkey
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@17634 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages/openssl')
-rw-r--r--packages/openssl/src/openssl.pas16
1 files changed, 16 insertions, 0 deletions
diff --git a/packages/openssl/src/openssl.pas b/packages/openssl/src/openssl.pas
index e4ab1a3221..bdffb437a2 100644
--- a/packages/openssl/src/openssl.pas
+++ b/packages/openssl/src/openssl.pas
@@ -604,6 +604,10 @@ const
BIO_C_SET_EX_ARG = 153;
BIO_C_GET_EX_ARG = 154;
+//DES modes
+ DES_ENCRYPT = 1;
+ DES_DECRYPT = 0;
+
var
SSLLibHandle: TLibHandle = 0;
SSLUtilHandle: TLibHandle = 0;
@@ -706,6 +710,7 @@ var
// 3DES functions
procedure DESsetoddparity(Key: des_cblock);
+ function DESsetkey(key: des_cblock; schedule: des_key_schedule): cInt;
function DESsetkeychecked(key: des_cblock; schedule: des_key_schedule): cInt;
procedure DESecbencrypt(Input: des_cblock; output: des_cblock; ks: des_key_schedule; enc: cInt);
@@ -942,6 +947,7 @@ type
// 3DES functions
TDESsetoddparity = procedure(Key: des_cblock); cdecl;
TDESsetkeychecked = function(key: des_cblock; schedule: des_key_schedule): cInt; cdecl;
+ TDESsetkey = TDESsetkeychecked;
TDESecbencrypt = procedure(Input: des_cblock; output: des_cblock; ks: des_key_schedule; enc: cInt); cdecl;
//thread lock functions
TCRYPTOnumlocks = function: cInt; cdecl;
@@ -1146,6 +1152,7 @@ var
// 3DES functions
_DESsetoddparity: TDESsetoddparity = nil;
+ _DESsetkey : TDESsetkey = nil;
_DESsetkeychecked: TDESsetkeychecked = nil;
_DESecbencrypt: TDESecbencrypt = nil;
//thread lock functions
@@ -1921,6 +1928,14 @@ begin
_DESsetoddparity(Key);
end;
+function DESsetkey(key: des_cblock; schedule: des_key_schedule): cInt;
+begin
+ if InitSSLInterface and Assigned(_DESsetkey) then
+ Result := _DESsetkey(key, schedule)
+ else
+ Result := -1;
+end;
+
function DESsetkeychecked(key: des_cblock; schedule: des_key_schedule): cInt;
begin
if InitlibeaInterface and Assigned(_DESsetkeychecked) then
@@ -2690,6 +2705,7 @@ begin
// 3DES functions
_DESsetoddparity := GetProcAddr(SSLUtilHandle, 'des_set_odd_parity', AVerboseLoading);
_DESsetkeychecked := GetProcAddr(SSLUtilHandle, 'des_set_key_checked', AVerboseLoading);
+ _DESsetkey := GetProcAddr(SSLUtilHandle, 'des_set_key', AVerboseLoading);
_DESecbencrypt := GetProcAddr(SSLUtilHandle, 'des_ecb_encrypt', AVerboseLoading);
//
_CRYPTOnumlocks := GetProcAddr(SSLUtilHandle, 'CRYPTO_num_locks', AVerboseLoading);