• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java MessageDigestAlgorithm类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中org.apache.xml.security.algorithms.MessageDigestAlgorithm的典型用法代码示例。如果您正苦于以下问题:Java MessageDigestAlgorithm类的具体用法?Java MessageDigestAlgorithm怎么用?Java MessageDigestAlgorithm使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



MessageDigestAlgorithm类属于org.apache.xml.security.algorithms包,在下文中一共展示了MessageDigestAlgorithm类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: getDigestMethodAlgorithm

import org.apache.xml.security.algorithms.MessageDigestAlgorithm; //导入依赖的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;
}
 
开发者ID:alphagov,项目名称:verify-hub,代码行数:20,代码来源:UnknownMethodAlgorithmLogger.java


示例2: getMessageDigestAlgorithm

import org.apache.xml.security.algorithms.MessageDigestAlgorithm; //导入依赖的package包/类
/**
 * Returns {@link MessageDigestAlgorithm}
 *
 *
 * @return {@link MessageDigestAlgorithm}
 *
 * @throws XMLSignatureException
 */
public MessageDigestAlgorithm getMessageDigestAlgorithm() throws XMLSignatureException {
    if (digestMethodElem == null) {
        return null;
    }

    String uri = digestMethodElem.getAttributeNS(null, Constants._ATT_ALGORITHM);

    if ("".equals(uri)) {
        return null;
    }

    if (secureValidation && MessageDigestAlgorithm.ALGO_ID_DIGEST_NOT_RECOMMENDED_MD5.equals(uri)) {
        Object exArgs[] = { uri };

        throw new XMLSignatureException("signature.signatureAlgorithm", exArgs);
    }

    return MessageDigestAlgorithm.getInstance(getDocument(), uri);
}
 
开发者ID:Legostaev,项目名称:xmlsec-gost,代码行数:28,代码来源:Reference.java


示例3: verify

import org.apache.xml.security.algorithms.MessageDigestAlgorithm; //导入依赖的package包/类
/**
 * Tests reference validation is success or false
 *
 * @return true if reference validation is success, otherwise false
 * @throws ReferenceNotInitializedException
 * @throws XMLSecurityException
 */
public boolean verify()
    throws ReferenceNotInitializedException, XMLSecurityException {
    byte[] elemDig = this.getDigestValue();
    byte[] calcDig = this.calculateDigest(true);
    boolean equal = MessageDigestAlgorithm.isEqual(elemDig, calcDig);

    if (!equal) {
        log.warn("Verification failed for URI \"" + this.getURI() + "\"");
        log.warn("Expected Digest: " + Base64.encode(elemDig));
        log.warn("Actual Digest: " + Base64.encode(calcDig));
    } else {
        if (log.isDebugEnabled()) {
            log.debug("Verification successful for URI \"" + this.getURI() + "\"");
        }
    }

    return equal;
}
 
开发者ID:Legostaev,项目名称:xmlsec-gost,代码行数:26,代码来源:Reference.java


示例4: engineVerify

import org.apache.xml.security.algorithms.MessageDigestAlgorithm; //导入依赖的package包/类
/**
 * Proxy method for {@link java.security.Signature#verify(byte[])}
 * which is executed on the internal {@link java.security.Signature} object.
 *
 * @param signature
 * @return true if the signature is correct
 * @throws XMLSignatureException
 */
protected boolean engineVerify(byte[] signature) throws XMLSignatureException {
    try {
        if (this.HMACOutputLengthSet && this.HMACOutputLength < getDigestLength()) {
            if (log.isDebugEnabled()) {
                log.debug("HMACOutputLength must not be less than " + getDigestLength());
            }
            Object[] exArgs = { String.valueOf(getDigestLength()) };
            throw new XMLSignatureException("algorithms.HMACOutputLengthMin", exArgs);
        } else {
            byte[] completeResult = this.macAlgorithm.doFinal();
            return MessageDigestAlgorithm.isEqual(completeResult, signature);
        }
    } catch (IllegalStateException ex) {
        throw new XMLSignatureException(ex);
    }
}
 
开发者ID:Legostaev,项目名称:xmlsec-gost,代码行数:25,代码来源:IntegrityHmac.java


示例5: testSHA1

