BIO_meth_new.pod 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. =pod
  2. =head1 NAME
  3. BIO_get_new_index,
  4. BIO_meth_new, BIO_meth_free, BIO_meth_get_write, BIO_meth_set_write,
  5. BIO_meth_get_read, BIO_meth_set_read, BIO_meth_get_puts, BIO_meth_set_puts,
  6. BIO_meth_get_gets, BIO_meth_set_gets, BIO_meth_get_ctrl, BIO_meth_set_ctrl,
  7. BIO_meth_get_create, BIO_meth_set_create, BIO_meth_get_destroy,
  8. BIO_meth_set_destroy, BIO_meth_get_callback_ctrl,
  9. BIO_meth_set_callback_ctrl - Routines to build up BIO methods
  10. =head1 SYNOPSIS
  11. #include <openssl/bio.h>
  12. int BIO_get_new_index(void);
  13. BIO_METHOD *BIO_meth_new(int type, const char *name);
  14. void BIO_meth_free(BIO_METHOD *biom);
  15. int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int);
  16. int BIO_meth_set_write(BIO_METHOD *biom,
  17. int (*write) (BIO *, const char *, int));
  18. int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int);
  19. int BIO_meth_set_read(BIO_METHOD *biom,
  20. int (*read) (BIO *, char *, int));
  21. int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *);
  22. int BIO_meth_set_puts(BIO_METHOD *biom,
  23. int (*puts) (BIO *, const char *));
  24. int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int);
  25. int BIO_meth_set_gets(BIO_METHOD *biom,
  26. int (*gets) (BIO *, char *, int));
  27. long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *);
  28. int BIO_meth_set_ctrl(BIO_METHOD *biom,
  29. long (*ctrl) (BIO *, int, long, void *));
  30. int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *);
  31. int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *));
  32. int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *);
  33. int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *));
  34. long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom))
  35. (BIO *, int, BIO_info_cb *);
  36. int BIO_meth_set_callback_ctrl(BIO_METHOD *biom,
  37. long (*callback_ctrl) (BIO *, int,
  38. BIO_info_cb *));
  39. =head1 DESCRIPTION
  40. The B<BIO_METHOD> type is a structure used for the implementation of new BIO
  41. types. It provides a set of of functions used by OpenSSL for the implementation
  42. of the various BIO capabilities. See the L<bio> page for more information.
  43. BIO_meth_new() creates a new B<BIO_METHOD> structure. It should be given a
  44. unique integer B<type> and a string that represents its B<name>.
  45. Use BIO_get_new_index() to get the value for B<type>.
  46. The set of
  47. standard OpenSSL provided BIO types is provided in B<bio.h>. Some examples
  48. include B<BIO_TYPE_BUFFER> and B<BIO_TYPE_CIPHER>. Filter BIOs should have a
  49. type which have the "filter" bit set (B<BIO_TYPE_FILTER>). Source/sink BIOs
  50. should have the "source/sink" bit set (B<BIO_TYPE_SOURCE_SINK>). File descriptor
  51. based BIOs (e.g. socket, fd, connect, accept etc) should additionally have the
  52. "descriptor" bit set (B<BIO_TYPE_DESCRIPTOR>). See the L<BIO_find_type> page for
  53. more information.
  54. BIO_meth_free() destroys a B<BIO_METHOD> structure and frees up any memory
  55. associated with it.
  56. BIO_meth_get_write() and BIO_meth_set_write() get and set the function used for
  57. writing arbitrary length data to the BIO respectively. This function will be
  58. called in response to the application calling BIO_write(). The parameters for
  59. the function have the same meaning as for BIO_write().
  60. BIO_meth_get_read() and BIO_meth_set_read() get and set the function used for
  61. reading arbitrary length data from the BIO respectively. This function will be
  62. called in response to the application calling BIO_read(). The parameters for the
  63. function have the same meaning as for BIO_read().
  64. BIO_meth_get_puts() and BIO_meth_set_puts() get and set the function used for
  65. writing a NULL terminated string to the BIO respectively. This function will be
  66. called in response to the application calling BIO_puts(). The parameters for
  67. the function have the same meaning as for BIO_puts().
  68. BIO_meth_get_gets() and BIO_meth_set_gets() get and set the function typically
  69. used for reading a line of data from the BIO respectively (see the L<BIO_gets(3)>
  70. page for more information). This function will be called in response to the
  71. application calling BIO_gets(). The parameters for the function have the same
  72. meaning as for BIO_gets().
  73. BIO_meth_get_ctrl() and BIO_meth_set_ctrl() get and set the function used for
  74. processing ctrl messages in the BIO respectively. See the L<BIO_ctrl> page for
  75. more information. This function will be called in response to the application
  76. calling BIO_ctrl(). The parameters for the function have the same meaning as for
  77. BIO_ctrl().
  78. BIO_meth_get_create() and BIO_meth_set_create() get and set the function used
  79. for creating a new instance of the BIO respectively. This function will be
  80. called in response to the application calling BIO_new() and passing
  81. in a pointer to the current BIO_METHOD. The BIO_new() function will allocate the
  82. memory for the new BIO, and a pointer to this newly allocated structure will
  83. be passed as a parameter to the function.
  84. BIO_meth_get_destroy() and BIO_meth_set_destroy() get and set the function used
  85. for destroying an instance of a BIO respectively. This function will be
  86. called in response to the application calling BIO_free(). A pointer to the BIO
  87. to be destroyed is passed as a parameter. The destroy function should be used
  88. for BIO specific clean up. The memory for the BIO itself should not be freed by
  89. this function.
  90. BIO_meth_get_callback_ctrl() and BIO_meth_set_callback_ctrl() get and set the
  91. function used for processing callback ctrl messages in the BIO respectively. See
  92. the L<BIO_callback_ctrl(3)> page for more information. This function will be called
  93. in response to the application calling BIO_callback_ctrl(). The parameters for
  94. the function have the same meaning as for BIO_callback_ctrl().
  95. =head1 SEE ALSO
  96. L<bio>, L<BIO_find_type>, L<BIO_ctrl>, L<BIO_read>, L<BIO_new>
  97. =head1 HISTORY
  98. The functions described here were added in OpenSSL 1.1.0.
  99. =head1 COPYRIGHT
  100. Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
  101. Licensed under the OpenSSL license (the "License"). You may not use
  102. this file except in compliance with the License. You can obtain a copy
  103. in the file LICENSE in the source distribution or at
  104. L<https://www.openssl.org/source/license.html>.
  105. =cut