Tag: keychain

使用CFTypeRef与ARC获取错误

我基本上遵循这个教程 ,很快就意识到这个项目不会编译,因为我正在使用ARC。 我设法使用__bridge (>。>)来抑制所有的错误,但是我仍然得到一个错误信息,并且我设法读取这个堆栈问题 ,但是不知道如何将解决scheme应用于我的问题。 基本上给我这个问题的方法是这样的: + (NSString*)getPasswordForKey:(NSString*)aKey { NSString *password = nil; NSMutableDictionary *searchDictionary = [self dictionaryForKey:aKey]; [searchDictionary setObject:(__bridge id)kSecMatchLimitOne forKey:(__bridge id)kSecMatchLimit]; [searchDictionary setObject:(id)kCFBooleanTrue forKey:(__bridge id)kSecReturnData]; NSData *result = nil; SecItemCopyMatching((__bridge CFDictionaryRef)searchDictionary, (CFTypeRef *)&result); if (result) { password = [[NSString alloc] initWithData:result encoding:NSUTF8StringEncoding]; } return password; }

拒绝Codesign访问Keychain后,Xcode将不允许为Device创build

我是iOS开发新手,今天我尝试在我的iPhone上检查我的应用程序,并尝试为设备构build它。 所以当我点击构build,它要求input我的密码,让密码来访问钥匙串。 但经过几次尝试,我不小心点击拒绝button。 然后再次尝试构build我的应用程序的设备,现在它说, Swift sodlib tool error, task failed with exit 1 signal 0 而当我检查它所说的错误时, unknown error -1=ffffffffffffffff error: Task failed with exit 1 signal 0 { /usr/bin/codesign '–force' '–sign' 'A6646CD79C82476C1C35598A10134D3171EE09CD' '–verbose' '/Users/samitha/Library/Developer/Xcode/DerivedData/TestFoodTracker-gdcqosdrvtooqocosgttmwyzvgtg/Build/Products/Debug-iphoneos/TestFoodTracker.app/Frameworks/libswiftContacts.dylib' 我做了什么 我试图让密码访问“钥匙串访问”,并检查login下的每个键,但在每个键的访问控制部分,“允许所有应用程序访问此项”已被选中。 我找不到更多的方法来纠正这个错误,让我的应用程序为我的设备而build造。 如果有谁知道如何纠正这个,请帮助我。 谢谢。

iOS分发:将私钥/证书迁移到新机器

我需要能够从不同的机器提交更新到我的应用程序,而不是我用来提交原始的。 我按照文档中的说明操作,但是像往常一样,文档假定所有的工作都是正确的。 我尝试将我的开发人员configuration文件从旧configuration文件导出到新configuration文件,但是当我提交时,App Loader表示它是无效签名。 所以我试图生成新的证书(为了在Provisioning Portal中执行此操作,您必须撤销现有证书)。 它仍然没有工作。 最后,我不得不回收旧机器,这个旧机器没有被擦拭,并能够从中提交我的更新。 除了苹果公司的文件,这不完整,我需要采取什么步骤将我的开发人员证书移植到一台新机器,所以我可以提交相同的分配configuration文件? 我如何处理我撤销现有证书的事实? 我可以使用原始的“私钥”重新生成那些仍然适用于应用更新的私钥吗? 谢谢

在ios 9中不推荐使用kSecAttrAccessibleAlways

我使用keychain进行身份validation,然后在后台将位置信息发送到服务器。 但是,因为kSecAttrAccessibleAlways得到了depricated,我将不得不使用kSecAttrAccessibleAfterFirstUnlock 。 这允许重新启动手机后首次解锁后使用keychain 。 问题是如果用户重新启动电话,并且在第一次解锁之前位置改变,则authentication将失败,因为我们无法从keychain获取。 我怎么解决这个问题。 如何findkeychain不能被访问,并停止authentication过程。 谢谢。

在iOS中使用钥匙串存储的密钥生成OpenSSL证书签名请求

我正在尝试在iOS中生成CSR。 由于显然iOS的Apple安全框架不包括用于生成CSR的方法,所以我不得不为我的项目编译OpenSSL源代码。 现在我想知道如何使用我以前在Keychain中生成的密钥来使用这些方法。 也就是说,我需要将SecKeyReftypes转换为像EVP_PKEY这样的OpenSSLtypes。 这将允许我调用OpenSSL方法X509_REQ_set_pubkey。 有没有人知道一个方法来实现这一目标?

Mac OSX在构buildMonoDevelop iOS App时要求获得钥匙串访问权限

在Mac上使用MonoDevelop构build项目时,我收到消息“MAC OS X希望进行更改。inputpipe理员的名称和密码以允许此操作,MAC OSX希望使用系统密钥链。 我发现后期的Mac OS X希望在编译项目时使用系统钥匙串,但这并不能完全解决我的问题。 我安装的configuration文件是通过XCode完成的,并且是我在configuration文件中的当前/有效configuration文件,所以我假设这些是正确的 – XCode报告它们是有效的。 我已经将我的开发环境从Macbook(编译应用程序正常工作,没有此错误)移到另一台Mac,并且已经开始出现。 如果我input我的用户名/密码,它编译和工作。 任何想法为什么发生这种情况? (我想知道的一件事可能会导致一个问题…当我原来在我的Macbook上设置开发环境,我出口/备份我的证书Jonny WIlson.p12。然而,在我的新的Mac,我无法导入。我尝试重新导出它并再次导入,这也失败了。这个INITIAL证书(用于生成你在开通configuration文件中certificate的开发/分发)是获得这个工作的重要部分吗?我这样问是因为我阅读在一个论坛上,一旦你有你的苹果证书,这个密钥不再需要?这是正确的?)

钥匙串 – 安全的数据存储

我正在开发一个应用程序与钥匙串实施。 我能够创build&保存数据到钥匙串。 我正在使用Apple提供的Keychain Wrapper类 。 根据要求,我必须在KeyChain中实现最好的安全性(安全小组指出失败,例如在监狱设备上的可访问性)。 有人能给我指导吗?

钥匙扣和NSUserDefault之间的区别?

我是新的objective C ,我已经创build了一个应用程序,我已经使用NSUserDefault和Keychain来存储我的用户名和密码。 但我不能区分两者。 请帮忙区分两者。 谢谢。

将私钥添加到iOS Keychain中

我正在尝试将私钥添加到iOS钥匙串中。 证书(公钥)工作正常,但私钥拒绝…我完全困惑为什么下面的代码不起作用。 首先,我正在检查钥匙串中当前的钥匙(钥匙是钥匙串是钥匙/值存储)是否是“自由的”。 然后我要添加私钥。 CFStringRef labelstring = CFStringCreateWithCString(NULL, [key cStringUsingEncoding:NSUTF8StringEncoding], kCFStringEncodingUTF8); NSArray* keys = [NSArray arrayWithObjects:(__bridge id)kSecClass,kSecAttrLabel,kSecReturnData,kSecAttrAccessible,nil]; NSArray* values = [NSArray arrayWithObjects:(__bridge id)kSecClassKey,labelstring,kCFBooleanTrue,kSecAttrAccessibleWhenUnlocked,nil]; NSMutableDictionary* searchdict = [NSMutableDictionary dictionaryWithObjects:values forKeys:keys]; CFRelease(labelstring); NSMutableDictionary *query = searchdict; CFTypeRef item = NULL; OSStatus error = SecItemCopyMatching((__bridge_retained CFDictionaryRef) query, &item); if (error) { NSLog(@"Error: %ld (statuscode)", error); } if(error != […]

SFHFKeychainUtils。 iOS钥匙串。 ARC兼容

我想知道是否有人使用SFHFKeychainUtils设法修改它们与ARC兼容。 更确切地说, NSDictionary *attributeResult = NULL; NSMutableDictionary *attributeQuery = [query mutableCopy]; [attributeQuery setObject: (id) kCFBooleanTrue forKey:(__bridge id) kSecReturnAttributes]; OSStatus status = SecItemCopyMatching((CFDictionaryRef) attributeQuery,(CFTypeRef *)(attributeResult)); 我试过了 OSStatus status = SecItemCopyMatching((__bridge CFDictionaryRef) attributeQuery,(CFTypeRef *)(attributeResult)); 也 CFTypeRef subAttributeResult = (CFTypeRef *)(objc_unretainedPointer(attributeResult)); OSStatus status = SecItemCopyMatching((__bridge CFDictionaryRef) attributeQuery,(CFTypeRef *)(subAttributeResult)); 这2是我设法得到没有错误的唯一的两种方法。 任何其他方法通过添加objc_XXX而不是CFTypeRef在这里和那里得到我的错误(从obj-c指针到CFTypeRef的隐式转换在ARC中被禁止,将xparameter passing给y参数丢弃限定符)。 显然,第一段代码也会给出错误。 尽pipe在构build时我没有遇到任何错误,但是在到达这部分代码时,应用程序与EXC_BAD_ACCESS一起崩溃。 完整的SFHFKeychainUtils链接: https : //github.com/ldandersen/scifihifi-iphone/tree/master/security 请帮忙吗? […]