2012-05-31 8 views
8

Javaで使用されるキーストアフォーマットJKSの正式な仕様が存在するかどうかは疑問でしたか?私はPKCS#12から/へのコンバータを書くが、Javaではそうではないので、keytoolやJavaコードは残念なことにオプションではない。JKSキーストアフォーマットの指定

16進エディタで1つを見ると、おそらくASN.1ではないことがわかります。 OpenJDKを掘り下げて、フォーマットをリバースエンジニアリングしようとする前に、誰かがスペックが存在するかどうかを知っていますか?私はこれまで何も見つけることができなかった、どんな助けも大いに評価されるだろう!

答えて

12

私はあなたの研究をJDK sourcesで始めるべきだと思います。そこには非常に有用なコメントがいくつかあります。 など。

/* 
     * 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 } 
     */ 
関連する問題