Bivio::Type::PasswordHashHMACSHA512
# Copyright (c) 2023 bivio Software, Inc. All rights reserved.
package Bivio::Type::PasswordHashHMACSHA512;
use strict;
use Bivio::Base 'Type.PasswordHashBase';
use Digest::SHA ();
sub ID {
return 'hmac_sha512';
}
sub REGEX {
my($proto) = @_;
my($id) = $proto->ID;
return qr{^\$$id\$[a-z0-9]{16}\$[a-z0-9+/]{86}$}ois;
}
sub SALT_LENGTH {
return 16;
}
sub internal_to_literal {
my($proto, $clear_text, $salt) = @_;
return $proto->internal_format_literal(
$salt,
Digest::SHA::hmac_sha512_base64($clear_text, $salt),
);
}
1;