Crypt::GOST_PP is a pure Perl implementation of the GOST encryption algorithm.
$ref = Crypt::GOST_PP->new( $passphrase );
$encrypted = $ref->encrypt( $plaintext );
$ref2 = Crypt::GOST_PP->new( $passphrase );
$decrypted = $ref2->decrypt( $encrypted );
GOST is a 64-bit symmectric block cipher with a 256-bit key, from the former Soviet Union.
It is important to note that there are (or have been) several other GOST encryption modules for perl. This version is in no way intended to supersede any other such implementations, specifically Crypt::GOST. The purpose for writing this module was that I do a great deal of work on Win32 systems, and I have been unsuccessful in my attempts to get Crypt::GOST to install correctly in that environment. A previous version of Crypt::GOST, v0.41, was also a pure perl implementation, but it lacked documentation, and as such it was more difficult to use than one would prefer. As a result of these two things, I wanted to write a pure perl implementation, with requisite documentation, that will run regardless of the OS.
Much of the core logic of Crypt::GOST_PP was originally based on Vipul Ved Prakash's "GOST in 417 bytes of Perl" http://www.vipul.net/gost/. The code contained herein has undergone numerous revisions and modifications since that original diminutive implementation.