Skip to content

Commit 19444b9

Browse files
refactor: linting (#493)
* refactor: linting * refactor: linting * refactor: linting
1 parent 9410f91 commit 19444b9

40 files changed

+940
-482
lines changed

.github/workflows/codeql.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,4 @@ jobs:
3939
- name: 'Perform CodeQL Analysis'
4040
uses: github/codeql-action/analyze@3c3833e0f8c1c83d449a7478aa59c036a9165498 # v3.29.5
4141
with:
42-
category: "/language:${{matrix.language}}"
42+
category: '/language:${{ matrix.language }}'

.github/workflows/scorecards.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: 'Scorecard'
1+
name: 'Scorecards'
22
on:
33
branch_protection_rule: {}
44
schedule:
@@ -9,7 +9,7 @@ on:
99
permissions: 'read-all'
1010
jobs:
1111
analysis:
12-
name: 'Analysis'
12+
name: 'OpenSSF'
1313
runs-on: 'ubuntu-latest'
1414
permissions:
1515
security-events: 'write'
@@ -25,7 +25,7 @@ jobs:
2525
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
2626
with:
2727
persist-credentials: false
28-
- name: 'Run'
28+
- name: 'Analyze'
2929
uses: ossf/scorecard-action@05b42c624433fc40578a4040d5cf5e36ddca8cde # v2.4.2
3030
with:
3131
results_file: 'results.sarif'

.golangci.yml

Lines changed: 61 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,13 @@
11
---
2-
run:
3-
timeout: 3m
4-
5-
linters-settings:
6-
goconst:
7-
min-len: 2
8-
min-occurrences: 2
9-
gocyclo:
10-
min-complexity: 15
11-
godot:
12-
check-all: true
13-
goimports:
14-
local-prefixes: github.com/go-webauthn/webauthn
15-
2+
version: "2"
163
linters:
174
enable:
185
- asciicheck
6+
- forbidigo
197
- goconst
208
- gocritic
219
- gocyclo
2210
- godot
23-
- gofmt
24-
- goimports
2511
- gosec
2612
- misspell
2713
- nolintlint
@@ -30,20 +16,66 @@ linters:
3016
- unconvert
3117
- unparam
3218
- whitespace
33-
- wsl
34-
19+
- wsl_v5
20+
settings:
21+
forbidigo:
22+
forbid:
23+
- pattern: ^print.*$
24+
msg: Do not commit print statements.
25+
- pattern: ^fmt\.Print.*$
26+
pkg: ^fmt$
27+
msg: Do not commit print statements.
28+
analyze-types: true
29+
goconst:
30+
min-len: 2
31+
min-occurrences: 2
32+
gocyclo:
33+
min-complexity: 15
34+
godot:
35+
scope: all
36+
revive:
37+
confidence: 0.8
38+
exclusions:
39+
generated: lax
40+
rules:
41+
- path: (.+)\.go$
42+
text: Error return value of .((os\.)?std(out|err)\..*|.*Close|.*Flush|os\.Remove(All)?|.*printf?|os\.(Un)?Setenv). is not checked # yamllint disable-line rule:line-length
43+
- path: (.+)\.go$
44+
text: func name will be used as test\.Test.* by other packages, and that stutters; consider calling this
45+
- path: (.+)\.go$
46+
text: (possible misuse of unsafe.Pointer|should have signature)
47+
- path: (.+)\.go$
48+
text: ineffective break statement. Did you mean to break out of the outer loop
49+
- path: (.+)\.go$
50+
text: Use of unsafe calls should be audited
51+
- path: (.+)\.go$
52+
text: Subprocess launch(ed with variable|ing should be audited)
53+
- path: (.+)\.go$
54+
text: (G104|G307)
55+
- path: (.+)\.go$
56+
text: (Expect directory permissions to be 0750 or less|Expect file permissions to be 0600 or less)
57+
- path: (.+)\.go$
58+
text: Potential file inclusion via variable
59+
paths:
60+
- third_party$
61+
- builtin$
62+
- examples$
3563
issues:
36-
exclude:
37-
- Error return value of .((os\.)?std(out|err)\..*|.*Close|.*Flush|os\.Remove(All)?|.*printf?|os\.(Un)?Setenv). is not checked # yamllint disable-line rule:line-length
38-
- func name will be used as test\.Test.* by other packages, and that stutters; consider calling this
39-
- (possible misuse of unsafe.Pointer|should have signature)
40-
- ineffective break statement. Did you mean to break out of the outer loop
41-
- Use of unsafe calls should be audited
42-
- Subprocess launch(ed with variable|ing should be audited)
43-
- (G104|G307)
44-
- (Expect directory permissions to be 0750 or less|Expect file permissions to be 0600 or less)
45-
- Potential file inclusion via variable
46-
exclude-use-default: false
4764
max-issues-per-linter: 0
4865
max-same-issues: 0
66+
formatters:
67+
enable:
68+
- gofmt
69+
- goimports
70+
settings:
71+
goimports:
72+
local-prefixes:
73+
- github.com/go-webauthn/webauthn
74+
- github.com/go-webauthn/x
75+
exclusions:
76+
generated: lax
77+
paths:
78+
- third_party$
79+
- builtin$
80+
- examples$
4981
...

metadata/const.go

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,22 @@
11
package metadata
22

33
const (
4-
// https://secure.globalsign.com/cacert/root-r3.crt
4+
// ProductionMDSRoot is the root certificate for the MDS.
5+
//
6+
// See: https://secure.globalsign.com/cacert/root-r3.crt
57
ProductionMDSRoot = "MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4GA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsTgHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmmKPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zdQQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZXriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+oLkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZURUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMpjjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQXmcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecsMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpHWD9f"
68

7-
// Production MDS URL
9+
// ProductionMDSURL is the Production MDS URL.
810
ProductionMDSURL = "https://mds.fidoalliance.org"
911

10-
// https://mds3.fido.tools/pki/MDS3ROOT.crt
12+
// ConformanceMDSRoot is the root certificate for the MDS Conformance Suite.
13+
//
14+
// See: https://mds3.fido.tools/pki/MDS3ROOT.crt
1115
ConformanceMDSRoot = "MIICaDCCAe6gAwIBAgIPBCqih0DiJLW7+UHXx/o1MAoGCCqGSM49BAMDMGcxCzAJBgNVBAYTAlVTMRYwFAYDVQQKDA1GSURPIEFsbGlhbmNlMScwJQYDVQQLDB5GQUtFIE1ldGFkYXRhIDMgQkxPQiBST09UIEZBS0UxFzAVBgNVBAMMDkZBS0UgUm9vdCBGQUtFMB4XDTE3MDIwMTAwMDAwMFoXDTQ1MDEzMTIzNTk1OVowZzELMAkGA1UEBhMCVVMxFjAUBgNVBAoMDUZJRE8gQWxsaWFuY2UxJzAlBgNVBAsMHkZBS0UgTWV0YWRhdGEgMyBCTE9CIFJPT1QgRkFLRTEXMBUGA1UEAwwORkFLRSBSb290IEZBS0UwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASKYiz3YltC6+lmxhPKwA1WFZlIqnX8yL5RybSLTKFAPEQeTD9O6mOz+tg8wcSdnVxHzwnXiQKJwhrav70rKc2ierQi/4QUrdsPes8TEirZOkCVJurpDFbXZOgs++pa4XmjYDBeMAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQGcfeCs0Y8D+lh6U5B2xSrR74eHTAfBgNVHSMEGDAWgBQGcfeCs0Y8D+lh6U5B2xSrR74eHTAKBggqhkjOPQQDAwNoADBlAjEA/xFsgri0xubSa3y3v5ormpPqCwfqn9s0MLBAtzCIgxQ/zkzPKctkiwoPtDzI51KnAjAmeMygX2S5Ht8+e+EQnezLJBJXtnkRWY+Zt491wgt/AwSs5PHHMv5QgjELOuMxQBc="
1216

13-
// Example from https://fidoalliance.org/specs/mds/fido-metadata-service-v3.1-ps-20250521.html#sctn-examples
17+
// ExampleMDSRoot is the example root certificate for the MDS.
18+
//
19+
// See: https://fidoalliance.org/specs/mds/fido-metadata-service-v3.1-ps-20250521.html#sctn-examples
1420
ExampleMDSRoot = "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"
1521
)
1622

metadata/decode.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,10 @@ import (
1010
"strings"
1111
"time"
1212

13-
"github.com/go-webauthn/x/revoke"
1413
"github.com/golang-jwt/jwt/v5"
1514
"github.com/mitchellh/mapstructure"
15+
16+
"github.com/go-webauthn/x/revoke"
1617
)
1718

1819
// NewDecoder returns a new metadata decoder.
@@ -96,9 +97,9 @@ func (d *Decoder) DecodeBytes(bytes []byte) (payload *PayloadJSON, err error) {
9697
var token *jwt.Token
9798

9899
if token, err = d.parser.Parse(string(bytes), func(token *jwt.Token) (any, error) {
99-
// 2. If the x5u attribute is present in the JWT Header, then
100+
// 2. If the x5u attribute is present in the JWT Header.
100101
if _, ok := token.Header[HeaderX509URI].([]any); ok {
101-
// never seen an x5u here, although it is in the spec
102+
// Never seen an x5u here, although it is in the spec.
102103
return nil, errors.New("x5u encountered in header of metadata TOC payload")
103104
}
104105

0 commit comments

Comments
 (0)