crypto: Index | Files

package s2k

import ""

Package s2k implements the various OpenPGP string-to-key transforms as specified in RFC 4800 section 3.7.1.


Package Files


func HashIdToHash Uses

func HashIdToHash(id byte) (h crypto.Hash, ok bool)

HashIdToHash returns a crypto.Hash which corresponds to the given OpenPGP hash id.

func HashIdToString Uses

func HashIdToString(id byte) (name string, ok bool)

HashIdToString returns the name of the hash function corresponding to the given OpenPGP hash id.

func HashToHashId Uses

func HashToHashId(h crypto.Hash) (id byte, ok bool)

HashIdToHash returns an OpenPGP hash id which corresponds the given Hash.

func Iterated Uses

func Iterated(out []byte, h hash.Hash, in []byte, salt []byte, count int)

Iterated writes to out the result of computing the Iterated and Salted S2K function (RFC 4880, section using the given hash, input passphrase, salt and iteration count.

func Parse Uses

func Parse(r io.Reader) (f func(out, in []byte), err error)

Parse reads a binary specification for a string-to-key transformation from r and returns a function which performs that transform.

func Salted Uses

func Salted(out []byte, h hash.Hash, in []byte, salt []byte)

Salted writes to out the result of computing the Salted S2K function (RFC 4880, section using the given hash, input passphrase and salt.

func Serialize Uses

func Serialize(w io.Writer, key []byte, rand io.Reader, passphrase []byte, c *Config) error

Serialize salts and stretches the given passphrase and writes the resulting key into key. It also serializes an S2K descriptor to w. The key stretching can be configured with c, which may be nil. In that case, sensible defaults will be used.

func Simple Uses

func Simple(out []byte, h hash.Hash, in []byte)

Simple writes to out the result of computing the Simple S2K function (RFC 4880, section using the given hash and input passphrase.

type Config Uses

type Config struct {
    // Hash is the default hash function to be used. If
    // nil, SHA1 is used.
    Hash crypto.Hash
    // S2KCount is only used for symmetric encryption. It
    // determines the strength of the passphrase stretching when
    // the said passphrase is hashed to produce a key. S2KCount
    // should be between 1024 and 65011712, inclusive. If Config
    // is nil or S2KCount is 0, the value 65536 used. Not all
    // values in the above range can be represented. S2KCount will
    // be rounded up to the next representable value if it cannot
    // be encoded exactly. When set, it is strongly encrouraged to
    // use a value that is at least 65536. See RFC 4880 Section
    S2KCount int

Config collects configuration parameters for s2k key-stretching transformatioms. A nil *Config is valid and results in all default values. Currently, Config is used only by the Serialize function in this package.

Package s2k imports 5 packages (graph) and is imported by 18 packages. Updated 2020-12-22. Refresh now. Tools for package owners.