
org.spongycastle.openpgp.operator.PGPPad Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of pg Show documentation
Show all versions of pg Show documentation
Spongy Castle is a package-rename (org.bouncycastle.* to org.spongycastle.*) of Bouncy Castle
intended for the Android platform. Android unfortunately ships with a stripped-down version of
Bouncy Castle, which prevents easy upgrades - Spongy Castle overcomes this and provides a full,
up-to-date version of the Bouncy Castle cryptographic libs.
The newest version!
package org.spongycastle.openpgp.operator;
import org.spongycastle.openpgp.PGPException;
/**
* Utility class that provides padding addition and removal for PGP session keys.
*/
public class PGPPad
{
private PGPPad()
{
}
public static byte[] padSessionData(byte[] sessionInfo)
{
byte[] result = new byte[40];
System.arraycopy(sessionInfo, 0, result, 0, sessionInfo.length);
byte padValue = (byte)(result.length - sessionInfo.length);
for (int i = sessionInfo.length; i != result.length; i++)
{
result[i] = padValue;
}
return result;
}
public static byte[] unpadSessionData(byte[] encoded)
throws PGPException
{
byte padValue = encoded[encoded.length - 1];
for (int i = encoded.length - padValue; i != encoded.length; i++)
{
if (encoded[i] != padValue)
{
throw new PGPException("bad padding found in session data");
}
}
byte[] taggedKey = new byte[encoded.length - padValue];
System.arraycopy(encoded, 0, taggedKey, 0, taggedKey.length);
return taggedKey;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy