Erase Go privkey bytes from libmutton

This commit is contained in:
2026-02-07 23:54:19 -05:00
parent 39703114e8
commit 489d757112
3 changed files with 8 additions and 16 deletions
+4 -12
View File
@@ -7,7 +7,6 @@ import "C"
import (
"unsafe"
"github.com/rwinkhart/go-boilerplate/back"
"github.com/rwinkhart/libmutton/privkey"
)
@@ -24,18 +23,11 @@ func SetPrivKeyDataAndEraseFreeInput(privKeyData C.PascalString) {
FreePascalString(privKeyData)
}
// EraseFreePrivKey is meant to be called on iOS after
// EraseGoPrivKey is meant to be called on iOS after
// any server connections to ensure the cached SSH private key
// set by SetPrivKeyDataAndEraseFreeInput is securely erased.
// It also erases and frees the input privKeyPascal.
//
//export EraseFreePrivKey
func EraseFreePrivKey(privKeyPascal C.PascalString) {
// erase Go/libmutton copy
privKeyBytes, _ := privkey.GetBytes(nil)
back.EraseBytesSecurely(privKeyBytes)
// erase C copy
securePtrOverwriteAndFree(unsafe.Pointer(privKeyPascal.data), C.size_t(privKeyPascal.len))
FreePascalString(privKeyPascal)
//export EraseGoPrivKey
func EraseGoPrivKey() {
privkey.Erase()
}