Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic


by btrott (Parson)
on Aug 06, 2001 at 22:09 UTC ( [id://102535] : perlmeditation . print w/replies, xml ) Need Help??

I mentioned this module in a posting a couple of weeks ago, and several people expressed interest, so I thought I would make a small announcement. Hope that's not frowned upon. :)

Crypt::OpenPGP is a pure-Perl implementation of the OpenPGP standard. In addition to support for the standard itself, Crypt::OpenPGP claims compatibility with many other PGP implementations, both those that support the standard and those that preceded it.

Crypt::OpenPGP provides digital signing/verification, encryption/decryption, keyring management, and key-pair generation.


  • Full compatibility with other PGP implementations: PGP2, PGP5, GnuPG. Offers a 'Compat' flag when encrypting and signing data that automatically chooses the correct encryption cipher, digest algorithm etc. for various other PGP implementations.
  • Encryption/decryption, signing/verification, key generation.
  • Symmetric cipher support: IDEA, 3DES, Blowfish, Twofish, Rijndael (128, 192, and 256 bit keys).
  • Public key support: RSA and DSA for signing/verification, RSA and ElGamal for encryption.
  • Digest algorithms: MD5, SHA-1, RIPE-MD/160.
  • Supports packet compression (ZIP and Zlib).
More information:

Replies are listed 'Best First'.
by John M. Dlugosz (Monsignor) on Aug 07, 2001 at 01:53 UTC
    Is there a tutorial or examples on the way, too?

    From the docs, it looks like it only works on data saved in named files, not streams that I can feed as I go. Is that correct?

    I plan to try it shortly, or at least this weekend (after I finish another module).

    This is very exciting! I've seen how easy it is to do RC4 symetric encryption in Perl, but the idea of doing public key stuff was daunting.


      It works on scalar data; the data doesn't have to be in files. Look at the 'Data' parameter to encrypt and sign, in particular; that lets you specify the data to be encrypted/signed as a scalar string, rather than as a filename.

      And all of the methods return data as a scalar; they don't write data to a file.

      Furthermore, you can always go under the hood and use the lower-level interface in the other modules if you wish. I will add some "SEE ALSO" sections to the main Crypt::OpenPGP docs, but the other classes are all documented (basically :), so they should be useable on their own.

      BTW: As for tutorial and examples: at the moment the best I can offer for examples is the test suite and the SYNOPSIS. Examples will come in the future.

        OK, that's good.

        When I looked at your site, the docs had all empty sections except a rather long overview. I saw parameters with names like file=> and it looked like you were passing filenames.

(redmist) Re: ANNOUNCE Crypt::OpenPGP
by redmist (Deacon) on Aug 07, 2001 at 00:41 UTC

    This is AWESOME!!! btrott++. This is what I and (I'm sure) countless others have been waiting for! This is a priceless addition to the Perl toolset! Kudos to you sir.

    Purple Monkey Dishwasher