| ... | ... | @@ -188,6 +188,9 @@ test "blake2s224 single" { |
| 188 | 188 | |
| 189 | 189 | const h3 = "e4e5cb6c7cae41982b397bf7b7d2d9d1949823ae78435326e8db4912"; |
| 190 | 190 | htest.assertEqualHash(Blake2s224, h3, "The quick brown fox jumps over the lazy dog"); |
| 191 | |
| 192 | const h4 = "557381a78facd2b298640f4e32113e58967d61420af1aa939d0cfe01"; |
| 193 | htest.assertEqualHash(Blake2s224, h4, "a" ** 32 ++ "b" ** 32); |
| 191 | 194 | } |
| 192 | 195 | |
| 193 | 196 | test "blake2s224 streaming" { |
| ... | ... | @@ -212,6 +215,34 @@ test "blake2s224 streaming" { |
| 212 | 215 | h.update("c"); |
| 213 | 216 | h.final(out[0..]); |
| 214 | 217 | htest.assertEqual(h2, out[0..]); |
| 218 | |
| 219 | const h3 = "557381a78facd2b298640f4e32113e58967d61420af1aa939d0cfe01"; |
| 220 | |
| 221 | h.reset(); |
| 222 | h.update("a" ** 32); |
| 223 | h.update("b" ** 32); |
| 224 | h.final(out[0..]); |
| 225 | htest.assertEqual(h3, out[0..]); |
| 226 | |
| 227 | h.reset(); |
| 228 | h.update("a" ** 32 ++ "b" ** 32); |
| 229 | h.final(out[0..]); |
| 230 | htest.assertEqual(h3, out[0..]); |
| 231 | } |
| 232 | |
| 233 | test "blake2s224 aligned final" { |
| 234 | var block = [_]u8{0} ** Blake2s224.block_length; |
| 235 | var out: [Blake2s224.digest_length]u8 = undefined; |
| 236 | |
| 237 | const h1 = "86b7611563293f8c73627df7a6d6ba25ca0548c2a6481f7d116ee576"; |
| 238 | |
| 239 | htest.assertEqualHash(Blake2s224, h1, block[0..]); |
| 240 | |
| 241 | var h = Blake2s224.init(); |
| 242 | h.update(&block); |
| 243 | h.final(out[0..]); |
| 244 | |
| 245 | htest.assertEqual(h1, out[0..]); |
| 215 | 246 | } |
| 216 | 247 | |
| 217 | 248 | test "blake2s256 single" { |
| ... | ... | @@ -223,6 +254,9 @@ test "blake2s256 single" { |
| 223 | 254 | |
| 224 | 255 | const h3 = "606beeec743ccbeff6cbcdf5d5302aa855c256c29b88c8ed331ea1a6bf3c8812"; |
| 225 | 256 | htest.assertEqualHash(Blake2s256, h3, "The quick brown fox jumps over the lazy dog"); |
| 257 | |
| 258 | const h4 = "8d8711dade07a6b92b9a3ea1f40bee9b2c53ff3edd2a273dec170b0163568977"; |
| 259 | htest.assertEqualHash(Blake2s256, h4, "a" ** 32 ++ "b" ** 32); |
| 226 | 260 | } |
| 227 | 261 | |
| 228 | 262 | test "blake2s256 streaming" { |
| ... | ... | @@ -247,15 +281,34 @@ test "blake2s256 streaming" { |
| 247 | 281 | h.update("c"); |
| 248 | 282 | h.final(out[0..]); |
| 249 | 283 | htest.assertEqual(h2, out[0..]); |
| 284 | |
| 285 | const h3 = "8d8711dade07a6b92b9a3ea1f40bee9b2c53ff3edd2a273dec170b0163568977"; |
| 286 | |
| 287 | h.reset(); |
| 288 | h.update("a" ** 32); |
| 289 | h.update("b" ** 32); |
| 290 | h.final(out[0..]); |
| 291 | htest.assertEqual(h3, out[0..]); |
| 292 | |
| 293 | h.reset(); |
| 294 | h.update("a" ** 32 ++ "b" ** 32); |
| 295 | h.final(out[0..]); |
| 296 | htest.assertEqual(h3, out[0..]); |
| 250 | 297 | } |
| 251 | 298 | |
| 252 | 299 | test "blake2s256 aligned final" { |
| 253 | 300 | var block = [_]u8{0} ** Blake2s256.block_length; |
| 254 | 301 | var out: [Blake2s256.digest_length]u8 = undefined; |
| 255 | 302 | |
| 303 | const h1 = "ae09db7cd54f42b490ef09b6bc541af688e4959bb8c53f359a6f56e38ab454a3"; |
| 304 | |
| 305 | htest.assertEqualHash(Blake2s256, h1, block[0..]); |
| 306 | |
| 256 | 307 | var h = Blake2s256.init(); |
| 257 | 308 | h.update(&block); |
| 258 | 309 | h.final(out[0..]); |
| 310 | |
| 311 | htest.assertEqual(h1, out[0..]); |
| 259 | 312 | } |
| 260 | 313 | |
| 261 | 314 | ///////////////////// |