Top Description Inners Fields Constructors Methods
org.bouncycastle.crypto.general

public final Class Blowfish

extends Object
Class Inheritance
Imports
java.security.SecureRandom, org.bouncycastle.crypto.Algorithm, .IllegalKeyException, .SymmetricKey, .SymmetricSecretKey, org.bouncycastle.crypto.internal.BlockCipher, .BufferedBlockCipher, .KeyGenerationParameters, .Mac, .ValidatedSymmetricKey, org.bouncycastle.crypto.internal.modes.AEADBlockCipher, org.bouncycastle.crypto.internal.params.KeyParameter, .KeyParameterImpl, org.bouncycastle.util.Arrays, org.bouncycastle.util.encoders.Hex

Source class for implementations of Blowfish based algorithms.

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static class
Blowfish.AEADOperatorFactory

Factory for Blowfish AEAD encryption/decryption operators.

public static class
Blowfish.AuthParameters

Parameters for Blowfish AEAD and MAC modes..

private static class
public static class
Blowfish.KeyGenerator

Blowfish key generator.

public static class
Blowfish.MACOperatorFactory

Factory for producing Blowfish MAC calculators.

public static class
Blowfish.OperatorFactory

Factory for basic Blowfish encryption/decryption operators.

public static class
Blowfish.Parameters

Parameters for general Blowfish block cipher modes.

Field Summary

Modifier and TypeField and Description
public static final GeneralAlgorithm
ALGORITHM

Raw Blowfish algorithm, can be used for creating general purpose Blowfish keys.

public static final Blowfish.Parameters
CBC

Blowfish in cipher block chaining (CBC) mode.

public static final Blowfish.Parameters
CBCwithCS1

Blowfish in cipher block chaining mode cipher text stealing type 1.

public static final Blowfish.Parameters
CBCwithCS2

Blowfish in cipher block chaining mode cipher text stealing type 2.

public static final Blowfish.Parameters
CBCwithCS3

Blowfish in cipher block chaining mode cipher text stealing type 3.

public static final Blowfish.Parameters
CBCwithISO10126_2

Blowfish in cipher block chaining mode with ISO10126-2 padding.

public static final Blowfish.Parameters
CBCwithISO7816_4

Blowfish in cipher block chaining mode with ISO7816-4 padding.

public static final Blowfish.Parameters
CBCwithPKCS7

Blowfish in cipher block chaining mode with PKCS#7/PKCS#5 padding.

public static final Blowfish.Parameters
CBCwithTBC

Blowfish in cipher block chaining mode with trailing bit complement (TBC) padding.

public static final Blowfish.Parameters
CBCwithX923

Blowfish in cipher block chaining mode with X9.23 padding.

public static final Blowfish.Parameters
CFB64

Blowfish in cipher feedback (CFB) mode, 64 bit block size.

public static final Blowfish.Parameters
CFB8

Blowfish in cipher feedback (CFB) mode, 8 bit block size.

public static final Blowfish.AuthParameters
CMAC

Blowfish cipher-based MAC algorithm.

public static final Blowfish.Parameters
CTR

Blowfish in counter (CTR) mode.

public static final Blowfish.AuthParameters
EAX

Blowfish in EAX mode..

public static final Blowfish.Parameters
ECB

Blowfish in electronic code book (ECB) mode.

public static final Blowfish.Parameters
ECBwithISO10126_2

Blowfish in electronic code book mode with ISO10126-2 padding.

public static final Blowfish.Parameters
ECBwithISO7816_4

Blowfish in electronic code book mode with ISO7816-4 padding.

public static final Blowfish.Parameters
ECBwithPKCS7

Blowfish in electronic code book mode with PKCS#7/PKCS#5 padding.

public static final Blowfish.Parameters
ECBwithTBC

Blowfish in electronic code book mode with trailing bit complement (TBC) padding.

public static final Blowfish.Parameters
ECBwithX923

Blowfish in electronic code book mode with X9.23 padding.

