mirror of
https://github.com/google/go-attestation.git
synced 2025-04-15 15:06:43 +00:00
Explicitly tag context-specific UTF8Strings
Context-specific fields in ASN.1 don't have explicit type tags in the ASN.1 stream, so encoding/asn1 infers the tag from the type of the struct field the stream is being unmarshalled to. By default string is assumed to be PrintableString, which is only permitted to contain a subset of possible characters. If a field is defined as UTF8String in the spec then it may contain characters that are not permitted in PrintableString, and in this case Unmarshal() will return an error. We can avoid this by explicitly tagging any context-specific UTF8Strings.
This commit is contained in:
parent
355135fd13
commit
cc244b36f4
@ -397,8 +397,8 @@ type ComponentIdentifierV2 struct {
|
||||
ComponentClass ComponentClass
|
||||
ComponentManufacturer string
|
||||
ComponentModel string
|
||||
ComponentSerial string `asn1:"optional,tag:0"`
|
||||
ComponentRevision string `asn1:"optional,tag:1"`
|
||||
ComponentSerial string `asn1:"optional,utf8,tag:0"`
|
||||
ComponentRevision string `asn1:"optional,utf8,tag:1"`
|
||||
ComponentManufacturerID int `asn1:"optional,tag:2"`
|
||||
FieldReplaceable bool `asn1:"optional,tag:3"`
|
||||
ComponentAddresses []ComponentAddress `asn1:"optional,tag:4"`
|
||||
@ -431,8 +431,8 @@ type ComponentIdentifierV1 struct {
|
||||
ComponentClass []byte `asn1:"optional"`
|
||||
ComponentManufacturer string
|
||||
ComponentModel string
|
||||
ComponentSerial string `asn1:"optional,tag:0"`
|
||||
ComponentRevision string `asn1:"optional,tag:1"`
|
||||
ComponentSerial string `asn1:"optional,utf8,tag:0"`
|
||||
ComponentRevision string `asn1:"optional,utf8,tag:1"`
|
||||
ComponentManufacturerID int `asn1:"optional,tag:2"`
|
||||
FieldReplaceable bool `asn1:"optional,tag:3"`
|
||||
ComponentAddresses []ComponentAddress `asn1:"optional,tag:4"`
|
||||
|
Loading…
x
Reference in New Issue
Block a user