WIP sodium binding
This commit is contained in:
parent
701da9ef26
commit
a2e1f61cf8
2 changed files with 36 additions and 0 deletions
|
@ -48,6 +48,7 @@ func main() {
|
||||||
errIsPanic(err, "Unable to build a new client. %v", err)
|
errIsPanic(err, "Unable to build a new client. %v", err)
|
||||||
|
|
||||||
reader, _, err := consul.Snapshot().Save(&options)
|
reader, _, err := consul.Snapshot().Save(&options)
|
||||||
|
defer reader.Close()
|
||||||
errIsPanic(err, "Snapshot failed. %v", err)
|
errIsPanic(err, "Snapshot failed. %v", err)
|
||||||
|
|
||||||
//--- Get encryption key and check it
|
//--- Get encryption key and check it
|
||||||
|
|
35
docker/bckp/sodium.go
Normal file
35
docker/bckp/sodium.go
Normal file
|
@ -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)
|
||||||
|
}
|
Reference in a new issue