mirror of
				https://github.com/yuzu-emu/mbedtls.git
				synced 2025-11-04 02:25:05 +00:00 
			
		
		
		
	Secure renegotiation extension should only be sent in case client supports secure renegotiation
This commit is contained in:
		
							parent
							
								
									822e958bb2
								
							
						
					
					
						commit
						7c3c3899cf
					
				| 
						 | 
					@ -1,5 +1,10 @@
 | 
				
			||||||
PolarSSL ChangeLog
 | 
					PolarSSL ChangeLog
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					= Branch 1.2
 | 
				
			||||||
 | 
					Bugfix
 | 
				
			||||||
 | 
					   * Secure renegotiation extension should only be sent in case client
 | 
				
			||||||
 | 
					     supports secure renegotiation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
= Version 1.2.7 released 2013-04-13
 | 
					= Version 1.2.7 released 2013-04-13
 | 
				
			||||||
Features
 | 
					Features
 | 
				
			||||||
   * Ability to specify allowed ciphersuites based on the protocol version.
 | 
					   * Ability to specify allowed ciphersuites based on the protocol version.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -864,31 +864,34 @@ static int ssl_write_server_hello( ssl_context *ssl )
 | 
				
			||||||
    SSL_DEBUG_MSG( 3, ( "server hello, compress alg.: %d",
 | 
					    SSL_DEBUG_MSG( 3, ( "server hello, compress alg.: %d",
 | 
				
			||||||
                   ssl->session_negotiate->compression ) );
 | 
					                   ssl->session_negotiate->compression ) );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    SSL_DEBUG_MSG( 3, ( "server hello, prepping for secure renegotiation extension" ) );
 | 
					    if( ssl->secure_renegotiation == SSL_SECURE_RENEGOTIATION )
 | 
				
			||||||
    ext_len += 5 + ssl->verify_data_len * 2;
 | 
					    {
 | 
				
			||||||
 | 
					        SSL_DEBUG_MSG( 3, ( "server hello, prepping for secure renegotiation extension" ) );
 | 
				
			||||||
 | 
					        ext_len += 5 + ssl->verify_data_len * 2;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    SSL_DEBUG_MSG( 3, ( "server hello, total extension length: %d",
 | 
					        SSL_DEBUG_MSG( 3, ( "server hello, total extension length: %d",
 | 
				
			||||||
                   ext_len ) );
 | 
					                       ext_len ) );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    *p++ = (unsigned char)( ( ext_len >> 8 ) & 0xFF );
 | 
					        *p++ = (unsigned char)( ( ext_len >> 8 ) & 0xFF );
 | 
				
			||||||
    *p++ = (unsigned char)( ( ext_len      ) & 0xFF );
 | 
					        *p++ = (unsigned char)( ( ext_len      ) & 0xFF );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /*
 | 
					        /*
 | 
				
			||||||
     * Secure renegotiation
 | 
					         * Secure renegotiation
 | 
				
			||||||
     */
 | 
					         */
 | 
				
			||||||
    SSL_DEBUG_MSG( 3, ( "client hello, secure renegotiation extension" ) );
 | 
					        SSL_DEBUG_MSG( 3, ( "client hello, secure renegotiation extension" ) );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    *p++ = (unsigned char)( ( TLS_EXT_RENEGOTIATION_INFO >> 8 ) & 0xFF );
 | 
					        *p++ = (unsigned char)( ( TLS_EXT_RENEGOTIATION_INFO >> 8 ) & 0xFF );
 | 
				
			||||||
    *p++ = (unsigned char)( ( TLS_EXT_RENEGOTIATION_INFO      ) & 0xFF );
 | 
					        *p++ = (unsigned char)( ( TLS_EXT_RENEGOTIATION_INFO      ) & 0xFF );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    *p++ = 0x00;
 | 
					        *p++ = 0x00;
 | 
				
			||||||
    *p++ = ( ssl->verify_data_len * 2 + 1 ) & 0xFF;
 | 
					        *p++ = ( ssl->verify_data_len * 2 + 1 ) & 0xFF;
 | 
				
			||||||
    *p++ = ssl->verify_data_len * 2 & 0xFF;
 | 
					        *p++ = ssl->verify_data_len * 2 & 0xFF;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    memcpy( p, ssl->peer_verify_data, ssl->verify_data_len );
 | 
					        memcpy( p, ssl->peer_verify_data, ssl->verify_data_len );
 | 
				
			||||||
    p += ssl->verify_data_len;
 | 
					        p += ssl->verify_data_len;
 | 
				
			||||||
    memcpy( p, ssl->own_verify_data, ssl->verify_data_len );
 | 
					        memcpy( p, ssl->own_verify_data, ssl->verify_data_len );
 | 
				
			||||||
    p += ssl->verify_data_len;
 | 
					        p += ssl->verify_data_len;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ssl->out_msglen  = p - buf;
 | 
					    ssl->out_msglen  = p - buf;
 | 
				
			||||||
    ssl->out_msgtype = SSL_MSG_HANDSHAKE;
 | 
					    ssl->out_msgtype = SSL_MSG_HANDSHAKE;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue