RosettaCodeData/Task/MD5-Implementation/Ada/md5-implementation-3.ada

35 lines
1.4 KiB
Ada

with Ada.Strings.Unbounded;
with Ada.Text_IO;
with MD5;
procedure Tester is
use Ada.Strings.Unbounded;
type String_Array is array (Positive range <>) of Unbounded_String;
Sources : constant String_Array :=
(To_Unbounded_String (""),
To_Unbounded_String ("a"),
To_Unbounded_String ("abc"),
To_Unbounded_String ("message digest"),
To_Unbounded_String ("abcdefghijklmnopqrstuvwxyz"),
To_Unbounded_String
("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"),
To_Unbounded_String
("12345678901234567890123456789012345678901234567890123456789012345678901234567890")
);
Digests : constant String_Array :=
(To_Unbounded_String ("0xd41d8cd98f00b204e9800998ecf8427e"),
To_Unbounded_String ("0x0cc175b9c0f1b6a831c399e269772661"),
To_Unbounded_String ("0x900150983cd24fb0d6963f7d28e17f72"),
To_Unbounded_String ("0xf96b697d7cb7938d525a2f31aaf161d0"),
To_Unbounded_String ("0xc3fcd3d76192e4007dfb496cca67e13b"),
To_Unbounded_String ("0xd174ab98d277d9f5a5611c2c9f419d9f"),
To_Unbounded_String ("0x57edf4a22be3c955ac49da2e2107b67a"));
begin
for I in Sources'Range loop
Ada.Text_IO.Put_Line ("MD5 (""" & To_String (Sources (I)) & """):");
Ada.Text_IO.Put_Line
(MD5.To_String (MD5.MD5 (To_String (Sources (I)))));
Ada.Text_IO.Put_Line (To_String (Digests (I)) & " (correct value)");
end loop;
end Tester;