# package ecdsa

`import "crypto/ecdsa"`

ecdsa包实现了椭圆曲线数字签名算法，参见FIPS 186-3。

## type PublicKey

    type PublicKey struct {
        elliptic.Curve
        X, Y *big.Int
    }

PrivateKey代表一个ECDSA公钥。

## type PrivateKey

    type PrivateKey struct {
        PublicKey
        D   *big.Int
    }

PrivateKey代表一个ECDSA私钥。

### func GenerateKey

GenerateKey函数生成一对

    func GenerateKey(c elliptic.Curve, rand io.Reader) (priv *PrivateKey, err error)

公钥/私钥。

## func Sign

    func Sign(rand io.Reader, priv *PrivateKey, hash []byte) (r, s *big.Int, err error)

使用私钥对任意长度的hash值（必须是较大信息的hash结果）进行签名，返回签名结果（一对大整数）。私钥的安全性取决于密码读取器的熵度（随机程度）。

## func Verify

    func Verify(pub *PublicKey, hash []byte, r, s *big.Int) bool

使用公钥验证hash值和两个大整数r、s构成的签名，并返回签名是否合法。