// The returned SecKeychainRef, if non-nil, must be released via CFRelease. func openKeychainRef(path string) (C.SecKeychainRef, error) { pathName := C.CString(path) defer C.free(unsafe.Pointer(pathName)) var kref C.SecKeychainRef if err := checkError(C.SecKeychainOpen(pathName, &kref)); err != nil { return nil, err } return kref, nil }
// The returned SecKeychainRef, if non-nil, must be released via CFRelease. func openKeychain(path string) (C.SecKeychainRef, error) { log.Printf("Opening keychain %s", path) pathName := C.CString(path) defer C.free(unsafe.Pointer(pathName)) var kref C.SecKeychainRef if err := newKeychainError(C.SecKeychainOpen(pathName, &kref)); err != nil { return nil, err } return kref, nil }