From 81780e5ab10f0828da21e26f397a6a352e5c4d9a Mon Sep 17 00:00:00 2001 From: AJ ONeal Date: Sun, 9 Dec 2018 21:08:18 -0700 Subject: [PATCH] v1.2.4: bugfix RSA swapped n and e values (private key) --- lib/ssh-parser.js | 5 +++++ package.json | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/ssh-parser.js b/lib/ssh-parser.js index f15bcb1..0d00b67 100644 --- a/lib/ssh-parser.js +++ b/lib/ssh-parser.js @@ -9,6 +9,11 @@ SSH.parse = function (opts) { var ssh = SSH.parseBlock(pub); if ('OPENSSH PRIVATE KEY' === ssh.type) { ssh = SSH.parsePrivateElements(ssh); + if (7 === ssh.elements.length) { + // RSA Private Keys have the `e` and `n` swapped (which is actually more normal) + // but we have to reswap them to make them consistent with the public key format + ssh.elements.splice(1, 0, ssh.elements.splice(2 ,1)[0]); + } if (opts.public) { ssh.elements = ssh.elements.slice(0, 3); } diff --git a/package.json b/package.json index 3790693..7c5f242 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ssh-to-jwk", - "version": "1.2.2", + "version": "1.2.4", "description": "💯 SSH to JWK in a lightweight, zero-dependency library.", "homepage": "https://git.coolaj86.com/coolaj86/ssh-to-jwk.js", "main": "index.js",