Crypt::RSA::Blind - Blind RSA signatures
$Revision: 1.010 $ $Date: Sat Oct 27 21:19:50 PDT 2018 $
use Crypt::RSA::Blind; my $rsab = new Crypt::RSA::Blind; my ($pubkey, $seckey) = $rsab->keygen(Size => 1024); my $msg = "Hello, world!"; my $init = $rsab->init; my $req = $rsab->request( Key => $pubkey, Init => $init, Message => $msg ); my $blindsig = $rsab->sign( Key => $seckey, Plaintext => $req ); my $sig = $rsab->unblind( Key => $pubkey, Init => $init, Signature => $blindsig ); print "OK\n" if $rsab->verify( Key => $pubkey, Message => $msg, Signature => $sig );
Creates and returns a new Crypt::RSA::Blind object.
Generates and returns an RSA key-pair of specified bitsize. This is a synonym for Crypt::RSA::Key::generate(). Parameters and return values are described in the Crypt::RSA::Key(3) manpage.
Generates and returns an initialization vector for the blind signing. The initialization vector should be passed in to the req(), and unblind() methods in the Init named parameter.
The RSA blind signature protocol doesn't actually require the use of initialization vectors, and this module can be used just fine with the Init parameter set to 1 or any number. However, this module uses the initialization vector to keep track of the blinding factor for different requests, so it is necessary to use initialization vectors when creating multiple interlaved signing requests.
Generates and returns a blind-signing request. The following named parameters are required:
Init - The initialization vector from init()
Key - The public key of the signer
Message - The message to be blind signed
Generates and returns a blind signature. The following named parameters are required:
Key - The private key of the signer
Plaintext - The blind-signing request
Unblinds a blind signature and returns a verifiable signature. The following named parameters are required:
Signature - The blind signature
Verify a signature. The following named parameters are required:
Message - The message that was signed
Crypt::RSA::Blind relies on Crypt::RSA, which uses an error handling method implemented in Crypt::RSA::Errorhandler. When a method fails it returns undef and saves the error message. This error message is available to the caller through the errstr() method. For more details see the Crypt::RSA::Errorhandler(3) manpage.
Accessors can be called with no arguments to query the value of an object property, or with a single argument, to set the property to a specific value (unless it is read-only).
The bitsize of the full-domain hash that will be generated from the message to be blind-signed.
The bitsize of the init vector.
The bitsize of the blinding factor.
Ashish Gulhati, <crypt-rsab at hash.neo.tc>
<crypt-rsab at hash.neo.tc>
Please report any bugs or feature requests to bug-crypt-rsa-blind at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Crypt-RSA-Blind. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
bug-crypt-rsa-blind at rt.cpan.org
You can find documentation for this module with the perldoc command.
perldoc Crypt::RSA::Blind
You can also look for information at:
RT: CPAN's request tracker
http://rt.cpan.org/NoAuth/Bugs.html?Dist=Crypt-RSA-Blind
AnnoCPAN: Annotated CPAN documentation
http://annocpan.org/dist/Crypt-RSA-Blind
CPAN Ratings
http://cpanratings.perl.org/d/Crypt-RSA-Blind
Search CPAN
http://search.cpan.org/dist/Crypt-RSA-Blind/
Copyright (c) Ashish Gulhati.
This software package is Open Software; you can use, redistribute, and/or modify it under the terms of the Open Artistic License 2.0.
Please see http://www.opensoftwr.org/oal20.txt for the full license terms, and ensure that the license grant applies to you before using or modifying this software. By using or modifying this software, you indicate your agreement with the license terms.
To install Crypt::RSA::Blind, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Crypt::RSA::Blind
CPAN shell
perl -MCPAN -e shell install Crypt::RSA::Blind
For more information on module installation, please visit the detailed CPAN module installation guide.