Refine search
xmlSignature.sign(xmlSignContext); List<Reference> manifestReferences = manifest.getReferences(); for (Reference manifestReference : manifestReferences) { if (manifestReference.getDigestValue() != null) { continue; List<Reference> signedInfoReferences = signedInfo.getReferences(); for (Reference signedInfoReference : signedInfoReferences) { DOMReference domReference = (DOMReference)signedInfoReference;
private void extractConfig(final Document doc, final XMLSignature xmlSignature) throws XPathExpressionException { if (!signatureConfig.isUpdateConfigOnValidate()) { return; } signatureConfig.setSigningCertificateChain(certChain); signatureConfig.setSignatureMethodFromUri(xmlSignature.getSignedInfo().getSignatureMethod().getAlgorithm()); final XPath xpath = XPathFactory.newInstance().newXPath(); xpath.setNamespaceContext(new XPathNSContext()); final Map<String,Consumer<String>> m = new HashMap(); m.put("//mdssi:SignatureTime/mdssi:Value", signatureConfig::setExecutionTime); m.put("//xd:ClaimedRole", signatureConfig::setXadesRole); m.put("//dsss:SignatureComments", signatureConfig::setSignatureDescription); m.put("//xd:QualifyingProperties//xd:SignedSignatureProperties//ds:DigestMethod/@Algorithm", signatureConfig::setXadesDigestAlgo); m.put("//ds:CanonicalizationMethod", signatureConfig::setCanonicalizationMethod); for (Map.Entry<String,Consumer<String>> me : m.entrySet()) { String val = (String)xpath.compile(me.getKey()).evaluate(doc, XPathConstants.STRING); me.getValue().accept(val); } }
boolean coreValidity = signature.validate(valContext); boolean sv = signature.getSignatureValue().validate(valContext); log.trace("Signature validation status: " + sv); List<Reference> references = signature.getSignedInfo().getReferences(); for (Reference ref : references) log.trace("[Ref id=" + ref.getId() + ":uri=" + ref.getURI() + "]validity status:" + ref.validate(valContext));
boolean coreValidity = signature.validate(valContext); boolean sv = signature.getSignatureValue().validate(valContext); System.out.println("signature validation status: " + sv); Iterator i = signature.getSignedInfo().getReferences().iterator(); for (int j=0; i.hasNext(); j++) { boolean refValid = ((Reference) i.next()).validate(valContext); System.out.println("ref["+j+"] validity status: " + refValid);
valContext.setProperty("javax.xml.crypto.dsig.cacheReference", Boolean.TRUE); XMLSignature signature = fac.unmarshalXMLSignature(valContext); boolean coreValidity = signature.validate(valContext); boolean sv = signature.getSignatureValue().validate(valContext); logger.debug("signature validation status: " + sv); OutReadableErrorMessage.set("signature validation failed: " + sv + "." + OutReadableErrorMessage.get()); Iterator<Reference> i = signature.getSignedInfo().getReferences().iterator(); boolean refValid = ref.validate(valContext); logger.debug(j); logger.debug("ref[" + j + "] validity status: " + refValid); OutReadableErrorMessage.set("signature reference " + j + " invalid. " + OutReadableErrorMessage.get()); logger.debug("Ref type: " + ref.getType() + ", URI: " + ref.getURI()); for (Object xform : ref.getTransforms()) { logger.debug("Transform: " + xform);
xmlSignature.getSignedInfo().getSignatureMethod().getAlgorithm(); for (Object refObject : xmlSignature.getSignedInfo().getReferences()) { Reference reference = (Reference)refObject; if ("".equals(reference.getURI()) || reference.getURI().equals(samlAssertion.getId()) || reference.getURI().equals("#" + samlAssertion.getId())) { WSDataRef ref = new WSDataRef(); ref.setWsuId(reference.getURI());
private void checkIntegrity(XMLSignature xmlSignature, byte[] document, byte[] originalDocument) throws IOException { if (null != originalDocument) { throw new IllegalArgumentException( "cannot perform original document verifications"); } Set<String> dsReferenceUris = new HashSet<String>(); SignedInfo signedInfo = xmlSignature.getSignedInfo(); @SuppressWarnings("unchecked") List<Reference> references = signedInfo.getReferences(); for (Reference reference : references) { String referenceUri = reference.getURI(); dsReferenceUris.add(referenceUri); } ZipInputStream odfZipInputStream = new ZipInputStream( new ByteArrayInputStream(document)); ZipEntry zipEntry; while (null != (zipEntry = odfZipInputStream.getNextEntry())) { if (false == ODFUtil.isToBeSigned(zipEntry)) { continue; } String uri = zipEntry.getName().replaceAll(" ", "%20"); if (false == dsReferenceUris.contains(uri)) { LOG.warn("no ds:Reference for ODF entry: " + zipEntry.getName()); throw new RuntimeException("no ds:Reference for ODF entry: " + zipEntry.getName()); } } } }
xmlSignature.getSignedInfo().getSignatureMethod().getAlgorithm(); checkSignatureMethod(signatureMethod); xmlSignature.getSignedInfo().getCanonicalizationMethod().getAlgorithm(); checkC14nAlgorithm(c14nMethod); for (Object refObject : xmlSignature.getSignedInfo().getReferences()) { Reference reference = (Reference)refObject; String digestMethod = reference.getDigestMethod().getAlgorithm(); Set<String> allowedDigestAlgorithms = algorithmSuite.getDigestAlgorithms(); if (!allowedDigestAlgorithms.isEmpty() for (int i = 0; i < reference.getTransforms().size(); i++) { Transform transform = (Transform)reference.getTransforms().get(i); String algorithm = transform.getAlgorithm(); Set<String> allowedTransformAlgorithms =
) throws WSSecurityException { List<WSDataRef> protectedRefs = new java.util.ArrayList<WSDataRef>(); List<?> referencesList = signedInfo.getReferences(); for (int i = 0; i < referencesList.size(); i++) { Reference siRef = (Reference)referencesList.get(i); String uri = siRef.getURI(); NodeSetData data = (NodeSetData)siRef.getDereferencedData(); if (data != null) { java.util.Iterator<?> iter = data.iterator(); ref.setWsuId(uri); ref.setProtectedElement(se); ref.setAlgorithm(signedInfo.getSignatureMethod().getAlgorithm()); ref.setDigestAlgorithm(siRef.getDigestMethod().getAlgorithm());
) throws WSSecurityException { for (Object object : xmlSignature.getObjects()) { if (object instanceof XMLObject) { XMLObject xmlObject = (XMLObject)object; xmlSignature.getSignedInfo().getCanonicalizationMethod().getAlgorithm(); if (!WSConstants.C14N_EXCL_OMIT_COMMENTS.equals(c14nMethod)) { throw new WSSecurityException(WSSecurityException.INVALID_SECURITY, "badC14nAlgo"); xmlSignature.getSignedInfo().getSignatureMethod().getParameterSpec(); if (parameterSpec instanceof HMACParameterSpec) { throw new WSSecurityException(WSSecurityException.INVALID_SECURITY, "R5401"); for (Object refObject : xmlSignature.getSignedInfo().getReferences()) { Reference reference = (Reference)refObject; if (reference.getTransforms().isEmpty()) { throw new WSSecurityException(WSSecurityException.INVALID_SECURITY, "R5416"); for (int i = 0; i < reference.getTransforms().size(); i++) { Transform transform = (Transform)reference.getTransforms().get(i); String algorithm = transform.getAlgorithm(); if (!(WSConstants.C14N_EXCL_OMIT_COMMENTS.equals(algorithm)
XMLSignature xmlSignature = xmlSignatureFactory .unmarshalXMLSignature(domValidateContext); boolean valid = xmlSignature.validate(domValidateContext); if (!valid) { continue; SignedInfo signedInfo = xmlSignature.getSignedInfo(); @SuppressWarnings("unchecked") List<Reference> references = signedInfo.getReferences(); Set<String> referenceUris = new HashSet<String>(); for (Reference reference : references) { String referenceUri = reference.getURI(); referenceUris.add(URLDecoder.decode(referenceUri, "UTF-8")); if (null != reference.getType()) { String digestAlgo = reference.getDigestMethod() .getAlgorithm(); LOG.debug("ds:Reference digest algo: " + digestAlgo);
XMLSignature xmlSignature = xmlSignatureFactory .unmarshalXMLSignature(domValidateContext); boolean valid = xmlSignature.validate(domValidateContext); if (!valid) { continue; SignedInfo signedInfo = xmlSignature.getSignedInfo(); @SuppressWarnings("unchecked") List<Reference> references = signedInfo.getReferences(); Set<String> referenceUris = new HashSet<String>(); for (Reference reference : references) { String referenceUri = reference.getURI(); referenceUris.add(URLDecoder.decode(referenceUri, "UTF-8"));
@SuppressWarnings("unchecked") public static String findReferenceUri(XMLSignature xmlSignature, String type) { SignedInfo signedInfo = xmlSignature.getSignedInfo(); List<Reference> references = signedInfo.getReferences(); for (Reference reference : references) { if (type.equals(reference.getType())) { return reference.getURI(); } } return null; }
/** {@inheritDoc} */ @Override protected boolean doExecute(@Nonnull final Item<Element> item) throws StageProcessingException { Element element = item.unwrap(); XMLSignature signature = xmlSigFactory.newXMLSignature(buildSignedInfo(element), buildKeyInfo()); try { XMLSignContext context = new DOMSignContext(privKey, element, element.getFirstChild()); // Enable caching reference values if required for debugging. if (isDebugPreDigest() && log.isDebugEnabled()) { context.setProperty("javax.xml.crypto.dsig.cacheReference", Boolean.TRUE); } // Perform the signature operation signature.sign(context); // Log the pre-digest data for debugging if (isDebugPreDigest() && log.isDebugEnabled()) { Reference ref = (Reference) signature.getSignedInfo().getReferences().get(0); String preDigest = CharStreams.toString(new InputStreamReader(ref.getDigestInputStream(), "UTF-8")); log.debug("pre digest: {}", preDigest); } } catch (Exception e) { log.error("Unable to create signature for element", e); throw new StageProcessingException("Unable to create signature for element", e); } return true; }
byte[] signatureValue = xmlSignature.getSignatureValue().getValue(); String c14nMethod = xmlSignature.getSignedInfo().getCanonicalizationMethod().getAlgorithm(); elem.getOwnerDocument(), xmlSignature.getSignedInfo(), data.getWssConfig(), wsDocInfo ); if (dataRefs.size() == 0) {
public void constructSignaturePolicy(SignedInfo signedInfo, boolean isBSP,SignaturePolicy policy){ List referencesList = signedInfo.getReferences(); //SignatureMethod sm = signedInfo.getSignatureMethod(); CanonicalizationMethod cm = signedInfo.getCanonicalizationMethod(); policy.isBSP(isBSP); SignaturePolicy.FeatureBinding featureBinding = (SignaturePolicy.FeatureBinding )policy.getFeatureBinding(); featureBinding.setCanonicalizationAlgorithm(cm.getAlgorithm()); Iterator itr = referencesList.iterator(); while(itr.hasNext()){ Reference ref = (Reference) itr.next(); SignatureTarget.Transform transform = getSignatureTransform(ref); SignatureTarget target = new SignatureTarget(); target.isBSP(isBSP); if(transform != null){ target.addTransform(transform); } target.setDigestAlgorithm(ref.getDigestMethod().getAlgorithm()); if(ref.getURI().length() >0){ target.setValue(SecurableSoapMessage.getIdFromFragmentRef(ref.getURI())); }else{ target.setValue(ref.getURI()); } target.setType(SignatureTarget.TARGET_TYPE_VALUE_URI); featureBinding.addTargetBinding(target); } }
TransformationException, XMLSignatureException, ReferenceNotInitializedException, Base64DecodingException { SignedInfo signedInfo = xmlSignature.getSignedInfo(); @SuppressWarnings("unchecked") List<Reference> references = signedInfo.getReferences(); for (Reference reference : references) { LOG.debug("reference type: " + reference.getType()); if (null != reference.getType()) { String digestAlgo = reference.getDigestMethod().getAlgorithm(); LOG.debug("ds:Reference digest algo: " + digestAlgo); byte[] digestValue = reference.getDigestValue();
if (!xmlSignature.getSignedInfo().getCanonicalizationMethod().getAlgorithm() .equals(CanonicalizationMethod.INCLUSIVE)) { LOG.error("Invalid c18n method on OOXML Signature"); List<Reference> refs = xmlSignature.getSignedInfo().getReferences(); return false; if (!isIdPackageObjectValid(xmlSignature.getId(), idPackageObject, document)) { LOG.error("Invalid \"idPackageObject\"."); return false;
@Override public boolean equals(Object o) { if (this == o) { return true; } if (!(o instanceof SignedInfo)) { return false; } SignedInfo osi = (SignedInfo)o; boolean idEqual = id == null ? osi.getId() == null : id.equals(osi.getId()); return canonicalizationMethod.equals(osi.getCanonicalizationMethod()) && signatureMethod.equals(osi.getSignatureMethod()) && references.equals(osi.getReferences()) && idEqual; }
List<Reference> manifestReferences = manifest.getReferences(); for (Reference manifestReference : manifestReferences) { if (null != manifestReference.getDigestValue()) { continue; List<Reference> signedInfoReferences = signedInfo.getReferences(); for (Reference signedInfoReference : signedInfoReferences) { DOMReference domReference = (DOMReference) signedInfoReference;