import org.apache.xml.security.algorithms.MessageDigestAlgorithm; //导入依赖的package包/类
@org.junit.Test
public void testSHA1() throws Exception {
    Document doc = XMLUtils.createDocumentBuilder(false).newDocument();

    MessageDigestAlgorithm digestAlgorithm =
        MessageDigestAlgorithm.getInstance(doc, MessageDigestAlgorithm.ALGO_ID_DIGEST_SHA1);
    assertEquals(MessageDigestAlgorithm.ALGO_ID_DIGEST_SHA1, digestAlgorithm.getAlgorithmURI());

    byte[] digest = digestAlgorithm.digest("test-string".getBytes());
    assertNotNull(digest);
    assertTrue(digest.length > 0);

    // Now compare against a JDK MessageDigest Object
    MessageDigest md = MessageDigest.getInstance("SHA-1");
    byte[] digest2 = md.digest("test-string".getBytes());
    assertTrue(Arrays.equals(digest, digest2));
}
 
开发者ID:Legostaev,项目名称:xmlsec-gost,代码行数:18,代码来源:DigestAlgorithmTest.java


示例6: testSHA224

import org.apache.xml.security.algorithms.MessageDigestAlgorithm; //导入依赖的package包/类
@org.junit.Test
public void testSHA224() throws Exception {
    Document doc = XMLUtils.createDocumentBuilder(false).newDocument();

    MessageDigestAlgorithm digestAlgorithm =
        MessageDigestAlgorithm.getInstance(doc, MessageDigestAlgorithm.ALGO_ID_DIGEST_SHA224);
    assertEquals(MessageDigestAlgorithm.ALGO_ID_DIGEST_SHA224, digestAlgorithm.getAlgorithmURI());

    byte[] digest = digestAlgorithm.digest("test-string".getBytes());
    assertNotNull(digest);
    assertTrue(digest.length > 0);

    // Now compare against a JDK MessageDigest Object
    MessageDigest md = MessageDigest.getInstance("SHA-224");
    byte[] digest2 = md.digest("test-string".getBytes());
    assertTrue(Arrays.equals(digest, digest2));
}
 
开发者ID:Legostaev,项目名称:xmlsec-gost,代码行数:18,代码来源:DigestAlgorithmTest.java


示例7: testSHA256

import org.apache.xml.security.algorithms.MessageDigestAlgorithm; //导入依赖的package包/类
@org.junit.Test
public void testSHA256() throws Exception {
    Document doc = XMLUtils.createDocumentBuilder(false).newDocument();

    MessageDigestAlgorithm digestAlgorithm =
        MessageDigestAlgorithm.getInstance(doc, MessageDigestAlgorithm.ALGO_ID_DIGEST_SHA256);
    assertEquals(MessageDigestAlgorithm.ALGO_ID_DIGEST_SHA256, digestAlgorithm.getAlgorithmURI());

    byte[] digest = digestAlgorithm.digest("test-string".getBytes());
    assertNotNull(digest);
    assertTrue(digest.length > 0);

    // Now compare against a JDK MessageDigest Object
    MessageDigest md = MessageDigest.getInstance("SHA-256");
    byte[] digest2 = md.digest("test-string".getBytes());
    assertTrue(Arrays.equals(digest, digest2));
}
 
开发者ID:Legostaev,项目名称:xmlsec-gost,代码行数:18,代码来源:DigestAlgorithmTest.java


示例8: testSHA384

import org.apache.xml.security.algorithms.MessageDigestAlgorithm; //导入依赖的package包/类
@org.junit.Test
public void testSHA384() throws Exception {
    Document doc = XMLUtils.createDocumentBuilder(false).newDocument();

    MessageDigestAlgorithm digestAlgorithm =
        MessageDigestAlgorithm.getInstance(doc, MessageDigestAlgorithm.ALGO_ID_DIGEST_SHA384);
    assertEquals(MessageDigestAlgorithm.ALGO_ID_DIGEST_SHA384, digestAlgorithm.getAlgorithmURI());

    byte[] digest = digestAlgorithm.digest("test-string".getBytes());
    assertNotNull(digest);
    assertTrue(digest.length > 0);

    // Now compare against a JDK MessageDigest Object
    MessageDigest md = MessageDigest.getInstance("SHA-384");
    byte[] digest2 = md.digest("test-string".getBytes());
    assertTrue(Arrays.equals(digest, digest2));
}
 
开发者ID:Legostaev,项目名称:xmlsec-gost,代码行数:18,代码来源:DigestAlgorithmTest.java


