AcroFields fields = reader.getAcroFields(); PdfDictionary sigDict = fields.getSignatureDictionary(name); PdfString contents = sigDict.getAsString(PdfName.CONTENTS); byte[] contentBytes = contents.getOriginalBytes();
private PdfName getSignatureHashKey(String signatureName) throws NoSuchAlgorithmException, IOException { PdfDictionary dic = acroFields.getSignatureDictionary(signatureName); PdfString contents = dic.getAsString(PdfName.CONTENTS); byte[] bc = contents.getOriginalBytes(); byte[] bt = null; if (PdfName.ETSI_RFC3161.equals(PdfReader.getPdfObject(dic.get(PdfName.SUBFILTER)))) { ASN1InputStream din = new ASN1InputStream(new ByteArrayInputStream(bc)); ASN1Primitive pkcs = din.readObject(); bc = pkcs.getEncoded(); } bt = hashBytesSha1(bc); return new PdfName(Utilities.convertToHex(bt)); }
private PdfName getSignatureHashKey(String signatureName) throws NoSuchAlgorithmException, IOException { PdfDictionary dic = acroFields.getSignatureDictionary(signatureName); PdfString contents = dic.getAsString(PdfName.CONTENTS); byte[] bc = null; if(!reader.isEncrypted()) { bc = contents.getOriginalBytes(); }else{ bc = contents.getBytes(); } byte[] bt = null; if (PdfName.ETSI_RFC3161.equals(PdfReader.getPdfObject(dic.get(PdfName.SUBFILTER)))) { ASN1InputStream din = new ASN1InputStream(new ByteArrayInputStream(bc)); ASN1Primitive pkcs = din.readObject(); bc = pkcs.getEncoded(); } bt = hashBytesSha1(bc); return new PdfName(Utilities.convertToHex(bt)); }
if (cert == null) cert = v.getAsArray(PdfName.CERT).getAsString(0); pk = new PdfPKCS7(contents.getOriginalBytes(), cert.getBytes(), provider); pk = new PdfPKCS7(contents.getOriginalBytes(), sub, provider); updateByteRange(pk, v); PdfString str = v.getAsString(PdfName.M);
cert = v.getAsArray(PdfName.CERT).getAsString(0); if(!reader.isEncrypted()) { pk = new PdfPKCS7(contents.getOriginalBytes(), cert.getBytes(), provider); }else{ pk = new PdfPKCS7(contents.getBytes(), cert.getBytes(), provider); pk = new PdfPKCS7(contents.getOriginalBytes(), sub, provider); }else{ pk = new PdfPKCS7(contents.getBytes(),sub,provider);