Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   OpenSSL API: проблемма с DSA подписью (http://forum.oszone.net/showthread.php?t=30352)

lunc 18-08-2003 16:04 208324

Подписываю через EVP:
EVP_MD_CTX *ctx_sig = EVP_MD_CTX_create();
EVP_SignInit(ctx_sig, EVP_sha1());
EVP_SignUpdate(ctx_sig, data_in, 8);
EVP_SignFinal(ctx_sig, data_sign, &sign_len, priv_key)

здесь unsigned char data_in[8] = "0123456";

EVP_SignFinal(...) возвращает 0 (все плохо).
priv_key описывается так:

EVP_PKEY *priv_key = EVP_PKEY_new();

Если в priv_key засунуть RSA ключ - все нормально, если DSA, то все валится.

Ключ генерится так:

DSA *dsa = DSA_new();
EVP_PKEY *priv_key = EVP_PKEY_new();
dsa = DSA_generate_parameters(128, NULL, 0, NULL, NULL, 0, NULL);

while (RAND_status() != 1) {
RAND_seed(dsa, 128);
}
DSA_generate_key(dsa);

EVP_PKEY_assign_DSA(priv_key, dsa);

Ключ вроде генерируется правильно.

Вчем дело?

Может я неправильно выставляю, prng? Вроде разница между подписью RSA и DSA только в этом....

Хелп, плз!! openssl.org и егзамплы молчат, смотрел сорсы самого openssl (openssl-0.9.7/apps/) - ничего не помогает...

lunc 18-08-2003 19:13 208325

Проблемма решена.
Вместо EVP_sha() или EVP_sha1() надо юзать EVP_dss() или EVP_dss1() - для SHA хэша. RFC2792 говорит, о том, что в настоящее время можно исаользовать с DSA только SHA хэш.


Время: 18:43.

Время: 18:43.
© OSzone.net 2001-