diff options
Diffstat (limited to 'docker/bckp/sodium.go')
-rw-r--r-- | docker/bckp/sodium.go | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/docker/bckp/sodium.go b/docker/bckp/sodium.go new file mode 100644 index 0000000..a4f25b4 --- /dev/null +++ b/docker/bckp/sodium.go @@ -0,0 +1,35 @@ +package main + +/* +#cgo CFLAGS: -g -Wall +#cgo LDFLAGS: -lsodium +#include <sodium.h> +*/ +import "C" +import "log" + +const block_size int = 16 * 1024 // 16 KiB + +func main() { + log.Println("Test cgo") + ret := C.sodium_init() + if ret < 0 { + log.Panic("Failed to init sodium.") + } + //unsigned char array as requested + var key [C.crypto_secretstream_xchacha20poly1305_KEYBYTES]C.uchar + C.crypto_secretstream_xchacha20poly1305_keygen(&key[0]) + + var state C.crypto_secretstream_xchacha20poly1305_state + var header [C.crypto_secretstream_xchacha20poly1305_HEADERBYTES]C.uchar + + C.crypto_secretstream_xchacha20poly1305_init_push(&state, &header[0], &key[0]) + log.Print("key", key) + log.Print("header", header) + + var plain [block_size]C.uchar + var c1 [block_size + C.crypto_secretstream_xchacha20poly1305_ABYTES]C.uchar + + C.crypto_secretstream_xchacha20poly1305_push(&state, &c1[0], nil, &plain[0], C.ulonglong(len(plain)), nil, 0, 0) + log.Print("c1", c1) +} |