mirror of https://github.com/openssl/openssl.git
				
				
				
			Fix EAP FAST in the new state machine
The new state machine code missed an allowed transition when resuming a session via EAP FAST. This commits adds the missing check for the transition. Reviewed-by: Andy Polyakov <appro@openssl.org>
This commit is contained in:
		
							parent
							
								
									1c86d8fd41
								
							
						
					
					
						commit
						ad3819c29e
					
				|  | @ -283,6 +283,19 @@ int ossl_statem_client_read_transition(SSL *s, int mt) | ||||||
|             if (SSL_IS_DTLS(s) && mt == DTLS1_MT_HELLO_VERIFY_REQUEST) { |             if (SSL_IS_DTLS(s) && mt == DTLS1_MT_HELLO_VERIFY_REQUEST) { | ||||||
|                 st->hand_state = DTLS_ST_CR_HELLO_VERIFY_REQUEST; |                 st->hand_state = DTLS_ST_CR_HELLO_VERIFY_REQUEST; | ||||||
|                 return 1; |                 return 1; | ||||||
|  |             } else if (s->version >= TLS1_VERSION | ||||||
|  |                     && s->tls_session_secret_cb != NULL | ||||||
|  |                     && s->session->tlsext_tick != NULL | ||||||
|  |                     && mt == SSL3_MT_CHANGE_CIPHER_SPEC) { | ||||||
|  |                 /*
 | ||||||
|  |                  * Normally, we can tell if the server is resuming the session | ||||||
|  |                  * from the session ID. EAP-FAST (RFC 4851), however, relies on | ||||||
|  |                  * the next server message after the ServerHello to determine if | ||||||
|  |                  * the server is resuming. | ||||||
|  |                  */ | ||||||
|  |                 s->hit = 1; | ||||||
|  |                 st->hand_state = TLS_ST_CR_CHANGE; | ||||||
|  |                 return 1; | ||||||
|             } else if (!(s->s3->tmp.new_cipher->algorithm_auth |             } else if (!(s->s3->tmp.new_cipher->algorithm_auth | ||||||
|                         & (SSL_aNULL | SSL_aSRP | SSL_aPSK))) { |                         & (SSL_aNULL | SSL_aSRP | SSL_aPSK))) { | ||||||
|                 if (mt == SSL3_MT_CERTIFICATE) { |                 if (mt == SSL3_MT_CERTIFICATE) { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue