From f4fddce174a86d05bea53171a1688c5eec7e1c4e Mon Sep 17 00:00:00 2001 From: riccardom Date: Fri, 24 Jul 2026 18:06:20 +0200 Subject: [PATCH] Added enabled env var --- client/internal/pqkem/env.go | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 client/internal/pqkem/env.go diff --git a/client/internal/pqkem/env.go b/client/internal/pqkem/env.go new file mode 100644 index 000000000..52423a762 --- /dev/null +++ b/client/internal/pqkem/env.go @@ -0,0 +1,34 @@ +package pqkem + +import ( + "os" + "strconv" + "strings" + + log "github.com/sirupsen/logrus" +) + +// EnvEnabled is the environment variable that turns the ML-KEM post-quantum +// exchange on for this client. Accepts on/off aliases plus anything +// strconv.ParseBool understands (true/false/1/0). +const EnvEnabled = "NB_ENABLE_PQ_MLKEM" + +// Enabled reports whether the ML-KEM PQ exchange is enabled via the environment. +// An empty or unrecognized value is treated as disabled. +func Enabled() bool { + raw := strings.ToLower(strings.TrimSpace(os.Getenv(EnvEnabled))) + switch raw { + case "": + return false + case "on": + return true + case "off": + return false + } + enabled, err := strconv.ParseBool(raw) + if err != nil { + log.Warnf("failed to parse %s value %q: %v", EnvEnabled, raw, err) + return false + } + return enabled +}