我正在使用D2009中的Clever Internet Suite来签署SOAP消息,并且需要一种在本地验证签名文档的方法.服务器保持弹出SOAP消息,并显示错误"哈希值不匹配".
我必须在提交之前略微操作文档,而不是签名部分,因此我需要找出这种操作是否导致错误.我还可以获取服务器收到的文档,并希望验证该副本以查看传输中是否有变化.
有没有办法使用Clever Suite?或者也许是Crypto.api?即使是我可以提供文档和公钥的独立应用程序也没问题.
感谢您提供的任何信息.
我有一个Web服务器,只允许使用X509身份验证进行访问.奇迹般有效.现在我想扩展X509证书(存储在用户的浏览器密钥库中)的使用
我发现这个例子做的RSA签名非常接近....只有它从HTML文本区域获取密钥.我想从密钥库中读取它.现在加密非常不稳定:
我正在寻找签名和加密的一些工作示例(我有一些Java,但不是基于浏览器的JavaScript).
非常感谢帮助
我一直在努力解决问题,也许你们可以指出我正确的方向.
我正试图通过https连接在网络服务器上对pdf进行数字签名.
在页面加载时我正在这样做:
HttpClientCertificate cs = Request.ClientCertificate;
X509Certificate card = new X509Certificate(cs.Certificate);
Org.BouncyCastle.X509.X509CertificateParser cp = new Org.BouncyCastle.X509.X509CertificateParser();
Org.BouncyCastle.X509.X509Certificate[] chain = new Org.BouncyCastle.X509.X509Certificate[] { cp.ReadCertificate(card.GetRawCertData())};
Run Code Online (Sandbox Code Playgroud)
我在最后一行代码中收到错误"m_safeCertContext是一个无效的句柄".
请注意:
[System.Security.SecurityCritical, System.Security.SecurityTreatAsSafe]属性添加到所有方法甚至类中以查看它是否可行...没有这样的运气.任何人都可以给我一个暗示吗?
我正在寻找一个允许创建和验证XAdES签名的Java库(格式越多越好:XAdES-BES,XAdES-C,XAdES-XL等).
我发现最有趣的实现是:
您建议使用哪个或建立哪个?
我对RSA-SHA1感到困惑,我认为它是RSA_private_encrypt(SHA1(消息)).但我无法获得正确的签名值.有什么不对的吗?
对于在浏览器上运行且需要专业人员签名的电子处方系统,我们使用Java小程序对XML请求进行签名,然后使用智能卡将其发送给WS.
但是自版本42以来,Chrome默认禁用NPAPI支持,并且在2015年9月的未来版本中,它将被完全禁用,然后applet根本不可用.
Chrome NPAPI弃用页面指向WebCrypto和TLS作为替代方案.但似乎WebCrypto 已经超出智能卡的支持范围,并且似乎TLS仅涉及加密协议,并且它没有提供使用电子卡的方法.
有人使用完全浏览器本机解决方案来签署文档并对流程有很好的控制.至少它将是nedeed:
google-chrome npapi smartcard digital-signature webcrypto-api
我对XML文件进行数字签名,但需要签名标记包含名称空间前缀"ds".我研究了很多谷歌,发现了许多相同的问题,但没有令人满意的答案.
我试图手动将"ds"放在文件中,但签名变得无效.标记"SignatureValue"对标记"SignedInfo"进行签名,因此签名变为无效.
有人可以告诉我如何生成标签"SignatureValue"的值,这样我可以在添加前缀"ds"后替换签名吗?
我正在尝试从 Vault 检索公钥。它被秘密存储。
我正在尝试将检索到的字符串转换为公钥以验证签名。
示例公钥字符串如下所示
-----开始公钥----- MIIBITANBgkqhkiG9w0BAQEFAAOCAQ4AMIIBCQKCAQBWeqVZ8Ub/o4VQ8nnm888B /Ydqv2IN5bObxupZ7njMKuT/WPgwlK8+Wc0Xjhy82E51XW6E4/0um8sIQ1cxvoSO QsrfkRagD+ O9OrjQbb2TqrilDDhFx9EGjXuZpR3brDUufCG6SkypqiKSaMuoVoax c82TZ1uAIp5OSroWt1IdUkvam24X/7zDIf1l8XWCmbfCDrBb73hBYA4MgTjsSckC 5nz+GLcWTfz0wze4lwHCi1KYFv+1+WcYHWPLbqL tc8nzVqkuP5Ne/9HAFkaEAIw5 fKLccksaT/TLyIcrALcfuABlgX1yeBulVcbTAp+WiYRvo9+FKK23pbwkh+uy0tq1 AgMBAAE= -----结束公钥-----
我在我的秘密值中添加了相同的内容,并且没有格式。
但是,使用下面的代码,我在行中遇到错误 InvalidKeyException: INVALID KEY FORMAT
PublicKey publicKey = fact.generatePublic(pubKeySpec);
Run Code Online (Sandbox Code Playgroud)
这是代码:
String publicKeyAsString = secretClient.getSecret("key-name").getValue();
byte[] keyContentAsBytes = publicKeyAsString.getBytes();
KeyFactory fact = KeyFactory.getInstance("RSA");
X509EncodedKeySpec pubKeySpec = new X509EncodedKeySpec(keyContentAsBytes);
PublicKey publicKey = fact.generatePublic(pubKeySpec);
Run Code Online (Sandbox Code Playgroud)
用堆栈跟踪编辑:
Caused by: java.security.InvalidKeyException: invalid key format
at sun.security.x509.X509Key.decode(X509Key.java:386) ~[?:?]
at sun.security.x509.X509Key.decode(X509Key.java:401) ~[?:?]
at sun.security.rsa.RSAPublicKeyImpl.<init>(RSAPublicKeyImpl.java:122) ~[?:?]
at sun.security.rsa.RSAKeyFactory.generatePublic(RSAKeyFactory.java:330) ~[?:?]
at sun.security.rsa.RSAKeyFactory.engineGeneratePublic(RSAKeyFactory.java:235) ~[?:?]
Run Code Online (Sandbox Code Playgroud)
编辑:用于测试的公钥:
-----开始公钥----- MIIBITANBgkqhkiG9w0BAQEFAAOCAQ4AMIIBCQKCAQBWeqVZ8Ub/o4VQ8nnm888B /Ydqv2IN5bObxupZ7njMKuT/WPgwlK8+Wc0Xjhy82E51XW6E4/0um8sIQ1cxvoSO QsrfkRagD+ O9OrjQbb2TqrilDDhFx9EGjXuZpR3brDUufCG6SkypqiKSaMuoVoax c82TZ1uAIp5OSroWt1IdUkvam24X/7zDIf1l8XWCmbfCDrBb73hBYA4MgTjsSckC 5nz+GLcWTfz0wze4lwHCi1KYFv+1+WcYHWPLbqL tc8nzVqkuP5Ne/9HAFkaEAIw5 fKLccksaT/TLyIcrALcfuABlgX1yeBulVcbTAp+WiYRvo9+FKK23pbwkh+uy0tq1 …
\n\nGitHub 现在支持 SSH 提交验证,因此您可以使用自行生成的 SSH 公钥在本地签署提交和标签,这将使其他人对您所做更改的来源充满信心。如果提交或标签具有可加密验证的 SSH 签名,GitHub 会将提交或标签设为“已验证”或“部分验证”。
\n如果您已使用 SSH 密钥通过 GitHub 进行身份验证,现在可以上传相同或不同的密钥对\xe2\x80\x99s 公钥以将其用作签名密钥。您可以添加到帐户的签名密钥数量没有限制。有关更多信息,请访问GitHub 文档中的SSH 提交验证。
\n
鉴于最近发生的事件,我想知道:使用 SSH 密钥与 GPG 密钥签署提交之间有什么区别?
\n注意: 这是一个类似的问题,询问 GPG 和 SSH 之间的一般差异。这个问题具体是关于使用其中一种或另一种进行签名之间的区别。
\n我在应用程序中有一些安全密钥.我想要安全地存储它.我喜欢将它存储在本机共享库中(可能是从某些代码生成的).之后,我希望它通过一种方法返回,该方法将检查原始APK的签名.所以没有人可以使用此文件,除了可信应用程序.我知道,ndk库也可以反编译,但是对本机代码进行逆向工程甚至比java .class文件更难.
题:
java ×3
c# ×2
xml ×2
android ×1
android-ndk ×1
archiving ×1
cryptography ×1
delphi ×1
delphi-2009 ×1
git ×1
github ×1
gnupg ×1
javascript ×1
npapi ×1
openssl ×1
pki ×1
prefixes ×1
public-key ×1
rsa ×1
security ×1
smartcard ×1
soap ×1
ssh ×1