|
|
|
@ -45,7 +45,7 @@ func (g *stupidChacha20poly1305) Overhead() int {
|
|
|
|
|
// Seal encrypts "in" using "iv" and "authData" and append the result to "dst"
|
|
|
|
|
func (g *stupidChacha20poly1305) Seal(dst, iv, in, authData []byte) []byte {
|
|
|
|
|
if g.wiped {
|
|
|
|
|
panic("BUG: tried to use wiped stupidChacha20poly1305")
|
|
|
|
|
panic("BUG: tried to use wiped key")
|
|
|
|
|
}
|
|
|
|
|
if len(iv) != g.NonceSize() {
|
|
|
|
|
log.Panicf("Only %d-byte IVs are supported, you passed %d bytes", g.NonceSize(), len(iv))
|
|
|
|
@ -130,7 +130,7 @@ func (g *stupidChacha20poly1305) Seal(dst, iv, in, authData []byte) []byte {
|
|
|
|
|
// Open decrypts "in" using "iv" and "authData" and append the result to "dst"
|
|
|
|
|
func (g *stupidChacha20poly1305) Open(dst, iv, in, authData []byte) ([]byte, error) {
|
|
|
|
|
if g.wiped {
|
|
|
|
|
panic("BUG: tried to use wiped stupidChacha20poly1305")
|
|
|
|
|
panic("BUG: tried to use wiped key")
|
|
|
|
|
}
|
|
|
|
|
if len(iv) != g.NonceSize() {
|
|
|
|
|
log.Panicf("Only %d-byte IVs are supported", g.NonceSize())
|
|
|
|
@ -216,8 +216,7 @@ func (g *stupidChacha20poly1305) Open(dst, iv, in, authData []byte) ([]byte, err
|
|
|
|
|
return append(dst, buf...), nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Wipe tries to wipe the AES key from memory by overwriting it with zeros
|
|
|
|
|
// and setting the reference to nil.
|
|
|
|
|
// Wipe tries to wipe the key from memory by overwriting it with zeros.
|
|
|
|
|
//
|
|
|
|
|
// This is not bulletproof due to possible GC copies, but
|
|
|
|
|
// still raises the bar for extracting the key.
|
|
|
|
|