cng相关内容

导入 RSA CngKey 并存储在 MicrosoftSoftwareKeyStorageProvider 中

我有一个导出的 RSAParameters 私钥,我想将它导入另一台机器.我可以将 new 密钥保存到本地计算机或用户容器中,但我无法尝试导入 现有 密钥. 下面的代码将生成一个新的密钥对,我知道我可以直接在容器中生成一个新密钥 - 但我希望能够生成一个密钥并将同一个密钥导入到少数不同的计算机中. 如何获取 RSAParameters 或 XML 字符串(任一)并将其导入本地用户(或机 ..
发布时间:2022-01-10 10:26:07 C#/.NET

将公钥从其他地方导入 CngKey?

我正在寻找一种跨平台的方式来共享用于 ECDSA 签名的公钥.从 CngKey 和标准 .NET 加密库的性能角度来看,我有一件很棒的事情,但后来我无法弄清楚 33(或 65)字节公钥(使用 secp256r1/P256)是如何变成 104 字节的by MS.. Ergo,我不支持跨平台签名和验证.. 我现在正在使用 BouncyCastle,但神圣的手榴弹速度太慢了! 所以,寻找以下 ..
发布时间:2022-01-10 09:49:43 C#/.NET

winapi 的 bcrypt.h 是否真的支持 bcrypt 散列?

这可能听起来像一个奇怪的问题,我实际上不得不问这个问题感觉有点奇怪,但在花了几个小时查看添加的 bcrypt 例程的 MSDN 文档后在 Vista 中,我几乎得出结论,没有实际的 bcrypt 支持! 根据维基百科: bcrypt 是一种用于密码的自适应加密散列函数... 基于 Blowfish 密码 ... 除了结合盐以防止彩虹表攻击,bcrypt 是一种自适应hash:随着时间的 ..
发布时间:2021-09-25 18:53:13 其他开发

从 BCRYPT_SECRET_HANDLE 将共享密钥导出为 BYTE 数组

我正在使用加密下一代 API (CNG) 实施 ECDHE.我成功生成了公钥和私钥.对于预共享密钥,我使用 BCryptSecretAgreement API,它返回预共享密钥秘密句柄 (BCRYPT_SECRET_HANDLE). 如何将预共享密钥作为 BYTE 数组从 BCRYPT_SECRET_HANDLE 导出? 解决方案 从 Windows 10 开始,您可以使用 BCRY ..
发布时间:2021-09-08 20:07:03 C/C++开发

HSM解密+加密链

我的应用程序充当总机,在两方之间传输非常敏感的消息,并且我试图弄清如何在不“看"他们试图发送的消息的情况下做到这一点. 我有一个HSM,并且为发件人生成了一个密钥对-他们将使用我给他们的公钥对消息进行加密,并且我可以使用我在服务器中拥有的私钥对消息进行解密HSM. 然后我将通过使用最终接收者的公共密钥对消息进行加密来传递该消息. 是否可以在HSM内部链接这两个操作,而无需在我的应 ..
发布时间:2021-05-04 19:23:33 其他开发

RSACng和CngKeyBlobFormat导入和导出格式

我在pem文件中具有以下格式的ASN.1编码的RSA私钥: ----- BEGIN RSA私钥-----base64编码的pkcs8密钥-----结束RSA私钥----- 现在,要将其导入到我的 RSACng 对象中,我需要遵循以下步骤: 读取文件并提取编码的密钥 将 base64 转换为字节以获取pkcs8密钥的 byte [] 将ASN.1(DER)中的 byte [ ..
发布时间:2021-04-26 18:34:48 C#/.NET

如何将ECDSA DER编码的签名数据转换为Microsoft CNG支持的格式?

我正在准备一个微型驱动程序,以使用Microsoft CNG的 NCryptSignHash 功能执行智能卡登录. 当我使用智能卡中的SECP521R1 EC密钥执行签名时,它将生成长度为139的签名数据作为ECC签名数据格式: ECDSASignature :: = SEQUENCE {r整数整数} 样本签名数据为 请注意,该代码在某种程度上是允许的,因为它不需要SEQUEN ..
发布时间:2021-04-26 18:33:44 C/C++开发

CNG替代CryptQueryObject

我对尝试从数字签名中读取字段感兴趣。我有调用CryptQueryObject,然后CryptMsgGetParam来获取某些字段,最后是CertFindCertificateInStore来加载证书的代码。 有没有关于如何使用下一代密码学API的提示?微软告诉我CryptQueryObject已弃用,但没有指向它的替换。 解决方案 CryptDecodeObject [Ex] 未标记 ..
发布时间:2020-10-22 01:08:24 其他开发

CNG提供程序,如何将EC密钥转换为BCRYPT_ECCKEY_BLOB结构?

我正在写CNG提供程序。具体来说,坚持实施 NCryptExportKey API。我正在尝试从硬件密钥管理器转换EC密钥(用于签名,ECDSA256)。硬件密钥管理器以ASN格式提供密钥。我参考了MSDN文档,其中提到公钥X和Y值(BCRYPT_ECCKEY_BLOB结构)采用大端格式。但在关于stackoverflow的另一篇文章中(导入公众(从其他地方输入CngKey?),那么Magic值似 ..
发布时间:2020-10-11 22:01:01 其他开发

将私有RSACryptoServiceProvider blob导入CNGKey.Import

从旧版程序中 再见[] rsaPrivateKeyExport = RSACryptoProvider.ExportCspBlob(true); 这些密钥存储在文件中。 作为旧版刷新的一部分,我需要使用CNG RSA密钥。 类似于读取旧的blob然后进行转换: CngKey cngPrv = CngKey.Import(rsaPrvKeyExport, CngKey ..
发布时间:2020-10-11 21:56:31 C#/.NET

CngKeyBlobFormat支持哪些实际格式?

Microsoft页面提供有关 CngKey.Import 。哪些实际格式实际上由以下 CngKeyBlobFormat 属性? EccPrivateBlob EccPublicBlob GenericPrivateBlob GenericPublicBlob OpaqueTransportBlob Pkcs8PrivateBlob 仅PKCS#8私钥格式略微暗示了密钥的格式 ..
发布时间:2020-10-11 21:32:03 C#/.NET

导入RSA CngKey并存储在MicrosoftSoftwareKeyStorageProvider中

我有一个导出的RSAParameters私钥,我想将其导入另一台计算机。我可以将 new 密钥保存到本地计算机或用户容器中,但是在尝试导入现有密钥时遇到了麻烦。 下面的代码将生成一个新的密钥对,我知道我可以直接将一个新密钥直接生成到容器中,但是我希望能够生成一个密钥并将同一密钥导入到不同的密钥中 如何获取RSAParameters或XML字符串(一个)并将其导入本地用户(或计算机)容器 ..
发布时间:2020-10-11 21:31:12 C#/.NET