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