diff options
author | Kat Marchán <kzm@sykosomatic.org> | 2016-09-22 07:59:37 -0700 |
---|---|---|
committer | Jeremiah Senkpiel <fishrock123@rocketmail.com> | 2016-09-27 16:39:27 -0400 |
commit | d44a9eb11b34900b44a9d135a2c965346fff702e (patch) | |
tree | a8d074826fb51641f5a7f24978e5e632b958ca84 /deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/signature.js | |
parent | 33aa953f918f624a44e538baf2a3ee41570ac303 (diff) | |
download | android-node-v8-d44a9eb11b34900b44a9d135a2c965346fff702e.tar.gz android-node-v8-d44a9eb11b34900b44a9d135a2c965346fff702e.tar.bz2 android-node-v8-d44a9eb11b34900b44a9d135a2c965346fff702e.zip |
deps: upgrade npm to 3.10.8
PR-URL: https://github.com/nodejs/node/pull/8706
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Diffstat (limited to 'deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/signature.js')
-rw-r--r-- | deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/signature.js | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/signature.js b/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/signature.js index ddf4a8c988..964f55cb56 100644 --- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/signature.js +++ b/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/signature.js @@ -65,23 +65,31 @@ Signature.prototype.toBuffer = function (format) { buf = new SSHBuffer({}); buf.writeString('ssh-dss'); r = this.part.r.data; - if (r[0] === 0x00) + if (r.length > 20 && r[0] === 0x00) r = r.slice(1); s = this.part.s.data; + if (s.length > 20 && s[0] === 0x00) + s = s.slice(1); + if ((this.hashAlgorithm && + this.hashAlgorithm !== 'sha1') || + r.length + s.length !== 40) { + throw (new Error('OpenSSH only supports ' + + 'DSA signatures with SHA1 hash')); + } buf.writeBuffer(Buffer.concat([r, s])); return (buf.toBuffer()); } else if (format === 'ssh' && this.type === 'ecdsa') { var inner = new SSHBuffer({}); - r = this.part.r; - if (r[0] === 0x00) - r = r.slice(1); - inner.writePart(r); + r = this.part.r.data; + inner.writeBuffer(r); inner.writePart(this.part.s); buf = new SSHBuffer({}); /* XXX: find a more proper way to do this? */ var curve; - var sz = this.part.r.data.length * 8; + if (r[0] === 0x00) + r = r.slice(1); + var sz = r.length * 8; if (sz === 256) curve = 'nistp256'; else if (sz === 384) |