CngKeyBlobFormat 支持的实际格式是什么?

2024-04-24

Microsoft 页面提供了有关可使用的格式的“最少”信息CngKey.导入 https://msdn.microsoft.com/en-us/library/bb344680(v=vs.110).aspx. Which actual格式实际上由以下表示CngKeyBlobFormat https://msdn.microsoft.com/en-us/library/system.security.cryptography.cngkeyblobformat(v=vs.110).aspx特性?

  • EccPrivateBlob
  • EccPublicBlob
  • GenericPrivateBlob
  • GenericPublicBlob
  • OpaqueTransportBlob
  • Pkcs8PrivateBlob

只有 PKCS#8 私钥格式稍微暗示了密钥的格式,但它没有指定是否需要包装私钥或者是否只接受内部 PKCS#8 结构。

关于这些格式的信息当然越多越好。


在这一切过程中需要记住的一件事是,CNG 可以通过 CNG 提供商进行扩展,该提供商可能是默认的 Microsoft 软件、智能卡或 HSM 等第三方提供商。任何提供商都可以选择忽略或不支持任何这些格式。这最终归结为NCryptImportKey https://msdn.microsoft.com/en-us/library/windows/desktop/aa376276(v=vs.85).aspx被召唤。 CNG 支持多种格式,此处未列出。注释部分提供了大量有关数据结构的类型和链接的信息。

正如你在NCryptImportKey文档中,密钥格式是字符串。这CngKeyBlobFormat只是这些字符串的包装。您可以查看参考来源 https://referencesource.microsoft.com/#System.Core/System/Security/Cryptography/CngKeyBlobFormat.cs,d5fe5c517d3c590f查看这些属性如何映射到 Win32 字符串。例如,EccPrivateBlob属性是"ECCPRIVATEBLOB"细绳。

Pkcs8PrivateBlob

正如您所指出的,此格式由PKCS#8 https://www.ietf.org/rfc/rfc5208.txt标准。

不透明传输斑点

Microsoft 无法真正记录这一点,因为它是一个不透明的 blob,并且不能在提供商之间移植。本质上,这意味着提供者选择的表示。

通用公共 Blob

这将是以下内容的二进制表示BCRYPT_KEY_BLOB https://msdn.microsoft.com/en-us/library/windows/desktop/aa375523(v=vs.85).aspx结构。结构中的第一个字段决定了它是具有魔法值的结构。例如,对于 RSA 公钥,它将是BCRYPT_RSAKEY_BLOB https://msdn.microsoft.com/en-us/library/windows/desktop/aa375531(v=vs.85).aspx.

通用私有Blob

除了填写私有参数之外,与上面相同。

Ecc公共Blob

这将是一个BCRYPT_ECCKEY_BLOB https://msdn.microsoft.com/en-us/library/windows/desktop/aa375520(v=vs.85).aspx结构。与上面类似,魔法值将决定 blob 的实际内容。

Ecc私有Blob

除了填写私有参数之外,这与上面相同。

