首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从密钥链mac中以编程方式删除私钥

从密钥链mac中以编程方式删除私钥
EN

Stack Overflow用户
提问于 2015-01-08 01:13:27
回答 1查看 1.1K关注 0票数 0

我有一个p12文件,比方说mycert.p12与一些密码,我导入它使用安全工具,这是正确的安装在钥匙链中的预期,现在我正在尝试删除密钥链中的私有和公共部分,我能够删除公共使用删除证书-Z与安全工具,但私钥不被删除,如何使用SecItemDelete删除这个或任何特殊的脚本可用。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2015-01-15 21:26:26

您可以使用SecItemCopyMatching和SecKeychainItemDelete来实现这一点。第一个搜索项目,第二个删除项目。

对于SecItemCopyMatching,您需要定义一个搜索字典,该字典定义您要查找的项,例如,您可以使用您要查找的键的密钥链的名称。例如,我有一个名为"iPhone配置实用程序(8AE57ABA-8DCD-4A29-9013-07FB2AEDADCE)“的私钥。

要以编程方式删除此特殊私钥,您可以使用以下代码片段:

代码语言:javascript
复制
NSMutableDictionary *query = [NSMutableDictionary new];

[query setObject:(__bridge id)kSecClassKey forKey:(__bridge id)kSecClass];
[query setObject:@"iPhone Configuration Utility (8AE57ABA-8DCD-4A29-9013-07FB2AEDADCE)" forKey:(__bridge id)kSecAttrLabel];
[query setObject:(__bridge id)kCFBooleanTrue forKey:(__bridge id)kSecReturnRef];
[query setObject:(__bridge id)kSecMatchLimitOne forKey:(__bridge id)kSecMatchLimit];

CFTypeRef result = NULL;

OSStatus status = 0;

status = SecItemCopyMatching((__bridge CFDictionaryRef )query, &result);

NSLog(@"%@", SecCopyErrorMessageString(status, NULL));

SecKeychainItemDelete((SecKeychainItemRef)result);

字典中的第一个对象键组合定义了您正在搜索的私钥。如果正在搜索证书,则可以使用KSecClassCertificate;如果正在搜索密码,则可以使用KSecClassGenericPassword。

第二个用KSecAttrLabel定义密钥链中的项的名称。

SecItemCopyMatching返回对找到项的引用,3d定义引用的类型,这里是SecKeychainItemRef,因为此类型需要SecKeychainItemDelete。

第四个定义了你只想要一个匹配项,如果你想要所有的匹配项,那么就使用KSecMatchLimitAll。

然后调用SecItemCopyMatching,它将返回对第一个找到的匹配搜索字典的项的引用。

SecCopyErrorMessageString会打印一条错误消息,您可以在其中查看是否正确,然后打印No Error,或者如果找不到项目,则会显示item not found消息,依此类推。

最后,使用对找到的项的引用调用SecKeychainItemDelete。

您有许多可能性来定义搜索字典,因为您可以搜索密钥链中的每一项,如密码、互联网密码、证书等。如果您想深入了解,请参阅Apples keychain服务参考:

https://developer.apple.com/library/mac/documentation/Security/Reference/keychainservices/index.html#//apple_ref/c/func/SecCopyErrorMessageString

希望这能有所帮助

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27824829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档