| 
									
										
										
										
											2021-02-17 02:15:45 +08:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * Copyright 2021 The OpenSSL Project Authors. All Rights Reserved. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Licensed under the Apache License 2.0 (the "License").  You may not use | 
					
						
							|  |  |  |  * this file except in compliance with the License.  You can obtain a copy | 
					
						
							|  |  |  |  * in the file LICENSE in the source distribution or at | 
					
						
							|  |  |  |  * https://www.openssl.org/source/license.html
 | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef OSSL_INTERNAL_UNICODE_H
 | 
					
						
							|  |  |  | # define OSSL_INTERNAL_UNICODE_H
 | 
					
						
							|  |  |  | # pragma once
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef enum { | 
					
						
							|  |  |  |     SURROGATE_MIN = 0xd800UL, | 
					
						
							|  |  |  |     SURROGATE_MAX = 0xdfffUL, | 
					
						
							|  |  |  |     UNICODE_MAX = 0x10ffffUL, | 
					
						
							|  |  |  |     UNICODE_LIMIT | 
					
						
							|  |  |  | } UNICODE_CONSTANTS; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-20 08:31:45 +08:00
										 |  |  | static ossl_unused ossl_inline int is_unicode_surrogate(unsigned long value) | 
					
						
							| 
									
										
										
										
											2021-02-17 02:15:45 +08:00
										 |  |  | { | 
					
						
							|  |  |  |     return value >= SURROGATE_MIN && value <= SURROGATE_MAX; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-20 08:31:45 +08:00
										 |  |  | static ossl_unused ossl_inline int is_unicode_valid(unsigned long value) | 
					
						
							| 
									
										
										
										
											2021-02-17 02:15:45 +08:00
										 |  |  | { | 
					
						
							|  |  |  |     return value <= UNICODE_MAX && !is_unicode_surrogate(value); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif
 |