本文整理汇总了Java中org.apache.xml.security.signature.SignedInfo.item方法的典型用法代码示例。如果您正苦于以下问题:Java SignedInfo.item方法的具体用法?Java SignedInfo.item怎么用?Java SignedInfo.item使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.xml.security.signature.SignedInfo
的用法示例。
在下文中一共展示了SignedInfo.item方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getDigestMethodAlgorithm
import org.apache.xml.security.signature.SignedInfo; //导入方法依赖的package包/类
private static String getDigestMethodAlgorithm(final Optional<Signature> signature) {
if (signature.isPresent()) {
XMLSignature xmlSignature = ((SignatureImpl) signature.get()).getXMLSignature();
if (xmlSignature != null) {
SignedInfo signedInfo = xmlSignature.getSignedInfo();
try {
if (signedInfo != null && signedInfo.getLength() != 0 && signedInfo.item(0) != null) {
MessageDigestAlgorithm messageDigestAlgorithm = signedInfo.item(0).getMessageDigestAlgorithm();
if (messageDigestAlgorithm != null) {
return messageDigestAlgorithm.getJCEAlgorithmString();
}
}
} catch (XMLSecurityException e) {
LOG.debug(format("Error getting message digest algorithm: {0}", e));
}
}
}
return null;
}
示例2: checkReferences
import org.apache.xml.security.signature.SignedInfo; //导入方法依赖的package包/类
private void checkReferences(XMLSignature xmlSignature) throws Exception {
SignedInfo signedInfo = xmlSignature.getSignedInfo();
assertTrue(signedInfo.getLength() > 0);
for (int i = 0; i < signedInfo.getLength(); i++) {
Reference reference = signedInfo.item(i);
assertNotNull(reference);
ReferenceData referenceData = reference.getReferenceData();
assertNotNull(referenceData);
if (referenceData instanceof ReferenceNodeSetData) {
Iterator<Node> iter = ((ReferenceNodeSetData)referenceData).iterator();
assertTrue(iter.hasNext());
boolean found = false;
while (iter.hasNext()) {
Node n = iter.next();
if (n instanceof Element) {
found = true;
break;
}
}
assertTrue(found);
} else if (referenceData instanceof ReferenceOctetStreamData) {
assertNotNull(((ReferenceOctetStreamData)referenceData).getOctetStream());
}
}
}
示例3: getDigestAlgorithm
import org.apache.xml.security.signature.SignedInfo; //导入方法依赖的package包/类
/**
* Returns the digest algorithm identifier from the signature
*
* @return The algorithm identifier
* @throws SAMLException Thrown if the signature is missing
*/
public String getDigestAlgorithm()
throws SAMLException
{
if (isSigned()) {
SignedInfo si=sig.getSignedInfo();
if (si.getLength()==1) {
Reference ref;
try {
ref = si.item(0);
return ref.getMessageDigestAlgorithm().getAlgorithmURI();
}
catch (XMLSecurityException e) {
throw new InvalidCryptoException("SAMLSignedObject.getDigestAlgorithm() detected an XML security exception: " + e.getMessage(),e);
}
}
}
throw new InvalidCryptoException("SAMLSignedObject.getDigestAlgorithm() can't examine unsigned or improperly signed object");
}
示例4: testSigningVerifyingReference
import org.apache.xml.security.signature.SignedInfo; //导入方法依赖的package包/类
@org.junit.Test
public void testSigningVerifyingReference() throws Throwable {
Document doc = getOriginalDocument();
XMLSignature signature = signDocument(doc);
PublicKey pubKey = getPublicKey();
assertTrue(signature.checkSignatureValue(pubKey));
// Check the reference(s)
SignedInfo signedInfo = signature.getSignedInfo();
assertTrue(signedInfo.getLength() == 1);
Reference reference = signedInfo.item(0);
ReferenceData referenceData = reference.getReferenceData();
assertNotNull(referenceData);
assertTrue(referenceData instanceof ReferenceNodeSetData);
// Test the cached Element
Element referenceElement =
(Element)((ReferenceNodeSetData)referenceData).iterator().next();
assertNotNull(referenceElement);
assertTrue("root".equals(referenceElement.getLocalName()));
Element originalElement =
(Element) doc.getElementsByTagNameNS("http://ns.example.org/", "root").item(0);
assertNotNull(originalElement);
assertEquals(referenceElement, originalElement);
}
示例5: verify
import org.apache.xml.security.signature.SignedInfo; //导入方法依赖的package包/类
@Override
public QualifyingProperty verify(
GenericDOMData propData,
QualifyingPropertyVerificationContext ctx) throws InvalidPropertyException
{
XAdESVerificationResult res;
try
{
Element sigElem = DOMHelper.getFirstChildElement(propData.getPropertyElement());
res = verifier.verify(sigElem, null);
} catch (XAdES4jException ex)
{
throw new CounterSignatureXadesVerificationException(ex);
}
// "Check that the enclosed signature correctly references the ds:SignatureValue
// present in the countersigned XAdES signature."
Node targetSigValueElem = ctx.getSignature().getElement().getElementsByTagNameNS(
Constants.SignatureSpecNS, Constants._TAG_SIGNATUREVALUE).item(0);
try
{
SignedInfo si = res.getXmlSignature().getSignedInfo();
for (int i = 0; i < si.getLength(); i++)
{
Reference r = si.item(i);
if (r.getContentsAfterTransformation().getSubNode() == targetSigValueElem)
// The signature references the SignatureValue element.
return new CounterSignatureProperty(res);
}
throw new CounterSignatureSigValueRefException();
} catch (XMLSecurityException e)
{
// Shouldn't happen because the signature was already verified.
throw new CounterSignatureVerificationException(e);
}
}