rPGP — OpenPGP на Rust без головной боли
Когда последний раз вам приходилось интегрировать PGP в своё приложение? Если этот опыт оставил неприятные воспоминания о сложных C-библиотеках и проблемах совместимости, познакомьтесь с rPGP — свежим взглядом на OpenPGP, написанным на Rust.
Почему Rust и PGP — идеальный дуэт
rPGP — это чистая реализация OpenPGP на Rust, которая поддерживает все актуальные стандарты, включая RFC9580 (новейший стандарт PGP) и обратную совместимость с устаревшими форматами. Главные преимущества:
- Безопасность по умолчанию — Rust исключает целый класс уязвимостей, связанных с памятью
- Современный API — в отличие от legacy-решений вроде GnuPG
- Полноценная поддержка Autocrypt 1.1 — идеально для email-шифрования
Что умеет rPGP из коробки
- Работа с ключами — генерация, импорт/экспорт, проверка подписей
- Шифрование/дешифрование — включая современные AEAD-механизмы
- Поддержка всех версий OpenPGP — от устаревших v3 до актуальных v6
- Гибкий низкоуровневый API — для кастомных сценариев
Пример проверки подписи сообщения:
use pgp::composed::{Deserializable, Message, SignedPublicKey};
let (public_key, _) = SignedPublicKey::from_string(&key_string)?;
let (mut msg, _) = Message::from_string(&msg_string)?;
msg.verify(&public_key)?; // Проверка подписи
Технические особенности
- Чистый Rust — никаких C-зависимостей
- Минимальная версия Rust: 1.85+
- Двойная лицензия: MIT или Apache 2.0
- Поддержка платформ: Linux, macOS, Windows (см. PLATFORMS.md)
Кто уже использует rPGP
- Delta Chat — мессенджер поверх email
- Библиотеки для работы с RPM и Debian пакетами
- Экспериментальные высокоуровневые API для PGP
Когда стоит выбрать rPGP
Проект идеально подойдёт, если вы:
- Разрабатываете на Rust и нуждаетесь в PGP-функциональности
- Хотите избежать зависимости от GnuPG и других C-библиотек
- Работаете с email-шифрованием (Autocrypt)
- Создаёте инструменты для работы с пакетами (RPM/Debian)
rPGP — это свежий взгляд на старый, но всё ещё актуальный стандарт. Если ваш проект связан с криптографией или защищённой коммуникацией, обязательно обратите внимание на эту библиотеку.
