NAME
OpenCA::CRL - CRL Management module.
SYNOPSIS
use OpenCA::CRL;
DESCRIPTION
This module contains functions to access CRLs infos. It, as the OpenCA::X509 module, requires some parameters such as a reference to an OpenCA::OpenSSL instance. This module provides a CRL->PERL Hashes parsing, no specific crypto functions are performed.
FUNCTIONS
sub new () - Create a new instance of the Class.
Creating a new instance of the module you can provide a
valid crl. As a result the crl will be parsed and stored
in local variable(s) for later usage. You can generate a
new instance of the class either by giving an already
issued CRL (see OpenCA::OpenSSL for documentation) or
even generate a new CRL if you provide the CACERT and
CAKEY. The function will return a self reference. Accepted
parameters are:
SHELL - An OpenCA::OpenSSL initialized
instance;
CRL - A valid CRL(*);
INFILE - A CRL file(*);
FORMAT - Format of the provided CRL. Supported
are PEM|DER(*);
CAKEY - CA private key file(*);
CACERT - CA certificate file(*);
DAYS - Days the CRL will be valid(*);
EXTS - Extentions section (see openssl.cnf
documentation)(*);
(*) - Optional Parameters;
EXAMPLE:
my $self->{crl} = new OpenCA::CRL( SHELL=>$openssl, CRL=>$pemCRL );
NOTE: When you generate a new CRL, you have to provide
BOTH CAKEY and CACERT parameters.
sub initCRL () - Initialize internal CRL parameters.
Initialize the module with a provided CRL. You can not
generate a new CRL with this function, if you wish to
do so you'll have to get a new instance of the class
(see the new() function). Accepted parameters are:
CRL - Provided CRL(*);
INFILE - A CRL file (one of CRL/INFILE params
is required)(*);
FORMAT - Provided CRL format (PEM|DER)(*);
(*) - Optional Parameters;
EXAMPLE:
if( not $self->{crl}->initCRL(CRL=>$derCRL, FORMAT=>DER)) {
print "Error!";
}
sub getParsed () - Retrieve parsed CRL list
This function returns an HASH structure with the main CRL
data and a list of HASH with SERIAL and DATE of revoked
certificates. Returned value is:
my $ret = { VERSION=>$version,
ALGORITHM=>$alg,
ISSUER=>$issuer,
LAST_UPDATE=>$last,
NEXT_UPDATE=>$next,
LIST=>[ @list ] };
Each element of the LIST has the following format:
my $element = { SERIAL=>$certSerial,
DATE=>$revDate };
EXAMPLE:
print "VERSION: " . $self->{crl}->getParsed()->{VERSION};
foreach $rev ( @{ $self->{crl}->getParsed()->{LIST} } ) {
print "SERIAL: " . $rev->{SERIAL} . "\n";
print "DATE: " . $rev->{DATE} . "\n";
}
sub getPEM () - Get the CRL in a PEM format.
This function accept no arguments and returns the CRL in
PEM format.
EXAMPLE:
$pem = $crl->getPEM();
sub getDER () - Get the CRL in a DER format.
This function accept no arguments and returns the CRL in
DER format.
EXAMPLE:
$der = $crl->getDER();
sub getTXT () - Get the CRL in a TXT format.
This function accept no arguments and returns the CRL in
TXT format.
EXAMPLE:
print $crl->getTXT();
AUTHOR
Massimiliano Pala <madwolf@openca.org>
SEE ALSO
OpenCA::X509, OpenCA::Tools, OpenCA::OpenSSL, OpenCA::REQ, OpenCA::TRIStateCGI, OpenCA::Configuration