Merge some privkey.go functions

This commit is contained in:
2026-02-07 23:40:35 -05:00
parent 218fa55581
commit 39703114e8
+8 -18
View File
@@ -24,28 +24,18 @@ func SetPrivKeyDataAndEraseFreeInput(privKeyData C.PascalString) {
FreePascalString(privKeyData) FreePascalString(privKeyData)
} }
// GetPrivKeyDataAndEraseGoCopy will return nil on non-iOS platforms. // EraseFreePrivKey is meant to be called on iOS after
// On iOS, it will return whatever was set in // any server connections to ensure the cached SSH private key
// SetPrivKeyDataAndSecurelyFreeInput. // set by SetPrivKeyDataAndEraseFreeInput is securely erased.
// It also erases and frees the input privKeyPascal.
// //
// Don't forget to call EraseFreePrivKeyPascal on the output //export EraseFreePrivKey
// of this function as soon as it is no longer needed. func EraseFreePrivKey(privKeyPascal C.PascalString) {
// // erase Go/libmutton copy
//export GetPrivKeyDataAndEraseGoCopy
func GetPrivKeyDataAndEraseGoCopy() C.PascalString {
privKeyBytes, _ := privkey.GetBytes(nil) privKeyBytes, _ := privkey.GetBytes(nil)
privKeyPascal := getPascalStringFromBytes(privKeyBytes)
back.EraseBytesSecurely(privKeyBytes) back.EraseBytesSecurely(privKeyBytes)
return privKeyPascal
}
// EraseFreePrivKeyPascal is meant to be called on // erase C copy
// iOS after any server connections to ensure the cached SSH private key
// set by SetPrivKeyData is securely erased. It also erases and frees
// the input privKeyData C.PascalString.
//
//export EraseFreePrivKeyPascal
func EraseFreePrivKeyPascal(privKeyPascal C.PascalString) {
securePtrOverwriteAndFree(unsafe.Pointer(privKeyPascal.data), C.size_t(privKeyPascal.len)) securePtrOverwriteAndFree(unsafe.Pointer(privKeyPascal.data), C.size_t(privKeyPascal.len))
FreePascalString(privKeyPascal) FreePascalString(privKeyPascal)
} }