对于以下情况BCRYPT_KEY_BLOB and BCRYPT_ECCKEY_BLOB结构,结构充当密钥的“标头”。实际的密钥材料将位于结构之后的同一内存块中。密钥材料的“数量”将根据魔法值和标头中的其他值得知。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CngKeyBlobFormat 支持的实际格式是什么? 的相关文章

  • 如何使用 C# 中的参数将用户重定向到 paypal

    如果我有像下面这样的简单表格 我可以用它来将用户重定向到 PayPal 以完成付款
  • 我如何才能等待多个事情

    我正在使用 C 11 和 stl 线程编写一个线程安全队列 WaitAndPop 方法当前如下所示 我希望能够将一些内容传递给 WaitAndPop 来指示调用线程是否已被要求停止 如果 WaitAndPop 等待并返回队列的元素 则应返回
  • 查找c中结构元素的偏移量

    struct a struct b int i float j x struct c int k float l y z 谁能解释一下如何找到偏移量int k这样我们就可以找到地址int i Use offsetof 找到从开始处的偏移量z
  • Asp.NET WebApi 中类似文件名称的路由

    是否可以在 ASP NET Web API 路由配置中添加一条路由 以允许处理看起来有点像文件名的 URL 我尝试添加以下条目WebApiConfig Register 但这不起作用 使用 URIapi foo 0de7ebfa 3a55
  • 从Web API同步调用外部api

    我需要从我的 Web API 2 控制器调用外部 api 类似于此处的要求 使用 HttpClient 从 Web API 操作调用外部 HTTP 服务 https stackoverflow com questions 13222998
  • 在 Windows 窗体中保存带有 Alpha 通道的单色位图会保存不同(错误)的颜色

    在 C NET 2 0 Windows 窗体 Visual Studio Express 2010 中 我保存由相同颜色组成的图像 Bitmap bitmap new Bitmap width height PixelFormat Form
  • OleDbDataAdapter 未填充所有行

    嘿 我正在使用 DataAdapter 读取 Excel 文件并用该数据填充数据表 这是我的查询和连接字符串 private string Query SELECT FROM Sheet1 private string ConnectStr
  • 关于 C++ 转换:参数 1 从“[some_class]”到“[some_class]&”没有已知的转换

    我正在研究 C 并且遇到了一个错误 我不知道确切的原因 我已经找到了解决方案 但仍然想知道原因 class Base public void something Base b int main Base b b something Base
  • 显示UnityWebRequest的进度

    我正在尝试使用下载 assetbundle统一网络请求 https docs unity3d com ScriptReference Networking UnityWebRequest GetAssetBundle html并显示进度 根
  • 使用 Bearer Token 访问 IdentityServer4 上受保护的 API

    我试图寻找此问题的解决方案 但尚未找到正确的搜索文本 我的问题是 如何配置我的 IdentityServer 以便它也可以接受 授权带有 BearerTokens 的 Api 请求 我已经配置并运行了 IdentityServer4 我还在
  • 链接器错误:已定义

    我尝试在 Microsoft Visual Studio 2012 中编译我的 Visual C 项目 使用 MFC 但出现以下错误 error LNK2005 void cdecl operator new unsigned int 2
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • 将控制台重定向到 .NET 程序中的字符串

    如何重定向写入控制台的任何内容以写入字符串 对于您自己的流程 Console SetOut http msdn microsoft com en us library system console setout aspx并将其重定向到构建在
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • 混合 ExecutionContext.SuppressFlow 和任务时 AsyncLocal.Value 出现意外值

    在应用程序中 由于 AsyncLocal 的错误 意外值 我遇到了奇怪的行为 尽管我抑制了执行上下文的流程 但 AsyncLocal Value 属性有时不会在新生成的任务的执行范围内重置 下面我创建了一个最小的可重现示例来演示该问题 pr
  • 如何在文本框中插入图像

    有没有办法在文本框中插入图像 我正在开发一个聊天应用程序 我想用图标图像更改值 等 但我找不到如何在文本框中插入图像 Thanks 如果您使用 RichTextBox 进行聊天 请查看Paste http msdn microsoft co
  • C++ 中类级 new 删除运算符的线程安全

    我在我的一门课程中重新实现了新 删除运算符 现在我正在使我的代码成为多线程 并想了解这些运算符是否也需要线程安全 我在某处读到 Visual Studio 中默认的 new delete 运算符是线程安全的 但这对于我的类的自定义 new
  • C++ 标准是否指定了编译器的 STL 实现细节?

    在写答案时this https stackoverflow com questions 30909296 can you put a pimpl class inside a vector我遇到了一个有趣的情况 这个问题演示了这样一种情况
  • 对来自流读取器的过滤数据执行小计

    编辑问题未得到解答 我有一个基于 1 个标准的过滤输出 前 3 个数字是 110 210 或 310 给出 3 个不同的组 从流阅读器控制台 问题已编辑 因为第一个答案是我给出的具体示例的字面解决方案 我使用的实际字符串长度为 450 个

随机推荐