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",