KMIP协议/TTLV格式解码

article/2025/10/27 3:23:26

文章目录

    • KMIP协议官方文档
    • 手动解析TTLV格式
      • 请求
      • 响应
    • 自动解析
      • 解析请求和响应

KMIP协议官方文档

KMIP协议官方文档:http://docs.oasis-open.org/kmip/spec/
打开是这样的,在我写这篇文章的时候 KMIP更新到了1.4版本
在这里插入图片描述
以下KIMIP1.0协议为例:

手动解析TTLV格式

请求

官方文档有解析ttlv的例子(见文档 9.Message Encoding),但是比较简单

这里我截取的mysql发送ttlv请求,并解码

大体就是遵循

T   项目标识
T   项目数据类型
L	 项目长度(十六进制)
V{  项目值TTLV  {.......}}

{

    "420078"    Request Message"01""000000F8"{"420077" Request Header"01""00000048"{"420069" Protocol Version"01""00000020"{"42006A"  Protocol Version Major"02""00000004""00000001" 1"00000000""42006B"  Protocol Version Minor"02""00000004""00000001" 1"00000000"}"420050"  Maximum Response Size"02""00000004""000445C0""00000000""42000D"   Batch Count"02""00000004""00000001" 1"00000000"}"42000F"    Batch Item"01""000000A0"{"42005C"   Operation"05"       Enumeration"00000004""00000008"  Locate"00000000""420079"  Request Payload"01""00000088"{"42004F"    Maximum Items"02""00000004""000186A0""00000000""42008E"  Storage Status Mask"02""00000004""00000001""00000000""420008"   Attribute"01""00000028"{"42000A" Attribute Name"07"     Text string"0000000B"   11"782D6B65792D7265616479"  x-key-ready"0000000000""42000B""07""00000003""796573" yes"0000000000"}"420008" Attribute"01""00000030"{"42000A" Attribute Name"07""00000005""5374617465" State"000000""420009"  Attribute Index"02"      int"00000004""00000000" 0"00000000""42000B"    Attribute Value"05"       enum"00000004""00000002" Active"00000000"}}}}
}

响应

"42007B" Response Message
"01"
"000000B0"
{"42007A"  Response Header"01""00000048"{"420069"  Protocol Version"01""00000020"{"42006A"  Protocol Version Major"02""00000004""00000001""00000000""42006B" Protocol Version Minor"02""00000004""00000000""00000000"}"420092"  Time Stamp"09"        Date-Time"00000008""000000004B742476""42000D" Batch Count"02""00000004""00000001" 1"00000000"}"42000F" Batch Item"01""00000058"{"42005C"  Operation"05""00000004""00000008""00000000""42007F"  Result Status"05""00000004""00000000""00000000""42007C"  Response Payload"01""00000030"{"420094" Unique Identifier"07"     Text String"00000024""66303334323539302D663738612D346433342D613266342D346436666338356135366566"  f0342590-f78a-4d34-a2f4-4d6fc85a56ef"00000000"}}
}

自动解析

这里要借助一个开源项目的工具类:KMIP4j

解析请求和响应

 KMIPDecoder kmipDecoder = new KMIPDecoder();
System.out.println(kmipDecoder.decodeRequest(KMIPUtils.convertByteArrayToArrayList(buffer)));
System.out.println(kmipDecoder.decodeResponse(KMIPUtils.convertHexStringToArrayList(response)));

http://chatgpt.dhexx.cn/article/xk9rPEpa.shtml

相关文章

导入pfx证书

本文分享从Micrsoft Manange Console(简写为 MMC)中导入PFX证书的内容,您可以按住“Windows R”,从Run对话框中输入mmc,打开MMC界面。 一:添加管理单元(snap-in) 从File主菜单中选…

关于pfx证书和cer证书

Pfx证书,同时包含了公钥信息和私钥信息(用私钥加密进行签名证明是本人签名,用公钥解密对签名进行进行验证,证明签名的合法性) PFX也称为PKCS#12(Public Key Cryptography Standards #12,公钥密码技术标准#…

OpenSSL 生成pfx

OpenSSL 生成pfx Window需要安装OpenSSL(需要下载),Linux自带OpenSSL工具(无需安装) Window下载地址: 1. 官网 2. 上传了一份到csdn Window 命令 # 生成私钥 "D:\Program Files\OpenSSL-Win64\bi…

pfx 证书 转 jks 证书

今天在tomcat 配置 https pfx 证书时 总是配置失败 很是 头疼 &#xff0c;配置参数如下&#xff1a; <Connector port"443" protocol"org.apache.coyote.http11.Http11Protocol" SSLEnabled"true"maxThreads"150" scheme"ht…

通过openssl生成pfx证书

通过centos7上自带的openssl工具来生成。首先创建一个pfxcert目录。然后进入此目录。 1.生成.key文件&#xff08;内含被加密后的私钥&#xff09;&#xff0c;要求输入一个自定义的密码 [rootlocalhost cert]# openssl genrsa -des3 -out server.key 2048 Generating RSA priv…

windows合成pfx

思路 通过openssl工具合成pfx 步骤 1、通常情况下&#xff0c;开发人员的电脑都会安装git version软件&#xff0c;没有的话可以安装一个 2、安装好之后&#xff0c;回到桌面&#xff0c;鼠标右键-git bash here ,可以打开如下窗口 3、输入openssl回车&#xff0c;再输入…

服务器pfx文件如何导入,linux 导入pfx 证书

