OpenSSL: Make serial number of peer certificate available in event_cb
Add serial number to the event_cb() information for the peer certificate chain. Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
This commit is contained in:
		
							parent
							
								
									ee598e431b
								
							
						
					
					
						commit
						2ff952a5dd
					
				
					 2 changed files with 17 additions and 0 deletions
				
			
		|  | @ -64,6 +64,7 @@ union tls_event_data { | |||
| 		size_t hash_len; | ||||
| 		const char *altsubject[TLS_MAX_ALT_SUBJECT]; | ||||
| 		int num_altsubject; | ||||
| 		const char *serial_num; | ||||
| 	} peer_cert; | ||||
| 
 | ||||
| 	struct { | ||||
|  |  | |||
|  | @ -111,6 +111,12 @@ static int RSA_bits(const RSA *r) | |||
| 	return BN_num_bits(r->n); | ||||
| } | ||||
| #endif /* CONFIG_SUITEB */ | ||||
| 
 | ||||
| 
 | ||||
| static const unsigned char * ASN1_STRING_get0_data(const ASN1_STRING *x) | ||||
| { | ||||
| 	return ASN1_STRING_data((ASN1_STRING *) x); | ||||
| } | ||||
| #endif | ||||
| 
 | ||||
| #ifdef ANDROID | ||||
|  | @ -1824,6 +1830,8 @@ static void openssl_tls_cert_event(struct tls_connection *conn, | |||
| 	GENERAL_NAME *gen; | ||||
| 	void *ext; | ||||
| 	stack_index_t i; | ||||
| 	ASN1_INTEGER *ser; | ||||
| 	char serial_num[128]; | ||||
| #ifdef CONFIG_SHA256 | ||||
| 	u8 hash[32]; | ||||
| #endif /* CONFIG_SHA256 */ | ||||
|  | @ -1852,6 +1860,14 @@ static void openssl_tls_cert_event(struct tls_connection *conn, | |||
| 	ev.peer_cert.depth = depth; | ||||
| 	ev.peer_cert.subject = subject; | ||||
| 
 | ||||
| 	ser = X509_get_serialNumber(err_cert); | ||||
| 	if (ser) { | ||||
| 		wpa_snprintf_hex_uppercase(serial_num, sizeof(serial_num), | ||||
| 					   ASN1_STRING_get0_data(ser), | ||||
| 					   ASN1_STRING_length(ser)); | ||||
| 		ev.peer_cert.serial_num = serial_num; | ||||
| 	} | ||||
| 
 | ||||
| 	ext = X509_get_ext_d2i(err_cert, NID_subject_alt_name, NULL, NULL); | ||||
| 	for (i = 0; ext && i < sk_GENERAL_NAME_num(ext); i++) { | ||||
| 		char *pos; | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Jouni Malinen
						Jouni Malinen