mirror of
https://github.com/pgpainless/pgpainless.git
synced 2025-12-08 21:31:08 +01:00
Pass version down in tests
This commit is contained in:
parent
5095e421c1
commit
5102c08e13
5 changed files with 33 additions and 18 deletions
|
|
@ -1,6 +1,21 @@
|
|||
// SPDX-FileCopyrightText: 2025 Paul Schaub <vanitasvitae@fsfe.org>
|
||||
//
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
package org.pgpainless.algorithm
|
||||
|
||||
enum class OpenPGPKeyVersion(val version: Int) {
|
||||
enum class OpenPGPKeyVersion(val numeric: Int) {
|
||||
@Deprecated("V3 keys are deprecated.") v3(3),
|
||||
v4(4),
|
||||
librePgp(5),
|
||||
v6(6),
|
||||
;
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
fun from(numeric: Int): OpenPGPKeyVersion {
|
||||
return values().find { numeric == it.numeric }
|
||||
?: throw IllegalArgumentException("Unknown key version $numeric")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ package org.pgpainless.key.generation
|
|||
|
||||
import java.io.IOException
|
||||
import java.util.*
|
||||
import org.bouncycastle.bcpg.PublicKeyPacket
|
||||
import org.bouncycastle.openpgp.*
|
||||
import org.bouncycastle.openpgp.api.OpenPGPImplementation
|
||||
import org.bouncycastle.openpgp.operator.PBESecretKeyDecryptor
|
||||
|
|
@ -90,7 +89,7 @@ class KeyRingBuilder(private val version: OpenPGPKeyVersion) :
|
|||
|
||||
// generate primary key
|
||||
requireNotNull(primaryKeySpec) { "Primary Key spec required." }
|
||||
val certKey = generateKeyPair(primaryKeySpec!!)
|
||||
val certKey = generateKeyPair(primaryKeySpec!!, version)
|
||||
val signer = buildContentSigner(certKey)
|
||||
val signatureGenerator = PGPSignatureGenerator(signer)
|
||||
|
||||
|
|
@ -174,7 +173,7 @@ class KeyRingBuilder(private val version: OpenPGPKeyVersion) :
|
|||
|
||||
private fun addSubKeys(primaryKey: PGPKeyPair, ringGenerator: PGPKeyRingGenerator) {
|
||||
for (subKeySpec in subKeySpecs) {
|
||||
val subKey = generateKeyPair(subKeySpec)
|
||||
val subKey = generateKeyPair(subKeySpec, version)
|
||||
if (subKeySpec.isInheritedSubPackets) {
|
||||
ringGenerator.addSubKey(subKey)
|
||||
} else {
|
||||
|
|
@ -248,12 +247,13 @@ class KeyRingBuilder(private val version: OpenPGPKeyVersion) :
|
|||
@JvmOverloads
|
||||
fun generateKeyPair(
|
||||
spec: KeySpec,
|
||||
version: OpenPGPKeyVersion,
|
||||
creationTime: Date = spec.keyCreationDate ?: Date()
|
||||
): PGPKeyPair {
|
||||
val gen =
|
||||
OpenPGPImplementation.getInstance()
|
||||
.pgpKeyPairGeneratorProvider()
|
||||
.get(PublicKeyPacket.VERSION_4, creationTime)
|
||||
.get(version.numeric, creationTime)
|
||||
|
||||
return spec.keyType.generateKeyPair(gen)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ import org.pgpainless.PGPainless.Companion.inspectKeyRing
|
|||
import org.pgpainless.algorithm.AlgorithmSuite
|
||||
import org.pgpainless.algorithm.Feature
|
||||
import org.pgpainless.algorithm.KeyFlag
|
||||
import org.pgpainless.algorithm.OpenPGPKeyVersion
|
||||
import org.pgpainless.algorithm.SignatureType
|
||||
import org.pgpainless.algorithm.negotiation.HashAlgorithmNegotiator
|
||||
import org.pgpainless.bouncycastle.extensions.getKeyExpirationDate
|
||||
|
|
@ -244,7 +245,8 @@ class SecretKeyRingEditor(
|
|||
callback: SelfSignatureSubpackets.Callback?,
|
||||
protector: SecretKeyRingProtector
|
||||
): SecretKeyRingEditorInterface {
|
||||
val keyPair = KeyRingBuilder.generateKeyPair(keySpec, referenceTime)
|
||||
val version = OpenPGPKeyVersion.from(secretKeyRing.getPublicKey().version)
|
||||
val keyPair = KeyRingBuilder.generateKeyPair(keySpec, OpenPGPKeyVersion.v4, referenceTime)
|
||||
val subkeyProtector =
|
||||
PasswordBasedSecretKeyRingProtector.forKeyId(keyPair.keyID, subkeyPassphrase)
|
||||
val keyFlags = KeyFlag.fromBitmask(keySpec.subpackets.keyFlags).toMutableList()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue