diff options
author | marco <marco@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2011-06-02 16:19:52 +0000 |
---|---|---|
committer | marco <marco@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2011-06-02 16:19:52 +0000 |
commit | a93b420040dedf71382b2a28914fe09f9565d99d (patch) | |
tree | ffbfcf39f4eed53d4e7265be7f5bff13b3a0f7bb /packages/openssl | |
parent | e139116c556186811027ea31c05afcc606fc0b6e (diff) | |
download | fpc-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.pas | 16 |
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); |