private static final Blowfish.EngineProvider
public static final Blowfish.Parameters
OFB

Blowfish in output feedback (OFB) mode.

public static final Blowfish.Parameters
OpenPGPCFB

Blowfish in OpenPGP cipher feedback (CFB) mode.

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
private static boolean
invalidKeySize(int keyLength)

private static ValidatedSymmetricKey
validateKey(SymmetricKey key, Algorithm paramAlgorithm)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

ALGORITHMback to summary
public static final GeneralAlgorithm ALGORITHM

Raw Blowfish algorithm, can be used for creating general purpose Blowfish keys.

CBCback to summary
public static final Blowfish.Parameters CBC

Blowfish in cipher block chaining (CBC) mode.

CBCwithCS1back to summary
public static final Blowfish.Parameters CBCwithCS1

Blowfish in cipher block chaining mode cipher text stealing type 1.

CBCwithCS2back to summary
public static final Blowfish.Parameters CBCwithCS2

Blowfish in cipher block chaining mode cipher text stealing type 2.

CBCwithCS3back to summary
public static final Blowfish.Parameters CBCwithCS3

Blowfish in cipher block chaining mode cipher text stealing type 3.

CBCwithISO10126_2back to summary
public static final Blowfish.Parameters CBCwithISO10126_2

Blowfish in cipher block chaining mode with ISO10126-2 padding.

CBCwithISO7816_4back to summary
public static final Blowfish.Parameters CBCwithISO7816_4

Blowfish in cipher block chaining mode with ISO7816-4 padding.

CBCwithPKCS7back to summary
public static final Blowfish.Parameters CBCwithPKCS7

Blowfish in cipher block chaining mode with PKCS#7/PKCS#5 padding.

CBCwithTBCback to summary
public static final Blowfish.Parameters CBCwithTBC

Blowfish in cipher block chaining mode with trailing bit complement (TBC) padding.

CBCwithX923back to summary
public static final Blowfish.Parameters CBCwithX923

Blowfish in cipher block chaining mode with X9.23 padding.

CFB64back to summary
public static final Blowfish.Parameters CFB64

Blowfish in cipher feedback (CFB) mode, 64 bit block size.

CFB8back to summary
public static final Blowfish.Parameters CFB8

Blowfish in cipher feedback (CFB) mode, 8 bit block size.

CMACback to summary
public static final Blowfish.AuthParameters CMAC

Blowfish cipher-based MAC algorithm.

CTRback to summary
public static final Blowfish.Parameters CTR

Blowfish in counter (CTR) mode.

EAXback to summary
public static final Blowfish.AuthParameters EAX

Blowfish in EAX mode..

ECBback to summary
public static final Blowfish.Parameters ECB

Blowfish in electronic code book (ECB) mode.

ECBwithISO10126_2back to summary
public static final Blowfish.Parameters ECBwithISO10126_2

Blowfish in electronic code book mode with ISO10126-2 padding.

ECBwithISO7816_4back to summary
public static final Blowfish.Parameters ECBwithISO7816_4

Blowfish in electronic code book mode with ISO7816-4 padding.

ECBwithPKCS7back to summary
public static final Blowfish.Parameters ECBwithPKCS7

Blowfish in electronic code book mode with PKCS#7/PKCS#5 padding.

ECBwithTBCback to summary
public static final Blowfish.Parameters ECBwithTBC

Blowfish in electronic code book mode with trailing bit complement (TBC) padding.

ECBwithX923back to summary
public static final Blowfish.Parameters ECBwithX923

Blowfish in electronic code book mode with X9.23 padding.

ENGINE_PROVIDERback to summary
private static final Blowfish.EngineProvider ENGINE_PROVIDER
OFBback to summary
public static final Blowfish.Parameters OFB

Blowfish in output feedback (OFB) mode.

OpenPGPCFBback to summary
public static final Blowfish.Parameters OpenPGPCFB

Blowfish in OpenPGP cipher feedback (CFB) mode.

Constructor Detail

