react / wstein / node_modules / browserify / node_modules / crypto-browserify / node_modules / browserify-sign / browser.js
80540 views'use strict'1var sign = require('./sign')2var verify = require('./verify')3var stream = require('stream')4var inherits = require('inherits')5var _algos = require('./algos')6var createHash = require('create-hash')7var algos = {}8Object.keys(_algos).forEach(function (key) {9algos[key] = algos[key.toLowerCase()] = _algos[key]10})1112exports.createSign = exports.Sign = createSign1314function createSign (algorithm) {15return new Sign(algorithm)16}1718exports.createVerify = exports.Verify = createVerify1920function createVerify (algorithm) {21return new Verify(algorithm)22}2324inherits(Sign, stream.Writable)2526function Sign (algorithm) {27stream.Writable.call(this)28var data = algos[algorithm]29if (!data)30throw new Error('Unknown message digest')3132this._hashType = data.hash33this._hash = createHash(data.hash)34this._tag = data.id35this._signType = data.sign36}3738Sign.prototype._write = function _write (data, _, done) {39this._hash.update(data)40done()41}4243Sign.prototype.update = function update (data, enc) {44if (typeof data === 'string')45data = new Buffer(data, enc)46this._hash.update(data)47return this48}4950Sign.prototype.sign = function signMethod (key, enc) {51this.end()52var hash = this._hash.digest()53var sig = sign(Buffer.concat([this._tag, hash]), key, this._hashType, this._signType)54if (enc) {55sig = sig.toString(enc)56}57return sig58}5960inherits(Verify, stream.Writable)61function Verify (algorithm) {62stream.Writable.call(this)63var data = algos[algorithm]64if (!data)65throw new Error('Unknown message digest')6667this._hash = createHash(data.hash)68this._tag = data.id69this._signType = data.sign70}7172Verify.prototype._write = function _write (data, _, done) {73this._hash.update(data)74done()75}7677Verify.prototype.update = function update (data, enc) {78if (typeof data === 'string')79data = new Buffer(data, enc)8081this._hash.update(data)82return this83}8485Verify.prototype.verify = function verifyMethod (key, sig, enc) {86this.end()87var hash = this._hash.digest()88if (typeof sig === 'string')89sig = new Buffer(sig, enc)9091return verify(sig, Buffer.concat([this._tag, hash]), key, this._signType)92}939495