— |
sub new {
my ( $class , $q , $a , $b ) = @_ ;
die Crypt::Perl::X::create( 'Generic' , 'Need q, a, and b!' ) if grep { ! defined } $q , $a , $b ;
my $self = {
q => $q ,
a => $a ,
b => $b ,
infinity => Crypt::Perl::ECDSA::EC::Point->new_infinity(),
};
return bless $self , $class ;
}
sub keylen {
my ( $self ) = @_ ;
return $self ->{ 'q' }->bit_length();
}
sub get_infinity {
my ( $self ) = @_ ;
return $self ->{ 'infinity' };
}
sub decode_point {
my ( $self , $x , $y ) = @_ ;
return Crypt::Perl::ECDSA::EC::Point->new( $self , $self ->from_bigint( $x ), $self ->from_bigint( $y ) );
}
sub from_bigint {
my ( $self , $x ) = @_ ;
return Crypt::Perl::ECDSA::EC::FieldElement->new( $self ->{ 'q' }, $x );
}
1;
|