Кажется, что это должно быть очень просто, но мне не повезло.
Сценарий таков: у меня есть открытый файл ключа *.asc. Я хочу использовать этот файл (не мой личный набор ключей) для шифрования данных на сервере, чтобы я мог расшифровать их локально с помощью секретного ключа.
Из командной строки я могу добиться этого с помощью gpg
, но я бы предпочел использовать библиотеку Ruby, которая не является просто оболочкой для CLI (т. е., предположительно, той, которая обеспечивает привязки к библиотеке C). Я просмотрел драгоценные камни GPGME и OpenPGP и не смог понять, как их использовать. Документация (особенно для OpenPGP) довольно скудна.
Вот, например, то, что я безуспешно пытался использовать с помощью GPGME:
key = GPGME::Data.new(File.open(path_to_file))
data = GPGME::Data.new("I want to encrypt this string.")
# Raises GPGME::Error::InvalidValue
GPGME::Ctx.new do |ctx|
e = ctx.encrypt(key, data)
end
Кто-нибудь уже проходил через это? Неужели это не может быть так сложно?
GPGME::Key.import(File.open(path_to_file))
? Если это все еще не удается, что, если вы декодируете .asc с помощью Base64 и повторяете попытку? - person emboss   schedule 18.07.2012