草庐IT

sm2签名

全部标签

c# - ClientMessageInspector 添加 BinarySecurityToken 和签名

我正在尝试在桌面应用程序中使用C#使用JavaWeb服务。Myfirstattempt正在使用WebServicesClientProtocol,但我无法添加WSSEUsernameandTokenSecuritySpec1.1所需的必要属性我需要创建具有这种结构的请求:my_loginXqEwZ/CxaBfFvh487TjvN8qD63c=JzURe0CxvzRjmEcH/ndldw==2017-02-09T09:42:27.976ZMIIKnDCCB.........nmIngeg6d6TNI=mlABQuNUFOmLqsDswxXxQ6XnjpQ=lYhBHSQ/L...XL1H

c# - 检查给定的可执行文件是否经过数字签名且有效?

在我的C#/.NET应用程序中,我必须检查给定的可执行文件是否经过数字签名(最好没有异常测试。)然后我需要检查其证书是否有效(基于已安装的根证书)以及文件内容是否对签名有效.BCL中的类太多了,我不知道从哪里开始以及使用什么,到目前为止我发现的任何东西都不能消除我的困惑...我想做这样的事情,没有如果可能P/Invoke:boolIsSignedFile(stringpath);CertGetCertificateFromSignedFile(stringpath);boolIsValidCertificate(Certcert)SigGetSignatureFromSignedFil

c# - 如何使用 PFX(Bouncy CaSTLe 或其他)以编程方式对可执行文件进行代码签名

我正在尝试确定使用BouncyCaSTLe、托管代码或来自C#的非托管代码对可执行文件进行代码签名的最佳方法。由于CAPICOM现在已被弃用,我想如果需要非托管地完成,mssign32.dll中的SignerSign方法之一是最好的方法。这个答案(https://stackoverflow.com/a/3952235/722078)看起来很接近,但它会生成一个.p7m文件,虽然看起来大小合适,但无法正确运行(显然在运行前重命名为.exe)。此处提问者(API/Librarytoreplacesigntool.exe)给出的解决方案似乎很有前途且管理得当,但就像TomCanham在下面的

c# - 每个项目都应该使用单独的强名称 key (.snk) 进行签名吗?

在我的VisualStudio解决方案中,我有一个网站和4-5个引用的类库项目,其中一些还引用了外部第三方程序集。我被赋予了为这些项目的程序集签名的任务。我的理解是签名的目的是不是每个人都可以在不提供其公钥和版本详细信息的情况下使用我们的程序集,对吗?我应该使用一个强名称key(.snk)对这些项目的所有程序集进行签名,还是应该使用单独的强名称key对每个程序集进行签名?强名称key密码保护的目的是什么?你会怎么做?非常感谢, 最佳答案 thatthepurposeofsigningisthatnoteveryonebeingabl

c# - 使用正则表达式解析签名,具有 "fun"和数组返回值

我有这个[讨厌的]正则表达式来捕获一个VBA过程签名,其中包含一个桶中的所有部分:publicstaticstringProcedureSyntax{get{return@"(?:(?Friend|Private|Public)\s)?(?:(?Sub|Function|Property\s(Get|Let|Set)))\s(?(?:[a-zA-Z][a-zA-Z0-9_]*)|(?:\[[a-zA-Z0-9_]*\]))\((?.*)?\)(?:\sAs\s(?(((?[a-zA-Z][a-zA-Z0-9_]*))\.)?(?([a-zA-Z][a-zA-Z0-9_]*)|\[[a-

c#如何验证签名JWT?

我有一个token,一个包含公钥的文件,我想验证签名。我尝试根据this验证签名.但是,decodedCrypto和decodedSignature不匹配。这是我的代码:publicstaticstringDecode(stringtoken,stringkey,boolverify){varparts=token.Split('.');varheader=parts[0];varpayload=parts[1];byte[]crypto=Base64UrlDecode(parts[2]);varheaderJson=Encoding.UTF8.GetString(Base64UrlD

c# - .NET 程序集的延迟签名有什么意义?

我注意到,在我使用AssemblyDelaySignAttribute指示程序集正在开发中并且现在不需要签名之后,我将不得不使用sn-Vrfoolib.dll以注册强名称验证,以便为该程序集关闭。做这个圈子有什么意义?为什么不在程序集完全完成之前不对其进行签名?这不是更麻烦吗? 最佳答案 几个原因...不能将没有强名称的程序集添加到GAC与#1相关,不在GAC中的组件不会从NGEN中获益太多在使用部分名称进行程序集探测和加载时,强命名程序集表现出不同的行为。没有强名称的程序集不能被强名称程序集引用因此,在严格控制签名过程的组织中,能

c# - 为什么签名程序集加载缓慢?

这周我遇到了一个我无法解释的奇怪问题:我将我的应用程序切换为使用一些第三方程序集(XceedGrid和他们的一些其他组件)的签名版本并且应用程序启动时间进入了厕所.每次应用程序加载签名程序集时,加载时间为30秒。应用程序启动时间从5秒缩短到90多秒。这到底是怎么回事?!一些其他信息:这是一个在.NET3.5SP1下运行的WinForms应用。计算机没有互联网连接(出于安全考虑,是故意的)。 最佳答案 JasonEvans的帖子确实包含答案,但是以链接的形式。我认为最好在此处发布实际解决方案:在与可执行文件相同的文件夹中创建文件App

c# - 如何以编程方式为 WCF 服务创建自签名证书?

我有一个自承载的WCF服务器作为本地系统帐户下的Windows服务运行。我正在尝试在C#中以编程方式创建自签名证书,以便与使用消息级安全性的net.tcp端点一起使用。我正在使用以下代码,它非常接近于Howtocreateaself-signedcertificateusingC#?中接受的答案。通过一些小的改变来解决我的问题。publicstaticX509Certificate2CreateSelfSignedCertificate(stringsubjectName,TimeSpanexpirationLength){//createDNforsubjectandissuerva

c# - 检查 EXE 上的数字签名

我的.NETexe是使用signtool签名的。使用此代码,我可以验证证书本身的有效性:varcert=X509Certificate.CreateFromSignedFile("application.exe");varcert2=newX509Certificate2(cert.Handle);boolvalid=cert2.Verify();但是,这只会检查证书本身,而不检查EXE的签名。因此,如果EXE被篡改,则该方法无法检测到。如何检查签名? 最佳答案 您需要从wintrust.dll调用(P/Invoke)WinVeri