1
0
mirror of https://github.com/golang/go synced 2024-11-22 02:04:40 -07:00

asn1: allow '*' in PrintableString.

Although technically incorrect, we want this in order to parse X.509
certificates where a wildcard hostname ("*.example.com") has been put
into a PrintableString.

Fixes #850.

R=rsc
CC=golang-dev
https://golang.org/cl/1615043
This commit is contained in:
Adam Langley 2010-06-09 20:52:41 -04:00
parent fb279e7347
commit 5f0319c0a6
2 changed files with 6 additions and 1 deletions

View File

@ -324,7 +324,11 @@ func isPrintable(b byte) bool {
b == ' ' ||
b == ':' ||
b == '=' ||
b == '?'
b == '?' ||
// This is techincally not allowed in a PrintableString.
// However, x509 certificates with wildcard strings don't
// always use the correct string type so we permit it.
b == '*'
}
// IA5String

View File

@ -75,6 +75,7 @@ var marshalTests = []marshalTest{
marshalTest{"test", "130474657374"},
marshalTest{ia5StringTest{"test"}, "3006160474657374"},
marshalTest{printableStringTest{"test"}, "3006130474657374"},
marshalTest{printableStringTest{"test*"}, "30071305746573742a"},
marshalTest{rawContentsStruct{nil, 64}, "3003020140"},
marshalTest{rawContentsStruct{[]byte{0x30, 3, 1, 2, 3}, 64}, "3003010203"},
marshalTest{RawValue{Tag: 1, Class: 2, IsCompound: false, Bytes: []byte{1, 2, 3}}, "8103010203"},