OpenSSL | Chargement de fonctions supplémentaires

Par défaut, Indy définit les fonctions OpenSSL les plus courantes nécessaires au chiffrement des communications, mais parfois vous avez besoin de fonctions supplémentaires pour le chiffrement, la signature, etc. Vous pouvez utiliser la méthode IdOpenSSLSetLoadFuncsCallback pour assigner un rappel permettant de charger dynamiquement des fonctions OpenSSL supplémentaires.

 

IdOpenSSLSetLoadFuncsCallback


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

Il s'agit d'un type de procédure servant de callback, qui prend trois paramètres :

 


L'objectif de ce callback est de permettre à l'utilisateur d'effectuer un traitement personnalisé lors du chargement des fonctions OpenSSL, comme la journalisation des chargements de fonctions échoués ou la gestion des erreurs.

 

 

IdOpenSSLSetUnLoadFuncsCallback

 


TIdUnLoadSSLFuncsCallback = procedure();

Il sert de rappel pour le déchargement des fonctions SSL. Ceci est utile pour effectuer un nettoyage lors du déchargement des bibliothèques OpenSSL.

 

 

Comment charger une fonction personnalisée

Vous trouverez ci-dessous un exemple simple montrant comment charger la fonction EVP_PKEY_CTX_set_rsa_padding à l'aide des 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);