JKS密钥存储格式的规范(Specification of JKS key store format

2019-06-25 01:30发布

我不知道是否有存在的一个官方规范JKS Java中的密钥存储格式? 我想从/到PKCS#12写一个转换器,但不是在Java,所以密钥工具,否则Java代码是不是很遗憾的选项。

在十六进制编辑器寻找一个告诉我,它可能不是ASN.1。 在我开始挖掘到OpenJDK的,试图反向工程的格式,没有人知道是否可能存在一个规范吗? 我找不到任何东西,到目前为止,任何帮助将不胜感激!

Answer 1:

我想你应该在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 }
         */


文章来源: Specification of JKS key store format