org.bouncycastle.bcpg.ECSecretBCPGKey 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.math.BigInteger;
/**
* Base class for an EC Secret Key.
* This type is for use with {@link PublicKeyAlgorithmTags#ECDH} or {@link PublicKeyAlgorithmTags#ECDSA}.
* The specific curve is identified by providing an OID.
* Regarding X25519, X448, consider the following:
* ECDH keys using curve448 are unspecified.
* ECDH secret keys using curve25519 use big-endian MPI encoding, contrary to {@link X25519SecretBCPGKey} which uses
* native encoding.
* Modern implementations use dedicated key types {@link X25519SecretBCPGKey}, {@link X448SecretBCPGKey} along with
* dedicated algorithm tags {@link PublicKeyAlgorithmTags#X25519}, {@link PublicKeyAlgorithmTags#X448}.
* If you want to be compatible with legacy applications however, you should use this class instead.
* Note though, that for v6 keys, {@link X25519SecretBCPGKey} or {@link X448SecretBCPGKey} MUST be used for X25519, X448.
*
* @see
* OpenPGP - Algorithm-Specific Parts for ECDH Keys
* @see
* OpenPGP - Algorithm-Specific Parts for ECDSA Keys
* @see
* OpenPGP - Curve25519Legacy ECDH Secret Key Material (deprecated)
*/
public class ECSecretBCPGKey
extends BCPGObject
implements BCPGKey
{
MPInteger x;
/**
* @param in
* @throws IOException
*/
public ECSecretBCPGKey(
BCPGInputStream in)
throws IOException
{
this.x = new MPInteger(in);
}
/**
* @param x
*/
public ECSecretBCPGKey(
BigInteger x)
{
this.x = new MPInteger(x);
}
/**
* return "PGP"
*
* @see org.bouncycastle.bcpg.BCPGKey#getFormat()
*/
public String getFormat()
{
return "PGP";
}
/**
* return the standard PGP encoding of the key.
*
* @see org.bouncycastle.bcpg.BCPGKey#getEncoded()
*/
public byte[] getEncoded()
{
try
{
return super.getEncoded();
}
catch (IOException e)
{
return null;
}
}
public void encode(
BCPGOutputStream out)
throws IOException
{
out.writeObject(x);
}
/**
* @return x
*/
public BigInteger getX()
{
return x.getValue();
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy