in reply to Using Crypt::RSA for data signing in perl

shivam99aa is running the code currently list in the OP. Apparently there is a bug or two in Crypt::RSA::Key::Private.

If you use a private key that doesn't have a passphrase, you get:

Number found where operator expected at (eval 17) line 3, near ...
        (Missing semicolon on previous line?)
Bareword found where operator expected at (eval 17) line 3, near ...
        (Missing operator before ...
Bareword found where operator expected at (eval 17) line 3, near ...
        (Missing operator before ...

Whether or not the private key has a passphrase, you get:

Can't use an undefined value as a HASH reference at /opt/perl/lib/site_perl/5.18.2/Crypt/RSA/Key/Private.pm line 217.

The problems stem from new Crypt::RSA::Key::Private calling its read method that calls its deserialize method which joins the lines into a string that is evaled. The result of the eval overwrites $self which makes it undef.

So yeah, the OP's code is not at fault here; the module is evaling the private key.

Update: Crypt::RSA::Key::Private has not seen an update since 2001.

## $Id: Private.pm,v 1.15 2001/09/25 14:11:22 vipul Exp $

  • Comment on Re: Using Crypt::RSA for data signing in perl

Replies are listed 'Best First'.
Re^2: Using Crypt::RSA for data signing in perl
by shivam99aa (Novice) on Dec 07, 2014 at 09:10 UTC

    Sorry for replying so late on your reply but can you suggest me some alternate way of doing the task