Significant enhancements to secure data handling (especially on iOS)

This commit is contained in:
2026-02-07 23:07:26 -05:00
parent 0e232a5fdd
commit bfc6d97773
9 changed files with 82 additions and 75 deletions
+8 -1
View File
@@ -43,12 +43,13 @@ func getCPascalStringArrayFromStringSlice(goSlice []string) C.PascalStringArray
}
// getStringSliceFromCPascalStringArray converts a C.PascalStringArray to a go slice.
func getStringSliceFromCPascalStringArray(pascalStringArray C.PascalStringArray) []string {
func getStringSliceFromCPascalStringArrayAndFree(pascalStringArray C.PascalStringArray) []string {
var goSlice []string
cArr := (*[1 << 30]C.PascalString)(unsafe.Pointer(pascalStringArray.data))[:pascalStringArray.len:pascalStringArray.len]
for i := 0; i < int(pascalStringArray.len); i++ {
goSlice = append(goSlice, C.GoStringN(cArr[i].data, cArr[i].len))
}
FreePascalArray(pascalStringArray)
return goSlice
}
@@ -96,4 +97,10 @@ func safeBoolDeref(b *bool) bool {
return *b
}
// securePtrOverwrite securely overwrites the memory at the input pointer and then frees it.
func securePtrOverwriteAndFree(input unsafe.Pointer, length C.int) {
C.explicit_bzero(input, C.size_t(length))
C.free(input)
}
func main() {}