Bouncy castle: Verify einer DIRECT_KEY PGPSignature

Hi zusammen,

ich möchte aktuell einen OpenPGP PublicKey mittels eines PrivateKeys signieren (mit Bouncy castle) und diese Signatur prüfen lassen.

Angenommen A möchte den PublicKey von B signieren. A führt dafür folgenden Code aus:

			PGPPrivateKey pgpPrivKey = secretKey
					.extractPrivateKey(new JcePBESecretKeyDecryptorBuilder()
							.setProvider("BC").build(passwd));
			PGPSignatureGenerator signatureGenerator = new PGPSignatureGenerator(
					new JcaPGPContentSignerBuilder(secretKey.getPublicKey()
							.getAlgorithm(), PGPUtil.SHA512));
			PGPPublicKey publicKeyToBeSigned = extractPublicKey(keyToBeSigned,
					keyId);
			signatureGenerator.init(PGPSignature.DIRECT_KEY, pgpPrivKey);

			PGPSignature signature = signatureGenerator.generateCertification(id,
					publicKeyToBeSigned);

Das funktioniert soweit ohne Probleme. Später möchte ich irgendwann sicherstellen, dass die Signatur wirklich von A ist und würde sie dazu verifizieren wollen mit folgendem Code:

		PGPSignature pgpSignature = signatureList.get(0);
		PGPPublicKey publicKey = extractPublicKey(publicKeyOfSigner,
				pgpSignature.getKeyID());

		if (publicKey == null) {
			return false;
		}

		pgpSignature.init(
				new JcaPGPContentVerifierBuilderProvider().setProvider("BC"),
				publicKey);

		return pgpSignature.verify();

Dummerweise wird hier aber immer „false“ zurück gegeben. Habe ich irgendwo einen Denkfehler? Passt der SignatureType mit „DIRECT_KEY“?

Hat zufällig jmd. einen minimalen Beispielcode der funktioniert?

Ich hab zwar einige Beispiele gefunden, allerdings meinst nur im zusammenhang das irgendwelche Daten verifiziert werden sollen.

Am dichtestens käme das Beispiel hier da heran: click

Evtl. hab ich auch einfach nur einen Verständnisfehler o.ä. :confused:

Wäre nett wenn mir jmd helfen könnte!

Vielen Dank vorab!