Top Description Fields Constructors Methods
org.bouncycastle.openpgp

public Class PGPPadding

extends Object
Class Inheritance
Imports
java.io.ByteArrayOutputStream, .IOException, .OutputStream, java.security.SecureRandom, org.bouncycastle.bcpg.BCPGInputStream, .BCPGOutputStream, .Packet, .PacketFormat, .PaddingPacket, org.bouncycastle.crypto.CryptoServicesRegistrar

The PGPPadding contains random data, and can be used to defend against traffic analysis on version 2 SEIPD messages and Transferable Public Keys.

Such a padding packet MUST be ignored when received.

Field Summary

Modifier and TypeField and Description
public static final int
MAX_PADDING_LEN

Maximum random padding length.

public static final int
MIN_PADDING_LEN

Minimum random padding length in octets.

private PaddingPacket
p

Constructor Summary

AccessConstructor and Description
public
PGPPadding(BCPGInputStream
packet input stream
in
)

Default constructor.

public
PGPPadding()

Generate a new, random PGPPadding object.

public
PGPPadding(SecureRandom
random number generator instance
random
)

Generate a new, random PGPPadding object.

public
PGPPadding(int len)

Generate a new, random PGPPadding object.

public
PGPPadding(int
number of random octets
len
,
SecureRandom
random number generator instance
random
)

Generate a new, random PGPPadding object.

Method Summary

Modifier and TypeMethod and Description
public void
encode(OutputStream outStream)

public byte[]
public byte[]
public byte[]

Returns:

padding octets
getPadding
()

Return the padding octets as a byte array.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

MAX_PADDING_LENback to summary
public static final int MAX_PADDING_LEN

Maximum random padding length. Chosen somewhat arbitrarily, as SSH also uses max 255 bytes for random padding.

See Also
rfc4253 - Binary Packet Protocol
MIN_PADDING_LENback to summary
public static final int MIN_PADDING_LEN

Minimum random padding length in octets. Chosen totally arbitrarily.

pback to summary
private PaddingPacket p

Constructor Detail

PGPPaddingback to summary
public PGPPadding(BCPGInputStream in) throws IOException

Default constructor.

Parameters
in:BCPGInputStream

packet input stream

PGPPaddingback to summary
public PGPPadding()

Generate a new, random PGPPadding object. The padding consists of n random bytes, where n is a number between (inclusive) MIN_PADDING_LEN and MAX_PADDING_LEN.

PGPPaddingback to summary
public PGPPadding(SecureRandom random)

Generate a new, random PGPPadding object. The padding consists of n random bytes, where n is a number between (inclusive) MIN_PADDING_LEN and MAX_PADDING_LEN.

Parameters
random:SecureRandom

random number generator instance

PGPPaddingback to summary
public PGPPadding(int len)

Generate a new, random PGPPadding object. The padding consists of

len
random bytes.
PGPPaddingback to summary
public PGPPadding(int len, SecureRandom random)

Generate a new, random PGPPadding object. The padding consists of

len
random bytes.
Parameters
len:int

number of random octets

random:SecureRandom

random number generator instance

Method Detail

encodeback to summary
public void encode(OutputStream outStream) throws IOException
getEncodedback to summary
public byte[] getEncoded() throws IOException
getEncodedback to summary
public byte[] getEncoded(PacketFormat format) throws IOException
getPaddingback to summary
public byte[] getPadding()

Return the padding octets as a byte array.

Returns:byte[]

padding octets