InvalidKeyException Недопустимый размер ключа

У меня есть тест, который отлично работает на моем MacBook Pro для разработки, но не работает на сервере TeamCity с непрерывной интеграцией.

Ошибка следующая:

java.security.InvalidKeyException: Illegal key size
    at javax.crypto.Cipher.a(DashoA13*..)
    at javax.crypto.Cipher.init(DashoA13*..)
    at javax.crypto.Cipher.init(DashoA13*..)

Оба блока разработки и TeamCity использует Java 1.6, а я использую библиотеку BouncyCastle для необходимости специального шифрования AES.

Код следующий:

private byte[] aesEncryptedInfo(String info) throws UnsupportedEncodingException, IllegalBlockSizeException, BadPaddingException, InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException, InvalidParameterSpecException, InvalidAlgorithmParameterException, NoSuchProviderException {
    Security.addProvider(new BouncyCastleProvider());
    SecretKey secret = new SecretKeySpec(CUSTOMLONGSECRETKEY.substring(0, 32).getBytes(), "AES");
    Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding", "BC");
    cipher.init(Cipher.ENCRYPT_MODE, secret, new IvParameterSpec(VECTOR_SECRET_KEY.getBytes()));
    return cipher.doFinal(info.getBytes("UTF-8"));
}

ОБНОВЛЕНИЕ

Похоже, согласно выбранному ответу, мне нужно что-то изменить в моей установке TeamCity и возможно, это повлияет на установку некоторых пользователей - так что это не лучший выбор, мне нужно переключиться на другую криптографическую библиотеку, чтобы сделать это без ограничений. Так что, вероятно, надувной замок поможет.

ОБНОВЛЕНИЕ 2

Я фактически переключился на использование BouncyCastle, чтобы избежать этого ограничения. Обратите внимание, что это работает, только если вы напрямую используете собственные классы BC, а не поставщик BC.

57
задан Vladimir 16 September 2011 в 19:03
поделиться