1 line
8.4 KiB
JSON
1 line
8.4 KiB
JSON
{"ast":null,"code":"// Copyright 2015 Joyent, Inc.\nmodule.exports = {\n Verifier: Verifier,\n Signer: Signer\n};\n\nvar nacl = require('tweetnacl');\n\nvar stream = require('stream');\n\nvar util = require('util');\n\nvar assert = require('assert-plus');\n\nvar Buffer = require('safer-buffer').Buffer;\n\nvar Signature = require('./signature');\n\nfunction Verifier(key, hashAlgo) {\n if (hashAlgo.toLowerCase() !== 'sha512') throw new Error('ED25519 only supports the use of ' + 'SHA-512 hashes');\n this.key = key;\n this.chunks = [];\n stream.Writable.call(this, {});\n}\n\nutil.inherits(Verifier, stream.Writable);\n\nVerifier.prototype._write = function (chunk, enc, cb) {\n this.chunks.push(chunk);\n cb();\n};\n\nVerifier.prototype.update = function (chunk) {\n if (typeof chunk === 'string') chunk = Buffer.from(chunk, 'binary');\n this.chunks.push(chunk);\n};\n\nVerifier.prototype.verify = function (signature, fmt) {\n var sig;\n\n if (Signature.isSignature(signature, [2, 0])) {\n if (signature.type !== 'ed25519') return false;\n sig = signature.toBuffer('raw');\n } else if (typeof signature === 'string') {\n sig = Buffer.from(signature, 'base64');\n } else if (Signature.isSignature(signature, [1, 0])) {\n throw new Error('signature was created by too old ' + 'a version of sshpk and cannot be verified');\n }\n\n assert.buffer(sig);\n return nacl.sign.detached.verify(new Uint8Array(Buffer.concat(this.chunks)), new Uint8Array(sig), new Uint8Array(this.key.part.A.data));\n};\n\nfunction Signer(key, hashAlgo) {\n if (hashAlgo.toLowerCase() !== 'sha512') throw new Error('ED25519 only supports the use of ' + 'SHA-512 hashes');\n this.key = key;\n this.chunks = [];\n stream.Writable.call(this, {});\n}\n\nutil.inherits(Signer, stream.Writable);\n\nSigner.prototype._write = function (chunk, enc, cb) {\n this.chunks.push(chunk);\n cb();\n};\n\nSigner.prototype.update = function (chunk) {\n if (typeof chunk === 'string') chunk = Buffer.from(chunk, 'binary');\n this.chunks.push(chunk);\n};\n\nSigner.prototype.sign = function () {\n var sig = nacl.sign.detached(new Uint8Array(Buffer.concat(this.chunks)), new Uint8Array(Buffer.concat([this.key.part.k.data, this.key.part.A.data])));\n var sigBuf = Buffer.from(sig);\n var sigObj = Signature.parse(sigBuf, 'ed25519', 'raw');\n sigObj.hashAlgorithm = 'sha512';\n return sigObj;\n};","map":{"version":3,"sources":["/Users/tylerkoenig/Code/personal/react-scss2/node_modules/sshpk/lib/ed-compat.js"],"names":["module","exports","Verifier","Signer","nacl","require","stream","util","assert","Buffer","Signature","key","hashAlgo","toLowerCase","Error","chunks","Writable","call","inherits","prototype","_write","chunk","enc","cb","push","update","from","verify","signature","fmt","sig","isSignature","type","toBuffer","buffer","sign","detached","Uint8Array","concat","part","A","data","k","sigBuf","sigObj","parse","hashAlgorithm"],"mappings":"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","sourcesContent":["// Copyright 2015 Joyent, Inc.\n\nmodule.exports = {\n\tVerifier: Verifier,\n\tSigner: Signer\n};\n\nvar nacl = require('tweetnacl');\nvar stream = require('stream');\nvar util = require('util');\nvar assert = require('assert-plus');\nvar Buffer = require('safer-buffer').Buffer;\nvar Signature = require('./signature');\n\nfunction Verifier(key, hashAlgo) {\n\tif (hashAlgo.toLowerCase() !== 'sha512')\n\t\tthrow (new Error('ED25519 only supports the use of ' +\n\t\t 'SHA-512 hashes'));\n\n\tthis.key = key;\n\tthis.chunks = [];\n\n\tstream.Writable.call(this, {});\n}\nutil.inherits(Verifier, stream.Writable);\n\nVerifier.prototype._write = function (chunk, enc, cb) {\n\tthis.chunks.push(chunk);\n\tcb();\n};\n\nVerifier.prototype.update = function (chunk) {\n\tif (typeof (chunk) === 'string')\n\t\tchunk = Buffer.from(chunk, 'binary');\n\tthis.chunks.push(chunk);\n};\n\nVerifier.prototype.verify = function (signature, fmt) {\n\tvar sig;\n\tif (Signature.isSignature(signature, [2, 0])) {\n\t\tif (signature.type !== 'ed25519')\n\t\t\treturn (false);\n\t\tsig = signature.toBuffer('raw');\n\n\t} else if (typeof (signature) === 'string') {\n\t\tsig = Buffer.from(signature, 'base64');\n\n\t} else if (Signature.isSignature(signature, [1, 0])) {\n\t\tthrow (new Error('signature was created by too old ' +\n\t\t 'a version of sshpk and cannot be verified'));\n\t}\n\n\tassert.buffer(sig);\n\treturn (nacl.sign.detached.verify(\n\t new Uint8Array(Buffer.concat(this.chunks)),\n\t new Uint8Array(sig),\n\t new Uint8Array(this.key.part.A.data)));\n};\n\nfunction Signer(key, hashAlgo) {\n\tif (hashAlgo.toLowerCase() !== 'sha512')\n\t\tthrow (new Error('ED25519 only supports the use of ' +\n\t\t 'SHA-512 hashes'));\n\n\tthis.key = key;\n\tthis.chunks = [];\n\n\tstream.Writable.call(this, {});\n}\nutil.inherits(Signer, stream.Writable);\n\nSigner.prototype._write = function (chunk, enc, cb) {\n\tthis.chunks.push(chunk);\n\tcb();\n};\n\nSigner.prototype.update = function (chunk) {\n\tif (typeof (chunk) === 'string')\n\t\tchunk = Buffer.from(chunk, 'binary');\n\tthis.chunks.push(chunk);\n};\n\nSigner.prototype.sign = function () {\n\tvar sig = nacl.sign.detached(\n\t new Uint8Array(Buffer.concat(this.chunks)),\n\t new Uint8Array(Buffer.concat([\n\t\tthis.key.part.k.data, this.key.part.A.data])));\n\tvar sigBuf = Buffer.from(sig);\n\tvar sigObj = Signature.parse(sigBuf, 'ed25519', 'raw');\n\tsigObj.hashAlgorithm = 'sha512';\n\treturn (sigObj);\n};\n"]},"metadata":{},"sourceType":"script"} |