Digest::HMAC_MD6 - MD6 Keyed-Hashing for Message Authentication


Digest-HMAC_MD6 documentation Contained in the Digest-HMAC_MD6 distribution.

Index


Code Index:

NAME

Top

Digest::HMAC_MD6 - MD6 Keyed-Hashing for Message Authentication

VERSION

Top

This document describes Digest::HMAC_MD6 version 0.01

SYNOPSIS

Top

  use Digest::HMAC_MD6 qw(hmac_md6 hmac_md6_hex);
  $digest = hmac_md6($data, $key);
  print hmac_md6_hex($data, $key);

  # OO style
  use Digest::HMAC_MD6;
  $hmac = Digest::HMAC_MD6->new($key);

  $hmac->add($data);
  $hmac->addfile(*FILE);

  $digest = $hmac->digest;
  $digest = $hmac->hexdigest;
  $digest = $hmac->b64digest;

DESCRIPTION

Top

This module provides HMAC-MD6 hashing.

INTERFACE

Top

new

Create a new Digest::HMAC_MD6. The arguments are

$key

The key to hash with.

$block_size

The block size to use.

$hash_bits

The number of bits of hash to compute.

The $block_size and $hash_bits arguments may be omitted in which case they default to 64 and 256 respectively.

hmac_md6

Compute a MD6 HMAC hash and return its binary representation. The arguments are

$data

The data to hash.

$key

The key to hash with.

$block_size

The block size to use.

$hash_bits

The number of bits of hash to compute.

The $block_size and $hash_bits arguments may be omitted in which case they default to 64 and 256 respectively.

hmac_md6_hex

Like hmac_md6 but return the hex representation of the key.

hmac_md6_base64

Like hmac_md6 but return the base 64 representation of the key.

SEE ALSO

Top

Digest::HMAC, Digest::MD6

DEPENDENCIES

Top

Digest::HMAC, Digest::MD6

INCOMPATIBILITIES

Top

None reported.

BUGS AND LIMITATIONS

Top

Please report any bugs or feature requests to bug-digest-hmac_md6@rt.cpan.org, or through the web interface at http://rt.cpan.org.

AUTHOR

Top

Andy Armstrong <andy@hexten.net>

LICENCE AND COPYRIGHT

Top


Digest-HMAC_MD6 documentation Contained in the Digest-HMAC_MD6 distribution.
package Digest::HMAC_MD6;

use warnings;
use strict;

use Digest::MD6 qw( md6 md6_hex md6_base64 );

use base qw( Digest::HMAC Exporter );

our @EXPORT_OK = qw( hmac_md6 hmac_md6_hex hmac_md6_base64 );

our $VERSION = '0.01';

sub new {
  my ( $class, $key, $block_size, $hash_bits ) = @_;

  $block_size ||= 64;

  $key = Digest::MD6->new( $hash_bits )->add( $key )->digest
   if length( $key ) > $block_size;

  my $self = bless {}, $class;
  $self->{k_ipad} = $key ^ ( chr( 0x36 ) x $block_size );
  $self->{k_opad} = $key ^ ( chr( 0x5c ) x $block_size );
  $self->{hasher}
   = Digest::MD6->new( $hash_bits )->add( $self->{k_ipad} );
  return $self;
}

### Functional interface

sub hmac_md6 {
  my $data = shift;
  __PACKAGE__->new( @_ )->add( $data )->digest;
}

sub hmac_md6_hex {
  my $data = shift;
  __PACKAGE__->new( @_ )->add( $data )->hexdigest;
}

sub hmac_md6_base64 {
  my $data = shift;
  __PACKAGE__->new( @_ )->add( $data )->b64digest;
}

1;
__END__