我正在尝试使用SecItemAdd
方法将私钥导入到钥匙串中,返回OSStatus
0但是当我尝试使用SecItemCopyMatch
从密钥链中检索该密钥时,它会返回nil数据但{ {1}} 0表示成功
请参阅Apple开发人员论坛link
答案 0 :(得分:1)
由于格式错误的公钥引用https://forums.developer.apple.com/thread/15129
而发生错误如果你使用基本编码规则库,这就是解决方案。
要修复公钥,您需要在模数据之前插入nil字节。 https://github.com/StCredZero/SCZ-BasicEncodingRules-iOS/issues/6#issuecomment-136601437
P.S。对我来说,修复很简单:
const char fixByte = 0;
NSMutableData * fixedModule = [NSMutableData dataWithBytes:&fixByte length:1];
[fixedModule appendData:modulusData];
答案 1 :(得分:1)
谢谢!你是我的英雄!
就我而言。
之前
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];