private Cipher makeCipher()

in src/main/java/com/google/cloud/solutions/bqremoteencryptionfn/fns/AesFn.java [130:149]


  private Cipher makeCipher(int opMode) throws GeneralSecurityException {

    var keyBytes =
        switch (keyType) {
          case UTF8_KEY -> keyString.getBytes(StandardCharsets.UTF_8);
          case BASE64_KEY -> BaseEncoding.base64().decode(keyString);
        };

    var secretKey = new SecretKeySpec(keyBytes, "AES");
    var cipher = Cipher.getInstance(cipherTransformType);

    if (!cipherTransformType.toUpperCase().contains("ECB")) {
      var ivBytes = Base64.getDecoder().decode(ivParameterBase64);
      cipher.init(opMode, secretKey, new IvParameterSpec(ivBytes));
    } else {
      cipher.init(opMode, secretKey);
    }

    return cipher;
  }