Package dsa
Overview ?
Overview ?
Package dsa implements the Digital Signature Algorithm, as defined in FIPS 186-3.
Index
- Variables
- func GenerateKey(priv *PrivateKey, rand io.Reader) error
- func GenerateParameters(params *Parameters, rand io.Reader, sizes ParameterSizes) (err error)
- func Sign(rand io.Reader, priv *PrivateKey, hash []byte) (r, s *big.Int, err error)
- func Verify(pub *PublicKey, hash []byte, r, s *big.Int) bool
- type ParameterSizes
- type Parameters
- type PrivateKey
- type PublicKey
Package files
Variables
var ErrInvalidPublicKey = errors.New("crypto/dsa: invalid public key")
ErrInvalidPublicKey results when a public key is not usable by this code. FIPS is quite strict about the format of DSA keys, but other code may be less so. Thus, when using keys which may have been generated by other code, this error must be handled.
func GenerateKey
func GenerateKey(priv *PrivateKey, rand io.Reader) error
GenerateKey generates a public&private key pair. The Parameters of the PrivateKey must already be valid (see GenerateParameters).
func GenerateParameters
func GenerateParameters(params *Parameters, rand io.Reader, sizes ParameterSizes) (err error)
GenerateParameters puts a random, valid set of DSA parameters into params. This function takes many seconds, even on fast machines.
func Sign
func Sign(rand io.Reader, priv *PrivateKey, hash []byte) (r, s *big.Int, err error)
Sign signs an arbitrary length hash (which should be the result of hashing a larger message) using the private key, priv. It returns the signature as a pair of integers. The security of the private key depends on the entropy of rand.
Note that FIPS 186-3 section 4.6 specifies that the hash should be truncated to the byte-length of the subgroup. This function does not perform that truncation itself.
func Verify
func Verify(pub *PublicKey, hash []byte, r, s *big.Int) bool
Verify verifies the signature in r, s of hash using the public key, pub. It reports whether the signature is valid.
Note that FIPS 186-3 section 4.6 specifies that the hash should be truncated to the byte-length of the subgroup. This function does not perform that truncation itself.
type ParameterSizes
type ParameterSizes int
ParameterSizes is a enumeration of the acceptable bit lengths of the primes in a set of DSA parameters. See FIPS 186-3, section 4.2.
const ( L1024N160 ParameterSizes = iota L2048N224 L2048N256 L3072N256 )
type Parameters
type Parameters struct { P, Q, G *big.Int }
Parameters represents the domain parameters for a key. These parameters can be shared across many keys. The bit length of Q must be a multiple of 8.
type PrivateKey
type PrivateKey struct { PublicKey X *big.Int }
PrivateKey represents a DSA private key.
type PublicKey
type PublicKey struct { Parameters Y *big.Int }
PublicKey represents a DSA public key.
Except as noted, the content of this page is licensed under the Creative Commons Attribution 3.0 License, and code is licensed under a BSD license.
Terms of Service | Privacy Policy