Ищите модель, объясняющую внутреннюю структуру подписанного PGP и зашифрованного файла
Я пытаюсь отладить и расширить существующий фрагмент кода Java, используя BouncyCastle для расшифровки и проверки защищенных вложений.
Я просмотрел примеры BouncyCastle, но то, что из них сложнее извлечь, это модель того, как выглядят вложения, защищенные PGP. Из кода и различных ошибок, которые я могу вывести, есть что-то, представленное PGPMarker, затем вы можете найти PGPCompressedData, внутри которого есть PGPOnePassSignatureList и так далее. Это не проясняет такие вопросы, как, когда ожидать одно против другого и присутствует ли однопроходная подпись, когда подписывание и шифрование выполнялись отдельно (это были примеры, с которыми я сталкивался, но не являюсь темой вопроса). Javadoc BC мало что объясняет (например, PGPOnePassSignature - "Объект подписи за один проход").
Пришло время потратить время на обратное проектирование модели методом проб и ошибок, и, поскольку я не смог найти хороший ресурс по этому вопросу, я надеюсь, что, возможно, кто-то еще его знает.
Заранее спасибо.
1 ответ
Лучший ресурс, который я нашел, был RFC OpenPGP. Я использовал BouncyCastle для PGP и S/MIME, и я чувствовал, что S / MIME был намного более простым, хотя оба стандарта в сущности делают одно и то же. К счастью, в моем случае я подписывал и шифровал, так что мой код не должен был быть подготовлен для обработки какой-либо сумасшедшей структуры, которую могла бы придумать реализация PGP.