Commit 7432d073 authored by Andy Polyakov's avatar Andy Polyakov
Browse files

Switch to RFC-compliant version encoding in DTLS.

parent 04e2ab2c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -526,7 +526,7 @@ int dtls1_get_record(SSL *s)
	SSL3_RECORD *rr;
	SSL_SESSION *sess;
	unsigned char *p;
	short version;
	unsigned short version;
	DTLS1_BITMAP *bitmap;
	unsigned int is_next_epoch;

+10 −10
Original line number Diff line number Diff line
@@ -121,7 +121,6 @@
#include <openssl/evp.h>
#include <openssl/x509.h>
#include <openssl/md5.h>
#include <openssl/bn.h>
#ifndef OPENSSL_NO_DH
#include <openssl/dh.h>
#endif
@@ -626,6 +625,7 @@ int dtls1_send_hello_verify_request(SSL *s)
		*(p++) = s->version & 0xFF;

		*(p++) = (unsigned char) s->d1->cookie_len;

		if (s->ctx->app_gen_cookie_cb != NULL &&
		    s->ctx->app_gen_cookie_cb(s, s->d1->cookie, 
			&(s->d1->cookie_len)) == 0)
+1 −3
Original line number Diff line number Diff line
@@ -67,9 +67,7 @@
extern "C" {
#endif

#define DTLS1_VERSION			0x0100
#define DTLS1_VERSION_MAJOR		0x01
#define DTLS1_VERSION_MINOR		0x00
#define DTLS1_VERSION			0xFEFF

#if 0
#define DTLS1_AD_MISSING_HANDSHAKE_MESSAGE    110
+4 −3
Original line number Diff line number Diff line
@@ -774,7 +774,8 @@ int ssl3_get_client_hello(SSL *s)
	s->client_version=(((int)p[0])<<8)|(int)p[1];
	p+=2;

	if (s->client_version < s->version)
	if ((s->version == DTLS1_VERSION && s->client_version > s->version) ||
	    (s->version != DTLS1_VERSION && s->client_version < s->version))
		{
		SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_WRONG_VERSION_NUMBER);
		if ((s->client_version>>8) == SSL3_VERSION_MAJOR)
@@ -825,7 +826,7 @@ int ssl3_get_client_hello(SSL *s)

	p+=j;

	if (SSL_version(s) == DTLS1_VERSION)
	if (s->version == DTLS1_VERSION)
		{
		/* cookie stuff */
		cookie_len = *(p++);
@@ -1821,7 +1822,7 @@ int ssl3_get_client_key_exchange(SSL *s)
			rsa=pkey->pkey.rsa;
			}

		/* TLS */
		/* TLS and [incidentally] DTLS{0xFEFF} */
		if (s->version > SSL3_VERSION)
			{
			n2s(p,i);