summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/src/libsec/port/x509.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/src/libsec/port/x509.c b/sys/src/libsec/port/x509.c
index 404d64ff3..aaaa7fb3e 100644
--- a/sys/src/libsec/port/x509.c
+++ b/sys/src/libsec/port/x509.c
@@ -2658,6 +2658,10 @@ mkextensions(char *alts, int req)
mkel(mkoid((Ints*)&oid_extensionRequest),
mkel(mkset(xl), nil))), nil);
}
+ if(req)
+ xl = mkel(mkcont(0, xl), nil);
+ else if(xl != nil)
+ xl = mkel(mkcont(3, xl), nil);
return xl;
}
@@ -2777,7 +2781,7 @@ X509rsagen(RSApriv *priv, char *subj, ulong valid[2], int *certlen)
mkel(mkalg(ALG_rsaEncryption),
mkel(mkbits(pkbytes->data, pkbytes->len),
nil))),
- mkel(mkcont(3, mkextensions(alts, 0)), nil)))))))));
+ mkextensions(alts, 0)))))))));
freebytes(pkbytes);
if(encode(e, &certinfobytes) != ASN_OK)
goto errret;
@@ -2843,7 +2847,7 @@ X509rsareq(RSApriv *priv, char *subj, int *certlen)
mkel(mkalg(ALG_rsaEncryption),
mkel(mkbits(pkbytes->data, pkbytes->len),
nil))),
- mkel(mkcont(0, mkextensions(alts, 1)), nil)))));
+ mkextensions(alts, 1)))));
freebytes(pkbytes);
if(encode(e, &certinfobytes) != ASN_OK)
goto errret;