mcryptmodule.java

来自「RESIN 3.2 最新源码」· Java 代码 · 共 695 行 · 第 1/2 页

JAVA
695
字号
  }  /**   * Initialize encrption   */  public static boolean mcrypt_generic_deinit(Mcrypt mcrypt)  {    if (mcrypt == null)      return false;    else      return mcrypt.deinit();  }  /**   * Initialize encrption   */  public static Value mcrypt_generic_init(Mcrypt mcrypt,                                          byte []key,                                          byte []iv)  {    if (mcrypt == null)      return BooleanValue.FALSE;    else      return new LongValue(mcrypt.init(key, iv));  }  /**   * Closes the module   */  public static boolean mcrypt_generic_end(Mcrypt mcrypt)  {    if (mcrypt == null)      return false;    else {      mcrypt.close();      return true;    }  }  /*   * Returns the IV size.   */  public static Value mcrypt_get_block_size(Env env,                                            String cipher,                                            String mode)  {    try {      Mcrypt mcrypt = new Mcrypt(env, cipher, mode);            return LongValue.create(mcrypt.get_block_size());    } catch (Exception e) {      log.log(Level.FINE, e.getMessage(), e);            return BooleanValue.FALSE;    }  }    /*   * Returns the cipher name.   */  @ReturnNullAsFalse  public static String mcrypt_get_cipher_name(Env env, String cipher)  {    try {      Mcrypt mcrypt = new Mcrypt(env, cipher, "cbc");          return mcrypt.get_algorithms_name();    } catch (Exception e) {      log.log(Level.FINE, e.getMessage(), e);            return null;    }  }    /*   * Returns the IV size.   */  public static Value mcrypt_get_iv_size(Env env, String cipher, String mode)  {    try {      Mcrypt mcrypt = new Mcrypt(env, cipher, mode);            return LongValue.create(mcrypt.get_iv_size());    } catch (Exception e) {      log.log(Level.FINE, e.getMessage(), e);            return BooleanValue.FALSE;    }  }    /*   * Returns the key size.   */  public static Value mcrypt_get_key_size(Env env, String cipher, String mode)  {    try {      Mcrypt mcrypt = new Mcrypt(env, cipher, mode);            return LongValue.create(mcrypt.get_key_size());    } catch (Exception e) {      log.log(Level.FINE, e.getMessage(), e);            return BooleanValue.FALSE;    }  }    private static final String []ALGORITHMS = {    MCRYPT_ARCFOUR, MCRYPT_BLOWFISH,  MCRYPT_DES, MCRYPT_3DES,    MCRYPT_RC4, MCRYPT_RIJNDAEL_128, MCRYPT_RIJNDAEL_192,    MCRYPT_RIJNDAEL_256  };  /**   * Lists the available algorithms   */  public static Value mcrypt_list_algorithms(Env env)  {    ArrayValue array = new ArrayValueImpl();    for (int i = 0; i < ALGORITHMS.length; i++) {      try {        Mcrypt mcrypt = new Mcrypt(env, ALGORITHMS[i], "cbc");        array.put(mcrypt.get_algorithms_name());      } catch (Throwable e) {      }    }    return array;  }  /**   * Lists the available modes.   */  public static Value mcrypt_list_modes(Env env)  {    ArrayValue array = new ArrayValueImpl();    array.put(MCRYPT_MODE_ECB);    array.put(MCRYPT_MODE_CBC);    array.put(MCRYPT_MODE_CFB);    array.put(MCRYPT_MODE_OFB);    array.put(MCRYPT_MODE_NOFB);    return array;  }  /**   * Closes the module   */  public static boolean mcrypt_module_close(Mcrypt mcrypt)  {    if (mcrypt == null)      return false;    else {      mcrypt.close();      return true;    }  }  /**   * Returns the block size for an algorithm.   */  public static int mcrypt_module_get_algo_block_size(Env env,                                                      String cipher,                                                      @Optional String libDir)  {    try {      Mcrypt mcrypt = new Mcrypt(env, cipher, "cbc");      return mcrypt.get_block_size();    } catch (Exception e) {      env.error(e);      return -1;    }  }  /**   * Returns the key size for an algorithm.   */  public static int mcrypt_module_get_algo_key_size(Env env,                                                    String cipher,                                                    @Optional String libDir)  {    try {      Mcrypt mcrypt = new Mcrypt(env, cipher, "cbc");      return mcrypt.get_key_size();    } catch (Exception e) {      env.error(e);      return -1;    }  }  /**   * Returns the key size for an algorithm.   */  public static Value mcrypt_module_get_supported_key_sizes(Env env,                                                            String cipher,                                                            @Optional String libDir)  {    try {      Mcrypt mcrypt = new Mcrypt(env, cipher, "cbc");      return mcrypt.get_supported_key_sizes();    } catch (Exception e) {      env.error(e);      return BooleanValue.FALSE;    }  }  /**   * Returns true for block algorithms   */  public static boolean mcrypt_module_is_block_algorithm(Env env,                                                         String cipher,                                                         @Optional String libDir)  {    try {      Mcrypt mcrypt = new Mcrypt(env, cipher, "cbc");      return mcrypt.is_block_algorithm();    } catch (Exception e) {      env.error(e);      return false;    }  }  /**   * Returns true for block modes   */  public static boolean mcrypt_module_is_block_algorithm_mode(Env env,                                                              String mode,                                                              @Optional String libDir)  {    try {      Mcrypt mcrypt = new Mcrypt(env, "des", mode);      return mcrypt.is_block_algorithm_mode();    } catch (Exception e) {      env.error(e);      return false;    }  }  /**   * Returns true for block modes   */  public static boolean mcrypt_module_is_block_mode(Env env,                                                    String mode,                                                    @Optional String libDir)  {    try {      Mcrypt mcrypt = new Mcrypt(env, "des", mode);      return mcrypt.is_block_mode();    } catch (Exception e) {      env.error(e);      return false;    }  }  /**   * Returns true for block modes   */  public static boolean mcrypt_module_self_test(Env env,                                                String algorithm,                                                Path libDir)  {    try {      Mcrypt mcrypt = new Mcrypt(env, algorithm, "cbc");      return true;    } catch (Exception e) {      env.error(e);      return false;    }  }  /**   * Open a new mcrypt object.   */  public static Value mcrypt_module_open(Env env,                                         String algorithm,                                         Path algorithm_directory,                                         String mode,                                         Path mode_directory)  {    try {      return env.wrapJava(new Mcrypt(env, algorithm, mode));    } catch (Exception e) {      env.error(e);      return BooleanValue.FALSE;    }  }  /**   * Encrypt with ofb   */  public static StringValue mcrypt_ofb(Env env,                                  String cipher,                                  byte []key,                                  byte []data,                                  int mode,                                  @Optional byte []iv)  {    try {      Mcrypt mcrypt = new Mcrypt(env, cipher, "ofb");      mcrypt.init(key, iv);      byte []result;            if (mode == MCRYPT_ENCRYPT)        result = mcrypt.encrypt(data);      else        result = mcrypt.decrypt(data);            return env.createBinaryBuilder(result);    } catch (Exception e) {      throw new RuntimeException(e);    }  }  /**   * Initialize encrption   */  public static Value mdecrypt_generic(Env env, Mcrypt mcrypt, byte []data)  {    if (mcrypt == null)      return BooleanValue.FALSE;    else      return env.createBinaryBuilder(mcrypt.decrypt(data));  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?