| #include <u.h> |
| #include <libc.h> |
| #include <auth.h> |
| #include <mp.h> |
| #include <libsec.h> |
| #include "rsa2any.h" |
| |
| int ssh2; |
| |
| void |
| usage(void) |
| { |
| fprint(2, "usage: auth/rsa2ssh [-2] [-c comment] [file]\n"); |
| exits("usage"); |
| } |
| |
| void |
| main(int argc, char **argv) |
| { |
| RSApriv *k; |
| char *comment; |
| |
| fmtinstall('B', mpfmt); |
| fmtinstall('[', encodefmt); |
| comment = ""; |
| ARGBEGIN{ |
| case '2': |
| ssh2 = 1; |
| break; |
| case 'c': |
| comment = EARGF(usage()); |
| break; |
| default: |
| usage(); |
| }ARGEND |
| |
| if(argc > 1) |
| usage(); |
| |
| if((k = getkey(argc, argv, 0, nil)) == nil) |
| sysfatal("%r"); |
| |
| if(ssh2){ |
| uchar buf[8192], *p; |
| |
| p = buf; |
| p = put4(p, 7); |
| p = putn(p, "ssh-rsa", 7); |
| p = putmp2(p, k->pub.ek); |
| p = putmp2(p, k->pub.n); |
| print("ssh-rsa %.*[ %s\n", p-buf, buf, comment); |
| }else |
| print("%d %.10B %.10B %s\n", mpsignif(k->pub.n), k->pub.ek, |
| k->pub.n, comment); |
| exits(nil); |
| } |