title: How to add PBKDF2WithHmacSHA1 for android api 8 (Froyo)
body: <p>i need some help. I am writing app and need to use "PBKDF2WithHmacSHA1" algorithm (cannot change server side). but that don't work in android (not supported), but then i create android-maven project in eclipse it works fine on Gingerbread, and newest. but on Froyo don't. i try add security provider which have that algorithm but nothing. i can see it in avaylable list, but can't get instance of it. I event try spoungycastle (recompiled bouncecastle), SunJCE. Maybe you have same proposal how to fix it? o some workaroud?</p>
  
  <p>in this line i get error</p>
  
  <pre><code>SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");
  </code></pre>
  
  <p>Error:</p>
  
  <pre><code>W/System.err( 1225): java.security.NoSuchAlgorithmException: SecretKeyFactory PBKDF2WithHmacSHA1 implementation not found:
  W/System.err( 1225):    at java.security.Provider$Service.newInstance(Provider.java:1100)
  W/System.err( 1225):    at org.apache.harmony.security.fortress.Engine.getInstance(Engine.java:112)
  W/System.err( 1225):    at javax.crypto.SecretKeyFactory.getInstance(SecretKeyFactory.java:111)
  W/System.err( 1225):    at com.ii.app.AppActivity.onCreate(AppActivity.java:46)
  W/System.err( 1225):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
  W/System.err( 1225):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
  W/System.err( 1225):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
  W/System.err( 1225):    at android.app.ActivityThread.access$2300(ActivityThread.java:125)
  W/System.err( 1225):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
  W/System.err( 1225):    at android.os.Handler.dispatchMessage(Handler.java:99)
  W/System.err( 1225):    at android.os.Looper.loop(Looper.java:123)
  W/System.err( 1225):    at android.app.ActivityThread.main(ActivityThread.java:4627)
  W/System.err( 1225):    at java.lang.reflect.Method.invokeNative(Native Method)
  W/System.err( 1225):    at java.lang.reflect.Method.invoke(Method.java:521)
  W/System.err( 1225):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
  W/System.err( 1225):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
  W/System.err( 1225):    at dalvik.system.NativeStart.main(Native Method)
  W/System.err( 1225): Caused by: java.lang.NullPointerException
  W/System.err( 1225):    at com.sun.crypto.provider.SunJCE$2.run(DashoA13*..)
  W/System.err( 1225):    at java.security.AccessController.doPrivilegedImpl(AccessController.java:264)
  W/System.err( 1225):    at java.security.AccessController.doPrivileged(AccessController.java:84)
  W/System.err( 1225):    at com.sun.crypto.provider.SunJCE.c(DashoA13*..)
  W/System.err( 1225):    at com.sun.crypto.provider.SunJCE.b(DashoA13*..)
  W/System.err( 1225):    at com.sun.crypto.provider.PBKDF2HmacSHA1Factory.&lt;init&gt;(DashoA13*..)
  W/System.err( 1225):    at java.lang.Class.newInstanceImpl(Native Method)
  W/System.err( 1225):    at java.lang.Class.newInstance(Class.java:1429)
  W/System.err( 1225):    at java.security.Provider$Service.newInstance(Provider.java:1098)
  W/System.err( 1225):    ... 16 more
  </code></pre>