Files @ 07d399b4c31c
Branch filter:

Location: CryptoJS/spec/test/blakeSpec.js

Laman
updated .hgignore
/* global expect */

describe("Blake2", function () {
	let cryptoJS = require("../../dist/main.js");
	let util = cryptoJS.util;
	let blake2s = cryptoJS.blake2s;
	let str2utf8 = util.str2utf8;

	let msg = str2utf8("abc");
	let longMsg = str2utf8("0123456789.10.456789.20.456789.30.456789.40.456789.50.456789.60.456789.70.456789.80.456789.90.456789");
	let key = str2utf8("zoqpiz");
	let longKey = str2utf8("zoqpizjutyclcmkamzhhmhvchxjtefjy");

	describe("blake2s", function() {
		it("should return a correct variable size output", function() {
			expect(util.bytes2hex(blake2s(msg, 16))).toEqual("aa4938119b1dc7b87cbad0ffd200d0ae");
		});
		it("should work with just a message", function() {
			expect(util.bytes2hex(blake2s(msg))).toEqual("508c5e8c327c14e2e1a72ba34eeb452f37458b209ed63a294d999b4c86675982");
		});
		it("should work for multi block messages", function() {
			expect(util.bytes2hex(blake2s(longMsg.slice(0, 64)))).toEqual("70484f89974551454d596350dda8af2aa6f0811b527549b9ecfe7adede063753");
			expect(util.bytes2hex(blake2s(longMsg.slice(0, 65)))).toEqual("af14d4f74947bbde734d0e3015c667cc80676efe4349be235be8046e9e45e0ae");
			expect(util.bytes2hex(blake2s(longMsg))).toEqual("59a44e5e417d07fb382505ee7e67c23e0d476d354abc81899960bcab677beee1");
		});
		it("should work for keyed messages", function() {
			expect(util.bytes2hex(blake2s(msg, 32, key))).toEqual("0da0b6a54e8f294b60bb25c572700166ddb9d124257ff36f9f43f18b844adf9f");
		});
		it("should work with long keyes", function() {
			expect(util.bytes2hex(blake2s(msg, 32, longKey))).toEqual("09ef85c9942bebdeb866c6ade769220fd9b851aead642017f6d59bf7e2a32037");
		});
		it("should work with an empty input", function() {
			expect(util.bytes2hex(blake2s([]))).toEqual("69217a3079908094e11121d042354a7c1f55b6482ca1a51e1b250dfd1ed0eef9");
		});
	});

});