SSL_CTX_set_max_cert_list.pod 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. =pod
  2. =head1 NAME
  3. SSL_CTX_set_max_cert_list, SSL_CTX_get_max_cert_list, SSL_set_max_cert_list, SSL_get_max_cert_list, - manipulate allowed for the peer's certificate chain
  4. =head1 SYNOPSIS
  5. #include <openssl/ssl.h>
  6. long SSL_CTX_set_max_cert_list(SSL_CTX *ctx, long size);
  7. long SSL_CTX_get_max_cert_list(SSL_CTX *ctx);
  8. long SSL_set_max_cert_list(SSL *ssl, long size);
  9. long SSL_get_max_cert_list(SSL *ctx);
  10. =head1 DESCRIPTION
  11. SSL_CTX_set_max_cert_list() sets the maximum size allowed for the peer's
  12. certificate chain for all SSL objects created from B<ctx> to be <size> bytes.
  13. The SSL objects inherit the setting valid for B<ctx> at the time
  14. L<SSL_new(3)|SSL_new(3)> is being called.
  15. SSL_CTX_get_max_cert_list() returns the currently set maximum size for B<ctx>.
  16. SSL_set_max_cert_list() sets the maximum size allowed for the peer's
  17. certificate chain for B<ssl> to be <size> bytes. This setting stays valid
  18. until a new value is set.
  19. SSL_get_max_cert_list() returns the currently set maximum size for B<ssl>.
  20. =head1 NOTES
  21. During the handshake process, the peer may send a certificate chain.
  22. The TLS/SSL standard does not give any maximum size of the certificate chain.
  23. The OpenSSL library handles incoming data by a dynamically allocated buffer.
  24. In order to prevent this buffer from growing without bounds due to data
  25. received from a faulty or malicious peer, a maximum size for the certificate
  26. chain is set.
  27. The default value for the maximum certificate chain size is 100kB (30kB
  28. on the 16bit DOS platform). This should be sufficient for usual certificate
  29. chains (OpenSSL's default maximum chain length is 10, see
  30. L<SSL_CTX_set_verify(3)|SSL_CTX_set_verify(3)>, and certificates
  31. without special extensions have a typical size of 1-2kB).
  32. For special applications it can be necessary to extend the maximum certificate
  33. chain size allowed to be sent by the peer, see e.g. the work on
  34. "Internet X.509 Public Key Infrastructure Proxy Certificate Profile"
  35. and "TLS Delegation Protocol" at http://www.ietf.org/ and
  36. http://www.globus.org/ .
  37. Under normal conditions it should never be necessary to set a value smaller
  38. than the default, as the buffer is handled dynamically and only uses the
  39. memory actually required by the data sent by the peer.
  40. If the maximum certificate chain size allowed is exceeded, the handshake will
  41. fail with a SSL_R_EXCESSIVE_MESSAGE_SIZE error.
  42. =head1 RETURN VALUES
  43. SSL_CTX_set_max_cert_list() and SSL_set_max_cert_list() return the previously
  44. set value.
  45. SSL_CTX_get_max_cert_list() and SSL_get_max_cert_list() return the currently
  46. set value.
  47. =head1 SEE ALSO
  48. L<ssl(3)|ssl(3)>, L<SSL_new(3)|SSL_new(3)>,
  49. L<SSL_CTX_set_verify(3)|SSL_CTX_set_verify(3)>
  50. =head1 HISTORY
  51. SSL*_set/get_max_cert_list() have been introduced in OpenSSL 0.9.7.
  52. =cut