summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Turek <brian.turek@gmail.com>2017-05-03 17:51:06 +0100
committerBrian Turek <brian.turek@gmail.com>2017-05-03 17:51:06 +0100
commitda12f07f8d91a5a62fbb7ef40042b5ab48e4ccb1 (patch)
treeb3fd10be94bde04b8df4eaacccee20e67ce87b1e
parent30ff219a018bd0bcf835a02938e052bc78f07f80 (diff)
downloadjsSHA-da12f07f8d91a5a62fbb7ef40042b5ab48e4ccb1.zip
jsSHA-da12f07f8d91a5a62fbb7ef40042b5ab48e4ccb1.tar.gz
jsSHA-da12f07f8d91a5a62fbb7ef40042b5ab48e4ccb1.tar.bz2
Fixed ArrayBuffer issues
-rw-r--r--src/sha_dev.js10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/sha_dev.js b/src/sha_dev.js
index ddccbe5..cfd2289 100644
--- a/src/sha_dev.js
+++ b/src/sha_dev.js
@@ -330,12 +330,13 @@ var SUPPORTED_ALGS = 8 | 4 | 2 | 1;
*/
function arraybuffer2packed(arr, existingPacked, existingPackedLen, bigEndianMod)
{
- var packed, i, existingByteLen, intOffset, byteOffset, shiftModifier;
+ var packed, i, existingByteLen, intOffset, byteOffset, shiftModifier, arrView;
packed = existingPacked || [0];
existingPackedLen = existingPackedLen || 0;
existingByteLen = existingPackedLen >>> 3;
shiftModifier = (bigEndianMod === -1) ? 3 : 0;
+ arrView = new Uint8Array(arr);
for (i = 0; i < arr.byteLength; i += 1)
{
@@ -345,7 +346,7 @@ var SUPPORTED_ALGS = 8 | 4 | 2 | 1;
{
packed.push(0);
}
- packed[intOffset] |= arr[i] << (8 * (shiftModifier + bigEndianMod * (byteOffset % 4)));
+ packed[intOffset] |= arrView[i] << (8 * (shiftModifier + bigEndianMod * (byteOffset % 4)));
}
return {"value" : packed, "binLen" : arr.byteLength * 8 + existingPackedLen};
@@ -467,13 +468,14 @@ var SUPPORTED_ALGS = 8 | 4 | 2 | 1;
*/
function packed2arraybuffer(packed, outputLength, bigEndianMod)
{
- var length = outputLength / 8, i, retVal = new ArrayBuffer(length), shiftModifier;
+ var length = outputLength / 8, i, retVal = new ArrayBuffer(length), shiftModifier, arrView;
+ arrView = new Uint8Array(retVal);
shiftModifier = (bigEndianMod === -1) ? 3 : 0;
for (i = 0; i < length; i += 1)
{
- retVal[i] = (packed[i >>> 2] >>> (8 * (shiftModifier + bigEndianMod * (i % 4)))) & 0xFF;
+ arrView[i] = (packed[i >>> 2] >>> (8 * (shiftModifier + bigEndianMod * (i % 4)))) & 0xFF;
}
return retVal;