anchor.diff:    Result := False;
     bn := BN_new;
     try
  -    if BN_hex2bn(@bn,PAnsiChar(hexa))=0 then Raise ECryptoException.Create('Invalid Hexadecimal value:'+TCrypto.ToHexaString(hexa));
  +    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;
  
positive.code: end;
  
  class function TCrypto.IsHumanReadable(const ReadableText: TRawBytes): Boolean;
  Var i : Integer;
  Begin
    Result := true;
    for i := 1 to length(ReadableText) do begin
      if (ord(ReadableText[i])<32) Or (ord(ReadableText[i])>=255) then begin
        Result := false;
        Exit;
      end;
  
negative.code: 
  { New at Build 4.0.0 }
  
  class function TCrypto.DoRandomHash(const TheMessage: TRawBytes): TRawBytes;
  begin
    Result := TRandomHashFast.Compute(TheMessage);
  end;
  
  class procedure TCrypto.DoRandomHash(p : PAnsiChar; plength : Cardinal; out ResultSha256 : TRawBytes);
  