Blowfishback to summary
private Blowfish()

Method Detail

invalidKeySizeback to summary
private static boolean invalidKeySize(int keyLength)
validateKeyback to summary
private static ValidatedSymmetricKey validateKey(SymmetricKey key, Algorithm paramAlgorithm)
org.bouncycastle.crypto.general back to summary

public final Class Blowfish.AEADOperatorFactory

extends GuardedAEADOperatorFactory<Blowfish.AuthParameters>
Class Inheritance

Factory for Blowfish AEAD encryption/decryption operators.

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
protected AEADBlockCipher
Inherited from org.bouncycastle.crypto.general.GuardedAEADOperatorFactory:
createInputAEADDecryptorcreateOutputAEADDecryptorcreateOutputAEADEncryptor

Constructor Detail

AEADOperatorFactoryback to summary
public AEADOperatorFactory()

Method Detail

createAEADCipherback to summary
protected AEADBlockCipher createAEADCipher(boolean forEncryption, SymmetricKey key, Blowfish.AuthParameters parameters)

Implements abstract org.bouncycastle.crypto.general.GuardedAEADOperatorFactory.createAEADCipher.

Annotations
@Override
org.bouncycastle.crypto.general back to summary

public final Class Blowfish.AuthParameters

extends GeneralAuthParameters<Blowfish.AuthParameters>
Class Inheritance

Parameters for Blowfish AEAD and MAC modes..

Field Summary

Inherited from org.bouncycastle.crypto.general.GeneralAuthParameters:
macLenInBits

Constructor Summary

AccessConstructor and Description
private
AuthParameters(GeneralAlgorithm algorithm, byte[] iv, int macLenInBits)

pack-priv
AuthParameters(GeneralAlgorithm
algorithm mode.
algorithm
)

Base constructor - the algorithm, null IV.

Method Summary

Modifier and TypeMethod and Description
protected Blowfish.AuthParameters
create(GeneralAlgorithm algorithm, byte[] iv, int macSizeInBits)

Implements abstract org.bouncycastle.crypto.general.GeneralAuthParameters.create.

Inherited from org.bouncycastle.crypto.general.GeneralAuthParameters:
creategetMACSizeInBitswithIVwithMACSize

Constructor Detail

AuthParametersback to summary
private AuthParameters(GeneralAlgorithm algorithm, byte[] iv, int macLenInBits)
AuthParametersback to summary
pack-priv AuthParameters(GeneralAlgorithm algorithm)

Base constructor - the algorithm, null IV. In this case the tag length defaults to the 64 for CMAC, 32 bits otherwise.

Parameters
algorithm:GeneralAlgorithm

algorithm mode.

Method Detail

createback to summary
protected Blowfish.AuthParameters create(GeneralAlgorithm algorithm, byte[] iv, int macSizeInBits)

Implements abstract org.bouncycastle.crypto.general.GeneralAuthParameters.create.

org.bouncycastle.crypto.general back to summary

private final Class Blowfish.EngineProvider

extends Object
implements EngineProvider<BlockCipher>
Class Inheritance
All Implemented Interfaces
org.bouncycastle.crypto.internal.EngineProvider

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public BlockCipher
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Constructor Detail

EngineProviderback to summary
private EngineProvider()

Method Detail

createEngineback to summary
public BlockCipher createEngine()

Implements org.bouncycastle.crypto.internal.EngineProvider.createEngine.

org.bouncycastle.crypto.general back to summary

public final Class Blowfish.KeyGenerator

extends GuardedSymmetricKeyGenerator
Class Inheritance

Blowfish key generator.

Field Summary

Modifier and TypeField and Description
private final GeneralAlgorithm
private final int
private final SecureRandom

Constructor Summary

AccessConstructor and Description
public
KeyGenerator(int keySizeInBits, SecureRandom random)

public
KeyGenerator(GeneralParameters<T extends Algorithm> parameterSet, int keySizeInBits, SecureRandom random)

