サードパーティコード (例: オープン SSL) を使用せずに、iOS で公開鍵を使用してデジタル署名を検証する方法は?
公開鍵を使用して、iOS アプリでデジタル署名を検証する必要があります。サードパーティのソフトウェアを使用せずにそれを達成する方法を教えてください。
以下のコードを試していますが、アプリに証明書がないため、 SecTrustRefを作成できないという問題があります。
コード:
NSString *certPath = [[NSBundle mainBundle] pathForResource:@"yyy"
ofType:@"xxx"];
SecCertificateRef myCertificate = nil;
NSData *certificateData = [[NSData alloc] initWithContentsOfFile :certPath];
myCertificate = SecCertificateCreateWithData(kCFAllocatorDefault, (__bridge CFDataRef)certificateData);
SecPolicyRef myPolicy = SecPolicyCreateBasicX509();
SecTrustRef trustRef;
SecTrustCreateWithCertificates(myCertificate, myPolicy, &trustRef);
SecKeyRef keyRef = SecTrustCopyPublicKey (trustRef);
BOOL status = SecKeyRawVerify (keyRef,
kSecPaddingPKCS1SHA1,
(const uint8_t *)[data bytes],
(size_t)[data length],
(const uint8_t *)[signature bytes],
(size_t)[signature length]
);
私は次のものを持っています:
- 公開鍵 (NSString*)
- 署名 (NSString*)
- データ (NSString*)
ant サードパーティのオープン ソースを使用したくない場合は、iOS SDK にあるすべてのオプションを教えてください。