Commit 59a9c170 by Pascal Obry Committed by Arnaud Charlet

g-sechas.adb, [...]: (Binary_Message_Digest): New subtype.

2012-10-29  Pascal Obry  <obry@adacore.com>

	* g-sechas.adb, g-sechas.ads: (Binary_Message_Digest): New subtype.
	(Digest): New versions returning a Binary_Message_Digest.
	(Wide_Digest): Likewise.

From-SVN: r192921
parent 63d0d1a3
2012-10-29 Pascal Obry <obry@adacore.com>
* g-sechas.adb, g-sechas.ads: (Binary_Message_Digest): New subtype.
(Digest): New versions returning a Binary_Message_Digest.
(Wide_Digest): Likewise.
2012-10-29 Robert Dewar <dewar@adacore.com>
* warnsw.adb: Complete previous change.
......
......@@ -184,6 +184,30 @@ package body GNAT.Secure_Hashes is
return Digest (C);
end Digest;
function Digest (C : Context) return Binary_Message_Digest is
Hash_Bits : Stream_Element_Array
(1 .. Stream_Element_Offset (Hash_Length));
begin
Final (C, Hash_Bits);
return Hash_Bits;
end Digest;
function Digest (S : String) return Binary_Message_Digest is
C : Context;
begin
Update (C, S);
return Digest (C);
end Digest;
function Digest
(A : Stream_Element_Array) return Binary_Message_Digest
is
C : Context;
begin
Update (C, A);
return Digest (C);
end Digest;
-----------
-- Final --
-----------
......@@ -325,6 +349,13 @@ package body GNAT.Secure_Hashes is
return Digest (C);
end Wide_Digest;
function Wide_Digest (W : Wide_String) return Binary_Message_Digest is
C : Context;
begin
Wide_Update (C, W);
return Digest (C);
end Wide_Digest;
end H;
-------------------------
......
......@@ -156,6 +156,22 @@ package GNAT.Secure_Hashes is
Word_Length : constant Natural := Hash_State.Word'Size / 8;
Hash_Length : constant Natural := Hash_Words * Word_Length;
subtype Binary_Message_Digest is
Stream_Element_Array (1 .. Stream_Element_Offset (Hash_Length));
-- The fixed-length byte array returned by Digest, providing
-- the hash in binary representation.
function Digest (C : Context) return Binary_Message_Digest;
-- Return hash for the data accumulated with C
function Digest (S : String) return Binary_Message_Digest;
function Wide_Digest (W : Wide_String) return Binary_Message_Digest;
function Digest
(A : Stream_Element_Array) return Binary_Message_Digest;
-- These functions are equivalent to the corresponding Update (or
-- Wide_Update) on a default initialized Context, followed by Digest
-- on the resulting Context.
subtype Message_Digest is String (1 .. 2 * Hash_Length);
-- The fixed-length string returned by Digest, providing the hash in
-- hexadecimal representation.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment