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

public final Class DES

extends Object
Class Inheritance
Imports
java.security.SecureRandom, org.bouncycastle.crypto.IllegalKeyException, .ParametersWithIV, .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 DES based algorithms.

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static class
DES.AEADOperatorFactory

Factory for DES AEAD encryption/decryption operators.

public static class
DES.AuthParameters

Parameters for DES AEAD and MAC modes..

private static class
public static class
DES.KeyGenerator

DES key generator.

public static class
DES.MACOperatorFactory

Factory for producing DES MAC calculators.

public static class
DES.OperatorFactory

Factory for basic DES encryption/decryption operators.

public static class
DES.Parameters

Parameters for general DES block cipher modes.

Field Summary

Modifier and TypeField and Description
public static final GeneralAlgorithm
ALGORITHM

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

public static final DES.Parameters
CBC

DES in cipher block chaining (CBC) mode.

public static final DES.AuthParameters
CBC_MAC

DES CBC-MAC.

public static final DES.AuthParameters
CBC_MACwithISO7816_4

DES CBC-MAC with ISO7816-4 Padding.

public static final DES.Parameters
CBCwithCS1

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

public static final DES.Parameters
CBCwithCS2

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

public static final DES.Parameters
CBCwithCS3

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

public static final DES.Parameters
CBCwithISO10126_2

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

public static final DES.Parameters
CBCwithISO7816_4

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

public static final DES.Parameters
CBCwithPKCS7

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

public static final DES.Parameters
CBCwithTBC

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

public static final DES.Parameters
CBCwithX923

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

public static final DES.Parameters
CFB64

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

public static final DES.Parameters
CFB8

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

public static final DES.AuthParameters
CFB8_MAC

DES CFB8MAC.

public static final DES.AuthParameters
CMAC

DES cipher-based MAC algorithm.

public static final DES.Parameters
CTR

DES in counter (CTR) mode.

public static final DES.AuthParameters
EAX

DES in EAX mode..

public static final DES.Parameters
ECB

DES in electronic code book (ECB) mode.

public static final DES.Parameters
ECBwithISO10126_2

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

public static final DES.Parameters
ECBwithISO7816_4

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

public static final DES.Parameters
ECBwithPKCS7

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

public static final DES.Parameters
ECBwithTBC

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

public static final DES.Parameters
ECBwithX923

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

private static final DES.EngineProvider
public static final DES.AuthParameters
ISO9797alg3Mac

DES ISO9797 MAC Algorithm 3

public static final DES.AuthParameters
ISO9797alg3MACwithISO7816_4

DES ISO9797 MAC Algorithm 3 with ISO7816-4 Padding

public static final DES.Parameters
OFB

DES in output feedback (OFB) mode, 64 bit block size.

public static final DES.Parameters
OpenPGPCFB

DES in OpenPGP cipher feedback (CFB) mode.

Constructor Summary

AccessConstructor and Description
private
DES()

Method Summary

Modifier and TypeMethod and Description
private static ValidatedSymmetricKey
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

ALGORITHMback to summary
public static final GeneralAlgorithm ALGORITHM

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

CBCback to summary
public static final DES.Parameters CBC

DES in cipher block chaining (CBC) mode.

CBC_MACback to summary
public static final DES.AuthParameters CBC_MAC

DES CBC-MAC.

CBC_MACwithISO7816_4back to summary
public static final DES.AuthParameters CBC_MACwithISO7816_4

DES CBC-MAC with ISO7816-4 Padding.

CBCwithCS1back to summary
public static final DES.Parameters CBCwithCS1

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

CBCwithCS2back to summary
public static final DES.Parameters CBCwithCS2

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

CBCwithCS3back to summary
public static final DES.Parameters CBCwithCS3

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

CBCwithISO10126_2back to summary
public static final DES.Parameters CBCwithISO10126_2

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

CBCwithISO7816_4back to summary
public static final DES.Parameters CBCwithISO7816_4

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

CBCwithPKCS7back to summary
public static final DES.Parameters CBCwithPKCS7

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

CBCwithTBCback to summary
public static final DES.Parameters CBCwithTBC

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

CBCwithX923back to summary
public static final DES.Parameters CBCwithX923

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

CFB64back to summary
public static final DES.Parameters CFB64

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

CFB8back to summary
public static final DES.Parameters CFB8

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

CFB8_MACback to summary
public static final DES.AuthParameters CFB8_MAC

DES CFB8MAC.

CMACback to summary
public static final DES.AuthParameters CMAC

DES cipher-based MAC algorithm.

CTRback to summary
public static final DES.Parameters CTR

DES in counter (CTR) mode.

EAXback to summary
public static final DES.AuthParameters EAX

DES in EAX mode..

ECBback to summary
public static final DES.Parameters ECB

DES in electronic code book (ECB) mode.

ECBwithISO10126_2back to summary
public static final DES.Parameters ECBwithISO10126_2

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

ECBwithISO7816_4back to summary
public static final DES.Parameters ECBwithISO7816_4

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

