Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions config/v1/types_tlssecurityprofile.go
Original file line number Diff line number Diff line change
Expand Up @@ -213,6 +213,14 @@ type TLSProfileSpec struct {
//
// +listType=atomic
Ciphers []string `json:"ciphers"`
// curves is used to specify the elliptic curves that are used during
// the TLS handshake. Operators may remove entries their operands do
// not support. For example, to use X25519 and P-256 (yaml):
//
// curves:
// - X25519
// - P-256
Curves []string `json:"curves,omitempty"`
Comment on lines +216 to +223
Copy link
Contributor

@tmshort tmshort Oct 7, 2025

Choose a reason for hiding this comment

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

My main concern here is the names used for these curves, as they are pretty much all over the place.

X25519 is pretty standard, but I've also seen ecdh_x25519: (openshift/cluster-ingress-operator#1287)

Then there's the P curves. Within golang, they are referred to as:

  • CurveP256
  • CurveP384
  • CurveP521

https://wiki.mozilla.org/Security/Server_Side_TLS refers to them as:

  • prime256v1
  • secp384r1

(No mention of secp521r1)
Note: OpenSSL/LibreSSL/BoringSSL also use these terms
Note: secp256r1 (usedin PR1287) is equivalent to prime256v1 but prime256v1 is more commonly used

This code seems to be using:

  • P-256

(And possibly P-384 and P-521)

We should pick one and use it all over openshift, so we don't need conversion functions all over the place.

// minTLSVersion is used to specify the minimal version of the TLS protocol
// that is negotiated during the TLS handshake. For example, to use TLS
// versions 1.1, 1.2 and 1.3 (yaml):
Expand Down