private
KeyGenerator(GeneralAlgorithm algorithm, int keySizeInBits, SecureRandom random)

Method Summary

Modifier and TypeMethod and Description
public SymmetricKey
Inherited from org.bouncycastle.crypto.general.GuardedSymmetricKeyGenerator:
generateKey

Field Detail

algorithmback to summary
private final GeneralAlgorithm algorithm
keySizeInBitsback to summary
private final int keySizeInBits
randomback to summary
private final SecureRandom random

Constructor Detail

KeyGeneratorback to summary
public KeyGenerator(int keySizeInBits, SecureRandom random)
KeyGeneratorback to summary
public KeyGenerator(GeneralParameters<T extends Algorithm> parameterSet, int keySizeInBits, SecureRandom random)
KeyGeneratorback to summary
private KeyGenerator(GeneralAlgorithm algorithm, int keySizeInBits, SecureRandom random)

Method Detail

doGenerateKeyback to summary
public SymmetricKey doGenerateKey()

Implements abstract org.bouncycastle.crypto.general.GuardedSymmetricKeyGenerator.doGenerateKey.

org.bouncycastle.crypto.general back to summary

public final Class Blowfish.MACOperatorFactory

extends GuardedMACOperatorFactory<Blowfish.AuthParameters>
Class Inheritance

Factory for producing Blowfish MAC calculators.

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
protected int
protected Mac
Inherited from org.bouncycastle.crypto.general.GuardedMACOperatorFactory:
createOutputMACCalculator

Constructor Detail

MACOperatorFactoryback to summary
public MACOperatorFactory()

Method Detail

calculateMACSizeback to summary
protected int calculateMACSize(Blowfish.AuthParameters parameters)

Implements abstract org.bouncycastle.crypto.general.GuardedMACOperatorFactory.calculateMACSize.

Annotations
@Override
createMACback to summary
protected Mac createMAC(SymmetricKey key, final Blowfish.AuthParameters parameters)

Implements abstract org.bouncycastle.crypto.general.GuardedMACOperatorFactory.createMAC.

Annotations
@Override
org.bouncycastle.crypto.general back to summary

public final Class Blowfish.OperatorFactory

extends GuardedSymmetricOperatorFactory<Blowfish.Parameters>
Class Inheritance

Factory for basic Blowfish encryption/decryption operators.

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
protected BufferedBlockCipher
Inherited from org.bouncycastle.crypto.general.GuardedSymmetricOperatorFactory:
createInputDecryptorcreateOutputDecryptorcreateOutputEncryptor

Constructor Detail

OperatorFactoryback to summary
public OperatorFactory()

Method Detail

createCipherback to summary
protected BufferedBlockCipher createCipher(boolean forEncryption, SymmetricKey key, Blowfish.Parameters parameters, SecureRandom random)

Implements abstract org.bouncycastle.crypto.general.GuardedSymmetricOperatorFactory.createCipher.

Annotations
@Override
org.bouncycastle.crypto.general back to summary

public final Class Blowfish.Parameters

extends GeneralParametersWithIV<Blowfish.Parameters>
Class Inheritance

Parameters for general Blowfish block cipher modes.

Field Summary

Inherited from org.bouncycastle.crypto.general.GeneralParametersWithIV:
blockSizeiv

Constructor Summary

AccessConstructor and Description
private
Parameters(GeneralAlgorithm algorithm, byte[] iv)

pack-priv

Method Summary

Modifier and TypeMethod and Description
protected Blowfish.Parameters
Inherited from org.bouncycastle.crypto.general.GeneralParametersWithIV:
getIVwithIVwithIV

Constructor Detail

Parametersback to summary
private Parameters(GeneralAlgorithm algorithm, byte[] iv)
Parametersback to summary
pack-priv Parameters(GeneralAlgorithm algorithm)

Method Detail

createback to summary
protected Blowfish.Parameters create(GeneralAlgorithm algorithm, byte[] iv)

Implements abstract org.bouncycastle.crypto.general.GeneralParametersWithIV.create.