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





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Вот и я попал на 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: 1 s   Design: Vadim Derkach