App-CamelPKI
view release on metacpan or search on metacpan
lib/App/CamelPKI/CertTemplate.pm view on Meta::CPAN
$zulutime.
=back
=cut
# abstract method
=head2 list_keys()
Called in list context, returns the valid nominative informations keys
list to be passed to L</prepare_certificate> and
L</test_certificate_conflict>.
The CA will not give any key to this methods unless these keys are
present in the return value of I<list_keys()>, excepted C<time> which
will be passed even if the template do not mention it.
The base class implementation returns the empty list, which is only
appropriate for Camel-PKI internal certificates.
=cut
sub list_keys { return }
=head2 signature_hash
Returns the cryptographic algorithm to use for certificates
signing, under the form of a name ("md5" or "sha1", for example).
The base class implementation returns "sha256", as "md5" and "sha1"
are now not recommanded because of progress done on their cryptanalysis
(L<http://www.win.tue.nl/~bdeweger/CollidingCertificates/>).
=cut
sub signature_hash { "sha256" }
=head2 test_certificate_conflict($db, $key1 => $val1, ...)
FIXME-TR: ouch, du pour une sommeillant comme moi - � faire la t�te fraiche
Doit se terminer avec succès si et seulement si le gabarit de
certificat considère qu'il est légitime d'ajouter à la base $db (une
instance de L<App::CamelPKI::CADB>) un certificat avec les options
nominatives $key1 => $val1, ... tel que L</prepare_certificate> le
créerait, et lancer une exception dans le cas contraire. Plus
précisément, I<certificate_test_conflict> est appelé en contexte liste
et doit
=over
=item *
return an empty list if the certificate creation is unconditionnaly
valid, due the to actual $db status;
=item *
or must return a certificates list (in the form of L<App::CamelPKI::Certificates>
instances) if I<certificate_test_conflict> thinks to be conflict with
the new putative certificate. The calling CA then decides its have to
cancel the transaction, revoke certificates, or bypass the restriction
(see L<App::CamelPKI::CA/Coherence>);
=item *
or must throw an exception if there is no means to consider such a
certificate compliant in terms of the certificate policy.
=back
FIXME-TR: creuv�...
Noter que le principe de moindre privilège s'applique Ã
I<test_certificate_conflict>, et que la version de $db qu'il récupère
est en réalité une facette de la véritable base de données de CA, en
lecture seule et dont le contenu est de surcroît filtré sur la base
d'un I<need-to-know>: typiquement, I<test_certificate_conflict> ne
pourra voir que les certificats qu'il a lui-même fabriqués par le
passé.
The base class implementation is always happy, and always returns
the empty list.
=cut
sub test_certificate_conflict { return }
=head2 test_issued_certs_coherent( \%data1, \%data2, ... )
TODO-TR: stoppedhere
Doit se terminer avec succès si et seulement si le gabarit de
certificat considère qu'il est légitime d'émettre B<en une seule
transaction> les certificats dont les données nominatives figurent en
argument. I<test_issued_certs_coherent> doit se terminer
normalement s'il estime que les certificats qui seraient créés en
appelant C<prepare_certificate(%data1)>,
C<prepare_certificate(%data2)>, etc sont cohérents les uns avec les
autres, et lever une exception dans le cas contraire. L'AC prend
cette information en compte comme il est décrit dans
L<App::CamelPKI::CA/Cohérence>.
The base class implementation is always happy, and always ends
with success.
=cut
sub test_issued_certs_coherent { return }
=head1 METHODS PROVIDED BY THE BASE CLASS
Dans sa tâche d'implémenter les L</MÃTHODES à SURCHARGER>, le
programmeur est aidé par les méthodes suivantes, dont il bénéficie par
voie d'héritage:
=head2 normalize_opts($template, $key1 => $val1, ...)
Lorsqu'on invoque cette méthode (indifféremment de classe ou
d'instance) en contexte liste, elle renvoie la liste associative
passée en paramètre ($key1 => $val1, ...) après l'avoir «nettoyée» de
la façon suivante :
( run in 0.500 second using v1.01-cache-2.11-cpan-75ffa21a3d4 )