anchor.diff:      @HMAC_Final:= LoadFunctionCLib('HMAC_Final');
       @HMAC:= LoadFunctionCLib('HMAC');
       @HMAC_CTX_copy:= LoadFunctionCLib('HMAC_CTX_copy');
  -    @HMAC_CTX_set_flags:= LoadFunctionCLib('HMAC_CTX_set_flags');
  +
  +    @CRYPTO_free := LoadFunctionCLib('CRYPTO_free',False);
  +    if (Not Assigned(@CRYPTO_free)) then
  +      @CRYPTO_free := LoadFunctionCLib('OPENSSL_free',False);
     end;
   End;
   
  
positive.code:     app_data : Pointer;
    end;
    ecdh_kdf = function(const _in: Pointer; _inlen: TC_SIZE_T; _out: Pointer; var _outlen: TC_SIZE_T): pointer; cdecl;
    PHMAC_CTX = Pointer;
    PPHMAC_CTX = ^PHMAC_CTX;
    EVP_MD = record
      _type : TC_Int;
  
negative.code: function CaptureLastSSLError : String;
  begin
    {$IFDEF NO_ANSISTRING}
    Result := UBaseTypes.StrPas(ERR_error_string(ERR_get_error(),nil));
    {$ELSE}
    Result := ERR_error_string(ERR_get_error(),nil);
    {$ENDIF}
  