package

fips140

crypto/internal/fips140/v1.26.0-2c999525

Subpackages

aescrypto/internal/fips140/v1.26.0-2c999525/aes
aliascrypto/internal/fips140/v1.26.0-2c999525/alias
Package alias implements memory aliasing tests.
bigmodcrypto/internal/fips140/v1.26.0-2c999525/bigmod
checkcrypto/internal/fips140/v1.26.0-2c999525/check
Package check implements the FIPS 140 load-time code+data verification.
drbgcrypto/internal/fips140/v1.26.0-2c999525/drbg
Package drbg provides cryptographically secure random bytes usable by FIPS code.
ecdhcrypto/internal/fips140/v1.26.0-2c999525/ecdh
ecdsacrypto/internal/fips140/v1.26.0-2c999525/ecdsa
ed25519crypto/internal/fips140/v1.26.0-2c999525/ed25519
edwards25519crypto/internal/fips140/v1.26.0-2c999525/edwards25519
Package edwards25519 implements group logic for the twisted Edwards curve
hkdfcrypto/internal/fips140/v1.26.0-2c999525/hkdf
hmaccrypto/internal/fips140/v1.26.0-2c999525/hmac
Package hmac implements HMAC according to [FIPS 198-1].
mldsacrypto/internal/fips140/v1.26.0-2c999525/mldsa
mlkemcrypto/internal/fips140/v1.26.0-2c999525/mlkem
Package mlkem implements the quantum-resistant key encapsulation method ML-KEM (formerly known as Kyber), as specified in [NIST FIPS 203].
nisteccrypto/internal/fips140/v1.26.0-2c999525/nistec
Package nistec implements the elliptic curves from NIST SP 800-186.
pbkdf2crypto/internal/fips140/v1.26.0-2c999525/pbkdf2
rsacrypto/internal/fips140/v1.26.0-2c999525/rsa
sha256crypto/internal/fips140/v1.26.0-2c999525/sha256
Package sha256 implements the SHA-224 and SHA-256 hash algorithms as defined in FIPS 180-4.
sha3crypto/internal/fips140/v1.26.0-2c999525/sha3
Package sha3 implements the SHA-3 fixed-output-length hash functions and the SHAKE variable-output-length functions defined by [FIPS 202], as well as the cSHAKE extendable-output-length functions defined by [SP 800-185].
sha512crypto/internal/fips140/v1.26.0-2c999525/sha512
Package sha512 implements the SHA-384, SHA-512, SHA-512/224, and SHA-512/256 hash algorithms as defined in FIPS 180-4.
sshcrypto/internal/fips140/v1.26.0-2c999525/ssh
Package ssh implements the SSH KDF as specified in RFC 4253, Section 7.2 and allowed by SP 800-135 Revision 1.
subtlecrypto/internal/fips140/v1.26.0-2c999525/subtle
tls12crypto/internal/fips140/v1.26.0-2c999525/tls12
tls13crypto/internal/fips140/v1.26.0-2c999525/tls13
Package tls13 implements the TLS 1.3 Key Schedule as specified in RFC 8446, Section 7.1 and allowed by FIPS 140-3 IG 2.4.B Resolution 7.

Variables

Functions

CASTsource

func CAST(name string, f func() error)

CAST runs the named Cryptographic Algorithm Self-Test (if operated in FIPS mode) and aborts the program (stopping the module input/output and entering the "error state") if the self-test fails.

CASTs are mandatory self-checks that must be performed by FIPS 140-3 modules before the algorithm is used. See Implementation Guidance 10.3.A.

The name must not contain commas, colons, hashes, or equal signs.

If a package p calls CAST from its init function, an import of p should also be added to crypto/internal/fips140test. If a package p calls CAST on the first use of the algorithm, an invocation of that algorithm should be added to fipstest.TestConditionals.

PCTsource

func PCT(name string, f func() error)

PCT runs the named Pairwise Consistency Test (if operated in FIPS mode) and aborts the program (stopping the module input/output and entering the "error state") if the test fails.

PCTs are mandatory for every generated (but not imported) key pair, including ephemeral keys (which effectively doubles the cost of key establishment). See Implementation Guidance 10.3.A Additional Comment 1.

The name must not contain commas, colons, hashes, or equal signs.

If a package p calls PCT during key generation, an invocation of that function should be added to fipstest.TestConditionals.

RecordApprovedsource

func RecordApproved()

RecordApproved is an internal function that records the use of an approved service. It does not override RecordNonApproved calls in the same span.

It should be called by exposed functions that perform a whole cryptographic alrgorithm (e.g. by Sum, not by New, unless a cryptographic Instantiate algorithm is performed) and should be called after any checks that may cause the function to error out or panic.

RecordNonApprovedsource

func RecordNonApproved()

RecordNonApproved is an internal function that records the use of a non-approved service. It overrides any RecordApproved calls in the same span.

ServiceIndicatorsource

func ServiceIndicator() bool

ServiceIndicator returns true if and only if all services invoked by this goroutine since the last ResetServiceIndicator call are approved.

If ResetServiceIndicator was not called before by this goroutine, its return value is undefined.

Supportedsource

func Supported() error

Supported returns an error if FIPS 140-3 mode can't be enabled.

Versionsource

func Version() string

Version returns the formal version (such as "v1.0.0") if building against a frozen module with GOFIPS140. Otherwise, it returns "latest".