0

誰かがAndroid携帯にHmac-Whirlpoolを実装または使用していますか?インターネットでwhirlpool.java
を見つけましたが、AndroidSDKのデフォルトのセキュリティプロバイダーにはWhirlpoolもHmac-Whirlpoolもありません。

4

1 に答える 1

0

AndroidにはBouncyCastleのカットダウンバージョンがあり、org.bouncycastle.crypto.macs.HMacクラスへのアクセスを許可していないようです。代わりに、javax.crypto.Mac.getInstance(Stringアルゴリズム)を使用する必要があります(ここ)。ここでも、一部のMACアルゴリズムのみが許可されているようです(「HMAC-SHA512」が機能しているのを見ました)。ただし、SpongyCastleライブラリを使用する場合は、次のように実行できます(ここ)。

        CipherParameters p = new KeyParameter(key.getBytes("UTF-8"));

        WhirlpoolDigest w = new WhirlpoolDigest();
        HMac hm = new HMac(w);
        hm.init(p);
        hm.update(inbytes, 0, inbytes.length);
        byte[] result = new byte[hm.getMacSize()];
        hm.doFinal(result, 0);

SpongyCastleを含めると、Android 2.2でアプリのサイズが1.84MB増加するため、多くの人にとって問題になる可能性があります。次に、関連するファイルのみをプロジェクトにインポートできます。

// インターフェイス
org.bouncycastle.crypto.CipherParametersorg.bouncycastle.crypto.Digestorg.bouncycastle.crypto.ExtendedDigest
org.bouncycastle.crypto.Mac
_

// クラス
org.bouncycastle.crypto.params.KeyParameterorg.bouncycastle.crypto.digests.WhirlpoolDigestorg.bouncycastle.crypto.macs.HMac
org.bouncycastle.crypto.DataLengthException
org.bouncycastle.crypto.RuntimeCryptoException
_

于 2011-06-29T03:58:43.157 に答える