File Coverage

blib/lib/String/Obfuscate/Base64.pm
Criterion Covered Total %
statement 33 33 100.0
branch 1 2 50.0
condition n/a
subroutine 9 9 100.0
pod 3 3 100.0
total 46 47 97.8


line stmt bran cond sub pod time code
1 1     1   1139 use v5.20;
  1         4  
2 1     1   4 use warnings;
  1         2  
  1         56  
3 1     1   4 use experimental 'signatures';
  1         2  
  1         5  
4              
5             package String::Obfuscate::Base64 {
6 1     1   1502 use parent 'String::Obfuscate';
  1         2  
  1         6  
7 1     1   106 use constant B64_CHARS => ['a'..'z', 'A'..'Z', 0..9, '+', '/'];
  1         1  
  1         94  
8 1     1   498 use MIME::Base64 qw(encode_base64 decode_base64);
  1         805  
  1         247  
9              
10 34     34 1 19350 sub new ($class, %params) {
  34         65  
  34         86  
  34         76  
11 34 50       108 die 'Cannot use custom chars in Base64 mode' if exists $params{'chars'};
12 34         135 $class->SUPER::new(chars => B64_CHARS, %params);
13             }
14              
15 40     40 1 94 sub obfuscate ($self, $str) { $self->SUPER::obfuscate(encode_base64($str)) }
  40         60  
  40         81  
  40         62  
  40         204  
16 24     24 1 4300 sub deobfuscate ($self, $str) { decode_base64($self->SUPER::deobfuscate($str)) }
  24         41  
  24         49  
  24         35  
  24         98  
17             }
18              
19             1;