NAME
Crypt::ECDSA::Blind - Blind ECDSA Signatures
VERSION
$Revision: 1.015 $
$Date: Tue Oct 16 22:40:55 PDT 2018 $
SYNOPSIS
This module implements the blind ECDSA signature protocol outlined in [1].
use Crypt::ECDSA::Blind;
my $ecdsab = new Crypt::ECDSA::Blind;
my ($pubkey, $seckey) = $ecdsab->keygen;
my $msg = 'Hello, world!';
my $init = $ecdsab->init;
my $req = $ecdsab->request( Key => $pubkey, Init => $init,
Message => $msg );
my $blindsig = $ecdsab->sign( Key => $seckey, Init => $init,
Plaintext => $req );
my $sig = $ecdsab->unblind( Key => $pubkey, Init => $init,
Signature => $blindsig );
print "Verified\n" if $ecdsab->verify( Key => $pubkey, Message => $msg,
Signature => $sig );
METHODS
new
Creates and returns a new Crypt::ECDSA::Blind object. The following optional named parameters can be provided:
DB - Full pathname of a file to use for the database of initialization vectors. This can also be the special filename ':memory:' in which case the database will be in RAM rather than on a disk file. The default is '/tmp/ceb.db'.
keygen
Generates and returns an ECDSA key-pair for blind signing.
init
Generates and returns an initialization vector for blind signing. The initialization vector should be passed in to the request(), sign() and unblind() methods in the Init named parameter.
preinit
Generates and saves an initialization vector for later retrieval by init. Keeping pre-prepared initialization vectors available for use on demand will speed up calls to init.
request
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
sign
Generates and returns a blind signature. The following named parameters are required:
Init - The initialization vector from init()
Key - The private key of the signer
Plaintext - The blind-signing request
unblind
Unblinds a blind signature and returns a verifiable signature. The following named parameters are required:
Init - The initialization vector from init()
Key - The public key of the signer
Signature - The blind signature
verify
Verify a signature. The dollowing named parameters are required:
Key - The public key of the signer
Signature - The blind signature
Message - The message that was signed
ACCESSORS
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).
db
The filename of the file to use for the database of initialization vectors. Default is '/tmp/ceb.db'.
debug
Set true to emit helpful messages for debugging purposes, false otherwise. Default is false.
REFERENCES
1. A blind digital signature scheme using elliptic curve digital signature algorithm, Ismail Butun, Mehmet Demirer. http://journals.tubitak.gov.tr/elektrik/abstract.htm?id=13855
AUTHOR
Ashish Gulhati, <crypt-ecdsab at hash.neo.tc>
BUGS
Please report any bugs or feature requests to bug-crypt-ecdsa-blind at rt.cpan.org
, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Crypt-ECDSA-Blind. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc Crypt::ECDSA::Blind
You can also look for information at:
RT: CPAN's request tracker
AnnoCPAN: Annotated CPAN documentation
CPAN Ratings
Search CPAN
LICENSE AND COPYRIGHT
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.