org.bouncycastle.bcpg.PaddingPacket Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bcpg-jdk14 Show documentation
Show all versions of bcpg-jdk14 Show documentation
The Bouncy Castle Java API for handling the OpenPGP protocol. This jar contains the OpenPGP API for JDK 1.4. The APIs can be used in conjunction with a JCE/JCA provider such as the one provided with the Bouncy Castle Cryptography APIs.
The newest version!
package org.bouncycastle.bcpg;
import java.io.IOException;
import java.security.SecureRandom;
import org.bouncycastle.util.Arrays;
import org.bouncycastle.util.io.Streams;
public class PaddingPacket
extends ContainedPacket
{
private final byte[] padding;
public PaddingPacket(BCPGInputStream in)
throws IOException
{
this(in, true);
}
public PaddingPacket(BCPGInputStream in, boolean newPacketFormat)
throws IOException
{
super(PADDING, newPacketFormat);
padding = Streams.readAll(in);
}
public PaddingPacket(byte[] padding)
{
super(PADDING, true);
this.padding = padding;
}
public PaddingPacket(int octetLen, SecureRandom random)
{
this(randomBytes(octetLen, random));
}
private static byte[] randomBytes(int octetCount, SecureRandom random)
{
if (octetCount <= 0)
{
throw new IllegalArgumentException("Octet count MUST NOT be 0 nor negative.");
}
byte[] bytes = new byte[octetCount];
random.nextBytes(bytes);
return bytes;
}
public byte[] getPadding()
{
return Arrays.clone(padding);
}
public void encode(BCPGOutputStream pOut)
throws IOException
{
pOut.writePacket(hasNewPacketFormat(), PacketTags.PADDING, padding);
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy