Skip to content

验证数字证书

验证数字证书时,将会自动验证证书的证书链中的所有证书是否可信,以及证书是否过期。只有未过期且证书链中所有证书都可信的证书,才是可信任的数字证书。

验证数字证书示例代码如下:

swift
// 验证数字证书。
// 
// 若要验证证书的可信度,您需要验证证书链中的所有证书都是可信的。
// 
// 在ComPDFKit中,此程序是自动的。
// 您直接调用 "signature.verifySignature(with: document)"。
// 然后获取签名的 isCertTrusted判断证书是否可信
//

if let url = URL(string: pdfPath) {
    let document = CPDFDocument(url: url)
    
    if let signatures = document?.signatures {
        // 遍历所有数字签名
        for signature in signatures {
          	signature.verifySignature(with: document)
            if let signer = signature.signers.first, let certificate = signer.certificates.first {
                var isCertTrusted = true
                
                if !signer.isCertTrusted {
                    isCertTrusted = false
                }
                
            }
        }
    }
}
objective-c
// 验证数字证书。
// 
// 若要验证证书的可信度,您需要验证证书链中的所有证书都是可信的。
// 
// 在ComPDFKit中,此程序是自动的。
// 您直接调用 "signature.verifySignature(with: document)"。
// 然后获取签名的 isCertTrusted判断证书是否可信
//

NSURL *url = [NSURL fileURLWithPath:@"file path"];

CPDFDocument *document = [[CPDFDocument alloc] initWithURL:url];

NSArray *signatures = [document signatures];

// 遍历所有数字签名
for (CPDFSignature *signature in signatures) {
  	[sign verifySignatureWithDocument:document];
    CPDFSigner *signer = signature.signers.firstObject;
  
    BOOL isCertTrusted = YES;
  
   if (!signer.isCertTrusted) {
        isCertTrusted = NO;
    }

}