@org.junit.Test public void testsetngetURIDereferencer() throws Exception { assertNull(defContext.getURIDereferencer()); byte[] data = "simpleDereferencer".getBytes(); URIDereferencer deref = new TestUtils.OctetStreamURIDereferencer(data); defContext.setURIDereferencer(deref); assertEquals(defContext.getURIDereferencer(), deref); defContext.setURIDereferencer(null); assertNull(defContext.getURIDereferencer()); }
public Data dereference(URIReference uriReference, XMLCryptoContext context) throws URIReferenceException { if (uriReference == null) { throw new NullPointerException("Parameter 'uriReference' cannot be null."); } if (context == null) { throw new NullPointerException("Parameter 'context' can notbe null."); } if (!(uriReference instanceof DOMURIReference && context instanceof DOMCryptoContext)) { throw new IllegalArgumentException(String.format("This %s implementation supports the DOM XML mechanism only.", URIDereferencer.class.getName())); } String uriString = uriReference.getURI(); if (uriString == null) { throw new URIReferenceException("Cannot resolve a URI of value 'null'."); } if (uriString != null && ((uriString.length() != 0 && uriString.charAt(0) == '#') || uriString.isEmpty())) { // same document uri XMLSignatureFactory fac = XMLSignatureFactory.getInstance("DOM"); return fac.getURIDereferencer().dereference(uriReference, context); } throw new URIReferenceException(String.format("URI reference %s not supported", uriString)); }
private boolean verify(Document document, List<EbMSDataSource> dataSources) throws MarshalException, XMLSignatureException { NodeList nodeList = document.getElementsByTagNameNS(XMLSignature.XMLNS,"Signature"); if (nodeList.getLength() > 0) { XMLSignatureFactory signFactory = XMLSignatureFactory.getInstance(); DOMValidateContext validateContext = new DOMValidateContext(new XMLDSigKeySelector(),nodeList.item(0)); URIDereferencer dereferencer = new EbMSDataSourceURIDereferencer(dataSources); validateContext.setURIDereferencer(dereferencer); XMLSignature signature = signFactory.unmarshalXMLSignature(validateContext); return signature.validate(validateContext); } return true; }
public URIDereferencer getURIDereferencer() { return dereferencer; }
public void setURIDereferencer(URIDereferencer dereferencer) { this.dereferencer = dereferencer; }
@Override public Data dereference(XMLCryptoContext context) throws URIReferenceException { if (context == null) { throw new NullPointerException("context cannot be null"); } /* * If URIDereferencer is specified in context; use it, otherwise use * built-in. */ URIDereferencer deref = context.getURIDereferencer(); if (deref == null) { deref = DOMURIDereferencer.INSTANCE; } Data data = deref.dereference(this, context); // pass dereferenced data through Transforms try { for (Transform transform : transforms) { data = transform.transform(data, context); } } catch (Exception e) { throw new URIReferenceException(e); } // guard against RetrievalMethod loops if (data instanceof NodeSetData && Utils.secureValidation(context)) { NodeSetData nsd = (NodeSetData)data; Iterator<?> i = nsd.iterator(); if (i.hasNext()) { Node root = (Node)i.next(); if ("RetrievalMethod".equals(root.getLocalName())) { throw new URIReferenceException( "It is forbidden to have one RetrievalMethod point " + "to another when secure validation is enabled"); } } } return data; }
private void test_create_hmac_sha1_exclusive_c14n_comments_detached(boolean fortyBit) throws Exception { // create reference Reference ref = fac.newReference ("http://www.ietf.org/rfc/rfc3161.txt", fac.newDigestMethod(DigestMethod.SHA1, null)); // create SignedInfo HMACParameterSpec spec = null; if (fortyBit) { spec = new HMACParameterSpec(40); } SignedInfo si = fac.newSignedInfo( fac.newCanonicalizationMethod (CanonicalizationMethod.EXCLUSIVE_WITH_COMMENTS, (C14NMethodParameterSpec) null), fac.newSignatureMethod(SignatureMethod.HMAC_SHA1, spec), Collections.singletonList(ref)); // create XMLSignature XMLSignature sig = fac.newXMLSignature(si, null); Document doc = db.newDocument(); DOMSignContext dsc = new DOMSignContext (new KeySelectors.SecretKeySelector ("test".getBytes("ASCII")), doc); dsc.putNamespacePrefix(XMLSignature.XMLNS, "dsig"); URIDereferencer ud = new LocalHttpCacheURIDereferencer(); dsc.setURIDereferencer(ud); sig.sign(dsc); TestUtils.validateSecurityOrEncryptionElement(doc.getDocumentElement()); DOMValidateContext dvc = new DOMValidateContext (new KeySelectors.SecretKeySelector ("test".getBytes("ASCII")), doc); dvc.setURIDereferencer(ud); XMLSignature sig2 = fac.unmarshalXMLSignature(dvc); assertTrue(sig.equals(sig2)); assertTrue(sig2.validate(dvc)); }
public URIDereferencer getUriDereferencer() { return uriDereferencer; }
public URIDereferencer getUriDereferencer() { return getConfiguration().getUriDereferencer(); }
public void setUriDereferencer(URIDereferencer uriDereferencer) { getConfiguration().setUriDereferencer(uriDereferencer); }
public static URIDereferencer getSameDocumentUriDereferencer() { return SameDocumentUriDereferencer.getInstance(); }
public static URIDereferencer getInstance() { return INSTANCE; }
@Override protected final URIDereferencer getURIDereferencer() { URL odfUrl = getOpenDocumentURL(); return new ODFURIDereferencer(odfUrl); }
@Override protected URIDereferencer getURIDereferencer() { return new ASiCURIDereferencer(this.tmpFile); }
@Override protected final URIDereferencer getURIDereferencer() { URL ooxmlUrl = getOfficeOpenXMLDocumentURL(); return new OOXMLURIDereferencer(ooxmlUrl); }
@Override protected URIDereferencer getURIDereferencer() { return this.uriDereferencer; }
public void setUriDereferencer(URIDereferencer uriDereferencer) { this.uriDereferencer = uriDereferencer; }
public URIDereferencer getURIDereferencer() { throw new UnsupportedOperationException(); }
public ODFURIDereferencer(OdfDocument pOdfDocument, URIDereferencer pDefaultURIDereferencer) { odfDoc = pOdfDocument; defaultURIDereferencer = pDefaultURIDereferencer; }