Skip to content

Create a mechanism for analyzing certificates for PQC-readiness#683

Open
subecho wants to merge 1 commit intoopenstack-k8s-operators:mainfrom
subecho:duschoen-add-tls-analysis
Open

Create a mechanism for analyzing certificates for PQC-readiness#683
subecho wants to merge 1 commit intoopenstack-k8s-operators:mainfrom
subecho:duschoen-add-tls-analysis

Conversation

@subecho
Copy link
Copy Markdown

@subecho subecho commented Apr 10, 2026

This patch adds functionality to the tls module where we can now generate an analysis for a given certificate and determine its readiness for PQC and compliance for TLS 1.3. Tests were also added to ensure this all works.

We will need to go back and add more to this when the new algorithms become available in the crypto libraries for true, quantum-safe instead of quantum-resistant solutions.

Co-Author: Claude claude@anthropic.com

This patch adds functionality to the tls module where we can now
generate an analysis for a given certificate and determine its readiness
for PQC and compliance for TLS 1.3. Tests were also added to ensure this
all works.

We will need to go back and add more to this when the new algorithms
become available in the crypto libraries for true, quantum-safe instead
of quantum-resistant solutions.

Co-Author: Claude <claude@anthropic.com>
Comment thread modules/common/tls/tls.go
Comment on lines +487 to +488
minPQCSafeRSAKeySize = 3072
minPQCSafeECDSAKeySize = 384 // P-384 curve
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My understanding is that RSA and ECDSA are never PQC "safe" (as in, immune to breakage), but are rather PQC "resistant". I'm not a PQC SME, however.

Comment thread modules/common/tls/tls.go

// isTLS13Compatible checks if a certificate is compatible with TLS 1.3
func isTLS13Compatible(cert *x509.Certificate) bool {
// TLS 1.3 removed support for RSA-PSS and requires specific signature algorithms.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure this is true with regards to TLS 1.3. I think TLS 1.3 mandates support for RSA-PSS but instead dropped PKCS#1 v1.5 signatures.

Comment thread modules/common/tls/tls.go
if pqcSafe {
// For PQC-safe configs, prefer stronger ciphers
return append([]string{
"TLS_AES_256_GCM_SHA384",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This results in a duplicate entry, given L589.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants