SecKeyRawVerify i OSError -9809
Używam certyfikatów cyfrowych do podpisywania plików danych w mojej aplikacji. Poniższy fragment kodu nie powiedzie się, gdy zadzwonisz doSecKeyRawVerify
zwraca z -9809. To działa na telefonie iPhone. Nie mogę nawet dokładnie określić, co oznacza ten kod błędu
Wcześniejsze wywołania Security Framework do ładowania i tworzenia SecTrustRef, z których uzyskiwany jest klucz publiczny, wydają się być w porządku - bez błędów. Jedynym drobnym problemem jest to, że wezwanie doSecTrustEvaluate
zwraca akSecTrustResultUnspecified
, ale zakładam, że dzieje się tak, ponieważ polityka, której używam, jest polisą zwróconą przezSecPolicyCreateBasicX509
połączenie.
Każda pomoc lub wgląd byłby bardzo mile widziany.
Dzięki
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]
);