- B9DD611C05352BC2DCD237EE59409CBBABF02068D8639CBDE73B6F273EA1480BB9C40CAB85F83FD7D56CE6CD59BBBE42F171CE90BD1AAAD265109B745FABB808
+ D32B0AD7D28C2641A7172DD10F409670EB9D6A925A755FAAAEED545123ABF45DB6B30BAD662C88B1428A656876154C2C5091FCCF82B4924F1863B9A6B9AD2537
eucrypt/smg_keccak/tests/smg_keccak-test.adb
(354 . 7)(354 . 6)
80 begin
81 Put_Line("----Testing hash keccak on string " & S & "----");
82 HashKeccak(S, O);
83 Put_Line("OUTPUT: " & O);
84 ToBitstream( O, B );
85 if B /= Exp then
86 Put_Line("FAILED: testing hash keccak on string");
(387 . 7)(386 . 6)
88 XOR_Strings( S1, S2, Result);
89 Put_Line("S1 is " & S1);
90 Put_Line("S2 is " & S2);
91 Put_Line("S1 xor S2 is " & Result);
92 Put_Line("Result is: ");
93 for C of Result loop
94 Put( Natural'Image( Character'Pos( C ) ) );
(403 . 11)(401 . 14)
96
97 procedure test_oaep is
98 Msg : String := "abcdefghij jihgfedcba123456789";
99 LongMsg : String( 1..1000 ) := ( others => 'T' );
100 Encr : OAEP_Block := ( others => ' ' );
101 Decr : OAEP_HALF := ( others => ' ' );
102 Entropy : OAEP_Block := ( others => 'e' );
103 Len : Natural;
104 Flag : Boolean;
105 C : Character;
106 MaxLen : constant := 245;
107 begin
108 Put_Line("----Testing OAEP Encrypt----");
109 OAEP_Encrypt( Msg, Entropy, Encr );
(415 . 21)(416 . 54)
111 Put_Line("----Testing OAEP Decrypt----");
112 OAEP_Decrypt( Encr, Len, Decr, Flag );
113
114 Put_Line("Msg is: " & Msg);
115 Put_Line("Encr is: " & Encr);
116 Put_Line("Decr is: " & Decr);
117 Put_Line("Flag is: " & Boolean'Image( Flag ) );
118 Put_Line("Len is: " & Natural'Image( Len ) );
119
120 if Flag = False or
121 Len /= Msg'Length * 8 or
122 Decr( Decr'First .. Decr'First + Msg'Length - 1 ) /= Msg
123 then
124 Put_Line("FAILED: oaep test");
125 Put_Line("Msg is: " & Msg);
126 Put_Line("Decr is: " & Decr);
127 Put_Line("Flag is: " & Boolean'Image( Flag ) );
128 Put_Line("Len is: " & Natural'Image( Len ) );
129 else
130 Put_Line("PASSED: oaep test");
131 end if;
132
133 -- test decrypt on invalid (non-OAEP) string
134 Flag := True;
135 C := Encr( Encr'First );
136 Encr( Encr'First ) := Character'Val( Character'Pos( C ) / 2 );
137 Decr := ( others => ' ' );
138 OAEP_Decrypt( Encr, Len, Decr, Flag );
139
140 if Flag = True then
141 Put_Line("FAILED: oaep test with invalid package");
142 else
143 Put_Line("PASSED: oaep test with invalid package");
144 end if;
145
146 -- test encrypt on message longer than maximum payload (1096 bits)
147 Flag := False;
148 Len := 0;
149 LongMsg( 1..Msg'Length ) := Msg;
150 Encr := ( others => '.' );
151 OAEP_Encrypt( LongMsg, Entropy, Encr);
152 OAEP_Decrypt( Encr, Len, Decr, Flag);
153
154 if Flag = False or
155 Len /= MaxLen * 8 or
156 Decr( Decr'First .. Decr'First + Len / 8 - 1 ) /=
157 LongMsg( LongMsg'First..LongMsg'First + MaxLen - 1 )
158 then
159 Put_Line("FAILED: oaep test with too long message");
160 Put_Line("Msg is: " & LongMsg);
161 Put_Line("Decr is: " & Decr);
162 Put_Line("Flag is: " & Boolean'Image( Flag ) );
163 Put_Line("Len is: " & Natural'Image( Len ) );
164 else
165 Put_Line("PASSED: oaep test with too long message");
166 end if;
167
168 end test_oaep;
169
170 -- end of helper methods