Skip to content

Commit

Permalink
Adding PEM_(read|write)_bio_PUBKEY() and EVP_MD_CTX_...() functions t…
Browse files Browse the repository at this point in the history
…o IdSSLOpenSSLHeaders.pas and IdSSLOpenSSLHeaders_static.pas units.
  • Loading branch information
RemyLebeau authored and RemyLebeau committed Dec 17, 2018
1 parent 5001bca commit 98f6823
Show file tree
Hide file tree
Showing 2 changed files with 109 additions and 18 deletions.
98 changes: 82 additions & 16 deletions Lib/Protocols/IdSSLOpenSSLHeaders.pas
Original file line number Diff line number Diff line change
Expand Up @@ -16740,6 +16740,8 @@ DTLS1_STATE = record
{$EXTERNALSYM _PEM_read_bio_NETSCAPE_CERT_SEQUENCE}
_PEM_read_bio_NETSCAPE_CERT_SEQUENCE : function(bp : PBIO; x : PPNETSCAPE_CERT_SEQUENCE;
cb : ppem_password_cb; u : Pointer) : PNETSCAPE_CERT_SEQUENCE cdecl = nil;
{$EXTERNALSYM _PEM_read_bio_PUBKEY}
_PEM_read_bio_PUBKEY : function(bp : PBIO; x : PPEVP_PKEY; cb : ppem_password_cb; u : Pointer) : PEVP_PKEY cdecl = nil;
{$EXTERNALSYM _PEM_write_bio_X509}
_PEM_write_bio_X509 : function(b: PBIO; x: PX509): TIdC_INT cdecl = nil;
{$EXTERNALSYM _PEM_write_bio_X509_REQ}
Expand Down Expand Up @@ -16769,6 +16771,8 @@ DTLS1_STATE = record
{$EXTERNALSYM _PEM_write_bio_PKCS8PrivateKey}
_PEM_write_bio_PKCS8PrivateKey : function(bp: PBIO; key: PEVP_PKEY; enc: PEVP_CIPHER;
kstr: PIdAnsiChar; klen: TIdC_INT; cb: ppem_password_cb; u: Pointer): TIdC_INT cdecl = nil;
{$EXTERNALSYM _PEM_write_bio_PUBKEY}
_PEM_write_bio_PUBKEY : function(bp: PBIO; x: PEVP_PKEY): TIdC_INT cdecl = nil;
{$ENDIF}
{$ELSE}
{$IFNDEF OPENSSL_NO_BIO}
Expand All @@ -16781,7 +16785,7 @@ DTLS1_STATE = record
x: PPointer; cb: ppem_password_cb; u:Pointer): Pointer cdecl = nil;
{$ENDIF}
{$ENDIF}
{$EXTERNALSYM PEM_X509_INFO_read_bio}
{$EXTERNALSYM PEM_X509_INFO_read_bio}
PEM_X509_INFO_read_bio : function (bp : PBIO; sk : PSTACK_OF_X509_INFO;
cb : ppem_password_cb; u : Pointer) : PSTACK_OF_X509_INFO cdecl = nil;
{$EXTERNALSYM PEM_read_bio_X509_AUX}
Expand Down Expand Up @@ -16919,6 +16923,15 @@ DTLS1_STATE = record
EVP_MD_CTX_init : procedure(ctx : PEVP_MD_CTX) cdecl = nil;
{$EXTERNALSYM EVP_MD_CTX_cleanup}
EVP_MD_CTX_cleanup : function(ctx : PEVP_MD_CTX) : TIdC_Int cdecl = nil;
{$EXTERNALSYM EVP_MD_CTX_create}
EVP_MD_CTX_create: function : PEVP_MD_CTX cdecl = nil;
{$EXTERNALSYM EVP_MD_CTX_destroy}
EVP_MD_CTX_destroy : procedure(ctx : PEVP_MD_CTX) cdecl = nil;
{$EXTERNALSYM EVP_MD_CTX_copy}
EVP_MD_CTX_copy : function(_out : PEVP_MD_CTX; _in: PEVP_MD_CTX): TIdC_INT cdecl = nil;
{$EXTERNALSYM EVP_MD_CTX_copy_ex}
EVP_MD_CTX_copy_ex : function (_out : PEVP_MD_CTX; const _in: PEVP_MD_CTX): TIdC_INT cdecl = nil;

