TYPEMAP mp * T_MP gccipher * T_GCALG gchash * T_GCALG gcMAC * T_GCALG gcipher * T_GALG ghash * T_GALG gMAC * T_GALG grand * T_GALG keysize * T_KEYSZ Rand_True * T_CATSTRUCT Rand_DSA * T_CATSTRUCT MP_Mont * T_CATSTRUCT MP_Barrett * T_CATSTRUCT MP_Mul * T_CATSTRUCT MP_CRT * T_CATSTRUCT MP_Prime_Filter * T_CATSTRUCT MP_Prime_Rabin * T_CATSTRUCT MP_Prime_Gen_Event * T_CATSTRUCT MP_Prime_Gen_Proc * T_PGENPROC MP_Prime_Gen_NullProc * T_NULLPGENPROC MP_Prime_Gen_MagicProc * T_CATSTRUCT MP_Prime_Gen_FilterStepper * T_CATSTRUCT MP_Prime_Gen_JumpStepper * T_CATSTRUCT MP_Prime_Gen_RabinTester * T_CATSTRUCT Key_File * T_CATSTRUCT Key_Data * T_CATSTRUCT Key * T_CATSTRUCT KeyErr T_KEYERR INPUT T_MP $var = mp_fromsv($arg, \"$var\", 0, 0) T_CATSTRUCT if (sv_derived_from($arg, \"${my $ntt = $ntype; $ntt =~ s/^(.*)Ptr$/Catacomb::$1/; $ntt =~ s/_/::/g; \$ntt}\")) $var = ($type)SvIV((SV *)SvRV($arg)); else croak(\"$var is not of type ${my $ntt = $ntype; $ntt =~ s/^(.*)Ptr$/Catacomb::$1/; $ntt =~ s/_/::/g; \$ntt}\") T_GALG if (sv_derived_from($arg, \"${my $ntt = $ntype; $ntt =~ s/^g(.*)Ptr$/Catacomb::\u$1/; \$ntt}\")) $var = ($type)SvIV((SV *)SvRV($arg)); else croak(\"$var is not of type ${my $ntt = $ntype; $ntt =~ s/^g(.*)Ptr$/Catacomb::\u$1/; \$ntt}\") T_GCALG if (sv_derived_from($arg, \"${my $ntt = $ntype; $ntt =~ s/^gc(.*)Ptr$/Catacomb::\u$1Class/; \$ntt}\")) $var = ($type)SvIV((SV *)SvRV($arg)); else croak(\"$var is not of type ${my $ntt = $ntype; $ntt =~ s/^gc(.*)Ptr$/Catacomb::\u$1Class/; \$ntt}\") T_KEYSZ if (sv_derived_from($arg, \"Catacomb::KeySize\")) $var = (keysize *)SvIV((SV *)SvRV($arg)); else croak(\"$var is not of type Catacomb::KeySize\") 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\") 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\") OUTPUT T_MP if ($var) sv_setref_pv($arg, \"Catacomb::MP\", (void*)$var); else $arg = &PL_sv_undef; T_CATSTRUCT if ($var) sv_setref_pv($arg, \"${my $ntt = $ntype; $ntt =~ s/^(.*)Ptr$/Catacomb::$1/; $ntt =~ s/_/::/g; \$ntt}\", (void *)$var); else $arg = &PL_sv_undef; T_GALG if ($var) sv_setref_pv($arg, \"${my $ntt = $ntype; $ntt =~ s/^g(.*)Ptr$/Catacomb::\u$1/; \$ntt}\", (void *)$var); else $arg = &PL_sv_undef; T_GCALG if ($var) sv_setref_pv($arg, \"${my $ntt = $ntype; $ntt =~ s/^gc(.*)Ptr$/Catacomb::\u$1Class/; \$ntt}\", (void *)$var); else $arg = &PL_sv_undef; T_KEYSZ if ($var) sv_setref_pv($arg, \"Catacomb::KeySize\", (void *)$var); else $arg = &PL_sv_undef; T_PGENPROC $arg = $var; T_KEYERR $arg = keyerr($var);