示例9: testSHA512

import org.apache.xml.security.algorithms.MessageDigestAlgorithm; //导入依赖的package包/类
@org.junit.Test
public void testSHA512() throws Exception {
    Document doc = XMLUtils.createDocumentBuilder(false).newDocument();

    MessageDigestAlgorithm digestAlgorithm =
        MessageDigestAlgorithm.getInstance(doc, MessageDigestAlgorithm.ALGO_ID_DIGEST_SHA512);
    assertEquals(MessageDigestAlgorithm.ALGO_ID_DIGEST_SHA512, digestAlgorithm.getAlgorithmURI());

    byte[] digest = digestAlgorithm.digest("test-string".getBytes());
    assertNotNull(digest);
    assertTrue(digest.length > 0);

    // Now compare against a JDK MessageDigest Object
    MessageDigest md = MessageDigest.getInstance("SHA-512");
    byte[] digest2 = md.digest("test-string".getBytes());
    assertTrue(Arrays.equals(digest, digest2));
}
 
开发者ID:Legostaev,项目名称:xmlsec-gost,代码行数:18,代码来源:DigestAlgorithmTest.java


示例10: testMD5

import org.apache.xml.security.algorithms.MessageDigestAlgorithm; //导入依赖的package包/类
@org.junit.Test
public void testMD5() throws Exception {
    Document doc = XMLUtils.createDocumentBuilder(false).newDocument();

    MessageDigestAlgorithm digestAlgorithm =
        MessageDigestAlgorithm.getInstance(doc, MessageDigestAlgorithm.ALGO_ID_DIGEST_NOT_RECOMMENDED_MD5);
    assertEquals(MessageDigestAlgorithm.ALGO_ID_DIGEST_NOT_RECOMMENDED_MD5, digestAlgorithm.getAlgorithmURI());

    byte[] digest = digestAlgorithm.digest("test-string".getBytes());
    assertNotNull(digest);
    assertTrue(digest.length > 0);

    // Now compare against a JDK MessageDigest Object
    MessageDigest md = MessageDigest.getInstance("MD5");
    byte[] digest2 = md.digest("test-string".getBytes());
    assertTrue(Arrays.equals(digest, digest2));
}
 
开发者ID:Legostaev,项目名称:xmlsec-gost,代码行数:18,代码来源:DigestAlgorithmTest.java


示例11: testRIPEMD160

import org.apache.xml.security.algorithms.MessageDigestAlgorithm; //导入依赖的package包/类
@org.junit.Test
public void testRIPEMD160() throws Exception {
    // This only works with BouncyCastle
    if (Security.getProvider("BC") == null) {
        return;
    }
    Document doc = XMLUtils.createDocumentBuilder(false).newDocument();

    MessageDigestAlgorithm digestAlgorithm =
        MessageDigestAlgorithm.getInstance(doc, MessageDigestAlgorithm.ALGO_ID_DIGEST_RIPEMD160);
    assertEquals(MessageDigestAlgorithm.ALGO_ID_DIGEST_RIPEMD160, digestAlgorithm.getAlgorithmURI());

    byte[] digest = digestAlgorithm.digest("test-string".getBytes());
    assertNotNull(digest);
    assertTrue(digest.length > 0);

    // Now compare against a JDK MessageDigest Object
    MessageDigest md = MessageDigest.getInstance("RIPEMD160");
    byte[] digest2 = md.digest("test-string".getBytes());
    assertTrue(Arrays.equals(digest, digest2));
}
 
开发者ID:Legostaev,项目名称:xmlsec-gost,代码行数:22,代码来源:DigestAlgorithmTest.java


示例12: testWhirlpool

import org.apache.xml.security.algorithms.MessageDigestAlgorithm; //导入依赖的package包/类
@org.junit.Test
public void testWhirlpool() throws Exception {
    // This only works with BouncyCastle
    if (Security.getProvider("BC") == null) {
        return;
    }
    Document doc = XMLUtils.createDocumentBuilder(false).newDocument();

    MessageDigestAlgorithm digestAlgorithm =
        MessageDigestAlgorithm.getInstance(doc, MessageDigestAlgorithm.ALGO_ID_DIGEST_WHIRLPOOL);
    assertEquals(MessageDigestAlgorithm.ALGO_ID_DIGEST_WHIRLPOOL, digestAlgorithm.getAlgorithmURI());

    byte[] digest = digestAlgorithm.digest("test-string".getBytes());
    assertNotNull(digest);
    assertTrue(digest.length > 0);

    // Now compare against a JDK MessageDigest Object
    MessageDigest md = MessageDigest.getInstance("WHIRLPOOL");
    byte[] digest2 = md.digest("test-string".getBytes());
    assertTrue(Arrays.equals(digest, digest2));
}
 
