d0a4086e29
ok and some tweaks from @jrick.
28 lines
649 B
Go
28 lines
649 B
Go
// Copyright (c) 2013-2014 Conformal Systems LLC.
|
|
// Use of this source code is governed by an ISC
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package btcec
|
|
|
|
import (
|
|
"crypto/ecdsa"
|
|
"math/big"
|
|
)
|
|
|
|
// PrivKeyFromBytes returns a private and public key for `curve' based on the
|
|
// private key passed as an argument as a byte slice.
|
|
func PrivKeyFromBytes(curve *KoblitzCurve, pk []byte) (*ecdsa.PrivateKey,
|
|
*PublicKey) {
|
|
x, y := curve.ScalarBaseMult(pk)
|
|
|
|
priv := &ecdsa.PrivateKey{
|
|
PublicKey: ecdsa.PublicKey{
|
|
Curve: curve,
|
|
X: x,
|
|
Y: y,
|
|
},
|
|
D: new(big.Int).SetBytes(pk),
|
|
}
|
|
|
|
return priv, (*PublicKey)(&priv.PublicKey)
|
|
}
|