>>>>>Какие существуют аналоги функций php openssl_sign() и openssl_verify() в Си? И если
>>>>>есть примеры проверки цифровой подписи на них.
>>>>
>>>>openssl API. В зависимости от системы /usr/include/openssl/ или /usr/local/include/openssl/
>>>
>>>Можете привести примеры проверки цифровой подписи? Или ссылку, где их можно найти.
>>>
>>
>>Имеется две переменные char *txl и char *sign и ключи. Нужно
>>1) Проверить данные по сигнатуре (аналог openssl_verify в php)
>>2) К данным сгенерировать сигнатуру (аналог openssl_sign).
>
>
>EVP_SignInit (&md_ctx, EVP_sha1());
> EVP_SignUpdate (&md_ctx, data, strlen(data));
> sig_len = sizeof(sig_buf);
> err = EVP_SignFinal (&md_ctx, sig_buf, &sig_len, pkey);
>
> if (err != 1) {
> ERR_print_errors_fp(stderr);
> exit (1);
> }
>
> EVP_PKEY_free (pkey);
>
>
>Как извлечь отсюда сигнатуру и вывести в файл или на печать?/* Read private key */
fp = fopen (keyfile, "r");
if (fp == NULL) exit (1);
pkey = PEM_read_PrivateKey(fp, NULL, NULL, NULL);
fclose (fp);
Что нужно изменить, чтобы читались RSA ключи? Как аналог PEM_read_PrivateKey(fp, NULL, NULL, NULL) для RSA ?
Иначе эта ошибка.
13188:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:642:Expecting: ANY PRIVATE KEY
>>>>>>Какие существуют аналоги функций php openssl_sign() и openssl_verify() в Си? И если
>>>>>>есть примеры проверки цифровой подписи на них.
>>>>>
>>>>>openssl API. В зависимости от системы /usr/include/openssl/ или /usr/local/include/openssl/
>>>>
>>>>Можете привести примеры проверки цифровой подписи? Или ссылку, где их можно найти.
>>>>
>>>
>>>Имеется две переменные char *txl и char *sign и ключи. Нужно
>>>1) Проверить данные по сигнатуре (аналог openssl_verify в php)
>>>2) К данным сгенерировать сигнатуру (аналог openssl_sign).
>>
>>
>>EVP_SignInit (&md_ctx, EVP_sha1());
>> EVP_SignUpdate (&md_ctx, data, strlen(data));
>> sig_len = sizeof(sig_buf);
>> err = EVP_SignFinal (&md_ctx, sig_buf, &sig_len, pkey);
>>
>> if (err != 1) {
>> ERR_print_errors_fp(stderr);
>> exit (1);
>> }
>>
>> EVP_PKEY_free (pkey);
>>
>>
>>Как извлечь отсюда сигнатуру и вывести в файл или на печать?
>
> /* Read private key */
> fp = fopen (keyfile, "r");
> if (fp == NULL) exit (1);
> pkey = PEM_read_PrivateKey(fp, NULL, NULL, NULL);
> fclose (fp);
>Что нужно изменить, чтобы читались RSA ключи? Как аналог PEM_read_PrivateKey(fp, NULL, NULL,
>NULL) для RSA ?
>Иначе эта ошибка.
>13188:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:642:Expecting: ANY PRIVATE KEY
Никто не сталкивался?
на Си даавно не писал - неприходилось.а вот про твой случай могу сказать, что OpenSSL тебе нужна как библиотека - встроенных в Си фунций нет.
есть множество прог использующих АРI OpenSSL пример:
http://mail.godeltech.com/xmail/ &nbs... - SSLpatch для MTA XMail.
приятного просмотра ;)
>на Си даавно не писал - неприходилось.
>
>а вот про твой случай могу сказать, что OpenSSL тебе нужна как
>библиотека - встроенных в Си фунций нет.
>
>есть множество прог использующих АРI OpenSSL пример:
> http://mail.godeltech.com/xmail/
> - SSLpatch для MTA XMail.
>
>
>приятного просмотра ;)
Это 100% верно. Я и нне говорил, что ищу встроенные...:)