Package org.pgpainless.algorithm

# Enum Class PublicKeyAlgorithm

java.lang.Object
java.lang.Enum<PublicKeyAlgorithm>
org.pgpainless.algorithm.PublicKeyAlgorithm

All Implemented Interfaces:
  `Serializable`, `Comparable<PublicKeyAlgorithm>`, `Constable`

public enum PublicKeyAlgorithm extends Enum<PublicKeyAlgorithm>
Enumeration of public key algorithms as defined in RFC4880.

See Also:
  - RFC4880: Public-Key Algorithms

## Nested Class Summary

## Nested classes/interfaces inherited from class java.lang.Enum

`Enum.EnumDesc<E extends Enum<E>>`

## Enum Constant Summary

Enum Constants
Enum Constant
Description
`DIFFIE_HELLMAN`
Diffie-Hellman key exchange algorithm.
`DSA`
Digital Signature Algorithm.
`EC`
Deprecated.
use `ECDH` instead.
`ECDH`
Elliptic Curve Diffie-Hellman.
`ECDSA`
Elliptic Curve Digital Signature Algorithm.
`EDDSA`
Digital Signature Algorithm based on twisted Edwards Curves.
`ELGAMAL_ENCRYPT`
ElGamal with usage encryption.
`ELGAMAL_GENERAL`
Deprecated.
see Deprecation notice
`RSA_ENCRYPT`
Deprecated.
see Deprecation notice
`RSA_GENERAL`
RSA capable of encryption and signatures.
`RSA_SIGN`
Deprecated.
see Deprecation notice

## Method Summary

Modifier and Type
Method
Description
`static PublicKeyAlgorithm`
`fromId(int id)`
Return the `PublicKeyAlgorithm` that corresponds to the provided algorithm id.
`int`
`getAlgorithmId()`
Return the numeric identifier of the public key algorithm.
`boolean`
`isEncryptionCapable()`
Return true if this public key algorithm can be used as an encryption algorithm.
`boolean`
`isSigningCapable()`
Return true if this public key algorithm is able to create signatures.
`static PublicKeyAlgorithm`
`requireFromId(int id)`
Return the `PublicKeyAlgorithm` that corresponds to the provided algorithm id.
`static PublicKeyAlgorithm`
`valueOf(String name)`
Returns the enum constant of this class with the specified name.
`static PublicKeyAlgorithm[]`
`values()`
Returns an array containing the constants of this enum class, in the order they are declared.

### Methods inherited from class java.lang.Enum

`clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf`

### Methods inherited from class java.lang.Object

`getClass, notify, notifyAll, wait, wait, wait`

## Enum Constant Details

### RSA_GENERAL

public static final PublicKeyAlgorithm RSA_GENERAL
RSA capable of encryption and signatures.

### RSA_ENCRYPT

@Deprecated public static final PublicKeyAlgorithm RSA_ENCRYPT
Deprecated.
see Deprecation notice
RSA with usage encryption.

### RSA_SIGN

@Deprecated public static final PublicKeyAlgorithm RSA_SIGN
Deprecated.
see Deprecation notice
RSA with usage of creating signatures.

### ELGAMAL_ENCRYPT

public static final PublicKeyAlgorithm ELGAMAL_ENCRYPT
ElGamal with usage encryption.

### DSA

public static final PublicKeyAlgorithm DSA
Digital Signature Algorithm.

### EC

@Deprecated public static final PublicKeyAlgorithm EC
Deprecated.
use `ECDH` instead.
EC is deprecated.

### ECDH

public static final PublicKeyAlgorithm ECDH
Elliptic Curve Diffie-Hellman.

### ECDSA

public static final PublicKeyAlgorithm ECDSA
Elliptic Curve Digital Signature Algorithm.

### ELGAMAL_GENERAL

@Deprecated public static final PublicKeyAlgorithm ELGAMAL_GENERAL
Deprecated.
see Deprecation notice
ElGamal General.

### DIFFIE_HELLMAN

public static final PublicKeyAlgorithm DIFFIE_HELLMAN
Diffie-Hellman key exchange algorithm.

### EDDSA

public static final PublicKeyAlgorithm EDDSA
Digital Signature Algorithm based on twisted Edwards Curves.

## Method Details

### values

public static PublicKeyAlgorithm[] values()
Returns an array containing the constants of this enum class, in the order they are declared.

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

### valueOf

public static PublicKeyAlgorithm valueOf(String name)
Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (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 class has no constant with the specified name
  `NullPointerException` - if the argument is null

### fromId

@Nullable public static PublicKeyAlgorithm fromId(int id)
Return the `PublicKeyAlgorithm` that corresponds to the provided algorithm id. If an invalid id is provided, null is returned.

Parameters:
  `id` - numeric algorithm id
Returns:
  algorithm or null

### requireFromId

@Nonnull public static PublicKeyAlgorithm requireFromId(int id)
Return the `PublicKeyAlgorithm` that corresponds to the provided algorithm id. If an invalid id is provided, throw a `NoSuchElementException`.

Parameters:
  `id` - numeric algorithm id
Returns:
  algorithm
Throws:
  `NoSuchElementException` - in case of an unmatched algorithm id

### getAlgorithmId

public int getAlgorithmId()
Return the numeric identifier of the public key algorithm.

Returns:
  id

### isSigningCapable

public boolean isSigningCapable()
Return true if this public key algorithm is able to create signatures.

Returns:
  true if the algorithm can sign

### isEncryptionCapable

public boolean isEncryptionCapable()
Return true if this public key algorithm can be used as an encryption algorithm.

Returns:
  true if the algorithm can encrypt