Compare commits

...

2 Commits

Author SHA1 Message Date
arnaucube
d189a6bedc Expose SkToBigInt for usage from other packages & repos 2020-04-22 14:53:31 +02:00
Eduard S
14c3144613 Merge pull request #22 from iden3/feature/utils-elembigintconv
Add utils.ElementArrayToBigIntArray
2020-04-21 15:31:34 +02:00

View File

@@ -36,6 +36,13 @@ func NewRandPrivKey() PrivateKey {
// Scalar converts a private key into the scalar value s following the EdDSA // Scalar converts a private key into the scalar value s following the EdDSA
// standard, and using blake-512 hash. // standard, and using blake-512 hash.
func (k *PrivateKey) Scalar() *PrivKeyScalar { func (k *PrivateKey) Scalar() *PrivKeyScalar {
s := SkToBigInt(k)
return NewPrivKeyScalar(s)
}
// SkToBigInt converts a private key into the *big.Int value following the
// EdDSA standard, and using blake-512 hash
func SkToBigInt(k *PrivateKey) *big.Int {
sBuf := Blake512(k[:]) sBuf := Blake512(k[:])
sBuf32 := [32]byte{} sBuf32 := [32]byte{}
copy(sBuf32[:], sBuf[:32]) copy(sBuf32[:], sBuf[:32])
@@ -43,7 +50,7 @@ func (k *PrivateKey) Scalar() *PrivKeyScalar {
s := new(big.Int) s := new(big.Int)
utils.SetBigIntFromLEBytes(s, sBuf32[:]) utils.SetBigIntFromLEBytes(s, sBuf32[:])
s.Rsh(s, 3) s.Rsh(s, 3)
return NewPrivKeyScalar(s) return s
} }
// Pub returns the public key corresponding to a private key. // Pub returns the public key corresponding to a private key.