Я пытаюсь «интегрировать» поддержку кода IDEA в свою текущую систему, которая использует интерфейс командной строки GnuPG для шифрования/дешифрования файлов данных, отправленных между моей компанией и нашими партнерами. Я прочитал все инструкции, которые я могу найти в Интернете, по различным способам получения этой настройки, и я все еще не могу правильно загружать шифр IDEA.GnuPG с поддержкой IDEA
Во-первых, моя конфигурация: я использую Windows 7 (64-разрядный) Professional и GnuPG 2.0.17. В --version
списки следующим образом:
gpg (GnuPG) 2.0.17 (Gpg4win 2.1.0)
libgcrypt 1.4.6
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Home: C:/Users/<username>/AppData/Roaming/gnupg
Supported algorithms:
Pubkey: RSA, ELG, DSA
Cipher: 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH, CAMELLIA128,
CAMELLIA192, CAMELLIA256
Hash: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2
Командная строка исполняемого на самом деле находится на сетевом ресурсе (\\<SERVERNAME>\<ShareName>\GnuPG\gpg.exe
), который обычно работает отлично за все, что есть для шифрования/дешифрования КРОМЕ, когда я запускать файлы, зашифрованные с использованием кода IDEA. При попытке получить следующее сообщение:
gpg: cipher algorithm 1 (IDEA) is unknown or disabled
gpg: encrypted with 2048-bit ELG key, ID C4186BB7, created 2003-05-14
"<[email protected]>"
gpg: public key decryption failed: Invalid cipher algorithm
gpg: decryption failed: No secret key
Итак, я начал искать все, что мог найти. Я загрузил библиотеку idea.dll
(после того, как выкапывал всевозможные мусорные файлы, пытаясь ее найти) и поместил ее в каталог \\<SERVERNAME>\<ShareName>\GnuPG\lib
, как указано.
Большая часть ресурсов я могу найти говорить о добавлении строки load-extension lib\idea
в файл gpg.conf
, расположенный в C:/Users/<username>/AppData/Roaming/gnupg
. Это не работает, так как я до сих пор получаю те же результаты в команде --version
(без шифрования IDEA, перечисленных в поддерживаемых алгоритмах). Я также попытался явно использовать полный путь к библиотеке, а не только «ярлык» следующим образом: load-extension "\\<SERVERNAME>\<ShareName>\GnuPG\lib\idea.dll"
, но не повезло.
Другое предложение добавить переключатель load-extension
к фактической командной строки, как это:
\\<SERVERNAME>\<ShareName>\GnuPG\gpg.exe --load-extension idea
Я попытался несколько вариаций этого варианта, а также, в том числе с использованием полного имени файла, полный путь и имя файла и т. д., но я до сих пор не могу загрузить шифр IDEA. Я пробовал поставить idea.dll
в каталог GnuPG Home (C:/Users/<username>/AppData/Roaming/gnupg
) и попытаться загрузить GnuPG из этого места со всеми теми же предложениями, как указано выше.
idea.dll
файл У меня нет никакой информации о версии, перечисленные в диалоговом окне Свойства, но это дата модификации указана как 20 сентября 2002 года Любые предложения о чем-то я, возможно, упускать из виду здесь?
EDIT 1: я в конце концов хотел бы отойти от этого моего шифрования/дешифрования с помощью командной строки и перенести мое приложение для использования API BouncyCastle, как я считаю, что шифр IDEA является «встроенным» над там. Однако, к сожалению, у меня проблемы с работой (см. Мой SO question on the problems I'm facing with BouncyCastle).
EDIT 2: Еще одна вещь, которую следует отметить, состоит в том, что все те тесты, которые я сделал выше, были выполнены из основной (повышенной) командной строки - полностью вне моего фактического приложения - так что я могу устранить это как потенциальная причина проблемы.
Я не уверен в деталях, но возникла проблема с загрузкой файлов .dll из сетевого ресурса, который иногда можно предотвратить из соображений безопасности. [Я нашел сообщение в форуме с некоторым обсуждением] (http://communities.bentley.com/products/programming/microstation_programming/f/343173/t/91973) в кратком обзоре, но не уверен, действительно ли это проблема вы наблюдаете. Попытайтесь загрузить его из локальной папки, чтобы проверить проблему. –
** @ JensErat - ** Спасибо за ссылку и за понимание. Как я уже говорил выше, я попытался переместить ** 'idea.dll' ** в каталог GnuPG Home на моем локальном компьютере и попытаться загрузить его оттуда без успеха. Основываясь на вашем комментарии, я даже попытался скопировать всю структуру каталога приложения в локальную папку (** 'C: \ GnuPG' **) и запустить все оттуда, но он по-прежнему не загрузит шифр IDEA. Я думал, что файл ** 'idea.dll' ** был« разблокирован »в диалоговом окне« Свойства », но это тоже не помогло. Это действительно расстраивает. –
Из того, что я читал, вам, возможно, придется скомпилировать DLL-файл самостоятельно. Вы уверены, что это библиотека, скомпилированная для GnuPG, и для той же архитектуры, которую вы используете? Просто использование какого-либо произвольного скомпилированного кода, который вы нашли где-то для _trusted operations_, кажется очень плохой задачей. –