Version: Next

Crypto

function blake2b : bytes -> bytes

Runs the blake2b hash algorithm over the given bytes data and returns a bytes representing the hash.

function hasherman_blake (const s: bytes) : bytes is Crypto.blake2b(s)

Note that blake2b is deprecated. Please use Crypto.blake2b.

function sha256 : bytes -> bytes

Runs the sha256 hash algorithm over the given bytes data and returns a bytes representing the hash.

function hasherman (const s : bytes) : bytes is Crypto.sha256(s)

Note that sha_256 is deprecated. Please use Crypto.sha256.

function sha512 : bytes -> bytes

Runs the sha512 hash algorithm over the given bytes data and returns a bytes representing the hash.

function hasherman512 (const s: bytes) : bytes is Crypto.sha512(s)

Note that sha_512 is deprecated. Please use Crypto.sha512.

function hash_key : key -> key_hash

Hashes a key for easy comparison and storage.

function check_hash_key (const kh1 : key_hash; const k2 : key) : bool * key_hash is block {
var ret : bool := False ;
var kh2 : key_hash := Crypto.hash_key(k2) ;
if kh1 = kh2 then ret := True else skip;
} with (ret, kh2)

Note that hash_key is deprecated. Please use Crypto.hash_key.

function check : key -> signature -> bytes -> bool

Check that a message has been signed by a particular key.

⚠️ There is no way to generate a signed message in LIGO. This is because that would require storing a private key on chain, at which point it isn't very private anymore.

function check_signature
(const pk: key;
const signed: signature;
const msg: bytes) : bool
is Crypto.check(pk, signed, msg)

Note that crypto_check is deprecated. Please use Crypto.check.