Pure perl6 implementation of SHA-256 and RIPEMD-160 digests
Perl 6
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
lib use polymod in sha256 return line Nov 18, 2015
t increment VERSION and remove useless BEGIN in tests Sep 5, 2014
CREDITS adding credit file Jun 7, 2012
LICENSE use perl6 ecosystem conventions May 19, 2012
META6.json Use SPDX identifier in license field of META6.json Apr 26, 2017
README.md Blob instead of Buf Apr 4, 2014


This is a perl6 module implementing some digest algorithms in pure Perl6 (no parrot or nqp:: code).

The interface is minimal: functions only return Blob and only take a Blob as argument. It's up to the user to turn it into an hex string if he needs to.

use Digest::SHA;
say my $sha256 = sha256 "hello".encode: 'ascii';

use Digest::RIPEMD;
say rmd160 "bye".encode: "ascii";

sub buf_to_hex { [~] $^buf.list».fmt: "%02x" }
say buf_to_hex $sha256;

Currently implemented:

  • Digest
    • md5
  • Digest::SHA :
    • sha256
    • sha1
  • Digest::RIPEMD :
    • rmd160

This work is published under the terms of the artistic license, as rakudo is. See LICENSE file.