From 571191d2028890cdc9764cee20697d42adf3c9e4 Mon Sep 17 00:00:00 2001 From: Heitor Neiva Date: Wed, 4 Sep 2024 14:29:07 -0700 Subject: [PATCH] Fix race condition with unused code encodeIndent was only there for debugging and not currently used for anything. This was causing some projects downstream to fail testing with -race enabled. + Added `-race` to go test and made ber.go tests run in parallel --- .github/workflows/ci.yml | 2 +- Makefile | 2 +- ber.go | 9 - ber_test.go | 4 + coverage.out | 512 +++++++++++++++++++++++++++++++++++++++ 5 files changed, 518 insertions(+), 11 deletions(-) create mode 100644 coverage.out diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c6f7f56..9b10b9d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,4 +17,4 @@ jobs: go-version: ${{ matrix.go }} stable: false - name: Test - run: go vet . && go build . && go test -count=1 -covermode=count -coverprofile=coverage.out . + run: go vet . && go build . && go test -race -covermode=atomic -count=1 -coverprofile=coverage.out . diff --git a/Makefile b/Makefile index 47c73b8..faa7841 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ all: vet staticcheck test test: - go test -covermode=count -coverprofile=coverage.out . + go test -race -covermode=atomic -count=1 -coverprofile=coverage.out . showcoverage: test go tool cover -html=coverage.out diff --git a/ber.go b/ber.go index 73da024..0cc2311 100644 --- a/ber.go +++ b/ber.go @@ -5,8 +5,6 @@ import ( "errors" ) -var encodeIndent = 0 - type asn1Object interface { EncodeTo(writer *bytes.Buffer) error } @@ -17,8 +15,6 @@ type asn1Structured struct { } func (s asn1Structured) EncodeTo(out *bytes.Buffer) error { - //fmt.Printf("%s--> tag: % X\n", strings.Repeat("| ", encodeIndent), s.tagBytes) - encodeIndent++ inner := new(bytes.Buffer) for _, obj := range s.content { err := obj.EncodeTo(inner) @@ -26,7 +22,6 @@ func (s asn1Structured) EncodeTo(out *bytes.Buffer) error { return err } } - encodeIndent-- out.Write(s.tagBytes) encodeLength(out, inner.Len()) out.Write(inner.Bytes()) @@ -47,10 +42,7 @@ func (p asn1Primitive) EncodeTo(out *bytes.Buffer) error { if err = encodeLength(out, p.length); err != nil { return err } - //fmt.Printf("%s--> tag: % X length: %d\n", strings.Repeat("| ", encodeIndent), p.tagBytes, p.length) - //fmt.Printf("%s--> content length: %d\n", strings.Repeat("| ", encodeIndent), len(p.content)) out.Write(p.content) - return nil } @@ -58,7 +50,6 @@ func ber2der(ber []byte) ([]byte, error) { if len(ber) == 0 { return nil, errors.New("ber2der: input ber is empty") } - //fmt.Printf("--> ber2der: Transcoding %d bytes\n", len(ber)) out := new(bytes.Buffer) obj, _, err := readObject(ber, 0) diff --git a/ber_test.go b/ber_test.go index f2ba5d2..7e21149 100644 --- a/ber_test.go +++ b/ber_test.go @@ -10,6 +10,7 @@ import ( ) func TestBer2Der(t *testing.T) { + t.Parallel() // indefinite length fixture ber := []byte{0x30, 0x80, 0x02, 0x01, 0x01, 0x00, 0x00} expected := []byte{0x30, 0x03, 0x02, 0x01, 0x01} @@ -40,6 +41,7 @@ func TestBer2Der(t *testing.T) { } func TestBer2Der_Negatives(t *testing.T) { + t.Parallel() fixtures := []struct { Input []byte ErrorContains string @@ -65,6 +67,7 @@ func TestBer2Der_Negatives(t *testing.T) { } func TestBer2Der_NestedMultipleIndefinite(t *testing.T) { + t.Parallel() // indefinite length fixture ber := []byte{0x30, 0x80, 0x30, 0x80, 0x02, 0x01, 0x01, 0x00, 0x00, 0x30, 0x80, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00} expected := []byte{0x30, 0x0A, 0x30, 0x03, 0x02, 0x01, 0x01, 0x30, 0x03, 0x02, 0x01, 0x02} @@ -101,6 +104,7 @@ func TestBer2Der_NestedMultipleIndefinite(t *testing.T) { } func TestVerifyIndefiniteLengthBer(t *testing.T) { + t.Parallel() decoded := mustDecodePEM([]byte(testPKCS7)) _, err := ber2der(decoded) diff --git a/coverage.out b/coverage.out new file mode 100644 index 0000000..ca2f0ec --- /dev/null +++ b/coverage.out @@ -0,0 +1,512 @@ +mode: atomic +go.mozilla.org/pkcs7/ber.go:17.59,19.32 2 79225 +go.mozilla.org/pkcs7/ber.go:19.32,21.17 2 162408 +go.mozilla.org/pkcs7/ber.go:21.17,23.4 1 0 +go.mozilla.org/pkcs7/ber.go:25.2,28.12 4 79225 +go.mozilla.org/pkcs7/ber.go:37.58,39.16 2 84240 +go.mozilla.org/pkcs7/ber.go:39.16,41.3 1 0 +go.mozilla.org/pkcs7/ber.go:42.2,42.51 1 84240 +go.mozilla.org/pkcs7/ber.go:42.51,44.3 1 0 +go.mozilla.org/pkcs7/ber.go:45.2,46.12 2 84240 +go.mozilla.org/pkcs7/ber.go:49.42,50.19 1 1064 +go.mozilla.org/pkcs7/ber.go:50.19,52.3 1 0 +go.mozilla.org/pkcs7/ber.go:53.2,56.16 3 1064 +go.mozilla.org/pkcs7/ber.go:56.16,58.3 1 7 +go.mozilla.org/pkcs7/ber.go:59.2,65.25 2 1057 +go.mozilla.org/pkcs7/ber.go:69.62,72.19 2 15163 +go.mozilla.org/pkcs7/ber.go:72.19,74.17 2 27686 +go.mozilla.org/pkcs7/ber.go:74.17,76.4 1 0 +go.mozilla.org/pkcs7/ber.go:79.2,79.12 1 15163 +go.mozilla.org/pkcs7/ber.go:83.41,85.14 2 30326 +go.mozilla.org/pkcs7/ber.go:85.14,88.3 2 25046 +go.mozilla.org/pkcs7/ber.go:89.2,89.8 1 30326 +go.mozilla.org/pkcs7/ber.go:106.62,107.19 1 163465 +go.mozilla.org/pkcs7/ber.go:107.19,110.17 3 15163 +go.mozilla.org/pkcs7/ber.go:110.17,112.4 1 0 +go.mozilla.org/pkcs7/ber.go:113.3,114.17 2 15163 +go.mozilla.org/pkcs7/ber.go:114.17,116.4 1 0 +go.mozilla.org/pkcs7/ber.go:117.8,119.17 2 148302 +go.mozilla.org/pkcs7/ber.go:119.17,121.4 1 0 +go.mozilla.org/pkcs7/ber.go:123.2,123.8 1 163465 +go.mozilla.org/pkcs7/ber.go:126.66,128.22 2 163474 +go.mozilla.org/pkcs7/ber.go:128.22,130.3 1 0 +go.mozilla.org/pkcs7/ber.go:131.2,134.22 4 163474 +go.mozilla.org/pkcs7/ber.go:134.22,136.3 1 1 +go.mozilla.org/pkcs7/ber.go:137.2,138.17 2 163473 +go.mozilla.org/pkcs7/ber.go:138.17,140.27 2 0 +go.mozilla.org/pkcs7/ber.go:140.27,143.23 3 0 +go.mozilla.org/pkcs7/ber.go:143.23,145.5 1 0 +go.mozilla.org/pkcs7/ber.go:149.3,150.22 2 0 +go.mozilla.org/pkcs7/ber.go:150.22,152.4 1 0 +go.mozilla.org/pkcs7/ber.go:154.2,157.15 3 163473 +go.mozilla.org/pkcs7/ber.go:157.15,159.3 1 84242 +go.mozilla.org/pkcs7/ber.go:159.8,161.3 1 79231 +go.mozilla.org/pkcs7/ber.go:163.2,166.21 4 163473 +go.mozilla.org/pkcs7/ber.go:166.21,168.3 1 0 +go.mozilla.org/pkcs7/ber.go:169.2,170.14 2 163473 +go.mozilla.org/pkcs7/ber.go:170.14,172.24 2 15159 +go.mozilla.org/pkcs7/ber.go:172.24,174.4 1 1 +go.mozilla.org/pkcs7/ber.go:175.3,175.54 1 15158 +go.mozilla.org/pkcs7/ber.go:175.54,177.4 1 1 +go.mozilla.org/pkcs7/ber.go:178.3,178.32 1 15157 +go.mozilla.org/pkcs7/ber.go:178.32,180.4 1 1 +go.mozilla.org/pkcs7/ber.go:181.3,183.38 3 15156 +go.mozilla.org/pkcs7/ber.go:183.38,186.23 3 27672 +go.mozilla.org/pkcs7/ber.go:186.23,188.5 1 0 +go.mozilla.org/pkcs7/ber.go:190.8,190.22 1 148314 +go.mozilla.org/pkcs7/ber.go:190.22,192.3 1 13 +go.mozilla.org/pkcs7/ber.go:192.8,194.3 1 148301 +go.mozilla.org/pkcs7/ber.go:195.2,195.16 1 163470 +go.mozilla.org/pkcs7/ber.go:195.16,197.3 1 0 +go.mozilla.org/pkcs7/ber.go:199.2,200.27 2 163470 +go.mozilla.org/pkcs7/ber.go:200.27,202.3 1 2 +go.mozilla.org/pkcs7/ber.go:203.2,207.29 5 163468 +go.mozilla.org/pkcs7/ber.go:207.29,209.3 1 0 +go.mozilla.org/pkcs7/ber.go:210.2,210.15 1 163468 +go.mozilla.org/pkcs7/ber.go:210.15,216.3 1 84241 +go.mozilla.org/pkcs7/ber.go:216.8,218.43 2 79227 +go.mozilla.org/pkcs7/ber.go:218.43,222.18 4 162410 +go.mozilla.org/pkcs7/ber.go:222.18,224.5 1 1 +go.mozilla.org/pkcs7/ber.go:225.4,227.18 2 162409 +go.mozilla.org/pkcs7/ber.go:227.18,229.19 2 19 +go.mozilla.org/pkcs7/ber.go:229.19,231.6 1 1 +go.mozilla.org/pkcs7/ber.go:233.5,233.19 1 18 +go.mozilla.org/pkcs7/ber.go:233.19,234.11 1 11 +go.mozilla.org/pkcs7/ber.go:238.3,241.4 1 79225 +go.mozilla.org/pkcs7/ber.go:245.2,245.16 1 163466 +go.mozilla.org/pkcs7/ber.go:245.16,247.3 1 11 +go.mozilla.org/pkcs7/ber.go:249.2,249.29 1 163466 +go.mozilla.org/pkcs7/ber.go:252.68,253.27 1 19 +go.mozilla.org/pkcs7/ber.go:253.27,255.3 1 1 +go.mozilla.org/pkcs7/ber.go:257.2,257.62 1 18 +go.mozilla.org/pkcs7/ber.go:260.51,262.2 0 684189 +go.mozilla.org/pkcs7/decrypt.go:24.90,26.9 2 16 +go.mozilla.org/pkcs7/decrypt.go:26.9,28.3 1 0 +go.mozilla.org/pkcs7/decrypt.go:29.2,30.35 2 16 +go.mozilla.org/pkcs7/decrypt.go:30.35,32.3 1 0 +go.mozilla.org/pkcs7/decrypt.go:33.2,33.29 1 16 +go.mozilla.org/pkcs7/decrypt.go:34.23,37.17 3 16 +go.mozilla.org/pkcs7/decrypt.go:37.17,39.4 1 0 +go.mozilla.org/pkcs7/decrypt.go:40.3,40.55 1 16 +go.mozilla.org/pkcs7/decrypt.go:42.2,42.37 1 0 +go.mozilla.org/pkcs7/decrypt.go:47.62,49.9 2 2 +go.mozilla.org/pkcs7/decrypt.go:49.9,51.3 1 0 +go.mozilla.org/pkcs7/decrypt.go:52.2,52.47 1 2 +go.mozilla.org/pkcs7/decrypt.go:55.69,62.47 2 18 +go.mozilla.org/pkcs7/decrypt.go:62.47,65.3 2 0 +go.mozilla.org/pkcs7/decrypt.go:69.2,70.37 2 18 +go.mozilla.org/pkcs7/decrypt.go:70.37,74.7 3 17 +go.mozilla.org/pkcs7/decrypt.go:74.7,78.26 4 34 +go.mozilla.org/pkcs7/decrypt.go:78.26,79.10 1 17 +go.mozilla.org/pkcs7/decrypt.go:82.3,82.27 1 17 +go.mozilla.org/pkcs7/decrypt.go:83.8,86.3 1 1 +go.mozilla.org/pkcs7/decrypt.go:88.2,91.9 3 18 +go.mozilla.org/pkcs7/decrypt.go:92.47,93.34 1 4 +go.mozilla.org/pkcs7/decrypt.go:94.51,95.43 1 1 +go.mozilla.org/pkcs7/decrypt.go:96.94,97.14 1 6 +go.mozilla.org/pkcs7/decrypt.go:98.94,99.34 1 13 +go.mozilla.org/pkcs7/decrypt.go:102.2,102.16 1 18 +go.mozilla.org/pkcs7/decrypt.go:102.16,104.3 1 0 +go.mozilla.org/pkcs7/decrypt.go:106.2,106.94 1 18 +go.mozilla.org/pkcs7/decrypt.go:106.94,111.17 4 7 +go.mozilla.org/pkcs7/decrypt.go:111.17,113.4 1 0 +go.mozilla.org/pkcs7/decrypt.go:115.3,116.17 2 7 +go.mozilla.org/pkcs7/decrypt.go:116.17,118.4 1 0 +go.mozilla.org/pkcs7/decrypt.go:120.3,120.43 1 7 +go.mozilla.org/pkcs7/decrypt.go:120.43,122.4 1 0 +go.mozilla.org/pkcs7/decrypt.go:123.3,123.38 1 7 +go.mozilla.org/pkcs7/decrypt.go:123.38,125.4 1 0 +go.mozilla.org/pkcs7/decrypt.go:127.3,128.17 2 7 +go.mozilla.org/pkcs7/decrypt.go:128.17,130.4 1 0 +go.mozilla.org/pkcs7/decrypt.go:132.3,132.24 1 7 +go.mozilla.org/pkcs7/decrypt.go:135.2,136.34 2 11 +go.mozilla.org/pkcs7/decrypt.go:136.34,138.3 1 0 +go.mozilla.org/pkcs7/decrypt.go:139.2,142.69 4 11 +go.mozilla.org/pkcs7/decrypt.go:142.69,144.3 1 0 +go.mozilla.org/pkcs7/decrypt.go:145.2,145.23 1 11 +go.mozilla.org/pkcs7/decrypt.go:148.55,149.18 1 11 +go.mozilla.org/pkcs7/decrypt.go:149.18,151.3 1 0 +go.mozilla.org/pkcs7/decrypt.go:152.2,152.47 1 11 +go.mozilla.org/pkcs7/decrypt.go:152.47,154.3 1 0 +go.mozilla.org/pkcs7/decrypt.go:157.2,161.30 3 11 +go.mozilla.org/pkcs7/decrypt.go:161.30,162.30 1 100 +go.mozilla.org/pkcs7/decrypt.go:162.30,164.4 1 0 +go.mozilla.org/pkcs7/decrypt.go:167.2,167.37 1 11 +go.mozilla.org/pkcs7/decrypt.go:170.102,171.34 1 16 +go.mozilla.org/pkcs7/decrypt.go:171.34,172.70 1 16 +go.mozilla.org/pkcs7/decrypt.go:172.70,174.4 1 16 +go.mozilla.org/pkcs7/decrypt.go:176.2,176.24 1 0 +go.mozilla.org/pkcs7/encrypt.go:80.87,83.36 3 7 +go.mozilla.org/pkcs7/encrypt.go:84.36,86.42 2 4 +go.mozilla.org/pkcs7/encrypt.go:87.36,89.42 2 3 +go.mozilla.org/pkcs7/encrypt.go:90.10,91.117 1 0 +go.mozilla.org/pkcs7/encrypt.go:93.2,93.16 1 7 +go.mozilla.org/pkcs7/encrypt.go:93.16,98.17 3 6 +go.mozilla.org/pkcs7/encrypt.go:98.17,100.4 1 0 +go.mozilla.org/pkcs7/encrypt.go:104.2,107.16 3 7 +go.mozilla.org/pkcs7/encrypt.go:107.16,109.3 1 0 +go.mozilla.org/pkcs7/encrypt.go:112.2,113.16 2 7 +go.mozilla.org/pkcs7/encrypt.go:113.16,115.3 1 0 +go.mozilla.org/pkcs7/encrypt.go:117.2,118.16 2 7 +go.mozilla.org/pkcs7/encrypt.go:118.16,120.3 1 0 +go.mozilla.org/pkcs7/encrypt.go:122.2,131.16 4 7 +go.mozilla.org/pkcs7/encrypt.go:131.16,133.3 1 0 +go.mozilla.org/pkcs7/encrypt.go:135.2,147.23 2 7 +go.mozilla.org/pkcs7/encrypt.go:150.87,151.16 1 4 +go.mozilla.org/pkcs7/encrypt.go:151.16,156.17 3 3 +go.mozilla.org/pkcs7/encrypt.go:156.17,158.4 1 0 +go.mozilla.org/pkcs7/encrypt.go:162.2,164.16 3 4 +go.mozilla.org/pkcs7/encrypt.go:164.16,166.3 1 0 +go.mozilla.org/pkcs7/encrypt.go:169.2,170.16 2 4 +go.mozilla.org/pkcs7/encrypt.go:170.16,172.3 1 0 +go.mozilla.org/pkcs7/encrypt.go:173.2,175.16 3 4 +go.mozilla.org/pkcs7/encrypt.go:175.16,177.3 1 0 +go.mozilla.org/pkcs7/encrypt.go:178.2,191.23 4 4 +go.mozilla.org/pkcs7/encrypt.go:194.87,197.36 3 6 +go.mozilla.org/pkcs7/encrypt.go:198.36,200.42 2 3 +go.mozilla.org/pkcs7/encrypt.go:201.36,203.42 2 3 +go.mozilla.org/pkcs7/encrypt.go:204.10,205.117 1 0 +go.mozilla.org/pkcs7/encrypt.go:208.2,208.16 1 6 +go.mozilla.org/pkcs7/encrypt.go:208.16,213.17 3 6 +go.mozilla.org/pkcs7/encrypt.go:213.17,215.4 1 0 +go.mozilla.org/pkcs7/encrypt.go:219.2,221.16 3 6 +go.mozilla.org/pkcs7/encrypt.go:221.16,223.3 1 0 +go.mozilla.org/pkcs7/encrypt.go:226.2,227.16 2 6 +go.mozilla.org/pkcs7/encrypt.go:227.16,229.3 1 0 +go.mozilla.org/pkcs7/encrypt.go:230.2,232.16 3 6 +go.mozilla.org/pkcs7/encrypt.go:232.16,234.3 1 0 +go.mozilla.org/pkcs7/encrypt.go:235.2,248.23 4 6 +go.mozilla.org/pkcs7/encrypt.go:262.78,268.36 4 15 +go.mozilla.org/pkcs7/encrypt.go:269.33,270.46 1 3 +go.mozilla.org/pkcs7/encrypt.go:271.36,272.14 1 3 +go.mozilla.org/pkcs7/encrypt.go:273.36,274.46 1 6 +go.mozilla.org/pkcs7/encrypt.go:275.36,276.14 1 3 +go.mozilla.org/pkcs7/encrypt.go:277.36,278.46 1 6 +go.mozilla.org/pkcs7/encrypt.go:280.10,281.48 1 0 +go.mozilla.org/pkcs7/encrypt.go:284.2,284.16 1 15 +go.mozilla.org/pkcs7/encrypt.go:284.16,286.3 1 0 +go.mozilla.org/pkcs7/encrypt.go:289.2,290.39 2 15 +go.mozilla.org/pkcs7/encrypt.go:290.39,292.17 2 15 +go.mozilla.org/pkcs7/encrypt.go:292.17,294.4 1 0 +go.mozilla.org/pkcs7/encrypt.go:295.3,296.17 2 15 +go.mozilla.org/pkcs7/encrypt.go:296.17,298.4 1 0 +go.mozilla.org/pkcs7/encrypt.go:299.3,307.27 2 15 +go.mozilla.org/pkcs7/encrypt.go:311.2,317.16 3 15 +go.mozilla.org/pkcs7/encrypt.go:317.16,319.3 1 0 +go.mozilla.org/pkcs7/encrypt.go:322.2,327.30 2 15 +go.mozilla.org/pkcs7/encrypt.go:332.66,336.16 3 2 +go.mozilla.org/pkcs7/encrypt.go:336.16,338.3 1 0 +go.mozilla.org/pkcs7/encrypt.go:341.2,341.36 1 2 +go.mozilla.org/pkcs7/encrypt.go:342.33,343.44 1 1 +go.mozilla.org/pkcs7/encrypt.go:345.36,346.14 1 1 +go.mozilla.org/pkcs7/encrypt.go:347.36,348.44 1 1 +go.mozilla.org/pkcs7/encrypt.go:350.10,351.48 1 0 +go.mozilla.org/pkcs7/encrypt.go:354.2,354.16 1 2 +go.mozilla.org/pkcs7/encrypt.go:354.16,356.3 1 0 +go.mozilla.org/pkcs7/encrypt.go:359.2,364.16 3 2 +go.mozilla.org/pkcs7/encrypt.go:364.16,366.3 1 0 +go.mozilla.org/pkcs7/encrypt.go:369.2,374.30 2 2 +go.mozilla.org/pkcs7/encrypt.go:377.60,380.2 2 17 +go.mozilla.org/pkcs7/encrypt.go:382.74,383.61 1 15 +go.mozilla.org/pkcs7/encrypt.go:383.61,385.3 1 15 +go.mozilla.org/pkcs7/encrypt.go:386.2,386.37 1 0 +go.mozilla.org/pkcs7/encrypt.go:389.53,390.18 1 12 +go.mozilla.org/pkcs7/encrypt.go:390.18,392.3 1 0 +go.mozilla.org/pkcs7/encrypt.go:393.2,394.17 2 12 +go.mozilla.org/pkcs7/encrypt.go:394.17,396.3 1 0 +go.mozilla.org/pkcs7/encrypt.go:397.2,398.34 2 12 +go.mozilla.org/pkcs7/pkcs7.go:85.68,86.9 1 1722 +go.mozilla.org/pkcs7/pkcs7.go:89.40,90.26 1 399 +go.mozilla.org/pkcs7/pkcs7.go:91.85,92.28 1 735 +go.mozilla.org/pkcs7/pkcs7.go:93.85,94.28 1 196 +go.mozilla.org/pkcs7/pkcs7.go:95.85,96.28 1 392 +go.mozilla.org/pkcs7/pkcs7.go:98.2,98.48 1 0 +go.mozilla.org/pkcs7/pkcs7.go:103.106,104.19 1 686 +go.mozilla.org/pkcs7/pkcs7.go:105.44,106.37 1 196 +go.mozilla.org/pkcs7/pkcs7.go:107.48,108.39 1 196 +go.mozilla.org/pkcs7/pkcs7.go:109.48,110.39 1 98 +go.mozilla.org/pkcs7/pkcs7.go:111.48,112.39 1 196 +go.mozilla.org/pkcs7/pkcs7.go:114.2,114.85 1 0 +go.mozilla.org/pkcs7/pkcs7.go:119.126,120.21 1 688 +go.mozilla.org/pkcs7/pkcs7.go:121.23,122.10 1 295 +go.mozilla.org/pkcs7/pkcs7.go:123.11,124.41 1 0 +go.mozilla.org/pkcs7/pkcs7.go:125.54,126.41 1 0 +go.mozilla.org/pkcs7/pkcs7.go:127.51,128.45 1 99 +go.mozilla.org/pkcs7/pkcs7.go:129.53,130.47 1 98 +go.mozilla.org/pkcs7/pkcs7.go:131.53,132.47 1 0 +go.mozilla.org/pkcs7/pkcs7.go:133.53,134.47 1 98 +go.mozilla.org/pkcs7/pkcs7.go:136.25,137.10 1 392 +go.mozilla.org/pkcs7/pkcs7.go:138.51,139.43 1 98 +go.mozilla.org/pkcs7/pkcs7.go:140.53,141.45 1 98 +go.mozilla.org/pkcs7/pkcs7.go:142.53,143.45 1 98 +go.mozilla.org/pkcs7/pkcs7.go:144.53,145.45 1 98 +go.mozilla.org/pkcs7/pkcs7.go:147.23,148.36 1 1 +go.mozilla.org/pkcs7/pkcs7.go:150.2,150.112 1 0 +go.mozilla.org/pkcs7/pkcs7.go:155.48,156.20 1 1052 +go.mozilla.org/pkcs7/pkcs7.go:156.20,158.3 1 0 +go.mozilla.org/pkcs7/pkcs7.go:159.2,161.16 3 1052 +go.mozilla.org/pkcs7/pkcs7.go:161.16,163.3 1 0 +go.mozilla.org/pkcs7/pkcs7.go:164.2,165.19 2 1052 +go.mozilla.org/pkcs7/pkcs7.go:165.19,168.3 2 0 +go.mozilla.org/pkcs7/pkcs7.go:169.2,169.16 1 1052 +go.mozilla.org/pkcs7/pkcs7.go:169.16,171.3 1 0 +go.mozilla.org/pkcs7/pkcs7.go:174.2,174.9 1 1052 +go.mozilla.org/pkcs7/pkcs7.go:175.45,176.45 1 1034 +go.mozilla.org/pkcs7/pkcs7.go:177.48,178.48 1 16 +go.mozilla.org/pkcs7/pkcs7.go:179.48,180.48 1 2 +go.mozilla.org/pkcs7/pkcs7.go:182.2,182.39 1 0 +go.mozilla.org/pkcs7/pkcs7.go:185.54,187.53 2 16 +go.mozilla.org/pkcs7/pkcs7.go:187.53,189.3 1 0 +go.mozilla.org/pkcs7/pkcs7.go:190.2,192.8 1 16 +go.mozilla.org/pkcs7/pkcs7.go:195.54,197.53 2 2 +go.mozilla.org/pkcs7/pkcs7.go:197.53,199.3 1 0 +go.mozilla.org/pkcs7/pkcs7.go:200.2,202.8 1 2 +go.mozilla.org/pkcs7/pkcs7.go:205.65,206.23 1 1034 +go.mozilla.org/pkcs7/pkcs7.go:206.23,208.3 1 0 +go.mozilla.org/pkcs7/pkcs7.go:210.2,211.57 2 1034 +go.mozilla.org/pkcs7/pkcs7.go:211.57,213.3 1 0 +go.mozilla.org/pkcs7/pkcs7.go:215.2,215.42 1 1034 +go.mozilla.org/pkcs7/pkcs7.go:218.86,220.2 1 2082 +go.mozilla.org/pkcs7/pkcs7.go:235.81,238.2 2 2062 +go.mozilla.org/pkcs7/pkcs7.go:247.34,249.2 1 1374 +go.mozilla.org/pkcs7/pkcs7.go:251.44,253.2 1 2064 +go.mozilla.org/pkcs7/pkcs7.go:255.39,257.2 1 690 +go.mozilla.org/pkcs7/pkcs7.go:259.49,261.26 2 1374 +go.mozilla.org/pkcs7/pkcs7.go:261.26,263.3 1 2062 +go.mozilla.org/pkcs7/pkcs7.go:264.2,264.14 1 1374 +go.mozilla.org/pkcs7/pkcs7.go:267.64,269.27 2 1374 +go.mozilla.org/pkcs7/pkcs7.go:269.27,273.17 4 2062 +go.mozilla.org/pkcs7/pkcs7.go:273.17,275.4 1 0 +go.mozilla.org/pkcs7/pkcs7.go:276.3,281.17 3 2062 +go.mozilla.org/pkcs7/pkcs7.go:281.17,283.4 1 0 +go.mozilla.org/pkcs7/pkcs7.go:284.3,287.4 1 2062 +go.mozilla.org/pkcs7/pkcs7.go:289.2,290.36 2 1374 +go.mozilla.org/pkcs7/sign.go:29.54,31.16 2 688 +go.mozilla.org/pkcs7/sign.go:31.16,33.3 1 0 +go.mozilla.org/pkcs7/sign.go:34.2,42.80 3 688 +go.mozilla.org/pkcs7/sign.go:75.59,79.16 2 1721 +go.mozilla.org/pkcs7/sign.go:79.16,81.3 1 0 +go.mozilla.org/pkcs7/sign.go:84.2,86.23 3 1721 +go.mozilla.org/pkcs7/sign.go:101.67,103.2 1 686 +go.mozilla.org/pkcs7/sign.go:108.71,110.2 1 0 +go.mozilla.org/pkcs7/sign.go:113.110,116.2 2 1 +go.mozilla.org/pkcs7/sign.go:126.144,133.23 3 687 +go.mozilla.org/pkcs7/sign.go:133.23,136.3 1 1 +go.mozilla.org/pkcs7/sign.go:136.8,138.17 2 686 +go.mozilla.org/pkcs7/sign.go:138.17,140.4 1 0 +go.mozilla.org/pkcs7/sign.go:142.3,142.67 1 686 +go.mozilla.org/pkcs7/sign.go:144.2,148.16 3 687 +go.mozilla.org/pkcs7/sign.go:148.16,150.3 1 0 +go.mozilla.org/pkcs7/sign.go:151.2,155.16 5 687 +go.mozilla.org/pkcs7/sign.go:155.16,157.3 1 0 +go.mozilla.org/pkcs7/sign.go:158.2,162.52 5 687 +go.mozilla.org/pkcs7/sign.go:162.52,164.3 1 1 +go.mozilla.org/pkcs7/sign.go:165.2,166.16 2 687 +go.mozilla.org/pkcs7/sign.go:166.16,168.3 1 0 +go.mozilla.org/pkcs7/sign.go:169.2,170.54 2 687 +go.mozilla.org/pkcs7/sign.go:170.54,172.3 1 0 +go.mozilla.org/pkcs7/sign.go:173.2,174.16 2 687 +go.mozilla.org/pkcs7/sign.go:174.16,176.3 1 0 +go.mozilla.org/pkcs7/sign.go:178.2,179.16 2 687 +go.mozilla.org/pkcs7/sign.go:179.16,181.3 1 0 +go.mozilla.org/pkcs7/sign.go:182.2,192.22 3 687 +go.mozilla.org/pkcs7/sign.go:192.22,194.3 1 686 +go.mozilla.org/pkcs7/sign.go:195.2,196.12 2 687 +go.mozilla.org/pkcs7/sign.go:206.116,210.16 4 1 +go.mozilla.org/pkcs7/sign.go:210.16,212.3 1 0 +go.mozilla.org/pkcs7/sign.go:213.2,216.29 4 1 +go.mozilla.org/pkcs7/sign.go:217.23,221.17 2 1 +go.mozilla.org/pkcs7/sign.go:221.17,223.4 1 0 +go.mozilla.org/pkcs7/sign.go:224.3,225.17 2 1 +go.mozilla.org/pkcs7/sign.go:225.17,227.4 1 0 +go.mozilla.org/pkcs7/sign.go:228.10,230.10 2 0 +go.mozilla.org/pkcs7/sign.go:230.10,232.4 1 0 +go.mozilla.org/pkcs7/sign.go:233.3,234.17 2 0 +go.mozilla.org/pkcs7/sign.go:234.17,236.4 1 0 +go.mozilla.org/pkcs7/sign.go:238.2,242.29 4 1 +go.mozilla.org/pkcs7/sign.go:242.29,246.3 1 1 +go.mozilla.org/pkcs7/sign.go:247.2,247.16 1 1 +go.mozilla.org/pkcs7/sign.go:247.16,249.3 1 0 +go.mozilla.org/pkcs7/sign.go:250.2,260.12 4 1 +go.mozilla.org/pkcs7/sign.go:263.90,265.42 2 0 +go.mozilla.org/pkcs7/sign.go:265.42,267.3 1 0 +go.mozilla.org/pkcs7/sign.go:268.2,269.16 2 0 +go.mozilla.org/pkcs7/sign.go:269.16,271.3 1 0 +go.mozilla.org/pkcs7/sign.go:273.2,275.12 2 0 +go.mozilla.org/pkcs7/sign.go:279.62,281.2 1 0 +go.mozilla.org/pkcs7/sign.go:285.32,287.2 1 344 +go.mozilla.org/pkcs7/sign.go:290.51,292.2 1 0 +go.mozilla.org/pkcs7/sign.go:295.48,298.16 3 688 +go.mozilla.org/pkcs7/sign.go:298.16,300.3 1 0 +go.mozilla.org/pkcs7/sign.go:301.2,305.28 2 688 +go.mozilla.org/pkcs7/sign.go:310.55,311.35 1 0 +go.mozilla.org/pkcs7/sign.go:311.35,313.3 1 0 +go.mozilla.org/pkcs7/sign.go:317.57,318.35 1 0 +go.mozilla.org/pkcs7/sign.go:318.35,320.3 1 0 +go.mozilla.org/pkcs7/sign.go:327.84,328.23 1 686 +go.mozilla.org/pkcs7/sign.go:328.23,330.3 1 0 +go.mozilla.org/pkcs7/sign.go:331.2,332.16 2 686 +go.mozilla.org/pkcs7/sign.go:332.16,334.3 1 0 +go.mozilla.org/pkcs7/sign.go:335.2,335.23 1 686 +go.mozilla.org/pkcs7/sign.go:335.23,338.3 1 686 +go.mozilla.org/pkcs7/sign.go:339.2,339.52 1 0 +go.mozilla.org/pkcs7/sign.go:342.76,350.2 4 15 +go.mozilla.org/pkcs7/sign.go:353.103,355.16 2 687 +go.mozilla.org/pkcs7/sign.go:355.16,357.3 1 0 +go.mozilla.org/pkcs7/sign.go:358.2,364.29 4 687 +go.mozilla.org/pkcs7/sign.go:365.23,367.17 2 0 +go.mozilla.org/pkcs7/sign.go:367.17,369.4 1 0 +go.mozilla.org/pkcs7/sign.go:370.3,370.42 1 0 +go.mozilla.org/pkcs7/sign.go:373.2,374.9 2 687 +go.mozilla.org/pkcs7/sign.go:374.9,376.3 1 0 +go.mozilla.org/pkcs7/sign.go:377.2,377.47 1 687 +go.mozilla.org/pkcs7/sign.go:385.69,387.29 2 688 +go.mozilla.org/pkcs7/sign.go:387.29,389.3 1 1374 +go.mozilla.org/pkcs7/sign.go:390.2,391.17 2 688 +go.mozilla.org/pkcs7/sign.go:397.69,400.16 3 689 +go.mozilla.org/pkcs7/sign.go:400.16,402.3 1 0 +go.mozilla.org/pkcs7/sign.go:403.2,403.37 1 689 +go.mozilla.org/pkcs7/sign.go:408.57,410.16 2 1 +go.mozilla.org/pkcs7/sign.go:410.16,412.3 1 0 +go.mozilla.org/pkcs7/sign.go:413.2,421.16 4 1 +go.mozilla.org/pkcs7/sign.go:421.16,423.3 1 0 +go.mozilla.org/pkcs7/sign.go:424.2,428.36 2 1 +go.mozilla.org/pkcs7/verify.go:16.39,18.2 1 3 +go.mozilla.org/pkcs7/verify.go:27.73,28.26 1 1033 +go.mozilla.org/pkcs7/verify.go:28.26,30.3 1 0 +go.mozilla.org/pkcs7/verify.go:31.2,31.36 1 1033 +go.mozilla.org/pkcs7/verify.go:31.36,32.65 1 1033 +go.mozilla.org/pkcs7/verify.go:32.65,34.4 1 0 +go.mozilla.org/pkcs7/verify.go:36.2,36.12 1 1033 +go.mozilla.org/pkcs7/verify.go:45.102,46.26 1 3 +go.mozilla.org/pkcs7/verify.go:46.26,48.3 1 0 +go.mozilla.org/pkcs7/verify.go:49.2,49.36 1 3 +go.mozilla.org/pkcs7/verify.go:49.36,50.84 1 3 +go.mozilla.org/pkcs7/verify.go:50.84,52.4 1 2 +go.mozilla.org/pkcs7/verify.go:54.2,54.12 1 1 +go.mozilla.org/pkcs7/verify.go:57.120,60.15 3 3 +go.mozilla.org/pkcs7/verify.go:60.15,62.3 1 0 +go.mozilla.org/pkcs7/verify.go:63.2,63.45 1 3 +go.mozilla.org/pkcs7/verify.go:63.45,70.17 3 3 +go.mozilla.org/pkcs7/verify.go:70.17,72.4 1 0 +go.mozilla.org/pkcs7/verify.go:73.3,74.17 2 3 +go.mozilla.org/pkcs7/verify.go:74.17,76.4 1 0 +go.mozilla.org/pkcs7/verify.go:77.3,80.56 4 3 +go.mozilla.org/pkcs7/verify.go:80.56,85.4 1 0 +go.mozilla.org/pkcs7/verify.go:86.3,87.17 2 3 +go.mozilla.org/pkcs7/verify.go:87.17,89.4 1 0 +go.mozilla.org/pkcs7/verify.go:90.3,91.17 2 3 +go.mozilla.org/pkcs7/verify.go:91.17,93.74 1 3 +go.mozilla.org/pkcs7/verify.go:93.74,98.5 1 0 +go.mozilla.org/pkcs7/verify.go:101.2,101.23 1 3 +go.mozilla.org/pkcs7/verify.go:101.23,103.17 2 3 +go.mozilla.org/pkcs7/verify.go:103.17,105.4 1 2 +go.mozilla.org/pkcs7/verify.go:107.2,108.16 2 1 +go.mozilla.org/pkcs7/verify.go:108.16,110.3 1 0 +go.mozilla.org/pkcs7/verify.go:111.2,111.70 1 1 +go.mozilla.org/pkcs7/verify.go:114.91,117.15 3 1033 +go.mozilla.org/pkcs7/verify.go:117.15,119.3 1 0 +go.mozilla.org/pkcs7/verify.go:120.2,121.45 2 1033 +go.mozilla.org/pkcs7/verify.go:121.45,125.17 3 1031 +go.mozilla.org/pkcs7/verify.go:125.17,127.4 1 0 +go.mozilla.org/pkcs7/verify.go:128.3,129.17 2 1031 +go.mozilla.org/pkcs7/verify.go:129.17,131.4 1 0 +go.mozilla.org/pkcs7/verify.go:132.3,135.56 4 1031 +go.mozilla.org/pkcs7/verify.go:135.56,140.4 1 0 +go.mozilla.org/pkcs7/verify.go:141.3,142.17 2 1031 +go.mozilla.org/pkcs7/verify.go:142.17,144.4 1 0 +go.mozilla.org/pkcs7/verify.go:145.3,146.17 2 1031 +go.mozilla.org/pkcs7/verify.go:146.17,148.74 1 1031 +go.mozilla.org/pkcs7/verify.go:148.74,153.5 1 0 +go.mozilla.org/pkcs7/verify.go:156.2,156.23 1 1033 +go.mozilla.org/pkcs7/verify.go:156.23,158.17 2 1030 +go.mozilla.org/pkcs7/verify.go:158.17,160.4 1 0 +go.mozilla.org/pkcs7/verify.go:162.2,163.16 2 1033 +go.mozilla.org/pkcs7/verify.go:163.16,165.3 1 0 +go.mozilla.org/pkcs7/verify.go:166.2,166.70 1 1033 +go.mozilla.org/pkcs7/verify.go:171.52,172.26 1 0 +go.mozilla.org/pkcs7/verify.go:172.26,174.3 1 0 +go.mozilla.org/pkcs7/verify.go:175.2,176.89 2 0 +go.mozilla.org/pkcs7/verify.go:180.103,182.9 2 1 +go.mozilla.org/pkcs7/verify.go:182.9,184.3 1 0 +go.mozilla.org/pkcs7/verify.go:185.2,185.29 1 1 +go.mozilla.org/pkcs7/verify.go:185.29,187.3 1 0 +go.mozilla.org/pkcs7/verify.go:188.2,189.59 2 1 +go.mozilla.org/pkcs7/verify.go:192.51,196.16 4 1034 +go.mozilla.org/pkcs7/verify.go:196.16,198.3 1 0 +go.mozilla.org/pkcs7/verify.go:201.2,205.43 3 1034 +go.mozilla.org/pkcs7/verify.go:205.43,206.84 1 689 +go.mozilla.org/pkcs7/verify.go:206.84,208.4 1 0 +go.mozilla.org/pkcs7/verify.go:211.2,211.25 1 1034 +go.mozilla.org/pkcs7/verify.go:211.25,212.24 1 0 +go.mozilla.org/pkcs7/verify.go:212.24,213.69 1 0 +go.mozilla.org/pkcs7/verify.go:213.69,215.5 1 0 +go.mozilla.org/pkcs7/verify.go:216.9,218.4 1 0 +go.mozilla.org/pkcs7/verify.go:219.8,222.3 1 1034 +go.mozilla.org/pkcs7/verify.go:223.2,228.25 1 1034 +go.mozilla.org/pkcs7/verify.go:236.163,238.37 2 1377 +go.mozilla.org/pkcs7/verify.go:238.37,240.3 1 2754 +go.mozilla.org/pkcs7/verify.go:241.2,248.16 3 1377 +go.mozilla.org/pkcs7/verify.go:248.16,250.3 1 2 +go.mozilla.org/pkcs7/verify.go:251.2,251.8 1 1375 +go.mozilla.org/pkcs7/verify.go:261.55,263.2 1 0 +go.mozilla.org/pkcs7/verify.go:265.112,266.9 1 1034 +go.mozilla.org/pkcs7/verify.go:267.69,268.33 1 98 +go.mozilla.org/pkcs7/verify.go:269.71,270.35 1 294 +go.mozilla.org/pkcs7/verify.go:271.71,272.35 1 98 +go.mozilla.org/pkcs7/verify.go:273.71,274.35 1 99 +go.mozilla.org/pkcs7/verify.go:279.69,280.10 1 445 +go.mozilla.org/pkcs7/verify.go:281.55,282.32 1 102 +go.mozilla.org/pkcs7/verify.go:283.57,284.34 1 245 +go.mozilla.org/pkcs7/verify.go:285.57,286.34 1 0 +go.mozilla.org/pkcs7/verify.go:287.57,288.34 1 98 +go.mozilla.org/pkcs7/verify.go:289.11,291.68 1 0 +go.mozilla.org/pkcs7/verify.go:294.63,295.10 1 0 +go.mozilla.org/pkcs7/verify.go:296.55,297.32 1 0 +go.mozilla.org/pkcs7/verify.go:298.57,299.34 1 0 +go.mozilla.org/pkcs7/verify.go:300.11,302.68 1 0 +go.mozilla.org/pkcs7/verify.go:306.69,307.10 1 0 +go.mozilla.org/pkcs7/verify.go:308.55,309.34 1 0 +go.mozilla.org/pkcs7/verify.go:310.57,311.36 1 0 +go.mozilla.org/pkcs7/verify.go:312.57,313.36 1 0 +go.mozilla.org/pkcs7/verify.go:314.57,315.36 1 0 +go.mozilla.org/pkcs7/verify.go:316.11,318.68 1 0 +go.mozilla.org/pkcs7/verify.go:320.10,322.40 1 0 +go.mozilla.org/pkcs7/verify.go:326.106,327.29 1 1380 +go.mozilla.org/pkcs7/verify.go:327.29,328.47 1 2066 +go.mozilla.org/pkcs7/verify.go:328.47,330.4 1 1380 +go.mozilla.org/pkcs7/verify.go:332.2,332.12 1 0 +go.mozilla.org/pkcs7/verify.go:335.104,336.29 1 2069 +go.mozilla.org/pkcs7/verify.go:336.29,337.37 1 5171 +go.mozilla.org/pkcs7/verify.go:337.37,340.4 2 2069 +go.mozilla.org/pkcs7/verify.go:342.2,342.62 1 0 +go.mozilla.org/pkcs7/verify_test_dsa.go:15.34,18.16 3 0 +go.mozilla.org/pkcs7/verify_test_dsa.go:18.16,20.3 1 0 +go.mozilla.org/pkcs7/verify_test_dsa.go:21.2,22.36 2 0 +go.mozilla.org/pkcs7/verify_test_dsa.go:22.36,24.3 1 0 +go.mozilla.org/pkcs7/verify_test_dsa.go:66.52,73.16 3 0 +go.mozilla.org/pkcs7/verify_test_dsa.go:73.16,75.3 1 0 +go.mozilla.org/pkcs7/verify_test_dsa.go:76.2,80.16 3 0 +go.mozilla.org/pkcs7/verify_test_dsa.go:80.16,82.3 1 0 +go.mozilla.org/pkcs7/verify_test_dsa.go:83.2,87.16 3 0 +go.mozilla.org/pkcs7/verify_test_dsa.go:87.16,89.3 1 0 +go.mozilla.org/pkcs7/verify_test_dsa.go:90.2,93.16 3 0 +go.mozilla.org/pkcs7/verify_test_dsa.go:93.16,95.3 1 0 +go.mozilla.org/pkcs7/verify_test_dsa.go:97.2,102.16 3 0 +go.mozilla.org/pkcs7/verify_test_dsa.go:102.16,104.3 1 0 +go.mozilla.org/pkcs7/verify_test_dsa.go:107.2,108.16 2 0 +go.mozilla.org/pkcs7/verify_test_dsa.go:108.16,110.3 1 0 +go.mozilla.org/pkcs7/verify_test_dsa.go:111.2,113.21 3 0 +go.mozilla.org/pkcs7/verify_test_dsa.go:113.21,115.3 1 0 +go.mozilla.org/pkcs7/verify_test_dsa.go:116.2,117.16 2 0 +go.mozilla.org/pkcs7/verify_test_dsa.go:117.16,119.3 1 0 +go.mozilla.org/pkcs7/verify_test_dsa.go:120.2,120.36 1 0 +go.mozilla.org/pkcs7/verify_test_dsa.go:120.36,122.3 1 0 +go.mozilla.org/pkcs7/verify_test_dsa.go:123.2,125.34 3 0 +go.mozilla.org/pkcs7/verify_test_dsa.go:164.66,168.6 4 0 +go.mozilla.org/pkcs7/verify_test_dsa.go:168.6,170.22 2 0 +go.mozilla.org/pkcs7/verify_test_dsa.go:170.22,171.9 1 0 +go.mozilla.org/pkcs7/verify_test_dsa.go:173.3,173.24 1 0 +go.mozilla.org/pkcs7/verify_test_dsa.go:174.16,175.33 1 0 +go.mozilla.org/pkcs7/verify_test_dsa.go:176.22,177.65 1 0 +go.mozilla.org/pkcs7/verify_test_dsa.go:181.2,181.15 1 0