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
 |