Commit Graph

31 Commits

Author SHA1 Message Date
Matthew McPherrin caa29b2937
Update to zlint 3.6.6 (#8194)
v3.6.5 and v3.6.6 include several new lints and bugfixes.
Release notes at https://github.com/zmap/zlint/releases
2025-05-16 11:48:31 -07:00
Aaron Gable 0e5e1e98d1
Upgrade zlint v3.6.4 (#7897)
This brings in several new and useful lints. It also brings in one CABF
BR lint which we have to ignore in our default profile which includes
the Subject Key Identifier extension:
"w_ext_subject_key_identifier_not_recommended_subscriber". In our modern
profile which omits several fields, we have to ignore the opposite
RFC5280 lint "w_ext_subject_key_identifier_missing_sub_cert".

Release notes: https://github.com/zmap/zlint/releases/tag/v3.6.4
Changelog: https://github.com/zmap/zlint/compare/v3.6.0...v3.6.4
Note that the majority of the ~400 file changes are merely copyright
date changes.

The corresponding production config changes tracked in IN-10466 are
complete.
2024-12-18 11:41:12 -08:00
Matthew McPherrin 56c10c613c
Update zlint (#7252)
Upgrade to zlint v3.6.0

Two new lints are triggered in various places:
aia_contains_internal_names is ignored in integration test
configurations, and unit tests are updated to have more realistic URLs.
The w_subject_common_name_included lint needs to be ignored where we'd
ignored n_subject_common_name_included before.

Related to https://github.com/letsencrypt/boulder/issues/7261
2024-01-16 11:50:37 -08:00
Aaron Gable cf770dfdef
Update zlint to v3.5.0 (#6977)
This brings in infrastructure to support linting CRLs.

Release notes: https://github.com/zmap/zlint/releases/tag/v3.5.0
Changelog: https://github.com/zmap/zlint/compare/v3.4.0...v3.5.0

Part of https://github.com/letsencrypt/boulder/issues/6934
2023-07-06 14:09:44 -04:00
Aaron Gable 30287f2848
Update zlint to v3.4.0 (#6462)
Thing brings in a number of new lints, including those which check for
correct encoding of the KeyUsage bitstring, which has led to incidents
for a number of CAs recently.
2022-10-21 14:54:13 -07:00
Aaron Gable ef9f0cdab5
Update go.mod go directive to 1.17 (#5950)
The `go` directive inside go.mod determines certain behaviors of
the go command. Since we're using go 1.17 everywhere, we should
update our module's go directive to reflect that, and update its contents
to match the new behavior.

Particularly, updating to 1.17 here means that all indirect dependencies
are listed directly inside go.mod (in a separate block, to keep things clean),
and the go.sum and go.mod files are deleted from vendored dependencies
so that the go tool can correctly find the root of the module even when run
from a vendored dependency's subdirectory.
2022-02-18 12:25:53 -08:00
Aaron Gable 011e453df6
Update zlint to check for reserved IDNs (#5743)
Update zlint from v3.2.0 to just past v3.3.0, pulling in both an update
to the zlint interface and a number of new and improved checks. In
particular, pull in `lint_dnsname_contains_prohibited_reserved_label`,
which checks that DNSNames do not begin with any two characters followed
by two dashes, unless those two leading characters are "xn".

Also, update our few custom lints to match the new zlint v3.3.0
interface.

Fixes #5720
2021-10-22 12:37:09 -07:00
Aaron Gable ff8c3c40f0
Update zlint to v3.2.0 (#5442)
Update zlint from v3.1.0 to v3.2.0:
https://github.com/zmap/zlint/compare/v3.1.0...v3.2.0
This update contains no breaking changes, and has no effect
on our issuance.

This transitively updates the zcrypto and publicsuffix-go libraries
as well:
9cf5beac...ea3fdbd5
d67cf1da...f2f762ef

Fixes #5430
2021-06-08 13:02:09 -07:00
Aaron Gable 8e3c5325c6
Update zlint to v3.1.0 (#5373)
Update the pinned version of zlint from v2.2.1 to v3.1.0.
Also update the relevant path from v2 to v3 in both go.mod
and in individual imports. Update the vendored files to match.

No changes from v2.2.1 to v3.1.0 appear to affect the lints
we directly care about (e.g. those that we explicitly ignore).

Fixes #5206
2021-03-31 11:42:01 -07:00
Jacob Hoffman-Andrews 88c7b10625
Update to zlint 2.2.1 (#5128)
Successfully ran tests:

```
$ go test github.com/zmap/zlint/v2/...
$ go test golang.org/x/text/...
```
2020-10-16 14:41:34 -07:00
Aaron Gable 91898e51a0
Update zlint to include changes from SC31 (#5064)
This brings in the following changes to zlint:
https://github.com/zmap/zlint/compare/v2.1.0...9ab0643

Importantly, this prevents the cert lifetime lint from triggering on
CA certs, and removes the OCSP url requirement lint entirely.
2020-08-31 11:53:23 -07:00
Jacob Hoffman-Andrews 8f7a6eb8d2
Upgrade to zlint 2.1. (#4854) 2020-06-09 14:03:40 -07:00
Jacob Hoffman-Andrews f3e48d6931
Move cert-checker to zlint v2. (#4779)
And run go mod tidy, which removes v1 of zlint from our go.mod.
2020-04-15 17:35:15 -07:00
Jacob Hoffman-Andrews 9e2e08ece6
Update cfssl to latest. (#4719)
This pulls in an upgrade to zlint 2.0.0.
2020-03-26 10:11:05 -07:00
Daniel McCarney 10863e8e05
deps: update weppos/publicsuffix-go and zmap/zlint to latest. (#4604)
* deps: update publicsuffix-go to 342bab7

This updates `github.com/weppos/publicsuffix-go` to 342bab7, the tip of
master at the time of writing.

Unit tests are confirmed to pass:
```
~/go/src/github.com/weppos/publicsuffix-go$ git log --pretty=format:'%h' -n 1
342bab7

~/go/src/github.com/weppos/publicsuffix-go$ go test ./...
?       github.com/weppos/publicsuffix-go/cmd/load      [no test files]
ok      github.com/weppos/publicsuffix-go/net/publicsuffix      0.023s
ok      github.com/weppos/publicsuffix-go/publicsuffix  0.015s
?       github.com/weppos/publicsuffix-go/publicsuffix/generator [no test files]
```

* deps: update zmap/zlint to 71201e7

This updates `github.com/zmap/zlint` to 71201e7, the tip of master at
the time of writing.

Unit tests are confirmed to pass:
```
~/go/src/github.com/zmap/zlint$  git log --pretty=format:'%h' -n 1
71201e7

~/go/src/github.com/zmap/zlint$ go test ./...
ok  	github.com/zmap/zlint	0.205s
?   	github.com/zmap/zlint/cmd/zlint	[no test files]
?   	github.com/zmap/zlint/cmd/zlint-gtld-update	[no test files]
ok  	github.com/zmap/zlint/lints	0.214s
ok  	github.com/zmap/zlint/util	0.014s
```
2019-12-09 15:46:34 -05:00
Daniel McCarney 4c2613a8e5 deps: update weppos/publicsuffix-go and zmap/zlint. (#4563)
Updates `github.com/weppos/publicsuffix-go` to 3dd5f42, and
`github.com/zmap/zlint` to eea5fe8. Both hashes are the tip of master at
the time of writing.

Unit tests are confirmed to pass:
```
~/go/src/github.com/weppos/publicsuffix-go$ git log --pretty=format:'%h' -n 1
3dd5f42

~/go/src/github.com/weppos/publicsuffix-go$ go test ./...
?   	github.com/weppos/publicsuffix-go/cmd/load	[no test files]
ok  	github.com/weppos/publicsuffix-go/net/publicsuffix	0.008s
ok  	github.com/weppos/publicsuffix-go/publicsuffix	0.005s
?   	github.com/weppos/publicsuffix-go/publicsuffix/generator	[no test files]

~/go/src/github.com/zmap/zlint$ git log --pretty=format:'%h' -n 1
eea5fe8

~/go/src/github.com/zmap/zlint$ go test ./...
ok  	github.com/zmap/zlint	0.240s
?   	github.com/zmap/zlint/cmd/zlint	[no test files]
?   	github.com/zmap/zlint/cmd/zlint-gtld-update	[no test files]
ok  	github.com/zmap/zlint/lints	0.156s
ok  	github.com/zmap/zlint/util	0.020s
```
2019-11-20 19:31:22 -08:00
Daniel McCarney 92839da2e7
deps: update zlint to latest. (#4449) 2019-09-27 16:48:21 -04:00
Daniel McCarney 93902965e5 Add Go 1.13 support, temporarily disable TLS 1.3 default. (#4435)
A unit test is included to verify that a TLS-ALPN-01 challenge to
a TLS 1.3 only server doesn't succeed when the `GODEBUG` value to
disable TLS 1.3 in `docker-compose.yml` is set. Without this env var
the test fails on the Go 1.13 build because of the new default:

```
=== RUN   TestTLSALPN01TLS13
--- FAIL: TestTLSALPN01TLS13 (0.04s)
    tlsalpn_test.go:531: expected problem validating TLS-ALPN-01 challenge against a TLS 1.3 only server, got nil
    FAIL
    FAIL        github.com/letsencrypt/boulder/va       0.065s
```

With the env var set the test passes, getting the expected connection
problem reporting a tls error:

```
=== RUN   TestTLSALPN01TLS13
2019/09/13 18:59:00 http: TLS handshake error from 127.0.0.1:51240: tls: client offered only unsupported versions: [303 302 301]
--- PASS: TestTLSALPN01TLS13 (0.03s)
PASS
ok      github.com/letsencrypt/boulder/va       1.054s
```

Since we plan to eventually enable TLS 1.3 support and the `GODEBUG`
mechanism tested in the above test is platform-wide vs package
specific I decided it wasn't worth the time investment to write a
similar HTTP-01 unit test that verifies the TLS 1.3 behaviour on a
HTTP-01 HTTP->HTTPS redirect.

Resolves https://github.com/letsencrypt/boulder/issues/4415
2019-09-17 11:00:58 -07:00
Daniel McCarney a5936522d7
deps: update github.com/zmap/zlint to latest. (#4399)
* deps: update github.com/zmap/zlint to latest.

This captures a new lint (`e_subject_printable_string_badalpha`) that
addresses a historic Let's Encrypt incident related to the allowed
PrintableString character set. It also pulls in minor housekeeping
related to consistently prefixing lint names with their respective lint
result level.

* review: fix expected lint name in TestIgnoredLint.

The upstream `zlint` project added a missing `w_` prefix on the
`ct_sct_policy_count_unsatisifed` lint that needed to be reflected in
expected test output.
2019-08-13 13:05:29 -04:00
Daniel McCarney 8b518451b4 deps: update github.com/zmap/zlint to latest. (#4384)
* deps: update github.com/zmap/zlint to latest.

Update the `github.com/zmap/zlint` dependency to b126a9b. This captures
a small fix to the `ct_sct_policy_count_unsatisfied` lint that ensures
it isn't run for precertificates.

* config: remove ct_sct_policy_count_unsatisfied from ignored_lints.

With the latest `zlint` the `ct_sct_policy_count_unsatisfied` lint won't
flag precertificates as having an info-level lint result for missing
SCTs. With that fix in place we no longer have to ignore this lint in
the config-next CA configs that enable preissuance linting.
2019-08-01 10:22:30 -07:00
Daniel McCarney 75dcac2272
deps: update github.com/zmap/zlint to latest. (#4375)
Notably this brings in:
* A mild perf. boost from an updated transitive zcrypto dep and a reworked util func.
* A new KeyUsage lint for ECDSA keys.
* Updated gTLD data.
* A required `LintStatus` deserialization fix that will unblock a CFSSL update.

The `TestIgnoredLint` unit test is updated to no longer expect a warning from the 
` w_serial_number_low_entropy` lint. This lint was removed in the upstream project.
2019-07-31 13:10:44 -04:00
Daniel McCarney 3de2831c32
deps: update github.com/zmap/zlint to tip of master. (#4254)
* tld data updates
* new lints:
  * .arpa reverse DNS subjects lint
  * QcStatements lint
  * Onion subject linting
  * Informational embedded SCT policy lint
  * RFC 4055 RSA algorithm identifier parameter linting
2019-06-10 12:58:11 -04:00
Jacob Hoffman-Andrews 1014a81606 Switch to modules (#4211)
Because the package versions in go.mod match what we use in Godeps.json,
there are no substantive code diffs. However, there are some tiny
differences resulting from how go mod vendors things differently than
godep:

go mod does not preserve executable permissions on shell scripts
Some packages have import lines like:
package ocsp // import "golang.org/x/crypto/ocsp"

godep used to remove the comment from these lines, but go mod vendor does not.

This introduces several indirect dependencies that we didn't have
before. This is because godep used to operate at a package level, but
go mod operates at a module (~= repository) level. So if we used a
given repository, but didn't use all of its packages, we wouldn't
previously care about the transitive dependencies of the packages we
weren't using. However, in the go mod world, once we care about the
repository, we care about all of that repository's transitive
dependencies. AFAICT this doesn't affect vendoring.

Fixes #4116
2019-05-23 14:14:00 -07:00
Daniel McCarney b88681737a Godeps: Bump zlint to f38bd22. (#4063) (#4065)
The vendored copy of `github.com/zmap/zlint` is updated to
f38bd22 - the tip of master at the time of writing.

This pulls in a new deprecated gTLD: `.active`.

Unit tests are confirmed to pass:

```
~/go/src/github.com/zmap/zlint$ git log --pretty=format:'%h' -n 1
f38bd22

~/go/src/github.com/zmap/zlint$ go test ./...
ok    github.com/zmap/zlint 0.220s
?     github.com/zmap/zlint/cmd/zlint [no test files]
?     github.com/zmap/zlint/cmd/zlint-gtld-update [no test files]
ok    github.com/zmap/zlint/lints 0.270s
ok    github.com/zmap/zlint/util  0.015s
```
2019-02-19 11:19:31 -08:00
Daniel McCarney 41adb1cef9 Godeps: Bump zlint to b2aa746. (#4063)
The vendored copy of `github.com/zmap/zlint` is updated to b2aa746 - the
tip of master at the time of writing.

This pulls in two deprecated gTLDs (`.zippo`, `.epost`).

```
~/go/src/github.com/zmap/zlint$ git log --pretty=format:'%h' -n 1
b2aa746

~/go/src/github.com/zmap/zlint$ go test ./...
ok    github.com/zmap/zlint 0.212s
?     github.com/zmap/zlint/cmd/zlint [no test files]
?     github.com/zmap/zlint/cmd/zlint-gtld-update [no test files]
ok    github.com/zmap/zlint/lints 0.210s
ok    github.com/zmap/zlint/util  0.006s
```
2019-02-15 14:16:22 -08:00
Daniel McCarney 2b65b61c7c Godeps: Bump zlint to fbc0b69. (#4057)
The vendored copy of `github.com/zmap/zlint` is updated to fbc0b69 - the
tip of master at the time of writing.

This pulls in a deprecated gTLD (`.blanco`).

Unit tests are confirmed to pass:
```
~/go/src/github.com/zmap/zlint$ git log --pretty=format:'%h' -n 1
fbc0b69

~/go/src/github.com/zmap/zlint$ go test ./...
ok    github.com/zmap/zlint 0.215s
?     github.com/zmap/zlint/cmd/zlint [no test files]
?     github.com/zmap/zlint/cmd/zlint-gtld-update [no test files]
ok    github.com/zmap/zlint/lints 0.270s
ok    github.com/zmap/zlint/util  0.007s
```
2019-02-14 12:43:33 -08:00
Daniel McCarney 29a7f96d18 Godeps: Bump zlint to bb32118 (#4045)
The vendored copy of `github.com/zmap/zlint` is updated to bb32118 - the
tip of master at the time of writing.

This pulls in an updated `gtld_map.go` and a few new lints.

Unit tests are confirmed to pass:
```
$ go test ./...
ok    github.com/zmap/zlint (cached)
?     github.com/zmap/zlint/cmd/zlint [no test files]
?     github.com/zmap/zlint/cmd/zlint-gtld-update [no test files]
ok    github.com/zmap/zlint/lints (cached)
ok    github.com/zmap/zlint/util  (cached)
```
2019-02-11 10:47:29 -08:00
Daniel McCarney 0bfbab3bb4 This updates our zlint dependency to 34b7be2e59 - the tip of master at the time of writing. Notably this brings in a gTLD map update that marks several TLDs as removed. (#3866)
Unit tests are confirmed to pass:
```
$> git rev-parse HEAD
34b7be2e59081f4bbe6970785e021e6bf0741f2a

$> go test ./...
ok    github.com/zmap/zlint 0.224s
?     github.com/zmap/zlint/cmd/zlint [no test files]
?     github.com/zmap/zlint/cmd/zlint-gtld-update [no test files]
ok    github.com/zmap/zlint/lints 0.121s
ok    github.com/zmap/zlint/util  0.008s
```
2018-09-21 10:35:43 -07:00
Daniel McCarney 134dc68d14 Godeps: Update vendored zlint to 8093f21. (#3852)
This updates our zlint dependency to 8093f211c4 - the tip of master at the time of writing. Notably this brings in a gTLD map that has effective periods so cert-checker can catch issuance for removed gTLDs after their removal date. 

Unit tests are confirmed to pass:
```
$> git rev-parse HEAD
8093f211c43679b1ade744d238a02ba1f0c07371

$> go test ./...
ok      github.com/zmap/zlint   0.284s
?       github.com/zmap/zlint/cmd/zlint [no test files]
?       github.com/zmap/zlint/cmd/zlint-gtld-update     [no test files]
ok      github.com/zmap/zlint/lints     0.165s
ok      github.com/zmap/zlint/util      0.005s
```
2018-09-11 18:43:26 -07:00
Daniel McCarney 4ed1ddb30e Godeps: Update zlint dependency to 02fe9a2 (tip of master) (#3822)
Notably this brings an [updated gTLD list](https://github.com/zmap/zlint/pull/233).

Tests are confirmed to pass:
```
go test ./...
ok    github.com/zmap/zlint 0.157s
?     github.com/zmap/zlint/cmd/zlint [no test files]
ok    github.com/zmap/zlint/lints 0.130s
ok    github.com/zmap/zlint/util  0.005s
```
2018-08-22 10:46:00 -07:00
Roland Bracewell Shoemaker 72949d5915
Switch from globalsign/certlint to zmap/zlint (#3745)
Switch linting library to zmap/zlint.

```
github.com/zmap/zlint$ go test ./...
ok  	github.com/zmap/zlint	0.190s
?   	github.com/zmap/zlint/cmd/zlint	[no test files]
ok  	github.com/zmap/zlint/lints	0.216s
ok  	github.com/zmap/zlint/util	(cached)
```
2018-06-04 17:47:06 -07:00