summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2021-07-08 20:20:09 +0000
committercinap_lenrek <cinap_lenrek@felloff.net>2021-07-08 20:20:09 +0000
commitb542dce430d408ed1f7457a26caa1d4bfc7339c4 (patch)
tree4c1a207909ad065ca19ae8b23fd91bc98e4cf3dc
parent8b550e73c2cadcbd0df165c5474241d6b60dfce8 (diff)
downloadplan9front-b542dce430d408ed1f7457a26caa1d4bfc7339c4.tar.xz
libsec: take just the CN part of Distinguished Name in subjectAltName
-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 789bdc4ff..91f79bbae 100644
--- a/sys/src/libsec/port/x509.c
+++ b/sys/src/libsec/port/x509.c
@@ -1906,7 +1906,8 @@ decode_cert(uchar *buf, int len)
el = el->tl;
epubkey = &el->hd;
if(el->tl != nil
- && el->tl->hd.tag.class == Context && el->tl->hd.tag.num == 3
+ && el->tl->hd.tag.class == Context
+ && el->tl->hd.tag.num == 3
&& el->tl->hd.val.tag == VOctets){
c->ext = el->tl->hd.val.u.octetsval;
el->tl->hd.val.u.octetsval = nil; /* transfer ownership */
@@ -2700,7 +2701,7 @@ appendaltnames(char *name, int nname, Bytes *ext, int isreq)
Elem eext, ealt, edn;
Elist *el, *l;
Ints *oid;
- char *alt;
+ char *alt, *e;
int len;
if(name == nil || ext == nil)
@@ -2758,6 +2759,9 @@ appendaltnames(char *name, int nname, Bytes *ext, int isreq)
}
if(alt == nil)
goto erralt;
+ /* take just CN part of Distinguished Name */
+ if((e = strchr(alt, ',')) != nil)
+ *e = '\0';
len = strlen(alt);
if(strncmp(name, alt, len) == 0 && strchr(",", name[len]) != nil){
free(alt); /* same as the subject */