Much wider support for Catacomb in all its glory.
[catacomb-perl] / typemap
diff --git a/typemap b/typemap
index f18025c..a4f6297 100644 (file)
--- a/typemap
+++ b/typemap
@@ -3,8 +3,6 @@ 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
@@ -18,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
@@ -38,16 +46,30 @@ MP_Prime_Gen_JumpStepper *  T_CATSTRUCT
 MP_Prime_Gen_RabinTester *     T_CATSTRUCT
 
 Key_File *                     T_CATSTRUCT
-Key_Data *                     T_CATSTRUCT
+Key_DataImpl *                 T_CATSTRUCT
+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\")
+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\")
 T_GCALG
@@ -71,10 +93,18 @@ 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