// New returns a new protocol client func New(keyBackends []types.Backend) (*Client, error) { var err error c := new(Client) c.Curve = eccutil.SetCurve(Curve, Rand, HashFunc) c.Keypool = keypool.New(signkeys.New(Curve, Rand, HashFunc)) for _, v := range keyBackends { if v.Type == "keydir" { err = keydir.Add(c.Keypool, v.Value.(string)) } else if v.Type == "database" { err = keydb.Add(c.Keypool, v.Value) } if err != nil { return nil, err } } return c, nil }
// New returns a new key generator. The Usage and URL of the generator must be // explicitely set. func New(curve func() elliptic.Curve, rand io.Reader, hash func([]byte) []byte) *KeyGenerator { kg := new(KeyGenerator) kg.Curve = eccutil.SetCurve(curve, rand, hash) kg.ExpireTime = DefaultExpireTime return kg }