diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2018-02-05 03:21:51 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2018-02-05 03:21:51 +0100 |
commit | d06196ab8760ec567a9f043b757a789755a6aed7 (patch) | |
tree | bfa0a473bc11676385a723a8cd81aee0961600a3 /sys/src/cmd/auth | |
parent | 58914b4b0b0c4c3e5e16a1ba043ccdbb7e76ac84 (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.c | 24 |
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)); |