X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=doc%2Finternal%2Fman3%2FOSSL_METHOD_STORE.pod;h=2768524e0c5b6d15560dcf4f5b378197003b060e;hp=f95d397cf34144c78e683e344ad8bd122c199b00;hb=bdbf2df2e685ae653f3c683ce2f734eb0c0888e0;hpb=25b25b0f80f2b3f0c5449a6d5a8e7639187f9bf3 diff --git a/doc/internal/man3/OSSL_METHOD_STORE.pod b/doc/internal/man3/OSSL_METHOD_STORE.pod index f95d397cf3..2768524e0c 100644 --- a/doc/internal/man3/OSSL_METHOD_STORE.pod +++ b/doc/internal/man3/OSSL_METHOD_STORE.pod @@ -19,9 +19,10 @@ ossl_method_store_cache_get, ossl_method_store_cache_set void ossl_method_store_free(OSSL_METHOD_STORE *store); int ossl_method_store_init(OPENSSL_CTX *ctx); void ossl_method_store_cleanup(OPENSSL_CTX *ctx); - int ossl_method_store_add(OSSL_METHOD_STORE *store, - int nid, const char *properties, - void *method, void (*method_destruct)(void *)); + int ossl_method_store_add(OSSL_METHOD_STORE *store, const OSSL_PROVIDER *prov, + int nid, const char *properties, void *method, + int (*method_up_ref)(void *), + void (*method_destruct)(void *)); int ossl_method_store_remove(OSSL_METHOD_STORE *store, int nid, const void *method); int ossl_method_store_fetch(OSSL_METHOD_STORE *store, @@ -32,7 +33,9 @@ ossl_method_store_cache_get, ossl_method_store_cache_set int ossl_method_store_cache_get(OSSL_METHOD_STORE *store, int nid, const char *prop_query, void **method); int ossl_method_store_cache_set(OSSL_METHOD_STORE *store, int nid, - const char *prop_query, void *method); + const char *prop_query, void *method, + int (*method_up_ref)(void *), + void (*method_destruct)(void *)); =head1 DESCRIPTION @@ -52,58 +55,66 @@ separately (see L below). =head2 Store Functions ossl_method_store_init() initialises the method store subsystem in the scope of -the library context B. +the library context I. ossl_method_store_cleanup() cleans up and shuts down the implementation method -store subsystem in the scope of the library context B. +store subsystem in the scope of the library context I. ossl_method_store_new() create a new empty method store using the supplied -B to allow access to the required underlying property data. +I to allow access to the required underlying property data. -ossl_method_store_free() frees resources allocated to B. +ossl_method_store_free() frees resources allocated to I. -ossl_method_store_add() adds the B to the B as an instance of an -algorithm indicated by B and the property definition B. -The optional B function is called when B is being -released from B. +ossl_method_store_add() adds the I constructed from an implementation in +the provider I to the I as an instance of an algorithm indicated by +I and the property definition I, unless the I already +has a method from the same provider with the same I and I. +If the I function is given, it's called to increment the +reference count of the method. +If the I function is given, it's called when this function +fails to add the method to the store, or later on when it is being released from +the I. -ossl_method_store_remove() removes the B identified by B from the -B. +ossl_method_store_remove() removes the I identified by I from the +I. -ossl_method_store_fetch() queries B for an method identified by B -that matches the property query B. -The result, if any, is returned in B. +ossl_method_store_fetch() queries I for a method identified by I +that matches the property query I. +The result, if any, is returned in I. -ossl_method_store_set_global_properties() sets method B wide query -properties to B. +ossl_method_store_set_global_properties() sets method I wide query +properties to I. All subsequent fetches will need to meet both these global query properties and the ones passed to the ossl_method_store_free(). =head2 Cache Functions -ossl_method_store_cache_get() queries the cache associated with the B -for an method identified by B that matches the property query -B. -The result, if any, is returned in B. +ossl_method_store_cache_get() queries the cache associated with the I +for a method identified by I that matches the property query +I. +The result, if any, is returned in I. -ossl_method_store_cache_set() sets a cache entry identified by B with the -property query B in the B. -Future cache gets will return the specified B. +ossl_method_store_cache_set() sets a cache entry identified by I with the +property query I in the I. +Future calls to ossl_method_store_cache_get() will return the specified I. +The I function is called to increment the +reference count of the method and the I function is called +to decrement it. =head1 RETURN VALUES -ossl_method_store_new() a new method store object or B on failure. +ossl_method_store_new() returns a new method store object or 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. +ossl_method_store_free() and ossl_method_store_cleanup() do not return any value. =head1 HISTORY -This functionality was added to OpenSSL 3.0.0. +This functionality was added to OpenSSL 3.0. =head1 COPYRIGHT