|  | #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); | 
|  | } |