{$IFNDEF OPENSSL_NO_DES}
{$EXTERNALSYM EVP_des_ede3_cbc}
EVP_des_ede3_cbc : function: PEVP_CIPHER cdecl = nil;
Expand Down Expand Up @@ -17036,6 +17049,10 @@ DTLS1_STATE = record
i2d_NETSCAPE_CERT_SEQUENCE : function(x: PNETSCAPE_CERT_SEQUENCE; buf: PPByte): TIdC_INT cdecl = nil;
{$EXTERNALSYM d2i_NETSCAPE_CERT_SEQUENCE}
d2i_NETSCAPE_CERT_SEQUENCE : function(pr : PNETSCAPE_CERT_SEQUENCE; _in : PPByte; len : TIdC_INT): PNETSCAPE_CERT_SEQUENCE cdecl = nil;
{$EXTERNALSYM i2d_PUBKEY}
i2d_PUBKEY : function(x: PEVP_PKEY; buf: PPByte): TIdC_INT cdecl = nil;
{$EXTERNALSYM d2i_PUBKEY}
d2i_PUBKEY : function(pr : PEVP_PKEY; _in : PPByte; len : TIdC_INT): PEVP_PKEY cdecl = nil;

{$IFNDEF OPENSSL_NO_BIO}
{$EXTERNALSYM d2i_X509_bio}
Expand Down Expand Up @@ -18593,7 +18610,8 @@ function PEM_read_bio_DSAparams(bp : PBIO; x : PPDSA; cb : ppem_password_cb; u :
{$EXTERNALSYM PEM_read_bio_NETSCAPE_CERT_SEQUENCE}
function PEM_read_bio_NETSCAPE_CERT_SEQUENCE(bp : PBIO; x : PPNETSCAPE_CERT_SEQUENCE;
cb : ppem_password_cb; u : Pointer) : PNETSCAPE_CERT_SEQUENCE;

{$EXTERNALSYM PEM_read_bio_PUBKEY}
function PEM_read_bio_PUBKEY(bp : PBIO; x : PPEVP_PKEY; cb : ppem_password_cb; u : Pointer) : PEVP_PKEY;
{$EXTERNALSYM PEM_write_bio_X509}
function PEM_write_bio_X509(bp: PBIO; x: PX509): TIdC_INT;
{$EXTERNALSYM PEM_write_bio_X509_REQ}
Expand All @@ -18608,17 +18626,19 @@ function PEM_write_bio_RSAPublicKey(bp : PBIO; x : PRSA) : TIdC_INT;
{$EXTERNALSYM PEM_write_bio_DSAPrivateKey}
function PEM_write_bio_DSAPrivateKey( bp : PBIO; x : PDSA; const enc : PEVP_CIPHER;
kstr : PIdAnsiChar; klen : TIdC_INT; cb : Ppem_password_cb; u : Pointer) : TIdC_INT;
{$EXTERNALSYM PEM_write_bio_PrivateKey}
{$EXTERNALSYM PEM_write_bio_PrivateKey}
function PEM_write_bio_PrivateKey(bp : PBIO; x : PEVP_PKEY; const enc : PEVP_CIPHER;
kstr : PIdAnsiChar; klen : TIdC_INT; cb : Ppem_password_cb; u : Pointer) : TIdC_INT;
{$EXTERNALSYM PEM_write_bio_PKCS7}
function PEM_write_bio_PKCS7(bp : PBIO; x : PPKCS7) : TIdC_INT;
{$EXTERNALSYM PEM_write_bio_DHparams}
{$EXTERNALSYM PEM_write_bio_DHparams}
function PEM_write_bio_DHparams(bp : PBIO; x : PDH): TIdC_INT;
{$EXTERNALSYM PEM_write_bio_DSAparams}
{$EXTERNALSYM PEM_write_bio_DSAparams}
function PEM_write_bio_DSAparams(bp : PBIO; x : PDSA) : TIdC_INT;
{$EXTERNALSYM PEM_write_bio_NETSCAPE_CERT_SEQUENCE}
{$EXTERNALSYM PEM_write_bio_NETSCAPE_CERT_SEQUENCE}
function PEM_write_bio_NETSCAPE_CERT_SEQUENCE(bp : PBIO; x : PDSA) : TIdC_INT;
{$EXTERNALSYM PEM_write_bio_PUBKEY}
function PEM_write_bio_PUBKEY(bp : PBIO; x : PEVP_PKEY) : TIdC_INT;

{$EXTERNALSYM OPENSSL_malloc}
function OPENSSL_malloc(aSize:TIdC_INT):Pointer;
Expand Down Expand Up @@ -21735,6 +21755,8 @@ function GetCryptLibHandle : TIdLibHandle;
{CH fn_d2i_NETSCAPE_SPKAC = 'd2i_NETSCAPE_SPKAC'; } {Do not localize}
fn_i2d_NETSCAPE_CERT_SEQUENCE = 'i2d_NETSCAPE_CERT_SEQUENCE'; {Do not localize}
fn_d2i_NETSCAPE_CERT_SEQUENCE = 'd2i_NETSCAPE_CERT_SEQUENCE'; {Do not localize}
fn_i2d_PUBKEY = 'i2d_PUBKEY'; {Do not localize}
fn_d2i_PUBKEY = 'd2i_PUBKEY'; {Do not localize}

{CH fn_NETSCAPE_CERT_SEQUENCE_new = 'NETSCAPE_CERT_SEQUENCE_new'; } {Do not localize}
{CH fn_NETSCAPE_CERT_SEQUENCE_free = 'NETSCAPE_CERT_SEQUENCE_free'; } {Do not localize}
Expand Down Expand Up @@ -21913,6 +21935,8 @@ function GetCryptLibHandle : TIdLibHandle;
fn_PEM_read_bio_PrivateKey = 'PEM_read_bio_PrivateKey'; {Do not localize}
fn_PEM_write_bio_PrivateKey = 'PEM_write_bio_PrivateKey'; {Do not localize}
fn_PEM_write_bio_PKCS8PrivateKey = 'PEM_write_bio_PKCS8PrivateKey'; {Do not localize}
fn_PEM_read_bio_PUBKEY = 'PEM_read_bio_PUBKEY'; {Do not localize}
fn_PEM_write_bio_PUBKEY = 'PEM_write_bio_PUBKEY'; {Do not localize}
{$ENDIF}
{$ENDIF}
fn_PEM_read_bio_X509_AUX = 'PEM_read_bio_X509_AUX'; {Do not localize}
Expand Down Expand Up @@ -23049,6 +23073,8 @@ function Load: Boolean;
@d2i_DHparams := LoadFunctionCLib(fn_d2i_DHparams); //Used by Indy
@i2d_NETSCAPE_CERT_SEQUENCE := LoadFunctionCLib(fn_i2d_NETSCAPE_CERT_SEQUENCE,False);
@d2i_NETSCAPE_CERT_SEQUENCE := LoadFunctionCLib(fn_i2d_NETSCAPE_CERT_SEQUENCE); //Indy by Indy
@i2d_PUBKEY := LoadFunctionCLib(fn_i2d_PUBKEY,False);
@d2i_PUBKEY := LoadFunctionCLib(fn_i2d_PUBKEY,False);

//X509
@X509_get_default_cert_file := LoadFunctionCLib(fn_X509_get_default_cert_file); //Used by Indy
Expand Down Expand Up @@ -23084,6 +23110,7 @@ function Load: Boolean;
@_PEM_read_bio_DHparams := LoadFunctionCLib(fn_PEM_read_bio_DHparams, False);
@_PEM_read_bio_DSAparams := LoadFunctionCLib(fn_PEM_read_bio_DSAparams, False);
@_PEM_read_bio_NETSCAPE_CERT_SEQUENCE := LoadFunctionCLib(fn_PEM_read_bio_NETSCAPE_CERT_SEQUENCE,False);
@_PEM_read_bio_PUBKEY := LoadFunctionCLib(fn_PEM_read_bio_PUBKEY,False);
@_PEM_write_bio_X509 := LoadFunctionCLib(fn_PEM_write_bio_X509,False);
@_PEM_write_bio_X509_REQ := LoadFunctionCLib(fn_PEM_write_bio_X509_REQ,False);
@_PEM_write_bio_X509_CRL := LoadFunctionCLib( fn_PEM_write_bio_X509_CRL,False);
Expand All @@ -23096,6 +23123,7 @@ function Load: Boolean;
@_PEM_write_bio_DSAparams := LoadFunctionCLib(fn_PEM_write_bio_DSAparams,False);
@_PEM_write_bio_NETSCAPE_CERT_SEQUENCE := LoadFunctionCLib(fn_PEM_write_bio_NETSCAPE_CERT_SEQUENCE,False);
@_PEM_write_bio_PKCS8PrivateKey := LoadFunctionCLib(fn_PEM_write_bio_PKCS8PrivateKey,False);
@_PEM_write_bio_PUBKEY := LoadFunctionCLib(fn_PEM_write_bio_PUBKEY,False);
{$ELSE}
@PEM_ASN1_write_bio := LoadFunctionCLib(fn_PEM_ASN1_write_bio,False);
@PEM_ASN1_read_bio := LoadFunctionCLib(fn_PEM_ASN1_read_bio,False);
Expand Down Expand Up @@ -23284,20 +23312,26 @@ function Load: Boolean;
{$endif}

@EVP_MD_CTX_init := LoadFunctionCLib(fn_EVP_MD_CTX_init);
@EVP_MD_CTX_cleanup := LoadFunctionCLib(fn_EVP_MD_CTX_cleanup);
@EVP_MD_CTX_create := LoadFunctionCLib(fn_EVP_MD_CTX_create, False);
@EVP_MD_CTX_destroy := LoadFunctionCLib(fn_EVP_MD_CTX_destroy, False);
@EVP_MD_CTX_copy := LoadFunctionCLib(fn_EVP_MD_CTX_copy, False);
@EVP_MD_CTX_copy_ex := LoadFunctionCLib(fn_EVP_MD_CTX_copy_ex, False);
//@EVP_MD_CTX_set_flags := LoadFunctionCLib(fn_EVP_MD_CTX_set_flags, False);
//@EVP_MD_CTX_clear_flags := LoadFunctionCLib(fn_EVP_MD_CTX_clear_flags, False);
//@EVP_MD_CTX_test_flags := LoadFunctionCLib(fn_EVP_MD_CTX_test_flags, False);

@EVP_DigestInit := LoadFunctionCLib(fn_EVP_DigestInit);
@EVP_DigestInit_ex := LoadFunctionCLib(fn_EVP_DigestInit_ex);
@EVP_DigestUpdate := LoadFunctionCLib(fn_EVP_DigestUpdate);
@EVP_DigestFinal_ex := LoadFunctionCLib(fn_EVP_DigestFinal_ex);


@EVP_EncryptInit := LoadFunctionCLib(fn_EVP_EncryptInit,False);
@EVP_EncryptInit_ex := LoadFunctionCLib(fn_EVP_EncryptInit_ex,False);
@EVP_EncryptUpdate := LoadFunctionCLib(fn_EVP_EncryptUpdate);
@EVP_EncryptFinal_ex := LoadFunctionCLib(fn_EVP_EncryptFinal_ex,False);
@EVP_EncryptFinal := LoadFunctionCLib(fn_EVP_EncryptFinal,False);



@EVP_DecryptInit := LoadFunctionCLib(fn_EVP_DecryptInit,False);
@EVP_DecryptInit_ex := LoadFunctionCLib(fn_EVP_DecryptInit_ex,False);
@EVP_DecryptUpdate := LoadFunctionCLib(fn_EVP_DecryptUpdate);
Expand All @@ -23320,7 +23354,6 @@ function Load: Boolean;
@EVP_SealFinal := LoadFunctionCLib(fn_EVP_SealFinal,False);

@EVP_EncodeInit := LoadFunctionCLib(fn_EVP_EncodeInit,False);

@EVP_EncodeUpdate := LoadFunctionCLib(fn_EVP_EncodeUpdate,False);
@EVP_EncodeFinal := LoadFunctionCLib(fn_EVP_EncodeFinal,False);
@EVP_EncodeBlock := LoadFunctionCLib(fn_EVP_EncodeBlock,False);
Expand All @@ -23330,7 +23363,6 @@ function Load: Boolean;
@EVP_DecodeBlock:= LoadFunctionCLib(fn_EVP_DecodeBlock,False);

@EVP_CIPHER_CTX_init:= LoadFunctionCLib(fn_EVP_CIPHER_CTX_init,False);

@EVP_CIPHER_CTX_cleanup:= LoadFunctionCLib(fn_EVP_CIPHER_CTX_cleanup,False);
@EVP_CIPHER_CTX_new:= LoadFunctionCLib(fn_EVP_CIPHER_CTX_new,False);
@EVP_CIPHER_CTX_free:= LoadFunctionCLib(fn_EVP_CIPHER_CTX_free,False);
Expand All @@ -23347,8 +23379,6 @@ function Load: Boolean;
@BIO_set_cipher :=LoadFunctionCLib(fn_BIO_set_cipher,False);
{$endif}

@EVP_MD_CTX_cleanup := LoadFunctionCLib(fn_EVP_MD_CTX_cleanup,False);

@EVP_PKEY_type := LoadFunctionCLib(fn_EVP_PKEY_type);
@EVP_PKEY_new := LoadFunctionCLib(fn_EVP_PKEY_new);
@EVP_PKEY_free := LoadFunctionCLib(fn_EVP_PKEY_free); //USED in Indy
Expand Down Expand Up @@ -23808,6 +23838,8 @@ procedure InitializeFuncPointers;
@d2i_DHparams := nil;
@i2d_NETSCAPE_CERT_SEQUENCE := nil;
@d2i_NETSCAPE_CERT_SEQUENCE := nil;
@i2d_PUBKEY := nil;
@d2i_PUBKEY := nil;
//X509
@X509_get_default_cert_file := nil;
@X509_get_default_cert_file_env := nil;
Expand Down Expand Up @@ -23838,6 +23870,7 @@ procedure InitializeFuncPointers;
@_PEM_read_bio_DHparams := nil;
@_PEM_read_bio_DSAparams := nil;
@_PEM_read_bio_NETSCAPE_CERT_SEQUENCE := nil;
@_PEM_read_bio_PUBKEY := nil;
@_PEM_write_bio_X509 := nil;
@_PEM_write_bio_X509_REQ := nil;
@_PEM_write_bio_X509_CRL := nil;
Expand All @@ -23849,9 +23882,8 @@ procedure InitializeFuncPointers;
@_PEM_write_bio_DHparams := nil;
@_PEM_write_bio_DSAparams := nil;
@_PEM_write_bio_NETSCAPE_CERT_SEQUENCE := nil;

@_PEM_write_bio_PKCS8PrivateKey := nil;

@_PEM_write_bio_PUBKEY := nil;
{$ELSE}
@PEM_ASN1_write_bio := nil;
@PEM_ASN1_read_bio := nil;
Expand Down Expand Up @@ -24041,6 +24073,15 @@ procedure InitializeFuncPointers;
{$endif}

@EVP_MD_CTX_init := nil;
@EVP_MD_CTX_cleanup := nil;
@EVP_MD_CTX_create := nil;
@EVP_MD_CTX_destroy := nil;
@EVP_MD_CTX_copy := nil;
@EVP_MD_CTX_copy_ex := nil;
//@EVP_MD_CTX_set_flags := nil;
//@EVP_MD_CTX_clear_flags := nil;
//@EVP_MD_CTX_test_flags := nil;

@EVP_DigestInit := nil;
@EVP_DigestInit_ex := nil;
@EVP_DigestUpdate := nil;
Expand Down Expand Up @@ -24231,7 +24272,6 @@ procedure InitializeFuncPointers;
BIO_f_reliable := nil;
BIO_set_cipher := nil;
{$endif}
@EVP_MD_CTX_cleanup := nil;
@EVP_PKEY_type := nil;
@EVP_PKEY_new := nil;
@EVP_PKEY_free := nil;
Expand Down Expand Up @@ -25729,6 +25769,11 @@ function PEM_read_bio_NETSCAPE_CERT_SEQUENCE(bp : PBIO; x : PPNETSCAPE_CERT_SEQU
Result := PEM_ASN1_read_bio( d2i_of_void(d2i_NETSCAPE_CERT_SEQUENCE),PEM_STRING_X509,bp,Pointer(x),cb, u);
end;

function PEM_read_bio_PUBKEY(bp : PBIO; x: PPEVP_PKEY; cb: ppem_password_cb; u: Pointer): PEVP_PKEY;
begin
Result := PEM_ASN1_read_bio( d2i_of_void(d2i_PUBKEY),PEM_STRING_PUBLIC,bp,Pointer(x),cb, u);
end;

function PEM_write_bio_X509(bp: PBIO; x: PX509): TIdC_INT;
{$IFDEF USE_INLINE} inline; {$ENDIF}
begin
Expand Down Expand Up @@ -25826,6 +25871,14 @@ function PEM_write_bio_NETSCAPE_CERT_SEQUENCE(bp : PBIO; x : PDSA) : TIdC_INT;
Assert(Result<>0);
end;

function PEM_write_bio_PUBKEY(bp: PBIO; x : PEVP_PKEY): TIdC_INT;
begin
Assert(bp<>nil);
Assert(x<>nil);
Result := PEM_ASN1_write_bio(i2d_of_void(i2d_PUBKEY), PEM_STRING_PUBLIC, bp, PIdAnsiChar(x), nil, nil, 0, nil, nil);
Assert(Result<>0);
end;

{$ELSE}

function PEM_read_bio_X509(bp: PBIO; x: PPX509; cb: ppem_password_cb; u: Pointer): PX509;
Expand Down Expand Up @@ -25895,6 +25948,12 @@ function PEM_read_bio_NETSCAPE_CERT_SEQUENCE(bp : PBIO; x : PPNETSCAPE_CERT_SEQU
Result := _PEM_read_bio_NETSCAPE_CERT_SEQUENCE(bp, x, cb, u);
end;

function PEM_read_bio_PUBKEY(bp : PBIO; x : PPEVP_PKEY; cb : ppem_password_cb; u : Pointer) : PEVP_PKEY;
{$IFDEF USE_INLINE} inline; {$ENDIF}
begin
Result := _PEM_read_bio_PUBKEY(bp, x, cb, u);
end;

function PEM_write_bio_X509(bp: PBIO; x: PX509): TIdC_INT;
{$IFDEF USE_INLINE} inline; {$ENDIF}
begin
Expand Down Expand Up @@ -25963,6 +26022,13 @@ function PEM_write_bio_NETSCAPE_CERT_SEQUENCE(bp : PBIO; x : PDSA) : TIdC_INT;
begin
Result := _PEM_write_bio_NETSCAPE_CERT_SEQUENCE(bp, x);
end;

function PEM_write_bio_PUBKEY(bp : PBIO; x : PEVP_PKEY): TIdC_INT;
{$IFDEF USE_INLINE} inline; {$ENDIF}
begin
Result := _PEM_write_bio_PUBKEY(bp, x);
end;

{$ENDIF}

function OPENSSL_malloc(aSize:TIdC_INT):Pointer;
Expand Down
29 changes: 27 additions & 2 deletions Lib/Protocols/IdSSLOpenSSLHeaders_static.pas
Original file line number Diff line number Diff line change
Expand Up @@ -424,6 +424,10 @@ function i2d_NETSCAPE_CERT_SEQUENCE_func(x: PNETSCAPE_CERT_SEQUENCE; buf: PPByte

function d2i_NETSCAPE_CERT_SEQUENCE_func(pr : PNETSCAPE_CERT_SEQUENCE; _in : PPByte; len : TIdC_INT): PNETSCAPE_CERT_SEQUENCE cdecl; external SSLCLIB_LIB_name name 'd2i_NETSCAPE_CERT_SEQUENCE';

function i2d_PUBKEY_func(x: PEVP_PKEY; buf: PPByte): TIdC_INT cdecl; external SSLCLIB_LIB_name name 'i2d_PUBKEY';

function d2i_PUBKEY_func(pr : PEVP_PKEY; _in : PPByte; len : TIdC_INT): PEVP_PKEY cdecl; external SSLCLIB_LIB_name name 'd2i_PUBKEY';

function X509_get_default_cert_file_func: PIdAnsiChar cdecl; external SSLCLIB_LIB_name name 'X509_get_default_cert_file';

function X509_get_default_cert_file_env_func: PIdAnsiChar cdecl; external SSLCLIB_LIB_name name 'X509_get_default_cert_file_env';
Expand Down Expand Up @@ -489,6 +493,8 @@ function PEM_read_bio_DSAparams_func(bp : PBIO; x : PPDSA; cb : ppem_password_cb
function PEM_read_bio_NETSCAPE_CERT_SEQUENCE_func(bp : PBIO; x : PPNETSCAPE_CERT_SEQUENCE;
cb : ppem_password_cb; u : Pointer) : PNETSCAPE_CERT_SEQUENCE cdecl; external SSLCLIB_LIB_name name 'PEM_read_bio_NETSCAPE_CERT_SEQUENCE';

function PEM_read_bio_PUBKEY_func(bp : PBIO; x : PPEVP_PKEY; cb : ppem_password_cb; u : Pointer) : PEVP_PKEY cdecl; external SSLCLIB_LIB_name name 'PEM_read_bio_PUBKEY';

function PEM_write_bio_X509_func(b: PBIO; x: PX509): TIdC_INT cdecl; external SSLCLIB_LIB_name name 'PEM_write_bio_X509';

function PEM_write_bio_X509_REQ_func(bp: PBIO; x: PX509_REQ): TIdC_INT cdecl; external SSLCLIB_LIB_name name 'PEM_write_bio_X509_REQ';
Expand Down Expand Up @@ -516,6 +522,8 @@ function PEM_write_bio_NETSCAPE_CERT_SEQUENCE_func(bp : PBIO; x : PDSA) : TIdC_I

function PEM_write_bio_PKCS8PrivateKey_func(bp: PBIO; key: PEVP_PKEY; enc: PEVP_CIPHER;
kstr: PIdAnsiChar; klen: TIdC_INT; cb: ppem_password_cb; u: Pointer): TIdC_INT cdecl; external SSLCLIB_LIB_name name 'PEM_write_bio_PKCS8PrivateKey';

function PEM_write_bio_PUBKEY_func(bp: PBIO; x: PEVP_PKEY): TIdC_INT cdecl; external SSLCLIB_LIB_name name 'PEM_write_bio_PUBKEY';
{$ELSE}
function PEM_ASN1_write_bio_func(i2d: i2d_of_void; const name: PIdAnsiChar;
bp: PBIO; x: PIdAnsiChar; const enc: PEVP_CIPHER; kstr: PIdAnsiChar; klen: TIdC_INT;
Expand Down Expand Up @@ -565,14 +573,22 @@ function EVP_md4_func: PEVP_MD cdecl; external SSLCLIB_LIB_name name 'EVP_md4';

procedure EVP_MD_CTX_init_proc(ctx : PEVP_MD_CTX) cdecl; external SSLCLIB_LIB_name name 'EVP_MD_CTX_init';

function EVP_MD_CTX_cleanup_func(ctx : PEVP_MD_CTX) : TIdC_Int cdecl; external SSLCLIB_LIB_name name 'EVP_MD_CTX_cleanup';

function EVP_MD_CTX_create_func : PEVP_MD_CTX cdecl; external SSLCLIB_LIB_name name 'EVP_MD_CTX_create';

procedure EVP_MD_CTX_destroy_proc(ctx : PEVP_MD_CTX) cdecl; external SSLCLIB_LIB_name name 'EVP_MD_CTX_destroy';

function EVP_MD_CTX_copy_func(_out : PEVP_MD_CTX; _in: PEVP_MD_CTX) : TIdC_INT cdecl; external SSLCLIB_LIB_name name 'EVP_MD_CTX_copy';

function EVP_MD_CTX_copy_ex_func(_out : PEVP_MD_CTX; const _in: PEVP_MD_CTX) : TIdC_INT cdecl; external SSLCLIB_LIB_name name 'EVP_MD_CTX_copy_ex';

function EVP_DigestInit_ex_func(ctx : PEVP_MD_CTX; const AType : PEVP_MD; impl : PENGINE) : TIdC_Int cdecl; external SSLCLIB_LIB_name name 'EVP_DigestInit_ex';

function EVP_DigestUpdate_func(ctx : PEVP_MD_CTX; d : Pointer; cnt : size_t) : TIdC_Int cdecl; external SSLCLIB_LIB_name name 'EVP_DigestUpdate';

function EVP_DigestFinal_ex_func(ctx : PEVP_MD_CTX; md : PIdAnsiChar; var s : TIdC_UInt) : TIdC_Int cdecl; external SSLCLIB_LIB_name name 'EVP_DigestFinal_ex';

function EVP_MD_CTX_cleanup_func(ctx : PEVP_MD_CTX) : TIdC_Int cdecl; external SSLCLIB_LIB_name name 'EVP_MD_CTX_cleanup';

function EVP_PKEY_type_func(_type : TIdC_INT): TIdC_INT cdecl; external SSLCLIB_LIB_name name 'EVP_PKEY_type';

function EVP_PKEY_new_func: PEVP_PKEY cdecl; external SSLCLIB_LIB_name name 'EVP_PKEY_new';
Expand Down Expand Up @@ -906,6 +922,8 @@ procedure LoadSymbols;
d2i_DHparams := d2i_DHparams_func;
i2d_NETSCAPE_CERT_SEQUENCE := i2d_NETSCAPE_CERT_SEQUENCE_func;
d2i_NETSCAPE_CERT_SEQUENCE := d2i_NETSCAPE_CERT_SEQUENCE_func;
i2d_PUBKEY := i2d_PUBKEY_func;
d2i_PUBKEY := d2i_PUBKEY_func;

//X509
X509_get_default_cert_file := X509_get_default_cert_file_func;
Expand Down Expand Up @@ -941,6 +959,7 @@ procedure LoadSymbols;
_PEM_read_bio_DHparams := PEM_read_bio_DHparams_func;
_PEM_read_bio_DSAparams := PEM_read_bio_DSAparams_func;
_PEM_read_bio_NETSCAPE_CERT_SEQUENCE := PEM_read_bio_NETSCAPE_CERT_SEQUENCE_func;
_PEM_read_bio_PUBKEY := PEM_read_bio_PUBKEY_func;
_PEM_write_bio_X509 := PEM_write_bio_X509_func;
_PEM_write_bio_X509_REQ := PEM_write_bio_X509_REQ_func;
_PEM_write_bio_X509_CRL := PEM_write_bio_X509_CRL_func;
Expand All @@ -953,6 +972,7 @@ procedure LoadSymbols;
_PEM_write_bio_DSAparams := PEM_write_bio_DSAparams_func;
_PEM_write_bio_NETSCAPE_CERT_SEQUENCE := PEM_write_bio_NETSCAPE_CERT_SEQUENCE_func;
_PEM_write_bio_PKCS8PrivateKey := PEM_write_bio_PKCS8PrivateKey_func;
_PEM_write_bio_PUBKEY := PEM_write_bio_PUBKEY_func;
{$ELSE}
PEM_ASN1_write_bio := PEM_ASN1_write_bio_func;
PEM_ASN1_read_bio := PEM_ASN1_read_bio_func;
Expand Down Expand Up @@ -984,6 +1004,11 @@ procedure LoadSymbols;
// EVP_md2 := EVP_md2_func;
// {$ENDIF}
EVP_MD_CTX_init := EVP_MD_CTX_init_proc;
EVP_MD_CTX_cleanup := EVP_MD_CTX_cleanup_func;
EVP_MD_CTX_create := EVP_MD_CTX_create_func;
EVP_MD_CTX_destroy := EVP_MD_CTX_destroy_proc;
EVP_MD_CTX_copy := EVP_MD_CTX_copy_func;
EVP_MD_CTX_copy_ex := EVP_MD_CTX_copy_ex_func;
EVP_DigestInit_ex := EVP_DigestInit_ex_func;
EVP_DigestUpdate := EVP_DigestUpdate_func;
EVP_DigestFinal_ex := EVP_DigestFinal_ex_func;
Expand Down

0 comments on commit 98f6823

Please sign in to comment.