summaryrefslogtreecommitdiff
path: root/sys/src/cmd/auth
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2018-02-05 03:21:51 +0100
committercinap_lenrek <cinap_lenrek@felloff.net>2018-02-05 03:21:51 +0100
commitd06196ab8760ec567a9f043b757a789755a6aed7 (patch)
treebfa0a473bc11676385a723a8cd81aee0961600a3 /sys/src/cmd/auth
parent58914b4b0b0c4c3e5e16a1ba043ccdbb7e76ac84 (diff)
auth/asn12rsa: also convert ASN.1 encoded public key to plan9 format
Diffstat (limited to 'sys/src/cmd/auth')
-rw-r--r--sys/src/cmd/auth/asn12rsa.c24
1 files changed, 15 insertions, 9 deletions
diff --git a/sys/src/cmd/auth/asn12rsa.c b/sys/src/cmd/auth/asn12rsa.c
index fa1682c9c..1a54bc22e 100644
--- a/sys/src/cmd/auth/asn12rsa.c
+++ b/sys/src/cmd/auth/asn12rsa.c
@@ -20,6 +20,7 @@ main(int argc, char **argv)
long n, tot;
char *tag, *file;
RSApriv *key;
+ RSApub *pub;
fmtinstall('B', mpfmt);
@@ -54,16 +55,21 @@ main(int argc, char **argv)
break;
tot += n;
}
-
key = asn1toRSApriv(buf, tot);
- if(key == nil)
- sysfatal("couldn't parse asn1 key");
-
- s = smprint("key proto=rsa %s%ssize=%d ek=%B !dk=%B n=%B !p=%B !q=%B !kp=%B !kq=%B !c2=%B\n",
- tag ? tag : "", tag ? " " : "",
- mpsignif(key->pub.n), key->pub.ek,
- key->dk, key->pub.n, key->p, key->q,
- key->kp, key->kq, key->c2);
+ if(key != nil){
+ s = smprint("key proto=rsa %s%ssize=%d ek=%B !dk=%B n=%B !p=%B !q=%B !kp=%B !kq=%B !c2=%B\n",
+ tag ? tag : "", tag ? " " : "",
+ mpsignif(key->pub.n), key->pub.ek,
+ key->dk, key->pub.n, key->p, key->q,
+ key->kp, key->kq, key->c2);
+ } else {
+ pub = asn1toRSApub(buf, tot);
+ if(pub == nil)
+ sysfatal("couldn't parse asn1 key");
+ s = smprint("key proto=rsa %s%ssize=%d ek=%B n=%B\n",
+ tag ? tag : "", tag ? " " : "",
+ mpsignif(pub->n), pub->ek, pub->n);
+ }
if(s == nil)
sysfatal("smprint: %r");
write(1, s, strlen(s));