File Coverage

blib/lib/Config/Apple/Profile/Payload/Certificate/PEM.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::PEM.
2             # For Copyright, please see the bottom of the file.
3              
4             package Config::Apple::Profile::Payload::Certificate::PEM;
5              
6 1     1   1494 use 5.14.4;
  1         5  
  1         47  
7 1     1   6 use strict;
  1         3  
  1         38  
8 1     1   7 use warnings FATAL => 'all';
  1         3  
  1         53  
9 1     1   6 use base qw(Config::Apple::Profile::Payload::Certificate);
  1         2  
  1         118  
10              
11             our $VERSION = '0.55';
12              
13 1     1   5 use Readonly;
  1         3  
  1         57  
14 1     1   7 use Config::Apple::Profile::Targets qw(:all);
  1         2  
  1         130  
15 1     1   7 use Config::Apple::Profile::Payload::Certificate;
  1         2  
  1         37  
16 1     1   5 use Config::Apple::Profile::Payload::Types qw($ProfileNumber $ProfileString);
  1         3  
  1         233  
17              
18              
19             =encoding utf8
20              
21             =head1 NAME
22              
23             Config::Apple::Profile::Payload::Certificate::PEM - Certificate payload with
24             a PEM-format certificate.
25              
26             =head1 SYNOPSIS
27              
28             use Config::Apple::Profile;
29             use Config::Apple::Profile::Payload::Certificate::PEM;
30            
31             my $cert = new Config::Apple::Profile::Payload::Certificate::PEM;
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 string 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 PEM type of Certificate payload.
47              
48             This payload contains a single certificate, in a PKCS#1 container,
49             PEM-encoded. If you have a file that has "BEGIN CERTIFICATE"
50             in it, you've probably got this type of certificate.
51              
52             This payload is used to hold B certificate. If you have multiple
53             certificates, use multiple payloads.
54              
55              
56             =head1 PAYLOAD KEYS
57              
58             All of the payload keys defined in
59             L are used by this
60             payload.
61              
62             This payload has the following additional keys:
63              
64             =head2 C
65              
66             This is fixed to the string C.
67              
68             =head2 C
69              
70             This is fixed to the value C<1>.
71              
72             =cut
73              
74             Readonly our %payloadKeys => (
75             # Bring in the certificate keys...
76             %Config::Apple::Profile::Payload::Certificate::payloadKeys,
77            
78             # Since we can't go any deeper, define the type and version!
79             'PayloadType' => {
80             type => $ProfileString,
81             targets => {
82             $TargetIOS => '5.0',
83             $TargetMACOSX => '10.7',
84             },
85             value => 'com.apple.security.pem',
86             },
87             'PayloadVersion' => {
88             type => $ProfileNumber,
89             targets => {
90             $TargetIOS => '5.0',
91             $TargetMACOSX => '10.7',
92             },
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;