]> Cypherpunks repositories - gostls13.git/commitdiff
encoding/asn1: document unmarshaling behavior for IMPLICIT string fields
authorEric Chiang <ericchiang@google.com>
Fri, 13 Nov 2020 03:13:02 +0000 (19:13 -0800)
committerKatie Hockman <katie@golang.org>
Tue, 12 Jan 2021 18:32:48 +0000 (18:32 +0000)
Fixes #42570.

Change-Id: I73e339cdebe1720c141861a12e28a94cef13c75b
Reviewed-on: https://go-review.googlesource.com/c/go/+/269798
Reviewed-by: Katie Hockman <katie@golang.org>
Reviewed-by: Roland Shoemaker <roland@golang.org>
Run-TryBot: Katie Hockman <katie@golang.org>
Trust: Emmanuel Odeke <emmanuel@orijtech.com>
Trust: Katie Hockman <katie@golang.org>

src/encoding/asn1/asn1.go

index 7c260b49d90125f209984ce6c5fa1cb30ccd78ca..f9b9cb4930e9890aaf90ab83522d7bf69982509b 100644 (file)
@@ -1067,6 +1067,15 @@ func setDefaultValue(v reflect.Value, params fieldParameters) (ok bool) {
 //     set         causes a SET, rather than a SEQUENCE type to be expected
 //     tag:x       specifies the ASN.1 tag number; implies ASN.1 CONTEXT SPECIFIC
 //
+// When decoding an ASN.1 value with an IMPLICIT tag into a string field,
+// Unmarshal will default to a PrintableString, which doesn't support
+// characters such as '@' and '&'. To force other encodings, use the following
+// tags:
+//
+//     ia5     causes strings to be unmarshaled as ASN.1 IA5String values
+//     numeric causes strings to be unmarshaled as ASN.1 NumericString values
+//     utf8    causes strings to be unmarshaled as ASN.1 UTF8String values
+//
 // If the type of the first field of a structure is RawContent then the raw
 // ASN1 contents of the struct will be stored in it.
 //