X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb-perl/blobdiff_plain/a1a90aaf554eb974e39e34b513747eb666180776..bfdf19cbde6d9f5cdb740d258fcc439a4a412ab0:/typemap diff --git a/typemap b/typemap index e28ed73..f394c73 100644 --- a/typemap +++ b/typemap @@ -1,8 +1,8 @@ TYPEMAP +const char * T_PV + mp * T_MP gf * T_MP -GE * T_CATSTRUCT -EC_Point * T_CATSTRUCT EC_Curve * T_CATSTRUCT EC_Info * T_CATSTRUCT Field * T_CATSTRUCT @@ -16,9 +16,19 @@ gMAC * T_GALG grand * T_GALG keysize * T_KEYSZ +fe * T_FIELDELT +ec * T_ECPT +ge * T_GROUPELT + Rand_True * T_CATSTRUCT Rand_DSA * T_CATSTRUCT +Share_GF * T_CATSTRUCT +Share_Prime * T_CATSTRUCT + +PRP * T_CATSTRUCT +PRPClass * T_CATSTRUCT + MP_Mont * T_CATSTRUCT MP_Barrett * T_CATSTRUCT MP_Mul * T_CATSTRUCT @@ -36,46 +46,72 @@ MP_Prime_Gen_JumpStepper * T_CATSTRUCT MP_Prime_Gen_RabinTester * T_CATSTRUCT Key_File * T_CATSTRUCT -Key_Data * T_CATSTRUCT +Key_Data * T_KEYDATA +Key_AttrIter * T_CATSTRUCT +Key_StructIter * T_CATSTRUCT +Key_FileIter * T_CATSTRUCT +Key_Filter * T_CATSTRUCTUNDEF Key * T_CATSTRUCT - KeyErr T_KEYERR +RSA_Public * T_CATSTRUCT +RSA_Private * T_CATSTRUCT + INPUT T_MP - $var = mp_fromsv($arg, \"$var\", \"${my $ntt = $ntype; $ntt =~ s/^(.*)Ptr$/Catacomb::\U$1/; $ntt =~ s/_/::/g; \$ntt}\", 0, 0) + $var = mp_fromsv($arg, \"$var\", 0, 0) T_CATSTRUCT - $var = ptrfromsv($arg, \"${my $ntt = $ntype; $ntt =~ s/^(.*)Ptr$/Catacomb::$1/; $ntt =~ s/_/::/g; \$ntt}\", \"$var\"); + $var = ptrfromsv($arg, \"${my $ntt = $ntype; $ntt =~ s/^(.*)Ptr$/Catacomb::$1/; $ntt =~ s/_/::/g; \$ntt}\", \"$var\") +T_CATSTRUCTUNDEF + $var = SvOK($arg) ? ptrfromsv($arg, \"${my $ntt = $ntype; $ntt =~ s/^(.*)Ptr$/Catacomb::$1/; $ntt =~ s/_/::/g; \$ntt}\", \"$var\") : 0 +T_FIELDELT + $var = fieldelt($arg, \"$var\") +T_GROUPELT + $var = groupelt($arg, \"$var\") +T_ECPT + $var = ecpt($arg, \"$var\") T_GALG - $var = ptrfromsv($arg, \"${my $ntt = $ntype; $ntt =~ s/^g(.*)Ptr$/Catacomb::\u$1/; \$ntt}\", \"$var\"); + $var = ptrfromsv($arg, \"${my $ntt = $ntype; $ntt =~ s/^g(.*)Ptr$/Catacomb::\u$1/; \$ntt}\", \"$var\") T_GCALG - $var = ptrfromsv($arg, \"${my $ntt = $ntype; $ntt =~ s/^gc(.*)Ptr$/Catacomb::\u$1Class/; \$ntt}\", \"$var\"); + $var = ptrfromsv($arg, \"${my $ntt = $ntype; $ntt =~ s/^gc(.*)Ptr$/Catacomb::\u$1Class/; \$ntt}\", \"$var\") T_KEYSZ - $var = ptrfromsv($arg, \"Catacomb::KeySize\", \"$var\"); + $var = ptrfromsv($arg, \"Catacomb::KeySize\", \"$var\") +T_KEYDATA + $var = ptrfromsv($arg, \"${my $ntt = $ntype; $ntt =~ s/^(.*)Ptr$/Catacomb::$1/; $ntt =~ s/_/::/g; \$ntt}\", \"$var\") T_PGENPROC if (sv_derived_from($arg, \"Catacomb::MP::Prime::Gen::Proc\")) $var = $arg; else - croak(\"$var is not of type Catacomb::MP::Prime::Gen::Proc\") + croak(\"$var is not of type Catacomb::MP::Prime::Gen::Proc\"); T_NULLPGENPROC if (!SvOK($arg) || sv_derived_from($arg, \"Catacomb::MP::Prime::Gen::Proc\")) $var = $arg; else - croak(\"$var is not of type Catacomb::MP::Prime::Gen::Proc\") + croak(\"$var is not of type Catacomb::MP::Prime::Gen::Proc\"); OUTPUT T_MP ptrtosv(&$arg, $var, \"${my $ntt = $ntype; $ntt =~ s/^(.*)Ptr$/Catacomb::\U$1/; $ntt =~ s/_/::/g; \$ntt}\"); T_CATSTRUCT ptrtosv(&$arg, $var, \"${my $ntt = $ntype; $ntt =~ s/^(.*)Ptr$/Catacomb::$1/; $ntt =~ s/_/::/g; \$ntt}\"); +T_CATSTRUCTUNDEF + ptrtosv(&$arg, $var, \"${my $ntt = $ntype; $ntt =~ s/^(.*)Ptr$/Catacomb::$1/; $ntt =~ s/_/::/g; \$ntt}\"); +T_FIELDELT + ptrtosv(&$arg, $var, \"Catacomb::MP\"); +T_GROUPELT + ptrtosv(&$arg, $var, \"Catacomb::Group::Element\"); +T_ECPT + ptrtosv(&$arg, $var, \"Catacomb::EC::Point\"); T_GALG ptrtosv(&$arg, $var, \"${my $ntt = $ntype; $ntt =~ s/^g(.*)Ptr$/Catacomb::\u$1/; \$ntt}\"); T_GCALG - ptrtosv(&$arg, $var, \"${my $ntt = $ntype; $ntt =~ s/^g(.*)Ptr$/Catacomb::\u$1Class/; \$ntt}\"); + ptrtosv(&$arg, $var, \"${my $ntt = $ntype; $ntt =~ s/^gc(.*)Ptr$/Catacomb::\u$1Class/; \$ntt}\"); T_KEYSZ ptrtosv(&$arg, (octet *)$var, \"Catacomb::KeySize\"); T_PGENPROC $arg = $var; T_KEYERR $arg = keyerr($var); +T_KEYDATA + ptrtosv(&$arg, $var, keydata_type($var));