1
0
Fork 0
mirror of https://github.com/pgpainless/pgpainless.git synced 2025-12-09 22:01:10 +01:00

Rename KeyType.EDDSA to KeyType.EDDSA_LEGACY

This commit is contained in:
Paul Schaub 2024-02-21 14:57:02 +01:00
parent e933af94c7
commit a898323209
Signed by: vanitasvitae
GPG key ID: 62BEE9264BF17311
27 changed files with 80 additions and 74 deletions

View file

@ -12,7 +12,7 @@ import org.bouncycastle.jcajce.provider.asymmetric.util.ECUtil
import org.bouncycastle.openpgp.PGPPublicKey
import org.pgpainless.algorithm.PublicKeyAlgorithm
import org.pgpainless.key.OpenPgpFingerprint
import org.pgpainless.key.generation.type.eddsa.EdDSACurve
import org.pgpainless.key.generation.type.eddsa_legacy.EdDSALegacyCurve
/**
* For secret keys of types [PublicKeyAlgorithm.ECDSA], [PublicKeyAlgorithm.ECDH] and
@ -33,7 +33,8 @@ fun PGPPublicKey.getCurveName(): String {
}
}
.let {
if (it.curveOID == GNUObjectIdentifiers.Ed25519) return EdDSACurve._Ed25519.curveName
if (it.curveOID == GNUObjectIdentifiers.Ed25519)
return EdDSALegacyCurve._Ed25519.curveName
else it.curveOID
}
.let { it to ECUtil.getCurveName(it) }

View file

@ -9,7 +9,7 @@ import org.pgpainless.PGPainless.Companion.buildKeyRing
import org.pgpainless.algorithm.KeyFlag
import org.pgpainless.key.generation.KeySpec.Companion.getBuilder
import org.pgpainless.key.generation.type.KeyType
import org.pgpainless.key.generation.type.eddsa.EdDSACurve
import org.pgpainless.key.generation.type.eddsa_legacy.EdDSALegacyCurve
import org.pgpainless.key.generation.type.rsa.RsaLength
import org.pgpainless.key.generation.type.xdh.XDHSpec
import org.pgpainless.util.Passphrase
@ -131,7 +131,7 @@ class KeyRingTemplates {
.apply {
setPrimaryKey(
getBuilder(
KeyType.EDDSA(EdDSACurve._Ed25519),
KeyType.EDDSA_LEGACY(EdDSALegacyCurve._Ed25519),
KeyFlag.CERTIFY_OTHER,
KeyFlag.SIGN_DATA))
addSubkey(
@ -179,13 +179,16 @@ class KeyRingTemplates {
): PGPSecretKeyRing =
buildKeyRing()
.apply {
setPrimaryKey(getBuilder(KeyType.EDDSA(EdDSACurve._Ed25519), KeyFlag.CERTIFY_OTHER))
setPrimaryKey(
getBuilder(
KeyType.EDDSA_LEGACY(EdDSALegacyCurve._Ed25519), KeyFlag.CERTIFY_OTHER))
addSubkey(
getBuilder(
KeyType.XDH(XDHSpec._X25519),
KeyFlag.ENCRYPT_COMMS,
KeyFlag.ENCRYPT_STORAGE))
addSubkey(getBuilder(KeyType.EDDSA(EdDSACurve._Ed25519), KeyFlag.SIGN_DATA))
addSubkey(
getBuilder(KeyType.EDDSA_LEGACY(EdDSALegacyCurve._Ed25519), KeyFlag.SIGN_DATA))
setPassphrase(passphrase)
if (userId != null) {
addUserId(userId)

View file

@ -9,8 +9,8 @@ import org.pgpainless.algorithm.PublicKeyAlgorithm
import org.pgpainless.key.generation.type.ecc.EllipticCurve
import org.pgpainless.key.generation.type.ecc.ecdh.ECDH
import org.pgpainless.key.generation.type.ecc.ecdsa.ECDSA
import org.pgpainless.key.generation.type.eddsa.EdDSA
import org.pgpainless.key.generation.type.eddsa.EdDSACurve
import org.pgpainless.key.generation.type.eddsa_legacy.EdDSALegacy
import org.pgpainless.key.generation.type.eddsa_legacy.EdDSALegacyCurve
import org.pgpainless.key.generation.type.rsa.RSA
import org.pgpainless.key.generation.type.rsa.RsaLength
import org.pgpainless.key.generation.type.xdh.XDH
@ -100,7 +100,8 @@ interface KeyType {
@JvmStatic fun ECDSA(curve: EllipticCurve): ECDSA = ECDSA.fromCurve(curve)
@JvmStatic fun EDDSA(curve: EdDSACurve): EdDSA = EdDSA.fromCurve(curve)
@JvmStatic
fun EDDSA_LEGACY(curve: EdDSALegacyCurve): EdDSALegacy = EdDSALegacy.fromCurve(curve)
@JvmStatic fun XDH(curve: XDHSpec): XDH = XDH.fromSpec(curve)
}

View file

@ -7,7 +7,7 @@ package org.pgpainless.key.generation.type.ecc
/**
* Elliptic curves for use with [org.pgpainless.key.generation.type.ecc.ecdh.ECDH] and
* [org.pgpainless.key.generation.type.ecc.ecdsa.ECDSA]. For curve25519 related curve definitions
* see [XDHSpec] and [org.pgpainless.key.generation.type.eddsa.EdDSACurve].
* see [XDHSpec] and [org.pgpainless.key.generation.type.eddsa_legacy.EdDSALegacyCurve].
*/
enum class EllipticCurve(val curveName: String, val bitStrength: Int) {
_P256("prime256v1", 256), // prime256v1 is equivalent to P-256, see

View file

@ -2,19 +2,19 @@
//
// SPDX-License-Identifier: Apache-2.0
package org.pgpainless.key.generation.type.eddsa
package org.pgpainless.key.generation.type.eddsa_legacy
import org.bouncycastle.jce.spec.ECNamedCurveGenParameterSpec
import org.pgpainless.algorithm.PublicKeyAlgorithm
import org.pgpainless.key.generation.type.KeyType
class EdDSA private constructor(val curve: EdDSACurve) : KeyType {
class EdDSALegacy private constructor(val curve: EdDSALegacyCurve) : KeyType {
override val name = "EdDSA"
override val algorithm = PublicKeyAlgorithm.EDDSA_LEGACY
override val bitStrength = curve.bitStrength
override val algorithmSpec = ECNamedCurveGenParameterSpec(curve.curveName)
companion object {
@JvmStatic fun fromCurve(curve: EdDSACurve) = EdDSA(curve)
@JvmStatic fun fromCurve(curve: EdDSALegacyCurve) = EdDSALegacy(curve)
}
}

View file

@ -2,9 +2,9 @@
//
// SPDX-License-Identifier: Apache-2.0
package org.pgpainless.key.generation.type.eddsa
package org.pgpainless.key.generation.type.eddsa_legacy
enum class EdDSACurve(val curveName: String, val bitStrength: Int) {
enum class EdDSALegacyCurve(val curveName: String, val bitStrength: Int) {
_Ed25519("ed25519", 256),
;