List of usage examples for javax.xml.crypto OctetStreamData OctetStreamData
public OctetStreamData(InputStream octetStream)
OctetStreamData
. From source file:no.difi.sdp.client.asice.signature.CreateSignatureTest.java
private boolean verify_signature(final Signature signature2) { try {/*from www . j a v a2 s . c o m*/ signature2.getBytes(); DocumentBuilderFactory fac = DocumentBuilderFactory.newInstance(); fac.setNamespaceAware(true); DocumentBuilder builder = fac.newDocumentBuilder(); final Document doc = builder.parse(new ByteArrayInputStream(signature2.getBytes())); //System.err.println(new String(signature2.getBytes())); NodeList nl = doc.getElementsByTagNameNS(XMLSignature.XMLNS, "Signature"); DOMValidateContext valContext = new DOMValidateContext( noekkelpar.getSertifikat().getX509Certificate().getPublicKey(), nl.item(0)); valContext.setURIDereferencer(new URIDereferencer() { @Override public Data dereference(final URIReference uriReference, final XMLCryptoContext context) throws URIReferenceException { //System.out.println("$$$$ " + uriReference.getURI()); for (AsicEAttachable file : files) { if (file.getFileName().equals(uriReference.getURI().toString())) { return new OctetStreamData(new ByteArrayInputStream(file.getBytes())); } } uriReference.getURI().toString().replace("#", ""); Node element = doc.getElementsByTagName("SignedProperties").item(0); return new DOMSubTreeData(element, false); } }); XMLSignatureFactory fact = XMLSignatureFactory.getInstance("DOM"); XMLSignature signature = fact.unmarshalXMLSignature(valContext); boolean coreValidity = signature.validate(valContext); if (coreValidity == false) { System.err.println("Signature failed core validation"); boolean sv = signature.getSignatureValue().validate(valContext); System.out.println("signature validation status: " + sv); if (sv == false) { // Check the validation status of each Reference. Iterator i = signature.getSignedInfo().getReferences().iterator(); for (int j = 0; i.hasNext(); j++) { boolean refValid = ((javax.xml.crypto.dsig.Reference) i.next()).validate(valContext); System.out.println("ref[" + j + "] validity status: " + refValid); } } } return coreValidity; } catch (Exception ex) { ex.printStackTrace(System.err); return false; } }
From source file:be.fedict.eid.applet.service.signer.ooxml.RelationshipTransformService.java
private OctetStreamData toOctetStreamData(Node node) throws TransformerException { Source source = new DOMSource(node); ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); Result result = new StreamResult(outputStream); TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); transformer.transform(source, result); LOG.debug("result: " + new String(outputStream.toByteArray())); return new OctetStreamData(new ByteArrayInputStream(outputStream.toByteArray())); }
From source file:org.apache.jcp.xml.dsig.internal.dom.ApacheCanonicalizer.java
public Data canonicalize(Data data, XMLCryptoContext xc, OutputStream os) throws TransformException { if (apacheCanonicalizer == null) { try {/*from w w w.java2 s. c om*/ apacheCanonicalizer = Canonicalizer.getInstance(getAlgorithm()); if (log.isDebugEnabled()) { log.debug("Created canonicalizer for algorithm: " + getAlgorithm()); } } catch (InvalidCanonicalizerException ice) { throw new TransformException( "Couldn't find Canonicalizer for: " + getAlgorithm() + ": " + ice.getMessage(), ice); } } if (os != null) { apacheCanonicalizer.setWriter(os); } else { apacheCanonicalizer.setWriter(new ByteArrayOutputStream()); } try { Set<Node> nodeSet = null; if (data instanceof ApacheData) { XMLSignatureInput in = ((ApacheData) data).getXMLSignatureInput(); if (in.isElement()) { if (inclusiveNamespaces != null) { return new OctetStreamData(new ByteArrayInputStream( apacheCanonicalizer.canonicalizeSubtree(in.getSubNode(), inclusiveNamespaces))); } else { return new OctetStreamData( new ByteArrayInputStream(apacheCanonicalizer.canonicalizeSubtree(in.getSubNode()))); } } else if (in.isNodeSet()) { nodeSet = in.getNodeSet(); } else { return new OctetStreamData(new ByteArrayInputStream( apacheCanonicalizer.canonicalize(Utils.readBytesFromStream(in.getOctetStream())))); } } else if (data instanceof DOMSubTreeData) { DOMSubTreeData subTree = (DOMSubTreeData) data; if (inclusiveNamespaces != null) { return new OctetStreamData(new ByteArrayInputStream( apacheCanonicalizer.canonicalizeSubtree(subTree.getRoot(), inclusiveNamespaces))); } else { return new OctetStreamData( new ByteArrayInputStream(apacheCanonicalizer.canonicalizeSubtree(subTree.getRoot()))); } } else if (data instanceof NodeSetData) { NodeSetData nsd = (NodeSetData) data; // convert Iterator to Set @SuppressWarnings("unchecked") Set<Node> ns = Utils.toNodeSet(nsd.iterator()); nodeSet = ns; if (log.isDebugEnabled()) { log.debug("Canonicalizing " + nodeSet.size() + " nodes"); } } else { return new OctetStreamData(new ByteArrayInputStream(apacheCanonicalizer .canonicalize(Utils.readBytesFromStream(((OctetStreamData) data).getOctetStream())))); } if (inclusiveNamespaces != null) { return new OctetStreamData(new ByteArrayInputStream( apacheCanonicalizer.canonicalizeXPathNodeSet(nodeSet, inclusiveNamespaces))); } else { return new OctetStreamData( new ByteArrayInputStream(apacheCanonicalizer.canonicalizeXPathNodeSet(nodeSet))); } } catch (Exception e) { throw new TransformException(e); } }
From source file:org.jcp.xml.dsig.internal.dom.ApacheCanonicalizer.java
public Data canonicalize(Data data, XMLCryptoContext xc, OutputStream os) throws TransformException { if (apacheCanonicalizer == null) { try {//from w w w .ja v a 2 s .c o m apacheCanonicalizer = Canonicalizer.getInstance(getAlgorithm()); if (log.isDebugEnabled()) { log.debug("Created canonicalizer for algorithm: " + getAlgorithm()); } } catch (InvalidCanonicalizerException ice) { throw new TransformException( "Couldn't find Canonicalizer for: " + getAlgorithm() + ": " + ice.getMessage(), ice); } } if (os != null) { apacheCanonicalizer.setWriter(os); } else { apacheCanonicalizer.setWriter(new ByteArrayOutputStream()); } try { Set<Node> nodeSet = null; if (data instanceof ApacheData) { XMLSignatureInput in = ((ApacheData) data).getXMLSignatureInput(); if (in.isElement()) { if (inclusiveNamespaces != null) { return new OctetStreamData(new ByteArrayInputStream( apacheCanonicalizer.canonicalizeSubtree(in.getSubNode(), inclusiveNamespaces))); } else { return new OctetStreamData( new ByteArrayInputStream(apacheCanonicalizer.canonicalizeSubtree(in.getSubNode()))); } } else if (in.isNodeSet()) { nodeSet = in.getNodeSet(); } else { return new OctetStreamData(new ByteArrayInputStream( apacheCanonicalizer.canonicalize(Utils.readBytesFromStream(in.getOctetStream())))); } } else if (data instanceof DOMSubTreeData) { DOMSubTreeData subTree = (DOMSubTreeData) data; if (inclusiveNamespaces != null) { return new OctetStreamData(new ByteArrayInputStream( apacheCanonicalizer.canonicalizeSubtree(subTree.getRoot(), inclusiveNamespaces))); } else { return new OctetStreamData( new ByteArrayInputStream(apacheCanonicalizer.canonicalizeSubtree(subTree.getRoot()))); } } else if (data instanceof NodeSetData) { NodeSetData nsd = (NodeSetData) data; // convert Iterator to Set nodeSet = Utils.toNodeSet(nsd.iterator()); if (log.isDebugEnabled()) { log.debug("Canonicalizing " + nodeSet.size() + " nodes"); } } else { return new OctetStreamData(new ByteArrayInputStream(apacheCanonicalizer .canonicalize(Utils.readBytesFromStream(((OctetStreamData) data).getOctetStream())))); } if (inclusiveNamespaces != null) { return new OctetStreamData(new ByteArrayInputStream( apacheCanonicalizer.canonicalizeXPathNodeSet(nodeSet, inclusiveNamespaces))); } else { return new OctetStreamData( new ByteArrayInputStream(apacheCanonicalizer.canonicalizeXPathNodeSet(nodeSet))); } } catch (Exception e) { throw new TransformException(e); } }