NET, log
< net/mail;
+ # FIPS is the FIPS 140 module.
+ # It must not depend on external crypto packages.
+ # See also fips140deps.AllowedInternalPackages.
+
io, math/rand/v2 < crypto/internal/randutil;
STR < crypto/internal/impl;
internal/cpu, internal/goarch < crypto/internal/fips140deps/cpu;
internal/godebug < crypto/internal/fips140deps/godebug;
- # FIPS is the FIPS 140 module.
- # It must not depend on external crypto packages.
STR, crypto/internal/impl,
crypto/internal/entropy,
crypto/internal/randutil,
< crypto/internal/fips140/rsa
< FIPS;
- FIPS < crypto/internal/fips140/check/checktest;
+ FIPS, internal/godebug < crypto/fips140;
- FIPS, sync/atomic < crypto/tls/internal/fips140tls;
+ crypto, hash !< FIPS;
- FIPS, internal/godebug, hash < crypto/fips140, crypto/internal/fips140only;
+ # CRYPTO is core crypto algorithms - no cgo, fmt, net.
+ # Mostly wrappers around the FIPS module.
NONE < crypto/internal/boring/sig, crypto/internal/boring/syso;
sync/atomic < crypto/internal/boring/bcache;
- crypto/internal/boring/sig, crypto/tls/internal/fips140tls < crypto/tls/fipsonly;
- # CRYPTO is core crypto algorithms - no cgo, fmt, net.
- FIPS, crypto/internal/fips140only,
+ FIPS, internal/godebug, hash, embed,
crypto/internal/boring/sig,
crypto/internal/boring/syso,
- golang.org/x/sys/cpu,
- hash, embed
+ crypto/internal/boring/bcache
+ < crypto/internal/fips140only
< crypto
< crypto/subtle
< crypto/cipher
- < crypto/sha3;
-
- crypto/cipher,
- crypto/internal/boring/bcache
< crypto/internal/boring
- < crypto/boring;
-
- crypto/boring
- < crypto/aes, crypto/des, crypto/hmac, crypto/md5, crypto/rc4,
- crypto/sha1, crypto/sha256, crypto/sha512, crypto/hkdf;
-
- crypto/boring, crypto/internal/fips140/edwards25519/field
- < crypto/ecdh;
-
- crypto/hmac < crypto/pbkdf2;
-
- crypto/internal/fips140/mlkem < crypto/mlkem;
-
- crypto/aes,
- crypto/des,
- crypto/ecdh,
- crypto/hmac,
- crypto/md5,
- crypto/rc4,
- crypto/sha1,
- crypto/sha256,
- crypto/sha512,
- crypto/sha3,
- crypto/hkdf
+ < crypto/boring
+ < crypto/aes,
+ crypto/des,
+ crypto/rc4,
+ crypto/md5,
+ crypto/sha1,
+ crypto/sha256,
+ crypto/sha512,
+ crypto/sha3,
+ crypto/hmac,
+ crypto/hkdf,
+ crypto/pbkdf2,
+ crypto/ecdh,
+ crypto/mlkem
< CRYPTO;
CGO, fmt, net !< CRYPTO;
- # CRYPTO-MATH is core bignum-based crypto - no cgo, net; fmt now ok.
+ # CRYPTO-MATH is crypto that exposes math/big APIs - no cgo, net; fmt now ok.
+
CRYPTO, FMT, math/big
< crypto/internal/boring/bbig
< crypto/rand
- < crypto/ed25519
+ < crypto/ed25519 # depends on crypto/rand.Reader
< encoding/asn1
< golang.org/x/crypto/cryptobyte/asn1
< golang.org/x/crypto/cryptobyte
CGO, net !< CRYPTO-MATH;
# TLS, Prince of Dependencies.
- CRYPTO-MATH, NET, container/list, encoding/hex, encoding/pem
+
+ FIPS, sync/atomic < crypto/tls/internal/fips140tls;
+
+ crypto/internal/boring/sig, crypto/tls/internal/fips140tls < crypto/tls/fipsonly;
+
+ CRYPTO, golang.org/x/sys/cpu, encoding/binary, reflect
< golang.org/x/crypto/internal/alias
< golang.org/x/crypto/internal/subtle
< golang.org/x/crypto/chacha20
< golang.org/x/crypto/internal/poly1305
- < golang.org/x/crypto/chacha20poly1305
+ < golang.org/x/crypto/chacha20poly1305;
+
+ CRYPTO-MATH, NET, container/list, encoding/hex, encoding/pem,
+ golang.org/x/crypto/chacha20poly1305, crypto/tls/internal/fips140tls
< crypto/internal/hpke
< crypto/x509/internal/macos
- < crypto/x509/pkix;
-
- crypto/tls/internal/fips140tls, crypto/x509/pkix
+ < crypto/x509/pkix
< crypto/x509
< crypto/tls;
< testing/slogtest;
FMT, crypto/sha256, encoding/json, go/ast, go/parser, go/token,
- internal/godebug, math/rand, encoding/hex, crypto/sha256
+ internal/godebug, math/rand, encoding/hex
< internal/fuzz;
OS, flag, testing, internal/cfg, internal/platform, internal/goroot
CGO, FMT
< crypto/internal/sysrand/internal/seccomp;
+ FIPS
+ < crypto/internal/fips140/check/checktest;
+
# v2 execution trace parser.
FMT
< internal/trace/event;