Added missing arrayBuffer method.

This commit is contained in:
Chen, Yi-Cyuan
2017-01-24 15:15:13 +08:00
parent 06519f17db
commit 309beb285b
12 changed files with 97 additions and 46 deletions
+22 -4
View File
@@ -30,7 +30,7 @@
* [js-md4]{@link https://github.com/emn178/js-md4}
*
* @namespace md4
* @version 0.3.1
* @version 0.3.2
* @author Yi-Cyuan Chen [emn178@gmail.com]
* @copyright Yi-Cyuan Chen 2015-2027
* @license MIT
@@ -50,7 +50,7 @@
var HEX_CHARS = '0123456789abcdef'.split('');
var EXTRA = [128, 32768, 8388608, -2147483648];
var SHIFT = [0, 8, 16, 24];
var OUTPUT_TYPES = ['hex', 'array', 'digest', 'buffer'];
var OUTPUT_TYPES = ['hex', 'array', 'digest', 'buffer', 'arrayBuffer'];
var blocks = [], buffer8;
if (ARRAY_BUFFER) {
@@ -125,6 +125,9 @@
*/
var createMethod = function () {
var method = createOutputMethod('hex');
if (NODE_JS) {
method = nodeWrap(method);
}
method.create = function () {
return new Md4();
};
@@ -138,6 +141,21 @@
return method;
};
var nodeWrap = function (method) {
var crypto = require('crypto');
var Buffer = require('buffer').Buffer;
var nodeMethod = function (message) {
if (typeof message === 'string') {
return crypto.createHash('md4').update(message, 'utf8').digest('hex');
} else if (ARRAY_BUFFER && message instanceof ArrayBuffer) {
message = new Uint8Array(message);
} else if (message.length === undefined) {
return method(message);
}
return crypto.createHash('md4').update(new Buffer(message)).digest('hex');
};
return nodeMethod;
};
/**
* Md4 class
@@ -181,7 +199,7 @@
return;
}
var notString = typeof message !== 'string';
if(notString && ARRAY_BUFFER && message instanceof ArrayBuffer) {
if (notString && ARRAY_BUFFER && message instanceof ArrayBuffer) {
message = new Uint8Array(message);
}
var code, index = 0, i, length = message.length || 0, blocks = this.blocks;
@@ -598,7 +616,7 @@
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Mon Jan 23 2017 15:12:38 GMT+0800 (CST)
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Tue Jan 24 2017 15:15:12 GMT+0800 (CST)
</footer>
<script> prettyPrint(); </script>