Codice sorgente per digital_signature.verify

# *-* coding: utf-8 *-*
import verifier


[documenti]def verify(pdfdata, certs=None): ''' Return the Hash, Signature and Cert verification result for each signature in the pdf Params: pdfdata: Pdf content as bytes certs: List of certificates ''' verifier_results = [] n = 0 byte_ranges_count = pdfdata.count(b'/ByteRange') for i in range(byte_ranges_count): n = pdfdata.find(b'/ByteRange', n) start = pdfdata.find(b'[', n) stop = pdfdata.find(b']', start) assert n != -1 and start != -1 and stop != -1 br = [int(i, 10) for i in pdfdata[start + 1:stop].split()] contents = pdfdata[br[0] + br[1] + 1:br[2] - 1] data = [] for i in range(0, len(contents), 2): data.append(int(contents[i:i + 2], 16)) bcontents = bytes(data) data1 = pdfdata[br[0]: br[0] + br[1]] data2 = pdfdata[br[2]: br[2] + br[3]] signedData = data1 + data2 verifier_results.append(verifier.verify(bcontents, signedData, certs)) n = stop return verifier_results