- Corrected bugs in SRP implementation, which prevented gnutls
to interoperate with other implementations.
- Corrected bug in cert_type extension.
+- Corrected extension type checks which used an 8 bit extension size,
+ instead of 16 bits.
Version 0.5.5 (3/09/2002)
- Updated the SRP implementation to the latest draft. The blowfish
/* Checks if the extension we just received is one of the
* requested ones. Otherwise it's a fatal error.
*/
-static int _gnutls_extension_list_check( gnutls_session session, uint8 type) {
+static int _gnutls_extension_list_check( gnutls_session session, uint16 type) {
int i;
if (session->security_parameters.entity==GNUTLS_CLIENT) {
for(i=0;i<session->internals.extensions_sent_size;i++) {
* This list is used to check whether the (later) received
* extensions are the ones we requested.
*/
-static void _gnutls_extension_list_add( gnutls_session session, uint8 type) {
+static void _gnutls_extension_list_add( gnutls_session session, uint16 type) {
if (session->security_parameters.entity==GNUTLS_CLIENT) {
- if (session->internals.extensions_sent_size <
- sizeof(session->internals.extensions_sent)) {
-
+ if (session->internals.extensions_sent_size < MAX_EXT_TYPES) {
session->internals.extensions_sent[session->internals.extensions_sent_size] = type;
session->internals.extensions_sent_size++;
} else {
#define MAX_LOG_SIZE 1024 /* maximum number of log message */
#define MAX_SRP_USERNAME 256
+/* we can receive up to MAX_EXT_TYPES extensions.
+ */
#define MAX_EXT_TYPES 16
/* The initial size of the receive
/* holds the extensions we sent to the peer
* (in case of a client)
*/
- uint8 extensions_sent[MAX_EXT_TYPES];
- uint8 extensions_sent_size;
-
+ uint16 extensions_sent[MAX_EXT_TYPES];
+ uint16 extensions_sent_size;
+
/* is 0 if we are to send the whole PGP key, or non zero
* if the fingerprint is to be sent.
*/