В моем проекте мне нужно проверить прозрачные подписанные подписки PGP с использованием соответствующего открытого ключа. Хотя мне удалось найти код, который делает это (например: https://github.com/cjmalloy/openbitpub/blob/64485d64a699eb6096f01b27d5f7e51dd726602f/src/main/java/com/cjmalloy/obp/server/pgp/PgpUtil.java), он работает на низком уровне и выглядит довольно ужасно.PGP читатель формата подписи
Я думал, возможно, существуют некоторые специализированные синтаксические анализаторы, которые могут потреблять -----BEGIN PGP PUBLIC KEY BLOCK-----xxx-----END PGP PUBLIC KEY BLOCK-----
и -----BEGIN PGP SIGNED MESSAGE-----xxx-----BEGIN PGP SIGNATURE-----xxx-----END PGP SIGNATURE-----
блоков, чтобы я мог проверить подписи более декларативным способом?
Я нашел связанный PEMReader
класс от bouncycastle.openssl
пакет, но ничего не PGP-связанный до сих пор.
Конечно, я собираюсь использовать 'bouncycastle.openpgp' для проверки подписи, я делаю это сейчас. Просто у меня много кода, на котором я разбираюсь (можно увидеть в ссылочном примере, например, по очереди, отбрасывая разрывы строк и т. Д.). Я понимаю, что «PEMReader» не совсем то, что мне нужно, но оно близко. Существование 'PEMReader' заставляет меня задаться вопросом, существует ли что-то подобное для PGP. – Anton
Я никогда не работал с Bouncy Castle, но насколько мне известно, вам придется импортировать открытый ключ, загрузите подписанный файл (посмотрите на 'gpg -list-packets', чтобы понять, как их отменить, если необходимо, в Bouncy Castle) и, наконец, выполнить проверку. Документация за пределами JavaDoc редка, вы можете найти некоторые разумные примеры в другом месте в Интернете. –
Только частный ключ S2K; проверка использует открытый ключ. В противном случае согласитесь. –