131 lines
4.0 KiB
JavaScript
131 lines
4.0 KiB
JavaScript
/* Warning: These tests take about 8 minutes to run. */
|
|
|
|
goog.provide('goog.crypt.ShaMcTest');
|
|
goog.setTestOnly('goog.crypt.ShaMcTest');
|
|
|
|
goog.require('goog.crypt');
|
|
goog.require('goog.crypt.Sha1');
|
|
goog.require('goog.crypt.Sha224');
|
|
goog.require('goog.crypt.Sha256');
|
|
goog.require('goog.crypt.Sha384');
|
|
goog.require('goog.crypt.Sha512');
|
|
|
|
goog.require('goog.testing.jsunit');
|
|
goog.require('goog.userAgent');
|
|
|
|
function testSha1() {
|
|
var sha = new goog.crypt.Sha1();
|
|
var initial_state = 'Sha1';
|
|
var count = 1638;
|
|
var state = goog.crypt.stringToByteArray(initial_state);
|
|
var digest;
|
|
for (var i = 0; i < count; i++) {
|
|
sha.reset();
|
|
sha.update(state);
|
|
digest = sha.digest();
|
|
state = goog.array.concat(digest, state);
|
|
}
|
|
assertEquals(32764, state.length);
|
|
assertEquals('9da05831d6441141b62545eb4bf3bcc92b8c8276',
|
|
goog.crypt.byteArrayToHex(digest));
|
|
sha.reset();
|
|
for (var i = 0; i < (32764 + 10); i++) {
|
|
sha.update(state, i);
|
|
}
|
|
assertEquals('70a4f1a7b523d9989a1cfd0f512a906abbfefe5f',
|
|
goog.crypt.byteArrayToHex(sha.digest()));
|
|
}
|
|
|
|
function testSha224() {
|
|
var sha = new goog.crypt.Sha224();
|
|
var initial_state = 'Sha224';
|
|
var count = 1170;
|
|
var state = goog.crypt.stringToByteArray(initial_state);
|
|
var digest;
|
|
for (var i = 0; i < count; i++) {
|
|
sha.reset();
|
|
sha.update(state);
|
|
digest = sha.digest();
|
|
state = goog.array.concat(digest, state);
|
|
}
|
|
assertEquals(32766, state.length);
|
|
assertEquals('c7636f5369a057fde53f3a70cb2880795a35af53db38ed8a04cbcbfe',
|
|
goog.crypt.byteArrayToHex(digest));
|
|
sha.reset();
|
|
for (var i = 0; i < (32766 + 10); i++) {
|
|
sha.update(state, i);
|
|
}
|
|
assertEquals('69f7e71bbf9a7bd15832fa77e09cbe458dcea284ddb00a69eb3ed78a',
|
|
goog.crypt.byteArrayToHex(sha.digest()));
|
|
}
|
|
|
|
function testSha256() {
|
|
var sha = new goog.crypt.Sha256();
|
|
var initial_state = 'Sha256';
|
|
var count = 1024;
|
|
var state = goog.crypt.stringToByteArray(initial_state);
|
|
var digest;
|
|
for (var i = 0; i < count; i++) {
|
|
sha.reset();
|
|
sha.update(state);
|
|
digest = sha.digest();
|
|
state = goog.array.concat(digest, state);
|
|
}
|
|
assertEquals(32774, state.length);
|
|
assertEquals('bdc98db7476b58c33161211099b02c27da6bed3959a8b1d4e600f4d628ba0200',
|
|
goog.crypt.byteArrayToHex(digest));
|
|
sha.reset();
|
|
for (var i = 0; i < (32774 + 10); i++) {
|
|
sha.update(state, i);
|
|
}
|
|
assertEquals('26cc26f6429ce20c1b537d67cc288231a18de2a258d8bf529751439cd7c71d37',
|
|
goog.crypt.byteArrayToHex(sha.digest()));
|
|
}
|
|
|
|
function testSha384() {
|
|
var sha = new goog.crypt.Sha384();
|
|
var initial_state = 'Sha384';
|
|
var count = 682;
|
|
var state = goog.crypt.stringToByteArray(initial_state);
|
|
var digest;
|
|
for (var i = 0; i < count; i++) {
|
|
sha.reset();
|
|
sha.update(state);
|
|
digest = sha.digest();
|
|
state = goog.array.concat(digest, state);
|
|
}
|
|
assertEquals(32742, state.length);
|
|
assertEquals('1e7017a365fd31f6c439efb3eabef783a1e09ebcbb357bc4c9aac5fa9d731a167ee8105cd1c76159a1c27c56c5d1bc8c',
|
|
goog.crypt.byteArrayToHex(digest));
|
|
sha.reset();
|
|
for (var i = 0; i < (32742 + 10); i++) {
|
|
sha.update(state, i);
|
|
}
|
|
assertEquals('0cd4695e15f9089e767b2866e1728588d5cece4ad13e4943aa5bd5f9debbe133e2fac302851a2e90e13c318ace25fbb8',
|
|
goog.crypt.byteArrayToHex(sha.digest()));
|
|
}
|
|
|
|
function testSha512() {
|
|
var sha = new goog.crypt.Sha512();
|
|
var initial_state = 'Sha512';
|
|
var count = 512;
|
|
var state = goog.crypt.stringToByteArray(initial_state);
|
|
var digest;
|
|
for (var i = 0; i < count; i++) {
|
|
sha.reset();
|
|
sha.update(state);
|
|
digest = sha.digest();
|
|
state = goog.array.concat(digest, state);
|
|
}
|
|
assertEquals(32774, state.length);
|
|
assertEquals('5c9c25961a9171e2a79b9be65e05ce238752e7bfbaf3696c6ed63b8ee2735315d2cb58bf70a5f08dd70ecab029bd0725dcdd84dacd063ea9148cb3e5d7fa948a',
|
|
goog.crypt.byteArrayToHex(digest));
|
|
sha.reset();
|
|
for (var i = 0; i < (32774 + 10); i++) {
|
|
sha.update(state, i);
|
|
}
|
|
assertEquals('10a310e050cf9b2e9d4fc3c0a8f8e183c158ff28c23a42fd5b7777f449cfbe92655eee2bb42fb47c6900e001153b74a5db777b9b2d1543dc30fe98face94f106',
|
|
goog.crypt.byteArrayToHex(sha.digest()));
|
|
}
|
|
|