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 $


In reply to Re: Using Crypt::RSA for data signing in perl by Mr. Muskrat
in thread Using Crypt::RSA for data signing in perl by shivam99aa

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.