ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/OpenSSL/OpenSSL/Digest.pm
Revision: 1.1
Committed: Sat Oct 27 01:53:23 2001 UTC (22 years, 6 months ago) by stefan
Branch: MAIN
CVS Tags: BEFORE_5_8_REGEX_FIX, HEAD
Log Message:
*** empty log message ***

File Contents

# Content
1 package OpenSSL::Digest;
2
3 =head1 NAME
4
5 OpenSSL::Digest -- Access to OpenSSL digest functions
6
7 =head1 SYNOPSIS
8
9 use OpenSSL::Digest;
10
11 =head1 DESCRIPTION
12
13 Foo/bar.
14
15 =over 4
16
17 =cut
18
19 use OpenSSL;
20
21 our $VERSION = '0.06';
22 use base Exporter;
23 @EXPORT_OK = qw(digest digest_hex digest_base64 new_digest enum_digest
24 md4 md5 sha sha1 dss dss1 mdc2 ripemd160 md2
25 md4_hex md5_hex sha_hex sha1_hex dss_hex dss1_hex mdc2_hex ripemd160_hex md2_hex
26 md4_base64 md5_base64 sha_base64 sha1_base64 dss_base64 dss1_base64 mdc2_base64 ripemd160_base64 md2_base64
27 new_md4 new_md5 new_sha new_sha1 new_dss new_dss1 new_mdc2 new_ripemd160 new_md2
28 );
29
30 our %dig_hash_hex;
31 our %dig_hash_base64;
32 our %dig_hash;
33 our %dig_hash_new;
34 our @dignames;
35
36 for (qw(md4 md5 sha sha1 dss dss1 mdc2 ripemd160 md2)) {
37 my $r = '\&OpenSSL::Digest::';
38 $dig_hash_hex{$_} = eval $r.$_."_hex";
39 $dig_hash_base64{$_} = eval $r.$_."_base64";
40 $dig_hash_new{$_} = eval $r.'new_'.$_;
41 $dig_hash{$_} = eval $r.$_;
42 push @dignames, $_;
43 }
44
45 =back
46
47 =head1 FUNCTIONS
48
49 =over 4
50
51 =item @digs = enum_digest();
52
53 Returns a list of supported digest.
54 (sha1, md5, md2, md4, sha, mdc2, ripemd160, dss, dss1)
55
56 =cut
57
58 sub enum_digest()
59 {
60 @dignames;
61 }
62
63
64 =item $hexdigest = digest_hex($digname, $string, ...)
65
66 returns $digname digest over $string hex encoded
67
68
69 =cut
70
71 sub digest_hex($;@) {
72 my $f = shift;
73 $dig_hash_hex{$f}(join '', @_)
74 }
75
76 =item $bindigest = digest($digname, $string, ...)
77
78 returns $digname digest over $string raw
79
80 =cut
81
82 sub digest($;@) {
83 my $f = shift;
84 $dig_hash{$f}(join '', @_)
85 }
86
87 =item $base64_digest = digest_base64($digname, $string, ...)
88
89 returns $digname digest over $string base64 encoded
90
91 =cut
92
93 sub digest_base64($;@) {
94 my $f = shift;
95 $dig_hash_base64{$f}(join '', @_)
96 }
97
98 =item $hex_digest = {digestname}_hex($string)
99
100 Direct access to low level function.
101
102 =item $raw_digest = {digestname}($string)
103
104 Direct access to low level function.
105
106 =item $base64_digest = {digestname}_base64($string)
107
108 Direct access to low level function.
109
110 =item $ctx = {digestname}_new
111
112 Access to classical stream based approach.
113
114 =item $ctx = new_digest($digname)
115
116 Access to classical stream based approach.
117
118 =cut
119
120 sub new_digest($) {
121 $dig_hash_new{$_[0]}();
122 }
123
124 =item $ctx->update($string)
125
126 Adds $string to the digest
127
128 =item $ctx->final
129
130 Returns the digest raw.
131
132 =item $ctx->final_hex
133
134 Returns the digest hex encoded.
135
136 =item $ctx->final_base64
137
138 Returns the digest base64 encoded.
139
140
141 =back
142
143 =head1 SEE ALSO
144
145 L<OpenSSL>, L<OpenSSL::HMAC>.
146
147 =head1 AUTHOR
148
149 Stefan Traby <stefan@hello-penguin.com>
150 http://mindterm.plan9.de/
151
152 =cut
153
154 1;