Skip to content

Instantly share code, notes, and snippets.

@davidad
davidad / generate_cert.pl
Last active December 26, 2015 12:29
Some of the code I use to create client certs.
create or replace function public.generate_cert(token varchar(32), spkac text, device varchar(32)) returns text as $PERL$
my $token = $_[0];
my $spkac = $_[1];
my $device = $_[2];
use Crypt::OpenSSL::CA;
use File::Slurp;
my $rowset = spi_exec_query('select auth.certificate_tokens.cert_serial is not null as has_serial, auth.certificate_tokens.entry_id as entry_id, auth.uid_email.email as email, auth.uid_email.uid as uid, (main.people.name).given, (main.people.name).particle, (main.people.name).family, (auth.certificate_tokens.token_expires < now()) as expired from auth.uid_email, main.people, auth.certificate_tokens where auth.uid_email.uid = main.people.uid and auth.uid_email.email = auth.certificate_tokens.email and auth.certificate_tokens.token_digest = digest('.quote_literal($token).",'sha512');",1);