diff options
| author | StevenWdV <stevenwdv@gmail.com> | 2021-11-20 18:09:09 +0100 |
|---|---|---|
| committer | StevenWdV <stevenwdv@gmail.com> | 2021-11-22 12:37:33 +0100 |
| commit | 8878d8705f0b0fcddb3979194340ca39df897580 (patch) | |
| tree | 6c920d0b9d40584dfe6bf7e5b2e865acff72e72f /exports/exports.go | |
| parent | b8d368b93479233a8ecbeba3daf4b10bee8f0a4a (diff) | |
Add C bindings and a C# wrapper
Diffstat (limited to 'exports/exports.go')
| -rw-r--r-- | exports/exports.go | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/exports/exports.go b/exports/exports.go new file mode 100644 index 0000000..f841eca --- /dev/null +++ b/exports/exports.go @@ -0,0 +1,28 @@ +package main + +import "C" + +import "eduvpn-common" + +// Functions here should not take string parameters, see https://pkg.go.dev/cmd/cgo#hdr-C_references_to_Go + +// Verify verifies a signature on a JSON file. See eduvpn_verify.Verify for more details. +// It returns 0 for a valid signature and a nonzero eduvpn_verify.VerifyErrorCode otherwise. +//export Verify +func Verify(signatureFileContent []byte, signedJson []byte, expectedFileName []byte, minSignTime uint64) int { + valid, err := eduvpn_verify.Verify(string(signatureFileContent), signedJson, string(expectedFileName), minSignTime) + if valid { + return 0 + } else { + return int(err.(eduvpn_verify.VerifyError).Code) + } +} + +// InsecureTestingSetExtraKey adds an extra allowed key for verification with Verify. +// ONLY USE FOR TESTING. Not Thread-safe. Do not call in parallel to Verify. +//export InsecureTestingSetExtraKey +func InsecureTestingSetExtraKey(keyString []byte) { + eduvpn_verify.InsecureTestingSetExtraKey(string(keyString)) +} + +func main() { panic("compile with -buildmode=c-shared") } |
