OpenSSL | Zusätzliche Funktionen laden

Standardmäßig definiert Indy die gängigsten OpenSSL-Funktionen, die zur Verschlüsselung der Kommunikation benötigt werden, aber manchmal benötigen Sie mehr Funktionen für Verschlüsselung, Signierung usw. Sie können die Methode IdOpenSSLSetLoadFuncsCallback verwenden, um einen Callback zum dynamischen Laden zusätzlicher OpenSSL-Funktionen zuzuweisen.

 

IdOpenSSLSetLoadFuncsCallback


TIdLoadSSLFuncsCallback = procedure(hIdSSL: TIdLibHandle; hIdCrypto: TIdLibHandle; const FailedLoadList: TStringList);

Dies ist ein Prozedurtyp, der als Callback dient; er nimmt drei Parameter:

 


Der Zweck dieses Callbacks besteht darin, dem Benutzer eine benutzerdefinierte Verarbeitung zu ermöglichen, wenn OpenSSL-Funktionen geladen werden, wie das Protokollieren fehlgeschlagener Funktionsladevorgänge oder das Behandeln von Fehlern.

 

 

IdOpenSSLSetUnLoadFuncsCallback

 


TIdUnLoadSSLFuncsCallback = procedure();

Es dient als Callback zum Entladen von SSL-Funktionen. Dies ist nützlich, um beim Entladen der OpenSSL-Bibliotheken Aufräumarbeiten durchzuführen.

 

 

So laden Sie eine benutzerdefinierte Funktion

Nachfolgend finden Sie ein einfaches Beispiel, wie die Funktion EVP_PKEY_CTX_set_rsa_padding mithilfe der Callbacks geladen wird.

 


var
  EVP_PKEY_CTX_set_rsa_padding : function(ctx: PEVP_PKEY_CTX; pad: Integer): Integer; cdecl;

procedure DoOpenSSLLoadFuncsCallback(hIdSSL: TIdLibHandle; hIdCrypto:
    TIdLibHandle; const FailedLoadList: TStringList);
begin
  @EVP_PKEY_CTX_set_rsa_padding := LoadLibFunction(hIdCrypto, 'EVP_PKEY_CTX_set_rsa_padding');
end;

procedure DoOpenSSLUnLoadFuncsCallback;
begin
  @EVP_PKEY_CTX_set_rsa_padding := nil;
end;

IdOpenSSLSetLoadFuncsCallback(DoOpenSSLLoadFuncsCallback);
IdOpenSSLSetUnLoadFuncsCallback(DoOpenSSLUnLoadFuncsCallback);