1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#![allow(non_camel_case_types)]
#![allow(non_upper_case_globals)]
extern crate libc;
use self::libc::{c_int, c_void};
use big::wrappers::*;
use fp2::wrappers::FP2;
use randapi::wrappers::*;
#[repr(C)]
pub struct ECP2 {
pub inf: c_int,
pub x: FP2,
pub y: FP2,
pub z: FP2
}
impl Default for ECP2 {
fn default () -> ECP2 {
ECP2 {
inf: 0,
x: Default::default(),
y: Default::default(),
z: Default::default()
}
}
}
extern {
pub fn ECP2_set(P: *mut ECP2, x: *const FP2, y: *const FP2) -> c_void;
pub fn ECP2_output(P: *const ECP2) -> c_void;
pub fn ECP2_mul(P: *mut ECP2, e: *const BIG) -> c_void;
pub fn ECP2_add(P: *mut ECP2, Q: *const ECP2) -> c_void;
pub fn ECP2_sub(P: *mut ECP2, W: *const ECP2) -> c_void;
pub fn ECP2_inf(P: *mut ECP2) -> c_void;
pub fn ECP2_toOctet(W: *mut octet, P: *const ECP2) -> c_void;
pub fn ECP2_fromOctet(P: *mut ECP2, W: *const octet) -> c_int;
}