package fips140cache

import "crypto/internal/fips140cache"

Package fips140cache provides a weak map that associates the lifetime of values with the lifetime of keys.

It can be used to associate a precomputed value (such as an internal/fips140 PrivateKey value, which in FIPS 140-3 mode may have required an expensive pairwise consistency test) with a type that doesn't have private fields (such as an ed25519.PrivateKey), or that can't be safely modified because it may be concurrently copied (such as an ecdsa.PrivateKey).

Index

Types

type Cache

type Cache[K, V any] struct {
	// contains filtered or unexported fields
}

func (*Cache[K, V]) Get

func (c *Cache[K, V]) Get(k *K, new func() (*V, error), check func(*V) bool) (*V, error)

Get returns the result of new, for an associated key k.

If Get was called with k before and didn't return an error, Get may return the same value it returned from the previous call if check returns true on it. If check returns false, Get will call new again and return the result.

The cache is evicted some time after k becomes unreachable.

Source Files

cache.go

Version
v1.25.0-rc.1
Published
Jun 11, 2025
Platform
js/wasm
Imports
3 packages
Last checked
3 minutes ago

Tools for package owners.