linux 导入pfx 证书 内容精选 换一换 单击“开始”,运行框输入“MMC”,回车。在MMC控制台菜单栏中单击“文件”,选择“添加/删除管理单元”。在“添加或删除管理单元”对话框,选择“可用管理单元”区域的“证书”。单击“添加”添加证书。在“证书管理”对话框,选择“计算…

.pfx 证书和 .cer 证书

证书系列&#xff1a; 1&#xff1a;.pfx 证书和 .cer 证书 2&#xff1a;导入pfx证书 通常情况下&#xff0c;作为文件形式存在的证书一般有三种格式&#xff1a; 第一种&#xff1a;带有私钥的证书&#xff0c;由Public Key Cryptography Standards #12&#xff0c;PKCS#1…

JavaDoc生成API详解

一、综述 1.1 简介 Javadoc 是 Java 自带的一种工具&#xff0c;其可以从程序源代码中抽取类、方法、成员等注释形成一个和源代码配套的API帮助文档。也就是说&#xff0c;只要在编写程序时以一套特定的标记【Tag】作注释&#xff0c;在程序编写完成后&#xff0c;通过Javadoc…

IDEA生成JavaDoc文档

1.第一步&#xff1a;首先创建一个新的文件夹。 2.第二步&#xff1a;选中所要生成的包。 3.第三步&#xff1a;点击顶部工具&#xff08;Tools&#xff09;菜单&#xff0c;并选择生成javadoc&#xff08;Generate JavaDoc&#xff09;这个选项。 4.第四部&#xff1a;①然后会…

两种方法生成javaDoc文档

如果生成javaDoc文档 一.使用命令行命令生成javaDoc文档 在文件位置打开cmd命令 回车打开 2.javadoc 参数 Java文件 -encoding UTF-8&#xff1a;编码为UTF-8 -charset UTF-8 &#xff1a;字符级编码为UTF-8 作用&#xff1a;避免出现乱码 3.生成Doc文档 4.查看生成文档 …

Javadoc生成的详细操作教程

文章目录 Javadoc文档一、什么是Javadoc文档二、Javadoc文档注释三、常用注释文档标记四、Javadoc选项说明4.1 选项说明4.2 标记的顺序4.3 可以多次使用标记 五、命令生成doc文档5.1 测试所在的目录结构5.2 命令生成Javadoc文档步骤方式一&#xff1a;单个或多个.java文件生成d…

Javadoc注释编写入门

Javadoc简介 Javadoc是Sun Microsystems为Java语言创建的文档生成器&#xff0c;在Javadoc推出之前&#xff0c;程序开发者往往需要为每一个程序单独创建并更新一个文档&#xff0c;这种做法耗时耗力且极不方便&#xff0c;Javadoc的主要优点就是在于能够根据源代码的注释&…

使用idea 生成Javadoc文档

使用idea 生成Javadoc文档 方法一&#xff1a;命令行窗口生成javaDoc 右键想要生成doc文档的类&#xff0c;点击Show in EXplorer 打开文件所在位置 ​ 在打开路径页面上选中路径&#xff0c;输入cmd回车 输入指令&#xff1a;–javadoc 参数 java文件 打开第一步的类的位…

javadoc命令使用

javadoc指令基本使用 Java 文档注释是用来生成 API 文档的。Java 文档注释以/**开始&#xff0c;并以*/结束&#xff0c;可以通过 Javadoc 生成 API 帮助文档&#xff0c;Java 帮助文档主要用来说明类、接口、方法、成员变量、构造器和内部类。 Javadoc &#xff08;Java API…

javadoc 使用

对于Java注释我们主要了解两种&#xff1a;  // 注释一行  /* ...... */ 注释若干行  但还有第三种&#xff0c;文档注释&#xff1a;  /** ...... */ 注释若干行&#xff0c;并写入 javadoc 文档  通常这种注释的多行写法如下&#xff1a;  /**  * .........  …

生成JavaDoc文档的两个方法

生成JavaDoc文档 JavaDoc是一种技术&#xff0c;它可以将我们的注释生成帮助文档 方法一&#xff1a;通过命令行 javadoc 来生成javaDoc文档 1.打开文件的地址&#xff1a; 2.打开目标文件夹&#xff0c;路径前加入cmd &#xff08;记得加空格&#xff09;然后回车键&#…

JavaDoc文档生成

JavaDoc文档生成 JavaDoc是一种将注释生成HTML文档的技术。 1、使用javadoc命令生成文档 首先了解javadoc指令 使用指令生成文档&#xff0c;这里的java文件的编码是utf-8&#xff0c;所以要带上编码选项 -encoding utf-8 指令 javadoc -encoding utf-8 Fish.java 打开ind…

如何使用Intellij Idea生成JavaDoc文档

JavaDoc是一种将注释生成HTML文档的技术&#xff0c;生成的HTML文档类似于Java的API&#xff0c;易读且清晰明了。在简略介绍JavaDoc写法之后&#xff0c;再看一下在Intellij Idea 中如何将代码中的注释生成HTML文档。 先看一段样例代码: //: POI/ExportConfig /** Excel导出项…

IDEA插件系列(29):Easy Javadoc插件——快速生成javadoc文档注释

1.插件介绍 Easy Javadoc插件。 能帮助java开发者自动生成javadoc文档注释。如下&#xff1a; 2.安装方式 第一种安装方式是在线下载安装插件。 第二种安装方式是使用离线插件进行安装。 插件下载地址&#xff1a;https://plugins.jetbrains.com/plugin/12977-easy-javadoc…