mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-09 21:48:35 +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_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_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_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_DigestVerify(ctx: PEVP_MD_CTX; sig: PByte; siglen: csize_t; const tbs : pointer; tbslen: csize_t): cint;
|
||||
//function
|
||||
//
|
||||
// PEM Functions - pem.h
|
||||
@ -1582,7 +1585,7 @@ type
|
||||
TSslLibraryInit = function:cInt; cdecl;
|
||||
TOPENSSL_INIT_new = function : 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_cleanup = procedure; cdecl;
|
||||
@ -1790,9 +1793,12 @@ type
|
||||
//
|
||||
TEVP_MD_CTX_new = function(): 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_DigestSignFinal = function(ctx: PEVP_MD_CTX; sigret: PByte; siglen: pcsize_t): cint;
|
||||
TEVP_DigestVerifyFinal = function(ctx: PEVP_MD_CTX; sig: PByte; siglen: csize_t): 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; cdecl;
|
||||
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
|
||||
|
||||
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_DigestSignInit: TEVP_DigestSignVerifyInit = nil;
|
||||
_EVP_DigestSignFinal: TEVP_DigestSignFinal = nil;
|
||||
_EVP_DigestSign: TEVP_DigestSign = nil;
|
||||
_EVP_DigestVerifyInit: TEVP_DigestSignVerifyInit = nil;
|
||||
_EVP_DigestVerifyFinal: TEVP_DigestVerifyFinal = nil;
|
||||
_EVP_DigestVerify: TEVP_DigestVerify = nil;
|
||||
// PEM
|
||||
_PEM_read_bio_PrivateKey: TPEM_read_bio_PrivateKey = nil;
|
||||
|
||||
@ -3635,6 +3643,14 @@ begin
|
||||
Result := -1;
|
||||
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;
|
||||
begin
|
||||
if InitSSLInterface and Assigned(_EVP_PKEY_size) then
|
||||
@ -3812,6 +3828,15 @@ begin
|
||||
Result := -1;
|
||||
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;
|
||||
begin
|
||||
if InitSSLInterface and Assigned(_EVP_DigestVerifyInit) then
|
||||
@ -5000,6 +5025,8 @@ begin
|
||||
_SslWrite := GetProcAddr(SSLLibHandle, 'SSL_write');
|
||||
_SslPending := GetProcAddr(SSLLibHandle, 'SSL_pending');
|
||||
_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');
|
||||
_SslCtxSetVerify := GetProcAddr(SSLLibHandle, 'SSL_CTX_set_verify');
|
||||
_SslGetCurrentCipher := GetProcAddr(SSLLibHandle, 'SSL_get_current_cipher');
|
||||
@ -5104,8 +5131,10 @@ begin
|
||||
_EVP_MD_CTX_free := GetProcAddr(SSLUtilHandle, 'EVP_MD_CTX_free');
|
||||
_EVP_DigestSignInit := GetProcAddr(SSLUtilHandle, 'EVP_DigestSignInit');
|
||||
_EVP_DigestSignFinal := GetProcAddr(SSLUtilHandle, 'EVP_DigestSignFinal');
|
||||
_EVP_DigestSign := GetProcAddr(SSLUtilHandle, 'EVP_DigestSign');
|
||||
_EVP_DigestVerifyInit := GetProcAddr(SSLUtilHandle, 'EVP_DigestVerifyInit');
|
||||
_EVP_DigestVerifyFinal := GetProcAddr(SSLUtilHandle, 'EVP_DigestVerifyFinal');
|
||||
_EVP_DigestVerify := GetProcAddr(SSLUtilHandle, 'EVP_DigestVerify');
|
||||
// 3DES functions
|
||||
_DESsetoddparity := GetProcAddr(SSLUtilHandle, 'DES_set_odd_parity');
|
||||
_DESsetkeychecked := GetProcAddr(SSLUtilHandle, 'DES_set_key_checked');
|
||||
@ -5629,8 +5658,10 @@ begin
|
||||
_EVP_MD_CTX_free := nil;
|
||||
_EVP_DigestSignInit := nil;
|
||||
_EVP_DigestSignFinal := nil;
|
||||
_EVP_DigestSign := nil;
|
||||
_EVP_DigestVerifyInit := nil;
|
||||
_EVP_DigestVerifyFinal := nil;
|
||||
_EVP_DigestVerify := nil;
|
||||
|
||||
// PEM
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user