package arbo
|
|
|
|
import "math/big"
|
|
|
|
// SwapEndianness swaps the order of the bytes in the byte slice.
|
|
func SwapEndianness(b []byte) []byte {
|
|
o := make([]byte, len(b))
|
|
for i := range b {
|
|
o[len(b)-1-i] = b[i]
|
|
}
|
|
return o
|
|
}
|
|
|
|
// BigIntToBytes converts a *big.Int into a byte array in Little-Endian
|
|
func BigIntToBytes(blen int, bi *big.Int) []byte {
|
|
// TODO make the length depending on the tree.hashFunction.Len()
|
|
b := make([]byte, blen)
|
|
copy(b[:], SwapEndianness(bi.Bytes()))
|
|
return b[:]
|
|
}
|
|
|
|
// BytesToBigInt converts a byte array in Little-Endian representation into
|
|
// *big.Int
|
|
func BytesToBigInt(b []byte) *big.Int {
|
|
return new(big.Int).SetBytes(SwapEndianness(b))
|
|
}
|