net.i2p.crypto
Enum EncType

java.lang.Object
  extended by java.lang.Enum<EncType>
      extended by net.i2p.crypto.EncType
All Implemented Interfaces:
Serializable, Comparable<EncType>

public enum EncType
extends Enum<EncType>

PRELIMINARY - unused - subject to change Defines the properties for various encryption types that I2P supports or may someday support. All PublicKeys and PrivateKeys have a type. Note that a EncType specifies both an algorithm and parameters, so that we may change primes or curves for a given algorithm.

Since:
0.9.18

Enum Constant Summary
EC_P256
          Pubkey 64 bytes; privkey 32 bytes;
EC_P384
          Pubkey 96 bytes; privkey 48 bytes;
EC_P521
          Pubkey 132 bytes; privkey 66 bytes;
ELGAMAL_2048
          2048-bit MODP Group from RFC 3526.
 
Method Summary
 String getAlgorithmName()
          the standard name used for the Java crypto factories
 EncAlgo getBaseAlgorithm()
          the standard base algorithm name used for the Java crypto factories
static EncType getByCode(int code)
           
 int getCode()
          the unique identifier for this type
 AlgorithmParameterSpec getParams()
          The elliptic curve ECParameterSpec for ECDSA; DSAParameterSpec for DSA
 int getPrivkeyLen()
          the length of the private key, in bytes
 int getPubkeyLen()
          the length of the public key, in bytes
 String getSupportedSince()
          The router version in which this type was first supported.
 boolean isAvailable()
           
static boolean isAvailable(int code)
           
static boolean isAvailable(String stype)
           
static EncType parseEncType(String stype)
          Convenience for user apps
static EncType valueOf(String name)
          Returns the enum constant of this type with the specified name.
static EncType[] values()
          Returns an array containing the constants of this enum type, in the order they are declared.
 
Methods inherited from class java.lang.Enum
clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

Enum Constant Detail

ELGAMAL_2048

public static final EncType ELGAMAL_2048
2048-bit MODP Group from RFC 3526. This is the default. Pubkey 256 bytes, privkey 256 bytes.


EC_P256

public static final EncType EC_P256
Pubkey 64 bytes; privkey 32 bytes;


EC_P384

public static final EncType EC_P384
Pubkey 96 bytes; privkey 48 bytes;


EC_P521

public static final EncType EC_P521
Pubkey 132 bytes; privkey 66 bytes;

Method Detail

values

public static EncType[] values()
Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:
for (EncType c : EncType.values())
    System.out.println(c);

Returns:
an array containing the constants of this enum type, in the order they are declared

valueOf

public static EncType valueOf(String name)
Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

Parameters:
name - the name of the enum constant to be returned.
Returns:
the enum constant with the specified name
Throws:
IllegalArgumentException - if this enum type has no constant with the specified name
NullPointerException - if the argument is null

getCode

public int getCode()
the unique identifier for this type


getPubkeyLen

public int getPubkeyLen()
the length of the public key, in bytes


getPrivkeyLen

public int getPrivkeyLen()
the length of the private key, in bytes


getBaseAlgorithm

public EncAlgo getBaseAlgorithm()
the standard base algorithm name used for the Java crypto factories


getAlgorithmName

public String getAlgorithmName()
the standard name used for the Java crypto factories


getParams

public AlgorithmParameterSpec getParams()
                                 throws InvalidParameterSpecException
The elliptic curve ECParameterSpec for ECDSA; DSAParameterSpec for DSA

Throws:
InvalidParameterSpecException - if the algorithm is not available on this JVM.

getSupportedSince

public String getSupportedSince()
The router version in which this type was first supported.


isAvailable

public boolean isAvailable()
Returns:
true if supported in this JVM

isAvailable

public static boolean isAvailable(int code)
Returns:
true if supported in this JVM

isAvailable

public static boolean isAvailable(String stype)
Parameters:
stype - number or name
Returns:
true if supported in this JVM

getByCode

public static EncType getByCode(int code)
Returns:
null if not supported

parseEncType

public static EncType parseEncType(String stype)
Convenience for user apps

Parameters:
stype - number or name
Returns:
null if not found