我正在开发一个Java应用程序,它使用iText对可在线提供的PDF进行数字签名.我已经能够使用从GlobalSign获得的测试证书签署文档,并且它非常有用.测试证书是GlobalSign的"DocumentSign for Adobe PDF"的一部分.我必须使用此证书的原因是我的证书链回到Adobe Root CA,据我所知(我可能是错的)是Adobe Reader开箱即用的唯一CA.我尝试了VeriSign和Entrust的常规SSL证书,但是由于它们不受信任而无法正常工作.
现在我需要获得永久性证书,但GlobalSign(以及VeriSign和其他人)想要向我推销一项服务,该服务需要额外的硬件来进行我不想要的双因素身份验证.似乎没有办法获得证书.我的问题是,还有其他人经历过这个吗?是否有其他方法可以获得Adobe Reader将信任的证书(除了让最终用户手动将证书输入到可信证书列表中)?我错过了什么吗?
感谢您的任何帮助,您可以提供.
嗨,我已生成密钥对,并使用私钥生成签名.
openssl rsautl -sign -in helloworld.txt -inkey aa.pem -out sig
Run Code Online (Sandbox Code Playgroud)
但是,我无法使用我的公钥验证签名:
openssl rsautl -verify -in helloworld.txt -inkey aa.pub -sigfile sig
Run Code Online (Sandbox Code Playgroud)
我知道-sigfile已被弃用.openssl.org的一些在线文档是错误的.
什么命令我应该使用我的公钥来验证信号?
在bootcamp中安装Windows后,会弹出错误
Windows无法启动.最近的硬件或软件更改可能是原因.解决问题:...
...
文件:\ Windows\system32\drivers\AppleSSD.sys状态:0xc0000428
信息:Windows无法验证此文件的数字签名.
此外,当我键入"diskutil list"时,没有Windows的名称.在"磁盘工具"中,磁盘名为"无标题",用于Windows.
请帮助,任何帮助将不胜感激.
以下命令为输入文件生成签名:
openssl dgst -sha1 -sign privateKey.pem -out signature1 someInputFile
Run Code Online (Sandbox Code Playgroud)
以下命令还会为输入文件生成签名:
openssl dgst -binary -sha1 someInputFile > digest
openssl rsautl -sign -in digest -inkey privateKey.pem -out signature2
Run Code Online (Sandbox Code Playgroud)
据我所知,他们都应该创建文件的SHA1摘要的RSA签名.但它们不会生成相同的签名.
结果,用方法2生成的签名也不能通过openssl dgst -verify调用来验证.
有人知道区别是什么,以及如何克服这种差异?
我正在JWT(JsonWebToken)计划的帮助下实现登录系统.基本上在用户登录/登录后,服务器签署JWT并将其传递给客户端.
然后,客户端返回每个请求的令牌,服务器在发回响应之前验证令牌.
这几乎是你所期望的,但我对这个过程的逻辑有一些问题.从我读过的所有数学文章来看,似乎RSA签名使用非对称密钥进行签名.正如其名称所示,公钥暴露给客户端并且私钥保留在服务器上,使用发送到客户端的公钥对JWT进行签名并使用服务器端验证它是有意义的.私钥.
然而,在每个示例和库中,我看到它似乎是另一种方式,任何想法为什么它是这样的?如果JWT使用私钥签名并与公共密钥进行验证,那么这一点是什么?
我有app需要从PDF文件上的"附加"数字签名中检索一些数据(签名者名称).
我在Java和C#中只找到了使用iText类AcroFields方法GetSignatureNames的示例
编辑:我用dump_data_fields和generate_fpdf 尝试了pdftk,结果是(不幸的):
/Fields [
<<
/V /dftk.com.lowagie.text.pdf.PdfDictionary@3048918
/T (Signature1)
>>]
Run Code Online (Sandbox Code Playgroud)
和
FieldType: Signature
FieldName: Signature1
FieldFlags: 0
FieldJustification: Left
Run Code Online (Sandbox Code Playgroud)
提前致谢 !
我有一个用于签署XML文档的Java应用程序.将Java升级到最新版本(Java7u25)后,它将停止工作.我收到以下错误:
javax.xml.crypto.dsig.XMLSignatureException:
javax.xml.crypto.URIReferenceException:
com.sun.org.apache.xml.internal.security.utils.resolver.ResourceResolverException:
Cannot resolve element with ID ...
Run Code Online (Sandbox Code Playgroud)
回到java7u21解决了这个问题.XML Dig Sig API中是否有任何更改导致此错误?
我想构建一个小型移动应用程序(Android和iOS)和一个带有REST Api的小后端服务器.
我的应用用户(Android或iOS)需要在Facebook上登录.我通过使用facebooks mobile sdk来做到这一点.登录成功后,facebook sdk将返回authentificationToken,现在在用户智能手机上.
这个想法如下:每当我的应用程序需要一些数据时,应用程序将通过HTTPS与我的服务器后端(REST)进行协作.例如:应用程序进行简单的HTTP GET并传递检索到的Facebook authenticationToken.我的服务器获取此facebook authenticationToken并使用此令牌来确定用户是否经过身份验证并检索Facebook个人资料信息(名字,姓氏等).因此,服务器也与facebook联系,并为HTTP GET请求生成个性化响应.
我的问题是:
Bt:你知道一个适用于iOS和Android的好RSA lib吗?
签名jar并使用-tsa选项后,如何验证时间戳是否包含在内?我试过了:
jarsigner -verify -verbose -certs myApp.jar
Run Code Online (Sandbox Code Playgroud)
但输出没有指定时间戳的任何内容.我问,因为即使我在-tsa URL路径中有拼写错误,jarsigner也会成功.这是在GlobalSign TSA网址:http://timestamp.globalsign.com/scripts/timstamp.dll和服务器背后显然接受任何路径(即timestamp.globalsign.com/foobar),所以最后我不确定我的罐子是否加盖时间戳.
我正在寻找可以帮助我在使用C++的非Windows平台上验证Windows PE文件(.exe,.dll,.cab,.etc)的数字签名的示例代码(或库).我正在寻找一种独立于平台的方法.
谢谢!
c++ validation cross-platform digital-signature portable-executable