select create_newtype_text('public.hashed_text');

create function hash_text(plain text)
  returns hashed_text
  language plpgsql
  immutable
  as $$
begin
  return hashed_text_of_string(crypt(plain, gen_salt('bf')));
end;
$$;

create function hashed_text_matches(plain text, hashed hashed_text)
  returns boolean
  language plpgsql
  immutable
  as $$
begin
 return hashed_text_to_string(hashed) = crypt(plain, hashed_text_to_string(hashed));
end;
$$;
