Compare commits
5 Commits
Author | SHA1 | Date | |
---|---|---|---|
c54e91c5c3 | |||
bcc503596f | |||
afdd93b267 | |||
16ad97d445 | |||
931e884ba9 |
@ -5,6 +5,8 @@ var path = require('path');
|
||||
var jwktossh = require('../index.js');
|
||||
|
||||
var pubfile = process.argv[2];
|
||||
var comment = process.argv[3] || 'root@localhost';
|
||||
var pub = ('public' === process.argv[4]);
|
||||
|
||||
if (!pubfile) {
|
||||
console.error("specify a path to JWK");
|
||||
@ -12,7 +14,6 @@ if (!pubfile) {
|
||||
}
|
||||
|
||||
var jwk = require(path.join(process.cwd(), pubfile));
|
||||
var comment = process.argv[3] || 'root@localhost';
|
||||
var pub = jwktossh.pack({ jwk: jwk, comment: comment });
|
||||
var out = jwktossh.pack({ jwk: jwk, comment: comment, public: pub });
|
||||
|
||||
console.info(pub);
|
||||
console.info(out);
|
||||
|
7
fixtures/privkey-ec-p256.jwk.json
Normal file
7
fixtures/privkey-ec-p256.jwk.json
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"kty": "EC",
|
||||
"crv": "P-256",
|
||||
"d": "BzKpRmMyXZ4jnSt3ARz0ul6R79AXAr5gQqDAmoFeEKw",
|
||||
"x": "fVmT3gUr4sZIY0Dofcgl15RMeQjfTMofeAiSda4oH_M",
|
||||
"y": "r3eBz3QeZqEhHmgwYfCWoyhLuQqtHD7gqnGqwXssa_E"
|
||||
}
|
7
fixtures/privkey-ec-p256.jwk.json.2
Normal file
7
fixtures/privkey-ec-p256.jwk.json.2
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"kty": "EC",
|
||||
"crv": "P-256",
|
||||
"d": "BzKpRmMyXZ4jnSt3ARz0ul6R79AXAr5gQqDAmoFeEKw",
|
||||
"x": "fVmT3gUr4sZIY0Dofcgl15RMeQjfTMofeAiSda4oH_M",
|
||||
"y": "r3eBz3QeZqEhHmgwYfCWoyhLuQqtHD7gqnGqwXssa_E"
|
||||
}
|
7
fixtures/privkey-ec-p256.openssh.b64
Normal file
7
fixtures/privkey-ec-p256.openssh.b64
Normal file
@ -0,0 +1,7 @@
|
||||
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAaAAAABNlY2RzYS
|
||||
1zaGEyLW5pc3RwMjU2AAAACG5pc3RwMjU2AAAAQQR9WZPeBSvixkhjQOh9yCXXlEx5CN9M
|
||||
yh94CJJ1rigf8693gc90HmahIR5oMGHwlqMoS7kKrRw+4KpxqsF7LGvxAAAAqJZtgRuWbY
|
||||
EbAAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBH1Zk94FK+LGSGNA
|
||||
6H3IJdeUTHkI30zKH3gIknWuKB/zr3eBz3QeZqEhHmgwYfCWoyhLuQqtHD7gqnGqwXssa/
|
||||
EAAAAgBzKpRmMyXZ4jnSt3ARz0ul6R79AXAr5gQqDAmoFeEKwAAAAOYWpAYm93aWUubG9j
|
||||
YWwBAg==
|
7
fixtures/privkey-ec-p256.openssh.b64.2
Normal file
7
fixtures/privkey-ec-p256.openssh.b64.2
Normal file
@ -0,0 +1,7 @@
|
||||
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAaAAAABNlY2RzYS
|
||||
1zaGEyLW5pc3RwMjU2AAAACG5pc3RwMjU2AAAAQQR9WZPeBSvixkhjQOh9yCXXlEx5CN9M
|
||||
yh94CJJ1rigf8693gc90HmahIR5oMGHwlqMoS7kKrRw+4KpxqsF7LGvxAAAAqGJjanNiY2
|
||||
pzAAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBH1Zk94FK+LGSGNA
|
||||
6H3IJdeUTHkI30zKH3gIknWuKB/zr3eBz3QeZqEhHmgwYfCWoyhLuQqtHD7gqnGqwXssa/
|
||||
EAAAAgBzKpRmMyXZ4jnSt3ARz0ul6R79AXAr5gQqDAmoFeEKwAAAAOYWpAYm93aWUubG9j
|
||||
YWwBAg==
|
20
fixtures/privkey-ec-p256.openssh.hex
Normal file
20
fixtures/privkey-ec-p256.openssh.hex
Normal file
@ -0,0 +1,20 @@
|
||||
00000000: 6f70 656e 7373 682d 6b65 792d 7631 0000 openssh-key-v1..
|
||||
00000010: 0000 046e 6f6e 6500 0000 046e 6f6e 6500 ...none....none.
|
||||
00000020: 0000 0000 0000 0100 0000 6800 0000 1365 ..........h....e
|
||||
00000030: 6364 7361 2d73 6861 322d 6e69 7374 7032 cdsa-sha2-nistp2
|
||||
00000040: 3536 0000 0008 6e69 7374 7032 3536 0000 56....nistp256..
|
||||
00000050: 0041 047d 5993 de05 2be2 c648 6340 e87d .A.}Y...+..Hc@.}
|
||||
00000060: c825 d794 4c79 08df 4cca 1f78 0892 75ae .%..Ly..L..x..u.
|
||||
00000070: 281f f3af 7781 cf74 1e66 a121 1e68 3061 (...w..t.f.!.h0a
|
||||
00000080: f096 a328 4bb9 0aad 1c3e e0aa 71aa c17b ...(K....>..q..{
|
||||
00000090: 2c6b f100 0000 a896 6d81 1b96 6d81 1b00 ,k......m...m...
|
||||
000000a0: 0000 1365 6364 7361 2d73 6861 322d 6e69 ...ecdsa-sha2-ni
|
||||
000000b0: 7374 7032 3536 0000 0008 6e69 7374 7032 stp256....nistp2
|
||||
000000c0: 3536 0000 0041 047d 5993 de05 2be2 c648 56...A.}Y...+..H
|
||||
000000d0: 6340 e87d c825 d794 4c79 08df 4cca 1f78 c@.}.%..Ly..L..x
|
||||
000000e0: 0892 75ae 281f f3af 7781 cf74 1e66 a121 ..u.(...w..t.f.!
|
||||
000000f0: 1e68 3061 f096 a328 4bb9 0aad 1c3e e0aa .h0a...(K....>..
|
||||
00000100: 71aa c17b 2c6b f100 0000 2007 32a9 4663 q..{,k.... .2.Fc
|
||||
00000110: 325d 9e23 9d2b 7701 1cf4 ba5e 91ef d017 2].#.+w....^....
|
||||
00000120: 02be 6042 a0c0 9a81 5e10 ac00 0000 0e61 ..`B....^......a
|
||||
00000130: 6a40 626f 7769 652e 6c6f 6361 6c01 02 j@bowie.local..
|
20
fixtures/privkey-ec-p256.openssh.hex.2
Normal file
20
fixtures/privkey-ec-p256.openssh.hex.2
Normal file
@ -0,0 +1,20 @@
|
||||
00000000: 6f70 656e 7373 682d 6b65 792d 7631 0000 openssh-key-v1..
|
||||
00000010: 0000 046e 6f6e 6500 0000 046e 6f6e 6500 ...none....none.
|
||||
00000020: 0000 0000 0000 0100 0000 6800 0000 1365 ..........h....e
|
||||
00000030: 6364 7361 2d73 6861 322d 6e69 7374 7032 cdsa-sha2-nistp2
|
||||
00000040: 3536 0000 0008 6e69 7374 7032 3536 0000 56....nistp256..
|
||||
00000050: 0041 047d 5993 de05 2be2 c648 6340 e87d .A.}Y...+..Hc@.}
|
||||
00000060: c825 d794 4c79 08df 4cca 1f78 0892 75ae .%..Ly..L..x..u.
|
||||
00000070: 281f f3af 7781 cf74 1e66 a121 1e68 3061 (...w..t.f.!.h0a
|
||||
00000080: f096 a328 4bb9 0aad 1c3e e0aa 71aa c17b ...(K....>..q..{
|
||||
00000090: 2c6b f100 0000 a862 636a 7362 636a 7300 ,k.....bcjsbcjs.
|
||||
000000a0: 0000 1365 6364 7361 2d73 6861 322d 6e69 ...ecdsa-sha2-ni
|
||||
000000b0: 7374 7032 3536 0000 0008 6e69 7374 7032 stp256....nistp2
|
||||
000000c0: 3536 0000 0041 047d 5993 de05 2be2 c648 56...A.}Y...+..H
|
||||
000000d0: 6340 e87d c825 d794 4c79 08df 4cca 1f78 c@.}.%..Ly..L..x
|
||||
000000e0: 0892 75ae 281f f3af 7781 cf74 1e66 a121 ..u.(...w..t.f.!
|
||||
000000f0: 1e68 3061 f096 a328 4bb9 0aad 1c3e e0aa .h0a...(K....>..
|
||||
00000100: 71aa c17b 2c6b f100 0000 2007 32a9 4663 q..{,k.... .2.Fc
|
||||
00000110: 325d 9e23 9d2b 7701 1cf4 ba5e 91ef d017 2].#.+w....^....
|
||||
00000120: 02be 6042 a0c0 9a81 5e10 ac00 0000 0e61 ..`B....^......a
|
||||
00000130: 6a40 626f 7769 652e 6c6f 6361 6c01 02 j@bowie.local..
|
9
fixtures/privkey-ec-p256.openssh.pem
Normal file
9
fixtures/privkey-ec-p256.openssh.pem
Normal file
@ -0,0 +1,9 @@
|
||||
-----BEGIN OPENSSH PRIVATE KEY-----
|
||||
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAaAAAABNlY2RzYS
|
||||
1zaGEyLW5pc3RwMjU2AAAACG5pc3RwMjU2AAAAQQR9WZPeBSvixkhjQOh9yCXXlEx5CN9M
|
||||
yh94CJJ1rigf8693gc90HmahIR5oMGHwlqMoS7kKrRw+4KpxqsF7LGvxAAAAqJZtgRuWbY
|
||||
EbAAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBH1Zk94FK+LGSGNA
|
||||
6H3IJdeUTHkI30zKH3gIknWuKB/zr3eBz3QeZqEhHmgwYfCWoyhLuQqtHD7gqnGqwXssa/
|
||||
EAAAAgBzKpRmMyXZ4jnSt3ARz0ul6R79AXAr5gQqDAmoFeEKwAAAAOYWpAYm93aWUubG9j
|
||||
YWwBAg==
|
||||
-----END OPENSSH PRIVATE KEY-----
|
9
fixtures/privkey-ec-p256.openssh.pem.2
Normal file
9
fixtures/privkey-ec-p256.openssh.pem.2
Normal file
@ -0,0 +1,9 @@
|
||||
-----BEGIN OPENSSH PRIVATE KEY-----
|
||||
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAaAAAABNlY2RzYS
|
||||
1zaGEyLW5pc3RwMjU2AAAACG5pc3RwMjU2AAAAQQR9WZPeBSvixkhjQOh9yCXXlEx5CN9M
|
||||
yh94CJJ1rigf8693gc90HmahIR5oMGHwlqMoS7kKrRw+4KpxqsF7LGvxAAAAqGJjanNiY2
|
||||
pzAAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBH1Zk94FK+LGSGNA
|
||||
6H3IJdeUTHkI30zKH3gIknWuKB/zr3eBz3QeZqEhHmgwYfCWoyhLuQqtHD7gqnGqwXssa/
|
||||
EAAAAgBzKpRmMyXZ4jnSt3ARz0ul6R79AXAr5gQqDAmoFeEKwAAAAOYWpAYm93aWUubG9j
|
||||
YWwBAg==
|
||||
-----END OPENSSH PRIVATE KEY-----
|
1
fixtures/privkey-ec-p256.openssh.pem.2.pub
Normal file
1
fixtures/privkey-ec-p256.openssh.pem.2.pub
Normal file
@ -0,0 +1 @@
|
||||
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBH1Zk94FK+LGSGNA6H3IJdeUTHkI30zKH3gIknWuKB/zr3eBz3QeZqEhHmgwYfCWoyhLuQqtHD7gqnGqwXssa/E= root@localhost
|
1
fixtures/privkey-ec-p256.openssh.pem.pub
Normal file
1
fixtures/privkey-ec-p256.openssh.pem.pub
Normal file
@ -0,0 +1 @@
|
||||
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBH1Zk94FK+LGSGNA6H3IJdeUTHkI30zKH3gIknWuKB/zr3eBz3QeZqEhHmgwYfCWoyhLuQqtHD7gqnGqwXssa/E= root@localhost
|
9
fixtures/privkey-rsa-2048.jwk.json
Normal file
9
fixtures/privkey-rsa-2048.jwk.json
Normal file
@ -0,0 +1,9 @@
|
||||
{
|
||||
"kty": "RSA",
|
||||
"n": "0zRlF7ykENrG3V3SC83iO7utM4gQx6gm62MVJHa6NCwPEqoppEHsRynfUgVb68TZt5dS7AkZniIK8ZYcLqbbMoCvNK0V-SYrdgwkT-trcjASBCKi8QJLDBFtc-jN1yHSI9o1pC-noukL3q9NyVreE38WRveGsUj8T2h2H-j7G_pWZzH2K1l7VQ_YSQOr0IyjapqVKNSNnVqunuhdznqXo37vQs9cjJxLDSRtwjrmyUl1JBHbCWEq1t8H1JzDwa5Z47PLj-DQU4pPuUh5qW_qVN_tg44AuLbJ0yJIrrGiyKf6iZkvl9fKRc0QjMto319UHhzD7F5wUr3X8iHWXyFbOQ",
|
||||
"e": "AQAB",
|
||||
"d": "FM_i7lXebPLCCepG2nbtRimWRa-wx5vgSe23laJFcwKscZBnDhKY7-JGaVSx3CfHtHmq6Ct1ZMnB_lBmcopqqy1XFn-_3I9QVQ-ZPG7cZaIrBFFNcSZissu812End32TsYi9JHK1uC3yx3zK036qx40Mau3VTf79Le4DRd21cOoqSKqzt2fngyWCIV2VbUj1Jk5HvF5gHmBC1_iIJlrkE0sWkPBZSAhLfOqCuFDRUPfovSueF_pUUYSLqhQHpda1wBl6XDErE1lU8kaVaI7pxf6_RswTqIWH4J0NK_6n_pcTYHFJagMW1qfnUewXsXxJ_14tzNqXoOWtTqf45D8LqQ",
|
||||
"p": "-q0o_Xxs3x1c9HjCexR6QPxV-WWfdBEQcHjFQiwr045HPa9gBU0_SS6doOb7xeKWDuk_qSRF1vfABLXkDzY9jDPFmTpk2tcexT2PZu1Y0Y0h-C9nQCzBfeDTKGv-Jju4JRbSqrhk907cMajponP47QYYqX4GRvdOnbWHizoNiks",
|
||||
"q": "17CkB-asl_lX0vieylkIseZm74mQutso-bhHGNLx_VEbtn2EV3hiLfslsd4yxnMPTFdZKUTw-sPksYO8_0_3H2T18q8XTOm7rs9N5ahWHMmfx-shBpub2e8Z23tk60Hk5O1lzSBH5iktC9mE86BwpohZ1uvpJffialjvTR5C_gs",
|
||||
"qi": "bRdofVl5iXHzw9rlUyerqdnNOdI9LjnQlrAyUVkfxM1CS1-E9F3j7F4kHzm5bWPnsS51VlY6xX02WPATHvkUjzUvsAbdyg-sCYTw5aTFSzG2D6A0yNrX3CaHnHu0N8Gj6a_hfEzJ1FDnURefUEyjgRwBl_bsYkuQ3JkfhsIEKMM"
|
||||
}
|
9
fixtures/privkey-rsa-2048.jwk.json.2
Normal file
9
fixtures/privkey-rsa-2048.jwk.json.2
Normal file
@ -0,0 +1,9 @@
|
||||
{
|
||||
"kty": "RSA",
|
||||
"n": "0zRlF7ykENrG3V3SC83iO7utM4gQx6gm62MVJHa6NCwPEqoppEHsRynfUgVb68TZt5dS7AkZniIK8ZYcLqbbMoCvNK0V-SYrdgwkT-trcjASBCKi8QJLDBFtc-jN1yHSI9o1pC-noukL3q9NyVreE38WRveGsUj8T2h2H-j7G_pWZzH2K1l7VQ_YSQOr0IyjapqVKNSNnVqunuhdznqXo37vQs9cjJxLDSRtwjrmyUl1JBHbCWEq1t8H1JzDwa5Z47PLj-DQU4pPuUh5qW_qVN_tg44AuLbJ0yJIrrGiyKf6iZkvl9fKRc0QjMto319UHhzD7F5wUr3X8iHWXyFbOQ",
|
||||
"e": "AQAB",
|
||||
"d": "FM_i7lXebPLCCepG2nbtRimWRa-wx5vgSe23laJFcwKscZBnDhKY7-JGaVSx3CfHtHmq6Ct1ZMnB_lBmcopqqy1XFn-_3I9QVQ-ZPG7cZaIrBFFNcSZissu812End32TsYi9JHK1uC3yx3zK036qx40Mau3VTf79Le4DRd21cOoqSKqzt2fngyWCIV2VbUj1Jk5HvF5gHmBC1_iIJlrkE0sWkPBZSAhLfOqCuFDRUPfovSueF_pUUYSLqhQHpda1wBl6XDErE1lU8kaVaI7pxf6_RswTqIWH4J0NK_6n_pcTYHFJagMW1qfnUewXsXxJ_14tzNqXoOWtTqf45D8LqQ",
|
||||
"p": "-q0o_Xxs3x1c9HjCexR6QPxV-WWfdBEQcHjFQiwr045HPa9gBU0_SS6doOb7xeKWDuk_qSRF1vfABLXkDzY9jDPFmTpk2tcexT2PZu1Y0Y0h-C9nQCzBfeDTKGv-Jju4JRbSqrhk907cMajponP47QYYqX4GRvdOnbWHizoNiks",
|
||||
"q": "17CkB-asl_lX0vieylkIseZm74mQutso-bhHGNLx_VEbtn2EV3hiLfslsd4yxnMPTFdZKUTw-sPksYO8_0_3H2T18q8XTOm7rs9N5ahWHMmfx-shBpub2e8Z23tk60Hk5O1lzSBH5iktC9mE86BwpohZ1uvpJffialjvTR5C_gs",
|
||||
"qi": "bRdofVl5iXHzw9rlUyerqdnNOdI9LjnQlrAyUVkfxM1CS1-E9F3j7F4kHzm5bWPnsS51VlY6xX02WPATHvkUjzUvsAbdyg-sCYTw5aTFSzG2D6A0yNrX3CaHnHu0N8Gj6a_hfEzJ1FDnURefUEyjgRwBl_bsYkuQ3JkfhsIEKMM"
|
||||
}
|
25
fixtures/privkey-rsa-2048.openssh.b64
Normal file
25
fixtures/privkey-rsa-2048.openssh.b64
Normal file
@ -0,0 +1,25 @@
|
||||
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcn
|
||||
NhAAAAAwEAAQAAAQEA0zRlF7ykENrG3V3SC83iO7utM4gQx6gm62MVJHa6NCwPEqoppEHs
|
||||
RynfUgVb68TZt5dS7AkZniIK8ZYcLqbbMoCvNK0V+SYrdgwkT+trcjASBCKi8QJLDBFtc+
|
||||
jN1yHSI9o1pC+noukL3q9NyVreE38WRveGsUj8T2h2H+j7G/pWZzH2K1l7VQ/YSQOr0Iyj
|
||||
apqVKNSNnVqunuhdznqXo37vQs9cjJxLDSRtwjrmyUl1JBHbCWEq1t8H1JzDwa5Z47PLj+
|
||||
DQU4pPuUh5qW/qVN/tg44AuLbJ0yJIrrGiyKf6iZkvl9fKRc0QjMto319UHhzD7F5wUr3X
|
||||
8iHWXyFbOQAAA8gqv28eKr9vHgAAAAdzc2gtcnNhAAABAQDTNGUXvKQQ2sbdXdILzeI7u6
|
||||
0ziBDHqCbrYxUkdro0LA8SqimkQexHKd9SBVvrxNm3l1LsCRmeIgrxlhwuptsygK80rRX5
|
||||
Jit2DCRP62tyMBIEIqLxAksMEW1z6M3XIdIj2jWkL6ei6Qver03JWt4TfxZG94axSPxPaH
|
||||
Yf6Psb+lZnMfYrWXtVD9hJA6vQjKNqmpUo1I2dWq6e6F3Oepejfu9Cz1yMnEsNJG3COubJ
|
||||
SXUkEdsJYSrW3wfUnMPBrlnjs8uP4NBTik+5SHmpb+pU3+2DjgC4tsnTIkiusaLIp/qJmS
|
||||
+X18pFzRCMy2jfX1QeHMPsXnBSvdfyIdZfIVs5AAAAAwEAAQAAAQAUz+LuVd5s8sIJ6kba
|
||||
du1GKZZFr7DHm+BJ7beVokVzAqxxkGcOEpjv4kZpVLHcJ8e0earoK3VkycH+UGZyimqrLV
|
||||
cWf7/cj1BVD5k8btxloisEUU1xJmKyy7zXYSd3fZOxiL0kcrW4LfLHfMrTfqrHjQxq7dVN
|
||||
/v0t7gNF3bVw6ipIqrO3Z+eDJYIhXZVtSPUmTke8XmAeYELX+IgmWuQTSxaQ8FlICEt86o
|
||||
K4UNFQ9+i9K54X+lRRhIuqFAel1rXAGXpcMSsTWVTyRpVojunF/r9GzBOohYfgnQ0r/qf+
|
||||
lxNgcUlqAxbWp+dR7BexfEn/Xi3M2peg5a1Op/jkPwupAAAAgG0XaH1ZeYlx88Pa5VMnq6
|
||||
nZzTnSPS450JawMlFZH8TNQktfhPRd4+xeJB85uW1j57EudVZWOsV9NljwEx75FI81L7AG
|
||||
3coPrAmE8OWkxUsxtg+gNMja19wmh5x7tDfBo+mv4XxMydRQ51EXn1BMo4EcAZf27GJLkN
|
||||
yZH4bCBCjDAAAAgQD6rSj9fGzfHVz0eMJ7FHpA/FX5ZZ90ERBweMVCLCvTjkc9r2AFTT9J
|
||||
Lp2g5vvF4pYO6T+pJEXW98AEteQPNj2MM8WZOmTa1x7FPY9m7VjRjSH4L2dALMF94NMoa/
|
||||
4mO7glFtKquGT3TtwxqOmic/jtBhipfgZG906dtYeLOg2KSwAAAIEA17CkB+asl/lX0vie
|
||||
ylkIseZm74mQutso+bhHGNLx/VEbtn2EV3hiLfslsd4yxnMPTFdZKUTw+sPksYO8/0/3H2
|
||||
T18q8XTOm7rs9N5ahWHMmfx+shBpub2e8Z23tk60Hk5O1lzSBH5iktC9mE86BwpohZ1uvp
|
||||
JffialjvTR5C/gsAAAAOYWpAYm93aWUubG9jYWwBAgMEBQ==
|
25
fixtures/privkey-rsa-2048.openssh.b64.2
Normal file
25
fixtures/privkey-rsa-2048.openssh.b64.2
Normal file
@ -0,0 +1,25 @@
|
||||
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcn
|
||||
NhAAAAAwEAAQAAAQEA0zRlF7ykENrG3V3SC83iO7utM4gQx6gm62MVJHa6NCwPEqoppEHs
|
||||
RynfUgVb68TZt5dS7AkZniIK8ZYcLqbbMoCvNK0V+SYrdgwkT+trcjASBCKi8QJLDBFtc+
|
||||
jN1yHSI9o1pC+noukL3q9NyVreE38WRveGsUj8T2h2H+j7G/pWZzH2K1l7VQ/YSQOr0Iyj
|
||||
apqVKNSNnVqunuhdznqXo37vQs9cjJxLDSRtwjrmyUl1JBHbCWEq1t8H1JzDwa5Z47PLj+
|
||||
DQU4pPuUh5qW/qVN/tg44AuLbJ0yJIrrGiyKf6iZkvl9fKRc0QjMto319UHhzD7F5wUr3X
|
||||
8iHWXyFbOQAAA8hiY2pzYmNqcwAAAAdzc2gtcnNhAAABAQDTNGUXvKQQ2sbdXdILzeI7u6
|
||||
0ziBDHqCbrYxUkdro0LA8SqimkQexHKd9SBVvrxNm3l1LsCRmeIgrxlhwuptsygK80rRX5
|
||||
Jit2DCRP62tyMBIEIqLxAksMEW1z6M3XIdIj2jWkL6ei6Qver03JWt4TfxZG94axSPxPaH
|
||||
Yf6Psb+lZnMfYrWXtVD9hJA6vQjKNqmpUo1I2dWq6e6F3Oepejfu9Cz1yMnEsNJG3COubJ
|
||||
SXUkEdsJYSrW3wfUnMPBrlnjs8uP4NBTik+5SHmpb+pU3+2DjgC4tsnTIkiusaLIp/qJmS
|
||||
+X18pFzRCMy2jfX1QeHMPsXnBSvdfyIdZfIVs5AAAAAwEAAQAAAQAUz+LuVd5s8sIJ6kba
|
||||
du1GKZZFr7DHm+BJ7beVokVzAqxxkGcOEpjv4kZpVLHcJ8e0earoK3VkycH+UGZyimqrLV
|
||||
cWf7/cj1BVD5k8btxloisEUU1xJmKyy7zXYSd3fZOxiL0kcrW4LfLHfMrTfqrHjQxq7dVN
|
||||
/v0t7gNF3bVw6ipIqrO3Z+eDJYIhXZVtSPUmTke8XmAeYELX+IgmWuQTSxaQ8FlICEt86o
|
||||
K4UNFQ9+i9K54X+lRRhIuqFAel1rXAGXpcMSsTWVTyRpVojunF/r9GzBOohYfgnQ0r/qf+
|
||||
lxNgcUlqAxbWp+dR7BexfEn/Xi3M2peg5a1Op/jkPwupAAAAgG0XaH1ZeYlx88Pa5VMnq6
|
||||
nZzTnSPS450JawMlFZH8TNQktfhPRd4+xeJB85uW1j57EudVZWOsV9NljwEx75FI81L7AG
|
||||
3coPrAmE8OWkxUsxtg+gNMja19wmh5x7tDfBo+mv4XxMydRQ51EXn1BMo4EcAZf27GJLkN
|
||||
yZH4bCBCjDAAAAgQD6rSj9fGzfHVz0eMJ7FHpA/FX5ZZ90ERBweMVCLCvTjkc9r2AFTT9J
|
||||
Lp2g5vvF4pYO6T+pJEXW98AEteQPNj2MM8WZOmTa1x7FPY9m7VjRjSH4L2dALMF94NMoa/
|
||||
4mO7glFtKquGT3TtwxqOmic/jtBhipfgZG906dtYeLOg2KSwAAAIEA17CkB+asl/lX0vie
|
||||
ylkIseZm74mQutso+bhHGNLx/VEbtn2EV3hiLfslsd4yxnMPTFdZKUTw+sPksYO8/0/3H2
|
||||
T18q8XTOm7rs9N5ahWHMmfx+shBpub2e8Z23tk60Hk5O1lzSBH5iktC9mE86BwpohZ1uvp
|
||||
JffialjvTR5C/gsAAAAOYWpAYm93aWUubG9jYWwBAgMEBQ==
|
81
fixtures/privkey-rsa-2048.openssh.hex
Normal file
81
fixtures/privkey-rsa-2048.openssh.hex
Normal file
@ -0,0 +1,81 @@
|
||||
00000000: 6f70 656e 7373 682d 6b65 792d 7631 0000 openssh-key-v1..
|
||||
00000010: 0000 046e 6f6e 6500 0000 046e 6f6e 6500 ...none....none.
|
||||
00000020: 0000 0000 0000 0100 0001 1700 0000 0773 ...............s
|
||||
00000030: 7368 2d72 7361 0000 0003 0100 0100 0001 sh-rsa..........
|
||||
00000040: 0100 d334 6517 bca4 10da c6dd 5dd2 0bcd ...4e.......]...
|
||||
00000050: e23b bbad 3388 10c7 a826 eb63 1524 76ba .;..3....&.c.$v.
|
||||
00000060: 342c 0f12 aa29 a441 ec47 29df 5205 5beb 4,...).A.G).R.[.
|
||||
00000070: c4d9 b797 52ec 0919 9e22 0af1 961c 2ea6 ....R...."......
|
||||
00000080: db32 80af 34ad 15f9 262b 760c 244f eb6b .2..4...&+v.$O.k
|
||||
00000090: 7230 1204 22a2 f102 4b0c 116d 73e8 cdd7 r0.."...K..ms...
|
||||
000000a0: 21d2 23da 35a4 2fa7 a2e9 0bde af4d c95a !.#.5./......M.Z
|
||||
000000b0: de13 7f16 46f7 86b1 48fc 4f68 761f e8fb ....F...H.Ohv...
|
||||
000000c0: 1bfa 5667 31f6 2b59 7b55 0fd8 4903 abd0 ..Vg1.+Y{U..I...
|
||||
000000d0: 8ca3 6a9a 9528 d48d 9d5a ae9e e85d ce7a ..j..(...Z...].z
|
||||
000000e0: 97a3 7eef 42cf 5c8c 9c4b 0d24 6dc2 3ae6 ..~.B.\..K.$m.:.
|
||||
000000f0: c949 7524 11db 0961 2ad6 df07 d49c c3c1 .Iu$...a*.......
|
||||
00000100: ae59 e3b3 cb8f e0d0 538a 4fb9 4879 a96f .Y......S.O.Hy.o
|
||||
00000110: ea54 dfed 838e 00b8 b6c9 d322 48ae b1a2 .T........."H...
|
||||
00000120: c8a7 fa89 992f 97d7 ca45 cd10 8ccb 68df ...../...E....h.
|
||||
00000130: 5f54 1e1c c3ec 5e70 52bd d7f2 21d6 5f21 _T....^pR...!._!
|
||||
00000140: 5b39 0000 03c8 2abf 6f1e 2abf 6f1e 0000 [9....*.o.*.o...
|
||||
00000150: 0007 7373 682d 7273 6100 0001 0100 d334 ..ssh-rsa......4
|
||||
00000160: 6517 bca4 10da c6dd 5dd2 0bcd e23b bbad e.......]....;..
|
||||
00000170: 3388 10c7 a826 eb63 1524 76ba 342c 0f12 3....&.c.$v.4,..
|
||||
00000180: aa29 a441 ec47 29df 5205 5beb c4d9 b797 .).A.G).R.[.....
|
||||
00000190: 52ec 0919 9e22 0af1 961c 2ea6 db32 80af R....".......2..
|
||||
000001a0: 34ad 15f9 262b 760c 244f eb6b 7230 1204 4...&+v.$O.kr0..
|
||||
000001b0: 22a2 f102 4b0c 116d 73e8 cdd7 21d2 23da "...K..ms...!.#.
|
||||
000001c0: 35a4 2fa7 a2e9 0bde af4d c95a de13 7f16 5./......M.Z....
|
||||
000001d0: 46f7 86b1 48fc 4f68 761f e8fb 1bfa 5667 F...H.Ohv.....Vg
|
||||
000001e0: 31f6 2b59 7b55 0fd8 4903 abd0 8ca3 6a9a 1.+Y{U..I.....j.
|
||||
000001f0: 9528 d48d 9d5a ae9e e85d ce7a 97a3 7eef .(...Z...].z..~.
|
||||
00000200: 42cf 5c8c 9c4b 0d24 6dc2 3ae6 c949 7524 B.\..K.$m.:..Iu$
|
||||
00000210: 11db 0961 2ad6 df07 d49c c3c1 ae59 e3b3 ...a*........Y..
|
||||
00000220: cb8f e0d0 538a 4fb9 4879 a96f ea54 dfed ....S.O.Hy.o.T..
|
||||
00000230: 838e 00b8 b6c9 d322 48ae b1a2 c8a7 fa89 ......."H.......
|
||||
00000240: 992f 97d7 ca45 cd10 8ccb 68df 5f54 1e1c ./...E....h._T..
|
||||
00000250: c3ec 5e70 52bd d7f2 21d6 5f21 5b39 0000 ..^pR...!._![9..
|
||||
00000260: 0003 0100 0100 0001 0014 cfe2 ee55 de6c .............U.l
|
||||
00000270: f2c2 09ea 46da 76ed 4629 9645 afb0 c79b ....F.v.F).E....
|
||||
00000280: e049 edb7 95a2 4573 02ac 7190 670e 1298 .I....Es..q.g...
|
||||
00000290: efe2 4669 54b1 dc27 c7b4 79aa e82b 7564 ..FiT..'..y..+ud
|
||||
000002a0: c9c1 fe50 6672 8a6a ab2d 5716 7fbf dc8f ...Pfr.j.-W.....
|
||||
000002b0: 5055 0f99 3c6e dc65 a22b 0451 4d71 2662 PU..<n.e.+.QMq&b
|
||||
000002c0: b2cb bcd7 6127 777d 93b1 88bd 2472 b5b8 ....a'w}....$r..
|
||||
000002d0: 2df2 c77c cad3 7eaa c78d 0c6a edd5 4dfe -..|..~....j..M.
|
||||
000002e0: fd2d ee03 45dd b570 ea2a 48aa b3b7 67e7 .-..E..p.*H...g.
|
||||
000002f0: 8325 8221 5d95 6d48 f526 4e47 bc5e 601e .%.!].mH.&NG.^`.
|
||||
00000300: 6042 d7f8 8826 5ae4 134b 1690 f059 4808 `B...&Z..K...YH.
|
||||
00000310: 4b7c ea82 b850 d150 f7e8 bd2b 9e17 fa54 K|...P.P...+...T
|
||||
00000320: 5184 8baa 1407 a5d6 b5c0 197a 5c31 2b13 Q..........z\1+.
|
||||
00000330: 5954 f246 9568 8ee9 c5fe bf46 cc13 a885 YT.F.h.....F....
|
||||
00000340: 87e0 9d0d 2bfe a7fe 9713 6071 496a 0316 ....+.....`qIj..
|
||||
00000350: d6a7 e751 ec17 b17c 49ff 5e2d ccda 97a0 ...Q...|I.^-....
|
||||
00000360: e5ad 4ea7 f8e4 3f0b a900 0000 806d 1768 ..N...?......m.h
|
||||
00000370: 7d59 7989 71f3 c3da e553 27ab a9d9 cd39 }Yy.q....S'....9
|
||||
00000380: d23d 2e39 d096 b032 5159 1fc4 cd42 4b5f .=.9...2QY...BK_
|
||||
00000390: 84f4 5de3 ec5e 241f 39b9 6d63 e7b1 2e75 ..]..^$.9.mc...u
|
||||
000003a0: 5656 3ac5 7d36 58f0 131e f914 8f35 2fb0 VV:.}6X......5/.
|
||||
000003b0: 06dd ca0f ac09 84f0 e5a4 c54b 31b6 0fa0 ...........K1...
|
||||
000003c0: 34c8 dad7 dc26 879c 7bb4 37c1 a3e9 afe1 4....&..{.7.....
|
||||
000003d0: 7c4c c9d4 50e7 5117 9f50 4ca3 811c 0197 |L..P.Q..PL.....
|
||||
000003e0: f6ec 624b 90dc 991f 86c2 0428 c300 0000 ..bK.......(....
|
||||
000003f0: 8100 faad 28fd 7c6c df1d 5cf4 78c2 7b14 ....(.|l..\.x.{.
|
||||
00000400: 7a40 fc55 f965 9f74 1110 7078 c542 2c2b z@.U.e.t..px.B,+
|
||||
00000410: d38e 473d af60 054d 3f49 2e9d a0e6 fbc5 ..G=.`.M?I......
|
||||
00000420: e296 0ee9 3fa9 2445 d6f7 c004 b5e4 0f36 ....?.$E.......6
|
||||
00000430: 3d8c 33c5 993a 64da d71e c53d 8f66 ed58 =.3..:d....=.f.X
|
||||
00000440: d18d 21f8 2f67 402c c17d e0d3 286b fe26 ..!./g@,.}..(k.&
|
||||
00000450: 3bb8 2516 d2aa b864 f74e dc31 a8e9 a273 ;.%....d.N.1...s
|
||||
00000460: f8ed 0618 a97e 0646 f74e 9db5 878b 3a0d .....~.F.N....:.
|
||||
00000470: 8a4b 0000 0081 00d7 b0a4 07e6 ac97 f957 .K.............W
|
||||
00000480: d2f8 9eca 5908 b1e6 66ef 8990 badb 28f9 ....Y...f.....(.
|
||||
00000490: b847 18d2 f1fd 511b b67d 8457 7862 2dfb .G....Q..}.Wxb-.
|
||||
000004a0: 25b1 de32 c673 0f4c 5759 2944 f0fa c3e4 %..2.s.LWY)D....
|
||||
000004b0: b183 bcff 4ff7 1f64 f5f2 af17 4ce9 bbae ....O..d....L...
|
||||
000004c0: cf4d e5a8 561c c99f c7eb 2106 9b9b d9ef .M..V.....!.....
|
||||
000004d0: 19db 7b64 eb41 e4e4 ed65 cd20 47e6 292d ..{d.A...e. G.)-
|
||||
000004e0: 0bd9 84f3 a070 a688 59d6 ebe9 25f7 e26a .....p..Y...%..j
|
||||
000004f0: 58ef 4d1e 42fe 0b00 0000 0e61 6a40 626f X.M.B......aj@bo
|
||||
00000500: 7769 652e 6c6f 6361 6c01 0203 0405 wie.local.....
|
81
fixtures/privkey-rsa-2048.openssh.hex.2
Normal file
81
fixtures/privkey-rsa-2048.openssh.hex.2
Normal file
@ -0,0 +1,81 @@
|
||||
00000000: 6f70 656e 7373 682d 6b65 792d 7631 0000 openssh-key-v1..
|
||||
00000010: 0000 046e 6f6e 6500 0000 046e 6f6e 6500 ...none....none.
|
||||
00000020: 0000 0000 0000 0100 0001 1700 0000 0773 ...............s
|
||||
00000030: 7368 2d72 7361 0000 0003 0100 0100 0001 sh-rsa..........
|
||||
00000040: 0100 d334 6517 bca4 10da c6dd 5dd2 0bcd ...4e.......]...
|
||||
00000050: e23b bbad 3388 10c7 a826 eb63 1524 76ba .;..3....&.c.$v.
|
||||
00000060: 342c 0f12 aa29 a441 ec47 29df 5205 5beb 4,...).A.G).R.[.
|
||||
00000070: c4d9 b797 52ec 0919 9e22 0af1 961c 2ea6 ....R...."......
|
||||
00000080: db32 80af 34ad 15f9 262b 760c 244f eb6b .2..4...&+v.$O.k
|
||||
00000090: 7230 1204 22a2 f102 4b0c 116d 73e8 cdd7 r0.."...K..ms...
|
||||
000000a0: 21d2 23da 35a4 2fa7 a2e9 0bde af4d c95a !.#.5./......M.Z
|
||||
000000b0: de13 7f16 46f7 86b1 48fc 4f68 761f e8fb ....F...H.Ohv...
|
||||
000000c0: 1bfa 5667 31f6 2b59 7b55 0fd8 4903 abd0 ..Vg1.+Y{U..I...
|
||||
000000d0: 8ca3 6a9a 9528 d48d 9d5a ae9e e85d ce7a ..j..(...Z...].z
|
||||
000000e0: 97a3 7eef 42cf 5c8c 9c4b 0d24 6dc2 3ae6 ..~.B.\..K.$m.:.
|
||||
000000f0: c949 7524 11db 0961 2ad6 df07 d49c c3c1 .Iu$...a*.......
|
||||
00000100: ae59 e3b3 cb8f e0d0 538a 4fb9 4879 a96f .Y......S.O.Hy.o
|
||||
00000110: ea54 dfed 838e 00b8 b6c9 d322 48ae b1a2 .T........."H...
|
||||
00000120: c8a7 fa89 992f 97d7 ca45 cd10 8ccb 68df ...../...E....h.
|
||||
00000130: 5f54 1e1c c3ec 5e70 52bd d7f2 21d6 5f21 _T....^pR...!._!
|
||||
00000140: 5b39 0000 03c8 6263 6a73 6263 6a73 0000 [9....bcjsbcjs..
|
||||
00000150: 0007 7373 682d 7273 6100 0001 0100 d334 ..ssh-rsa......4
|
||||
00000160: 6517 bca4 10da c6dd 5dd2 0bcd e23b bbad e.......]....;..
|
||||
00000170: 3388 10c7 a826 eb63 1524 76ba 342c 0f12 3....&.c.$v.4,..
|
||||
00000180: aa29 a441 ec47 29df 5205 5beb c4d9 b797 .).A.G).R.[.....
|
||||
00000190: 52ec 0919 9e22 0af1 961c 2ea6 db32 80af R....".......2..
|
||||
000001a0: 34ad 15f9 262b 760c 244f eb6b 7230 1204 4...&+v.$O.kr0..
|
||||
000001b0: 22a2 f102 4b0c 116d 73e8 cdd7 21d2 23da "...K..ms...!.#.
|
||||
000001c0: 35a4 2fa7 a2e9 0bde af4d c95a de13 7f16 5./......M.Z....
|
||||
000001d0: 46f7 86b1 48fc 4f68 761f e8fb 1bfa 5667 F...H.Ohv.....Vg
|
||||
000001e0: 31f6 2b59 7b55 0fd8 4903 abd0 8ca3 6a9a 1.+Y{U..I.....j.
|
||||
000001f0: 9528 d48d 9d5a ae9e e85d ce7a 97a3 7eef .(...Z...].z..~.
|
||||
00000200: 42cf 5c8c 9c4b 0d24 6dc2 3ae6 c949 7524 B.\..K.$m.:..Iu$
|
||||
00000210: 11db 0961 2ad6 df07 d49c c3c1 ae59 e3b3 ...a*........Y..
|
||||
00000220: cb8f e0d0 538a 4fb9 4879 a96f ea54 dfed ....S.O.Hy.o.T..
|
||||
00000230: 838e 00b8 b6c9 d322 48ae b1a2 c8a7 fa89 ......."H.......
|
||||
00000240: 992f 97d7 ca45 cd10 8ccb 68df 5f54 1e1c ./...E....h._T..
|
||||
00000250: c3ec 5e70 52bd d7f2 21d6 5f21 5b39 0000 ..^pR...!._![9..
|
||||
00000260: 0003 0100 0100 0001 0014 cfe2 ee55 de6c .............U.l
|
||||
00000270: f2c2 09ea 46da 76ed 4629 9645 afb0 c79b ....F.v.F).E....
|
||||
00000280: e049 edb7 95a2 4573 02ac 7190 670e 1298 .I....Es..q.g...
|
||||
00000290: efe2 4669 54b1 dc27 c7b4 79aa e82b 7564 ..FiT..'..y..+ud
|
||||
000002a0: c9c1 fe50 6672 8a6a ab2d 5716 7fbf dc8f ...Pfr.j.-W.....
|
||||
000002b0: 5055 0f99 3c6e dc65 a22b 0451 4d71 2662 PU..<n.e.+.QMq&b
|
||||
000002c0: b2cb bcd7 6127 777d 93b1 88bd 2472 b5b8 ....a'w}....$r..
|
||||
000002d0: 2df2 c77c cad3 7eaa c78d 0c6a edd5 4dfe -..|..~....j..M.
|
||||
000002e0: fd2d ee03 45dd b570 ea2a 48aa b3b7 67e7 .-..E..p.*H...g.
|
||||
000002f0: 8325 8221 5d95 6d48 f526 4e47 bc5e 601e .%.!].mH.&NG.^`.
|
||||
00000300: 6042 d7f8 8826 5ae4 134b 1690 f059 4808 `B...&Z..K...YH.
|
||||
00000310: 4b7c ea82 b850 d150 f7e8 bd2b 9e17 fa54 K|...P.P...+...T
|
||||
00000320: 5184 8baa 1407 a5d6 b5c0 197a 5c31 2b13 Q..........z\1+.
|
||||
00000330: 5954 f246 9568 8ee9 c5fe bf46 cc13 a885 YT.F.h.....F....
|
||||
00000340: 87e0 9d0d 2bfe a7fe 9713 6071 496a 0316 ....+.....`qIj..
|
||||
00000350: d6a7 e751 ec17 b17c 49ff 5e2d ccda 97a0 ...Q...|I.^-....
|
||||
00000360: e5ad 4ea7 f8e4 3f0b a900 0000 806d 1768 ..N...?......m.h
|
||||
00000370: 7d59 7989 71f3 c3da e553 27ab a9d9 cd39 }Yy.q....S'....9
|
||||
00000380: d23d 2e39 d096 b032 5159 1fc4 cd42 4b5f .=.9...2QY...BK_
|
||||
00000390: 84f4 5de3 ec5e 241f 39b9 6d63 e7b1 2e75 ..]..^$.9.mc...u
|
||||
000003a0: 5656 3ac5 7d36 58f0 131e f914 8f35 2fb0 VV:.}6X......5/.
|
||||
000003b0: 06dd ca0f ac09 84f0 e5a4 c54b 31b6 0fa0 ...........K1...
|
||||
000003c0: 34c8 dad7 dc26 879c 7bb4 37c1 a3e9 afe1 4....&..{.7.....
|
||||
000003d0: 7c4c c9d4 50e7 5117 9f50 4ca3 811c 0197 |L..P.Q..PL.....
|
||||
000003e0: f6ec 624b 90dc 991f 86c2 0428 c300 0000 ..bK.......(....
|
||||
000003f0: 8100 faad 28fd 7c6c df1d 5cf4 78c2 7b14 ....(.|l..\.x.{.
|
||||
00000400: 7a40 fc55 f965 9f74 1110 7078 c542 2c2b z@.U.e.t..px.B,+
|
||||
00000410: d38e 473d af60 054d 3f49 2e9d a0e6 fbc5 ..G=.`.M?I......
|
||||
00000420: e296 0ee9 3fa9 2445 d6f7 c004 b5e4 0f36 ....?.$E.......6
|
||||
00000430: 3d8c 33c5 993a 64da d71e c53d 8f66 ed58 =.3..:d....=.f.X
|
||||
00000440: d18d 21f8 2f67 402c c17d e0d3 286b fe26 ..!./g@,.}..(k.&
|
||||
00000450: 3bb8 2516 d2aa b864 f74e dc31 a8e9 a273 ;.%....d.N.1...s
|
||||
00000460: f8ed 0618 a97e 0646 f74e 9db5 878b 3a0d .....~.F.N....:.
|
||||
00000470: 8a4b 0000 0081 00d7 b0a4 07e6 ac97 f957 .K.............W
|
||||
00000480: d2f8 9eca 5908 b1e6 66ef 8990 badb 28f9 ....Y...f.....(.
|
||||
00000490: b847 18d2 f1fd 511b b67d 8457 7862 2dfb .G....Q..}.Wxb-.
|
||||
000004a0: 25b1 de32 c673 0f4c 5759 2944 f0fa c3e4 %..2.s.LWY)D....
|
||||
000004b0: b183 bcff 4ff7 1f64 f5f2 af17 4ce9 bbae ....O..d....L...
|
||||
000004c0: cf4d e5a8 561c c99f c7eb 2106 9b9b d9ef .M..V.....!.....
|
||||
000004d0: 19db 7b64 eb41 e4e4 ed65 cd20 47e6 292d ..{d.A...e. G.)-
|
||||
000004e0: 0bd9 84f3 a070 a688 59d6 ebe9 25f7 e26a .....p..Y...%..j
|
||||
000004f0: 58ef 4d1e 42fe 0b00 0000 0e61 6a40 626f X.M.B......aj@bo
|
||||
00000500: 7769 652e 6c6f 6361 6c01 0203 0405 wie.local.....
|
27
fixtures/privkey-rsa-2048.openssh.pem
Normal file
27
fixtures/privkey-rsa-2048.openssh.pem
Normal file
@ -0,0 +1,27 @@
|
||||
-----BEGIN OPENSSH PRIVATE KEY-----
|
||||
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcn
|
||||
NhAAAAAwEAAQAAAQEA0zRlF7ykENrG3V3SC83iO7utM4gQx6gm62MVJHa6NCwPEqoppEHs
|
||||
RynfUgVb68TZt5dS7AkZniIK8ZYcLqbbMoCvNK0V+SYrdgwkT+trcjASBCKi8QJLDBFtc+
|
||||
jN1yHSI9o1pC+noukL3q9NyVreE38WRveGsUj8T2h2H+j7G/pWZzH2K1l7VQ/YSQOr0Iyj
|
||||
apqVKNSNnVqunuhdznqXo37vQs9cjJxLDSRtwjrmyUl1JBHbCWEq1t8H1JzDwa5Z47PLj+
|
||||
DQU4pPuUh5qW/qVN/tg44AuLbJ0yJIrrGiyKf6iZkvl9fKRc0QjMto319UHhzD7F5wUr3X
|
||||
8iHWXyFbOQAAA8gqv28eKr9vHgAAAAdzc2gtcnNhAAABAQDTNGUXvKQQ2sbdXdILzeI7u6
|
||||
0ziBDHqCbrYxUkdro0LA8SqimkQexHKd9SBVvrxNm3l1LsCRmeIgrxlhwuptsygK80rRX5
|
||||
Jit2DCRP62tyMBIEIqLxAksMEW1z6M3XIdIj2jWkL6ei6Qver03JWt4TfxZG94axSPxPaH
|
||||
Yf6Psb+lZnMfYrWXtVD9hJA6vQjKNqmpUo1I2dWq6e6F3Oepejfu9Cz1yMnEsNJG3COubJ
|
||||
SXUkEdsJYSrW3wfUnMPBrlnjs8uP4NBTik+5SHmpb+pU3+2DjgC4tsnTIkiusaLIp/qJmS
|
||||
+X18pFzRCMy2jfX1QeHMPsXnBSvdfyIdZfIVs5AAAAAwEAAQAAAQAUz+LuVd5s8sIJ6kba
|
||||
du1GKZZFr7DHm+BJ7beVokVzAqxxkGcOEpjv4kZpVLHcJ8e0earoK3VkycH+UGZyimqrLV
|
||||
cWf7/cj1BVD5k8btxloisEUU1xJmKyy7zXYSd3fZOxiL0kcrW4LfLHfMrTfqrHjQxq7dVN
|
||||
/v0t7gNF3bVw6ipIqrO3Z+eDJYIhXZVtSPUmTke8XmAeYELX+IgmWuQTSxaQ8FlICEt86o
|
||||
K4UNFQ9+i9K54X+lRRhIuqFAel1rXAGXpcMSsTWVTyRpVojunF/r9GzBOohYfgnQ0r/qf+
|
||||
lxNgcUlqAxbWp+dR7BexfEn/Xi3M2peg5a1Op/jkPwupAAAAgG0XaH1ZeYlx88Pa5VMnq6
|
||||
nZzTnSPS450JawMlFZH8TNQktfhPRd4+xeJB85uW1j57EudVZWOsV9NljwEx75FI81L7AG
|
||||
3coPrAmE8OWkxUsxtg+gNMja19wmh5x7tDfBo+mv4XxMydRQ51EXn1BMo4EcAZf27GJLkN
|
||||
yZH4bCBCjDAAAAgQD6rSj9fGzfHVz0eMJ7FHpA/FX5ZZ90ERBweMVCLCvTjkc9r2AFTT9J
|
||||
Lp2g5vvF4pYO6T+pJEXW98AEteQPNj2MM8WZOmTa1x7FPY9m7VjRjSH4L2dALMF94NMoa/
|
||||
4mO7glFtKquGT3TtwxqOmic/jtBhipfgZG906dtYeLOg2KSwAAAIEA17CkB+asl/lX0vie
|
||||
ylkIseZm74mQutso+bhHGNLx/VEbtn2EV3hiLfslsd4yxnMPTFdZKUTw+sPksYO8/0/3H2
|
||||
T18q8XTOm7rs9N5ahWHMmfx+shBpub2e8Z23tk60Hk5O1lzSBH5iktC9mE86BwpohZ1uvp
|
||||
JffialjvTR5C/gsAAAAOYWpAYm93aWUubG9jYWwBAgMEBQ==
|
||||
-----END OPENSSH PRIVATE KEY-----
|
27
fixtures/privkey-rsa-2048.openssh.pem.2
Normal file
27
fixtures/privkey-rsa-2048.openssh.pem.2
Normal file
@ -0,0 +1,27 @@
|
||||
-----BEGIN OPENSSH PRIVATE KEY-----
|
||||
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcn
|
||||
NhAAAAAwEAAQAAAQEA0zRlF7ykENrG3V3SC83iO7utM4gQx6gm62MVJHa6NCwPEqoppEHs
|
||||
RynfUgVb68TZt5dS7AkZniIK8ZYcLqbbMoCvNK0V+SYrdgwkT+trcjASBCKi8QJLDBFtc+
|
||||
jN1yHSI9o1pC+noukL3q9NyVreE38WRveGsUj8T2h2H+j7G/pWZzH2K1l7VQ/YSQOr0Iyj
|
||||
apqVKNSNnVqunuhdznqXo37vQs9cjJxLDSRtwjrmyUl1JBHbCWEq1t8H1JzDwa5Z47PLj+
|
||||
DQU4pPuUh5qW/qVN/tg44AuLbJ0yJIrrGiyKf6iZkvl9fKRc0QjMto319UHhzD7F5wUr3X
|
||||
8iHWXyFbOQAAA8hiY2pzYmNqcwAAAAdzc2gtcnNhAAABAQDTNGUXvKQQ2sbdXdILzeI7u6
|
||||
0ziBDHqCbrYxUkdro0LA8SqimkQexHKd9SBVvrxNm3l1LsCRmeIgrxlhwuptsygK80rRX5
|
||||
Jit2DCRP62tyMBIEIqLxAksMEW1z6M3XIdIj2jWkL6ei6Qver03JWt4TfxZG94axSPxPaH
|
||||
Yf6Psb+lZnMfYrWXtVD9hJA6vQjKNqmpUo1I2dWq6e6F3Oepejfu9Cz1yMnEsNJG3COubJ
|
||||
SXUkEdsJYSrW3wfUnMPBrlnjs8uP4NBTik+5SHmpb+pU3+2DjgC4tsnTIkiusaLIp/qJmS
|
||||
+X18pFzRCMy2jfX1QeHMPsXnBSvdfyIdZfIVs5AAAAAwEAAQAAAQAUz+LuVd5s8sIJ6kba
|
||||
du1GKZZFr7DHm+BJ7beVokVzAqxxkGcOEpjv4kZpVLHcJ8e0earoK3VkycH+UGZyimqrLV
|
||||
cWf7/cj1BVD5k8btxloisEUU1xJmKyy7zXYSd3fZOxiL0kcrW4LfLHfMrTfqrHjQxq7dVN
|
||||
/v0t7gNF3bVw6ipIqrO3Z+eDJYIhXZVtSPUmTke8XmAeYELX+IgmWuQTSxaQ8FlICEt86o
|
||||
K4UNFQ9+i9K54X+lRRhIuqFAel1rXAGXpcMSsTWVTyRpVojunF/r9GzBOohYfgnQ0r/qf+
|
||||
lxNgcUlqAxbWp+dR7BexfEn/Xi3M2peg5a1Op/jkPwupAAAAgG0XaH1ZeYlx88Pa5VMnq6
|
||||
nZzTnSPS450JawMlFZH8TNQktfhPRd4+xeJB85uW1j57EudVZWOsV9NljwEx75FI81L7AG
|
||||
3coPrAmE8OWkxUsxtg+gNMja19wmh5x7tDfBo+mv4XxMydRQ51EXn1BMo4EcAZf27GJLkN
|
||||
yZH4bCBCjDAAAAgQD6rSj9fGzfHVz0eMJ7FHpA/FX5ZZ90ERBweMVCLCvTjkc9r2AFTT9J
|
||||
Lp2g5vvF4pYO6T+pJEXW98AEteQPNj2MM8WZOmTa1x7FPY9m7VjRjSH4L2dALMF94NMoa/
|
||||
4mO7glFtKquGT3TtwxqOmic/jtBhipfgZG906dtYeLOg2KSwAAAIEA17CkB+asl/lX0vie
|
||||
ylkIseZm74mQutso+bhHGNLx/VEbtn2EV3hiLfslsd4yxnMPTFdZKUTw+sPksYO8/0/3H2
|
||||
T18q8XTOm7rs9N5ahWHMmfx+shBpub2e8Z23tk60Hk5O1lzSBH5iktC9mE86BwpohZ1uvp
|
||||
JffialjvTR5C/gsAAAAOYWpAYm93aWUubG9jYWwBAgMEBQ==
|
||||
-----END OPENSSH PRIVATE KEY-----
|
@ -6,6 +6,14 @@ Enc.base64ToHex = function (b64) {
|
||||
return Buffer.from(b64, 'base64').toString('hex');
|
||||
};
|
||||
|
||||
Enc.binToBuf = function (bin) {
|
||||
return Buffer.from(bin, 'binary');
|
||||
};
|
||||
|
||||
Enc.bufToBase64 = function (u8) {
|
||||
return Buffer.from(u8).toString('base64');
|
||||
};
|
||||
|
||||
Enc.binToHex = function (bin) {
|
||||
return Buffer.from(bin, 'binary').toString('hex');
|
||||
};
|
||||
@ -13,3 +21,7 @@ Enc.binToHex = function (bin) {
|
||||
Enc.hexToBase64 = function (hex) {
|
||||
return Buffer.from(hex, 'hex').toString('base64');
|
||||
};
|
||||
|
||||
Enc.hexToBin = function (hex) {
|
||||
return Buffer.from(hex, 'hex').toString('binary');
|
||||
};
|
||||
|
11
lib/pem.js
Normal file
11
lib/pem.js
Normal file
@ -0,0 +1,11 @@
|
||||
'use strict';
|
||||
|
||||
var PEM = module.exports;
|
||||
var Enc = require('./encoding.js');
|
||||
|
||||
PEM.packBlock = function (opts) {
|
||||
return '-----BEGIN ' + opts.type + '-----\n'
|
||||
+ Enc.bufToBase64(opts.bytes).match(/.{1,70}/g).join('\n') + '\n'
|
||||
+ '-----END ' + opts.type + '-----'
|
||||
;
|
||||
};
|
@ -1,34 +1,92 @@
|
||||
'use strict';
|
||||
|
||||
var Enc = require('./encoding.js');
|
||||
var PEM = require('./pem.js');
|
||||
var SSH = module.exports;
|
||||
|
||||
SSH.pack = function (opts) {
|
||||
if (opts.jwk.d && !opts.public) {
|
||||
return SSH._packPrivate(opts);
|
||||
} else {
|
||||
delete opts.jwk.d;
|
||||
return SSH._packPublic(opts);
|
||||
}
|
||||
};
|
||||
|
||||
// https://tools.ietf.org/html/rfc4253#section-6.6
|
||||
SSH._packPublic = function (opts) {
|
||||
var els = SSH._packKey(opts);
|
||||
var hex = SSH._packElements(els);
|
||||
var typ = Enc.hexToBin(els[0]);
|
||||
var parts = [ typ, Enc.hexToBase64(hex) ];
|
||||
if (opts.comment) { parts.push(opts.comment); }
|
||||
return parts.join(' ');
|
||||
};
|
||||
|
||||
SSH._packPrivate = function (opts) {
|
||||
var pubjwk = JSON.parse(JSON.stringify(opts.jwk));
|
||||
delete pubjwk.d;
|
||||
var pubels = SSH._packKey({ jwk: pubjwk });
|
||||
var pubhex = SSH._packElements(pubels);
|
||||
var els = SSH._packKey(opts);
|
||||
var hex = SSH._packElements(els);
|
||||
var privlen = hex.length/2;
|
||||
var padlen = (privlen % 8) && (8 - (privlen % 8)) || 0; // blocksize is 8 (no cipher)
|
||||
var bin = "openssh-key-v1" + String.fromCharCode(0)
|
||||
+ Enc.hexToBin(
|
||||
SSH._packElements([
|
||||
Enc.binToHex("none") // ciphername
|
||||
, Enc.binToHex("none") // kdfname
|
||||
, "" // empty kdf
|
||||
])
|
||||
+ SSH._numToUint32Hex(1) // number of keys (always 1)
|
||||
+ SSH._numToUint32Hex(pubhex.length/2) // pubkey length
|
||||
+ pubhex
|
||||
+ SSH._numToUint32Hex(8 + privlen + padlen) // privkey length
|
||||
+ '62636a7362636a73' // 64-bit dummy checksum ("bcjs", "bcjs")
|
||||
+ hex // (only cihpered keys use real checksums)
|
||||
);
|
||||
var pad = '';
|
||||
var i;
|
||||
for (i = 1; i <= padlen; i += 1) {
|
||||
pad += '0' + i;
|
||||
}
|
||||
return PEM.packBlock({
|
||||
type: "OPENSSH PRIVATE KEY"
|
||||
, bytes: Enc.binToBuf(bin + Enc.hexToBin(pad))
|
||||
});
|
||||
};
|
||||
|
||||
SSH._packKey = function (opts) {
|
||||
var jwk = opts.jwk;
|
||||
var els = [];
|
||||
var ssh = {
|
||||
type: ''
|
||||
, _elements: els
|
||||
, comment: opts.comment || ''
|
||||
};
|
||||
var len;
|
||||
|
||||
if ("RSA" === jwk.kty) {
|
||||
ssh.type = 'ssh-rsa';
|
||||
els.push(Enc.binToHex(ssh.type));
|
||||
els.push(SSH._padRsa(Enc.base64ToHex(jwk.e)));
|
||||
els.push(SSH._padRsa(Enc.base64ToHex(jwk.n)));
|
||||
return SSH._packElements(ssh);
|
||||
els.push(Enc.binToHex('ssh-rsa'));
|
||||
if (jwk.d) {
|
||||
// unswap n and e for private key format
|
||||
els.push(SSH._padBigInt(Enc.base64ToHex(jwk.n)));
|
||||
els.push(SSH._padBigInt(Enc.base64ToHex(jwk.e)));
|
||||
els.push(SSH._padBigInt(Enc.base64ToHex(jwk.d)));
|
||||
els.push(SSH._padBigInt(Enc.base64ToHex(jwk.qi)));
|
||||
els.push(SSH._padBigInt(Enc.base64ToHex(jwk.p)));
|
||||
els.push(SSH._padBigInt(Enc.base64ToHex(jwk.q)));
|
||||
els.push(Enc.binToHex(opts.comment || ''));
|
||||
} else {
|
||||
// swap n and e for public key format
|
||||
els.push(SSH._padBigInt(Enc.base64ToHex(jwk.e)));
|
||||
els.push(SSH._padBigInt(Enc.base64ToHex(jwk.n)));
|
||||
}
|
||||
return els;
|
||||
}
|
||||
|
||||
if ("P-256" === jwk.crv) {
|
||||
ssh.type = 'ecdsa-sha2-nistp256';
|
||||
els.push(Enc.binToHex(ssh.type));
|
||||
els.push(Enc.binToHex('ecdsa-sha2-nistp256'));
|
||||
els.push(Enc.binToHex('nistp256'));
|
||||
len = 32;
|
||||
} else if ("P-384" === jwk.crv) {
|
||||
ssh.type = 'ecdsa-sha2-nistp384';
|
||||
els.push(Enc.binToHex(ssh.type));
|
||||
els.push(Enc.binToHex('ecdsa-sha2-nistp384'));
|
||||
els.push(Enc.binToHex('nistp384'));
|
||||
len = 48;
|
||||
} else {
|
||||
@ -36,17 +94,26 @@ SSH.pack = function (opts) {
|
||||
}
|
||||
|
||||
els.push('04'
|
||||
+ SSH._padEc(Enc.base64ToHex(jwk.x), len)
|
||||
+ SSH._padEc(Enc.base64ToHex(jwk.y), len)
|
||||
+ SSH._padBytes(Enc.base64ToHex(jwk.x), len)
|
||||
+ SSH._padBytes(Enc.base64ToHex(jwk.y), len)
|
||||
);
|
||||
return SSH._packElements(ssh);
|
||||
if (jwk.d) {
|
||||
// I was able to empirically confirm that the leading 00 is expected for
|
||||
// ambiguous BigInt negatives (0x80 set), and that the length can dip down
|
||||
// to 31 bytes when the leading byte is 0x00. I suspect that if I had tried
|
||||
// 65k iterations that I'd have seen at least one 30 byte number
|
||||
els.push(SSH._padBigInt(Enc.base64ToHex(jwk.d)));
|
||||
//console.warn('els:', els[els.length - 1]);
|
||||
els.push(Enc.binToHex(opts.comment || ''));
|
||||
}
|
||||
|
||||
return els;
|
||||
};
|
||||
|
||||
SSH._packElements = function (ssh) {
|
||||
var hex = ssh._elements.map(function (hex) {
|
||||
SSH._packElements = function(els) {
|
||||
return els.map(function (hex) {
|
||||
return SSH._numToUint32Hex(hex.length/2) + hex;
|
||||
}).join('');
|
||||
return [ ssh.type, Enc.hexToBase64(hex), ssh.comment ].join(' ');
|
||||
};
|
||||
|
||||
SSH._numToUint32Hex = function (num) {
|
||||
@ -57,18 +124,20 @@ SSH._numToUint32Hex = function (num) {
|
||||
return hex;
|
||||
};
|
||||
|
||||
SSH._padRsa = function (hex) {
|
||||
SSH._padBigInt = function (hex) {
|
||||
// BigInt is negative if the high order bit 0x80 is set,
|
||||
// so ASN1, SSH, and many other formats pad with '0x00'
|
||||
// to signifiy a positive number.
|
||||
var i = parseInt(hex.slice(0, 2), 16);
|
||||
//console.warn('l', hex.length/2, 'i', i);
|
||||
if (0x80 & i) {
|
||||
//console.warn('0x80 true');
|
||||
return '00' + hex;
|
||||
}
|
||||
return hex;
|
||||
};
|
||||
|
||||
SSH._padEc = function (hex, len) {
|
||||
SSH._padBytes = function (hex, len) {
|
||||
while (hex.length < len * 2) {
|
||||
hex = '00' + hex;
|
||||
}
|
||||
|
22
test.sh
Executable file
22
test.sh
Executable file
@ -0,0 +1,22 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# creates a new key
|
||||
#ssh-keygen -t rsa -b 2048 -C root@localhost -N '' -f fixtures/privkey-rsa-2048.openssh.pem.3
|
||||
|
||||
# changes embedded comment and creates new random dummy checksum
|
||||
#ssh-keygen -c -C root@localhost -f privkey-ec-p256.openssh.pem
|
||||
ssh-keygen -c -C root@localhost -f fixtures/privkey-ec-p256.openssh.pem
|
||||
ssh-keygen -c -C root@localhost -f fixtures/privkey-ec-p256.openssh.pem.2
|
||||
#ssh-keygen -c -C root@localhost -f fixtures/privkey-rsa-2048.openssh.pem
|
||||
#ssh-keygen -c -C root@localhost -f fixtures/privkey-rsa-2048.openssh.pem.2
|
||||
|
||||
# convert to public key
|
||||
#ssh-keygen -y -f privkey-ec-p256.openssh.pem
|
||||
ssh-keygen -y -f fixtures/privkey-ec-p256.openssh.pem
|
||||
ssh-keygen -y -f fixtures/privkey-ec-p256.openssh.pem.2
|
||||
#ssh-keygen -y -f fixtures/privkey-rsa-2048.openssh.pem
|
||||
#ssh-keygen -y -f fixtures/privkey-rsa-2048.openssh.pem.2
|
||||
#ssh-keygen -y -f fixtures/privkey-ec-p256.openssh.pem
|
||||
#ssh-keygen -e -m PKCS8 -f fixtures/privkey-ec-p256.openssh.pem
|
||||
#ssh-keygen -e -m RFC4716 -f fixtures/privkey-ec-p256.openssh.pem
|
Loading…
x
Reference in New Issue
Block a user