Documentation ¶
Overview ¶
Package s2k implements the various OpenPGP string-to-key transforms as specified in RFC 4800 section 3.7.1.
Index ¶
- func HashIdToHash(id byte) (h crypto.Hash, ok bool)
- func HashIdToString(id byte) (name string, ok bool)
- func HashToHashId(h crypto.Hash) (id byte, ok bool)
- func Iterated(out []byte, h hash.Hash, in []byte, salt []byte, count int)
- func Parse(r io.Reader) (f func(out, in []byte), err error)
- func Salted(out []byte, h hash.Hash, in []byte, salt []byte)
- func Serialize(w io.Writer, key []byte, rand io.Reader, passphrase []byte, c *Config) error
- func Simple(out []byte, h hash.Hash, in []byte)
- type Config
- type Params
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func HashIdToHash ¶
HashIdToHash returns a crypto.Hash which corresponds to the given OpenPGP hash id.
func HashIdToString ¶
HashIdToString returns the name of the hash function corresponding to the given OpenPGP hash id.
func HashToHashId ¶
HashIdToHash returns an OpenPGP hash id which corresponds the given Hash.
func Iterated ¶
Iterated writes to out the result of computing the Iterated and Salted S2K function (RFC 4880, section 3.7.1.3) using the given hash, input passphrase, salt and iteration count.
func Parse ¶
Parse reads a binary specification for a string-to-key transformation from r and returns a function which performs that transform. If the S2K is a special GNU extension that indicates that the private key is missing, then the error returned is errors.ErrDummyPrivateKey.
func Salted ¶
Salted writes to out the result of computing the Salted S2K function (RFC 4880, section 3.7.1.2) using the given hash, input passphrase and salt.
Types ¶
type Config ¶
type Config struct { // S2KMode is the mode of s2k function. // It can be 0 (simple), 1(salted), 3(iterated) // 2(reserved) 100-110(private/experimental). S2KMode uint8 // Hash is the default hash function to be used. If // nil, SHA256 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 65536 and 65011712, inclusive. If Config // is nil or S2KCount is 0, the value 16777216 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. See RFC 4880 Section 3.7.1.3. S2KCount int }
Config collects configuration parameters for s2k key-stretching transformations. A nil *Config is valid and results in all default values. Currently, Config is used only by the Serialize function in this package.
type Params ¶
type Params struct {
// contains filtered or unexported fields
}
Params contains all the parameters of the s2k packet
func Generate ¶
Generate generates valid parameters from given configuration. It will enforce salted + hashed s2k method
func ParseIntoParams ¶
ParseIntoParams reads a binary specification for a string-to-key transformation from r and returns a struct describing the s2k parameters.