blob: b1712f3d6b40cc901b14049b8b67eb43faaf93d7 (
plain)
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
|
# EduVPN shared library
This repository contains a Go library with functions that all EduVPN clients can use. The goal is to let EduVPN clients
link against this library and gradually merge more common logic between EduVPN clients into this repository.
cgo is used to build the go library into a shared dynamic library. Wrappers will be written using some FFI framework for
each language used in EduVPN clients to easily interface with the library.
## Functionality
Currently, only verification of signatures on files from `disco.eduvpn.org` is supported. For now, these files have to
be downloaded by the caller.
## Build & test
Build shared library for current platform:
```shell
make
```
Build shared library for specified OS & architecture (example):
```shell
make OS=windows ARCH=386
```
Results will be output in `exports/`.
Test Go code:
```shell
make test-go
```
Test wrappers:
```shell
make test-wrappers
```
Take a look at `wrappers/<lang>/` for descriptions per wrapper.
## Directory
- `verify.go`: main API
- `verify_test.go` and `test_data/`: tests for API
- `exports/`: C API interface
- `wrappers/`: Wrappers per language, currently only C#
|