aboutsummaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/signature.js
diff options
context:
space:
mode:
authorKat Marchán <kzm@sykosomatic.org>2016-09-22 07:59:37 -0700
committerJeremiah Senkpiel <fishrock123@rocketmail.com>2016-09-27 16:39:27 -0400
commitd44a9eb11b34900b44a9d135a2c965346fff702e (patch)
treea8d074826fb51641f5a7f24978e5e632b958ca84 /deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/signature.js
parent33aa953f918f624a44e538baf2a3ee41570ac303 (diff)
downloadandroid-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.js20
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)