Crypt-OpenSSL-Bignum
view release on metacpan or search on metacpan
BIGNUM* bn;
CODE:
checkOpenSslCall( bn = BN_new() );
checkOpenSslCall( BN_rand_range( bn, r) );
RETVAL = bn;
OUTPUT:
RETVAL
void
BN_bless_pointer(CLASS, void *pointer)
PPCODE:
ST(0) = new_obj(pointer);
XSRETURN(1);
char*
BN_to_decimal(Crypt::OpenSSL::Bignum self)
CODE:
checkOpenSslCall( RETVAL = BN_bn2dec( self ) );
OUTPUT:
RETVAL
CLEANUP:
int
BN_is_one(Crypt::OpenSSL::Bignum self)
int
BN_is_odd(Crypt::OpenSSL::Bignum self)
void
BN_add(Crypt::OpenSSL::Bignum self, Crypt::OpenSSL::Bignum b, ...)
PREINIT:
BIGNUM *bn;
PPCODE:
if( items > 3 )
croak( "usage: $bn->add( $bn2[, $target] )" );
bn = ( items < 3 ) ? BN_new() : sv2bn( ST(2) );
checkOpenSslCall( BN_add( bn, self, b ) );
ST(0) = ( (items < 3 ) ? new_obj( bn ) : ST(2) );
XSRETURN(1);
void
BN_sub(Crypt::OpenSSL::Bignum self, Crypt::OpenSSL::Bignum b, ...)
PREINIT:
BIGNUM *bn;
PPCODE:
if( items > 3 )
croak( "usage: $bn->sub( $bn2[, $target] )" );
bn = ( items < 3 ) ? BN_new() : sv2bn( ST(2) );
checkOpenSslCall( BN_sub( bn, self, b ) );
ST(0) = ( (items < 3 ) ? new_obj( bn ) : ST(2) );
XSRETURN(1);
void
BN_mul(self, b, ctx, ...)
Crypt::OpenSSL::Bignum self;
Crypt::OpenSSL::Bignum b;
Crypt::OpenSSL::Bignum::CTX ctx;
PREINIT:
BIGNUM* bn;
PPCODE:
if( items > 4 )
croak( "usage: $bn->mul( $bn2, $ctx, [, $target] )" );
bn = ( items < 4 ) ? BN_new() : sv2bn( ST(3) );
checkOpenSslCall( BN_mul( bn, self, b, ctx ) );
ST(0) = ( (items < 4 ) ? new_obj( bn ) : ST(3) );
XSRETURN(1);
void
BN_div(self, b, ctx, ...)
Crypt::OpenSSL::Bignum self;
Crypt::OpenSSL::Bignum b;
Crypt::OpenSSL::Bignum::CTX ctx;
PREINIT:
BIGNUM* quotient;
BIGNUM* remainder;
PPCODE:
if( items > 5 )
croak( "usage: $bn->div( $bn2, $ctx, [, $quotient [, $remainder ] ] )" );
quotient = ( items < 4 ) ? BN_new() : sv2bn( ST(3) );
remainder = ( items < 5 ) ? BN_new() : sv2bn( ST(4) );
checkOpenSslCall( BN_div( quotient, remainder, self, b, ctx ) );
ST(0) = ( (items < 4 ) ? new_obj( quotient ) : ST(3) );
ST(1) = ( (items < 5 ) ? new_obj( remainder ) : ST(4) );
XSRETURN(2);
Crypt::OpenSSL::Bignum
OUTPUT:
RETVAL
void
BN_mod(self, b, ctx, ...)
Crypt::OpenSSL::Bignum self;
Crypt::OpenSSL::Bignum b;
Crypt::OpenSSL::Bignum::CTX ctx;
PREINIT:
BIGNUM* bn;
PPCODE:
if( items > 4 )
croak( "usage: $bn->mod( $bn2, $ctx, [, $target] )" );
bn = ( items < 4 ) ? BN_new() : sv2bn( ST(3) );
checkOpenSslCall( BN_mod( bn, self, b, ctx ) );
ST(0) = ( (items < 4 ) ? new_obj( bn ) : ST(3) );
XSRETURN(1);
Crypt::OpenSSL::Bignum
BN_mod_mul(self, b, m, ctx)
Crypt::OpenSSL::Bignum self;
( run in 1.504 second using v1.01-cache-2.11-cpan-71847e10f99 )