Search in sources :

Example 6 with CFBBlockCipher

use of org.bouncycastle.crypto.modes.CFBBlockCipher in project XobotOS by xamarin.

the class JCEBlockCipher method engineSetMode.

protected void engineSetMode(String mode) throws NoSuchAlgorithmException {
    modeName = Strings.toUpperCase(mode);
    if (modeName.equals("ECB")) {
        ivLength = 0;
        cipher = new BufferedGenericBlockCipher(baseEngine);
    } else if (modeName.equals("CBC")) {
        ivLength = baseEngine.getBlockSize();
        cipher = new BufferedGenericBlockCipher(new CBCBlockCipher(baseEngine));
    } else if (modeName.startsWith("OFB")) {
        ivLength = baseEngine.getBlockSize();
        if (modeName.length() != 3) {
            int wordSize = Integer.parseInt(modeName.substring(3));
            cipher = new BufferedGenericBlockCipher(new OFBBlockCipher(baseEngine, wordSize));
        } else {
            cipher = new BufferedGenericBlockCipher(new OFBBlockCipher(baseEngine, 8 * baseEngine.getBlockSize()));
        }
    } else if (modeName.startsWith("CFB")) {
        ivLength = baseEngine.getBlockSize();
        if (modeName.length() != 3) {
            int wordSize = Integer.parseInt(modeName.substring(3));
            cipher = new BufferedGenericBlockCipher(new CFBBlockCipher(baseEngine, wordSize));
        } else {
            cipher = new BufferedGenericBlockCipher(new CFBBlockCipher(baseEngine, 8 * baseEngine.getBlockSize()));
        }
    } else // END android-removed
    if (modeName.startsWith("SIC")) {
        ivLength = baseEngine.getBlockSize();
        if (ivLength < 16) {
            throw new IllegalArgumentException("Warning: SIC-Mode can become a twotime-pad if the blocksize of the cipher is too small. Use a cipher with a block size of at least 128 bits (e.g. AES)");
        }
        cipher = new BufferedGenericBlockCipher(new BufferedBlockCipher(new SICBlockCipher(baseEngine)));
    } else if (modeName.startsWith("CTR")) {
        ivLength = baseEngine.getBlockSize();
        cipher = new BufferedGenericBlockCipher(new BufferedBlockCipher(new SICBlockCipher(baseEngine)));
    } else if (modeName.startsWith("GOFB")) {
        ivLength = baseEngine.getBlockSize();
        cipher = new BufferedGenericBlockCipher(new BufferedBlockCipher(new GOFBBlockCipher(baseEngine)));
    } else if (modeName.startsWith("CTS")) {
        ivLength = baseEngine.getBlockSize();
        cipher = new BufferedGenericBlockCipher(new CTSBlockCipher(new CBCBlockCipher(baseEngine)));
    } else if (modeName.startsWith("CCM")) {
        ivLength = baseEngine.getBlockSize();
        cipher = new AEADGenericBlockCipher(new CCMBlockCipher(baseEngine));
    } else // END android-removed
    if (modeName.startsWith("GCM")) {
        ivLength = baseEngine.getBlockSize();
        cipher = new AEADGenericBlockCipher(new GCMBlockCipher(baseEngine));
    } else {
        throw new NoSuchAlgorithmException("can't support mode " + mode);
    }
}
Also used : GOFBBlockCipher(org.bouncycastle.crypto.modes.GOFBBlockCipher) OFBBlockCipher(org.bouncycastle.crypto.modes.OFBBlockCipher) CCMBlockCipher(org.bouncycastle.crypto.modes.CCMBlockCipher) SICBlockCipher(org.bouncycastle.crypto.modes.SICBlockCipher) NoSuchAlgorithmException(java.security.NoSuchAlgorithmException) CFBBlockCipher(org.bouncycastle.crypto.modes.CFBBlockCipher) BufferedBlockCipher(org.bouncycastle.crypto.BufferedBlockCipher) PaddedBufferedBlockCipher(org.bouncycastle.crypto.paddings.PaddedBufferedBlockCipher) CTSBlockCipher(org.bouncycastle.crypto.modes.CTSBlockCipher) CBCBlockCipher(org.bouncycastle.crypto.modes.CBCBlockCipher) GOFBBlockCipher(org.bouncycastle.crypto.modes.GOFBBlockCipher) GCMBlockCipher(org.bouncycastle.crypto.modes.GCMBlockCipher)

