| ... | @@ -188,6 +188,9 @@ test "blake2s224 single" { | ... | @@ -188,6 +188,9 @@ test "blake2s224 single" { |
| 188 | | 188 | |
| 189 | const h3 = "e4e5cb6c7cae41982b397bf7b7d2d9d1949823ae78435326e8db4912"; | 189 | const h3 = "e4e5cb6c7cae41982b397bf7b7d2d9d1949823ae78435326e8db4912"; |
| 190 | htest.assertEqualHash(Blake2s224, h3, "The quick brown fox jumps over the lazy dog"); | 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 | test "blake2s224 streaming" { | 196 | test "blake2s224 streaming" { |
| ... | @@ -212,6 +215,34 @@ test "blake2s224 streaming" { | ... | @@ -212,6 +215,34 @@ test "blake2s224 streaming" { |
| 212 | h.update("c"); | 215 | h.update("c"); |
| 213 | h.final(out[0..]); | 216 | h.final(out[0..]); |
| 214 | htest.assertEqual(h2, out[0..]); | 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 | test "blake2s256 single" { | 248 | test "blake2s256 single" { |
| ... | @@ -223,6 +254,9 @@ test "blake2s256 single" { | ... | @@ -223,6 +254,9 @@ test "blake2s256 single" { |
| 223 | | 254 | |
| 224 | const h3 = "606beeec743ccbeff6cbcdf5d5302aa855c256c29b88c8ed331ea1a6bf3c8812"; | 255 | const h3 = "606beeec743ccbeff6cbcdf5d5302aa855c256c29b88c8ed331ea1a6bf3c8812"; |
| 225 | htest.assertEqualHash(Blake2s256, h3, "The quick brown fox jumps over the lazy dog"); | 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 | test "blake2s256 streaming" { | 262 | test "blake2s256 streaming" { |
| ... | @@ -247,15 +281,34 @@ test "blake2s256 streaming" { | ... | @@ -247,15 +281,34 @@ test "blake2s256 streaming" { |
| 247 | h.update("c"); | 281 | h.update("c"); |
| 248 | h.final(out[0..]); | 282 | h.final(out[0..]); |
| 249 | htest.assertEqual(h2, out[0..]); | 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 | test "blake2s256 aligned final" { | 299 | test "blake2s256 aligned final" { |
| 253 | var block = [_]u8{0} ** Blake2s256.block_length; | 300 | var block = [_]u8{0} ** Blake2s256.block_length; |
| 254 | var out: [Blake2s256.digest_length]u8 = undefined; | 301 | var out: [Blake2s256.digest_length]u8 = undefined; |
| 255 | | 302 | |
| | 303 | const h1 = "ae09db7cd54f42b490ef09b6bc541af688e4959bb8c53f359a6f56e38ab454a3"; |
| | 304 | |
| | 305 | htest.assertEqualHash(Blake2s256, h1, block[0..]); |
| | 306 | |
| 256 | var h = Blake2s256.init(); | 307 | var h = Blake2s256.init(); |
| 257 | h.update(&block); | 308 | h.update(&block); |
| 258 | h.final(out[0..]); | 309 | h.final(out[0..]); |
| | 310 | |
| | 311 | htest.assertEqual(h1, out[0..]); |
| 259 | } | 312 | } |
| 260 | | 313 | |
| 261 | ///////////////////// | 314 | ///////////////////// |