Как известно, в openssl не так давно включили поддержку нашей ЭЦП. Решил с ней поковыряться: скачал последнюю версию openssl, собрал engine ccgost, все путем. Только вот в чем проблема: документация, похоже, сильно отстает от кода. Например, смотрим кусок кода из man EVP_PKEY_sign_init:
#include <openssl/evp.h>
#include <openssl/rsa.h>
EVP_PKEY_CTX *ctx;
unsigned char *md, *sig;
size_t mdlen, siglen;
EVP_PKEY *signing_key;
/* NB: assumes signing_key, md and mdlen are already set up
* and that signing_key is an RSA private key
*/
ctx = EVP_PKEY_CTX_new(signing_key);
// bla-bla-bla
В то же время, в хедере evp.h функция EVP_PKEY_CTX_new() объявлена с двумя параметрами вместо одного. Можно конечно покопаться в исходниках, но может быть кто-нибудь встречал уже примеры использования openssl с ГОСТовой ЭЦП? Поделитесь ссылками.