�PNG  IHDR��;���IDATx��ܻn�0���K�� �)(�pA��� ���7�LeG{�� �§㻢|��ذaÆ 6lذaÆ 6lذaÆ 6lom��$^�y���ذag�5bÆ 6lذaÆ 6lذa{���� 6lذaÆ �`����}H�Fkm�,�m����Ӫ���ô�ô!� �x�|'ܢ˟;�E:���9�&ᶒ�}�{�v]�n&�6� �h��_��t�ڠ͵-ҫ���Z;��Z$�.�P���k�ž)�!��o���>}l�eQfJ�T��u і���چ��\��X=8��Rن4`Vw�l�>����n�G�^��i�s��"ms�$�u��i��?w�bs[m�6�K4���O���.�4��%����/����b�C%��t ��M�ז� �-l�G6�mrz2���s�%�9��s@���-�k�9�=���)������k�B5����\��+͂�Zsٲ ��Rn��~G���R���C����� �wIcI��n7jJ���hۛNCS|���j0��8y�iHKֶۛ�k�Ɉ+;Sz������L/��F�*\��Ԕ�#"5��m�2��[S��������=�g��n�a�P�e�ғ�L�� lذaÆ 6l�^k��̱aÆ 6lذaÆ 6lذa;���� �_��ذaÆ 6lذaÆ 6lذaÆ ���R���IEND�B` var tape = require('tape') var vectors = require('hash-test-vectors') // var from = require('bops/typedarray/from') var Buffer = require('safe-buffer').Buffer var createHash = require('../') function makeTest (alg, i, verbose) { var v = vectors[i] tape(alg + ': NIST vector ' + i, function (t) { if (verbose) { console.log(v) console.log('VECTOR', i) console.log('INPUT', v.input) console.log(Buffer.from(v.input, 'base64').toString('hex')) } var buf = Buffer.from(v.input, 'base64') t.equal(createHash(alg).update(buf).digest('hex'), v[alg]) i = ~~(buf.length / 2) var buf1 = buf.slice(0, i) var buf2 = buf.slice(i, buf.length) console.log(buf1.length, buf2.length, buf.length) console.log(createHash(alg)._block.length) t.equal( createHash(alg) .update(buf1) .update(buf2) .digest('hex'), v[alg] ) var j, buf3 i = ~~(buf.length / 3) j = ~~(buf.length * 2 / 3) buf1 = buf.slice(0, i) buf2 = buf.slice(i, j) buf3 = buf.slice(j, buf.length) t.equal( createHash(alg) .update(buf1) .update(buf2) .update(buf3) .digest('hex'), v[alg] ) setTimeout(function () { // avoid "too much recursion" errors in tape in firefox t.end() }) }) } if (process.argv[2]) { makeTest(process.argv[2], parseInt(process.argv[3], 10), true) } else { vectors.forEach(function (v, i) { makeTest('sha', i) makeTest('sha1', i) makeTest('sha224', i) makeTest('sha256', i) makeTest('sha384', i) makeTest('sha512', i) }) }