-func NewPrivateKey(curve *Curve, mode Mode, raw []byte) (*PrivateKey, error) {
- if len(raw) != int(mode) {
- return nil, fmt.Errorf("gogost/gost3410: len(key) != %d", mode)
+// Unmarshal little-endian private key. "raw" must be c.PointSize() length.
+func NewPrivateKey(c *Curve, raw []byte) (*PrivateKey, error) {
+ pointSize := c.PointSize()
+ if len(raw) != pointSize {
+ return nil, fmt.Errorf("gogost/gost3410: len(key)=%d != %d", len(raw), pointSize)