diff options
Diffstat (limited to 'cryptfs/nonce.go')
-rw-r--r-- | cryptfs/nonce.go | 42 |
1 files changed, 0 insertions, 42 deletions
diff --git a/cryptfs/nonce.go b/cryptfs/nonce.go deleted file mode 100644 index be777fc..0000000 --- a/cryptfs/nonce.go +++ /dev/null @@ -1,42 +0,0 @@ -package cryptfs - -import ( - "bytes" - "crypto/rand" - "encoding/binary" - "encoding/hex" - "fmt" -) - -// Get "n" random bytes from /dev/urandom or panic -func RandBytes(n int) []byte { - b := make([]byte, n) - _, err := rand.Read(b) - if err != nil { - panic("Failed to read random bytes: " + err.Error()) - } - return b -} - -// Return a secure random uint64 -func RandUint64() uint64 { - b := RandBytes(8) - return binary.BigEndian.Uint64(b) -} - -type nonceGenerator struct { - lastNonce []byte - nonceLen int // bytes -} - -// Get a random 96 bit nonce -func (n *nonceGenerator) Get() []byte { - nonce := RandBytes(n.nonceLen) - Debug.Printf("nonceGenerator.Get(): %s\n", hex.EncodeToString(nonce)) - if bytes.Equal(nonce, n.lastNonce) { - m := fmt.Sprintf("Got the same nonce twice: %s. This should never happen!", hex.EncodeToString(nonce)) - panic(m) - } - n.lastNonce = nonce - return nonce -} |