some fixes
This commit is contained in:
parent
67dfd890a7
commit
262194ad9d
|
@ -73,7 +73,7 @@ package body Crypto_Core_Types is
|
||||||
|
|
||||||
|
|
||||||
function From_Hex(S : String) return u8_Array is
|
function From_Hex(S : String) return u8_Array is
|
||||||
A : u8_Array(1 .. (S'Length + 1) / 2);
|
A : u8_Array(1 .. (S'Length + 1) / 2) := (others => 0);
|
||||||
C : Character;
|
C : Character;
|
||||||
V : Integer range -1 .. 15;
|
V : Integer range -1 .. 15;
|
||||||
Index : Positive := 1;
|
Index : Positive := 1;
|
||||||
|
@ -111,5 +111,35 @@ package body Crypto_Core_Types is
|
||||||
return A;
|
return A;
|
||||||
end From_Ascii;
|
end From_Ascii;
|
||||||
|
|
||||||
|
procedure Bit_Clear(Buffer : in out u8_Array; Index : in Positive) is
|
||||||
|
begin
|
||||||
|
Buffer(Buffer'First + Integer(Index / 8)) := Buffer(Buffer'First + Integer(Index / 8)) and (not Shift_Left(1, 7 - (Index - 1) mod 8));
|
||||||
|
end Bit_Clear;
|
||||||
|
|
||||||
|
procedure Bit_Set(Buffer : in out u8_Array; Index : in Positive) is
|
||||||
|
begin
|
||||||
|
Buffer(Integer(Buffer'First + Index / 8)) := Buffer(Buffer'First + Integer(Index / 8)) or Shift_Left(1, 7 - (Index - 1) mod 8);
|
||||||
|
end Bit_Set;
|
||||||
|
|
||||||
|
procedure Bit_Toggle(Buffer : in out u8_Array; Index : in Positive) is
|
||||||
|
begin
|
||||||
|
Buffer(Integer(Buffer'First + Index / 8)) := Buffer(Buffer'First + Integer(Index / 8)) xor Shift_Left(1, 7 - (Index - 1) mod 8);
|
||||||
|
end Bit_Toggle;
|
||||||
|
|
||||||
|
|
||||||
|
procedure Bit_Set(Buffer : in out u8_Array; Index : in Positive; Value : in Bit) is
|
||||||
|
begin
|
||||||
|
if Value = 1 then
|
||||||
|
Bit_Set(Buffer, Index);
|
||||||
|
else
|
||||||
|
Bit_Clear(Buffer, Index);
|
||||||
|
end if;
|
||||||
|
end Bit_Set;
|
||||||
|
|
||||||
|
function Bit_Get(Buffer : in u8_Array; Index : in Positive) return Bit is
|
||||||
|
begin
|
||||||
|
return Bit(Shift_Right(Buffer(Buffer'First + Index / 8), 7 - (Index - 1) mod 8) and 1);
|
||||||
|
end Bit_Get;
|
||||||
|
|
||||||
|
|
||||||
end Crypto_Core_types;
|
end Crypto_Core_types;
|
||||||
|
|
|
@ -17,6 +17,9 @@ with Interfaces; use Interfaces;
|
||||||
|
|
||||||
package Crypto_Core_Types is
|
package Crypto_Core_Types is
|
||||||
|
|
||||||
|
type Bit is mod 2;
|
||||||
|
for Bit'Size use 1;
|
||||||
|
|
||||||
type u8 is new Unsigned_8;
|
type u8 is new Unsigned_8;
|
||||||
for u8'Size use 8;
|
for u8'Size use 8;
|
||||||
|
|
||||||
|
@ -39,6 +42,9 @@ package Crypto_Core_Types is
|
||||||
type u32_Array_Access is access all u32_Array;
|
type u32_Array_Access is access all u32_Array;
|
||||||
type u64_Array_Access is access all u64_Array;
|
type u64_Array_Access is access all u64_Array;
|
||||||
|
|
||||||
|
subtype Block_32_Bit is u8_Array(1 .. 32 / 8);
|
||||||
|
subtype Block_48_Bit is u8_Array(1 .. 48 / 8);
|
||||||
|
subtype Block_56_Bit is u8_Array(1 .. 56 / 8);
|
||||||
subtype Block_64_Bit is u8_Array(1 .. 64 / 8);
|
subtype Block_64_Bit is u8_Array(1 .. 64 / 8);
|
||||||
subtype Block_96_Bit is u8_Array(1 .. 96 / 8);
|
subtype Block_96_Bit is u8_Array(1 .. 96 / 8);
|
||||||
subtype Block_128_Bit is u8_Array(1 .. 128 / 8);
|
subtype Block_128_Bit is u8_Array(1 .. 128 / 8);
|
||||||
|
@ -52,13 +58,22 @@ package Crypto_Core_Types is
|
||||||
subtype Block_768_Bit is u8_Array(1 .. 768 / 8);
|
subtype Block_768_Bit is u8_Array(1 .. 768 / 8);
|
||||||
subtype Block_1024_Bit is u8_Array(1 .. 1024 / 8);
|
subtype Block_1024_Bit is u8_Array(1 .. 1024 / 8);
|
||||||
subtype Block_1536_Bit is u8_Array(1 .. 1536 / 8);
|
subtype Block_1536_Bit is u8_Array(1 .. 1536 / 8);
|
||||||
subtype Block_2084_Bit is u8_Array(1 .. 2048 / 8);
|
subtype Block_2048_Bit is u8_Array(1 .. 2048 / 8);
|
||||||
|
subtype Block_4096_Bit is u8_Array(1 .. 4096 / 8);
|
||||||
|
subtype Block_8192_Bit is u8_Array(1 .. 8192 / 8);
|
||||||
|
|
||||||
Wrong_Opertaion_Order : exception;
|
Wrong_Opertaion_Order : exception;
|
||||||
Format_Violation : exception;
|
Format_Violation : exception;
|
||||||
|
|
||||||
|
function To_Hex(A : u8) return String;
|
||||||
function To_Hex(A : u8_Array) return String;
|
function To_Hex(A : u8_Array) return String;
|
||||||
function From_Hex(S : String) return u8_Array;
|
function From_Hex(S : String) return u8_Array;
|
||||||
function From_Ascii(S : String) return u8_Array;
|
function From_Ascii(S : String) return u8_Array;
|
||||||
|
|
||||||
|
procedure Bit_Clear(Buffer : in out u8_Array; Index : in Positive);
|
||||||
|
procedure Bit_Set(Buffer : in out u8_Array; Index : in Positive);
|
||||||
|
procedure Bit_Set(Buffer : in out u8_Array; Index : in Positive; Value : in Bit);
|
||||||
|
procedure Bit_Toggle(Buffer : in out u8_Array; Index : in Positive);
|
||||||
|
function Bit_Get(Buffer : in u8_Array; Index : in Positive) return Bit;
|
||||||
|
|
||||||
end Crypto_Core_Types;
|
end Crypto_Core_Types;
|
||||||
|
|
|
@ -89,7 +89,9 @@ package body Sha_Test_IO is
|
||||||
when others => null;
|
when others => null;
|
||||||
end case;
|
end case;
|
||||||
end loop;
|
end loop;
|
||||||
Goto_Data(Context.File);
|
if not End_Of_File(Context.File) then
|
||||||
|
Goto_Data(Context.File);
|
||||||
|
end if;
|
||||||
if End_Of_File(Context.File) then
|
if End_Of_File(Context.File) then
|
||||||
Close(Context.File);
|
Close(Context.File);
|
||||||
Next := Finish;
|
Next := Finish;
|
||||||
|
@ -137,7 +139,7 @@ package body Sha_Test_IO is
|
||||||
f : Context_T;
|
f : Context_T;
|
||||||
nt : Next_Type;
|
nt : Next_Type;
|
||||||
count_val : Integer;
|
count_val : Integer;
|
||||||
dlen : Integer;
|
dlen : Integer := DigestSize_Bits / 8;
|
||||||
len, lenb : Integer;
|
len, lenb : Integer;
|
||||||
DigestSize_Bytes : constant Natural := (DigestSize_Bits + 7 ) / 8;
|
DigestSize_Bytes : constant Natural := (DigestSize_Bits + 7 ) / 8;
|
||||||
digest, ref_Digest : u8_Array(1 .. DigestSize_Bytes) := (others => 0);
|
digest, ref_Digest : u8_Array(1 .. DigestSize_Bytes) := (others => 0);
|
||||||
|
@ -196,6 +198,8 @@ package body Sha_Test_IO is
|
||||||
else
|
else
|
||||||
fail_test := fail_test + 1;
|
fail_test := fail_test + 1;
|
||||||
Put('!');
|
Put('!');
|
||||||
|
Put_Line(" DBG: is: " & To_Hex(digest));
|
||||||
|
Put_Line(" DBG: should: " & To_Hex(ref_digest));
|
||||||
end if;
|
end if;
|
||||||
when Message_Block =>
|
when Message_Block =>
|
||||||
declare
|
declare
|
||||||
|
@ -209,6 +213,7 @@ package body Sha_Test_IO is
|
||||||
end if;
|
end if;
|
||||||
num := num + 1;
|
num := num + 1;
|
||||||
Get_Data(f, buf);
|
Get_Data(f, buf);
|
||||||
|
-- Put_Line(" DBG: dlen = " & Integer'Image(dlen) & "; len = " & Integer'Image(len));
|
||||||
Hash(buf, digest(1 .. dlen), len);
|
Hash(buf, digest(1 .. dlen), len);
|
||||||
end;
|
end;
|
||||||
end case;
|
end case;
|
||||||
|
|
|
@ -53,8 +53,6 @@ package Sha_Test_IO is
|
||||||
|
|
||||||
|
|
||||||
generic
|
generic
|
||||||
-- type Context_T is limited private;
|
|
||||||
-- BlockSize_Bits : Natural;
|
|
||||||
DigestSize_Bits : Natural;
|
DigestSize_Bits : Natural;
|
||||||
with procedure Hash(Data : in u8_Array; Digest : out u8_Array; Bits : in Integer := -1);
|
with procedure Hash(Data : in u8_Array; Digest : out u8_Array; Bits : in Integer := -1);
|
||||||
procedure Test_With_File(FileName : in String);
|
procedure Test_With_File(FileName : in String);
|
||||||
|
|
|
@ -0,0 +1,60 @@
|
||||||
|
-- Copyright (C) 2015 Daniel Otte <bg@nerilex.org>
|
||||||
|
--
|
||||||
|
-- This program is free software: you can redistribute it and/or modify
|
||||||
|
-- it under the terms of the GNU General Public License as published by
|
||||||
|
-- the Free Software Foundation, either version 3 of the License, or
|
||||||
|
-- (at your option) any later version.
|
||||||
|
--
|
||||||
|
-- This program is distributed in the hope that it will be useful,
|
||||||
|
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
-- GNU General Public License for more details.
|
||||||
|
--
|
||||||
|
-- You should have received a copy of the GNU General Public License
|
||||||
|
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
with Ada.Text_IO; use Ada.Text_IO;
|
||||||
|
-- with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
|
||||||
|
with Crypto_Core_Types; use Crypto_Core_Types;
|
||||||
|
with Crypto_Types; use Crypto_Types;
|
||||||
|
|
||||||
|
with Sha3_Generic;
|
||||||
|
|
||||||
|
use Crypto_Types.Crypto_Types_u8;
|
||||||
|
use Crypto_Types.Crypto_Types_u64;
|
||||||
|
|
||||||
|
procedure Test_Keccak is
|
||||||
|
-- procedure Print_State(A : State_T) is
|
||||||
|
-- c : Natural := 1;
|
||||||
|
-- l : u8_Array(1 .. 8);
|
||||||
|
-- begin
|
||||||
|
-- for i in y_T'Range loop
|
||||||
|
-- for j in x_T'Range loop
|
||||||
|
-- Store_le(A => l,
|
||||||
|
-- value => A(j, i));
|
||||||
|
-- for z in l'Range loop
|
||||||
|
-- Put(To_Hex(l(z)));
|
||||||
|
-- Put(' ');
|
||||||
|
-- if c mod 16 = 0 then
|
||||||
|
-- New_Line;
|
||||||
|
-- end if;
|
||||||
|
-- c := c + 1;
|
||||||
|
-- end loop;
|
||||||
|
-- end loop;
|
||||||
|
-- end loop;
|
||||||
|
-- New_Line;
|
||||||
|
-- end;
|
||||||
|
|
||||||
|
|
||||||
|
-- A : State_T := ( 0 => ( 0 => 6, others => 0 ), 1 => ( 3 => 16#8000000000000000#, others => 0 ), others => ( others => 0 ));
|
||||||
|
|
||||||
|
package Sha3_224 is new Sha3_Generic(Capacity_Bits => 448);
|
||||||
|
Digest : Sha3_224.Digest_T;
|
||||||
|
begin
|
||||||
|
-- Print_State(A);
|
||||||
|
-- Permute(A);
|
||||||
|
-- New_Line;
|
||||||
|
-- Print_State(A);
|
||||||
|
Sha3_224.Hash(u8_Array'( 1 => 16#13#), Digest, 5);
|
||||||
|
Put_Line(To_Hex(Digest));
|
||||||
|
end Test_Keccak;
|
|
@ -14,7 +14,6 @@
|
||||||
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
|
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
with Ada.Text_IO; use Ada.Text_IO;
|
with Ada.Text_IO; use Ada.Text_IO;
|
||||||
with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
|
|
||||||
with Crypto_Core_Types; use Crypto_Core_Types;
|
with Crypto_Core_Types; use Crypto_Core_Types;
|
||||||
with Crypto_Types; use Crypto_Types;
|
with Crypto_Types; use Crypto_Types;
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@ with SHA2_224;
|
||||||
|
|
||||||
use Crypto_Types.Crypto_Types_u8;
|
use Crypto_Types.Crypto_Types_u8;
|
||||||
|
|
||||||
procedure main is
|
procedure Test_SHA224 is
|
||||||
-- package u8_IO is new Crypto_Types.u8_Sequential_IO;
|
-- package u8_IO is new Crypto_Types.u8_Sequential_IO;
|
||||||
|
|
||||||
procedure Print_Hex(value : in u8) is
|
procedure Print_Hex(value : in u8) is
|
||||||
|
@ -79,4 +79,4 @@ begin
|
||||||
test_sha224("abc");
|
test_sha224("abc");
|
||||||
test_sha224("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq");
|
test_sha224("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq");
|
||||||
New_Line;
|
New_Line;
|
||||||
end main;
|
end Test_SHA224;
|
||||||
|
|
|
@ -14,7 +14,6 @@
|
||||||
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
|
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
with Ada.Text_IO; use Ada.Text_IO;
|
with Ada.Text_IO; use Ada.Text_IO;
|
||||||
with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
|
|
||||||
with Crypto_Core_Types; use Crypto_Core_Types;
|
with Crypto_Core_Types; use Crypto_Core_Types;
|
||||||
with Crypto_Types; use Crypto_Types;
|
with Crypto_Types; use Crypto_Types;
|
||||||
|
|
||||||
|
@ -23,40 +22,33 @@ with SHA2_256;
|
||||||
|
|
||||||
use Crypto_Types.Crypto_Types_u8;
|
use Crypto_Types.Crypto_Types_u8;
|
||||||
|
|
||||||
procedure main is
|
procedure Test_SHA256 is
|
||||||
-- package u8_IO is new Crypto_Types.u8_Sequential_IO;
|
|
||||||
|
|
||||||
procedure Print_Hex(value : in u8_Array) is
|
|
||||||
begin
|
|
||||||
Put(To_Hex(value));
|
|
||||||
Put(" ");
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
procedure test_sha256(Data : in u8_Array; Bits : in Integer := -1) is
|
-- procedure test_sha256(Data : in u8_Array; Bits : in Integer := -1) is
|
||||||
Digest : Block_256_Bit;
|
-- Digest : Block_256_Bit;
|
||||||
q : Integer := Bits;
|
-- q : Integer := Bits;
|
||||||
begin
|
-- begin
|
||||||
if q < 0 then
|
-- if q < 0 then
|
||||||
q := Data'Length * 8;
|
-- q := Data'Length * 8;
|
||||||
end if;
|
-- end if;
|
||||||
Print_Hex(Data);
|
-- Print_Hex(Data);
|
||||||
Put(" (" & Integer'Image(q) & "): ");
|
-- Put(" (" & Integer'Image(q) & "): ");
|
||||||
Sha2_256.Hash(Data, Digest, Bits);
|
-- Sha2_256.Hash(Data, Digest, Bits);
|
||||||
Print_Hex(Digest);
|
-- Print_Hex(Digest);
|
||||||
New_Line;
|
-- New_Line;
|
||||||
end test_sha256;
|
-- end test_sha256;
|
||||||
|
|
||||||
procedure test_sha256(Msg : in String) is
|
-- procedure test_sha256(Msg : in String) is
|
||||||
Data : u8_Array(1 .. Msg'Length);
|
-- Data : u8_Array(1 .. Msg'Length);
|
||||||
begin
|
-- begin
|
||||||
Put("""" & Msg & """: ");
|
-- Put("""" & Msg & """: ");
|
||||||
for i in data'Range loop
|
-- for i in data'Range loop
|
||||||
Data(i) := u8(Character'Pos(Msg(Msg'First + i - Data'First)));
|
-- Data(i) := u8(Character'Pos(Msg(Msg'First + i - Data'First)));
|
||||||
end loop;
|
-- end loop;
|
||||||
test_sha256(Data);
|
-- test_sha256(Data);
|
||||||
New_Line;
|
-- New_Line;
|
||||||
end test_sha256;
|
-- end test_sha256;
|
||||||
|
|
||||||
procedure test_sha256_with_File is new Sha_Test_IO.Test_With_File(DigestSize_Bits => SHA2_256.DigestSize_Bits, Hash => SHA2_256.Hash);
|
procedure test_sha256_with_File is new Sha_Test_IO.Test_With_File(DigestSize_Bits => SHA2_256.DigestSize_Bits, Hash => SHA2_256.Hash);
|
||||||
|
|
||||||
|
@ -74,4 +66,4 @@ begin
|
||||||
test_sha256_with_File("testvectors/sha2/byte/SHA256ShortMsg.rsp");
|
test_sha256_with_File("testvectors/sha2/byte/SHA256ShortMsg.rsp");
|
||||||
test_sha256_with_File("testvectors/sha2/byte/SHA256LongMsg.rsp");
|
test_sha256_with_File("testvectors/sha2/byte/SHA256LongMsg.rsp");
|
||||||
test_sha256_with_File("testvectors/sha2/byte/SHA256Monte.rsp");
|
test_sha256_with_File("testvectors/sha2/byte/SHA256Monte.rsp");
|
||||||
end main;
|
end Test_SHA256;
|
||||||
|
|
|
@ -0,0 +1,75 @@
|
||||||
|
-- Copyright (C) 2015 Daniel Otte <bg@nerilex.org>
|
||||||
|
--
|
||||||
|
-- This program is free software: you can redistribute it and/or modify
|
||||||
|
-- it under the terms of the GNU General Public License as published by
|
||||||
|
-- the Free Software Foundation, either version 3 of the License, or
|
||||||
|
-- (at your option) any later version.
|
||||||
|
--
|
||||||
|
-- This program is distributed in the hope that it will be useful,
|
||||||
|
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
-- GNU General Public License for more details.
|
||||||
|
--
|
||||||
|
-- You should have received a copy of the GNU General Public License
|
||||||
|
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
with Ada.Text_IO; use Ada.Text_IO;
|
||||||
|
with Crypto_Core_Types; use Crypto_Core_Types;
|
||||||
|
with Crypto_Types; use Crypto_Types;
|
||||||
|
|
||||||
|
with Sha_Test_IO;
|
||||||
|
|
||||||
|
with SHA3; use SHA3;
|
||||||
|
|
||||||
|
use Crypto_Types.Crypto_Types_u8;
|
||||||
|
|
||||||
|
procedure Test_SHA3 is
|
||||||
|
|
||||||
|
procedure test_sha3_224_with_File is new Sha_Test_IO.Test_With_File(DigestSize_Bits => SHA3_224.DigestSize_Bits, Hash => SHA3_224.Hash);
|
||||||
|
procedure test_sha3_256_with_File is new Sha_Test_IO.Test_With_File(DigestSize_Bits => SHA3_256.DigestSize_Bits, Hash => SHA3_256.Hash);
|
||||||
|
procedure test_sha3_384_with_File is new Sha_Test_IO.Test_With_File(DigestSize_Bits => SHA3_384.DigestSize_Bits, Hash => SHA3_384.Hash);
|
||||||
|
procedure test_sha3_512_with_File is new Sha_Test_IO.Test_With_File(DigestSize_Bits => SHA3_512.DigestSize_Bits, Hash => SHA3_512.Hash);
|
||||||
|
|
||||||
|
begin
|
||||||
|
New_Line;
|
||||||
|
|
||||||
|
test_sha3_224_with_File("testvectors/sha3/pre/ShortMsgKAT_SHA3-224.txt");
|
||||||
|
test_sha3_256_with_File("testvectors/sha3/pre/ShortMsgKAT_SHA3-256.txt");
|
||||||
|
test_sha3_384_with_File("testvectors/sha3/pre/ShortMsgKAT_SHA3-384.txt");
|
||||||
|
test_sha3_512_with_File("testvectors/sha3/pre/ShortMsgKAT_SHA3-512.txt");
|
||||||
|
|
||||||
|
-- New_Line;
|
||||||
|
-- test_sha3_224_with_File("testvectors/sha3/bit/sha3_224ShortMsg.rsp");
|
||||||
|
-- test_sha3_224_with_File("testvectors/sha3/bit/sha3_224LongMsg.rsp");
|
||||||
|
-- test_sha3_224_with_File("testvectors/sha3/bit/sha3_224Monte.rsp");
|
||||||
|
-- test_sha3_224_with_File("testvectors/sha3/byte/sha3_224ShortMsg.rsp");
|
||||||
|
-- test_sha3_224_with_File("testvectors/sha3/byte/sha3_224LongMsg.rsp");
|
||||||
|
-- test_sha3_224_with_File("testvectors/sha3/byte/sha3_224Monte.rsp");
|
||||||
|
--
|
||||||
|
-- New_Line;
|
||||||
|
-- test_sha3_256_with_File("testvectors/sha3/bit/sha3_256ShortMsg.rsp");
|
||||||
|
-- test_sha3_256_with_File("testvectors/sha3/bit/sha3_256LongMsg.rsp");
|
||||||
|
-- test_sha3_256_with_File("testvectors/sha3/bit/sha3_256Monte.rsp");
|
||||||
|
-- test_sha3_256_with_File("testvectors/sha3/byte/sha3_256ShortMsg.rsp");
|
||||||
|
-- test_sha3_256_with_File("testvectors/sha3/byte/sha3_256LongMsg.rsp");
|
||||||
|
-- test_sha3_256_with_File("testvectors/sha3/byte/sha3_256Monte.rsp");
|
||||||
|
--
|
||||||
|
-- New_Line;
|
||||||
|
-- test_sha3_384_with_File("testvectors/sha3/bit/sha3_284ShortMsg.rsp");
|
||||||
|
-- test_sha3_384_with_File("testvectors/sha3/bit/sha3_284LongMsg.rsp");
|
||||||
|
-- test_sha3_384_with_File("testvectors/sha3/bit/sha3_284Monte.rsp");
|
||||||
|
-- test_sha3_384_with_File("testvectors/sha3/byte/sha3_284ShortMsg.rsp");
|
||||||
|
-- test_sha3_384_with_File("testvectors/sha3/byte/sha3_284LongMsg.rsp");
|
||||||
|
-- test_sha3_384_with_File("testvectors/sha3/byte/sha3_284Monte.rsp");
|
||||||
|
--
|
||||||
|
-- New_Line;
|
||||||
|
-- test_sha3_512_with_File("testvectors/sha3/bit/SHA512ShortMsg.rsp");
|
||||||
|
-- test_sha3_512_with_File("testvectors/sha3/bit/SHA512LongMsg.rsp");
|
||||||
|
-- test_sha3_512_with_File("testvectors/sha3/bit/SHA512Monte.rsp");
|
||||||
|
-- test_sha3_512_with_File("testvectors/sha3/byte/SHA512ShortMsg.rsp");
|
||||||
|
-- test_sha3_512_with_File("testvectors/sha3/byte/SHA512LongMsg.rsp");
|
||||||
|
-- test_sha3_512_with_File("testvectors/sha3/byte/SHA512Monte.rsp");
|
||||||
|
|
||||||
|
New_Line;
|
||||||
|
|
||||||
|
end Test_SHA3;
|
|
@ -22,7 +22,7 @@ with SHA2_384;
|
||||||
|
|
||||||
use Crypto_Types.Crypto_Types_u8;
|
use Crypto_Types.Crypto_Types_u8;
|
||||||
|
|
||||||
procedure main is
|
procedure Test_SHA384 is
|
||||||
-- package u8_IO is new Crypto_Types.u8_Sequential_IO;
|
-- package u8_IO is new Crypto_Types.u8_Sequential_IO;
|
||||||
|
|
||||||
procedure Print_Hex(value : in u8) is
|
procedure Print_Hex(value : in u8) is
|
||||||
|
@ -79,4 +79,4 @@ begin
|
||||||
test_sha384("abc");
|
test_sha384("abc");
|
||||||
test_sha384("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq");
|
test_sha384("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq");
|
||||||
New_Line;
|
New_Line;
|
||||||
end main;
|
end Test_SHA384;
|
||||||
|
|
|
@ -22,7 +22,7 @@ with SHA2_512;
|
||||||
|
|
||||||
use Crypto_Types.Crypto_Types_u8;
|
use Crypto_Types.Crypto_Types_u8;
|
||||||
|
|
||||||
procedure main is
|
procedure Test_SHA512 is
|
||||||
-- package u8_IO is new Crypto_Types.u8_Sequential_IO;
|
-- package u8_IO is new Crypto_Types.u8_Sequential_IO;
|
||||||
|
|
||||||
procedure Print_Hex(value : in u8) is
|
procedure Print_Hex(value : in u8) is
|
||||||
|
@ -79,4 +79,4 @@ begin
|
||||||
test_sha512("abc");
|
test_sha512("abc");
|
||||||
test_sha512("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq");
|
test_sha512("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq");
|
||||||
New_Line;
|
New_Line;
|
||||||
end main;
|
end Test_SHA512;
|
||||||
|
|
Loading…
Reference in New Issue