Xcode iOS 9:SecItemCopyMatching返回成功状态代码,但密钥为零
我尝试使用Xcode iOS 9:SecItemCopyMatching返回成功状态代码,但密钥为零,xcode,rsa,keychain,ios9,Xcode,Rsa,Keychain,Ios9,我尝试使用SecItemAdd方法将私钥导入密钥链返回OSStatus0,但当我尝试使用SecItemCopyMatch从密钥链检索该密钥时,它返回零数据,但OSStatus为0表示成功 请参阅Apple开发者论坛该漏洞是由于公钥格式错误引起的 如果您使用基本编码规则库,下面是解决方案 要修复公钥,需要在模数数据之前插入零字节。 对我来说,修复方法非常简单: const char fixByte = 0; NSMutableData * fixedModule = [NSMutableData
SecItemAdd
方法将私钥导入密钥链返回OSStatus
0,但当我尝试使用SecItemCopyMatch
从密钥链检索该密钥时,它返回零数据,但OSStatus
为0表示成功
请参阅Apple开发者论坛该漏洞是由于公钥格式错误引起的 如果您使用基本编码规则库,下面是解决方案 要修复公钥,需要在模数数据之前插入零字节。 对我来说,修复方法非常简单:
const char fixByte = 0;
NSMutableData * fixedModule = [NSMutableData dataWithBytes:&fixByte length:1];
[fixedModule appendData:modulusData];
谢谢大家!!你是我的英雄 就我而言
- 以前
NSData *modBits = [[NSData alloc] initWithBase64EncodedString:mod options:NSDataBase64DecodingIgnoreUnknownCharacters];
- 之后
const char fixByte = 0; NSMutableData * modBits = [NSMutableData dataWithBytes:&fixByte length:1]; NSData *tmpmodBits = [[NSData alloc] initWithBase64EncodedString:mod options:NSDataBase64DecodingIgnoreUnknownCharacters]; [modBits appendData:tmpmodBits];