使用本机C#创建ECC专用公钥

使用本机C#创建ECC专用公钥,第1张

概述关于如何生成公钥和私钥ECC密钥对,我一直在谷歌和微软的Crypto API上闲逛几个小时. ECDiffieHellmanCng类( http://msdn.microsoft.com/en-us/library/system.security.cryptography.ecdiffiehellmancng.aspx#Y3081)列出了一个示例,但我不知道如何直接访问私钥. 有关该程序的一些背景 关于如何生成公钥和私钥ECC密钥对,我一直在谷歌和微软的Crypto API上闲逛几个小时. ECDiffIEHellmanCng类( http://msdn.microsoft.com/en-us/library/system.security.cryptography.ecdiffiehellmancng.aspx#Y3081)列出了一个示例,但我不知道如何直接访问私钥.

有关该程序的一些背景知识,它是一个C#控制台应用程序,用于管理TrueCrypt会话,AES预共享密钥加密和ECDH / AES加密.我需要一个函数来创建一个公钥/私钥对以保存到文件,然后记录如何在包装的AES加密文件中使用这些生成的密钥(而不是像运行示例所示在运行时生成它).此外,我知道将文件保存到硬盘驱动器时出现的所有漏洞,但我并不担心这个程序,我正在考虑2台客户端计算机是安全的.

另请注意,我不想使用BouncyCastle API.

解决方法 我相信这就是你要找的东西?如果是,请标记为(我的第一个!)答案:-)

其中大部分与CngKey有关,可用于多种变体.

static voID test1()    {        CngKey k;        if (CngKey.Exists("myECDH",CngProvIDer.MicrosoftSoftwareKeyStorageProvIDer,CngKeyOpenoptions.MachineKey))        {            k = CngKey.Open("myECDH",CngKeyOpenoptions.MachineKey);        }        else        {            k = CngKey.Create(Cngalgorithm.ECDiffIEHellmanP256,"myECDH",new CngKeyCreationParameters        {            ExportPolicy = CngExportPolicIEs.AllowPlaintextExport,KeyCreationoptions = CngKeyCreationoptions.MachineKey,KeyUsage = CngKeyUsages.AllUsages,ProvIDer = CngProvIDer.MicrosoftSoftwareKeyStorageProvIDer,UIPolicy = new CngUIPolicy(CngUIProtectionLevels.None)        });        }        byte[] privateBytes = k.Export(CngKeyBlobFormat.EccPrivateBlob);        byte[] publicBytes = k.Export(CngKeyBlobFormat.EccpublicBlob);        //This:        var privateTester1 =            new ECDiffIEHellmanCng(CngKey.import(privateBytes,CngKeyBlobFormat.EccPrivateBlob,CngProvIDer.MicrosoftSoftwareKeyStorageProvIDer));        //Or that:        var privateTester2 = new ECDiffIEHellmanCng(k);    }
总结

以上是内存溢出为你收集整理的使用本机C#创建ECC专用/公钥全部内容,希望文章能够帮你解决使用本机C#创建ECC专用/公钥所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1223433.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存