ECBwithPKCS7back to summary
public static final DES.Parameters ECBwithPKCS7

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

ECBwithTBCback to summary
public static final DES.Parameters ECBwithTBC

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

ECBwithX923back to summary
public static final DES.Parameters ECBwithX923

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

ENGINE_PROVIDERback to summary
private static final DES.EngineProvider ENGINE_PROVIDER
ISO9797alg3Macback to summary
public static final DES.AuthParameters ISO9797alg3Mac

DES ISO9797 MAC Algorithm 3

ISO9797alg3MACwithISO7816_4back to summary
public static final DES.AuthParameters ISO9797alg3MACwithISO7816_4

DES ISO9797 MAC Algorithm 3 with ISO7816-4 Padding

OFBback to summary
public static final DES.Parameters OFB

DES in output feedback (OFB) mode, 64 bit block size.

OpenPGPCFBback to summary
public static final DES.Parameters OpenPGPCFB

DES in OpenPGP cipher feedback (CFB) mode.

Constructor Detail

DESback to summary
private DES()

Method Detail

validateKeyback to summary
private static ValidatedSymmetricKey validateKey(SymmetricKey key, GeneralAlgorithm paramAlgorithm)
org.bouncycastle.crypto.general back to summary

public final Class DES.AEADOperatorFactory

extends GuardedAEADOperatorFactory<DES.AuthParameters>
Class Inheritance

Factory for DES 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, DES.AuthParameters parameters)

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

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

public final Class DES.AuthParameters

extends GeneralAuthParameters<DES.AuthParameters>
Class Inheritance

Parameters for DES 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 tagLenInBits)

pack-priv
AuthParameters(GeneralAlgorithm
algorithm mode.
algorithm
)

Base constructor - the algorithm, null IV.

Method Summary

Modifier and TypeMethod and Description
protected DES.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 tagLenInBits)
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 DES.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 DES.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 DES.KeyGenerator

extends GuardedSymmetricKeyGenerator
Class Inheritance

DES key generator.

Field Summary

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

Constructor Summary

AccessConstructor and Description
public
public
KeyGenerator(GeneralParameters<T extends Algorithm> algorithm, 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(SecureRandom random)
KeyGeneratorback to summary
public KeyGenerator(GeneralParameters<T extends Algorithm> algorithm, 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 DES.MACOperatorFactory

extends GuardedMACOperatorFactory<DES.AuthParameters>
Class Inheritance

Factory for producing DES 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(DES.AuthParameters parameters)

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

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

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

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

public final Class DES.OperatorFactory

extends GuardedSymmetricOperatorFactory<DES.Parameters>
Class Inheritance

Factory for basic DES 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, DES.Parameters parameters, SecureRandom random)

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

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

public final Class DES.Parameters

extends GeneralParameters<GeneralAlgorithm>
implements ParametersWithIV
Class Inheritance
All Implemented Interfaces
org.bouncycastle.crypto.ParametersWithIV, org.bouncycastle.crypto.Parameters

Parameters for general DES block cipher modes.

Field Summary

Modifier and TypeField and Description
private final byte[]

Constructor Summary

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

Method Summary

Modifier and TypeMethod and Description
public byte[]
getIV()

Implements org.bouncycastle.crypto.ParametersWithIV.getIV.

Return the initialization vector associated with this parameter set.
public DES.Parameters
withIV(byte[]
the IV to use.
iv
)

Implements org.bouncycastle.crypto.ParametersWithIV.withIV.

Create a new parameter set with a different IV.
public DES.Parameters
withIV(SecureRandom
the SecureRandom to use as the source of IV data.
random
)

Implements org.bouncycastle.crypto.ParametersWithIV.withIV.

Create a new parameter set with a different IV based on the output of the passed in random.
Inherited from org.bouncycastle.crypto.general.GeneralParameters:
getAlgorithm

Field Detail

ivback to summary
private final byte[] iv

Constructor Detail

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

Method Detail

getIVback to summary
public byte[] getIV()

Implements org.bouncycastle.crypto.ParametersWithIV.getIV.

Doc from org.bouncycastle.crypto.ParametersWithIV.getIV.

Return the initialization vector associated with this parameter set.

Returns:byte[]

the IV for these parameters.

withIVback to summary
public DES.Parameters withIV(byte[] iv)

Implements org.bouncycastle.crypto.ParametersWithIV.withIV.

Doc from org.bouncycastle.crypto.ParametersWithIV.withIV.

Create a new parameter set with a different IV.

Parameters
iv:byte[]

the IV to use.

Returns:DES.Parameters

a copy of the current parameter set with the new IV.

withIVback to summary
public DES.Parameters withIV(SecureRandom random)

Implements org.bouncycastle.crypto.ParametersWithIV.withIV.

Doc from org.bouncycastle.crypto.ParametersWithIV.withIV.

Create a new parameter set with a different IV based on the output of the passed in random.

Parameters
random:SecureRandom

the SecureRandom to use as the source of IV data.

Returns:DES.Parameters

a copy of the current parameter set with the new IV.