int ssl_fill_hello_random(SSL *s, int server, unsigned char *result, int len)
{
int send_time = 0;
+
if (len < 4)
return 0;
if (server)
unsigned long Time = (unsigned long)time(NULL);
unsigned char *p = result;
l2n(Time, p);
- return RAND_pseudo_bytes(p, len - 4);
+ return RAND_bytes(p, len - 4);
} else
- return RAND_pseudo_bytes(result, len);
+ return RAND_bytes(result, len);
}
static int ssl23_client_hello(SSL *s)
static int ssl23_get_server_hello(SSL *s)
{
- char buf[8];
+ unsigned char buf[8];
unsigned char *p;
int i;
int n;
if (n != 7)
return (n);
- p = s->packet;
+ p = RECORD_LAYER_get_packet(&s->rlayer);
memcpy(buf, p, n);
/*
* put the 7 bytes we have read into the input buffer for SSLv3
*/
- s->rstate = SSL_ST_READ_HEADER;
- s->packet_length = n;
- if (s->s3->rbuf.buf == NULL)
- if (!ssl3_setup_read_buffer(s))
- goto err;
- s->packet = &(s->s3->rbuf.buf[0]);
- memcpy(s->packet, buf, n);
- s->s3->rbuf.left = n;
- s->s3->rbuf.offset = 0;
+ if(!RECORD_LAYER_set_data(&s->rlayer, buf, n))
+ goto err;
s->handshake_func = s->method->ssl_connect;
} else {