.\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .if !\nF .nr F 0 .if \nF>0 \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} .\} .\" ======================================================================== .\" .IX Title "Authen::U2F::Tester::Role::Keystore 3pm" .TH Authen::U2F::Tester::Role::Keystore 3pm "2018-04-12" "perl v5.26.1" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Authen::U2F::Tester::Role::Keystore \- U2F Tester Keystore Role. .SH "VERSION" .IX Header "VERSION" version 0.03 .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& package Authen::U2F::Tester::Keystore::Example; \& \& use Moose; \& use namespace::autoclean; \& \& with \*(AqAuthen::U2F::Tester::Role::Keystore\*(Aq; \& \& sub exists { \& my ($self, $handle) = @_; \& ... \& # if handle is valid and exists in the keystore: \& return 1; \& \& # else \& return 0; \& } \& \& sub put { \& my ($self, $private_key) = @_; \& \& # somehow generate a unique handle \& return $handle; \& } \& \& sub get { \& my ($self, $handle) = @_; \& \& $handle = decode_base64url($handle); \& \& # fetch the Crypt::PK::ECC private key object associated with this handle. \& return $pkec; \& } \& \& _\|_PACKAGE_\|_\->meta\->make_immutable; .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This is a Moose::Role that Authen::U2F::Tester keystore's must consume. All required methods must be implemented by the consuming Moose class. .SH "METHODS" .IX Header "METHODS" .SS "exists($handle): bool" .IX Subsection "exists($handle): bool" Check if the given handle (in Base64 \s-1URL\s0 format) exists (or is valid) in the key store. .SS "get($handle): Crypt::PK::ECC" .IX Subsection "get($handle): Crypt::PK::ECC" Given the key handle (in Base64 \s-1URL\s0 format), return the private key (as a Crypt::PK::ECC object) associated with it in the key store. .SS "put($private_key): scalar" .IX Subsection "put($private_key): scalar" Save the given keypair in the keystore, returning a unique key handle that uniquely identifies the keypair. The returned handle should \fB\s-1NOT\s0\fR be Base64 \&\s-1URL\s0 encoded. \f(CW$private_key\fR is a raw private key string. .SS "remove($handle): void" .IX Subsection "remove($handle): void" Remove the given key handle from the key store. .SH "SOURCE" .IX Header "SOURCE" The development version is on github at and may be cloned from .SH "BUGS" .IX Header "BUGS" Please report any bugs or feature requests on the bugtracker website .PP When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature. .SH "AUTHOR" .IX Header "AUTHOR" Michael Schout .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" This software is copyright (c) 2017 by Michael Schout. .PP This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.