safe-t-daemon-go
Safe-T Communication Daemon aka Safe-T Bridge (written in Go)
Only compatible with Chrome (version 53 or later) and Firefox (version 55 or later).
status: spec Chrome Firefox Edge
Install and run from source
go get github.com/archos-safe-t/safe-t-daemon-go
go build github.com/archos-safe-t/safe-t-daemon-go
./safe-t-daemon-go -h
Guide to compiling packages
Prerequisites:
go get github.com/karalabe/xgo
docker pull karalabe/xgo-latest
- make sure
xgo
and docker
are in $PATH
cd release && make all
; the installers are in installers
Quick guide to cross-compiling
Prerequisites:
go get github.com/karalabe/xgo
docker pull karalabe/xgo-latest
Compiling for officially supported platforms:
$GOPATH/bin/xgo -targets=windows/amd64,windows/386,darwin/amd64,linux/amd64,linux/386 .
API documentation
safe-t-daemon
starts a HTTP server on http://localhost:21326
. AJAX calls are only enabled from safe-t.io subdomains.
Server supports following API calls:
url method |
parameters |
result type |
description |
/ POST |
|
{version : string} |
Returns current version of bridge |
/enumerate POST |
|
Array<{path : string,
session : string | null}> |
Lists devices.
path uniquely defines device between more connected devices. It might or might not be unique over time; on some platform it changes, on others given USB port always returns the same path. If session is null, nobody else is using the device; if it's string, it identifies who is using it. |
/listen POST |
request body: previous, as JSON |
like enumerate |
Listen to changes and returns either on change or after 30 second timeout. Compares change from previous that is sent as a parameter. "Change" is both connecting/disconnecting and session change. |
/acquire/PATH/PREVIOUS POST |
PATH : path of device
PREVIOUS : previous session (or string "null") |
{session : string} |
Acquires the device at PATH . By "acquiring" the device, you are claiming the device for yourself. Before acquiring, checks that the current session is PREVIOUS . If two applications call acquire on a newly connected device at the same time, only one of them succeed. |
/release/SESSION POST |
SESSION : session to release |
{} |
Releases the device with the given session. By "releasing" the device, you claim that you don't want to use the device anymore. |
/call/SESSION POST |
SESSION : session to call
request body: hexadecimal string |
hexadecimal string |
Both input and output are hexadecimal, encoded in following way: first 2 bytes (4 characters in the hexadecimal) is the message type next 4 bytes (8 in hex) is length of the data the rest is the actual encoded protobuf data. Protobuf messages are defined in this protobuf file and the app, calling safe-t-daemon-go, should encode/decode it itself. |
/post/SESSION POST |
SESSION : session to call
request body: hexadecimal string |
0 |
Similar to call , just doesn't read response back. Usable mainly for debug link, currently working only with emulator. |
Copyright
- (C) 2018 Archos S.A.
- (C) 2018 Karel Bilek, Jan Pochyla
- CORS Copyright (c) 2013 The Gorilla Handlers Authors, BSD license
- Licensed under LGPLv3