Crypt::FPE::FF1
A Perl XS binding to a C implementation of NIST FF1 Format-Preserving Encryption https://github.com/mysto/clang-fpe/ .
Installation
You’ll need Perl’s development headers, ExtUtils::MakeMaker, and OpenSSL installed.
git clone git@github.com:unilinkgroup/FPE_PP1.git
cd FPE_PP1
perl Makefile.PL
make
make test
sudo make install
#testing...
perl -Mblib -MCrypt::FPE::FF1 -e '
my $ff1 = Crypt::FPE::FF1->new(
key_hex=>"EF4359D8D580AA4F7F036D6F04FC6A94",
tweak_hex=>"D8E7920AFA330A73",
radix=>10,
);
print $ff1->encrypt("890121234567890000"), "\n";
'
#expect 318181603547192051
Usage
my $fmt = Crypt::FPE::FF1::Format->new(
key_hex => "EF4359D8D580AA4F7F036D6F04FC6A94", #we'll want this to be an environmental variable stored only in prod
tweak_hex => "D8E7920AFA330A73",
);