2012-05-31 1 views
8

Je me demandais s'il existe une spécification officielle du format de magasin de clés JKS utilisé en Java? Je voudrais écrire un convertisseur de/vers PKCS # 12, mais pas en Java, donc keytool ou le code Java n'est pas une option malheureusement.Spécification du format de magasin de clés JKS

En regardant un dans un éditeur hexadécimal me dit que ce n'est probablement pas ASN.1. Avant de commencer à creuser dans OpenJDK, en essayant d'inverser le format, quelqu'un sait-il s'il existe une spécification? Je n'ai rien trouvé jusqu'ici, toute aide serait grandement appréciée!

Répondre

12

Je pense que vous devriez commencer votre recherche au JDK sources. Il y a des commentaires très utiles là-bas. E.g.

/* 
     * 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 } 
     */ 
Questions connexes