Crypt::RIPEMD160 man page on OpenServer

Man page or keyword search:  
man Server   5388 pages
apropos Keyword Search (all sections)
Output format
OpenServer logo
[printable version]

RIPEMD160(3)	      User Contributed Perl Documentation	  RIPEMD160(3)

NAME
       Crypt::RIPEMD160 - Perl extension for the RIPEMD-160 Hash function

SYNOPSIS
	   use Crypt::RIPEMD160;

	   $context = new Crypt::RIPEMD160;
	   $context->reset();

	   $context->add(LIST);
	   $context->addfile(HANDLE);

	   $digest = $context->digest();
	   $string = $context->hexdigest();

	   $digest = Crypt::RIPEMD160->hash(SCALAR);
	   $string = Crypt::RIPEMD160->hexhash(SCALAR);

DESCRIPTION
       The Crypt::RIPEMD160 module allows you to use the RIPEMD160 Message
       Digest algorithm from within Perl programs.

       The module is based on the implementation from Antoon Bosselaers from
       Katholieke Universiteit Leuven.

       A new RIPEMD160 context object is created with the new operation.  Mul-
       tiple simultaneous digest contexts can be maintained, if desired.  The
       context is updated with the add operation which adds the strings con-
       tained in the LIST parameter. Note, however, that "add('foo', 'bar')",
       "add('foo')" followed by "add('bar')" and "add('foobar')" should all
       give the same result.

       The final message digest value is returned by the digest operation as a
       20-byte binary string. This operation delivers the result of add opera-
       tions since the last new or reset operation. Note that the digest oper-
       ation is effectively a destructive, read-once operation. Once it has
       been performed, the context must be reset before being used to calcu-
       late another digest value.

       Several convenience functions are also provided. The addfile operation
       takes an open file-handle and reads it until end-of file in 8192 byte
       blocks adding the contents to the context. The file-handle can either
       be specified by name or passed as a type-glob reference, as shown in
       the examples below. The hexdigest operation calls digest and returns
       the result as a printable string of hexdecimal digits. This is exactly
       the same operation as performed by the unpack operation in the examples
       below.

       The hash operation can act as either a static member function (ie you
       invoke it on the RIPEMD160 class as in the synopsis above) or as a nor-
       mal virtual function. In both cases it performs the complete RIPEMD160
       cycle (reset, add, digest) on the supplied scalar value. This is conve-
       nient for handling small quantities of data. When invoked on the class
       a temporary context is created. When invoked through an already created
       context object, this context is used. The latter form is slightly more
       efficient. The hexhash operation is analogous to hexdigest.

EXAMPLES
	   use Crypt::RIPEMD160;

	   $ripemd160 = new Crypt::RIPEMD160;
	   $ripemd160->add('foo', 'bar');
	   $ripemd160->add('baz');
	   $digest = $ripemd160->digest();

	   print("Digest is " . unpack("H*", $digest) . "\n");

       The above example would print out the message

	   Digest is f137cb536c05ec2bc97e73327937b6e81d3a4cc9

       provided that the implementation is working correctly.

       Remembering the Perl motto ("There's more than one way to do it"), the
       following should all give the same result:

	   use Crypt::RIPEMD160;
	   $ripemd160 = new Crypt::RIPEMD160;

	   die "Can't open /etc/passwd ($!)\n" unless open(P, "/etc/passwd");

	   seek(P, 0, 0);
	   $ripemd160->reset;
	   $ripemd160->addfile(P);
	   $d = $ripemd160->hexdigest;
	   print "addfile (handle name) = $d\n";

	   seek(P, 0, 0);
	   $ripemd160->reset;
	   $ripemd160->addfile(\*P);
	   $d = $ripemd160->hexdigest;
	   print "addfile (type-glob reference) = $d\n";

	   seek(P, 0, 0);
	   $ripemd160->reset;
	   while (<P>)
	   {
	       $ripemd160->add($_);
	   }
	   $d = $ripemd160->hexdigest;
	   print "Line at a time = $d\n";

	   seek(P, 0, 0);
	   $ripemd160->reset;
	   $ripemd160->add(<P>);
	   $d = $ripemd160->hexdigest;
	   print "All lines at once = $d\n";

	   seek(P, 0, 0);
	   $ripemd160->reset;
	   while (read(P, $data, (rand % 128) + 1))
	   {
	       $ripemd160->add($data);
	   }
	   $d = $ripemd160->hexdigest;
	   print "Random chunks = $d\n";

	   seek(P, 0, 0);
	   $ripemd160->reset;
	   undef $/;
	   $data = <P>;
	   $d = $ripemd160->hexhash($data);
	   print "Single string = $d\n";

	   close(P);

NOTE
       The RIPEMD160 extension may be redistributed under the same terms as
       Perl.  The RIPEMD160 algorithm is published in "Fast Software Encryp-
       tion, LNCS 1039, D. Gollmann (Ed.), pp.71-82".

       The basic C code implementing the algorithm is covered by the following
       copyright:

	"
	/********************************************************************\
	 *
	 *	FILE:	  rmd160.c
	 *
	 *	CONTENTS: A sample C-implementation of the RIPEMD-160
	 *		  hash-function.
	 *	TARGET:	  any computer with an ANSI C compiler
	 *
	 *	AUTHOR:	  Antoon Bosselaers, ESAT-COSIC
	 *	DATE:	  1 March 1996
	 *	VERSION:  1.0
	 *
	 *	Copyright (c) Katholieke Universiteit Leuven
	 *	1996, All Rights Reserved
	 *
	\********************************************************************/
	"

RIPEMD-160 test suite results (ASCII):
       " * message: "" (empty string)
	 hashcode: 9c1185a5c5e9fc54612808977ee8f548b2258d31 * message: "a"
	 hashcode: 0bdc9d2d256b3ee9daae347be6f4dc835a467ffe * message: "abc"
	 hashcode: 8eb208f7e05d987a9b044a8e98c6b087f15a0bfc * message: "mes-
       sage digest"
	 hashcode: 5d0689ef49d2fae572b881b123a85ffa21595f36 * message: "abcde-
       fghijklmnopqrstuvwxyz"
	 hashcode: f71c27109c692c1b56bbdceb5b9d2865b3708dbc * message: "abcd-
       bcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"
	 hashcode: 12a053384a9c0c88e405a06c27dcf49ada62eb2b * message:
       "A...Za...z0...9"
	 hashcode: b0e20b6e3116640286ed3a87a5713079b21f5189 * message: 8 times
       "1234567890"
	 hashcode: 9b752e45573d4b39f4dbd3323cab82bf63326bfb * message: 1 mil-
       lion times "a"
	 hashcode: 52783243c1697bdbe16d37f97f68f08325dc1528 "

       This copyright does not prohibit distribution of any version of Perl
       containing this extension under the terms of the GNU or Artistic
       licences.

AUTHOR
       The RIPEMD-160 interface was written by Christian H. Geuer-Pollmann
       (CHGEUER) ("geuer-pollmann@nue.et-inf.uni.siegen.de") and Ken Neighbors
       ("ken@nsds.com").

SEE ALSO
       MD5(3pm) and SHA(1).

perl v5.8.8			  1998-07-08			  RIPEMD160(3)
[top]
                             _         _         _ 
                            | |       | |       | |     
                            | |       | |       | |     
                         __ | | __ __ | | __ __ | | __  
                         \ \| |/ / \ \| |/ / \ \| |/ /  
                          \ \ / /   \ \ / /   \ \ / /   
                           \   /     \   /     \   /    
                            \_/       \_/       \_/ 
More information is available in HTML format for server OpenServer

List of man pages available for OpenServer

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net