2011-06-27 7 views
0

Android携帯でHmac-Whirlpoolを実装している人はいますか?
インターネットでwhirlpool.javaが見つかりましたが、Android SDKのデフォルトのセキュリティプロバイダはWhirlpoolもHmac-Whirlpoolも持っていないようです。AndroidでのHMAC-Whirlpoolの実装

答えて

0

AndroidはBouncy Castleをカットダウンしており、org.bouncycastle.crypto.macs.HMacクラスへのアクセスを許可していないようですが、代わりにjavax.crypto.Mac.getInstance(文字列アルゴリズム)を使用してください(here)。再度いくつかのMACアルゴリズムだけが許可されているようです(私は "HMAC-SHA512"が動作しているのを見た)。しかし、あなたはSpongyCastleライブラリを使用することにした場合、あなたはこの(here)を行うことができます。それは、Android 2.2で1.84メガバイトで、アプリのサイズを増加させたbecuase

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); 

は、多くの問題が生じることがあります。そして、唯一の関連ファイルをプロジェクトにインポートすることができます

//インターフェース
org.bouncycastle.crypto.CipherParameters
org.bouncycastle.crypto.Digest
org.bouncycastle.crypto.ExtendedDigest
org.bouncycastle .crypto.Mac

//クラス
org.bouncycastle.crypto.params.KeyParameter
org.bouncycastle.crypto.digests.WhirlpoolDigest
org.bouncyca stle.crypto.macs.HMac
org.bouncycastle.crypto.DataLengthException
org.bouncycastle.crypto.RuntimeCryptoException