我使用数字证书在我的应用程序对数据进行签名的文件。 当调用下面的代码片段失败SecKeyRawVerify
与-9809返回。 这是在iPhone上运行。 我甚至不能确定究竟这是什么错误代码的含义
现有安全框架调用加载和创建从中获得公钥SecTrustRef看起来很好 - 没有错误。 唯一的小问题是,调用SecTrustEvaluate
返回kSecTrustResultUnspecified
,但我认为,这是因为我使用的政策是由返回的样板一个SecPolicyCreateBasicX509
电话。
任何帮助或洞察力会非常赞赏。
谢谢
SecKeyRef keyRef = SecTrustCopyPublicKey (trustRef);
fileURL = [[NSBundle mainBundle] URLForResource:@"data" withExtension:@"txt"];
NSData *data = [NSData dataWithContentsOfURL:fileURL];
fileURL = [[NSBundle mainBundle] URLForResource:@"data" withExtension:@"sgn"];
NSData *signature = [NSData dataWithContentsOfURL:fileURL];
NSLog(@"Hash block size = %zu",SecKeyGetBlockSize(keyRef));
status = SecKeyRawVerify (keyRef,
kSecPaddingPKCS1SHA1,
(const uint8_t *)[data bytes],
(size_t)[data length],
(const uint8_t *)[signature bytes],
(size_t)[signature length]
);