authorgravatar for mantas@jonytis.euMantas Jonytis <mantas@jonytis.eu> 2020-08-01 15:31:36+03:00
committergravatar for mantas@jonytis.euMantas Jonytis <mantas@jonytis.eu> 2020-08-01 15:31:36+03:00
logeee9abe1b48c06e2a56cc955c0a773dc7a8de514
treeb5dd97b0bde848227c632fc15177d6b71b794e3b
parentb1cf0196dfc434c425b02512072553e6cbd4c09a

add more blake2b test cases


1 files changed, 53 insertions(+), 0 deletions(-)

lib/std/crypto/blake2.zig+53
...@@ -474,6 +474,9 @@ test "blake2b384 single" {...@@ -474,6 +474,9 @@ test "blake2b384 single" {
474474
475 const h3 = "b7c81b228b6bd912930e8f0b5387989691c1cee1e65aade4da3b86a3c9f678fc8018f6ed9e2906720c8d2a3aeda9c03d";475 const h3 = "b7c81b228b6bd912930e8f0b5387989691c1cee1e65aade4da3b86a3c9f678fc8018f6ed9e2906720c8d2a3aeda9c03d";
476 htest.assertEqualHash(Blake2b384, h3, "The quick brown fox jumps over the lazy dog");476 htest.assertEqualHash(Blake2b384, h3, "The quick brown fox jumps over the lazy dog");
477
478 const h4 = "b7283f0172fecbbd7eca32ce10d8a6c06b453cb3cf675b33eb4246f0da2bb94a6c0bdd6eec0b5fd71ec4fd51be80bf4c";
479 htest.assertEqualHash(Blake2b384, h4, "a" ** 64 ++ "b" ** 64);
477}480}
478481
479test "blake2b384 streaming" {482test "blake2b384 streaming" {
...@@ -498,6 +501,34 @@ test "blake2b384 streaming" {...@@ -498,6 +501,34 @@ test "blake2b384 streaming" {
498 h.update("c");501 h.update("c");
499 h.final(out[0..]);502 h.final(out[0..]);
500 htest.assertEqual(h2, out[0..]);503 htest.assertEqual(h2, out[0..]);
504
505 const h3 = "b7283f0172fecbbd7eca32ce10d8a6c06b453cb3cf675b33eb4246f0da2bb94a6c0bdd6eec0b5fd71ec4fd51be80bf4c";
506
507 h.reset();
508 h.update("a" ** 64 ++ "b" ** 64);
509 h.final(out[0..]);
510 htest.assertEqual(h3, out[0..]);
511
512 h.reset();
513 h.update("a" ** 64);
514 h.update("b" ** 64);
515 h.final(out[0..]);
516 htest.assertEqual(h3, out[0..]);
517}
518
519test "blake2b384 aligned final" {
520 var block = [_]u8{0} ** Blake2b384.block_length;
521 var out: [Blake2b384.digest_length]u8 = undefined;
522
523 const h1 = "e8aa1931ea0422e4446fecdd25c16cf35c240b10cb4659dd5c776eddcaa4d922397a589404b46eb2e53d78132d05fd7d";
524
525 htest.assertEqualHash(Blake2b384, h1, block[0..]);
526
527 var h = Blake2b384.init();
528 h.update(&block);
529 h.final(out[0..]);
530
531 htest.assertEqual(h1, out[0..]);
501}532}
502533
503test "blake2b512 single" {534test "blake2b512 single" {
...@@ -509,6 +540,9 @@ test "blake2b512 single" {...@@ -509,6 +540,9 @@ test "blake2b512 single" {
509540
510 const h3 = "a8add4bdddfd93e4877d2746e62817b116364a1fa7bc148d95090bc7333b3673f82401cf7aa2e4cb1ecd90296e3f14cb5413f8ed77be73045b13914cdcd6a918";541 const h3 = "a8add4bdddfd93e4877d2746e62817b116364a1fa7bc148d95090bc7333b3673f82401cf7aa2e4cb1ecd90296e3f14cb5413f8ed77be73045b13914cdcd6a918";
511 htest.assertEqualHash(Blake2b512, h3, "The quick brown fox jumps over the lazy dog");542 htest.assertEqualHash(Blake2b512, h3, "The quick brown fox jumps over the lazy dog");
543
544 const h4 = "049980af04d6a2cf16b4b49793c3ed7e40732073788806f2c989ebe9547bda0541d63abe298ec8955d08af48ae731f2e8a0bd6d201655a5473b4aa79d211b920";
545 htest.assertEqualHash(Blake2b512, h4, "a" ** 64 ++ "b" ** 64);
512}546}
513547
514test "blake2b512 streaming" {548test "blake2b512 streaming" {
...@@ -533,13 +567,32 @@ test "blake2b512 streaming" {...@@ -533,13 +567,32 @@ test "blake2b512 streaming" {
533 h.update("c");567 h.update("c");
534 h.final(out[0..]);568 h.final(out[0..]);
535 htest.assertEqual(h2, out[0..]);569 htest.assertEqual(h2, out[0..]);
570
571 const h3 = "049980af04d6a2cf16b4b49793c3ed7e40732073788806f2c989ebe9547bda0541d63abe298ec8955d08af48ae731f2e8a0bd6d201655a5473b4aa79d211b920";
572
573 h.reset();
574 h.update("a" ** 64 ++ "b" ** 64);
575 h.final(out[0..]);
576 htest.assertEqual(h3, out[0..]);
577
578 h.reset();
579 h.update("a" ** 64);
580 h.update("b" ** 64);
581 h.final(out[0..]);
582 htest.assertEqual(h3, out[0..]);
536}583}
537584
538test "blake2b512 aligned final" {585test "blake2b512 aligned final" {
539 var block = [_]u8{0} ** Blake2b512.block_length;586 var block = [_]u8{0} ** Blake2b512.block_length;
540 var out: [Blake2b512.digest_length]u8 = undefined;587 var out: [Blake2b512.digest_length]u8 = undefined;
541588
589 const h1 = "865939e120e6805438478841afb739ae4250cf372653078a065cdcfffca4caf798e6d462b65d658fc165782640eded70963449ae1500fb0f24981d7727e22c41";
590
591 htest.assertEqualHash(Blake2b512, h1, block[0..]);
592
542 var h = Blake2b512.init();593 var h = Blake2b512.init();
543 h.update(&block);594 h.update(&block);
544 h.final(out[0..]);595 h.final(out[0..]);
596
597 htest.assertEqual(h1, out[0..]);
545}598}