Example 7 with CFBBlockCipher

use of org.bouncycastle.crypto.modes.CFBBlockCipher in project rxlib by RockyLOMO.

the class CamelliaCrypt method getCipher.

@Override
protected StreamBlockCipher getCipher(boolean isEncrypted) throws InvalidAlgorithmParameterException {
    CamelliaEngine engine = new CamelliaEngine();
    StreamBlockCipher cipher;
    if (_name.equals(CIPHER_CAMELLIA_128_CFB)) {
        cipher = new CFBBlockCipher(engine, getIVLength() * 8);
    } else if (_name.equals(CIPHER_CAMELLIA_192_CFB)) {
        cipher = new CFBBlockCipher(engine, getIVLength() * 8);
    } else if (_name.equals(CIPHER_CAMELLIA_256_CFB)) {
        cipher = new CFBBlockCipher(engine, getIVLength() * 8);
    } else {
        throw new InvalidAlgorithmParameterException(_name);
    }
    return cipher;
}
Also used : StreamBlockCipher(org.bouncycastle.crypto.StreamBlockCipher) CFBBlockCipher(org.bouncycastle.crypto.modes.CFBBlockCipher) InvalidAlgorithmParameterException(java.security.InvalidAlgorithmParameterException) CamelliaEngine(org.bouncycastle.crypto.engines.CamelliaEngine)

Example 8 with CFBBlockCipher

use of org.bouncycastle.crypto.modes.CFBBlockCipher in project rxlib by RockyLOMO.

the class SeedCrypt method getCipher.

@Override
protected StreamBlockCipher getCipher(boolean isEncrypted) throws InvalidAlgorithmParameterException {
    SEEDEngine engine = new SEEDEngine();
    StreamBlockCipher cipher;
    if (_name.equals(CIPHER_SEED_CFB)) {
        cipher = new CFBBlockCipher(engine, getIVLength() * 8);
    } else {
        throw new InvalidAlgorithmParameterException(_name);
    }
    return cipher;
}
Also used : StreamBlockCipher(org.bouncycastle.crypto.StreamBlockCipher) CFBBlockCipher(org.bouncycastle.crypto.modes.CFBBlockCipher) InvalidAlgorithmParameterException(java.security.InvalidAlgorithmParameterException) SEEDEngine(org.bouncycastle.crypto.engines.SEEDEngine)

Aggregations

CFBBlockCipher (org.bouncycastle.crypto.modes.CFBBlockCipher)8 InvalidAlgorithmParameterException (java.security.InvalidAlgorithmParameterException)4 StreamBlockCipher (org.bouncycastle.crypto.StreamBlockCipher)4 OFBBlockCipher (org.bouncycastle.crypto.modes.OFBBlockCipher)4 NoSuchAlgorithmException (java.security.NoSuchAlgorithmException)3 BufferedBlockCipher (org.bouncycastle.crypto.BufferedBlockCipher)3 CBCBlockCipher (org.bouncycastle.crypto.modes.CBCBlockCipher)3 AESFastEngine (org.bouncycastle.crypto.engines.AESFastEngine)2 CCMBlockCipher (org.bouncycastle.crypto.modes.CCMBlockCipher)2 CTSBlockCipher (org.bouncycastle.crypto.modes.CTSBlockCipher)2 GCMBlockCipher (org.bouncycastle.crypto.modes.GCMBlockCipher)2 SICBlockCipher (org.bouncycastle.crypto.modes.SICBlockCipher)2 PaddedBufferedBlockCipher (org.bouncycastle.crypto.paddings.PaddedBufferedBlockCipher)2 BlowfishEngine (org.bouncycastle.crypto.engines.BlowfishEngine)1 CamelliaEngine (org.bouncycastle.crypto.engines.CamelliaEngine)1 SEEDEngine (org.bouncycastle.crypto.engines.SEEDEngine)1 GOFBBlockCipher (org.bouncycastle.crypto.modes.GOFBBlockCipher)1 KeyParameter (org.bouncycastle.crypto.params.KeyParameter)1 ParametersWithIV (org.bouncycastle.crypto.params.ParametersWithIV)1