1package Crypt::Digest::CHAES; 2 3### BEWARE - GENERATED FILE, DO NOT EDIT MANUALLY! 4 5use strict; 6use warnings; 7our $VERSION = '0.075'; 8 9use base qw(Crypt::Digest Exporter); 10our %EXPORT_TAGS = ( all => [qw( chaes chaes_hex chaes_b64 chaes_b64u chaes_file chaes_file_hex chaes_file_b64 chaes_file_b64u )] ); 11our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } ); 12our @EXPORT = qw(); 13 14use Carp; 15$Carp::Internal{(__PACKAGE__)}++; 16use Crypt::Digest; 17 18sub hashsize { Crypt::Digest::hashsize('CHAES') } 19sub chaes { Crypt::Digest::digest_data('CHAES', @_) } 20sub chaes_hex { Crypt::Digest::digest_data_hex('CHAES', @_) } 21sub chaes_b64 { Crypt::Digest::digest_data_b64('CHAES', @_) } 22sub chaes_b64u { Crypt::Digest::digest_data_b64u('CHAES', @_) } 23sub chaes_file { Crypt::Digest::digest_file('CHAES', @_) } 24sub chaes_file_hex { Crypt::Digest::digest_file_hex('CHAES', @_) } 25sub chaes_file_b64 { Crypt::Digest::digest_file_b64('CHAES', @_) } 26sub chaes_file_b64u { Crypt::Digest::digest_file_b64u('CHAES', @_) } 27 281; 29 30=pod 31 32=head1 NAME 33 34Crypt::Digest::CHAES - Hash function - CipherHash based on AES [size: 128 bits] 35 36=head1 SYNOPSIS 37 38 ### Functional interface: 39 use Crypt::Digest::CHAES qw( chaes chaes_hex chaes_b64 chaes_b64u 40 chaes_file chaes_file_hex chaes_file_b64 chaes_file_b64u ); 41 42 # calculate digest from string/buffer 43 $chaes_raw = chaes('data string'); 44 $chaes_hex = chaes_hex('data string'); 45 $chaes_b64 = chaes_b64('data string'); 46 $chaes_b64u = chaes_b64u('data string'); 47 # calculate digest from file 48 $chaes_raw = chaes_file('filename.dat'); 49 $chaes_hex = chaes_file_hex('filename.dat'); 50 $chaes_b64 = chaes_file_b64('filename.dat'); 51 $chaes_b64u = chaes_file_b64u('filename.dat'); 52 # calculate digest from filehandle 53 $chaes_raw = chaes_file(*FILEHANDLE); 54 $chaes_hex = chaes_file_hex(*FILEHANDLE); 55 $chaes_b64 = chaes_file_b64(*FILEHANDLE); 56 $chaes_b64u = chaes_file_b64u(*FILEHANDLE); 57 58 ### OO interface: 59 use Crypt::Digest::CHAES; 60 61 $d = Crypt::Digest::CHAES->new; 62 $d->add('any data'); 63 $d->addfile('filename.dat'); 64 $d->addfile(*FILEHANDLE); 65 $result_raw = $d->digest; # raw bytes 66 $result_hex = $d->hexdigest; # hexadecimal form 67 $result_b64 = $d->b64digest; # Base64 form 68 $result_b64u = $d->b64udigest; # Base64 URL Safe form 69 70=head1 DESCRIPTION 71 72Provides an interface to the CHAES digest algorithm. 73 74=head1 EXPORT 75 76Nothing is exported by default. 77 78You can export selected functions: 79 80 use Crypt::Digest::CHAES qw(chaes chaes_hex chaes_b64 chaes_b64u 81 chaes_file chaes_file_hex chaes_file_b64 chaes_file_b64u); 82 83Or all of them at once: 84 85 use Crypt::Digest::CHAES ':all'; 86 87=head1 FUNCTIONS 88 89=head2 chaes 90 91Logically joins all arguments into a single string, and returns its CHAES digest encoded as a binary string. 92 93 $chaes_raw = chaes('data string'); 94 #or 95 $chaes_raw = chaes('any data', 'more data', 'even more data'); 96 97=head2 chaes_hex 98 99Logically joins all arguments into a single string, and returns its CHAES digest encoded as a hexadecimal string. 100 101 $chaes_hex = chaes_hex('data string'); 102 #or 103 $chaes_hex = chaes_hex('any data', 'more data', 'even more data'); 104 105=head2 chaes_b64 106 107Logically joins all arguments into a single string, and returns its CHAES digest encoded as a Base64 string, B<with> trailing '=' padding. 108 109 $chaes_b64 = chaes_b64('data string'); 110 #or 111 $chaes_b64 = chaes_b64('any data', 'more data', 'even more data'); 112 113=head2 chaes_b64u 114 115Logically joins all arguments into a single string, and returns its CHAES digest encoded as a Base64 URL Safe string (see RFC 4648 section 5). 116 117 $chaes_b64url = chaes_b64u('data string'); 118 #or 119 $chaes_b64url = chaes_b64u('any data', 'more data', 'even more data'); 120 121=head2 chaes_file 122 123Reads file (defined by filename or filehandle) content, and returns its CHAES digest encoded as a binary string. 124 125 $chaes_raw = chaes_file('filename.dat'); 126 #or 127 $chaes_raw = chaes_file(*FILEHANDLE); 128 129=head2 chaes_file_hex 130 131Reads file (defined by filename or filehandle) content, and returns its CHAES digest encoded as a hexadecimal string. 132 133 $chaes_hex = chaes_file_hex('filename.dat'); 134 #or 135 $chaes_hex = chaes_file_hex(*FILEHANDLE); 136 137B<BEWARE:> You have to make sure that the filehandle is in binary mode before you pass it as argument to the addfile() method. 138 139=head2 chaes_file_b64 140 141Reads file (defined by filename or filehandle) content, and returns its CHAES digest encoded as a Base64 string, B<with> trailing '=' padding. 142 143 $chaes_b64 = chaes_file_b64('filename.dat'); 144 #or 145 $chaes_b64 = chaes_file_b64(*FILEHANDLE); 146 147=head2 chaes_file_b64u 148 149Reads file (defined by filename or filehandle) content, and returns its CHAES digest encoded as a Base64 URL Safe string (see RFC 4648 section 5). 150 151 $chaes_b64url = chaes_file_b64u('filename.dat'); 152 #or 153 $chaes_b64url = chaes_file_b64u(*FILEHANDLE); 154 155=head1 METHODS 156 157The OO interface provides the same set of functions as L<Crypt::Digest>. 158 159=head2 new 160 161 $d = Crypt::Digest::CHAES->new(); 162 163=head2 clone 164 165 $d->clone(); 166 167=head2 reset 168 169 $d->reset(); 170 171=head2 add 172 173 $d->add('any data'); 174 #or 175 $d->add('any data', 'more data', 'even more data'); 176 177=head2 addfile 178 179 $d->addfile('filename.dat'); 180 #or 181 $d->addfile(*FILEHANDLE); 182 183=head2 add_bits 184 185 $d->add_bits($bit_string); # e.g. $d->add_bits("111100001010"); 186 #or 187 $d->add_bits($data, $nbits); # e.g. $d->add_bits("\xF0\xA0", 16); 188 189=head2 hashsize 190 191 $d->hashsize; 192 #or 193 Crypt::Digest::CHAES->hashsize(); 194 #or 195 Crypt::Digest::CHAES::hashsize(); 196 197=head2 digest 198 199 $result_raw = $d->digest(); 200 201=head2 hexdigest 202 203 $result_hex = $d->hexdigest(); 204 205=head2 b64digest 206 207 $result_b64 = $d->b64digest(); 208 209=head2 b64udigest 210 211 $result_b64url = $d->b64udigest(); 212 213=head1 SEE ALSO 214 215=over 216 217=item * L<CryptX|CryptX>, L<Crypt::Digest> 218 219=item * L<https://en.wikipedia.org/wiki/Cryptographic_hash_function#Hash_functions_based_on_block_ciphers> 220 221=back 222 223=cut 224