Commit 927f8a04 authored by Hiroshi Ioka's avatar Hiroshi Ioka Committed by Brad Fitzpatrick

encoding/asn1: document "utc" and "generalized" tags

Also reformat tables.

Fixes #19889

Change-Id: I05083d2bab8bca46c4e22a415eb9b73513df6994
Reviewed-on: https://go-review.googlesource.com/40071Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
parent 826a09cd
...@@ -975,12 +975,12 @@ func setDefaultValue(v reflect.Value, params fieldParameters) (ok bool) { ...@@ -975,12 +975,12 @@ func setDefaultValue(v reflect.Value, params fieldParameters) (ok bool) {
// //
// The following tags on struct fields have special meaning to Unmarshal: // The following tags on struct fields have special meaning to Unmarshal:
// //
// application specifies that a APPLICATION tag is used // application specifies that a APPLICATION tag is used
// default:x sets the default value for optional integer fields (only used if optional is also present) // default:x sets the default value for optional integer fields (only used if optional is also present)
// explicit specifies that an additional, explicit tag wraps the implicit one // explicit specifies that an additional, explicit tag wraps the implicit one
// optional marks the field as ASN.1 OPTIONAL // optional marks the field as ASN.1 OPTIONAL
// set causes a SET, rather than a SEQUENCE type to be expected // 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 // tag:x specifies the ASN.1 tag number; implies ASN.1 CONTEXT SPECIFIC
// //
// If the type of the first field of a structure is RawContent then the raw // 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. // ASN1 contents of the struct will be stored in it.
......
...@@ -643,10 +643,12 @@ func makeField(v reflect.Value, params fieldParameters) (e encoder, err error) { ...@@ -643,10 +643,12 @@ func makeField(v reflect.Value, params fieldParameters) (e encoder, err error) {
// In addition to the struct tags recognised by Unmarshal, the following can be // In addition to the struct tags recognised by Unmarshal, the following can be
// used: // used:
// //
// ia5: causes strings to be marshaled as ASN.1, IA5 strings // ia5: causes strings to be marshaled as ASN.1, IA5String values
// omitempty: causes empty slices to be skipped // omitempty: causes empty slices to be skipped
// printable: causes strings to be marshaled as ASN.1, PrintableString strings. // printable: causes strings to be marshaled as ASN.1, PrintableString values
// utf8: causes strings to be marshaled as ASN.1, UTF8 strings // utf8: causes strings to be marshaled as ASN.1, UTF8String values
// utc: causes time.Time to be marshaled as ASN.1, UTCTime values
// generalized: causes time.Time to be marshaled as ASN.1, GeneralizedTime values
func Marshal(val interface{}) ([]byte, error) { func Marshal(val interface{}) ([]byte, error) {
e, err := makeField(reflect.ValueOf(val), fieldParameters{}) e, err := makeField(reflect.ValueOf(val), fieldParameters{})
if err != nil { if err != nil {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment