The Go Programming Language

Package crypto

import "crypto"

Package crypto collects common cryptographic constants.

Package files

crypto.go

func RegisterHash

func RegisterHash(h Hash, f func() hash.Hash)

RegisterHash registers a function that returns a new instance of the given hash function. This is intended to be called from the init function in packages that implement hash functions.

type Hash

Hash identifies a cryptographic hash function that is implemented in another package.

type Hash uint

const (
    MD4       Hash = 1 + iota // in package crypto/md4
    MD5                       // in package crypto/md5
    SHA1                      // in package crypto/sha1
    SHA224                    // in package crypto/sha256
    SHA256                    // in package crypto/sha256
    SHA384                    // in package crypto/sha512
    SHA512                    // in package crypto/sha512
    MD5SHA1                   // no implementation; MD5+SHA1 used for TLS RSA
    RIPEMD160                 // in package crypto/ripemd160

)

func (Hash) New

func (h Hash) New() hash.Hash

New returns a new hash.Hash calculating the given hash function. If the hash function is not linked into the binary, New returns nil.

func (Hash) Size

func (h Hash) Size() int

Size returns the length, in bytes, of a digest resulting from the given hash function. It doesn't require that the hash function in question be linked into the program.

Need more packages? The Package Dashboard provides a list of goinstallable packages.

Subdirectories

Name   Synopsis
..
aes Package aes implements AES encryption (formerly Rijndael), as defined in U.S. Federal Information Processing Standards Publication 197.
blowfish Package blowfish implements Bruce Schneier's Blowfish encryption algorithm.
cast5 Package cast5 implements CAST5, as defined in RFC 2144.
cipher 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.
dsa Package dsa implements the Digital Signature Algorithm, as defined in FIPS 186-3
ecdsa Package ecdsa implements the Elliptic Curve Digital Signature Algorithm, as defined in FIPS 186-3.
elliptic Package elliptic implements several standard elliptic curves over prime fields.
hmac Package hmac implements the Keyed-Hash Message Authentication Code (HMAC) as defined in U.S. Federal Information Processing Standards Publication 198.
md4 Package md4 implements the MD4 hash algorithm as defined in RFC 1320.
md5 Package md5 implements the MD5 hash algorithm as defined in RFC 1321.
ocsp Package ocsp parses OCSP responses as specified in RFC 2560.
openpgp Package openpgp implements high level operations on OpenPGP messages.
armor Package armor implements OpenPGP ASCII Armor, see RFC 4880.
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.
error Package error contains common error types for the OpenPGP packages.
packet Package packet implements parsing and serialization of OpenPGP packets, as specified in RFC 4880.
s2k Package s2k implements the various OpenPGP string-to-key transforms as specified in RFC 4800 section 3.7.1.
rand Package rand implements a cryptographically secure pseudorandom number generator.
rc4 Package rc4 implements RC4 encryption, as defined in Bruce Schneier's Applied Cryptography.
ripemd160 Package ripemd160 implements the RIPEMD-160 hash algorithm.
rsa Package rsa implements RSA encryption as specified in PKCS#1.
sha1 Package sha1 implements the SHA1 hash algorithm as defined in RFC 3174.
sha256 Package sha256 implements the SHA224 and SHA256 hash algorithms as defined in FIPS 180-2.
sha512 Package sha512 implements the SHA384 and SHA512 hash algorithms as defined in FIPS 180-2.
subtle Package subtle implements functions that are often useful in cryptographic code but require careful thought to use correctly.
tls Package tls partially implements the TLS 1.1 protocol, as specified in RFC 4346.
twofish Package twofish implements Bruce Schneier's Twofish encryption algorithm.
x509 Package x509 parses X.509-encoded keys and certificates.
pkix Package pkix contains shared, low level structures used for ASN.1 parsing and serialization of X.509 certificates, CRL and OCSP.
xtea Package xtea implements XTEA encryption, as defined in Needham and Wheeler's 1997 technical report, "Tea extensions.

release.r60.3. Except as noted, this content is licensed under a Creative Commons Attribution 3.0 License.