我正在尝试使用crypt :: openssl :: ec :: ec_point :: mul((crypt :: openssl :: ec ec module。它具有这样的C原型:
int EC_POINT_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, const EC_POINT *q, const BIGNUM *m, BN_CTX *ctx)
我需要通过null,null而不是EC_POINT *q
,const BIGNUM *m
,如下所示:https://stackoverflow.com/a/12482384/3090865
但是该模块具有这样的类型:
INPUT
BIGNUM
if( ! SvROK( $arg ) ) { croak( "argument is not an object" ); }
$var = (${type}) SvIV( SvRV( $arg ) );
EC_METHOD
if( ! SvROK( $arg ) ) { croak( "argument is not an object" ); }
$var = (${type}) SvIV( SvRV( $arg ) );
EC_GROUP
if( ! SvROK( $arg ) ) { croak( "argument is not an object" ); }
$var = (${type}) SvIV( SvRV( $arg ) );
EC_POINT
if( ! SvROK( $arg ) ) { croak( "argument is not an object" ); }
$var = (${type}) SvIV( SvRV( $arg ) );
EC_KEY
if( ! SvROK( $arg ) ) { croak( "argument is not an object" ); }
$var = (${type}) SvIV( SvRV( $arg ) );
因此,如果我通过undef或0,我会得到"参数不是对象"错误。可以在不更改此模块的情况下制作我想要的东西吗?也许我可以以某种方式创建基于零的对象?
根据TypeMap,通过对零