zcrypto

package module
v0.0.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 14, 2026 License: Apache-2.0, BSD-3-Clause, GooglePatentsFile, + 1 more Imports: 8 Imported by: 0

README

excrypto

GoDoc

excrypto offers specialized versions of the Go crypto, crypto/tls, crypto/x509, encoding/asn1, and golang.org/x/crypto packages designed for security research, network reconnaissance, and probing of legacy or misconfigured systems.

excrypto is based on Google's Go crypto source, Google's Go x/crypto library, and the ZCrypto project.

Security

  • excrypto is intended to support security research and does not make any guarantees on confidentiality, integrity, or availability.
  • excrypto must not be used to implement authentication or to transfer sensitive information over untrusted networks.
  • excrypto deliberately accepts cryptographic primitives, key sizes, signature algorithms, and protocol behaviors that upstream Go rejects as insecure. This is a feature, not a bug.
  • excrypto may have more bugs, including security vulnerabilities, compared to upstream Go.

If you find an unintentional security issue, contact security[at]runzero.com.

Upstream baselines

The current snapshot is rebased on top of:

Source Pin
golang/go src/crypto refs/crypto.hash
golang/x/crypto refs/xcrypto.hash

scripts/crypto_diff.sh and scripts/xcrypto_diff.sh regenerate the diffs against those upstream commits; scripts/xcrypto_rewrite.sh performs the package-path rewrites so upstream code can compile under github.com/HokageRegard/excrypto/....

How this fork differs from upstream

The headline use case is talking to old, insecure, or misconfigured systems and parsing whatever they send back. Where upstream Go has tightened policy over the years to refuse anything weak, excrypto re-opens those doors.

Permissive parsing
  • encoding/asn1 is the ZCrypto fork that tolerates non-canonical lengths, trailing data, malformed UTCTime/GeneralizedTime, length-zero fields, and other RFC violations seen in deployed certificates.
  • crypto/x509 permits negative serial numbers, unknown critical extensions (with reasons surfaced rather than fatal errors), permissive name constraints (registered IDs are decoded with the OID tag re-prepended; permitted subtrees cover directory names and EDI party names), zero/negative DSA parameters reported as parse errors instead of panics, and many other bug-compat hacks.
  • crypto/x509.Certificate carries a much richer set of parsed fields than upstream — issuer/subject helpers, validation status sets, CT SCT data, extension blob copies for round-tripping, etc.
  • Certificate.Verify() is the ZCrypto-style three-set return: (current, expired, never-valid) chains plus an error, instead of a single hard failure.
Weak/legacy primitives kept alive
  • Tiny RSA keys. crypto/rsa.checkKeySize is a no-op. GenerateKey accepts arbitrarily small modulus sizes (verified at 64/128/256/384/512 bits). PKCS#1 v1.5, PSS, and OAEP all run if the math fits.
  • MD5 signatures. crypto/x509.CreateCertificate will sign with MD5; ParseCertificate/CheckSignature verify MD5-RSA signatures.
  • SHA-1 signatures. Fully supported for both signing and verification on RSA and ECDSA, including with weak keys.
  • DSA. crypto/dsa is preserved (upstream removed it from cert parsing paths). crypto/x509 parses DSA public keys and recognizes DSAWithSHA1/DSAWithSHA256 OIDs.
  • ECDSA on P-224 and other legacy NIST curves: kept usable for generation, signing, parsing, and verification.
  • RC2 lives at crypto/ssl3/rc2 with NewCipherReducedStrength for 40/56/64/128-bit keys, used by SSL 3.0 cipher suites.
  • RC4, DES, 3DES, MD5, SHA-1 are all retained as first-class packages even after upstream deprecations.
TLS / SSL stacks

