Skip to content

Commit ed78bf9

Browse files
authored
Rewrite interface{} to any (veraison#162)
Signed-off-by: qmuntal <[email protected]>
1 parent 160b7e0 commit ed78bf9

File tree

7 files changed

+127
-127
lines changed

7 files changed

+127
-127
lines changed

fuzz_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ func FuzzSign1Message_UnmarshalCBOR(f *testing.F) {
5858
enc, _ := cbor.CanonicalEncOptions().EncMode()
5959
dec, _ := cbor.DecOptions{IntDec: cbor.IntDecConvertSigned}.DecMode()
6060
isCanonical := func(b []byte) bool {
61-
var tmp interface{}
61+
var tmp any
6262
err := dec.Unmarshal(b, &tmp)
6363
if err != nil {
6464
return false

headers.go

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ const (
2828

2929
// ProtectedHeader contains parameters that are to be cryptographically
3030
// protected.
31-
type ProtectedHeader map[interface{}]interface{}
31+
type ProtectedHeader map[any]any
3232

3333
// MarshalCBOR encodes the protected header into a CBOR bstr object.
3434
// A zero-length header is encoded as a zero-length string rather than as a
@@ -42,7 +42,7 @@ func (h ProtectedHeader) MarshalCBOR() ([]byte, error) {
4242
if err != nil {
4343
return nil, fmt.Errorf("protected header: %w", err)
4444
}
45-
encoded, err = encMode.Marshal(map[interface{}]interface{}(h))
45+
encoded, err = encMode.Marshal(map[any]any(h))
4646
if err != nil {
4747
return nil, err
4848
}
@@ -75,7 +75,7 @@ func (h *ProtectedHeader) UnmarshalCBOR(data []byte) error {
7575
if err := validateHeaderLabelCBOR(encoded); err != nil {
7676
return err
7777
}
78-
var header map[interface{}]interface{}
78+
var header map[any]any
7979
if err := decMode.Unmarshal(encoded, &header); err != nil {
8080
return err
8181
}
@@ -129,7 +129,7 @@ func (h ProtectedHeader) Algorithm() (Algorithm, error) {
129129
// processing a message is required to understand.
130130
//
131131
// Reference: https://datatracker.ietf.org/doc/html/rfc8152#section-3.1
132-
func (h ProtectedHeader) Critical() ([]interface{}, error) {
132+
func (h ProtectedHeader) Critical() ([]any, error) {
133133
value, ok := h[HeaderLabelCritical]
134134
if !ok {
135135
return nil, nil
@@ -138,12 +138,12 @@ func (h ProtectedHeader) Critical() ([]interface{}, error) {
138138
if err != nil {
139139
return nil, err
140140
}
141-
return value.([]interface{}), nil
141+
return value.([]any), nil
142142
}
143143

144144
// ensureCritical ensures all critical headers are present in the protected bucket.
145-
func ensureCritical(value interface{}, headers map[interface{}]interface{}) error {
146-
labels, ok := value.([]interface{})
145+
func ensureCritical(value any, headers map[any]any) error {
146+
labels, ok := value.([]any)
147147
if !ok {
148148
return errors.New("invalid crit header")
149149
}
@@ -164,7 +164,7 @@ func ensureCritical(value interface{}, headers map[interface{}]interface{}) erro
164164

165165
// UnprotectedHeader contains parameters that are not cryptographically
166166
// protected.
167-
type UnprotectedHeader map[interface{}]interface{}
167+
type UnprotectedHeader map[any]any
168168

169169
// MarshalCBOR encodes the unprotected header into a CBOR map object.
170170
// A zero-length header is encoded as a zero-length map (encoded as h'a0').
@@ -175,7 +175,7 @@ func (h UnprotectedHeader) MarshalCBOR() ([]byte, error) {
175175
if err := validateHeaderParameters(h, false); err != nil {
176176
return nil, fmt.Errorf("unprotected header: %w", err)
177177
}
178-
return encMode.Marshal(map[interface{}]interface{}(h))
178+
return encMode.Marshal(map[any]any(h))
179179
}
180180

181181
// UnmarshalCBOR decodes a CBOR map object into UnprotectedHeader.
@@ -197,7 +197,7 @@ func (h *UnprotectedHeader) UnmarshalCBOR(data []byte) error {
197197
if err := validateHeaderLabelCBOR(data); err != nil {
198198
return err
199199
}
200-
var header map[interface{}]interface{}
200+
var header map[any]any
201201
if err := decMode.Unmarshal(data, &header); err != nil {
202202
return err
203203
}
@@ -376,14 +376,14 @@ func (h *Headers) ensureIV() error {
376376
}
377377

378378
// hasLabel returns true if h contains label.
379-
func hasLabel(h map[interface{}]interface{}, label interface{}) bool {
379+
func hasLabel(h map[any]any, label any) bool {
380380
_, ok := h[label]
381381
return ok
382382
}
383383

384384
// validateHeaderParameters validates all headers conform to the spec.
385-
func validateHeaderParameters(h map[interface{}]interface{}, protected bool) error {
386-
existing := make(map[interface{}]struct{}, len(h))
385+
func validateHeaderParameters(h map[any]any, protected bool) error {
386+
existing := make(map[any]struct{}, len(h))
387387
for label, value := range h {
388388
// Validate that all header labels are integers or strings.
389389
// Reference: https://datatracker.ietf.org/doc/html/rfc8152#section-1.4
@@ -443,7 +443,7 @@ func validateHeaderParameters(h map[interface{}]interface{}, protected bool) err
443443
}
444444

445445
// canUint reports whether v can be used as a CBOR uint type.
446-
func canUint(v interface{}) bool {
446+
func canUint(v any) bool {
447447
switch v := v.(type) {
448448
case uint, uint8, uint16, uint32, uint64:
449449
return true
@@ -462,7 +462,7 @@ func canUint(v interface{}) bool {
462462
}
463463

464464
// canInt reports whether v can be used as a CBOR int type.
465-
func canInt(v interface{}) bool {
465+
func canInt(v any) bool {
466466
switch v.(type) {
467467
case int, int8, int16, int32, int64,
468468
uint, uint8, uint16, uint32, uint64:
@@ -472,20 +472,20 @@ func canInt(v interface{}) bool {
472472
}
473473

474474
// canTstr reports whether v can be used as a CBOR tstr type.
475-
func canTstr(v interface{}) bool {
475+
func canTstr(v any) bool {
476476
_, ok := v.(string)
477477
return ok
478478
}
479479

480480
// canBstr reports whether v can be used as a CBOR bstr type.
481-
func canBstr(v interface{}) bool {
481+
func canBstr(v any) bool {
482482
_, ok := v.([]byte)
483483
return ok
484484
}
485485

486486
// normalizeLabel tries to cast label into a int64 or a string.
487487
// Returns (nil, false) if the label type is not valid.
488-
func normalizeLabel(label interface{}) (interface{}, bool) {
488+
func normalizeLabel(label any) (any, bool) {
489489
switch v := label.(type) {
490490
case int:
491491
label = int64(v)
@@ -517,7 +517,7 @@ func normalizeLabel(label interface{}) (interface{}, bool) {
517517

518518
// headerLabelValidator is used to validate the header label of a COSE header.
519519
type headerLabelValidator struct {
520-
value interface{}
520+
value any
521521
}
522522

523523
// String prints the value without brackets `{}`. Useful in error printing.

headers_test.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ func TestProtectedHeader_MarshalCBOR(t *testing.T) {
1717
name: "valid header",
1818
h: ProtectedHeader{
1919
HeaderLabelAlgorithm: AlgorithmES256,
20-
HeaderLabelCritical: []interface{}{
20+
HeaderLabelCritical: []any{
2121
HeaderLabelContentType,
2222
"foo",
2323
},
@@ -84,7 +84,7 @@ func TestProtectedHeader_MarshalCBOR(t *testing.T) {
8484
{
8585
name: "empty critical",
8686
h: ProtectedHeader{
87-
HeaderLabelCritical: []interface{}{},
87+
HeaderLabelCritical: []any{},
8888
},
8989
wantErr: "protected header: header parameter: crit: empty crit header",
9090
},
@@ -98,7 +98,7 @@ func TestProtectedHeader_MarshalCBOR(t *testing.T) {
9898
{
9999
name: "missing header marked as critical",
100100
h: ProtectedHeader{
101-
HeaderLabelCritical: []interface{}{
101+
HeaderLabelCritical: []any{
102102
HeaderLabelContentType,
103103
},
104104
},
@@ -107,7 +107,7 @@ func TestProtectedHeader_MarshalCBOR(t *testing.T) {
107107
{
108108
name: "critical header contains non-label element",
109109
h: ProtectedHeader{
110-
HeaderLabelCritical: []interface{}{[]uint8{}},
110+
HeaderLabelCritical: []any{[]uint8{}},
111111
},
112112
wantErr: "protected header: header parameter: crit: require int / tstr type, got '[]uint8': []",
113113
},
@@ -199,7 +199,7 @@ func TestProtectedHeader_UnmarshalCBOR(t *testing.T) {
199199
},
200200
want: ProtectedHeader{
201201
HeaderLabelAlgorithm: AlgorithmES256,
202-
HeaderLabelCritical: []interface{}{
202+
HeaderLabelCritical: []any{
203203
HeaderLabelContentType,
204204
"foo",
205205
},
@@ -451,21 +451,21 @@ func TestProtectedHeader_Critical(t *testing.T) {
451451
tests := []struct {
452452
name string
453453
h ProtectedHeader
454-
want []interface{}
454+
want []any
455455
wantErr string
456456
}{
457457
{
458458
name: "valid header",
459459
h: ProtectedHeader{
460460
HeaderLabelAlgorithm: AlgorithmES256,
461-
HeaderLabelCritical: []interface{}{
461+
HeaderLabelCritical: []any{
462462
HeaderLabelContentType,
463463
"foo",
464464
},
465465
HeaderLabelContentType: "text/plain",
466466
"foo": "bar",
467467
},
468-
want: []interface{}{
468+
want: []any{
469469
HeaderLabelContentType,
470470
"foo",
471471
},
@@ -490,7 +490,7 @@ func TestProtectedHeader_Critical(t *testing.T) {
490490
{
491491
name: "empty critical",
492492
h: ProtectedHeader{
493-
HeaderLabelCritical: []interface{}{},
493+
HeaderLabelCritical: []any{},
494494
},
495495
wantErr: "empty crit header",
496496
},

0 commit comments

Comments
 (0)