123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- =pod
- =head1 NAME
- OPENSSL_CTX, OPENSSL_CTX_new, OPENSSL_CTX_free, OPENSSL_CTX_load_config,
- OPENSSL_CTX_set0_default
- - OpenSSL library context
- =head1 SYNOPSIS
- #include <openssl/crypto.h>
- typedef struct openssl_ctx_st OPENSSL_CTX;
- OPENSSL_CTX *OPENSSL_CTX_new(void);
- int OPENSSL_CTX_load_config(OPENSSL_CTX *ctx, const char *config_file);
- void OPENSSL_CTX_free(OPENSSL_CTX *ctx);
- OPENSSL_CTX *OPENSSL_CTX_set0_default(OPENSSL_CTX *ctx);
- =head1 DESCRIPTION
- B<OPENSSL_CTX> is an internal OpenSSL library context type.
- Applications may allocate their own, but may also use NULL to use
- a default context with functions that take an B<OPENSSL_CTX>
- argument.
- When a non default library context is in use care should be taken with
- multi-threaded applications to properly clean up thread local resources before
- the OPENSSL_CTX is freed.
- See L<OPENSSL_thread_stop_ex(3)> for more information.
- OPENSSL_CTX_new() creates a new OpenSSL library context.
- OPENSSL_CTX_load_config() loads a configuration file using the given C<ctx>.
- This can be used to associate a library context with providers that are loaded
- from a configuration.
- OPENSSL_CTX_free() frees the given I<ctx>, unless it happens to be the
- default OpenSSL library context.
- OPENSSL_CTX_set0_default() sets the default OpenSSL library context to be
- I<ctx> in the current thread. The previous default library context is
- returned. Care should be taken by the caller to restore the previous
- default library context with a subsequent call of this function.
- Care should be taken when changing the default library context and starting
- async jobs (see L<ASYNC_start_job(3)>), as the default library context when
- the job is started will be used throughout the lifetime of an async job, no
- matter how the calling thread makes further default library context changes
- in the mean time. This means that the calling thread must not free the
- library context that was the default at the start of the async job before
- that job has finished.
- =head1 RETURN VALUES
- OPENSSL_CTX_new() and OPENSSL_CTX_set0_default() return a library context
- pointer on success, or NULL on error.
- OPENSSL_CTX_free() doesn't return any value.
- =head1 HISTORY
- OPENSSL_CTX, OPENSSL_CTX_new(), OPENSSL_CTX_load_config(), OPENSSL_CTX_free()
- and OPENSSL_CTX_set0_default() were added in OpenSSL 3.0.
- =head1 COPYRIGHT
- Copyright 2019-2020 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
- L<https://www.openssl.org/source/license.html>.
- =cut
|