mirror of https://github.com/openssl/openssl.git
				
				
				
			
		
			
	
	
		
			104 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			104 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | =pod | ||
|  | 
 | ||
|  | =head1 NAME | ||
|  | 
 | ||
|  | ossl_method_store_new, ossl_method_store_free, ossl_method_store_init, | ||
|  | ossl_method_store_cleanup, ossl_method_store_add, ossl_method_store_remove, | ||
|  | ossl_method_store_fetch, ossl_method_store_set_global_properties, | ||
|  | ossl_method_store_cache_get and ossl_method_store_cache_set | ||
|  | - implementation method store and query | ||
|  | 
 | ||
|  | =head1 SYNOPSIS | ||
|  | 
 | ||
|  |  #include "internal/property.h" | ||
|  | 
 | ||
|  |  typedef struct ossl_method_store_st OSSL_METHOD_STORE; | ||
|  | 
 | ||
|  |  OSSL_METHOD_STORE *ossl_method_store_new(void); | ||
|  |  void ossl_method_store_free(OSSL_METHOD_STORE *store); | ||
|  |  int ossl_method_store_init(void); | ||
|  |  void ossl_method_store_cleanup(void); | ||
|  |  int ossl_method_store_add(OSSL_METHOD_STORE *store, | ||
|  |                            int nid, const char *properties, | ||
|  |                            void *implementation, | ||
|  |                            void (*implementation_destruct)(void *)); | ||
|  |  int ossl_method_store_remove(OSSL_METHOD_STORE *store, | ||
|  |                               int nid, const void *implementation); | ||
|  |  int ossl_method_store_fetch(OSSL_METHOD_STORE *store, | ||
|  |                              int nid, const char *properties, | ||
|  |                              void **result); | ||
|  |  int ossl_method_store_set_global_properties(OSSL_METHOD_STORE *store, | ||
|  |                                             const char *prop_query); | ||
|  |  int ossl_method_store_cache_get(OSSL_METHOD_STORE *store, int nid, | ||
|  |                                  const char *prop_query, void **result); | ||
|  |  int ossl_method_store_cache_set(OSSL_METHOD_STORE *store, int nid, | ||
|  |                                  const char *prop_query, void *result); | ||
|  | 
 | ||
|  | =head1 DESCRIPTION | ||
|  | 
 | ||
|  | OSSL_METHOD_STORE stores implementations of algorithms that can be queried using | ||
|  | properties and a NID. | ||
|  | 
 | ||
|  | ossl_method_store_init() initialises the implementation method store subsystem. | ||
|  | 
 | ||
|  | ossl_method_store_cleanup() cleans up and shuts down the implementation method | ||
|  | store subsystem | ||
|  | 
 | ||
|  | ossl_method_store_new() create a new empty implementation method store. | ||
|  | 
 | ||
|  | ossl_method_store_free() frees resources allocated to B<store>. | ||
|  | 
 | ||
|  | ossl_method_store_add() adds the B<implementation> to the B<store> as an | ||
|  | instance of the algorithm indicated by B<nid> and the property definition | ||
|  | <properties>. | ||
|  | The optional B<implementation_destruct> function is called when | ||
|  | B<implementation> is being released from B<store>. | ||
|  | 
 | ||
|  | ossl_method_store_remove() remove the B<implementation> of algorithm B<nid> | ||
|  | from the B<store>. | ||
|  | 
 | ||
|  | ossl_method_store_fetch() query B<store> for an implementation of algorithm | ||
|  | B<nid> that matches the property query B<prop_query>. | ||
|  | The result, if any, is returned in B<result>. | ||
|  | 
 | ||
|  | ossl_method_store_set_global_properties() sets implementation method B<store> | ||
|  | wide query properties to B<prop_query>. | ||
|  | All subsequent fetches will need to meet both these global query properties | ||
|  | and the ones passed to the fetch function. | ||
|  | 
 | ||
|  | ossl_method_store_cache_get() queries the cache associated with the B<store> | ||
|  | for an implementation of algorithm B<nid> that matches the property query | ||
|  | B<prop_query>. | ||
|  | The result, if any, is returned in B<result>. | ||
|  | 
 | ||
|  | ossl_method_store_cache_set() sets a cache entry for algorithm B<nid> with the | ||
|  | property query B<prop_query> in the B<store>. | ||
|  | Future cache gets will return the specified <result>. | ||
|  | 
 | ||
|  | =head1 RETURN VALUES | ||
|  | 
 | ||
|  | ossl_method_store_new() a new method store object or B<NULL> on failure. | ||
|  | 
 | ||
|  | ossl_method_store_free(), ossl_method_store_add(), | ||
|  | ossl_method_store_remove(), ossl_method_store_fetch(), | ||
|  | ossl_method_store_set_global_properties(), ossl_method_store_cache_get() | ||
|  | and ossl_method_store_cache_set() return B<1> on success and B<0> on error. | ||
|  | 
 | ||
|  | ossl_method_store_free() and ossl_method_store_cleanup() do not return values. | ||
|  | 
 | ||
|  | =head1 HISTORY | ||
|  | 
 | ||
|  | This functionality was added to OpenSSL 3.0.0. | ||
|  | 
 | ||
|  | =head1 COPYRIGHT | ||
|  | 
 | ||
|  | Copyright 2019 The OpenSSL Project Authors. All Rights Reserved. | ||
|  | Copyright (c) 2019, Oracle and/or its affiliates.  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 | ||
|  | L<https://www.openssl.org/source/license.html>. | ||
|  | 
 | ||
|  | =cut |