1

この行で jar に署名しようとすると:

jarsigner -storetype pkcs12 -keystore cert_comodo.pfx MyJar.jar "le-01234567-0123-0123-0123-0123456789ab"

パスワードの入力を求められ、すべて正常に機能します。この ant ターゲットで署名しようとすると:

<target name="sign_jars" depends="obfuscated_jar">
    <signjar 
            keystore="cert_comodo.pfx"
            alias="le-01234567-0123-0123-0123-0123456789ab"
            storepass="A, pa$$." <Not my real password or alias, btw>
            storetype="pkcs12">
        <path>
            <fileset dir="." includes="*.jar" />
        </path>
    </signjar>
</target>

次のエラーが表示されます。

[signjar] jarsigner error: java.lang.RuntimeException: keystore load: failed t
o decrypt safe contents entry: javax.crypto.BadPaddingException: Given final blo
ck not properly padded

これは、パスワードを間違って入力した場合と同じエラーです。

パスワードの$文字が何らかの形で Ant によって変更されているのでしょうか? アリをだましてパスワードをインタラクティブに入力させる方法はありますか? ありがとう!

4

1 に答える 1

0

この問題は、エスケープされたシングルとして表示され、実際のパスワード文字列をjarsignerに渡すことantが原因である可能性があります。それでも問題が解決しない場合は、パスワードを2秒間に変更してエスケープしてみてください。$$$A, pa$A, pa$$$$$

ApacheAnt™タスク設計ガイドラインからのいくつかの追加ドキュメント:

... Ant 1.5は、単一のドル記号「$」を文字列で渡します。Ant1.4以前はそれを取り除きます。この修正を適用するには、最初に現在の動作を公開するテストスイートを作成し、次に単一の「$」が渡されるように何かを変更する必要がありましたが、下位互換性のために二重の「$$」が「$」にマップされました。

于 2013-03-13T18:00:15.423 に答える