开发者ID:Legostaev,项目名称:xmlsec-gost,代码行数:22,代码来源:DigestAlgorithmTest.java


示例13: testSHA3_224

import org.apache.xml.security.algorithms.MessageDigestAlgorithm; //导入依赖的package包/类
@org.junit.Test
public void testSHA3_224() throws Exception {
    // This only works with BouncyCastle
    if (Security.getProvider("BC") == null) {
        return;
    }
    Document doc = XMLUtils.createDocumentBuilder(false).newDocument();

    MessageDigestAlgorithm digestAlgorithm =
        MessageDigestAlgorithm.getInstance(doc, MessageDigestAlgorithm.ALGO_ID_DIGEST_SHA3_224);
    assertEquals(MessageDigestAlgorithm.ALGO_ID_DIGEST_SHA3_224, digestAlgorithm.getAlgorithmURI());

    byte[] digest = digestAlgorithm.digest("test-string".getBytes());
    assertNotNull(digest);
    assertTrue(digest.length > 0);

    // Now compare against a JDK MessageDigest Object
    MessageDigest md = MessageDigest.getInstance("SHA3-224");
    byte[] digest2 = md.digest("test-string".getBytes());
    assertTrue(Arrays.equals(digest, digest2));
}
 
开发者ID:Legostaev,项目名称:xmlsec-gost,代码行数:22,代码来源:DigestAlgorithmTest.java


示例14: testSHA3_256

import org.apache.xml.security.algorithms.MessageDigestAlgorithm; //导入依赖的package包/类
@org.junit.Test
public void testSHA3_256() throws Exception {
    // This only works with BouncyCastle
    if (Security.getProvider("BC") == null) {
        return;
    }
    Document doc = XMLUtils.createDocumentBuilder(false).newDocument();

    MessageDigestAlgorithm digestAlgorithm =
        MessageDigestAlgorithm.getInstance(doc, MessageDigestAlgorithm.ALGO_ID_DIGEST_SHA3_256);
    assertEquals(MessageDigestAlgorithm.ALGO_ID_DIGEST_SHA3_256, digestAlgorithm.getAlgorithmURI());

    byte[] digest = digestAlgorithm.digest("test-string".getBytes());
    assertNotNull(digest);
    assertTrue(digest.length > 0);

    // Now compare against a JDK MessageDigest Object
    MessageDigest md = MessageDigest.getInstance("SHA3-256");
    byte[] digest2 = md.digest("test-string".getBytes());
    assertTrue(Arrays.equals(digest, digest2));
}
 
开发者ID:Legostaev,项目名称:xmlsec-gost,代码行数:22,代码来源:DigestAlgorithmTest.java


示例15: testSHA3_384

import org.apache.xml.security.algorithms.MessageDigestAlgorithm; //导入依赖的package包/类
@org.junit.Test
public void testSHA3_384() throws Exception {
    // This only works with BouncyCastle
    if (Security.getProvider("BC") == null) {
        return;
    }
    Document doc = XMLUtils.createDocumentBuilder(false).newDocument();

    MessageDigestAlgorithm digestAlgorithm =
        MessageDigestAlgorithm.getInstance(doc, MessageDigestAlgorithm.ALGO_ID_DIGEST_SHA3_384);
    assertEquals(MessageDigestAlgorithm.ALGO_ID_DIGEST_SHA3_384, digestAlgorithm.getAlgorithmURI());

    byte[] digest = digestAlgorithm.digest("test-string".getBytes());
    assertNotNull(digest);
    assertTrue(digest.length > 0);

    // Now compare against a JDK MessageDigest Object
    MessageDigest md = MessageDigest.getInstance("SHA3-384");
    byte[] digest2 = md.digest("test-string".getBytes());
    assertTrue(Arrays.equals(digest, digest2));
}
 
开发者ID:Legostaev,项目名称:xmlsec-gost,代码行数:22,代码来源:DigestAlgorithmTest.java


