Ejemplo n.º 1
0
  protected void engineInit(Key key, AlgorithmParameterSpec params)
      throws InvalidKeyException, InvalidAlgorithmParameterException {
    CipherParameters param;

    if (key == null) {
      throw new InvalidKeyException("key is null");
    }

    if (key instanceof JCEPBEKey) {
      JCEPBEKey k = (JCEPBEKey) key;

      if (k.getParam() != null) {
        param = k.getParam();
      } else if (params instanceof PBEParameterSpec) {
        param = PBE.Util.makePBEMacParameters(k, params);
      } else {
        throw new InvalidAlgorithmParameterException("PBE requires PBE parameters to be set.");
      }
    } else if (params instanceof IvParameterSpec) {
      param =
          new ParametersWithIV(
              new KeyParameter(key.getEncoded()), ((IvParameterSpec) params).getIV());
    } else if (params == null) {
      param = new KeyParameter(key.getEncoded());
    } else {
      throw new InvalidAlgorithmParameterException("unknown parameter type.");
    }

    macEngine.init(param);
  }
 protected void engineInit(
     int paramInt,
     Key paramKey,
     AlgorithmParameterSpec paramAlgorithmParameterSpec,
     SecureRandom paramSecureRandom) {
   Object localObject;
   if ((paramKey instanceof BCPBEKey)) {
     paramKey = (BCPBEKey) paramKey;
     if ((paramAlgorithmParameterSpec instanceof PBEParameterSpec)) {
       localObject = PBE.Util.ˊ(paramKey, paramAlgorithmParameterSpec, this.aXL.iG());
     } else if (paramKey.nU() != null) {
       localObject = paramKey.nU();
     } else {
       throw new InvalidAlgorithmParameterException("PBE requires PBE parameters to be set.");
     }
   } else {
     localObject = new KeyParameter(paramKey.getEncoded());
   }
   paramKey = (Key) localObject;
   if ((paramAlgorithmParameterSpec instanceof IvParameterSpec)) {
     paramKey =
         new ParametersWithIV(
             (CipherParameters) localObject,
             ((IvParameterSpec) paramAlgorithmParameterSpec).getIV());
   }
   paramAlgorithmParameterSpec = paramKey;
   if ((paramKey instanceof KeyParameter)) {
     paramAlgorithmParameterSpec = paramKey;
     if (this.aYU != 0) {
       this.iv = new byte[this.aYU];
       paramSecureRandom.nextBytes(this.iv);
       paramAlgorithmParameterSpec = new ParametersWithIV(paramKey, this.iv);
     }
   }
   paramKey = paramAlgorithmParameterSpec;
   if (paramSecureRandom != null) {
     paramKey = new ParametersWithRandom(paramAlgorithmParameterSpec, paramSecureRandom);
   }
   switch (paramInt) {
     default:
       break;
     case 3:
       this.aXL.ˊ(true, paramKey);
       return;
     case 4:
       this.aXL.ˊ(false, paramKey);
       return;
     case 1:
     case 2:
       throw new IllegalArgumentException("engine only valid for wrapping");
   }
   System.out.println("eeek!");
 }
Ejemplo n.º 3
0
  protected void engineInit(int opmode, Key key, AlgorithmParameterSpec params, SecureRandom random)
      throws InvalidKeyException, InvalidAlgorithmParameterException {
    CipherParameters param;

    if (key instanceof BCPBEKey) {
      BCPBEKey k = (BCPBEKey) key;

      if (params instanceof PBEParameterSpec) {
        param = PBE.Util.makePBEParameters(k, params, wrapEngine.getAlgorithmName());
      } else if (k.getParam() != null) {
        param = k.getParam();
      } else {
        throw new InvalidAlgorithmParameterException("PBE requires PBE parameters to be set.");
      }
    } else {
      param = new KeyParameter(key.getEncoded());
    }

    if (params instanceof IvParameterSpec) {
      IvParameterSpec iv = (IvParameterSpec) params;
      param = new ParametersWithIV(param, iv.getIV());
    }

    if (param instanceof KeyParameter && ivSize != 0) {
      iv = new byte[ivSize];
      random.nextBytes(iv);
      param = new ParametersWithIV(param, iv);
    }

    switch (opmode) {
      case Cipher.WRAP_MODE:
        wrapEngine.init(true, param);
        break;
      case Cipher.UNWRAP_MODE:
        wrapEngine.init(false, param);
        break;
      case Cipher.ENCRYPT_MODE:
      case Cipher.DECRYPT_MODE:
        throw new IllegalArgumentException("engine only valid for wrapping");
      default:
        System.out.println("eeek!");
    }
  }