Key mangling, and elliptic curves.
[catacomb-perl] / typemap
1 TYPEMAP
2 mp * T_MP
3 gf * T_MP
4 GE * T_CATSTRUCT
5 EC_Point * T_CATSTRUCT
6 EC_Curve * T_CATSTRUCT
7 EC_Info * T_CATSTRUCT
8 Field * T_CATSTRUCT
9 Group * T_CATSTRUCT
10 gccipher * T_GCALG
11 gchash * T_GCALG
12 gcMAC * T_GCALG
13 gcipher * T_GALG
14 ghash * T_GALG
15 gMAC * T_GALG
16 grand * T_GALG
17 keysize * T_KEYSZ
18
19 Rand_True * T_CATSTRUCT
20 Rand_DSA * T_CATSTRUCT
21
22 MP_Mont * T_CATSTRUCT
23 MP_Barrett * T_CATSTRUCT
24 MP_Mul * T_CATSTRUCT
25 MP_CRT * T_CATSTRUCT
26 MP_Reduce * T_CATSTRUCT
27 GF_Reduce * T_CATSTRUCT
28 MP_Prime_Filter * T_CATSTRUCT
29 MP_Prime_Rabin * T_CATSTRUCT
30 MP_Prime_Gen_Event * T_CATSTRUCT
31 MP_Prime_Gen_Proc * T_PGENPROC
32 MP_Prime_Gen_NullProc * T_NULLPGENPROC
33 MP_Prime_Gen_MagicProc * T_CATSTRUCT
34 MP_Prime_Gen_FilterStepper * T_CATSTRUCT
35 MP_Prime_Gen_JumpStepper * T_CATSTRUCT
36 MP_Prime_Gen_RabinTester * T_CATSTRUCT
37
38 Key_File * T_CATSTRUCT
39 Key_Data * T_CATSTRUCT
40 Key * T_CATSTRUCT
41
42 KeyErr T_KEYERR
43
44 INPUT
45 T_MP
46 $var = mp_fromsv($arg, \"$var\", \"${my $ntt = $ntype; $ntt =~ s/^(.*)Ptr$/Catacomb::\U$1/; $ntt =~ s/_/::/g; \$ntt}\", 0, 0)
47 T_CATSTRUCT
48 $var = ptrfromsv($arg, \"${my $ntt = $ntype; $ntt =~ s/^(.*)Ptr$/Catacomb::$1/; $ntt =~ s/_/::/g; \$ntt}\", \"$var\");
49 T_GALG
50 $var = ptrfromsv($arg, \"${my $ntt = $ntype; $ntt =~ s/^g(.*)Ptr$/Catacomb::\u$1/; \$ntt}\", \"$var\");
51 T_GCALG
52 $var = ptrfromsv($arg, \"${my $ntt = $ntype; $ntt =~ s/^gc(.*)Ptr$/Catacomb::\u$1Class/; \$ntt}\", \"$var\");
53 T_KEYSZ
54 $var = ptrfromsv($arg, \"Catacomb::KeySize\", \"$var\");
55 T_PGENPROC
56 if (sv_derived_from($arg, \"Catacomb::MP::Prime::Gen::Proc\"))
57 $var = $arg;
58 else
59 croak(\"$var is not of type Catacomb::MP::Prime::Gen::Proc\")
60 T_NULLPGENPROC
61 if (!SvOK($arg) ||
62 sv_derived_from($arg, \"Catacomb::MP::Prime::Gen::Proc\"))
63 $var = $arg;
64 else
65 croak(\"$var is not of type Catacomb::MP::Prime::Gen::Proc\")
66
67 OUTPUT
68 T_MP
69 ptrtosv(&$arg, $var, \"${my $ntt = $ntype; $ntt =~ s/^(.*)Ptr$/Catacomb::\U$1/; $ntt =~ s/_/::/g; \$ntt}\");
70 T_CATSTRUCT
71 ptrtosv(&$arg, $var, \"${my $ntt = $ntype; $ntt =~ s/^(.*)Ptr$/Catacomb::$1/; $ntt =~ s/_/::/g; \$ntt}\");
72 T_GALG
73 ptrtosv(&$arg, $var, \"${my $ntt = $ntype; $ntt =~ s/^g(.*)Ptr$/Catacomb::\u$1/; \$ntt}\");
74 T_GCALG
75 ptrtosv(&$arg, $var, \"${my $ntt = $ntype; $ntt =~ s/^g(.*)Ptr$/Catacomb::\u$1Class/; \$ntt}\");
76 T_KEYSZ
77 ptrtosv(&$arg, (octet *)$var, \"Catacomb::KeySize\");
78 T_PGENPROC
79 $arg = $var;
80 T_KEYERR
81 $arg = keyerr($var);