excrypto ships three parallel SSL/TLS stacks spanning every wire version from SSL 2.0 to TLS 1.3:

  • crypto/tls tracks modern upstream Go (TLS 1.0–1.3, TLS 1.3 primary). It re-enables MD5/SHA-1 signature schemes and weak key acceptance for handshake research. It also exposes a structured ServerHandshake log via Conn.GetHandshakeLog() covering every message in both TLS 1.2 and TLS 1.3 handshakes (ClientHello, ServerHello, EncryptedExtensions, CertificateRequest, server/client Certificates with parsed *x509.Certificate and a populated *x509.Validation, ServerKeyExchange / ClientKeyExchange with ECDHE signature capture, KeyMaterial for TLS 1.2, SessionTicket, and the client + server Finished). The same log is reachable from inside GetCertificate / GetConfigForClient callbacks via ClientHelloInfo.HandshakeLog. The ClientCertificateRequested / ClientCertificateRequest fields on Conn flag whether the server asked for a client certificate, in both TLS 1.2 and 1.3.
  • crypto/ssl3/tls is the ZCrypto-derived legacy stack that still speaks SSL 3.0 through TLS 1.2. It exposes a structured HandshakeLog (ServerHandshake, ClientHello, ServerHello, ServerKeyExchange, Heartbleed, etc.) for capturing wire-level state during a handshake and is what zgrab2 / sshamble consume today.
  • crypto/ssl2 implements the obsolete SSL 2.0 protocol (Hickman 1995, deprecated by RFC 6176) end-to-end: client Probe and full Handshake, RSA-encrypted master key exchange, MD5 record MACs, and bulk encryption with RC4-128, RC2-128 (incl. 40-bit export), DES-CBC, and 3DES-EDE-CBC. A matching Server type accepts CLIENT-HELLO messages, runs the full handshake, and exposes the resulting connection via Read / Write. The connection also exposes a HandshakeLog (CLIENT-HELLO / SERVER-HELLO / CLIENT-MASTER-KEY / SERVER-VERIFY / CLIENT-FINISHED / SERVER-FINISHED, plus REQUEST-CERTIFICATE / CLIENT-CERTIFICATE and an SSLv2KeyMaterial block carrying the negotiated MasterKey, ClearKey, SecretKey, KeyArg, and per-direction WriteKeys) via Conn.GetHandshakeLog(). Intended exclusively for security testing, inventory, and DROWN-style research against legacy systems — see the package doc.
  • crypto/ssl3/cryptobyte is a frozen-API copy of cryptobyte for use by the SSL 3 stack so the legacy code is decoupled from upstream API churn.
Certificate Transparency and JSON helpers
  • crypto/x509/ct is the ZCrypto fork of Google's CT library, kept in-tree and integrated with the fork's Certificate type.
  • crypto/json provides JSON marshalers for crypto types (DH/DHE/ECDHE parameters, RSA public keys, etc.) used by zgrab2-style scanners.
golang.org/x/crypto integration

The x/crypto tree is vendored under x/crypto and tracked against refs/xcrypto.hash. It is rewritten so all imports resolve through the fork's module path. SSH-research helpers and struct fields needed by sshamble are layered on top.

Internal plumbing changes

These are not user-facing features, but explain why test output and runtime behavior may differ from upstream Go:

  • crypto/internal/fips140* is configured so non-FIPS mode never gates weak primitives. The cryptocustomrand and similar GODEBUGs are stubbed to behave permissively out-of-tree.
  • internal/godebug re-reads $GODEBUG on every Setting.Value() call so t.Setenv works in tests run from a third-party module path.
  • crypto/subtle provides linkname stubs for the FIPS DIT helpers (setDITEnabled/setDITDisabled) since the runtime hooks they target do not exist outside the standard library.
  • crypto/x509.CreateCertificate auto-generates a 20-octet random SerialNumber when template.SerialNumber == nil, matching ZCrypto.
  • pkix.Name preserves both regular DN attributes and ExtraNames during marshaling so round-tripped certs keep the original RDN sequence.

Components at a glance

Package Origin & purpose
crypto/... Modern Go crypto, with weak-primitive gates removed
crypto/tls Modern TLS 1.0–1.3, permissive sigs + HandshakeLog
crypto/ssl3/tls Legacy SSL 3.0 / TLS 1.0–1.2 with HandshakeLog
crypto/ssl2 Obsolete SSL 2.0 client + server with HandshakeLog
crypto/ssl3/rc2 RC2 block cipher (40/56/64/128-bit)
crypto/x509 ZCrypto-style permissive parser + 3-set Verify()
crypto/x509/ct ZCrypto fork of Google CT
crypto/json JSON marshalers for scanner output
encoding/asn1 ZCrypto-style permissive ASN.1
x/crypto golang.org/x/crypto vendored + research extensions

Documentation

