有关该程序的一些背景知识,它是一个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专用/公钥所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)