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:
parent
fb279e7347
commit
5f0319c0a6
@ -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
|
||||
|
@ -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"},
|
||||
|
Loading…
Reference in New Issue
Block a user