mirror of
https://github.com/pgpainless/pgpainless.git
synced 2024-11-14 16:32:06 +01:00
Kotlin conversion: MissingPublicKeyCallback
This commit is contained in:
parent
38432c845c
commit
5efd496e1d
2 changed files with 9 additions and 15 deletions
|
@ -1,33 +1,28 @@
|
||||||
// SPDX-FileCopyrightText: 2018 Paul Schaub <vanitasvitae@fsfe.org>
|
// SPDX-FileCopyrightText: 2023 Paul Schaub <vanitasvitae@fsfe.org>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
package org.pgpainless.decryption_verification;
|
package org.pgpainless.decryption_verification
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import org.bouncycastle.openpgp.PGPPublicKeyRing
|
||||||
import javax.annotation.Nullable;
|
|
||||||
|
|
||||||
import org.bouncycastle.openpgp.PGPPublicKeyRing;
|
fun interface MissingPublicKeyCallback {
|
||||||
|
|
||||||
public interface MissingPublicKeyCallback {
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This method gets called if we encounter a signature made by a key which was not provided for signature verification.
|
* This method gets called if we encounter a signature made by a key which was not provided for signature verification.
|
||||||
* If you cannot provide the requested key, it is safe to return null here.
|
* If you cannot provide the requested key, it is safe to return null here.
|
||||||
* PGPainless will then continue verification with the next signature.
|
* PGPainless will then continue verification with the next signature.
|
||||||
*
|
*
|
||||||
* Note: The key-id might belong to a subkey, so be aware that when looking up the {@link PGPPublicKeyRing},
|
* Note: The key-id might belong to a subkey, so be aware that when looking up the [PGPPublicKeyRing],
|
||||||
* you may not only search for the key-id on the key rings primary key!
|
* you may not only search for the key-id on the key rings primary key!
|
||||||
*
|
*
|
||||||
* It would be super cool to provide the OpenPgp fingerprint here, but unfortunately one-pass-signatures
|
* It would be super cool to provide the OpenPgp fingerprint here, but unfortunately one-pass-signatures
|
||||||
* only contain the key id.
|
* only contain the key id.
|
||||||
*
|
*
|
||||||
* @param keyId ID of the missing signing (sub)key
|
* @param keyId ID of the missing signing (sub)key
|
||||||
*
|
|
||||||
* @return keyring containing the key or null
|
* @return keyring containing the key or null
|
||||||
*
|
*
|
||||||
* @see <a href="https://datatracker.ietf.org/doc/html/rfc4880#section-5.4">RFC</a>
|
* @see <a href="https://datatracker.ietf.org/doc/html/rfc4880#section-5.4">RFC</a>
|
||||||
*/
|
*/
|
||||||
@Nullable PGPPublicKeyRing onMissingPublicKeyEncountered(@Nonnull Long keyId);
|
fun onMissingPublicKeyEncountered(keyId: Long): PGPPublicKeyRing?
|
||||||
|
}
|
||||||
}
|
|
|
@ -14,7 +14,6 @@ import java.io.IOException;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.security.InvalidAlgorithmParameterException;
|
import java.security.InvalidAlgorithmParameterException;
|
||||||
import java.security.NoSuchAlgorithmException;
|
import java.security.NoSuchAlgorithmException;
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
|
|
||||||
import org.bouncycastle.openpgp.PGPException;
|
import org.bouncycastle.openpgp.PGPException;
|
||||||
import org.bouncycastle.openpgp.PGPPublicKey;
|
import org.bouncycastle.openpgp.PGPPublicKey;
|
||||||
|
@ -63,8 +62,8 @@ public class VerifyWithMissingPublicKeyCallbackTest {
|
||||||
.addVerificationCert(unrelatedKeys)
|
.addVerificationCert(unrelatedKeys)
|
||||||
.setMissingCertificateCallback(new MissingPublicKeyCallback() {
|
.setMissingCertificateCallback(new MissingPublicKeyCallback() {
|
||||||
@Override
|
@Override
|
||||||
public PGPPublicKeyRing onMissingPublicKeyEncountered(@Nonnull Long keyId) {
|
public PGPPublicKeyRing onMissingPublicKeyEncountered(long keyId) {
|
||||||
assertEquals(signingKey.getKeyID(), (long) keyId, "Signing key-ID mismatch.");
|
assertEquals(signingKey.getKeyID(), keyId, "Signing key-ID mismatch.");
|
||||||
return signingPubKeys;
|
return signingPubKeys;
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
|
|
Loading…
Reference in a new issue