anchor.diff:        Raise ECryptoException.Create('Invalid Hexadecimal value:'+Value);
     end;
   {$ELSE}
  -  if not TCrypto.HexaToRaw(value,LRaw) then
  +  LowIndex := Low(Value);
  +  if Value[LowIndex] = '-' then LValue := System.Copy(Value, LowIndex + 1, High(Value) - 1)
  +  else
  + LValue := Value;
  +  if not TCrypto.IsHexString(LValue) then
         Raise ECryptoException.Create('Invalid Hexadecimal value:'+Value);
  -  FBigInteger := TBigInteger.Create(1,LRaw);
  +  FBigInteger := TBigInteger.Create(Value, 16);
   {$ENDIF}
   end;
   
  
positive.code:   p := @Result[Low(Result)];
    i := BN_bn2bin(FBN,p);
  {$ELSE}
    Result := FBigInteger.ToByteArrayUnsigned;
  {$ENDIF}
  end;
  
  
negative.code: {$IFDEF Use_OpenSSL}
  Var p : PAnsiChar;
    i : Integer;
  {$ELSE}
   var
   LBigInteger: TBigInteger;
  {$ENDIF}
  begin
  {$IFDEF Use_OpenSSL}
  