签名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
我正在尝试使用x.509证书签署XML文件,我可以使用私钥对文档进行签名,然后使用CheckSignature方法(它具有接收证书作为参数的重载)来验证签名.
问题是验证签名的用户必须拥有证书,我担心的是,如果用户拥有证书,那么他可以访问私钥,据我所知,这是私有的,应该只对用户可用谁签字.
我错过了什么?
谢谢你的帮助.
c# xml digital-certificate digital-signature x509certificate2
在工作中,我们有一个Web应用程序,我们需要使用SAML验证的单点登录与其他公司的Web应用程序进行交互.我们的网络应用程序是用PHP编写的,显然与其他公司使用的语言选择无关.尽管如此,我还需要编写一个简单的API,这个其他公司可以使用SAML请求发送SOAP请求,并生成SAML响应.我从头开始编写它有三个原因:1)用PHP编写的SAML交互似乎没有很多选项,即使我想要一个,2)它限制了添加另一个第三个所涉及的开销-party组件,以及3)从头开始创建东西通常会让我有更好的理解,并且如果需要的话,使我能够更好地适应未来的事情.
无论如何,我对SAML,SOAP和XML标准一般都是新手,所以我一直在教我自己.我已经为我们的目的提供了相当完整的API,但有一个例外,即另一家公司已经指定我们的响应将需要使用证书进行数字签名(我们收到的请求将同样进行数字签名).所以我一直在试图弄清楚如何处理/生成XML签名,但老实说,由于W3C规范并不完全轻松,所以有点令人困惑.
OASIS安全标记语言(SAML)V1.1文件的断言和协议的第5.4.8节(我已经关闭的文件,正如另一家公司所说他们将使用v1.1)包括一个例子包含已签名断言的签名响应,我将在此处引用以供参考:
<Response IssueInstant="2003-04-17T00:46:02Z" MajorVersion="1" MinorVersion="1"
Recipient="www.opensaml.org" ResponseID="_c7055387-af61-4fce-8b98-e2927324b306"
xmlns="urn:oasis:names:tc:SAML:1.0:protocol"
xmlns:samlp="urn:oasis:names:tc:SAML:1.0:protocol"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<ds:Reference URI="#_c7055387-af61-4fce-8b98-e2927324b306">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
<InclusiveNamespaces PrefixList="#default saml samlp ds xsd xsi"
xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</ds:Transform>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<ds:DigestValue>TCDVSuG6grhyHbzhQFWFzGrxIPE=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>x/GyPbzmFEe85pGD3c1aXG4Vspb9V9jGCjwcRCKrtwPS6vdVNCcY5rHaFPYWkf+5EIYcPzx+pX1h43SmwviCqXRjRtMANWbHLhWAptaK1ywS7gFgsD01qjyen3CP+m3Dw6vKhaq1ed10BYyrIzb4KkHO4ahNyBVXbJwqv5pUaE4=</ds:SignatureValue>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>MIICyjCCAjOgAwIBAgICAnUwDQYJKoZIhvcNAQEEBQAwgakxCzAJBgNVBAYTA1VT ... 8I3bsbmRAUg4UP9hH6ABVq4KQKMknxu1xQxLhpR1y1GPdiowMNTrEG8cCx3w/w==</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</ds:Signature>
<Status><StatusCode Value="samlp:Success"/></Status>
<Assertion AssertionID="_a75adf55-01d7-40cc-929f-dbd8372ebdfc"
IssueInstant="2003-04-17T00:46:02Z" Issuer="www.opensaml.org"
MajorVersion="1" MinorVersion="1" xmlns="urn:oasis:names:tc:SAML:1.0:assertion"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Conditions NotBefore="2003-04-17T00:46:02Z" NotOnOrAfter="2003-04-17T00:51:02Z">
<AudienceRestrictionCondition>
<Audience>http://www.opensaml.org</Audience>
</AudienceRestrictionCondition>
</Conditions>
<AuthenticationStatement AuthenticationInstant="2003-04-17T00:46:00Z" …
Run Code Online (Sandbox Code Playgroud) 为什么我需要使用单独的公钥对进行签名和加密,而不是使用与RSA相同的密钥对?使用相同的密钥是否存在安全问题?
我想知道是否有(并且我希望有)ECDH(椭圆曲线Diffie-Hellman)和ECDSA(椭圆曲线数字签名算法)的公钥大小的标准,用于素数场上的每种曲线类型(192,224,256) ,384和521).
cryptography digital-signature elliptic-curve dsa diffie-hellman
我怎样才能使用字符串的签名SHA1withRSA
,如果我已经有了私钥byte[]
或String
?
我正在尝试使用SHA256对XML文档进行数字签名.
我正在尝试使用Security.Cryptography.dll.
这是我的代码 -
CryptoConfig.AddAlgorithm(typeof(RSAPKCS1SHA256SignatureDescription),"http://www.w3.org/2001/04/xmldsig-more#rsa-sha256");
X509Certificate2 cert = new X509Certificate2(@"location of pks file", "password");
XmlDocument doc = new XmlDocument();
doc.PreserveWhitespace = true;
doc.Load(@"input.xml");
SignedXml signedXml = new SignedXml(doc);
signedXml.SigningKey = cert.PrivateKey;
signedXml.SignedInfo.SignatureMethod = "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256";
//
// Add a signing reference, the uri is empty and so the whole document
// is signed.
Reference reference = new Reference();
reference.AddTransform(new XmlDsigEnvelopedSignatureTransform());
reference.AddTransform(new XmlDsigExcC14NTransform());
reference.Uri = "";
signedXml.AddReference(reference);
//
// Add the certificate as key info, because of this the certificate …
Run Code Online (Sandbox Code Playgroud) 如何构建 swift POST 请求以满足 Sign In With Apple 令牌撤销要求?
我不确定 form-data、client_id、client_secret、token 或 token_type_hint 应该是什么。我能够实现“使用 Apple 登录”来创建用户,但对其中的撤销部分非常迷失。
我希望用 Swift 来执行这个客户端,因为那是最方便的。Firebase 可能正在开发一种内置于其 SDK 中的解决方案,但不确定这是否是适合使用 Firebase 的开发人员的通用解决方案。
https://developer.apple.com/documentation/sign_in_with_apple/revoke_tokens#url
编辑:要求来源https://developer.apple.com/support/offering-account-deletion-in-your-app
以下函数位于同一类 (ViewModel) 中。第一个是我的登录/注册流程。一些代码与 Firebase 流相关,基本上可以忽略,但您可以看到我抓取了 client_secret 的令牌字符串和随机数。第二个函数类似于令牌撤销的 POST 请求(从未显示的删除帐户函数调用)。有人使用这种方法/样板取得过成功吗?
在我的应用程序中点击按钮来测试下面的令牌撤销方法会返回状态代码 400。我无法使用此方法撤销令牌,并且我不确定还能做什么。
public func authorizationController(controller: ASAuthorizationController, didCompleteWithAuthorization authorization: ASAuthorization) {
// Sign in using Firebase Auth
if let appleIDCredential = authorization.credential as? ASAuthorizationAppleIDCredential {
guard let nonce = currentNonce else {
print("Invalid state: A login callback was received, but no login request was sent.") …
Run Code Online (Sandbox Code Playgroud) 我正在构建一个Web应用程序,其中大多数允许用户使用客户端计算机中安装的证书对PDF文档进行数字签名.
该文档一旦签署,就应该回发到服务器,在那里它将存储签名版本.
服务器正在运行Classic ASP/ASP.NET
我应该去哪儿?
xml ×3
c# ×2
java ×2
asp.net ×1
c++ ×1
code-signing ×1
cryptography ×1
dsa ×1
encryption ×1
jar ×1
php ×1
private-key ×1
public-key ×1
saml ×1
security ×1
sign ×1
swift ×1
token ×1
validation ×1