diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2017-10-06 20:55:57 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2017-10-06 20:55:57 +0200 |
commit | 0a3695ba844972e332dc28efa1ecb232a8eff9ba (patch) | |
tree | ac607a411d232179f077fabae3065f74f27e7903 /sys/src/cmd/auth | |
parent | 8a67560183b3b726c827bcac02632b2b8e3ba59d (diff) |
rsa: add auth/rsa2asn1, check write error in auth/rsa2x509 and auth/rsa2pub, document in rsa(8)
Diffstat (limited to 'sys/src/cmd/auth')
-rw-r--r-- | sys/src/cmd/auth/mkfile | 5 | ||||
-rw-r--r-- | sys/src/cmd/auth/rsa2asn1.c | 37 | ||||
-rw-r--r-- | sys/src/cmd/auth/rsa2pub.c | 11 | ||||
-rw-r--r-- | sys/src/cmd/auth/rsa2x509.c | 6 |
4 files changed, 50 insertions, 9 deletions
diff --git a/sys/src/cmd/auth/mkfile b/sys/src/cmd/auth/mkfile index c9c8a1c4b..fac3f714c 100644 --- a/sys/src/cmd/auth/mkfile +++ b/sys/src/cmd/auth/mkfile @@ -27,6 +27,7 @@ TARG=\ pemencode\ printnetkey\ readnvram\ + rsa2asn1\ rsa2csr\ rsa2pub\ rsa2ssh\ @@ -108,10 +109,10 @@ nuke:V: $O.%: $LIB $O.dsa2ssh $O.dsafill $O.dsa2x509 $O.dsa2pub $O.dsa2csr: rsa2any.$O -$O.rsa2ssh $O.rsafill $O.rsa2x509 $O.rsa2pub $O.rsa2csr: rsa2any.$O +$O.rsa2asn1 $O.rsa2ssh $O.rsafill $O.rsa2x509 $O.rsa2pub $O.rsa2csr: rsa2any.$O $O.authsrv $O.guard.srv: secureidcheck.$O -rsa2ssh.$O rsafill.$O rsa2x509.$O rsa2pub.$O rsa2csr.$O: rsa2any.h +rsa2asn1.$O rsa2ssh.$O rsafill.$O rsa2x509.$O rsa2pub.$O rsa2csr.$O: rsa2any.h $BIN/netkey:V: $O.netkey cp $O.netkey /$objtype/bin/netkey diff --git a/sys/src/cmd/auth/rsa2asn1.c b/sys/src/cmd/auth/rsa2asn1.c new file mode 100644 index 000000000..51f82282e --- /dev/null +++ b/sys/src/cmd/auth/rsa2asn1.c @@ -0,0 +1,37 @@ +#include <u.h> +#include <libc.h> +#include <auth.h> +#include <mp.h> +#include <libsec.h> +#include "rsa2any.h" + +void +usage(void) +{ + fprint(2, "usage: auth/rsa2asn1 [file]\n"); + exits("usage"); +} + +void +main(int argc, char **argv) +{ + uchar buf[16*1024]; + RSApriv *k; + int n; + + ARGBEGIN{ + default: + usage(); + }ARGEND + + if(argc > 1) + usage(); + + if((k = getrsakey(argc, argv, 0, nil)) == nil) + sysfatal("%r"); + if((n = asn1encodeRSApub(&k->pub, buf, sizeof(buf))) < 0) + sysfatal("asn1encodeRSApub: %r"); + if(write(1, buf, n) != n) + sysfatal("write: %r"); + exits(nil); +} diff --git a/sys/src/cmd/auth/rsa2pub.c b/sys/src/cmd/auth/rsa2pub.c index df3ac9ac6..79c9bc609 100644 --- a/sys/src/cmd/auth/rsa2pub.c +++ b/sys/src/cmd/auth/rsa2pub.c @@ -18,6 +18,7 @@ main(int argc, char **argv) RSApriv *key; Attr *a; char *s; + int n; fmtinstall('A', _attrfmt); fmtinstall('B', mpfmt); @@ -34,11 +35,11 @@ main(int argc, char **argv) if((key = getrsakey(argc, argv, 0, &a)) == nil) sysfatal("%r"); - s = smprint("key %A size=%d ek=%B n=%B\n", - a, - mpsignif(key->pub.n), key->pub.ek, key->pub.n); - if(s == nil) + if((s = smprint("key %A size=%d ek=%B n=%B\n", a, + mpsignif(key->pub.n), key->pub.ek, key->pub.n)) == nil) sysfatal("smprint: %r"); - write(1, s, strlen(s)); + n = strlen(s); + if(write(1, s, n) != n) + sysfatal("write: %r"); exits(nil); } diff --git a/sys/src/cmd/auth/rsa2x509.c b/sys/src/cmd/auth/rsa2x509.c index e433fc9d8..4e87556af 100644 --- a/sys/src/cmd/auth/rsa2x509.c +++ b/sys/src/cmd/auth/rsa2x509.c @@ -45,6 +45,8 @@ main(int argc, char **argv) if(cert == nil) sysfatal("X509rsagen: %r"); - write(1, cert, len); - exits(0); + if(write(1, cert, len) != len) + sysfatal("write: %r"); + + exits(nil); } |