информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Все любят медАтака на InternetПортрет посетителя
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / theory
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Полный текст программы!! 14.10.01 15:24  Число просмотров: 1767
Автор: emergenter Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Если можно дайте полный текст программы!!! Буду благодарен!!
<theory>
Вот и я попал на RSA 09.10.01 13:43  
Автор: PS <PS> Статус: Elderman
<"чистая" ссылка>
Библиотека SSLeay. Модуль RSA. Как пользоваться API ?
RSA * RSA_new(void);
RSA * RSA_new_method(RSA_METHOD *method);
int RSA_size(RSA *);
RSA * RSA_generate_key(int bits, unsigned long e,void
(*callback)(int,int,char *),char *cb_arg);
/* next 4 return -1 on error */
int RSA_public_encrypt(int flen, unsigned char *from,
unsigned char *to, RSA *rsa,int padding);
int RSA_private_encrypt(int flen, unsigned char *from,
unsigned char *to, RSA *rsa,int padding);
int RSA_public_decrypt(int flen, unsigned char *from,
unsigned char *to, RSA *rsa,int padding);
int RSA_private_decrypt(int flen, unsigned char *from,
unsigned char *to, RSA *rsa,int padding);
void RSA_free (RSA *r);

И что ? Как юзить то ????
Написал так:
RSA* rsa = RSA_new( );
RSA_public_encrypt( sizeof( buffer ), buffer, bufferEnc, rsa, 0 );
RSA_private_decrypt( sizeof( buffer ), bufferEnc, bufferDec, rsa, 0 );

Но падает по памяти на RSA_public_encrypt.
Структура RSA описана так:
typedef struct rsa_st
{
/* The first parameter is used to pickup errors where
* this is passed instead of aEVP_PKEY, it is set to 0 */
int pad;
int version;
RSA_METHOD *meth;
BIGNUM *n;
BIGNUM *e;
BIGNUM *d;
BIGNUM *p;
BIGNUM *q;
BIGNUM *dmp1;
BIGNUM *dmq1;
BIGNUM *iqmp;
/* be carefull using this if the RSA structure is shared */
CRYPTO_EX_DATA ex_data;
int references;
int flags;

/* Normally used to cached montgomery values */
char *method_mod_n;
char *method_mod_p;
char *method_mod_q;

BN_BLINDING *blinding;
} RSA;
Как я понимаю секретный ключ n и d, а открытый n и e. Правильно ?
Но кто мне их генерить то будет ? И какую ф-ю для этого вызывать ?
RSA_generate_key вообще не ясно что делает и что ей требуется. Что это за колбэк там такой ?
Вообщем полный трендец.
Кто уже юзел - отзовитесь !
Я понял !!! :))) 10.10.01 11:26  
Автор: PS <PS> Статус: Elderman
<"чистая" ссылка>
RSA* rsa = RSA_generate_key( 320, 67683957, NULL, NULL );

RSA* rsa1 = RSA_new( );
rsa1->n = BN_new( );
rsa1->e = BN_new( );
BN_copy( rsa1->n, rsa->n );
BN_copy( rsa1->e, rsa->e );
int n = RSA_public_encrypt( sizeof( buffer ), buffer, bufferEnc, rsa1, RSA_PKCS1_PADDING );

RSA* rsa2 = RSA_new( );
rsa2->n = BN_new( );
rsa2->d = BN_new( );
BN_copy( rsa2->n, rsa->n );
BN_copy( rsa2->d, rsa->d );
RSA_private_decrypt( n, bufferEnc, bufferDec, rsa2, RSA_PKCS1_PADDING );

Вот собственно и все. Только надо исправить ошибку в SSleay:
rsa_eay.c line 305
Поменять
if(!rsa->meth->bn_mod_exp(ret,f,rsa->d,rsa->n,ctx))
На
if(!rsa->meth->bn_mod_exp(ret,f,rsa->d,rsa->n,ctx, NULL))
Они забыли последний параметр вписать :)
Полный текст программы!! 14.10.01 15:24  
Автор: emergenter Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Если можно дайте полный текст программы!!! Буду благодарен!!
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach