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