consensus/monero/crypto/derivations.go

16 lines
510 B
Go
Raw Normal View History

package crypto
import (
"encoding/binary"
"git.gammaspectra.live/P2Pool/moneroutil"
)
func GetDerivationSharedDataForOutputIndex(derivation PublicKey, outputIndex uint64) PrivateKey {
2022-11-05 08:33:53 +00:00
return PrivateKeyFromScalar(HashToScalar(derivation.AsSlice(), binary.AppendUvarint(nil, outputIndex)))
}
func GetDerivationViewTagForOutputIndex(derivation PublicKey, outputIndex uint64) uint8 {
2022-11-05 08:33:53 +00:00
h := moneroutil.Keccak256([]byte("view_tag"), derivation.AsSlice(), binary.AppendUvarint(nil, outputIndex))
return h[0]
}