mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-19 10:09:19 +02:00
* Patch from Jan Bruns to add some functions. Fixes issue #40038
(cherry picked from commit 8a807a4e1c
)
marcov: one pchar->pansichar manual adaptation
This commit is contained in:
parent
36fb8f9a39
commit
7346c03417
@ -1320,9 +1320,12 @@ var
|
|||||||
function EVP_DigestSignInit(ctx: PEVP_MD_CTX; pctx: PPEVP_PKEY_CTX; const evptype: PEVP_MD; e: PENGINE; pkey: PEVP_PKEY): cint;
|
function EVP_DigestSignInit(ctx: PEVP_MD_CTX; pctx: PPEVP_PKEY_CTX; const evptype: PEVP_MD; e: PENGINE; pkey: PEVP_PKEY): cint;
|
||||||
function EVP_DigestSignUpdate(ctx: PEVP_MD_CTX; const data: Pointer; cnt: csize_t): cint;
|
function EVP_DigestSignUpdate(ctx: PEVP_MD_CTX; const data: Pointer; cnt: csize_t): cint;
|
||||||
function EVP_DigestSignFinal(ctx: PEVP_MD_CTX; sigret: PByte; siglen: pcsize_t): cint;
|
function EVP_DigestSignFinal(ctx: PEVP_MD_CTX; sigret: PByte; siglen: pcsize_t): cint;
|
||||||
|
function EVP_DigestSign(ctx: PEVP_MD_CTX; sigret:Pbyte; siglen:pcsize_t; const tbs : pointer; tbslen: csize_t): cint;
|
||||||
|
|
||||||
function EVP_DigestVerifyInit(ctx: PEVP_MD_CTX; pctx: PPEVP_PKEY_CTX; const evptype: PEVP_MD; e: PENGINE; pkey: PEVP_PKEY): cint;
|
function EVP_DigestVerifyInit(ctx: PEVP_MD_CTX; pctx: PPEVP_PKEY_CTX; const evptype: PEVP_MD; e: PENGINE; pkey: PEVP_PKEY): cint;
|
||||||
function EVP_DigestVerifyUpdate(ctx: PEVP_MD_CTX; const data: Pointer; cnt: csize_t): cint;
|
function EVP_DigestVerifyUpdate(ctx: PEVP_MD_CTX; const data: Pointer; cnt: csize_t): cint;
|
||||||
function EVP_DigestVerifyFinal(ctx: PEVP_MD_CTX; sig: PByte; siglen: csize_t): cint;
|
function EVP_DigestVerifyFinal(ctx: PEVP_MD_CTX; sig: PByte; siglen: csize_t): cint;
|
||||||
|
function EVP_DigestVerify(ctx: PEVP_MD_CTX; sig: PByte; siglen: csize_t; const tbs : pointer; tbslen: csize_t): cint;
|
||||||
//function
|
//function
|
||||||
//
|
//
|
||||||
// PEM Functions - pem.h
|
// PEM Functions - pem.h
|
||||||
@ -1582,7 +1585,7 @@ type
|
|||||||
TSslLibraryInit = function:cInt; cdecl;
|
TSslLibraryInit = function:cInt; cdecl;
|
||||||
TOPENSSL_INIT_new = function : POPENSSL_INIT_SETTINGS; cdecl;
|
TOPENSSL_INIT_new = function : POPENSSL_INIT_SETTINGS; cdecl;
|
||||||
TOPENSSL_INIT_free = procedure(settings : POPENSSL_INIT_SETTINGS); cdecl;
|
TOPENSSL_INIT_free = procedure(settings : POPENSSL_INIT_SETTINGS); cdecl;
|
||||||
TOPENSSL_INIT_set_config_appname = function (settings:POPENSSL_INIT_SETTINGS; config_file : Pchar) : cint;
|
TOPENSSL_INIT_set_config_appname = function (settings:POPENSSL_INIT_SETTINGS; config_file : PAnsiChar) : cint; cdecl;
|
||||||
|
|
||||||
TOPENSSL_init_ssl = function ( opts: uint64_t ; settings : POPENSSL_INIT_SETTINGS) : cint; cdecl;
|
TOPENSSL_init_ssl = function ( opts: uint64_t ; settings : POPENSSL_INIT_SETTINGS) : cint; cdecl;
|
||||||
TOPENSSL_cleanup = procedure; cdecl;
|
TOPENSSL_cleanup = procedure; cdecl;
|
||||||
@ -1790,9 +1793,12 @@ type
|
|||||||
//
|
//
|
||||||
TEVP_MD_CTX_new = function(): PEVP_MD_CTX; cdecl;
|
TEVP_MD_CTX_new = function(): PEVP_MD_CTX; cdecl;
|
||||||
TEVP_MD_CTX_free = procedure(ctx: PEVP_MD_CTX); cdecl;
|
TEVP_MD_CTX_free = procedure(ctx: PEVP_MD_CTX); cdecl;
|
||||||
TEVP_DigestSignVerifyInit = function(ctx: PEVP_MD_CTX; pctx: PPEVP_PKEY_CTX; const evptype: PEVP_MD; e: PENGINE; pkey: PEVP_PKEY): cint;
|
TEVP_DigestSignVerifyInit = function(ctx: PEVP_MD_CTX; pctx: PPEVP_PKEY_CTX; const evptype: PEVP_MD; e: PENGINE; pkey: PEVP_PKEY): cint; cdecl;
|
||||||
TEVP_DigestSignFinal = function(ctx: PEVP_MD_CTX; sigret: PByte; siglen: pcsize_t): cint;
|
TEVP_DigestSignFinal = function(ctx: PEVP_MD_CTX; sigret: PByte; siglen: pcsize_t): cint; cdecl;
|
||||||
TEVP_DigestVerifyFinal = function(ctx: PEVP_MD_CTX; sig: PByte; siglen: csize_t): cint;
|
TEVP_DigestSign = function(ctx: PEVP_MD_CTX; sigret : Pbyte; siglen : pcsize_t; const tbs : Pbyte; tbslen : csize_t) : cint; cdecl;
|
||||||
|
TEVP_DigestVerifyFinal = function(ctx: PEVP_MD_CTX; sig: PByte; siglen: csize_t): cint; cdecl;
|
||||||
|
TEVP_DigestVerify = function(ctx: PEVP_MD_CTX; sig: PByte; siglen: csize_t; tbs : PByte; tbslen: csize_t): cint; cdecl;
|
||||||
|
|
||||||
// PEM functions
|
// PEM functions
|
||||||
|
|
||||||
TPEM_read_bio_PrivateKey = function(bp: PBIO; X: PPEVP_PKEY;
|
TPEM_read_bio_PrivateKey = function(bp: PBIO; X: PPEVP_PKEY;
|
||||||
@ -2050,8 +2056,10 @@ var
|
|||||||
_EVP_MD_CTX_free : TEVP_MD_CTX_free = nil;
|
_EVP_MD_CTX_free : TEVP_MD_CTX_free = nil;
|
||||||
_EVP_DigestSignInit: TEVP_DigestSignVerifyInit = nil;
|
_EVP_DigestSignInit: TEVP_DigestSignVerifyInit = nil;
|
||||||
_EVP_DigestSignFinal: TEVP_DigestSignFinal = nil;
|
_EVP_DigestSignFinal: TEVP_DigestSignFinal = nil;
|
||||||
|
_EVP_DigestSign: TEVP_DigestSign = nil;
|
||||||
_EVP_DigestVerifyInit: TEVP_DigestSignVerifyInit = nil;
|
_EVP_DigestVerifyInit: TEVP_DigestSignVerifyInit = nil;
|
||||||
_EVP_DigestVerifyFinal: TEVP_DigestVerifyFinal = nil;
|
_EVP_DigestVerifyFinal: TEVP_DigestVerifyFinal = nil;
|
||||||
|
_EVP_DigestVerify: TEVP_DigestVerify = nil;
|
||||||
// PEM
|
// PEM
|
||||||
_PEM_read_bio_PrivateKey: TPEM_read_bio_PrivateKey = nil;
|
_PEM_read_bio_PrivateKey: TPEM_read_bio_PrivateKey = nil;
|
||||||
|
|
||||||
@ -3635,6 +3643,14 @@ begin
|
|||||||
Result := -1;
|
Result := -1;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function EVP_DigestVerify(ctx: PEVP_MD_CTX; sig: PByte; siglen: csize_t; const tbs : pointer; tbslen: csize_t): cint;
|
||||||
|
begin
|
||||||
|
if InitSSLInterface and Assigned(_EVP_DigestVerify) then
|
||||||
|
Result := _EVP_DigestVerify(ctx, sig, siglen, tbs, tbslen)
|
||||||
|
else
|
||||||
|
Result := -1;
|
||||||
|
end;
|
||||||
|
|
||||||
function EVP_PKEY_size(key: pEVP_PKEY): integer;
|
function EVP_PKEY_size(key: pEVP_PKEY): integer;
|
||||||
begin
|
begin
|
||||||
if InitSSLInterface and Assigned(_EVP_PKEY_size) then
|
if InitSSLInterface and Assigned(_EVP_PKEY_size) then
|
||||||
@ -3812,6 +3828,15 @@ begin
|
|||||||
Result := -1;
|
Result := -1;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function EVP_DigestSign(ctx: PEVP_MD_CTX; sigret:Pbyte; siglen:pcsize_t; const tbs : pointer; tbslen: csize_t): cint;
|
||||||
|
begin
|
||||||
|
if InitSSLInterface and Assigned(_EVP_DigestSign) then
|
||||||
|
Result := _EVP_DigestSign(ctx, sigret, siglen,tbs,tbslen)
|
||||||
|
else
|
||||||
|
Result := -1;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
function EVP_DigestVerifyInit(ctx: PEVP_MD_CTX; pctx: PPEVP_PKEY_CTX; const evptype: PEVP_MD; e: PENGINE; pkey: PEVP_PKEY): cint;
|
function EVP_DigestVerifyInit(ctx: PEVP_MD_CTX; pctx: PPEVP_PKEY_CTX; const evptype: PEVP_MD; e: PENGINE; pkey: PEVP_PKEY): cint;
|
||||||
begin
|
begin
|
||||||
if InitSSLInterface and Assigned(_EVP_DigestVerifyInit) then
|
if InitSSLInterface and Assigned(_EVP_DigestVerifyInit) then
|
||||||
@ -5000,6 +5025,8 @@ begin
|
|||||||
_SslWrite := GetProcAddr(SSLLibHandle, 'SSL_write');
|
_SslWrite := GetProcAddr(SSLLibHandle, 'SSL_write');
|
||||||
_SslPending := GetProcAddr(SSLLibHandle, 'SSL_pending');
|
_SslPending := GetProcAddr(SSLLibHandle, 'SSL_pending');
|
||||||
_SslGetPeerCertificate := GetProcAddr(SSLLibHandle, 'SSL_get_peer_certificate');
|
_SslGetPeerCertificate := GetProcAddr(SSLLibHandle, 'SSL_get_peer_certificate');
|
||||||
|
if not Assigned(_SslGetPeerCertificate)
|
||||||
|
then _SslGetPeerCertificate := GetProcAddr(SSLLibHandle, 'SSL_get1_peer_certificate');
|
||||||
_SslGetVersion := GetProcAddr(SSLLibHandle, 'SSL_get_version');
|
_SslGetVersion := GetProcAddr(SSLLibHandle, 'SSL_get_version');
|
||||||
_SslCtxSetVerify := GetProcAddr(SSLLibHandle, 'SSL_CTX_set_verify');
|
_SslCtxSetVerify := GetProcAddr(SSLLibHandle, 'SSL_CTX_set_verify');
|
||||||
_SslGetCurrentCipher := GetProcAddr(SSLLibHandle, 'SSL_get_current_cipher');
|
_SslGetCurrentCipher := GetProcAddr(SSLLibHandle, 'SSL_get_current_cipher');
|
||||||
@ -5104,8 +5131,10 @@ begin
|
|||||||
_EVP_MD_CTX_free := GetProcAddr(SSLUtilHandle, 'EVP_MD_CTX_free');
|
_EVP_MD_CTX_free := GetProcAddr(SSLUtilHandle, 'EVP_MD_CTX_free');
|
||||||
_EVP_DigestSignInit := GetProcAddr(SSLUtilHandle, 'EVP_DigestSignInit');
|
_EVP_DigestSignInit := GetProcAddr(SSLUtilHandle, 'EVP_DigestSignInit');
|
||||||
_EVP_DigestSignFinal := GetProcAddr(SSLUtilHandle, 'EVP_DigestSignFinal');
|
_EVP_DigestSignFinal := GetProcAddr(SSLUtilHandle, 'EVP_DigestSignFinal');
|
||||||
|
_EVP_DigestSign := GetProcAddr(SSLUtilHandle, 'EVP_DigestSign');
|
||||||
_EVP_DigestVerifyInit := GetProcAddr(SSLUtilHandle, 'EVP_DigestVerifyInit');
|
_EVP_DigestVerifyInit := GetProcAddr(SSLUtilHandle, 'EVP_DigestVerifyInit');
|
||||||
_EVP_DigestVerifyFinal := GetProcAddr(SSLUtilHandle, 'EVP_DigestVerifyFinal');
|
_EVP_DigestVerifyFinal := GetProcAddr(SSLUtilHandle, 'EVP_DigestVerifyFinal');
|
||||||
|
_EVP_DigestVerify := GetProcAddr(SSLUtilHandle, 'EVP_DigestVerify');
|
||||||
// 3DES functions
|
// 3DES functions
|
||||||
_DESsetoddparity := GetProcAddr(SSLUtilHandle, 'DES_set_odd_parity');
|
_DESsetoddparity := GetProcAddr(SSLUtilHandle, 'DES_set_odd_parity');
|
||||||
_DESsetkeychecked := GetProcAddr(SSLUtilHandle, 'DES_set_key_checked');
|
_DESsetkeychecked := GetProcAddr(SSLUtilHandle, 'DES_set_key_checked');
|
||||||
@ -5629,8 +5658,10 @@ begin
|
|||||||
_EVP_MD_CTX_free := nil;
|
_EVP_MD_CTX_free := nil;
|
||||||
_EVP_DigestSignInit := nil;
|
_EVP_DigestSignInit := nil;
|
||||||
_EVP_DigestSignFinal := nil;
|
_EVP_DigestSignFinal := nil;
|
||||||
|
_EVP_DigestSign := nil;
|
||||||
_EVP_DigestVerifyInit := nil;
|
_EVP_DigestVerifyInit := nil;
|
||||||
_EVP_DigestVerifyFinal := nil;
|
_EVP_DigestVerifyFinal := nil;
|
||||||
|
_EVP_DigestVerify := nil;
|
||||||
|
|
||||||
// PEM
|
// PEM
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user