Показать сообщение отдельно
Старый 17.02.2010, 01:10   #65
Новичок
 
Регистрация: 27.08.2009
Сообщений: 17
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
Jetty пока неопределено
По умолчанию

Цитата:
Сообщение от xkor Посмотреть сообщение
не надо его никуда переворачивать, первый байт - старший байт
Вроде получилось, не крешится криптование... Осталось одно НО... у меня каждый раз получается разных 128 байт, несмотря на то что сервер мне отдает один и тот же публичный РСА ключ... Это нормально ?

Стабильный код
PHP код:
/*=============== RequestAuthLogin (RSA) ===============*/
        
unsigned char l_reqauthlogin[]=
                
"\xb2\x00" // Size
                
"\x00" // RequestAuthLogin (RSA) packet
                
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
                "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
                "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
                "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
                "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
                "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20"
                "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
                "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
                "\x00\x00\x00\x00"  
// GGAuthResponse from GGAuth packet
                
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
                "\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
                "\x00\x00\x00\x00" 
//CRC
                
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00";
        
pktsize = (unsigned char)(l_reqauthlogin[1]*256+l_reqauthlogin[0]);
        
memcpy((l_reqauthlogin+2+1+96+2), loginsizeof(login));
        
memcpy((l_reqauthlogin+2+1+112), pwdsizeof(pwd));
        
RSA rsa_key;
        
rsa_key RSA_new();
        
BIGNUM bn_mod;
        
bn_mod BN_new();
        
bn_mod BN_bin2bn(RSA_keysizeof(RSA_key), NULL);
        
rsa_key->bn_mod;
        
rsa_key RSA_generate_key(102465537NULLNULL);
        
result RSA_public_encrypt (128, (l_reqauthlogin+3), (l_reqauthlogin+3), rsa_keyRSA_NO_PADDING);
        if (
result <= 0) {
                
printf("Error: %i %s\n"resultERR_error_string(ERR_get_error(), NULL));
        } 
        
RSA_free(rsa_key); 

Последний раз редактировалось Jetty, 17.02.2010 в 01:32.
Jetty вне форума   Ответить с цитированием