2021-10-07 15:48:52 +02:00
|
|
|
// SPDX-FileCopyrightText: 2018 Paul Schaub <vanitasvitae@fsfe.org>
|
|
|
|
//
|
|
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
|
2020-12-11 18:16:31 +01:00
|
|
|
package org.pgpainless.key.generation.type.ecc;
|
2018-06-04 14:50:09 +02:00
|
|
|
|
2018-07-31 20:09:16 +02:00
|
|
|
import javax.annotation.Nonnull;
|
|
|
|
|
2021-05-31 13:59:56 +02:00
|
|
|
import org.pgpainless.key.generation.type.xdh.XDHSpec;
|
|
|
|
|
2021-02-11 16:58:00 +01:00
|
|
|
/**
|
|
|
|
* Elliptic curves for use with
|
|
|
|
* {@link org.pgpainless.key.generation.type.ecc.ecdh.ECDH}/{@link org.pgpainless.key.generation.type.ecc.ecdsa.ECDSA}.
|
|
|
|
* For curve25519 related curve definitions see
|
2021-05-31 13:59:56 +02:00
|
|
|
* {@link XDHSpec} and {@link org.pgpainless.key.generation.type.eddsa.EdDSACurve}.
|
2021-02-11 16:58:00 +01:00
|
|
|
*/
|
2018-06-04 14:50:09 +02:00
|
|
|
public enum EllipticCurve {
|
2023-06-19 12:34:53 +02:00
|
|
|
_P256("NIST P-256", 256), // prime256v1 is equivalent to P-256, see https://tools.ietf.org/search/rfc4492#page-32
|
|
|
|
_P384("NIST P-384", 384), // secp384r1 is equivalent to P-384, see https://tools.ietf.org/search/rfc4492#page-32
|
|
|
|
_P521("NIST P-521", 521), // secp521r1 is equivalent to P-521, see https://tools.ietf.org/search/rfc4492#page-32
|
2021-12-02 14:18:21 +01:00
|
|
|
_SECP256K1("secp256k1", 256),
|
|
|
|
_BRAINPOOLP256R1("brainpoolP256r1", 256),
|
|
|
|
_BRAINPOOLP384R1("brainpoolP384r1", 384),
|
|
|
|
_BRAINPOOLP512R1("brainpoolP512r1", 512)
|
2018-06-04 14:50:09 +02:00
|
|
|
;
|
|
|
|
|
|
|
|
private final String name;
|
2021-12-02 14:18:21 +01:00
|
|
|
private final int bitStrength;
|
2018-06-04 14:50:09 +02:00
|
|
|
|
2021-12-02 14:18:21 +01:00
|
|
|
EllipticCurve(@Nonnull String name, int bitStrength) {
|
2018-06-04 14:50:09 +02:00
|
|
|
this.name = name;
|
2021-12-02 14:18:21 +01:00
|
|
|
this.bitStrength = bitStrength;
|
2018-06-04 14:50:09 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public String getName() {
|
|
|
|
return name;
|
|
|
|
}
|
2021-12-02 14:18:21 +01:00
|
|
|
|
|
|
|
public int getBitStrength() {
|
|
|
|
return bitStrength;
|
|
|
|
}
|
2018-06-04 14:50:09 +02:00
|
|
|
}
|