-
Notifications
You must be signed in to change notification settings - Fork 0
/
aesmpc.go
146 lines (121 loc) · 4.22 KB
/
aesmpc.go
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 3.0.12
*
* This file is not intended to be easily readable and contains a number of
* coding conventions designed to improve portability and efficiency. Do not make
* changes to this file unless you know what you are doing--modify the SWIG
* interface file instead.
* ----------------------------------------------------------------------------- */
// source: aesmpc.i
package aesmpc
/*
#define intgo swig_intgo
typedef void *swig_voidp;
#include <stdint.h>
typedef long long intgo;
typedef unsigned long long uintgo;
typedef struct { char *p; intgo n; } _gostring_;
typedef struct { void* array; intgo len; intgo cap; } _goslice_;
typedef _gostring_ swig_type_1;
typedef _gostring_ swig_type_2;
typedef _gostring_ swig_type_3;
typedef _gostring_ swig_type_4;
typedef _gostring_ swig_type_5;
typedef _gostring_ swig_type_6;
typedef _gostring_ swig_type_7;
extern void _wrap_Swig_free_aesmpc_089eb66ba411872c(uintptr_t arg1);
extern uintptr_t _wrap_Swig_malloc_aesmpc_089eb66ba411872c(swig_intgo arg1);
extern swig_type_1 _wrap_run_gcm_encrypted_iv_server_aesmpc_089eb66ba411872c(swig_intgo arg1, swig_type_2 arg2, swig_type_3 arg3, swig_type_4 arg4);
extern swig_type_5 _wrap_run_gcm_powers_of_h_server_aesmpc_089eb66ba411872c(swig_intgo arg1, swig_type_6 arg2, swig_type_7 arg3);
#undef intgo
*/
// #cgo LDFLAGS: -L. -Lemp-tool/build -lcrypto -lssl -laesmpc -ldl -lpthread
import "C"
import (
"fmt"
_ "runtime/cgo"
"sync"
"unsafe"
)
type _ unsafe.Pointer
var Swig_escape_always_false bool
var Swig_escape_val interface{}
type _swig_fnptr *byte
type _swig_memberptr *byte
type _ sync.Mutex
type swig_gostring struct {
p uintptr
n int
}
func swigCopyString(s string) string {
p := *(*swig_gostring)(unsafe.Pointer(&s))
r := string((*[0x7fffffff]byte)(unsafe.Pointer(p.p))[:p.n])
Swig_free(p.p)
return r
}
func Swig_free(arg1 uintptr) {
_swig_i_0 := arg1
C._wrap_Swig_free_aesmpc_089eb66ba411872c(C.uintptr_t(_swig_i_0))
}
func Swig_malloc(arg1 int) (_swig_ret uintptr) {
var swig_r uintptr
_swig_i_0 := arg1
swig_r = (uintptr)(C._wrap_Swig_malloc_aesmpc_089eb66ba411872c(C.swig_intgo(_swig_i_0)))
return swig_r
}
func Run_gcm_encrypted_iv_server(arg1 int, arg2 string, arg3 string, arg4 string) (_swig_ret string) {
var swig_r string
_swig_i_0 := arg1
_swig_i_1 := arg2
_swig_i_2 := arg3
_swig_i_3 := arg4
swig_r_p := C._wrap_run_gcm_encrypted_iv_server_aesmpc_089eb66ba411872c(C.swig_intgo(_swig_i_0), *(*C.swig_type_2)(unsafe.Pointer(&_swig_i_1)), *(*C.swig_type_3)(unsafe.Pointer(&_swig_i_2)), *(*C.swig_type_4)(unsafe.Pointer(&_swig_i_3)))
swig_r = *(*string)(unsafe.Pointer(&swig_r_p))
if Swig_escape_always_false {
Swig_escape_val = arg2
}
if Swig_escape_always_false {
Swig_escape_val = arg3
}
if Swig_escape_always_false {
Swig_escape_val = arg4
}
var swig_r_1 string
swig_r_1 = swigCopyString(swig_r)
return swig_r_1
}
func Run_gcm_powers_of_h_server(arg1 int, arg2 string, arg3 string) (_swig_ret string) {
var swig_r string
_swig_i_0 := arg1
_swig_i_1 := arg2
_swig_i_2 := arg3
swig_r_p := C._wrap_run_gcm_powers_of_h_server_aesmpc_089eb66ba411872c(C.swig_intgo(_swig_i_0), *(*C.swig_type_6)(unsafe.Pointer(&_swig_i_1)), *(*C.swig_type_7)(unsafe.Pointer(&_swig_i_2)))
swig_r = *(*string)(unsafe.Pointer(&swig_r_p))
if Swig_escape_always_false {
Swig_escape_val = arg2
}
if Swig_escape_always_false {
Swig_escape_val = arg3
}
var swig_r_1 string
swig_r_1 = swigCopyString(swig_r)
return swig_r_1
}
func catch(err *error) {
if r := recover(); r != nil {
*err = fmt.Errorf("aesmpc native: %v", r)
}
}
func RunGcmEncryptedIvServer(port int, circuitDir string, serverKeyShare string, iv string) (tagMask string, err error) {
defer catch(&err)
fmt.Println("Starting GCM Encrypted IV MPC server...")
tagMask = Run_gcm_encrypted_iv_server(port, circuitDir, serverKeyShare, iv)
return
}
func RunGcmPowersOfHServer(port int, circuitDir string, serverKeyShare string) (maskedPowersOfH string, err error) {
defer catch(&err)
fmt.Println("Starting GCM Powers of H MPC server...")
maskedPowersOfH = Run_gcm_powers_of_h_server(port, circuitDir, serverKeyShare)
return
}