Crypt::...L::ECDSA(3)

πŸ“¦
version 0.10 Β· 2 versions
, in fedora 43

πŸ’– Crypt::OpenSSL::ECDSA β€” the manual page, but make it make sense πŸ’–

okay bestie, so this is the Crypt::...L::ECDSA(3) page β€” like, the Crypt::OpenSSL::ECDSA module, from the User Contributed Perl Documentation corner of the internet. it's about signing stuff with math that lives on curves. yes, curves. slay. πŸ¦‹


✨ NAME ✨

Crypt::OpenSSL::ECDSA β€” a Perl extension for OpenSSL ECDSA (Elliptic Curve Digital Signature Algorithm). that's it, that's the whole vibe. πŸ’…


🌸 SYNOPSIS 🌸

here's the whole flow, literally exactly like this:

use Crypt::OpenSSL::ECDSA;
$sig = Crypt::OpenSSL::ECDSA::ECDSA_do_sign( $digest, $eckey );
$r = $sig->get_r;
$s = $sig->get_s;

$sig = Crypt::OpenSSL::ECDSA::ECDSA_SIG->new();
$sig->set_r($r);
$sig->set_s($s);
Crypt::OpenSSL::ECDSA::ECDSA_do_verify( $digest, $sig, $eckey );

sign it, grab the r and s, build a fresh sig object, set them back, verify. it's giving ✨ritual✨. no cap.


πŸ‘‘ DESCRIPTION πŸ‘‘

so this module gives you an interface to the ECDSA (Elliptic Curve Digital Signature Algorithm) functions inside OpenSSL. that's the whole point. πŸŽ€

Tested against OpenSSL 1.0.2

πŸ’œ Export

None by default. like, zero. nothing comes out to play unless you ask. πŸ™ˆ

πŸ“ Exportable constants

these are the constants you can export (iykyk):

ECDSA_F_ECDSA_CHECK
ECDSA_F_ECDSA_DATA_NEW_METHOD
ECDSA_F_ECDSA_DO_SIGN
ECDSA_F_ECDSA_DO_VERIFY
ECDSA_F_ECDSA_SIGN_SETUP
ECDSA_R_BAD_SIGNATURE
ECDSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE
ECDSA_R_ERR_EC_LIB
ECDSA_R_MISSING_PARAMETERS
ECDSA_R_NEED_NEW_SETUP_VALUES
ECDSA_R_NON_FIPS_METHOD
ECDSA_R_RANDOM_NUMBER_GENERATION_FAILED
ECDSA_R_SIGNATURE_MALLOC_FAILED

🌈 CLASS METHODS 🌈

⭐ new

$sig = Crypt::OpenSSL::ECDSA::ECDSA_SIG->new();

Creates a brand-new ECDSA Signature Object. main character energy, freshly born. πŸ‘‘

The internal "r" and "s" components? undefined. they haven't found themselves yet. it's a journey. πŸ¦‹


πŸ’« OBJECT METHODS πŸ’«

🌸 get_r;

$r = $sig->get_r;

Gets the signature "r" component.

The method returns a string representing a binary integer in network (big-endian) byte order. yes, that byte order. πŸ’…

🌸 get_s;

$s = $sig->get_s;

Gets the signature "s" component.

The method returns a string representing a binary integer in network (big-endian) byte order. same energy, different letter. ✨

🌸 set_r;

$sig->set_r($r);

Sets the signature "r" component.

The argument is a string representing a binary integer in network (big-endian) byte order.

🌸 set_s;

$sig->set_r($s);

Sets the signature "s" component.

The argument is a string representing a binary integer in network (big-endian) byte order.

not me noticing that the set_s example calls set_r... the docs said what the docs said and I am simply reporting it, verbatim, exactly as written. πŸ‘€ the text under it is definitely about set_s tho.

πŸ¦‹ SEE ALSO πŸ¦‹


πŸ’– AUTHOR πŸ’–

Mike McCauley, <mikem@airspayce.com>


Copyright (C) 2014 by Mike McCauley

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.18.1 or, at your option, any later version of Perl 5 you may have available.


πŸ’€ POD ERRORS πŸ’€

Hey! The above document had some coding errors, which are explained below:

Around line 151:

    '=item' outside of any '=over'

Around line 160:

    You forgot a '=back' before '=head1'

Around line 162:

    '=item' outside of any '=over'

Around line 201:

    You forgot a '=back' before '=head1'
okay so the manpage itself is calling itself out 😭 iconic behaviour honestly. we love a self-aware document.

and that's the whole page, bestie 🫢 this was perl v5.42.0, dated 2025-07-25, filed under Crypt::...L::ECDSA(3). go forth and sign responsibly. periodt. πŸ’…βœ¨

πŸ“¦ where this page comes from