dsa
packagestandard libraryThis package is not in the latest version of its module.
Details
Validgo.mod file
The Go module system was introduced in Go 1.11 and is the official dependency management solution for Go.
Redistributable license
Redistributable licenses place minimal restrictions on how software can be used, modified, and redistributed.
Tagged version
Modules with tagged versions give importers more predictable builds.
Stable version
When a project reaches major version v1 it is considered stable.
- Learn more about best practices
Repository
Links
Documentation¶
Overview¶
Package dsa implements the Digital Signature Algorithm, as defined in FIPS 186-3.
The DSA operations in this package are not implemented using constant-time algorithms.
Deprecated: DSA is a legacy algorithm, and modern alternatives such asEd25519 (implemented by package crypto/ed25519) should be used instead. Keyswith 1024-bit moduli (L1024N160 parameters) are cryptographically weak, whilebigger keys are not widely supported. Note that FIPS 186-5 no longer approvesDSA for signature generation.
Index¶
- Variables
- func GenerateKey(priv *PrivateKey, rand io.Reader) error
- func GenerateParameters(params *Parameters, rand io.Reader, sizes ParameterSizes) 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
Constants¶
This section is empty.
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 beless so. Thus, when using keys which may have been generated by other code,this error must be handled.
Functions¶
funcGenerateKey¶
func GenerateKey(priv *PrivateKey, randio.Reader)error
GenerateKey generates a public&private key pair. The Parameters of thePrivateKey must already be valid (seeGenerateParameters).
funcGenerateParameters¶
func GenerateParameters(params *Parameters, randio.Reader, sizesParameterSizes)error
GenerateParameters puts a random, valid set of DSA parameters into params.This function can take many seconds, even on fast machines.
funcSign¶
Sign signs an arbitrary length hash (which should be the result of hashing alarger message) using the private key, priv. It returns the signature as apair of integers. The security of the private key depends on the entropy ofrand.
Note that FIPS 186-3 section 4.6 specifies that the hash should be truncatedto the byte-length of the subgroup. This function does not perform thattruncation itself.
Be aware that calling Sign with an attacker-controlledPrivateKey mayrequire an arbitrary amount of CPU.
Types¶
typeParameterSizes¶
type ParameterSizesint
ParameterSizes is an enumeration of the acceptable bit lengths of the primesin a set of DSA parameters. See FIPS 186-3, section 4.2.
const (L1024N160ParameterSizes =iotaL2048N224L2048N256L3072N256)
typeParameters¶
Parameters represents the domain parameters for a key. These parameters canbe shared across many keys. The bit length of Q must be a multiple of 8.