anchor.diff:      @SHA256_Transform:= LoadFunctionCLib('SHA256_Transform');
       @SHA512:= LoadFunctionCLib('SHA512');
   
  -    @RIPEMD160_Init:= LoadFunctionCLib('RIPEMD160_Init');
  -    @RIPEMD160_Update:= LoadFunctionCLib('RIPEMD160_Update');
  -    @RIPEMD160_Final:= LoadFunctionCLib('RIPEMD160_Final');
       @RIPEMD160:= LoadFunctionCLib('RIPEMD160');
  -    @RIPEMD160_Transform:= LoadFunctionCLib('RIPEMD160_Transform');
   
       @ECDSA_SIG_new:= LoadFunctionCLib('ECDSA_SIG_new');
       @ECDSA_SIG_free:= LoadFunctionCLib('ECDSA_SIG_free');
  
positive.code:   sysutils;
  
  var hCrypt: THandle = 0;
  
  function SSLCryptHandle: THandle;
  begin
    Result := hCrypt;
  end;
  
  function LoadSSLCrypt: Boolean;
  begin
    If hCrypt=0 then begin
      {$IFDEF UNIX}
      hCrypt := LoadLibrary(SSL_C_LIB);
      {$ELSE}
        {$IFDEF FPC}
      hCrypt := LoadLibrary(PAnsiChar(SSL_C_LIB));
        {$ELSE}
      hCrypt := LoadLibrary(PWideChar(SSL_C_LIB));
        {$ENDIF}
      {$ENDIF}
    end;
    Result := hCrypt <> 0;
  end;
  
negative.code:     @HMAC_Final:= LoadFunctionCLib('HMAC_Final');
      @HMAC:= LoadFunctionCLib('HMAC');
      @HMAC_CTX_copy:= LoadFunctionCLib('HMAC_CTX_copy');
  
      @CRYPTO_free := LoadFunctionCLib('CRYPTO_free',False);
      if (Not Assigned(@CRYPTO_free)) then
        @CRYPTO_free := LoadFunctionCLib('OPENSSL_free',False);
    end;
  End;
  
  