package Crypt::Perl::X509::Extension::keyUsage; use strict; use warnings; =encoding utf-8 =head1 NAME Crypt::Perl::X509::Extension::keyUsage =head1 SYNOPSIS my $usage_obj = Crypt::Perl::X509::Extension::keyUsage->new( qw( digitalSignature contentCommitment keyEncipherment dataEncipherment keyAgreement keyCertSign cRLSign encipherOnly decipherOnly ) ); =head1 SEE ALSO L =cut use parent qw( Crypt::Perl::X509::Extension ); use Crypt::Perl::ASN1::BitString (); use Crypt::Perl::X (); use constant OID => '2.5.29.15'; use constant ASN1 => < 1; #The original bit values are “little-endian”. #We might as well transmogrify these values for ease of use here. my @_bits = qw( digitalSignature contentCommitment keyEncipherment dataEncipherment keyAgreement keyCertSign cRLSign encipherOnly decipherOnly ); sub new { my ($class, @usages) = @_; #Use the modern name $_ =~ s<\AnonRepudiation\z> for @usages; if (!@usages) { die Crypt::Perl::X::create('Generic', 'Need usages!'); } return bless \@usages, $class; } sub _encode_params { my ($self) = @_; return Crypt::Perl::ASN1::BitString::encode( \@_bits, [ @$self ] ); } 1;