2

JSCH API を使用して RSA SSH キーの長さを調べています。

これを行うには、次のコードを使用します。

KeyPairRSA KPR = (KeyPairRSA) KeyPairRSA.load(jsch, keypath);
System.out.println("size " +KPR.getKeySize());

これは常に長さ 1024 を返します。API 自体のバグだと思います。RSA/DSA SSH キーの長さを調べる方法を教えてください。

よろしくお願いします。

4

1 に答える 1

3

私はJSchの作者です。

これはバグまたは KeyPair* クラスの不完全性です。それらは、鍵ペア生成の目的で導入されたばかりです。しかし、社内開発版では KeyPair* クラスがオーバーホールされ、そのメソッドはうまく機能しています。

# これはトピック外ですが、おまけとして、Putty の秘密鍵形式のサポートを追加しました! :-)

いずれにせよ、修正は次のリリースで利用可能になります。それを待てない場合は、KeyPairRSA#getKeySize() を次のように置き換えます。

public int getKeySize(){
  return (new java.math.BigInteger(n_array)).bitLength();
}
于 2012-09-25T04:58:28.213 に答える