web3.js/lib/utils/sha3.js

39 lines
1.2 KiB
JavaScript
Raw Normal View History

2015-05-16 15:42:48 +02:00
/*
2015-10-08 15:34:07 +08:00
This file is part of web3.js.
2015-05-16 15:42:48 +02:00
2015-10-08 15:34:07 +08:00
web3.js is free software: you can redistribute it and/or modify
2015-05-16 15:42:48 +02:00
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
2015-10-08 15:34:07 +08:00
web3.js is distributed in the hope that it will be useful,
2015-05-16 15:42:48 +02:00
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
2015-10-08 15:34:07 +08:00
along with web3.js. If not, see <http://www.gnu.org/licenses/>.
2015-05-16 15:42:48 +02:00
*/
/**
* @file sha3.js
* @author Marek Kotewicz <marek@ethdev.com>
* @date 2015
*/
var CryptoJS = require('crypto-js');
2015-05-16 15:42:48 +02:00
var sha3 = require('crypto-js/sha3');
module.exports = function (value, options) {
if (options && options.encoding === 'hex') {
if (value.length > 2 && value.substr(0, 2) === '0x') {
value = value.substr(2);
}
value = CryptoJS.enc.Hex.parse(value);
2015-05-26 20:47:04 +02:00
}
return sha3(value, {
2015-05-16 15:42:48 +02:00
outputLength: 256
}).toString();
};