def test_crypto_generichash_blake2b_salt_personal_too_short(key, salt): with pytest.raises(AssertionError): crypto_generichash_blake2b_salt_personal( in_=None, key=key, salt=salt, personal=b'x', )
def test_crypto_generichash_blake2b_salt_invalid_outlen(key, salt, personal): with pytest.raises(AssertionError): crypto_generichash_blake2b_salt_personal( in_=None, key=key, salt=salt, personal=personal, outlen=1, )
def test_crypto_generichash_blake2b_salt(key, salt): out = crypto_generichash_blake2b_salt_personal( in_=None, key=key, salt=salt, personal=None, ) assert isinstance(out, binary_type) assert len(out) == crypto_generichash_blake2b_BYTES
def generate_hash(shared_secret, salt, identifier): """ Generate a secure hash for shared-secret checking purposes. """ assert len(identifier) <= 16, "identifier can't exceed 16 bytes" personal = identifier + b'-' * (16 - len(identifier)) return crypto_generichash_blake2b_salt_personal( in_=None, key=shared_secret, salt=salt, personal=personal, )