Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Шифрование данных с помощью openSSL
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Изучаю библиотеку openSSL. Есть пример: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Взят здесь. В методе open первым параметром передается KEYS - он нигде не определен, о чем и говорит мне среда. Примеры вроде даются на C, я делаю на C++. Если кто-нибудь знает, где определен параметр KEYS, буду рад узнать об этом от вас тоже. С представленной мной ссылки предшествующие этому три примера выполняются отлично на C++, правда при компиляции вместо -lssl необходимо было указать -lcrypto и во втором примере добавить некоторые инклуды. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2014, 14:25 |
|
||
|
Шифрование данных с помощью openSSL
|
|||
|---|---|---|---|
|
#18+
Все понятно - это тот файл куда запишутся ключи, наверно ключи. Пока еще не понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2014, 14:51 |
|
||
|
Шифрование данных с помощью openSSL
|
|||
|---|---|---|---|
|
#18+
Функция open - создаёт/открывает файл. И у нее первый аргумент - это путь+имя файла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2014, 17:02 |
|
||
|
Шифрование данных с помощью openSSL
|
|||
|---|---|---|---|
|
#18+
Теперь вопрос по следующему примеру: в методе Код: plaintext 1. параметры ivec и num - не были инициализированы. Как должен быть инициализирован вектор инициализации ivec? Для num мне необходимо написать функцию возвращающую сколько байт последнего блока используется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2014, 07:45 |
|
||
|
Шифрование данных с помощью openSSL
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Разобрался с openSSL на linux - все работает. Теперь нужно тоже сделать для windows. Установил все что нужно. Код практически такой же, как и на linux, за исключением чтения и записи файлов, но это не важно, так как это не влияет на появление моей ошибки. В ubuntu для подключения библиотеки к проекту я использовал флаг -lcrypto. На windows необходимо было указать директорию с заголовками, директорию с библиотеками и указать в зависимостях две библиотеки. Я все сделал, но при выполнении кода генерации ключа выдает ошибку: Список ошибок Ошибка 10 error LNK1120: 6 неразрешенных внешних элементов *путь\OpenSSLAPPAsymmetric.exe Проект - OpenSSLAPPAsymmetric Ошибка 8 error LNK2001: неразрешенный внешний символ "_EVP_get_cipherbyname" *путь\Main.obj Проект - OpenSSLAPPAsymmetric Ошибка 5 error LNK2001: неразрешенный внешний символ "_OpenSSL_add_all_ciphers" *путь\Main.obj Проект - OpenSSLAPPAsymmetric Ошибка 7 error LNK2001: неразрешенный внешний символ "_PEM_write_RSAPrivateKey" *путь\Main.obj Проект - OpenSSLAPPAsymmetric Ошибка 9 error LNK2001: неразрешенный внешний символ "_PEM_write_RSAPublicKey" *путь\Main.obj Проект - OpenSSLAPPAsymmetric Ошибка 6 error LNK2001: неразрешенный внешний символ "_RSA_free" *путь\Main.obj Проект - OpenSSLAPPAsymmetric Ошибка 4 error LNK2001: неразрешенный внешний символ "_RSA_generate_key" *путь\Main.obj Проект - OpenSSLAPPAsymmetric Функция генерации ключей Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. Повторюсь, что на ubuntu данная функция прекрасно работает. Если кто-нибудь сталкивался с подобной проблемой буду рад, если поделитесь опытом. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 15:34 |
|
||
|
Шифрование данных с помощью openSSL
|
|||
|---|---|---|---|
|
#18+
Мы не знаем, какой у тебя компиллятор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 15:50 |
|
||
|
Шифрование данных с помощью openSSL
|
|||
|---|---|---|---|
|
#18+
mayton, На винде пишу на VS соответственно и компилятор майкрософтовский. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 16:02 |
|
||
|
Шифрование данных с помощью openSSL
|
|||
|---|---|---|---|
|
#18+
Ну сделай скрин где ты указал опции линкера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 17:02 |
|
||
|
Шифрование данных с помощью openSSL
|
|||
|---|---|---|---|
|
#18+
Может это поможет http://stackoverflow.com/questions/8993805/poco-c-library-static-linking-with-mt-error ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 17:42 |
|
||
|
Шифрование данных с помощью openSSL
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. Вот эти все символы _EVP_get_cipherbyname и так далее , должны быть в каких-то библиотеках, и ты их должен указать при сборке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2014, 18:09 |
|
||
|
Шифрование данных с помощью openSSL
|
|||
|---|---|---|---|
|
#18+
maytonНу сделай скрин где ты указал опции линкера. MasterZivВот эти все символы _EVP_get_cipherbyname и так далее , должны быть в каких-то библиотеках, и ты их должен указать при сборке. Для установки библиотеки на ubuntu и на windows пользовался этой статьей. На linux все нормально прошло. На windows первые две команды прошли нормально, третья выдала ошибку, поэтому взял здесь установщик - все поставилось без проблем. В корне диска "C" создалась папка с инклудами, библиотеками, и двумя файлами библиотек, которые необходимо указать в зависимостях, ну и много чего еще. Далее делаю как сказано здесь : Необходимые действия для подключения библиотеки к проекту Additional Include Directories: c:/Temp/openssl/include Additional Library Directories: c:/Temp/openssl/lib Additional Dependencies: libeay32.lib ssleay32.lib К слову, если убрать флаг -lcrypto (с флагом -lssl, как показано в статье у меня не работает на ubuntu) в проекте на ubuntu, то будут такие же ошибки как и на винде сейчас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 07:37 |
|
||
|
Шифрование данных с помощью openSSL
|
|||
|---|---|---|---|
|
#18+
Все, проблему решил. Теперь возникает ошибка в строке вышеуказанной функции: Код: plaintext 1. 2. 3. Ошибка: Код: plaintext 1. Если кто-нибудь знает её значение прошу поведать мне об этом. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 12:17 |
|
||
|
Шифрование данных с помощью openSSL
|
|||
|---|---|---|---|
|
#18+
Ошибку исправил. Второй раз уже нашел ответ на китайском форуме) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 14:51 |
|
||
|
Шифрование данных с помощью openSSL
|
|||
|---|---|---|---|
|
#18+
La FranceОшибку исправил. Второй раз уже нашел ответ на китайском форуме) А написать как решили, чтобы следующий не искал на китайском форуме? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 20:39 |
|
||
|
Шифрование данных с помощью openSSL
|
|||
|---|---|---|---|
|
#18+
Китайцы рулят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 20:46 |
|
||
|
Шифрование данных с помощью openSSL
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyА написать как решили, чтобы следующий не искал на китайском форуме? - В первом случае необходимо было поставить библиотеку для 32-х разрядной системы вместо 64-х разрядной (у меня 64-х разрядная система, но тем не менее). - Во втором случае к проекту нужно было добавить #include <openssl/applink.c> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2014, 06:28 |
|
||
|
Шифрование данных с помощью openSSL
|
|||
|---|---|---|---|
|
#18+
La France- Во втором случае к проекту нужно было добавить #include <openssl/applink.c> А это точно китайцы посоветовали? Больше похоже на индусов. Рекомендую вам более полно разобраться в этой проблеме, т.к. это решение, может и работает, но точно некорректно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2014, 06:38 |
|
||
|
Шифрование данных с помощью openSSL
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyА это точно китайцы посоветовали? Больше похоже на индусов. Рекомендую вам более полно разобраться в этой проблеме, т.к. это решение, может и работает, но точно некорректно. Тогда уж это индусы маскирующиеся под китайцев. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2014, 06:45 |
|
||
|
Шифрование данных с помощью openSSL
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky, На чём основаны ваши сомнения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2014, 06:46 |
|
||
|
Шифрование данных с помощью openSSL
|
|||
|---|---|---|---|
|
#18+
La FranceНа чём основаны ваши сомнения? На том, что если вы так сделаете в двух модулях программы, то программа не соберется из-за дубликатов переменных и функций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2014, 07:14 |
|
||
|
Шифрование данных с помощью openSSL
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky, О каких модулях вы говорите? Если вы имеете ввиду, что на сервере и клиенте у меня будет подобное, вы ошибаетесь. Во-первых сервер и клиент никогда на одной машине стоять не будут. Во-вторых сервер пишу на netbeans и указывать там данный инклюд нет необходимости. Если я вас неправильно понял, поясните, в каком месте у меня возникнет конфликт одноименных функций и полей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2014, 07:33 |
|
||
|
Шифрование данных с помощью openSSL
|
|||
|---|---|---|---|
|
#18+
La France, Модуль это в данном случае файл исходника с расширением .c В нетривиальных программах, модуле обычно несколько. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2014, 07:37 |
|
||
|
Шифрование данных с помощью openSSL
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky, Программа, что я пишу вся из плагинов будет состоять, тут вы правы. Но, думаю, данная библиотека только в клиенте будет использоваться, так что проблем не должно возникнуть. Спасибо за предупреждение! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2014, 08:00 |
|
||
|
Шифрование данных с помощью openSSL
|
|||
|---|---|---|---|
|
#18+
La France, Проблема не только в этом, а в том что вы включаете файл реализации, тогда как включать надо файл заголовков этой реализации, а саму реализацию нужно добавить в проект отдельным модулем, который будет откомпилирован и прилинован к вашему приложению. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2014, 08:12 |
|
||
|
Шифрование данных с помощью openSSL
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyLa France, Проблема не только в этом, а в том что вы включаете файл реализации, тогда как включать надо файл заголовков этой реализации, а саму реализацию нужно добавить в проект отдельным модулем, который будет откомпилирован и прилинован к вашему приложению. Что вы подразумеваете под файлом реализации и под файлом заголовков этой реализации? Клиент я сейчас пишу на консоли, для ускорения тестирования. Потом клиент будет в виде одной динамической библиотеки, к классам, полям, функциям которой я буду обращаться из скриптов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2014, 08:56 |
|
||
|
Шифрование данных с помощью openSSL
|
|||
|---|---|---|---|
|
#18+
La FranceЧто вы подразумеваете под файлом реализации и под файлом заголовков этой реализации? .c - реализация .h - заголовок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2014, 09:00 |
|
||
|
Шифрование данных с помощью openSSL
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky, С этим в конечном варианте у меня все в порядке будет. Просто я так всегда код пишу, если его потом в большую программу нужно будет впихивать. Проще и быстрей протестировать работоспособность в программе, которая будет использовать только тот код, который я пишу сейчас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2014, 09:36 |
|
||
|
Шифрование данных с помощью openSSL
|
|||
|---|---|---|---|
|
#18+
Создание ключей и шифрование происходит успешно(шифрование - наверно успешно, ну шифрованный файл как и на ubuntu чуть больше получается чем оригинал), формат ключей вроде такой же. Дешифрование останавливается на вызове функции: Код: plaintext 1. Функция дешифрования Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. Функция RSA_private_decrypt(...) возвращает -1, в документации означает ошибку. Первый параметр в этой функции: key_size - 11 - временное принятие мер, ибо нельзя сделать точно так же как на ubuntu. Функция ERR_get_error() возвращает 67571819. Что это пока не нашел - наверно код ошибки. Если кто-нибудь подскажет, что не так буду рад. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2014, 15:43 |
|
||
|
Шифрование данных с помощью openSSL
|
|||
|---|---|---|---|
|
#18+
С помощью кода ошибки и метода ERR_error_string() получил следующее: Код: plaintext 1. Пытаюсь понять смысл. Методы ERR_lib_error_string, ERR_func_error_string и ERR_reason_error_string названия библиотеки, функции и причину не возвращают, как указано в документации . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2014, 07:45 |
|
||
|
Шифрование данных с помощью openSSL
|
|||
|---|---|---|---|
|
#18+
Очевидно ошибка происходит по причине не правильности первого параметра в методе Код: plaintext 1. На ubuntu это вместо key_size - 11 я передавал inlen, который в цикле инициализировался Код: plaintext 1. На винде такого метода нет, поэтому нужно искать другой способ. И еще, в функции дешифрования, что я указывал, вместо Код: plaintext 1. должно быть Код: plaintext 1. В торопях не углядел) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2014, 09:15 |
|
||
|
Шифрование данных с помощью openSSL
|
|||
|---|---|---|---|
|
#18+
Все работает так же, как и на ubuntu, но не дешифруется шифрованный файл. Возможно шифрованный файл шифрован неправильно. Пока у меня только одно предположение - на ubuntu используется unsigned char*, на винде приходится преобразовывать unsigned char* в char*. В связи с этим у меня вопрос: искажаются ли данные в буфере при явном преобразовании unsigned char* в char*? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2014, 16:02 |
|
||
|
|

start [/forum/topic.php?all=1&fid=57&tid=2019721]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
65ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 178ms |

| 0 / 0 |