示例16: testSHA3_512

import org.apache.xml.security.algorithms.MessageDigestAlgorithm; //导入依赖的package包/类
@org.junit.Test
public void testSHA3_512() throws Exception {
    // This only works with BouncyCastle
    if (Security.getProvider("BC") == null) {
        return;
    }
    Document doc = XMLUtils.createDocumentBuilder(false).newDocument();

    MessageDigestAlgorithm digestAlgorithm =
        MessageDigestAlgorithm.getInstance(doc, MessageDigestAlgorithm.ALGO_ID_DIGEST_SHA3_512);
    assertEquals(MessageDigestAlgorithm.ALGO_ID_DIGEST_SHA3_512, digestAlgorithm.getAlgorithmURI());

    byte[] digest = digestAlgorithm.digest("test-string".getBytes());
    assertNotNull(digest);
    assertTrue(digest.length > 0);

    // Now compare against a JDK MessageDigest Object
    MessageDigest md = MessageDigest.getInstance("SHA3-512");
    byte[] digest2 = md.digest("test-string".getBytes());
    assertTrue(Arrays.equals(digest, digest2));
}
 
开发者ID:Legostaev,项目名称:xmlsec-gost,代码行数:22,代码来源:DigestAlgorithmTest.java


示例17: testGetTimeStampToken

import org.apache.xml.security.algorithms.MessageDigestAlgorithm; //导入依赖的package包/类
@Test
public void testGetTimeStampToken() throws Exception
{
    System.out.println("getTimeStampToken");

    byte[] tsDigestInput = "TestDigestInput".getBytes();
    String digestAlgUri = MessageDigestAlgorithm.ALGO_ID_DIGEST_SHA1;

    HttpTimeStampTokenProvider instance = new HttpTimeStampTokenProvider(
            new DefaultMessageDigestProvider(),
            new TSAHttpData("http://tss.accv.es:8318/tsa"));

    TimeStampTokenRes result = instance.getTimeStampToken(tsDigestInput, digestAlgUri);

    assertNotNull(result);
    assertNotNull(result.encodedTimeStampToken);
    assertNotNull(result.timeStampTime);
}
 
开发者ID:luisgoncalves,项目名称:xades4j,代码行数:19,代码来源:HttpTimeStampTokenProviderTest.java


示例18: constructCipher

import org.apache.xml.security.algorithms.MessageDigestAlgorithm; //导入依赖的package包/类
/**
 * Construct a Cipher object
 */
private Cipher constructCipher(String algorithm, String digestAlgorithm) throws XMLEncryptionException {
    String jceAlgorithm = JCEMapper.translateURItoJCEID(algorithm);
    if (log.isDebugEnabled()) {
        log.debug("JCE Algorithm = " + jceAlgorithm);
    }

    Cipher c;
    try {
        if (requestedJCEProvider == null) {
            c = Cipher.getInstance(jceAlgorithm);
        } else {
            c = Cipher.getInstance(jceAlgorithm, requestedJCEProvider);
        }
    } catch (NoSuchAlgorithmException nsae) {
        // Check to see if an RSA OAEP MGF-1 with SHA-1 algorithm was requested
        // Some JDKs don't support RSA/ECB/OAEPPadding
        if (XMLCipher.RSA_OAEP.equals(algorithm)
            && (digestAlgorithm == null 
                || MessageDigestAlgorithm.ALGO_ID_DIGEST_SHA1.equals(digestAlgorithm))) {
            try {
                if (requestedJCEProvider == null) {
                    c = Cipher.getInstance("RSA/ECB/OAEPWithSHA1AndMGF1Padding");
                } else {
                    c = Cipher.getInstance("RSA/ECB/OAEPWithSHA1AndMGF1Padding", requestedJCEProvider);
                }
            } catch (Exception ex) {
                throw new XMLEncryptionException("empty", ex);
            }
        } else {
            throw new XMLEncryptionException("empty", nsae);
        }
    } catch (NoSuchProviderException nspre) {
        throw new XMLEncryptionException("empty", nspre);
    } catch (NoSuchPaddingException nspae) {
        throw new XMLEncryptionException("empty", nspae);
    }
    
    return c;
}
 
开发者ID:williamgrosset,项目名称:OSCAR-ConCert,代码行数:43,代码来源:XMLCipher.java


示例19: DigesterOutputStream

import org.apache.xml.security.algorithms.MessageDigestAlgorithm; //导入依赖的package包/类
/**
 * @param mda
 */
public DigesterOutputStream(MessageDigestAlgorithm mda) {
    this.mda = mda;		
}
 
开发者ID:Legostaev,项目名称:xmlsec-gost,代码行数:7,代码来源:DigesterOutputStream.java


示例20: checkXmlSignatureSoftwareStack

import org.apache.xml.security.algorithms.MessageDigestAlgorithm; //导入依赖的package包/类
private void checkXmlSignatureSoftwareStack(boolean cert) throws Exception {
    Init.init();
    DocumentBuilder documentBuilder = XMLUtils.createDocumentBuilder(false);
    Document testDocument = documentBuilder.newDocument();

    Element rootElement =
        testDocument.createElementNS("urn:namespace", "tns:document");
    rootElement.setAttributeNS
        (Constants.NamespaceSpecNS, "xmlns:tns", "urn:namespace");
    testDocument.appendChild(rootElement);
    Element childElement =
        testDocument.createElementNS("urn:childnamespace", "t:child");
    childElement.setAttributeNS
        (Constants.NamespaceSpecNS, "xmlns:t", "urn:childnamespace");
    childElement.appendChild(testDocument.createTextNode("hello world"));
    rootElement.appendChild(childElement);

    PrivateKey privateKey = null;
    PublicKey publicKey = null;
    X509Certificate signingCert = null;
    if (cert) {
        // get key & self-signed certificate from keystore
        String fs = System.getProperty("file.separator");
        FileInputStream fis =
            new FileInputStream(BASEDIR + fs + "src/test/resources" + fs + "test.jks");
        KeyStore ks = KeyStore.getInstance("JKS");
        ks.load(fis, "changeit".toCharArray());
        signingCert = (X509Certificate) ks.getCertificate("mullan");
        publicKey = signingCert.getPublicKey();
        privateKey = (PrivateKey) ks.getKey("mullan", "changeit".toCharArray());
    } else {
        KeyPair keyPair = KeyPairGenerator.getInstance("DSA").generateKeyPair();
        publicKey = keyPair.getPublic();
        privateKey = keyPair.getPrivate();
    }

    XMLSignature signature =
        new XMLSignature(
            testDocument, "", XMLSignature.ALGO_ID_SIGNATURE_DSA,
            Canonicalizer.ALGO_ID_C14N_WITH_COMMENTS
        );

    Element signatureElement = signature.getElement();
    rootElement.appendChild(signatureElement);

    Transforms transforms = new Transforms(testDocument);
    XPathContainer xpath = new XPathContainer(testDocument);
    xpath.setXPathNamespaceContext("ds", Constants.SignatureSpecNS);
    xpath.setXPath("not(ancestor-or-self::ds:Signature)");
    transforms.addTransform(Transforms.TRANSFORM_XPATH, xpath.getElementPlusReturns());
    transforms.addTransform(Transforms.TRANSFORM_C14N_WITH_COMMENTS);
    signature.addDocument("", transforms, MessageDigestAlgorithm.ALGO_ID_DIGEST_SHA1);

    if (cert) {
        signature.addKeyInfo(signingCert);
    } else {
        signature.addKeyInfo(publicKey);
    }

    Element nsElement = testDocument.createElementNS(null, "nsElement");
    nsElement.setAttributeNS(
        Constants.NamespaceSpecNS, "xmlns:ds", Constants.SignatureSpecNS
    );

    signature.sign(privateKey);

    XPathFactory xpf = XPathFactory.newInstance();
    XPath xPath = xpf.newXPath();
    xPath.setNamespaceContext(new DSNamespaceContext());

    String expression = "//ds:Signature[1]";
    Element sigElement =
        (Element) xPath.evaluate(expression, testDocument, XPathConstants.NODE);

    XMLSignature signatureToVerify = new XMLSignature(sigElement, "");

    boolean signResult = signatureToVerify.checkSignatureValue(publicKey);

    assertTrue(signResult);
}
 
开发者ID:Legostaev,项目名称:xmlsec-gost,代码行数:81,代码来源:XmlSecTest.java



注:本文中的org.apache.xml.security.algorithms.MessageDigestAlgorithm类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java SelectPopupDialog类代码示例发布时间:2022-05-22
下一篇:
Java MRAMPolicyProvider类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap