mirror of https://github.com/openssl/openssl.git
				
				
				
			
		
			
				
	
	
		
			89 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| =pod
 | |
| 
 | |
| =head1 NAME
 | |
| 
 | |
| CTLOG_STORE_new_ex,
 | |
| CTLOG_STORE_new, CTLOG_STORE_free,
 | |
| CTLOG_STORE_load_default_file, CTLOG_STORE_load_file -
 | |
| Create and populate a Certificate Transparency log list
 | |
| 
 | |
| =head1 SYNOPSIS
 | |
| 
 | |
|  #include <openssl/ct.h>
 | |
| 
 | |
|  CTLOG_STORE *CTLOG_STORE_new_ex(OSSL_LIB_CTX *libctx, const char *propq);
 | |
|  CTLOG_STORE *CTLOG_STORE_new(void);
 | |
|  void CTLOG_STORE_free(CTLOG_STORE *store);
 | |
| 
 | |
|  int CTLOG_STORE_load_default_file(CTLOG_STORE *store);
 | |
|  int CTLOG_STORE_load_file(CTLOG_STORE *store, const char *file);
 | |
| 
 | |
| =head1 DESCRIPTION
 | |
| 
 | |
| A CTLOG_STORE is a container for a list of CTLOGs (Certificate Transparency
 | |
| logs). The list can be loaded from one or more files and then searched by LogID
 | |
| (see RFC 6962, Section 3.2, for the definition of a LogID).
 | |
| 
 | |
| CTLOG_STORE_new_ex() creates an empty list of CT logs associated with
 | |
| the library context I<libctx> and the property query string I<propq>.
 | |
| 
 | |
| CTLOG_STORE_new() does the same thing as CTLOG_STORE_new_ex() but with
 | |
| the default library context and property query string.
 | |
| 
 | |
| The CTLOG_STORE is then populated by CTLOG_STORE_load_default_file() or
 | |
| CTLOG_STORE_load_file(). CTLOG_STORE_load_default_file() loads from the default
 | |
| file, which is named F<ct_log_list.cnf> in OPENSSLDIR (see the output of
 | |
| L<openssl-version(1)>). This can be overridden using an environment variable
 | |
| named B<CTLOG_FILE>. CTLOG_STORE_load_file() loads from a caller-specified file
 | |
| path instead. Both of these functions append any loaded CT logs to the
 | |
| CTLOG_STORE.
 | |
| 
 | |
| The expected format of the file is:
 | |
| 
 | |
|  enabled_logs=foo,bar
 | |
| 
 | |
|  [foo]
 | |
|  description = Log 1
 | |
|  key = <base64-encoded DER SubjectPublicKeyInfo here>
 | |
| 
 | |
|  [bar]
 | |
|  description = Log 2
 | |
|  key = <base64-encoded DER SubjectPublicKeyInfo here>
 | |
| 
 | |
| Once a CTLOG_STORE is no longer required, it should be passed to
 | |
| CTLOG_STORE_free(). This will delete all of the CTLOGs stored within, along
 | |
| with the CTLOG_STORE itself. If the argument is NULL, nothing is done.
 | |
| 
 | |
| =head1 NOTES
 | |
| 
 | |
| If there are any invalid CT logs in a file, they are skipped and the remaining
 | |
| valid logs will still be added to the CTLOG_STORE. A CT log will be considered
 | |
| invalid if it is missing a "key" or "description" field.
 | |
| 
 | |
| =head1 RETURN VALUES
 | |
| 
 | |
| Both B<CTLOG_STORE_load_default_file> and B<CTLOG_STORE_load_file> return 1 if
 | |
| all CT logs in the file are successfully parsed and loaded, 0 otherwise.
 | |
| 
 | |
| =head1 SEE ALSO
 | |
| 
 | |
| L<ct(7)>,
 | |
| L<CTLOG_STORE_get0_log_by_id(3)>,
 | |
| L<SSL_CTX_set_ctlog_list_file(3)>
 | |
| 
 | |
| =head1 HISTORY
 | |
| 
 | |
| CTLOG_STORE_new_ex was added in OpenSSL 3.0. All other functions were
 | |
| added in OpenSSL 1.1.0.
 | |
| 
 | |
| =head1 COPYRIGHT
 | |
| 
 | |
| Copyright 2016-2024 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
 |