From 638edbb2ffc69fd44d547f93b43bd741ab110096 Mon Sep 17 00:00:00 2001 From: StevenWdV Date: Wed, 24 Nov 2021 23:32:48 +0100 Subject: Add READMEs --- README.md | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 README.md (limited to 'README.md') diff --git a/README.md b/README.md new file mode 100644 index 0000000..b1712f3 --- /dev/null +++ b/README.md @@ -0,0 +1,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//` 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# -- cgit v1.2.3