OpenSSL | Aanvullende functies laden

Standaard definieert Indy de meest voorkomende OpenSSL-functies die nodig zijn om communicatie te versleutelen, maar soms hebt u meer functies nodig voor versleuteling, ondertekening, enz. U kunt de methode IdOpenSSLSetLoadFuncsCallback gebruiken om een callback toe te wijzen voor het dynamisch laden van aanvullende OpenSSL-functies.

 

IdOpenSSLSetLoadFuncsCallback


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

Dit is een proceduretype dat dient als callback; het neemt drie parameters:

 


Het doel van deze callback is om de gebruiker in staat te stellen aangepaste verwerking uit te voeren wanneer OpenSSL-functies worden geladen, zoals het loggen van mislukte functieladingen of het afhandelen van fouten.

 

 

IdOpenSSLSetUnLoadFuncsCallback

 


TIdUnLoadSSLFuncsCallback = procedure();

Het dient als terugroepfunctie voor het lossen van SSL-functies. Dit is nuttig voor het uitvoeren van opruimwerkzaamheden wanneer OpenSSL-bibliotheken worden gelost.

 

 

Aangepaste functie laden

Hieronder vindt u een eenvoudig voorbeeld van hoe u de functie EVP_PKEY_CTX_set_rsa_padding laadt met behulp van de callbacks.

 


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);