我目前正在使用开源库 KMIP4J 学习和开发 KMIP (Spec 1.0)。我正在查看规格表中作为示例提供的用例,但我一直试图区分模板和模板属性结构的使用。
这两个用例有什么区别?两者都有加密算法和加密长度属性,但我不明白它们之间的区别。
在KMIP 规范中,有两种不同类型的对象:托管对象和基础对象。
托管对象是指:
由密钥管理系统存储和维护的对象 [KMIP 规范,第 1 节]
托管对象示例:证书、对称密钥、公钥、私钥、模板
基础对象是指:
在协议的消息中使用但不受密钥管理系统管理的对象。基础对象是托管对象的组件。[KMIP 规范,第 2.1 节]
基础对象示例:属性、凭证、键值、模板-属性结构
模板是一种托管对象。
模板是命名的托管对象,包含托管密码对象的客户端可设置属性(即,存储的、命名的属性列表)。模板中指定的属性适用于创建的按名称引用模板的任何对象。[KMIP 规范,第 2.2.6 节]
模板属性结构是一种基础对象。
模板属性结构用于各种操作中,以在请求中提供所需的属性值和/或模板名称,并在响应中返回实际的属性值。[KMIP 规范,第 2.1.8 节]
因此,让我们看一下您指出的用例:
在用例 3.1.1 中:
在用例 3.1.4 中:
Template1
Template1
,指示操作应使用由指定的属性Template1
(我们从步骤 1 中知道是密码算法和密码长度)key1
因此,这两个操作本质上创建了具有相同属性值的相同 Symmetric Key,但第二种情况使用了预定义的模板(并且,很简单,添加了一个键名),而第一种则没有。
旁注:
KMIP 1.0 规范此时已经过时了。KMIP 1.3 于 2015 年 12 月发布。我特别提到这一点是因为模板结构自 1.3 起已弃用。