Crypt::OpenSSL::EC

Perl extension for OpenSSL EC (Elliptic Curves) library
Download

Crypt::OpenSSL::EC Ranking & Summary

Advertisement

  • Rating:
  • License:
  • Perl Artistic License
  • Price:
  • FREE
  • Publisher Name:
  • Mike McCauley
  • Publisher web site:
  • http://search.cpan.org/~mikem/

Crypt::OpenSSL::EC Tags


Crypt::OpenSSL::EC Description

Crypt::OpenSSL::EC is a Perl module that provides a standard (non-OO) interface to the OpenSSL EC (Elliptic Curve) library. Some OO Calls are supported.Most of the functions described in openssl/ec.h are supported.SYNOPSIS use Crypt::OpenSSL::EC; use Crypt::OpenSSL::Bignum::CTX; # Use of $ctx is optional in all calls, here we demonstrate its use. # If it is provided it will increase performance. my $ctx = Crypt::OpenSSL::Bignum::CTX->new(); my $method = Crypt::OpenSSL::EC::EC_GFp_mont_method(); my $group = Crypt::OpenSSL::EC::EC_GROUP::new($method); Crypt::OpenSSL::EC::EC_GROUP::set_curve_GFp($group, $p, $a, $b, $ctx); my $method = Crypt::OpenSSL::EC::EC_GROUP::method_of($group); Crypt::OpenSSL::EC::EC_GROUP::copy($tmp, $group); Crypt::OpenSSL::EC::EC_GROUP::get_curve_GFp($group, $p, $a, $b, $ctx); $Crypt::OpenSSL::EC::trace = 1; Crypt::OpenSSL::EC::print_errs(); my $P = Crypt::OpenSSL::EC::EC_POINT::new($group); Crypt::OpenSSL::EC::EC_POINT_set_to_infinity($group, $P); my $bool = Crypt::OpenSSL::EC::EC_POINT::is_at_infinity($group, $P); my $buf = Crypt::OpenSSL::EC::EC_POINT::point2oct($group, $Q, &Crypt::OpenSSL::EC::POINT_CONVERSION_COMPRESSED, $ctx); Crypt::OpenSSL::EC::EC_POINT::oct2point($group, $P, $buf, $ctx); Crypt::OpenSSL::EC::EC_POINT::add($group, $P, $P, $Q, $ctx); Crypt::OpenSSL::EC::EC_POINT::set_compressed_coordinates_GFp($group, $Q, $x, 1, $ctx)); my $bool = Crypt::OpenSSL::EC::EC_POINT::is_on_curve($group, $Q, $ctx)); Crypt::OpenSSL::EC::EC_POINT::copy($R, $P); my $result = Crypt::OpenSSL::EC::EC_POINT::cmp($group, $P, $Q, $ctx); Crypt::OpenSSL::EC::EC_POINT::set_affine_coordinates_GFp($group, $P, $x, $y, $ctx); Crypt::OpenSSL::EC::EC_POINT::get_affine_coordinates_GFp($group, $P, $x, $y, $ctx); Crypt::OpenSSL::EC::EC_GROUP::set_generator($group, $P, $z, Crypt::OpenSSL::Bignum->one()); my $degree = Crypt::OpenSSL::EC::EC_GROUP::get_degree($group) my $order = Crypt::OpenSSL::EC::EC_GROUP::get_order($group, $order, $ctx); Crypt::OpenSSL::EC::EC_POINT::mul($group, $Q, $order, $P, $n1, $ctx)); Crypt::OpenSSL::EC::EC_POINT::free($P); Crypt::OpenSSL::EC::EC_GROUP::free($group);Product's homepage


Crypt::OpenSSL::EC Related Software