Documentation ¶
Overview ¶
Package curl implements the Curl hashing function.
Index ¶
- Constants
- Variables
- func HashTrits(trits Trits) (Trits, error)
- func HashTrytes(t Trytes) (Trytes, error)
- func MustHashTrytes(t Trytes) Trytes
- func NewCurlP81() SpongeFunction
- type Curl
- func (c *Curl) Absorb(in Trits) error
- func (c *Curl) AbsorbTrytes(in Trytes) error
- func (c *Curl) Clone() SpongeFunction
- func (c *Curl) CopyState(s Trits)
- func (c *Curl) MustAbsorbTrytes(in Trytes)
- func (c *Curl) MustSqueeze(tritsCount int) Trits
- func (c *Curl) MustSqueezeTrytes(tritsCount int) Trytes
- func (c *Curl) Reset()
- func (c *Curl) Squeeze(tritsCount int) (Trits, error)
- func (c *Curl) SqueezeTrytes(tritsCount int) (Trytes, error)
- type SpongeDirection
Constants ¶
const ( // StateSize is the size of the Curl hash function. StateSize = HashTrinarySize * 3 // NumRounds is the number of rounds in a Curl transform. NumRounds = 81 )
Variables ¶
var ( // Indices stores the rotation indices for a Curl round. Indices [StateSize + 1]int )
Functions ¶
func HashTrits ¶
func HashTrits(trits Trits) (Trits, error)
HashTrits returns the hash of the given trits.
func HashTrytes ¶
func HashTrytes(t Trytes) (Trytes, error)
HashTrytes returns the hash of the given trytes.
func MustHashTrytes ¶
func MustHashTrytes(t Trytes) Trytes
MustHashTrytes returns the hash of the given trytes. It panics if the given trytes are not valid.
Types ¶
type Curl ¶
type Curl struct {
// contains filtered or unexported fields
}
Curl is a sponge function with an internal state of size StateSize. b = r + c, b = StateSize, r = HashSize, c = StateSize - HashSize
func (*Curl) AbsorbTrytes ¶
AbsorbTrytes fills the internal state of the sponge with the given trytes.
func (*Curl) Clone ¶
func (c *Curl) Clone() SpongeFunction
Clone returns a deep copy of the current Curl.
func (*Curl) CopyState ¶
func (c *Curl) CopyState(s Trits)
CopyState copy the content of the Curl state buffer into s.
func (*Curl) MustAbsorbTrytes ¶
func (c *Curl) MustAbsorbTrytes(in Trytes)
AbsorbTrytes fills the internal state of the sponge with the given trytes. It panics if the given trytes are not valid.
func (*Curl) MustSqueeze ¶
MustSqueeze squeezes out trits of the given trit length. The value tritsCount has to be a multiple of HashTrinarySize. It panics if the length is not valid.
func (*Curl) MustSqueezeTrytes ¶
MustSqueezeTrytes squeezes out trytes of the given trit length. The value tritsCount has to be a multiple of HashTrinarySize. It panics if the length is not valid.
func (*Curl) Squeeze ¶
Squeeze squeezes out trits of the given length. The value tritsCount has to be a multiple of HashTrinarySize.
func (*Curl) SqueezeTrytes ¶
SqueezeTrytes squeezes out trytes of the given trit length. The value tritsCount has to be a multiple of HashTrinarySize.
type SpongeDirection ¶
type SpongeDirection int
SpongeDirection indicates the direction trits are flowing through the sponge.
const ( // SpongeAbsorbing indicates that the sponge is absorbing input. SpongeAbsorbing SpongeDirection = iota // SpongeSqueezing indicates that the sponge is being squeezed. SpongeSqueezing )