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;
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); System.out.println("signature validation status: " + sv); Iterator<Reference> i = signature.getSignedInfo().getReferences().iterator(); System.out.println("---------------------------------------------"); for (int j = 0; i.hasNext(); j++) { Reference ref = (Reference) i.next(); boolean refValid = ref.validate(valContext); System.out.println("ref[" + j + "] validity status: " + refValid); System.out.println("Ref type: " + ref.getType() + ", URI: " + ref.getURI()); for (Object xform : ref.getTransforms()) { System.out.println("Transform: " + xform); String calcDigValStr = digestToString(ref.getCalculatedDigestValue()); String expectedDigValStr = digestToString(ref.getDigestValue()); System.out.println(" Calc Digest: " + calcDigValStr); System.out.println("Expected Digest: " + expectedDigValStr); InputStream is = ref.getDigestInputStream(); InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr);
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()); ref.setProtectedElement(token); ref.setAlgorithm(signatureMethod); ref.setDigestAlgorithm(reference.getDigestMethod().getAlgorithm()); ref.setDigestValue(reference.getDigestValue()); List<Transform> transforms = (List<Transform>)reference.getTransforms(); List<String> transformAlgorithms = new ArrayList<>(transforms.size()); for (Transform transform : transforms) {
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 =
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); String referenceUri = reference.getURI(); LOG.debug("ds:Reference URI: " + referenceUri); byte[] digestValue = reference.getDigestValue(); Set<String> referencedEntryNames = new HashSet<String>(); for (Reference reference : references) { if (null != reference.getType()) { continue; referencedEntryNames.add(reference.getURI());
) 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()); List<Transform> transforms = (List<Transform>)siRef.getTransforms(); List<String> transformAlgorithms = new ArrayList<String>(transforms.size()); for (Transform transform : transforms) {
) 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"); 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) throw new WSSecurityException(WSSecurityException.INVALID_SECURITY, "R5423"); if (i == (reference.getTransforms().size() - 1) && (!(WSConstants.C14N_EXCL_OMIT_COMMENTS.equals(algorithm) || STRTransform.TRANSFORM_URI.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"));
@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; }
@Override public boolean equals(Object o) { if (this == o) { return true; } if (!(o instanceof Reference)) { return false; } Reference oref = (Reference)o; boolean idsEqual = id == null ? oref.getId() == null : id.equals(oref.getId()); boolean urisEqual = uri == null ? oref.getURI() == null : uri.equals(oref.getURI()); boolean typesEqual = type == null ? oref.getType() == null : type.equals(oref.getType()); boolean digestValuesEqual = Arrays.equals(digestValue, oref.getDigestValue()); return digestMethod.equals(oref.getDigestMethod()) && idsEqual && urisEqual && typesEqual && allTransforms.equals(oref.getTransforms()) && digestValuesEqual; }
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();
boolean valid = xmlSignature.validate(domValidateContext); List<XMLObject> objects = xmlSignature.getObjects(); XMLObject idPackageObject = null; for (XMLObject object : objects) { Set<String> remainingIdPackageObjectReferenceUris = new HashSet<String>(); for (Reference idPackageObjectReference : idPackageObjectReferences) { idPackageObjectReferenceUris.add(idPackageObjectReference.getURI()); remainingIdPackageObjectReferenceUris.add(idPackageObjectReference.getURI());
for (int i = 0, size = refs.size(); validateRefs && i < size; i++) { Reference ref = refs.get(i); boolean refValid = ref.validate(vc); LOG.debug("Reference [{}] is valid: {}", ref.getURI(), refValid); validateRefs &= refValid; for (int k = 0; validateMans && k < rsize; k++) { Reference ref = manRefs.get(k); boolean refValid = ref.validate(vc); LOG.debug( "Manifest ref [{}] is valid: {}", ref.getURI(), refValid ); validateMans &= refValid;
public InvalidSignatureReason(Reference reference) { invalidSignature = InvalidSignature.BAD_REFERENCE; StringBuilder sb = new StringBuilder(); sb.append("Bad reference"); String id = reference.getId(); if (id != null && (id = id.trim()).length() > 0) sb.append(" with Id '").append(id).append("'"); String uri = reference.getURI(); if (uri != null && (uri = uri.trim()).length() > 0) { if (id != null && id.length() > 0) sb.append(" and URI = '"); else sb.append(" with URI = '"); sb.append(uri).append("'"); } reason = sb.toString(); }
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;