| 
									
										
										
										
											2021-06-10 14:58:12 +08:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * Copyright 1995-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
 | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | #include "app_libctx.h"
 | 
					
						
							|  |  |  | #include "apps.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static OSSL_LIB_CTX *app_libctx = NULL; | 
					
						
							|  |  |  | static const char *app_propq = NULL; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | int app_set_propq(const char *arg) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     app_propq = arg; | 
					
						
							|  |  |  |     return 1; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const char *app_get0_propq(void) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return app_propq; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | OSSL_LIB_CTX *app_get0_libctx(void) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return app_libctx; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | OSSL_LIB_CTX *app_create_libctx(void) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     /*
 | 
					
						
							|  |  |  |      * Load the NULL provider into the default library context and create a | 
					
						
							|  |  |  |      * library context which will then be used for any OPT_PROV options. | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     if (app_libctx == NULL) { | 
					
						
							|  |  |  |         if (!app_provider_load(NULL, "null")) { | 
					
						
							| 
									
										
										
										
											2021-10-26 15:16:18 +08:00
										 |  |  |             opt_printf_stderr("Failed to create null provider\n"); | 
					
						
							| 
									
										
										
										
											2021-06-10 14:58:12 +08:00
										 |  |  |             return NULL; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         app_libctx = OSSL_LIB_CTX_new(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     if (app_libctx == NULL) | 
					
						
							|  |  |  |         opt_printf_stderr("Failed to create library context\n"); | 
					
						
							|  |  |  |     return app_libctx; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 |