Browse Source

Merge downstream

Herman Schoenfeld 7 years ago
parent
commit
6b5455ae09

+ 19 - 0
src/libraries/hashlib4pascal/HlpConverters.pas

@@ -87,6 +87,9 @@ type
     class function ConvertStringToBytes(const a_in: String;
       const a_encoding: TEncoding): THashLibByteArray; overload; static;
 
+    class function ConvertBytesToString(const a_in: THashLibByteArray;
+      const a_encoding: TEncoding): String; overload; static;
+
     class function ConvertHexStringToBytes(const a_in: String)
       : THashLibByteArray; static; inline;
 
@@ -420,6 +423,22 @@ begin
 {$ENDIF FPC}
 end;
 
+class function TConverters.ConvertBytesToString(const a_in: THashLibByteArray;
+  const a_encoding: TEncoding): String;
+begin
+
+  if a_encoding = Nil then
+  begin
+    raise EArgumentNilHashLibException.CreateRes(@SEncodingInstanceNil);
+  end;
+
+{$IFDEF FPC}
+  result := String(a_encoding.GetString(a_in));
+{$ELSE}
+  result := a_encoding.GetString(a_in);
+{$ENDIF FPC}
+end;
+
 class function TConverters.SplitString(const S: String; Delimiter: Char)
   : THashLibStringArray;
 var

+ 1 - 1
src/libraries/hashlib4pascal/HlpHashResult.pas

@@ -155,7 +155,7 @@ begin
 {$ENDIF DELPHIXE7_UP}
 {$IFDEF FPC}
   TempHolder := EncodeStringBase64
-    (String(TEncoding.UTF8.GetString(Self.Fm_hash)));
+    (TConverters.ConvertBytesToString(Self.Fm_hash, TEncoding.UTF8));
 {$ENDIF FPC}
 {$IFDEF DELPHIXE7_UP}
   Temp := StringReplace(TNetEncoding.base64.EncodeBytesToString(TempHolder),