10 @ISA = qw(Digest::base);
20 $$self .= join("", @_);
26 my $len = length($$self);
27 my $first = ($len > 0) ? substr($$self, 0, 1) : "X";
29 return sprintf "$first%04d", $len;
33 my $ctx = LenDigest->new;
34 ok($ctx->digest, "X0000");
35 ok($ctx->hexdigest, "5830303030");
36 ok($ctx->b64digest, "WDAwMDA");
39 ok($ctx->digest, "f0003");
42 ok($ctx->hexdigest, "6630303033");
45 ok($ctx->b64digest, "ZjAwMDM");
47 open(F, ">xxtest$$") || die;
49 print F "abc" x 100, "\n";
52 open(F, "xxtest$$") || die;
55 unlink("xxtest$$") || warn;
57 ok($ctx->digest, "a0301");
60 $ctx->add_bits("1010");
62 ok($@ =~ /^Number of bits must be multiple of 8/);
64 $ctx->add_bits("01010101");
65 ok($ctx->digest, "U0001");
68 $ctx->add_bits("abc", 12);
70 ok($@ =~ /^Number of bits must be multiple of 8/);
72 $ctx->add_bits("abc", 16);
73 ok($ctx->digest, "a0002");
75 $ctx->add_bits("abc", 32);
76 ok($ctx->digest, "a0003");