我想知道是否存在 Java 中使用的JKS密钥库格式的官方规范?我想写一个从/到 PKCS#12 的转换器,但不是在 Java 中,所以不幸的是,keytool 或 Java 代码不是一个选项。
在十六进制编辑器中查看一个告诉我它可能不是 ASN.1。在我开始深入研究 OpenJDK 并尝试对格式进行逆向工程之前,有人知道是否存在规范吗?到目前为止我找不到任何东西,任何帮助将不胜感激!
我想知道是否存在 Java 中使用的JKS密钥库格式的官方规范?我想写一个从/到 PKCS#12 的转换器,但不是在 Java 中,所以不幸的是,keytool 或 Java 代码不是一个选项。
在十六进制编辑器中查看一个告诉我它可能不是 ASN.1。在我开始深入研究 OpenJDK 并尝试对格式进行逆向工程之前,有人知道是否存在规范吗?到目前为止我找不到任何东西,任何帮助将不胜感激!
我认为您应该从 JDK源代码开始您的研究。那里有一些非常有用的评论。例如
/*
* KEYSTORE FORMAT:
*
* Magic number (big-endian integer),
* Version of this file format (big-endian integer),
*
* Count (big-endian integer),
* followed by "count" instances of either:
*
* {
* tag=1 (big-endian integer),
* alias (UTF string)
* timestamp
* encrypted private-key info according to PKCS #8
* (integer length followed by encoding)
* cert chain (integer count, then certs; for each cert,
* integer length followed by encoding)
* }
*
* or:
*
* {
* tag=2 (big-endian integer)
* alias (UTF string)
* timestamp
* cert (integer length followed by encoding)
* }
*
* ended by a keyed SHA1 hash (bytes only) of
* { password + whitener + preceding body }
*/