CustomPasswordDigest.java
上传用户:szyujian
上传日期:2016-09-20
资源大小:320k
文件大小:2k
源码类别:

android开发

开发平台:

C/C++

  1. /*
  2.  * Copyright (C) 2008 Esmertec AG.
  3.  * Copyright (C) 2008 The Android Open Source Project
  4.  *
  5.  * Licensed under the Apache License, Version 2.0 (the "License");
  6.  * you may not use this file except in compliance with the License.
  7.  * You may obtain a copy of the License at
  8.  *
  9.  *      http://www.apache.org/licenses/LICENSE-2.0
  10.  *
  11.  * Unless required by applicable law or agreed to in writing, software
  12.  * distributed under the License is distributed on an "AS IS" BASIS,
  13.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14.  * See the License for the specific language governing permissions and
  15.  * limitations under the License.
  16.  */
  17. package com.android.im.imps;
  18. import com.android.im.engine.ImException;
  19. import com.android.im.plugin.IPasswordDigest;
  20. import android.os.RemoteException;
  21. import dalvik.system.PathClassLoader;
  22. public class CustomPasswordDigest implements PasswordDigest {
  23.     private IPasswordDigest mPasswordDigest;
  24.     public CustomPasswordDigest(String pluginPath, String implClass) throws ImException {
  25.         PathClassLoader classLoader = new PathClassLoader(pluginPath,
  26.                 getClass().getClassLoader());
  27.         try {
  28.             Class cls = classLoader.loadClass(implClass);
  29.             mPasswordDigest = (IPasswordDigest)cls.newInstance();
  30.         } catch (ClassNotFoundException e) {
  31.             throw new ImException(e);
  32.         } catch (IllegalAccessException e) {
  33.             throw new ImException(e);
  34.         } catch (InstantiationException e) {
  35.             throw new ImException(e);
  36.         }
  37.     }
  38.     public String digest(String schema, String nonce, String password) throws ImException {
  39.         try {
  40.             return mPasswordDigest.digest(schema, nonce, password);
  41.         } catch (RemoteException e) {
  42.             throw new ImException(e);
  43.         }
  44.     }
  45.     public String[] getSupportedDigestSchema() {
  46.         try {
  47.             return mPasswordDigest.getSupportedDigestSchema();
  48.         } catch (RemoteException e) {
  49.             return new String[0];
  50.         }
  51.     }
  52. }