Compare commits

...

3 Комити

Аутор SHA1 Порука Датум
AJ ONeal bcc503596f fix EC padding пре 5 година
AJ ONeal afdd93b267 wip: seems to pass our test (openssh parses and modifies) пре 5 година
AJ ONeal 16ad97d445 wip: fix rsa пре 5 година
  1. 9
      fixtures/privkey-rsa-2048.jwk.json
  2. 9
      fixtures/privkey-rsa-2048.jwk.json.2
  3. 25
      fixtures/privkey-rsa-2048.openssh.b64
  4. 25
      fixtures/privkey-rsa-2048.openssh.b64.2
  5. 81
      fixtures/privkey-rsa-2048.openssh.hex
  6. 81
      fixtures/privkey-rsa-2048.openssh.hex.2
  7. 27
      fixtures/privkey-rsa-2048.openssh.pem
  8. 27
      fixtures/privkey-rsa-2048.openssh.pem.2
  9. 36
      lib/ssh-packer.js
  10. 20
      test.sh

9
fixtures/privkey-rsa-2048.jwk.json

@ -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

@ -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

@ -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

@ -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

@ -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

@ -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

@ -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

@ -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-----

36
lib/ssh-packer.js

@ -64,16 +64,21 @@ SSH._packKey = function (opts) {
if ("RSA" === jwk.kty) {
els.push(Enc.binToHex('ssh-rsa'));
els.push(SSH._padRsa(Enc.base64ToHex(jwk.e)));
els.push(SSH._padRsa(Enc.base64ToHex(jwk.n)));
if (jwk.d) {
els.push(SSH._padRsa(Enc.base64ToHex(jwk.d)));
els.push(SSH._padRsa(Enc.base64ToHex(jwk.qi)));
els.push(SSH._padRsa(Enc.base64ToHex(jwk.p)));
els.push(SSH._padRsa(Enc.base64ToHex(jwk.q)));
// 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 SSH._packElements(els);
return els;
}
if ("P-256" === jwk.crv) {
@ -89,11 +94,16 @@ SSH._packKey = 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)
);
if (jwk.d) {
els.push(SSH._padEc(Enc.base64ToHex(jwk.d), len));
// 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 || ''));
}
@ -114,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;
}

20
test.sh

@ -0,0 +1,20 @@
#!/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 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 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…
Откажи
Сачувај