anchor.diff:    BN_free(BNy);
   end;
   
  -class function TCrypto.HexaToRaw(const HexaString: AnsiString): TRawBytes;
  +class function TCrypto.HexaToRaw(const HexaString: String): TRawBytes;
   Var P : PAnsiChar;
    lc : AnsiString;
    i : Integer;
  
positive.code:   FPrivateKey := Value;
  end;
  
  function TECPrivateKey.SetPrivateKeyFromHexa(EC_OpenSSL_NID : Word; const hexa : AnsiString) : Boolean;
  var bn : PBIGNUM;
    ctx : PBN_CTX;
    pub_key : PEC_POINT;
  begin
    Result := False;
    bn := BN_new;
    try
      if BN_hex2bn(@bn,PAnsiChar(hexa))=0 then Raise ECryptoException.Create('Invalid hexa string to convert to Hexadecimal value');
  
      if Assigned(FPrivateKey) then EC_KEY_free(FPrivateKey);
      FEC_OpenSSL_NID := EC_OpenSSL_NID;
  
negative.code:   TCrypto = Class
    private
    public
      class function IsHexString(const AHexString: String) : boolean;
      class function ToHexaString(const raw : TRawBytes) : String; // DEPRECATED: Use TRawBytes.ToHexaString instead
      class function HexaToRaw(const HexaString : String) : TRawBytes; overload;
      class function HexaToRaw(const HexaString : String; out raw : TRawBytes) : Boolean; overload;
      class function DoSha256(p : PAnsiChar; plength : Cardinal) : TRawBytes; overload;
      class function DoSha256(const TheMessage : TRawBytes) : TRawBytes; overload;
      class procedure DoSha256(const TheMessage : TRawBytes; out ResultSha256 : TRawBytes);  overload;
  