是否存在加密机制,通过该机制可以使用日期对文档进行签名,以便以后不可能伪造相同的签名?也许某种服务器发布每日加密密钥(但你怎么能信任它们?;-).
对于不可避免的刺激实用主义者,我不是想完成一些任务.我只是好奇解决方案空间是什么样的.
我正在签署带有文档时间戳签名的PADES-LTV签名格式的pdf文档.
通常,签名文件都可以.签名和文档时间戳签名都经过验证,一切正常.但是,有时会出现以下结果:
当我尝试使用Adobe Reader 10.1.0.534打开签名文档时,将验证签名,但无法验证文档时间戳签名.它说:至少有一个签名需要在顶栏上进行验证.当我查看左侧的"签名"部分时,它说:签名者的身份无效,因为它已过期或尚未生效.如果我尝试打开文档时间戳的签名详细信息,Adobe Reader会崩溃.(我提交了一个关于此问题的错误报告,但我还没有收到任何回复)
当我使用Adobe Acrobat X pro打开签名文档并查看文档时间戳签名的详细信息时,此值" 1970/01/01 03:00:00 + 03'00' "将显示在签名日期字段中.实际上,日期字段应该不可用,因为ETSI 102 778-4 V1.1.2说:在文档时间戳字典中,名称,M,位置,原因和联系信息不应存在.
为什么adobe reader会显示这个值1970/01/01 03:00:00 + 03'00'而不是不可用?
有什么不对?
谢谢
嗨,我找不到一种方法来转换不透明的pkcs#7(p7m)在明文deatached smime中,以便签名的内容可以由常规的mime库处理.
我想取p7m文件并将其转换为一个有效签名的smime消息.
步骤应该是:
从p7m中提取签名内容
从p7m中提取cms结构
将所有内容打包在一个带有分离签名的新smime结构中
这个操作可以吗?
我搜索过openssl手册,但我找不到办法.
如何使用Java中的BouncyCastle提供程序验证分离的签名(CMS/pkcs#7签名)?
目前,我的代码会在邮件中引发异常 message-digest attribute value does not match calculated value
Security.addProvider(new BouncyCastleProvider());
File f = new File(filename);
byte[] buffer = new byte[(int)f.length()];
DataInputStream in = new DataInputStream(new FileInputStream(f));
in.readFully(buffer);
in.close();
CMSSignedData signature = new CMSSignedData(buffer);
SignerInformation signer = (SignerInformation) signature.getSignerInfos().getSigners().iterator().next();
CertStore cs = signature.getCertificatesAndCRLs("Collection", "BC");
Iterator iter = cs.getCertificates(signer.getSID()).iterator();
X509Certificate certificate = (X509Certificate) iter.next();
CMSProcessable sc = signature.getSignedContent();
signer.verify(certificate, "BC");
Run Code Online (Sandbox Code Playgroud) 我有一个在浏览器中签署文本字符串的Javascript.它在Internet Explorer下使用CAPICOM,在Mozilla浏览器下使用window.crypto.签名过程后,我收到一个BASE64编码签名.
使用HTTPS我将签名和文本字符串上传到带有PHP应用程序的Web服务器.从SSL(HTTPS)我收到用户的证书.从这个证书我可以提取用户的公钥.
现在我想验证签名文本字符串的签名以及用户的证书和公钥.我试过openssl_verify PHP函数没有成功.
我总是收到一个错误:
错误:0408D077:rsa例程:FIPS_RSA_VERIFY:签名长度错误
不幸的是我无法验证签名?我无法提供演示或示例,因为它目前仅在本地网络中.
javascript php digital-certificate capicom digital-signature
我的应用程序中有一个PDF查看器.我只是将PDF文件加载到UIWebView中.但是当PDF包含数字签名时,它不会显示在WebView中.显示PDF的所有其他内容.只有签名区域留空.我用预览检查了OSX中的Safari,结果是一样的.
然后我下载了适用于Mac的Adobe Reader应用程序,并尝试打开PDF.它正确显示了签名!!
任何人都可以告诉我目标C中是否有任何机制来显示PDF文件的签名.
我正在尝试使用智能卡和PKCS#11签署pdf文件.我链接正确的.dll,我正在动态制作配置文件,但我遇到了配置问题.
String config = "name=zz\n" +
"library=" + DLL + "\n" +
"slotListIndex = " + getSlotsWithTokens(DLL)[0];
ByteArrayInputStream pot = new ByteArrayInputStream(config.getBytes());
Provider providerPKCS11 = new SunPKCS11(pot);
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Exception in thread "main" java.security.ProviderException: Initialization failed
at sun.security.pkcs11.SunPKCS11.<init>(SunPKCS11.java:376)
at sun.security.pkcs11.SunPKCS11.<init>(SunPKCS11.java:107)
at smartCardPKCS11.scPKCS11.main(scPKCS11.java:56)
Caused by: java.security.ProviderException: slotListIndex is 52481 but token only has 10 slots
at sun.security.pkcs11.SunPKCS11.<init>(SunPKCS11.java:357)
... 2 more
Run Code Online (Sandbox Code Playgroud)
在整个插槽事情上有点困惑.有人可以帮我吗?
我的getSlotsWithTokens看起来如何:
public static long[] getSlotsWithTokens(String libraryPath) throws IOException{
CK_C_INITIALIZE_ARGS initArgs = new CK_C_INITIALIZE_ARGS();
String functionList = "C_GetFunctionList";
initArgs.flags = 0;
PKCS11 …Run Code Online (Sandbox Code Playgroud) 我正在使用MEAN堆栈,我想为具有表单的员工实现数字签名,但我找不到关于此主题的任何库或教程.
有没有人这样做过?这样做的正确方法是什么?
是否可以使用带有SignedXml的http://www.w3.org/2006/12/xml-c14n11 CanonicalizationMethod?
SignedXml signedXml = new SignedXml(xmlDoc);
signedXml.SignedInfo.CanonicalizationMethod = "http://www.w3.org/2006/12/xml-c14n11";
Run Code Online (Sandbox Code Playgroud)
扔了
System.Security.Cryptography.CryptographicException: Could not create the XML tr
ansformation identified by the URI http://www.w3.org/2006/12/xml-c14n11.
Run Code Online (Sandbox Code Playgroud)
谢谢!
我只是通过搜索git-config(1),git-log(1)和git-show(1)git的2.6.2的手册页,但没有发现任何提示的--show-signature选项(如到git show或git log)可以在我的全局配置~/.gitconfig对所有git支持它的子命令.
一个选项是别名,但由于我不知道哪些子命令都支持它,这只是一种解决方法,而不是解决方案.
我猜它可能是core.show-signature = yes或者core.showSignature = yes但并没有改变任何东西.