File Coverage

blib/lib/Config/Apple/Profile/Payload/Certificate/PKCS1.pm
Criterion Covered Total %
statement 24 24 100.0
branch n/a
condition n/a
subroutine 8 8 100.0
pod n/a
total 32 32 100.0


line stmt bran cond sub pod time code
1             # This is the code for Config::Apple::Profile::Payload::Certificate::PKCS1.
2             # For Copyright, please see the bottom of the file.
3              
4             package Config::Apple::Profile::Payload::Certificate::PKCS1;
5              
6 1     1   1525 use 5.14.4;
  1         5  
  1         45  
7 1     1   7 use strict;
  1         2  
  1         34  
8 1     1   6 use warnings FATAL => 'all';
  1         3  
  1         39  
9 1     1   6 use base qw(Config::Apple::Profile::Payload::Certificate);
  1         1  
  1         111  
10              
11             our $VERSION = '0.55';
12              
13 1     1   6 use Readonly;
  1         2  
  1         58  
14 1     1   6 use Config::Apple::Profile::Targets qw(:all);
  1         2  
  1         138  
15 1     1   14 use Config::Apple::Profile::Payload::Certificate;
  1         2  
  1         27  
16 1     1   5 use Config::Apple::Profile::Payload::Types qw($ProfileNumber $ProfileString);
  1         2  
  1         200  
17              
18              
19             =encoding utf8
20              
21             =head1 NAME
22              
23             Config::Apple::Profile::Payload::Certificate::PKCS1 - Certificate payload with
24             a DER-format certificate.
25              
26             =head1 SYNOPSIS
27              
28             use Config::Apple::Profile;
29             use Config::Apple::Profile::Payload::Certificate::PKCS1;
30            
31             my $cert = new Config::Apple::Profile::Payload::Certificate::PKCS1;
32             $cert->payload->{PayloadIdentifier} = 'local.acme.CAcert';
33             $cert->payload->{PayloadDisplayName} = 'AcmeCorp internal CA';
34             $cert->payload->{PayloadDescription} = 'The certificate authority used for internal web sites.';
35             $cert->payload->{PayloadOrganization} = 'Acme, Inc.';
36             $cert->payload->{PayloadCertificateFileName} = 'acme.crt';
37             $cert->payload->{PayloadContent} = '.............'; # Long binary data here
38            
39             my $profile = new Config::Apple::Profile;
40             push @{$profile->content}, $cert;
41            
42             print $profile->export;
43            
44             =head1 DESCRIPTION
45              
46             This class implements the pkcs1 type of Certificate payload.
47              
48             This payload contains a single certificate, in a PKCS#1 container,
49             DER-encoded. For reference, pretty much any certificate you get, when you are
50             just getting a certificate, will be in a PKCS#1 container. DER encoding is a
51             binary encoding, it's not the "BEGIN CERTIFICATE" type of encoding (that's PEM).
52              
53             This payload is used to hold B certificate. If you have multiple
54             certificates, use multiple payloads.
55              
56             B This type is exactly the same as the C type of Certificate
57             payload.
58              
59              
60             =head1 PAYLOAD KEYS
61              
62             All of the payload keys defined in
63             L are used by this
64             payload.
65              
66             This payload has the following additional keys:
67              
68             =head2 C
69              
70             This is fixed to the string C.
71              
72             =head2 C
73              
74             This is fixed to the value C<1>.
75              
76             =cut
77              
78             Readonly our %payloadKeys => (
79             # Bring in the certificate keys...
80             %Config::Apple::Profile::Payload::Certificate::payloadKeys,
81            
82             # Since we can't go any deeper, define the type and version!
83             'PayloadType' => {
84             type => $ProfileString,
85             targets => {
86             $TargetIOS => '5.0',
87             $TargetMACOSX => '10.7',
88             },
89             value => 'com.apple.security.pkcs1',
90             },
91             'PayloadVersion' => {
92             type => $ProfileNumber,
93             value => 1,
94             },
95             ); # End of %payloadKeys
96              
97              
98              
99             =head1 ACKNOWLEDGEMENTS
100              
101             Refer to L for acknowledgements.
102              
103             =head1 AUTHOR
104              
105             A. Karl Kornel, C<< >>
106              
107             =head1 COPYRIGHT AND LICENSE
108              
109             Copyright © 2014 A. Karl Kornel.
110              
111             This program is free software; you can redistribute it and/or modify it
112             under the terms of either: the GNU General Public License as published
113             by the Free Software Foundation; or the Artistic License.
114              
115             See L for more information.
116              
117             =cut
118              
119             1;