Java JKS密钥存储格式规范

Java JKS密钥存储格式规范,java,file-format,keystore,jks,Java,File Format,Keystore,Jks,我想知道是否存在Java中使用的密钥存储格式的官方规范?我想写一个从PKCS#12到PKCS#12的转换器,但不是用Java编写的,所以很遗憾,keytool或Java代码不是一个选项 在十六进制编辑器中查看一个可以告诉我它可能不是ASN.1。在我开始深入研究OpenJDK,尝试对格式进行反向工程之前,有人知道是否存在规范吗?到目前为止我还没有找到任何东西,任何帮助都将不胜感激 我认为你应该从JDK开始你的研究。这里有一些非常有用的评论。 例如 /* * KEYSTORE FO

我想知道是否存在Java中使用的密钥存储格式的官方规范?我想写一个从PKCS#12到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 }
         */