File Coverage

blib/lib/Crypt/OpenPGP/Plaintext.pm
Criterion Covered Total %
statement 44 44 100.0
branch 2 2 100.0
condition 3 4 75.0
subroutine 11 11 100.0
pod 5 6 83.3
total 65 67 97.0


line stmt bran cond sub pod time code
1             package Crypt::OpenPGP::Plaintext;
2 12     12   139182 use strict;
  12         25  
  12         512  
3 12     12   59 use warnings;
  12         20  
  12         943  
4              
5             our $VERSION = '1.19'; # VERSION
6              
7 12     12   682 use Crypt::OpenPGP::Buffer;
  12         26  
  12         334  
8 12     12   739 use Crypt::OpenPGP::ErrorHandler;
  12         26  
  12         394  
9 12     12   62 use base qw( Crypt::OpenPGP::ErrorHandler );
  12         18  
  12         7316  
10              
11             sub new {
12 67     67 1 835 my $class = shift;
13 67         225 my $pt = bless { }, $class;
14 67         394 $pt->init(@_);
15             }
16              
17 39     39 1 431 sub data { $_[0]->{data} }
18 15     15 1 109 sub mode { $_[0]->{mode} }
19              
20             sub init {
21 67     67 0 152 my $pt = shift;
22 67         199 my %param = @_;
23 67 100       250 if (my $data = $param{Data}) {
24 33         169 $pt->{data} = $data;
25 33   100     226 $pt->{mode} = $param{Mode} || 'b';
26 33         101 $pt->{timestamp} = time;
27 33   50     296 $pt->{filename} = $param{Filename} || '';
28             }
29 67         261 $pt;
30             }
31              
32             sub parse {
33 34     34 1 86 my $class = shift;
34 34         91 my($buf) = @_;
35 34         140 my $pt = $class->new;
36 34         211 $pt->{mode} = $buf->get_char;
37 34         817 $pt->{filename} = $buf->get_bytes($buf->get_int8);
38 34         1110 $pt->{timestamp} = $buf->get_int32;
39 34         626 $pt->{data} = $buf->get_bytes( $buf->length - $buf->offset );
40 34         714 $pt;
41             }
42              
43             sub save {
44 31     31 1 671 my $pt = shift;
45 31         172 my $buf = Crypt::OpenPGP::Buffer->new;
46 31         547 $buf->put_char($pt->{mode});
47 31         372 $buf->put_int8(length $pt->{filename});
48 31         899 $buf->put_bytes($pt->{filename});
49 31         5438 $buf->put_int32($pt->{timestamp});
50 31         275 $buf->put_bytes($pt->{data});
51 31         308 $buf->bytes;
52             }
53              
54             1;
55             __END__