17 Commits
Author SHA1 Message Date
Nik Unger 68183f4853 Add and enforce copyright headers via linter
This commit normalizes copyright headers across the codebase.
2025-07-28 13:05:13 -04:00
Nik Unger 89abb046f6 Delete vendored ldap package in favor of upstream
`github.com/go-ldap/ldap/v3` now supports the two features that we
previously added to a local fork: extracting the TLS connection
state, and defining a connection timeout. This commit deletes the
fork and uses the upstream dependency.

This commit also adjusts the `certigo connect` TLS configuration to
support every cipher suite supported by `crypto/tls`, including
insecure ones. This improves the ability to extract certificates
from servers with poor cipher suite support. This limitation was
uncovered while testing LDAP connectivity.
2025-07-25 17:24:49 -04:00
Nik Unger 7534e225a6 Update to Go 1.24, sprig v3
This commit upgrades the language version to Go 1.24.4 and upgrades
the Sprig templating dependency from v2 to v3 in order to resolve
an indirect dependency issue. The major upgrade of Sprig changes
the behavior of some functions, but not in a significant way.

Go 1.23 introduced a change that rejects X.509 certificates with
negative serial numbers, due to Go's focus on the Web PKI
(see golang/go#71606). We continue to support negative serials by
setting a go:debug option for the main certigo binary, but other
users of certigo packages will need to set their own GODEBUG
settings appropriately to support this feature. If Go eventually
drops support, then we will, too.
2025-07-25 17:24:42 -04:00
Nik Unger 10bbc8cdc1 Fix current linter findings
This commit adds an explicit `golangci-lint` configuration that
simply matches the default linters previously in use, and then
fixes all current linter findings.

Aside from tweaking error message strings, this commit introduces
one externally visible behavior change: PEM data generated from
PKCS#12 files now correctly identifies private key blocks as
`RSA PRIVATE KEY` or `EC PRIVATE KEY`, whereas previously it
generated invalid `PRIVATE KEY` blocks with non-PKCS#8 data.

This commit lays the groundwork for more aggressive linting in the
future, and identifies some additional issues via TODOs.
2025-07-24 12:59:48 -04:00
Jason Riddle 5cba65cd46 Add additional TLS 1.3 cipher suites (#208)
The new TLS 1.3 cipher suites do not specify the key exchange algorithm
and as a result "_WITH_" is no longer present.
2020-02-26 10:29:40 -08:00
Cedric Staub 79de7d2a35 Fix panic in explainCipher for TLS 1.3 ciphers 2019-06-07 12:47:52 -07:00
Cedric Staub d920cab6f0 Print only CN for verify results 2018-02-27 17:24:48 -08:00
Cedric Staub 83191051cb Better strings for TLS signature schemes 2017-06-16 17:17:07 -07:00
Cedric Staub 5a9a11db35 Add support for showing requested client certificate info 2017-04-08 14:55:37 -07:00
Cedric Staub 27336504a8 Merge branch 'master' into mmc/human-tls 2017-02-25 15:35:32 -08:00
Matthew McPherrin ea85f13959 Incorporate review feedback 2017-02-25 15:29:52 -08:00
Cedric Staub 6960f2a866 Small improvements in lib/tls.go 2017-02-25 13:26:14 -08:00
Matthew McPherrin dbe0d3da78 Generate the "Human readable" names by splitting up the cipher suite slug.
This makes assumptions about the format of the slug.
2017-02-21 18:37:30 -08:00
Matthew McPherrin b9352020ee go fmt 2017-02-21 12:20:25 -08:00
Matthew McPherrin f5c61e3ffc Add fallback for unknown TLS and cipher suites 2017-02-21 12:19:16 -08:00
Matthew McPherrin 5d84bacd4f Add quality tags
RC4 and 3DES get 0.  ECDHE and GCM or CHACHA get 2.  Everything else is a 1
2017-02-21 11:55:56 -08:00
Matthew McPherrin 2a02e76a19 [WIP] Print TLS version & cipher suite when connecting 2017-02-19 14:36:31 -08:00