Documentation uses Godoc. See https://godoc.org/github.com/HokageRegard/excrypto/

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
Package crypto collects common cryptographic constants.
Package crypto collects common cryptographic constants.
aes
Package aes implements AES encryption (formerly Rijndael), as defined in U.S. Federal Information Processing Standards Publication 197.
Package aes implements AES encryption (formerly Rijndael), as defined in U.S. Federal Information Processing Standards Publication 197.
cipher
Package cipher implements standard block cipher modes that can be wrapped around low-level block cipher implementations.
Package cipher implements standard block cipher modes that can be wrapped around low-level block cipher implementations.
des
Package des implements the Data Encryption Standard (DES) and the Triple Data Encryption Algorithm (TDEA) as defined in U.S. Federal Information Processing Standards Publication 46-3.
Package des implements the Data Encryption Standard (DES) and the Triple Data Encryption Algorithm (TDEA) as defined in U.S. Federal Information Processing Standards Publication 46-3.
dsa
Package dsa implements the Digital Signature Algorithm, as defined in FIPS 186-3.
Package dsa implements the Digital Signature Algorithm, as defined in FIPS 186-3.
dsa/dsa
Package dsa implements the Digital Signature Algorithm, as defined in FIPS 186-3.
Package dsa implements the Digital Signature Algorithm, as defined in FIPS 186-3.
ecdh
Package ecdh implements Elliptic Curve Diffie-Hellman over NIST curves and Curve25519.
Package ecdh implements Elliptic Curve Diffie-Hellman over NIST curves and Curve25519.
ecdsa
Package ecdsa implements the Elliptic Curve Digital Signature Algorithm, as defined in [FIPS 186-5].
Package ecdsa implements the Elliptic Curve Digital Signature Algorithm, as defined in [FIPS 186-5].
ed25519
Package ed25519 implements the Ed25519 signature algorithm.
Package ed25519 implements the Ed25519 signature algorithm.
elliptic
Package elliptic implements the standard NIST P-224, P-256, P-384, and P-521 elliptic curves over prime fields.
Package elliptic implements the standard NIST P-224, P-256, P-384, and P-521 elliptic curves over prime fields.
fips140
Package fips140 provides information about the FIPS 140-3 Go Cryptographic Module and FIPS 140-3 mode.
Package fips140 provides information about the FIPS 140-3 Go Cryptographic Module and FIPS 140-3 mode.
hkdf
Package hkdf implements the HMAC-based Extract-and-Expand Key Derivation Function (HKDF) as defined in RFC 5869.
Package hkdf implements the HMAC-based Extract-and-Expand Key Derivation Function (HKDF) as defined in RFC 5869.
hmac
Package hmac implements the Keyed-Hash Message Authentication Code (HMAC) as defined in U.S. Federal Information Processing Standards Publication 198.
Package hmac implements the Keyed-Hash Message Authentication Code (HMAC) as defined in U.S. Federal Information Processing Standards Publication 198.
hpke
Package hpke implements Hybrid Public Key Encryption (HPKE) as defined in [RFC 9180].
Package hpke implements Hybrid Public Key Encryption (HPKE) as defined in [RFC 9180].
internal/boring
Package boring provides access to BoringCrypto implementation functions.
Package boring provides access to BoringCrypto implementation functions.
internal/boring/sig
Package sig holds “code signatures” that can be called and will result in certain code sequences being linked into the final binary.
Package sig holds “code signatures” that can be called and will result in certain code sequences being linked into the final binary.
internal/entropy
Package entropy provides the passive entropy source for the FIPS 140-3 module.
Package entropy provides the passive entropy source for the FIPS 140-3 module.
internal/entropy/v1.0.0
Package entropy implements a CPU jitter-based SP 800-90B entropy source.
Package entropy implements a CPU jitter-based SP 800-90B entropy source.
internal/fips140/alias
Package alias implements memory aliasing tests.
Package alias implements memory aliasing tests.
internal/fips140/check
Package check implements the FIPS 140 load-time code+data verification.
Package check implements the FIPS 140 load-time code+data verification.
internal/fips140/check/checktest
Package checktest defines some code and data for use in the crypto/internal/fips140/check test.
Package checktest defines some code and data for use in the crypto/internal/fips140/check test.
internal/fips140/drbg
Package drbg provides cryptographically secure random bytes usable by FIPS code.
Package drbg provides cryptographically secure random bytes usable by FIPS code.
internal/fips140/edwards25519
Package edwards25519 implements group logic for the twisted Edwards curve
Package edwards25519 implements group logic for the twisted Edwards curve
internal/fips140/edwards25519/field
Package field implements fast arithmetic modulo 2^255-19.
Package field implements fast arithmetic modulo 2^255-19.
internal/fips140/hmac
Package hmac implements HMAC according to [FIPS 198-1].
Package hmac implements HMAC according to [FIPS 198-1].
internal/fips140/mlkem
Package mlkem implements the quantum-resistant key encapsulation method ML-KEM (formerly known as Kyber), as specified in [NIST FIPS 203].
Package mlkem implements the quantum-resistant key encapsulation method ML-KEM (formerly known as Kyber), as specified in [NIST FIPS 203].
internal/fips140/nistec
Package nistec implements the elliptic curves from NIST SP 800-186.
Package nistec implements the elliptic curves from NIST SP 800-186.
internal/fips140/sha256
Package sha256 implements the SHA-224 and SHA-256 hash algorithms as defined in FIPS 180-4.
Package sha256 implements the SHA-224 and SHA-256 hash algorithms as defined in FIPS 180-4.
internal/fips140/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].
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].
internal/fips140/sha512
Package sha512 implements the SHA-384, SHA-512, SHA-512/224, and SHA-512/256 hash algorithms as defined in FIPS 180-4.
Package sha512 implements the SHA-384, SHA-512, SHA-512/224, and SHA-512/256 hash algorithms as defined in FIPS 180-4.
internal/fips140/ssh
Package ssh implements the SSH KDF as specified in RFC 4253, Section 7.2 and allowed by SP 800-135 Revision 1.
Package ssh implements the SSH KDF as specified in RFC 4253, Section 7.2 and allowed by SP 800-135 Revision 1.
internal/fips140/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.
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.
internal/fips140cache
Package fips140cache provides a weak map that associates the lifetime of values with the lifetime of keys.
Package fips140cache provides a weak map that associates the lifetime of values with the lifetime of keys.
internal/fips140deps
Package fipsdeps contains wrapper packages for internal APIs that are exposed to the FIPS module.
Package fipsdeps contains wrapper packages for internal APIs that are exposed to the FIPS module.
internal/impl
Package impl is a registry of alternative implementations of cryptographic primitives, to allow selecting them for testing.
Package impl is a registry of alternative implementations of cryptographic primitives, to allow selecting them for testing.
internal/randutil
Package randutil contains internal randomness utilities for various crypto packages.
Package randutil contains internal randomness utilities for various crypto packages.
internal/sysrand
Package rand provides cryptographically secure random bytes from the operating system.
Package rand provides cryptographically secure random bytes from the operating system.
md5
Package md5 implements the MD5 hash algorithm as defined in RFC 1321.
Package md5 implements the MD5 hash algorithm as defined in RFC 1321.
mlkem
Package mlkem implements the quantum-resistant key encapsulation method ML-KEM (formerly known as Kyber), as specified in [NIST FIPS 203].
Package mlkem implements the quantum-resistant key encapsulation method ML-KEM (formerly known as Kyber), as specified in [NIST FIPS 203].
mlkem/mlkemtest
Package mlkemtest provides testing functions for the ML-KEM algorithm.
Package mlkemtest provides testing functions for the ML-KEM algorithm.
pbkdf2
Package pbkdf2 implements the key derivation function PBKDF2 as defined in RFC 8018 (PKCS #5 v2.1).
Package pbkdf2 implements the key derivation function PBKDF2 as defined in RFC 8018 (PKCS #5 v2.1).
rc4
Package rc4 implements RC4 encryption, as defined in Bruce Schneier's Applied Cryptography.
Package rc4 implements RC4 encryption, as defined in Bruce Schneier's Applied Cryptography.
rsa
Package rsa implements RSA encryption as specified in PKCS #1 and RFC 8017.
Package rsa implements RSA encryption as specified in PKCS #1 and RFC 8017.
sha1
Package sha1 implements the SHA-1 hash algorithm as defined in RFC 3174.
Package sha1 implements the SHA-1 hash algorithm as defined in RFC 3174.
sha256
Package sha256 implements the SHA224 and SHA256 hash algorithms as defined in FIPS 180-4.
Package sha256 implements the SHA224 and SHA256 hash algorithms as defined in FIPS 180-4.
sha3
Package sha3 implements the SHA-3 hash algorithms and the SHAKE extendable output functions defined in FIPS 202.
Package sha3 implements the SHA-3 hash algorithms and the SHAKE extendable output functions defined in FIPS 202.
sha512
Package sha512 implements the SHA-384, SHA-512, SHA-512/224, and SHA-512/256 hash algorithms as defined in FIPS 180-4.
Package sha512 implements the SHA-384, SHA-512, SHA-512/224, and SHA-512/256 hash algorithms as defined in FIPS 180-4.
ssl2
Package ssl2 implements the obsolete SSL 2.0 protocol as described in Netscape's "The SSL Protocol" (Hickman, February 1995).
Package ssl2 implements the obsolete SSL 2.0 protocol as described in Netscape's "The SSL Protocol" (Hickman, February 1995).
ssl3
ZCrypto is a research and data collection cryptography library, designed to be used for measuring and analyzing cryptographic deployments on the Internet.
ZCrypto is a research and data collection cryptography library, designed to be used for measuring and analyzing cryptographic deployments on the Internet.
ssl3/cryptobyte
Package cryptobyte contains types that help with parsing and constructing length-prefixed, binary messages, including ASN.1 DER.
Package cryptobyte contains types that help with parsing and constructing length-prefixed, binary messages, including ASN.1 DER.
ssl3/cryptobyte/asn1
Package asn1 contains supporting types for parsing and building ASN.1 messages with the cryptobyte package.
Package asn1 contains supporting types for parsing and building ASN.1 messages with the cryptobyte package.
ssl3/tls
Package tls partially implements TLS 1.2, as specified in RFC 5246.
Package tls partially implements TLS 1.2, as specified in RFC 5246.
subtle
Package subtle implements functions that are often useful in cryptographic code but require careful thought to use correctly.
Package subtle implements functions that are often useful in cryptographic code but require careful thought to use correctly.
tls
Package tls partially implements TLS 1.2, as specified in RFC 5246, and TLS 1.3, as specified in RFC 8446.
Package tls partially implements TLS 1.2, as specified in RFC 5246, and TLS 1.3, as specified in RFC 8446.
tls/internal/fips140tls
Package fips140tls controls whether crypto/tls requires FIPS-approved settings.
Package fips140tls controls whether crypto/tls requires FIPS-approved settings.
x509
Package x509 implements a subset of the X.509 standard.
Package x509 implements a subset of the X.509 standard.
x509/pkix
Package pkix contains shared, low level structures used for ASN.1 parsing and serialization of X.509 certificates, CRL and OCSP.
Package pkix contains shared, low level structures used for ASN.1 parsing and serialization of X.509 certificates, CRL and OCSP.
x509/revocation/ocsp
Package ocsp parses OCSP responses as specified in RFC 2560.
Package ocsp parses OCSP responses as specified in RFC 2560.
x509/zintermediate command
ZIntermediate is a command line utility for verifying a set prospective intermediate certificates against a root store.
ZIntermediate is a command line utility for verifying a set prospective intermediate certificates against a root store.
Package encoding defines interfaces shared by other packages that convert data to and from byte-level and textual representations.
Package encoding defines interfaces shared by other packages that convert data to and from byte-level and textual representations.
asn1
Package asn1 implements parsing of DER-encoded ASN.1 data structures, as defined in ITU-T Rec X.690.
Package asn1 implements parsing of DER-encoded ASN.1 data structures, as defined in ITU-T Rec X.690.
internal
abi
asan
Package asan contains helper functions for manually instrumenting code for the address sanitizer.
Package asan contains helper functions for manually instrumenting code for the address sanitizer.
bisect
Package bisect can be used by compilers and other programs to serve as a target for the bisect debugging tool.
Package bisect can be used by compilers and other programs to serve as a target for the bisect debugging tool.
byteorder
Package byteorder provides functions for decoding and encoding little and big endian integer types from/to byte slices.
Package byteorder provides functions for decoding and encoding little and big endian integer types from/to byte slices.
cfg
Package cfg holds configuration shared by the Go command and internal/testenv.
Package cfg holds configuration shared by the Go command and internal/testenv.
chacha8rand
Package chacha8rand implements a pseudorandom generator based on ChaCha8.
Package chacha8rand implements a pseudorandom generator based on ChaCha8.
cpu
Package cpu implements processor feature detection used by the Go standard library.
Package cpu implements processor feature detection used by the Go standard library.
goarch
package goarch contains GOARCH-specific constants.
package goarch contains GOARCH-specific constants.
godebug
Package godebug makes the settings in the $GODEBUG environment variable available to other packages.
Package godebug makes the settings in the $GODEBUG environment variable available to other packages.
godebugs
Package godebugs provides a table of known GODEBUG settings, for use by a variety of other packages, including internal/godebug, runtime, runtime/metrics, and cmd/go/internal/load.
Package godebugs provides a table of known GODEBUG settings, for use by a variety of other packages, including internal/godebug, runtime, runtime/metrics, and cmd/go/internal/load.
goos
package goos contains GOOS-specific constants.
package goos contains GOOS-specific constants.
msan
Package msan contains helper functions for manually instrumenting code for the memory sanitizer.
Package msan contains helper functions for manually instrumenting code for the memory sanitizer.
nettrace
Package nettrace contains internal hooks for tracing activity in the net package.
Package nettrace contains internal hooks for tracing activity in the net package.
obscuretestdata
Package obscuretestdata contains functionality used by tests to more easily work with testdata that must be obscured primarily due to golang.org/issue/34986.
Package obscuretestdata contains functionality used by tests to more easily work with testdata that must be obscured primarily due to golang.org/issue/34986.
race
Package race contains helper functions for manually instrumenting code for the race detector.
Package race contains helper functions for manually instrumenting code for the race detector.
runtime/sys
package sys contains system- and configuration- and architecture-specific constants used by the runtime.
package sys contains system- and configuration- and architecture-specific constants used by the runtime.
syscall/unix
Package unix provides minimal stubs for the few entropy syscalls that crypto/internal/sysrand uses.
Package unix provides minimal stubs for the few entropy syscalls that crypto/internal/sysrand uses.
syscall/windows
Package windows provides minimal Windows syscall stubs needed by crypto/internal/sysrand and crypto/internal/fips140deps/time.
Package windows provides minimal Windows syscall stubs needed by crypto/internal/sysrand and crypto/internal/fips140deps/time.
testenv
Package testenv provides information about what functionality is available in different testing environments run by the Go team.
Package testenv provides information about what functionality is available in different testing environments run by the Go team.
x
crypto/argon2
Package argon2 implements the key derivation function Argon2.
Package argon2 implements the key derivation function Argon2.
crypto/bcrypt
Package bcrypt implements Provos and Mazières's bcrypt adaptive hashing algorithm.
Package bcrypt implements Provos and Mazières's bcrypt adaptive hashing algorithm.
crypto/blake2b
Package blake2b implements the BLAKE2b hash algorithm defined by RFC 7693 and the extendable output function (XOF) BLAKE2Xb.
Package blake2b implements the BLAKE2b hash algorithm defined by RFC 7693 and the extendable output function (XOF) BLAKE2Xb.
crypto/blake2s
Package blake2s implements the BLAKE2s hash algorithm defined by RFC 7693 and the extendable output function (XOF) BLAKE2Xs.
Package blake2s implements the BLAKE2s hash algorithm defined by RFC 7693 and the extendable output function (XOF) BLAKE2Xs.
crypto/blowfish
Package blowfish implements Bruce Schneier's Blowfish encryption algorithm.
Package blowfish implements Bruce Schneier's Blowfish encryption algorithm.
crypto/bn256
Package bn256 implements a particular bilinear group.
Package bn256 implements a particular bilinear group.
crypto/cast5
Package cast5 implements CAST5, as defined in RFC 2144.
Package cast5 implements CAST5, as defined in RFC 2144.
crypto/chacha20
Package chacha20 implements the ChaCha20 and XChaCha20 encryption algorithms as specified in RFC 8439 and draft-irtf-cfrg-xchacha-01.
Package chacha20 implements the ChaCha20 and XChaCha20 encryption algorithms as specified in RFC 8439 and draft-irtf-cfrg-xchacha-01.
crypto/chacha20poly1305
Package chacha20poly1305 implements the ChaCha20-Poly1305 AEAD and its extended nonce variant XChaCha20-Poly1305, as specified in RFC 8439 and draft-irtf-cfrg-xchacha-01.
Package chacha20poly1305 implements the ChaCha20-Poly1305 AEAD and its extended nonce variant XChaCha20-Poly1305, as specified in RFC 8439 and draft-irtf-cfrg-xchacha-01.
crypto/cryptobyte
Package cryptobyte contains types that help with parsing and constructing length-prefixed, binary messages, including ASN.1 DER.
Package cryptobyte contains types that help with parsing and constructing length-prefixed, binary messages, including ASN.1 DER.
crypto/cryptobyte/asn1
Package asn1 contains supporting types for parsing and building ASN.1 messages with the cryptobyte package.
Package asn1 contains supporting types for parsing and building ASN.1 messages with the cryptobyte package.
crypto/curve25519
Package curve25519 provides an implementation of the X25519 function, which performs scalar multiplication on the elliptic curve known as Curve25519 according to [RFC 7748].
Package curve25519 provides an implementation of the X25519 function, which performs scalar multiplication on the elliptic curve known as Curve25519 according to [RFC 7748].
crypto/ed25519
Package ed25519 implements the Ed25519 signature algorithm.
Package ed25519 implements the Ed25519 signature algorithm.
crypto/hkdf
Package hkdf implements the HMAC-based Extract-and-Expand Key Derivation Function (HKDF) as defined in RFC 5869.
Package hkdf implements the HMAC-based Extract-and-Expand Key Derivation Function (HKDF) as defined in RFC 5869.
crypto/internal/alias
Package alias implements memory aliasing tests.
Package alias implements memory aliasing tests.
crypto/internal/poly1305
Package poly1305 implements Poly1305 one-time message authentication code as specified in https://cr.yp.to/mac/poly1305-20050329.pdf.
Package poly1305 implements Poly1305 one-time message authentication code as specified in https://cr.yp.to/mac/poly1305-20050329.pdf.
crypto/internal/wycheproof/internal/dsa
Package dsa provides an internal version of dsa.Verify that is used for the Wycheproof tests.
Package dsa provides an internal version of dsa.Verify that is used for the Wycheproof tests.
crypto/md4
Package md4 implements the MD4 hash algorithm as defined in RFC 1320.
Package md4 implements the MD4 hash algorithm as defined in RFC 1320.
crypto/nacl/auth
Package auth authenticates a message using a secret key.
Package auth authenticates a message using a secret key.
crypto/nacl/box
Package box authenticates and encrypts small messages using public-key cryptography.
Package box authenticates and encrypts small messages using public-key cryptography.
crypto/nacl/secretbox
Package secretbox encrypts and authenticates small messages.
Package secretbox encrypts and authenticates small messages.
crypto/nacl/sign
Package sign signs small messages using public-key cryptography.
Package sign signs small messages using public-key cryptography.
crypto/ocsp
Package ocsp parses OCSP responses as specified in RFC 2560.
Package ocsp parses OCSP responses as specified in RFC 2560.
crypto/openpgp
Package openpgp implements high level operations on OpenPGP messages.
Package openpgp implements high level operations on OpenPGP messages.
crypto/openpgp/armor
Package armor implements OpenPGP ASCII Armor, see RFC 4880.
Package armor implements OpenPGP ASCII Armor, see RFC 4880.
crypto/openpgp/clearsign
Package clearsign generates and processes OpenPGP, clear-signed data.
Package clearsign generates and processes OpenPGP, clear-signed data.
crypto/openpgp/elgamal
Package elgamal implements ElGamal encryption, suitable for OpenPGP, as specified in "A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms," IEEE Transactions on Information Theory, v.
Package elgamal implements ElGamal encryption, suitable for OpenPGP, as specified in "A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms," IEEE Transactions on Information Theory, v.
crypto/openpgp/errors
Package errors contains common error types for the OpenPGP packages.
Package errors contains common error types for the OpenPGP packages.
crypto/openpgp/packet
Package packet implements parsing and serialization of OpenPGP packets, as specified in RFC 4880.
Package packet implements parsing and serialization of OpenPGP packets, as specified in RFC 4880.
crypto/openpgp/s2k
Package s2k implements the various OpenPGP string-to-key transforms as specified in RFC 4800 section 3.7.1.
Package s2k implements the various OpenPGP string-to-key transforms as specified in RFC 4800 section 3.7.1.
crypto/otr
Package otr implements the Off The Record protocol as specified in http://www.cypherpunks.ca/otr/Protocol-v2-3.1.0.html
Package otr implements the Off The Record protocol as specified in http://www.cypherpunks.ca/otr/Protocol-v2-3.1.0.html
crypto/pbkdf2
Package pbkdf2 implements the key derivation function PBKDF2 as defined in RFC 8018 (PKCS #5 v2.1).
Package pbkdf2 implements the key derivation function PBKDF2 as defined in RFC 8018 (PKCS #5 v2.1).
crypto/pkcs12
Package pkcs12 implements some of PKCS#12.
Package pkcs12 implements some of PKCS#12.
crypto/pkcs12/internal/rc2
Package rc2 implements the RC2 cipher
Package rc2 implements the RC2 cipher
crypto/poly1305
Package poly1305 implements Poly1305 one-time message authentication code as specified in https://cr.yp.to/mac/poly1305-20050329.pdf.
Package poly1305 implements Poly1305 one-time message authentication code as specified in https://cr.yp.to/mac/poly1305-20050329.pdf.
crypto/ripemd160
Package ripemd160 implements the RIPEMD-160 hash algorithm.
Package ripemd160 implements the RIPEMD-160 hash algorithm.
crypto/salsa20
Package salsa20 implements the Salsa20 stream cipher as specified in https://cr.yp.to/snuffle/spec.pdf.
Package salsa20 implements the Salsa20 stream cipher as specified in https://cr.yp.to/snuffle/spec.pdf.
crypto/salsa20/salsa
Package salsa provides low-level access to functions in the Salsa family.
Package salsa provides low-level access to functions in the Salsa family.
crypto/scrypt
Package scrypt implements the scrypt key derivation function as defined in Colin Percival's paper "Stronger Key Derivation via Sequential Memory-Hard Functions" (https://www.tarsnap.com/scrypt/scrypt.pdf).
Package scrypt implements the scrypt key derivation function as defined in Colin Percival's paper "Stronger Key Derivation via Sequential Memory-Hard Functions" (https://www.tarsnap.com/scrypt/scrypt.pdf).
crypto/sha3
Package sha3 implements the SHA-3 hash algorithms and the SHAKE extendable output functions defined in FIPS 202.
Package sha3 implements the SHA-3 hash algorithms and the SHAKE extendable output functions defined in FIPS 202.
crypto/ssh
Package ssh implements an SSH client and server.
Package ssh implements an SSH client and server.
crypto/ssh/agent
Package agent implements the ssh-agent protocol, and provides both a client and a server.
Package agent implements the ssh-agent protocol, and provides both a client and a server.
crypto/ssh/internal/bcrypt_pbkdf
Package bcrypt_pbkdf implements bcrypt_pbkdf(3) from OpenBSD.
Package bcrypt_pbkdf implements bcrypt_pbkdf(3) from OpenBSD.
crypto/ssh/knownhosts
Package knownhosts implements a parser for the OpenSSH known_hosts host key database, and provides utility functions for writing OpenSSH compliant known_hosts files.
Package knownhosts implements a parser for the OpenSSH known_hosts host key database, and provides utility functions for writing OpenSSH compliant known_hosts files.
crypto/ssh/terminal
Package terminal provides support functions for dealing with terminals, as commonly found on UNIX systems.
Package terminal provides support functions for dealing with terminals, as commonly found on UNIX systems.
crypto/ssh/test
Package test contains integration tests for the github.com/HokageRegard/excrypto/x/crypto/ssh package.
Package test contains integration tests for the github.com/HokageRegard/excrypto/x/crypto/ssh package.
crypto/tea
Package tea implements the TEA algorithm, as defined in Needham and Wheeler's 1994 technical report, “TEA, a Tiny Encryption Algorithm”.
Package tea implements the TEA algorithm, as defined in Needham and Wheeler's 1994 technical report, “TEA, a Tiny Encryption Algorithm”.
crypto/twofish
Package twofish implements Bruce Schneier's Twofish encryption algorithm.
Package twofish implements Bruce Schneier's Twofish encryption algorithm.
crypto/x509roots/nss
Package nss provides functionality for parsing NSS certdata.txt formatted certificate lists and extracting serverAuth roots.
Package nss provides functionality for parsing NSS certdata.txt formatted certificate lists and extracting serverAuth roots.
crypto/xtea
Package xtea implements XTEA encryption, as defined in Needham and Wheeler's 1997 technical report, "Tea extensions."
Package xtea implements XTEA encryption, as defined in Needham and Wheeler's 1997 technical report, "Tea extensions."
crypto/xts
Package xts implements the XTS cipher mode as specified in IEEE P1619/D16.
Package xts implements the XTS cipher mode as specified in IEEE P1619/D16.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL