- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
简而言之,我的问题如下:
我在函数的开头添加了 BC-Provider:
Security.addProvider(new BouncyCastleProvider());
当我列出所有服务时
BouncyCastleProvider().getServices();
列表包含"RIPEMD160WITHECDSA"
在此代码段的最后一行:
XMLSignatureFactory factory = XMLSignatureFactory.getInstance("DOM");
DOMValidateContext valContext = new DOMValidateContext(pubkeys[i], sigElement);
valContext.setURIDereferencer(new FileDereferencer(
factory.getURIDereferencer(), new File("D:\\eclipseworkspace\\pathtoxml.xml")));
javax.xml.crypto.dsig.XMLSignature xmlSignature = factory.unmarshalXMLSignature(valContext);
我得到一个异常消息:
不支持的 SignatureMethod 算法:http://www.w3.org/2007/05/xmldsig-more#ecdsa-ripemd160
这是什么意思? RIPEMD160WITHECDSA 和此 URL 指定的算法有什么区别?或者 url 只是没有映射到这个算法名称?
这是堆栈跟踪:
javax.xml.crypto.MarshalException: unsupported SignatureMethod algorithm: http://www.w3.org/2007/05/xmldsig-more#ecdsa-ripemd160
at org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.unmarshal(Unknown Source)
at org.jcp.xml.dsig.internal.dom.DOMSignedInfo.<init>(Unknown Source)
at org.jcp.xml.dsig.internal.dom.DOMXMLSignature.<init>(Unknown Source)
at org.jcp.xml.dsig.internal.dom.DOMXMLSignatureFactory.unmarshal(Unknown Source)
at org.jcp.xml.dsig.internal.dom.DOMXMLSignatureFactory.unmarshalXMLSignature(Unknown Source)
at com.mobile.xmlsignature.XMLSigChecker.verify(XMLSigChecker.java:122)
at com.mobile.xmlsignature.mainclass.main(mainclass.java:13)
最佳答案
看起来像ecdsa-ripemd160不是使用 DOMSignatureMethod 注册的默认签名方法之一.
根据 XMLSignatureFactory.newSignatureMethod()您可能可以使用如下方式注册 ecdsa-ripemd160:
xmlFact.newSignatureMethod(
"http://www.w3.org/2007/05/xmldsig-more#ecdsa-ripemd160",
MyECDSARipemd160Provider());
您必须推出自己的 MyECDSARipemd160Provider() 类来实现 SignatureMethodParameterSpec它需要识别你的算法。我没有尝试过这个,我怀疑它可能需要一些试验和错误。我不知道是否有 BC 类(class)可以为您做这件事。我假设 getAlgorithm()调用此类应返回“RIPEMD160WITHECDSA”。
关于java - 不支持的 SignatureMethod 算法,但该算法被 BC-Provider 列为可用服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11984025/
如果我们以下面的 Signature 元素为例:
简而言之,我的问题如下: 我在函数的开头添加了 BC-Provider: Security.addProvider(new BouncyCastleProvider()); 当我列出所有服务时 Bou
这是我的pom 4.0.0 com.mkyong.common RESTfulExample war 1.0-
我是一名优秀的程序员,十分优秀!