mirror of https://github.com/openssl/openssl.git
				
				
				
			
		
			
	
	
		
			155 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			155 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | =pod | ||
|  | 
 | ||
|  | =head1 NAME | ||
|  | 
 | ||
|  | TS_VERIFY_CTX, TS_VERIFY_CTX_new, TS_VERIFY_CTX_init, TS_VERIFY_CTX_free, | ||
|  | TS_VERIFY_CTX_cleanup, TS_VERIFY_CTX_set_flags, TS_VERIFY_CTX_add_flags, | ||
|  | TS_VERIFY_CTX_set0_data, TS_VERIFY_CTX_set0_imprint, TS_VERIFY_CTX_set0_store, | ||
|  | TS_VERIFY_CTX_set0_certs, TS_VERIFY_CTX_set_certs, TS_VERIFY_CTS_set_certs, | ||
|  | TS_VERIFY_CTX_set_data, TS_VERIFY_CTX_set_imprint, TS_VERIFY_CTX_set_store | ||
|  | - manage the TS response verification context | ||
|  | 
 | ||
|  | =head1 SYNOPSIS | ||
|  | 
 | ||
|  |  #include <openssl/ts.h> | ||
|  | 
 | ||
|  |  typedef struct TS_verify_ctx TS_VERIFY_CTX; | ||
|  | 
 | ||
|  |  TS_VERIFY_CTX *TS_VERIFY_CTX_new(void); | ||
|  |  void TS_VERIFY_CTX_init(TS_VERIFY_CTX *ctx); | ||
|  |  void TS_VERIFY_CTX_free(TS_VERIFY_CTX *ctx); | ||
|  |  void TS_VERIFY_CTX_cleanup(TS_VERIFY_CTX *ctx); | ||
|  |  int TS_VERIFY_CTX_set_flags(TS_VERIFY_CTX *ctx, int f); | ||
|  |  int TS_VERIFY_CTX_add_flags(TS_VERIFY_CTX *ctx, int f); | ||
|  |  int TS_VERIFY_CTX_set0_data(TS_VERIFY_CTX *ctx, BIO *b); | ||
|  |  int TS_VERIFY_CTX_set0_imprint(TS_VERIFY_CTX *ctx, | ||
|  |                                 unsigned char *hexstr, long len); | ||
|  |  int TS_VERIFY_CTX_set0_store(TS_VERIFY_CTX *ctx, X509_STORE *s); | ||
|  |  int TS_VERIFY_CTX_set0_certs(TS_VERIFY_CTX *ctx, STACK_OF(X509) *certs); | ||
|  | 
 | ||
|  | The following functions have been deprecated since OpenSSL 3.4: | ||
|  | 
 | ||
|  |  BIO *TS_VERIFY_CTX_set_data(TS_VERIFY_CTX *ctx, BIO *b); | ||
|  |  unsigned char *TS_VERIFY_CTX_set_imprint(TS_VERIFY_CTX *ctx, | ||
|  |                                           unsigned char *hexstr, long len); | ||
|  |  X509_STORE *TS_VERIFY_CTX_set_store(TS_VERIFY_CTX *ctx, X509_STORE *s); | ||
|  |  STACK_OF(X509) *TS_VERIFY_CTX_set_certs(TS_VERIFY_CTX *ctx, | ||
|  |                                          STACK_OF(X509) *certs); | ||
|  | 
 | ||
|  | The following function has been deprecated since OpenSSL 3.0: | ||
|  | 
 | ||
|  |  STACK_OF(X509) *TS_VERIFY_CTS_set_certs(TS_VERIFY_CTX *ctx, | ||
|  |                                          STACK_OF(X509) *certs); | ||
|  | 
 | ||
|  | =head1 DESCRIPTION | ||
|  | 
 | ||
|  | The Time-Stamp Protocol (TSP) is defined by RFC 3161. TSP is a protocol used to | ||
|  | provide long-term proof of the existence of certain data before a particular | ||
|  | time. TSP defines a Time Stamping Authority (TSA) and an entity that makes | ||
|  | requests to the TSA. Usually, the TSA is referred to as the server side, and the | ||
|  | requesting entity is referred to as the client. | ||
|  | 
 | ||
|  | In TSP, when a server sends a response to a client, the server normally | ||
|  | needs to sign the response data - the TimeStampToken (TST) - with its private | ||
|  | key. Then the client verifies the received TST using the server's certificate | ||
|  | chain. | ||
|  | 
 | ||
|  | For all the following methods, unless noted otherwise, I<ctx> is the | ||
|  | verification context created in advance. | ||
|  | 
 | ||
|  | TS_VERIFY_CTX_new() returns an allocated B<TS_VERIFY_CTX> structure. | ||
|  | 
 | ||
|  | TS_VERIFY_CTX_init() initializes a verification context. | ||
|  | 
 | ||
|  | TS_VERIFY_CTX_free() frees up a B<TS_VERIFY_CTX> object. I<ctx> is the | ||
|  | verification context to be freed. If I<ctx> is NULL, the call is ignored. | ||
|  | 
 | ||
|  | TS_VERIFY_CTX_set_flags() sets the flags in the verification context. I<f> are | ||
|  | the flags to be set. | ||
|  | 
 | ||
|  | TS_VERIFY_CTX_add_flags() adds flags to the verification context. I<f> are the | ||
|  | flags to be added (OR'd). | ||
|  | 
 | ||
|  | TS_VERIFY_CTX_set0_data() sets the data to be verified. I<b> is the B<BIO> with | ||
|  | the data. A previously assigned B<BIO> is freed. | ||
|  | 
 | ||
|  | TS_VERIFY_CTX_set0_imprint() sets the message imprint. I<hexstr> is the | ||
|  | message imprint to be assigned. A previously assigned imprint is freed. | ||
|  | 
 | ||
|  | TS_VERIFY_CTX_set0_store() sets the store for the verification context. I<s> is | ||
|  | the store to be assigned. A previously assigned store is freed. | ||
|  | 
 | ||
|  | TS_VERIFY_CTX_set0_certs() is used to set the server's certificate chain when | ||
|  | verifying a TST. I<certs> is a stack of B<X509> certificates. | ||
|  | 
 | ||
|  | TS_VERIFY_CTX_cleanup() frees all data associated with the given | ||
|  | B<TS_VERIFY_CTX> object and initializes it. I<ctx> is the verification context | ||
|  | created in advance. If I<ctx> is NULL, the call is ignored. | ||
|  | 
 | ||
|  | All of the following functions described are deprecated. Applications should | ||
|  | instead use the functions L<TS_VERIFY_CTX_set0_data(3)>, | ||
|  | L<TS_VERIFY_CTX_set0_imprint(3)>, L<TS_VERIFY_CTX_set0_store(3)>, | ||
|  | L<TS_VERIFY_CTX_set0_certs(3)>. | ||
|  | 
 | ||
|  | TS_VERIFY_CTX_set_data() is used to set the BIO with the data to be verified. | ||
|  | A previously assigned BIO is B<not freed> by this call. I<b> is the B<BIO> | ||
|  | with the data to assign. | ||
|  | 
 | ||
|  | TS_VERIFY_CTX_set_imprint() is used to set the message imprint. A previously | ||
|  | assigned imprint B<is freed> by this call. I<hexstr> is the string with the | ||
|  | message imprint to assign. | ||
|  | 
 | ||
|  | TS_VERIFY_CTX_set_store() is used to set the certificate store. A previously | ||
|  | assigned store is B<not freed> by this call. I<s> is the store to assign. | ||
|  | 
 | ||
|  | TS_VERIFY_CTX_set_certs() is used to set the server's certificate chain. | ||
|  | A previously assigned stack is B<not freed> by this call. I<certs> is a stack | ||
|  | of B<X509> certificates. | ||
|  | 
 | ||
|  | TS_VERIFY_CTS_set_certs() is a misspelled version of TS_VERIFY_CTX_set_certs() | ||
|  | which takes the same parameters and returns the same result. | ||
|  | 
 | ||
|  | =head1 RETURN VALUES | ||
|  | 
 | ||
|  | TS_VERIFY_CTX_new() returns an allocated B<TS_VERIFY_CTX> structure. | ||
|  | 
 | ||
|  | TS_VERIFY_CTX_set_flags() returns the flags passed via parameter I<f>. | ||
|  | 
 | ||
|  | TS_VERIFY_CTX_add_flags() returns the flags of the context after the ones | ||
|  | passed via parameter I<f> are added to it. | ||
|  | 
 | ||
|  | TS_VERIFY_CTX_set0_data(), TS_VERIFY_CTX_set0_imprint(), | ||
|  | TS_VERIFY_CTX_set0_store(), and TS_VERIFY_CTX_set0_certs() return 1 if the | ||
|  | value could be successfully set and 0 in case of any error. | ||
|  | 
 | ||
|  | The deprecated functions TS_VERIFY_CTX_set_data(), TS_VERIFY_CTX_set_imprint(), | ||
|  | TS_VERIFY_CTX_set_store(), TS_VERIFY_CTX_set_certs() return the parameter | ||
|  | the user passes via parameter I<bio>, I<hexstr>, I<s> or I<certs>. | ||
|  | 
 | ||
|  | =head1 SEE ALSO | ||
|  | 
 | ||
|  | L<OSSL_ESS_check_signing_certs(3)> | ||
|  | 
 | ||
|  | =head1 HISTORY | ||
|  | 
 | ||
|  | TS_VERIFY_CTX_set0_data(), TS_VERIFY_CTX_set0_imprint(), | ||
|  | TS_VERIFY_CTX_set0_store(), TS_VERIFY_CTX_set0_certs() replace the functions | ||
|  | TS_VERIFY_CTX_set_data(), TS_VERIFY_CTX_set_imprint(), | ||
|  | TS_VERIFY_CTX_set_store(), TS_VERIFY_CTX_set_certs() that were deprecated | ||
|  | in OpenSSL 3.4.0. | ||
|  | 
 | ||
|  | The spelling of TS_VERIFY_CTX_set_certs() was corrected in OpenSSL 3.0.0. | ||
|  | The misspelled version TS_VERIFY_CTS_set_certs() has been retained for | ||
|  | compatibility reasons, but it is deprecated in OpenSSL 3.0.0. | ||
|  | 
 | ||
|  | =head1 COPYRIGHT | ||
|  | 
 | ||
|  | Copyright 2019-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 |