private Node findSingleNode(Node baseNode, String xpathExpression) { if (null == this.nsElement) { this.nsElement = createNamespaceElement(baseNode); } return findSingleNode(baseNode, xpathExpression, this.nsElement); }
public static XAdESTimeStampType createXAdESTimeStamp(List<Node> nodeList, RevocationData revocationData, String c14nAlgoId, TimeStampService timeStampService, ObjectFactory objectFactory, be.fedict.eid.applet.service.signer.jaxb.xmldsig.ObjectFactory xmldsigObjectFactory) { byte[] c14nSignatureValueElement = getC14nValue(nodeList, c14nAlgoId); return createXAdESTimeStamp(c14nSignatureValueElement, revocationData, c14nAlgoId, timeStampService, objectFactory, xmldsigObjectFactory); }
public AbstractASiCSignatureService(InputStream documentInputStream, DigestAlgo digestAlgo, RevocationDataService revocationDataService, TimeStampService timeStampService, String claimedRole, IdentityDTO identity, byte[] photo, TemporaryDataStorage temporaryDataStorage, OutputStream documentOutputStream) throws IOException { super(digestAlgo); this.temporaryDataStorage = temporaryDataStorage; this.documentOutputStream = documentOutputStream; this.tmpFile = File.createTempFile("eid-dss-", ".asice"); FileOutputStream fileOutputStream; fileOutputStream = new FileOutputStream(this.tmpFile); IOUtils.copy(documentInputStream, fileOutputStream); addSignatureFacet(new ASiCSignatureFacet(this.tmpFile, digestAlgo)); XAdESSignatureFacet xadesSignatureFacet = new XAdESSignatureFacet(getSignatureDigestAlgorithm()); xadesSignatureFacet.setRole(claimedRole); xadesSignatureFacet.setXadesNamespacePrefix("xades"); addSignatureFacet(xadesSignatureFacet); addSignatureFacet( new XAdESXLSignatureFacet(timeStampService, revocationDataService, getSignatureDigestAlgorithm())); addSignatureFacet(new KeyInfoSignatureFacet(true, false, false)); if (null != identity) { IdentitySignatureFacet identitySignatureFacet = new IdentitySignatureFacet(identity, photo, getSignatureDigestAlgorithm()); addSignatureFacet(identitySignatureFacet); } }
addSignatureFacet(new CoSignatureFacet(getSignatureDigestAlgorithm(), dsReferenceUri)); addSignatureFacet(new KeyInfoSignatureFacet(true, false, false)); XAdESSignatureFacet xadesSignatureFacet = new XAdESSignatureFacet( getSignatureDigestAlgorithm()); xadesSignatureFacet.setRole(role); xadesSignatureFacet.addMimeType(dsReferenceUri, "text/xml"); addSignatureFacet(xadesSignatureFacet); addSignatureFacet(new XAdESXLSignatureFacet(timeStampService, revocationDataService, getSignatureDigestAlgorithm())); addSignatureFacet(signatureFacet); IdentitySignatureFacet identitySignatureFacet = new IdentitySignatureFacet( identity, photo, getSignatureDigestAlgorithm()); addSignatureFacet(identitySignatureFacet);
public OOXMLSignatureService(InputStream documentInputStream, OutputStream documentOutputStream, SignatureFacet signatureFacet, String role, IdentityDTO identity, byte[] photo, RevocationDataService revocationDataService, TimeStampService timeStampService, DigestAlgo signatureDigestAlgo, DSSDocumentContext documentContext) throws IOException { super(signatureDigestAlgo); this.temporaryDataStorage = new HttpSessionTemporaryDataStorage(); this.documentOutputStream = documentOutputStream; this.tmpFile = File.createTempFile("eid-dss-", ".ooxml"); documentContext.deleteWhenSessionDestroyed(this.tmpFile); FileOutputStream fileOutputStream; fileOutputStream = new FileOutputStream(this.tmpFile); IOUtils.copy(documentInputStream, fileOutputStream); addSignatureFacet(signatureFacet); addSignatureFacet(new XAdESXLSignatureFacet(timeStampService, revocationDataService, getSignatureDigestAlgorithm())); XAdESSignatureFacet xadesSignatureFacet = super .getXAdESSignatureFacet(); xadesSignatureFacet.setRole(role); if (null != identity) { IdentitySignatureFacet identitySignatureFacet = new IdentitySignatureFacet( identity, photo, getSignatureDigestAlgorithm()); addSignatureFacet(identitySignatureFacet); } }
Element qualifyingPropertiesElement = (Element) findSingleNode(signatureElement, "ds:Object/xades:QualifyingProperties"); if (null == qualifyingPropertiesElement) { Element unsignedPropertiesElement = (Element) findSingleNode(qualifyingPropertiesElement, "xades:UnsignedProperties"); if (null == unsignedPropertiesElement) { Element unsignedSignaturePropertiesElement = (Element) findSingleNode(unsignedPropertiesElement, "xades:UnsignedSignatureProperties"); if (null == unsignedSignaturePropertiesElement) { Node signatureValueNode = findSingleNode(signatureElement, "ds:SignatureValue"); RevocationData tsaRevocationDataXadesT = new RevocationData(); LOG.debug("creating XAdES-T time-stamp"); XAdESTimeStampType signatureTimeStamp = createXAdESTimeStamp(Collections.singletonList(signatureValueNode), tsaRevocationDataXadesT, this.c14nAlgoId, this.timeStampService, this.objectFactory, this.xmldsigObjectFactory); if (tsaRevocationDataXadesT.hasRevocationDataEntries()) { ValidationDataType validationData = createValidationData(tsaRevocationDataXadesT); try { this.marshaller.marshal(this.xades141ObjectFactory.createTimeStampValidationData(validationData), CertIDType certId = XAdESSignatureFacet.getCertID(certificate, this.objectFactory, this.xmldsigObjectFactory, this.digestAlgorithm, false); certIds.add(certId); RevocationData revocationData = this.revocationDataService.getRevocationData(signingCertificateChain);
protected AbstractOOXMLSignatureService(DigestAlgo digestAlgo) { super(digestAlgo); ConstantLocalClock clock = new ConstantLocalClock(); addSignatureFacet(new OOXMLSignatureFacet(this, clock, digestAlgo)); addSignatureFacet(new KeyInfoSignatureFacet(true, false, false)); this.xadesSignatureFacet = new XAdESSignatureFacet(clock, digestAlgo); this.xadesSignatureFacet.setXadesNamespacePrefix("xd"); this.xadesSignatureFacet.setIdSignedProperties("idSignedProperties"); this.xadesSignatureFacet.setSignaturePolicyImplied(true); /* * Work-around for Office 2010. */ this.xadesSignatureFacet.setIssuerNameNoReverseOrder(true); setSignatureId("idPackageSignature"); addSignatureFacet(this.xadesSignatureFacet); addSignatureFacet(new Office2010SignatureFacet()); }
public AbstractODFSignatureService(DigestAlgo digestAlgo) { super(digestAlgo); addSignatureFacet(new ODFSignatureFacet(this, getSignatureDigestAlgorithm())); addSignatureFacet(new OpenOfficeSignatureFacet(getSignatureDigestAlgorithm())); this.xadesSignatureFacet = new XAdESSignatureFacet(getSignatureDigestAlgorithm()); addSignatureFacet(this.xadesSignatureFacet); addSignatureFacet(new KeyInfoSignatureFacet(false, true, false)); }
RevocationData revocationData = new RevocationData(); CRLValuesType crlValues = revocationValues.getCRLValues(); if (null != crlValues) { for (EncapsulatedPKIDataType encapsulatedCRLValue : encapsulatedCRLValueList) { byte[] crl = encapsulatedCRLValue.getValue(); revocationData.addCRL(crl); for (EncapsulatedPKIDataType encapsulatedOCSPValue : encapsulatedOCSPValueList) { byte[] ocsp = encapsulatedOCSPValue.getValue(); revocationData.addOCSP(ocsp);
private RevocationValuesType createRevocationValues(RevocationData revocationData) { RevocationValuesType revocationValues = this.objectFactory.createRevocationValuesType(); if (revocationData.hasCRLs()) { CRLValuesType crlValues = this.objectFactory.createCRLValuesType(); revocationValues.setCRLValues(crlValues); List<EncapsulatedPKIDataType> encapsulatedCrlValues = crlValues.getEncapsulatedCRLValue(); List<byte[]> crls = revocationData.getCRLs(); for (byte[] crl : crls) { EncapsulatedPKIDataType encapsulatedCrlValue = this.objectFactory.createEncapsulatedPKIDataType(); encapsulatedCrlValue.setValue(crl); encapsulatedCrlValues.add(encapsulatedCrlValue); } } if (revocationData.hasOCSPs()) { OCSPValuesType ocspValues = this.objectFactory.createOCSPValuesType(); revocationValues.setOCSPValues(ocspValues); List<EncapsulatedPKIDataType> encapsulatedOcspValues = ocspValues.getEncapsulatedOCSPValue(); List<byte[]> ocsps = revocationData.getOCSPs(); for (byte[] ocsp : ocsps) { EncapsulatedPKIDataType encapsulatedOcspValue = this.objectFactory.createEncapsulatedPKIDataType(); encapsulatedOcspValue.setValue(ocsp); encapsulatedOcspValues.add(encapsulatedOcspValue); } } return revocationValues; } }
for (EncapsulatedPKIDataType encapsulatedCrl : encapsulatedCrls) { byte[] encodedCrl = encapsulatedCrl.getValue(); revocationData.addCRL(encodedCrl); for (EncapsulatedPKIDataType encapsulatedOcsp : encapsulatedOcsps) { byte[] encodedOcsp = encapsulatedOcsp.getValue(); revocationData.addOCSP(encodedOcsp);
/** * Adds a CRL to this revocation data set. * * @param crl */ public void addCRL(X509CRL crl) { byte[] encodedCrl; try { encodedCrl = crl.getEncoded(); } catch (CRLException e) { throw new IllegalArgumentException("CRL coding error: " + e.getMessage(), e); } addCRL(encodedCrl); }
this.xadesNamespacePrefixMapper = new XAdESNamespacePrefixMapper(); try { JAXBContext jaxbContext = JAXBContext.newInstance(ObjectFactory.class);
/** * Sets the XAdES XML namespace prefix. * * @param xadesNamespacePrefix */ public void setXadesNamespacePrefix(String xadesNamespacePrefix) { this.xadesNamespacePrefixMapper.setXAdESNamespacePrefix(xadesNamespacePrefix); }
private ValidationDataType createValidationData(RevocationData revocationData) { ValidationDataType validationData = this.xades141ObjectFactory.createValidationDataType(); RevocationValuesType revocationValues = createRevocationValues(revocationData); validationData.setRevocationValues(revocationValues); return validationData; }
throw new RuntimeException("certificate encoding error: " + e.getMessage(), e); DigestAlgAndValueType certDigest = getDigestAlgAndValue(encodedCertificate, xadesObjectFactory, xmldsigObjectFactory, digestAlgorithm); certId.setCertDigest(certDigest);
XAdESSignatureFacet xadesSignatureFacet = new XAdESSignatureFacet( getSignatureDigestAlgorithm()); xadesSignatureFacet.setRole(role); addSignatureFacet(xadesSignatureFacet); addSignatureFacet(new KeyInfoSignatureFacet(true, false, false)); addSignatureFacet(new XAdESXLSignatureFacet(timeStampService, revocationDataService, getSignatureDigestAlgorithm())); addSignatureFacet(signatureFacet); IdentitySignatureFacet identitySignatureFacet = new IdentitySignatureFacet( identity, photo, getSignatureDigestAlgorithm()); addSignatureFacet(identitySignatureFacet);
fileOutputStream = new FileOutputStream(this.tmpFile); IOUtils.copy(documentInputStream, fileOutputStream); addSignatureFacet(new XAdESXLSignatureFacet(timeStampService, revocationDataService, getSignatureDigestAlgorithm())); addSignatureFacet(signatureFacet); xadesSignatureFacet.setRole(role); IdentitySignatureFacet identitySignatureFacet = new IdentitySignatureFacet( identity, photo, getSignatureDigestAlgorithm()); addSignatureFacet(identitySignatureFacet);
this.marshaller = context.createMarshaller(); this.marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); this.marshaller.setProperty("com.sun.xml.bind.namespacePrefixMapper", new XAdESNamespacePrefixMapper()); } catch (JAXBException e) { throw new RuntimeException("JAXB error: " + e.getMessage(), e);