diff --git a/sys/src/libsec/port/x509.c b/sys/src/libsec/port/x509.c index 5b4d24952..404d64ff3 100644 --- a/sys/src/libsec/port/x509.c +++ b/sys/src/libsec/port/x509.c @@ -2576,9 +2576,9 @@ asn1encodedigest(DigestState* (*fun)(uchar*, ulong, uchar*, DigestState*), uchar } static Elem -mkcont(Elem e, int num) +mkcont(int num, Elist *l) { - e = mkseq(mkel(e, nil)); + Elem e = mkseq(l); e.tag.class = Context; e.tag.num = num; return e; @@ -2592,7 +2592,7 @@ mkaltname(char *s) for(i=0; idata, pkbytes->len), nil))), - mkextensions(alts, 0))))))))); + mkel(mkcont(3, mkextensions(alts, 0)), nil))))))))); freebytes(pkbytes); if(encode(e, &certinfobytes) != ASN_OK) goto errret; @@ -2842,7 +2843,7 @@ X509rsareq(RSApriv *priv, char *subj, int *certlen) mkel(mkalg(ALG_rsaEncryption), mkel(mkbits(pkbytes->data, pkbytes->len), nil))), - mkextensions(alts, 1))))); + mkel(mkcont(0, mkextensions(alts, 1)), nil))))); freebytes(pkbytes); if(encode(e, &certinfobytes) != ASN_OK) goto errret;