gpt4 book ai didi

macos - 从 OSX 授权插件访问 KeyChain 项目

转载 作者:行者123 更新时间:2023-12-03 17:18:32 29 4
gpt4 key购买 nike

我尝试在 FileVault 登录后访问钥匙串(keychain)项目,但我无法执行此操作。我在 Error acessing keychain item from OS X authorization plugin 中看到类似的问题,请帮助我解决这个已经困扰了一周的问题。

最佳答案

我遇到过类似的情况,似乎非特权授权插件无法访问“系统”钥匙串(keychain)。因此,我提前创建了一个新的钥匙串(keychain),其中包含身份验证插件所需的项目。

// blabla is pw for keychain and blabla2 is pw for p12 file.
security create-keychain -p balboa /tmp/my.keychain
security unlock-keychain -p balboa /tmp/my.keychain
sudo -A security import /tpm/mycert.p12 -k /tmp/my.keychain -P blabla2 -A

然后,通过授权插件,我成功地访问了钥匙串(keychain)内的项目。在下面的伪代码中,我演示了如何根据颁发者从钥匙串(keychain)获取证书,但也允许任何其他方式访问钥匙串(keychain)进行读取。

SecKeychainRef myKeychain = nil;
SecKeychainOpen( "/tmp/my.keychain", &myKeychain);

NSString * keychainPassword = @"blabla";
SecKeychainUnlock(myKeychain, [keychainPassword length], [keychainPassword UTF8String], true);

CFArrayRef keychainToSearchIdentity = CFArrayCreate(kCFAllocatorDefault, (const void **) &myKeychain, 1, &kCFTypeArrayCallBacks);

const void *keys[] = {kSecMatchSearchList, kSecClass, kSecReturnRef, kSecMatchIssuers};
const void *values[] = { keychainToSearchIdentity, kSecClassIdentity, kCFBooleanTrue, mySearchCriteriaIssuers };


CFDictionaryRef searchItemDict = CFDictionaryCreeate(NULL, keys, values, 4 ,NULL, NULL);

SecItemCopyMatch(searchItemDict, &myIdentity);

关于macos - 从 OSX 授权插件访问 KeyChain 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59286360/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com