NCONF_new_ex.3ossl 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.42)
  2. .\"
  3. .\" Standard preamble:
  4. .\" ========================================================================
  5. .de Sp \" Vertical space (when we can't use .PP)
  6. .if t .sp .5v
  7. .if n .sp
  8. ..
  9. .de Vb \" Begin verbatim text
  10. .ft CW
  11. .nf
  12. .ne \\$1
  13. ..
  14. .de Ve \" End verbatim text
  15. .ft R
  16. .fi
  17. ..
  18. .\" Set up some character translations and predefined strings. \*(-- will
  19. .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
  20. .\" double quote, and \*(R" will give a right double quote. \*(C+ will
  21. .\" give a nicer C++. Capital omega is used to do unbreakable dashes and
  22. .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
  23. .\" nothing in troff, for use with C<>.
  24. .tr \(*W-
  25. .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
  26. .ie n \{\
  27. . ds -- \(*W-
  28. . ds PI pi
  29. . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
  30. . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
  31. . ds L" ""
  32. . ds R" ""
  33. . ds C` ""
  34. . ds C' ""
  35. 'br\}
  36. .el\{\
  37. . ds -- \|\(em\|
  38. . ds PI \(*p
  39. . ds L" ``
  40. . ds R" ''
  41. . ds C`
  42. . ds C'
  43. 'br\}
  44. .\"
  45. .\" Escape single quotes in literal strings from groff's Unicode transform.
  46. .ie \n(.g .ds Aq \(aq
  47. .el .ds Aq '
  48. .\"
  49. .\" If the F register is >0, we'll generate index entries on stderr for
  50. .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
  51. .\" entries marked with X<> in POD. Of course, you'll have to process the
  52. .\" output yourself in some meaningful fashion.
  53. .\"
  54. .\" Avoid warning from groff about undefined register 'F'.
  55. .de IX
  56. ..
  57. .nr rF 0
  58. .if \n(.g .if rF .nr rF 1
  59. .if (\n(rF:(\n(.g==0)) \{\
  60. . if \nF \{\
  61. . de IX
  62. . tm Index:\\$1\t\\n%\t"\\$2"
  63. ..
  64. . if !\nF==2 \{\
  65. . nr % 0
  66. . nr F 2
  67. . \}
  68. . \}
  69. .\}
  70. .rr rF
  71. .\"
  72. .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
  73. .\" Fear. Run. Save yourself. No user-serviceable parts.
  74. . \" fudge factors for nroff and troff
  75. .if n \{\
  76. . ds #H 0
  77. . ds #V .8m
  78. . ds #F .3m
  79. . ds #[ \f1
  80. . ds #] \fP
  81. .\}
  82. .if t \{\
  83. . ds #H ((1u-(\\\\n(.fu%2u))*.13m)
  84. . ds #V .6m
  85. . ds #F 0
  86. . ds #[ \&
  87. . ds #] \&
  88. .\}
  89. . \" simple accents for nroff and troff
  90. .if n \{\
  91. . ds ' \&
  92. . ds ` \&
  93. . ds ^ \&
  94. . ds , \&
  95. . ds ~ ~
  96. . ds /
  97. .\}
  98. .if t \{\
  99. . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
  100. . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
  101. . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
  102. . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
  103. . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
  104. . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
  105. .\}
  106. . \" troff and (daisy-wheel) nroff accents
  107. .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
  108. .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
  109. .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
  110. .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
  111. .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
  112. .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
  113. .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
  114. .ds ae a\h'-(\w'a'u*4/10)'e
  115. .ds Ae A\h'-(\w'A'u*4/10)'E
  116. . \" corrections for vroff
  117. .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
  118. .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
  119. . \" for low resolution devices (crt and lpr)
  120. .if \n(.H>23 .if \n(.V>19 \
  121. \{\
  122. . ds : e
  123. . ds 8 ss
  124. . ds o a
  125. . ds d- d\h'-1'\(ga
  126. . ds D- D\h'-1'\(hy
  127. . ds th \o'bp'
  128. . ds Th \o'LP'
  129. . ds ae ae
  130. . ds Ae AE
  131. .\}
  132. .rm #[ #] #H #V #F C
  133. .\" ========================================================================
  134. .\"
  135. .IX Title "NCONF_NEW_EX 3ossl"
  136. .TH NCONF_NEW_EX 3ossl "2024-09-03" "3.3.2" "OpenSSL"
  137. .\" For nroff, turn off justification. Always turn off hyphenation; it makes
  138. .\" way too many mistakes in technical documents.
  139. .if n .ad l
  140. .nh
  141. .SH "NAME"
  142. NCONF_new_ex, NCONF_new, NCONF_free, NCONF_default, NCONF_load,
  143. NCONF_get0_libctx, NCONF_get_section, NCONF_get_section_names
  144. \&\- functionality to Load and parse configuration files manually
  145. .SH "SYNOPSIS"
  146. .IX Header "SYNOPSIS"
  147. .Vb 1
  148. \& #include <openssl/conf.h>
  149. \&
  150. \& typedef struct {
  151. \& char *section;
  152. \& char *name;
  153. \& char *value;
  154. \& } CONF_VALUE;
  155. \&
  156. \& CONF *NCONF_new_ex(OSSL_LIB_CTX *libctx, CONF_METHOD *meth);
  157. \& CONF *NCONF_new(CONF_METHOD *meth);
  158. \& void NCONF_free(CONF *conf);
  159. \& CONF_METHOD *NCONF_default(void);
  160. \& int NCONF_load(CONF *conf, const char *file, long *eline);
  161. \& OSSL_LIB_CTX *NCONF_get0_libctx(const CONF *conf);
  162. \&
  163. \& STACK_OF(CONF_VALUE) *NCONF_get_section(const CONF *conf, const char *name);
  164. \& STACK_OF(OPENSSL_CSTRING) *NCONF_get_section_names(const CONF *conf);
  165. .Ve
  166. .SH "DESCRIPTION"
  167. .IX Header "DESCRIPTION"
  168. \&\fBNCONF_new_ex()\fR creates a new \s-1CONF\s0 object in heap memory and assigns to
  169. it a context \fIlibctx\fR that can be used during loading. If the method table
  170. \&\fImeth\fR is set to \s-1NULL\s0 then the default value of \fBNCONF_default()\fR is used.
  171. .PP
  172. \&\fBNCONF_new()\fR is similar to \fBNCONF_new_ex()\fR but sets the \fIlibctx\fR to \s-1NULL.\s0
  173. .PP
  174. \&\fBNCONF_free()\fR frees the data associated with \fIconf\fR and then frees the \fIconf\fR
  175. object. If the argument is \s-1NULL,\s0 nothing is done.
  176. .PP
  177. \&\fBNCONF_load()\fR parses the file named \fIfilename\fR and adds the values found to
  178. \&\fIconf\fR. If an error occurs \fIfile\fR and \fIeline\fR list the file and line that
  179. the load failed on if they are not \s-1NULL.\s0
  180. .PP
  181. \&\fBNCONF_default()\fR gets the default method table for processing a configuration file.
  182. .PP
  183. \&\fBNCONF_get0_libctx()\fR gets the library context associated with the \fIconf\fR
  184. parameter.
  185. .PP
  186. \&\fBNCONF_get_section_names()\fR gets the names of the sections associated with
  187. the \fIconf\fR as \fB\s-1STACK_OF\s0(\s-1OPENSSL_CSTRING\s0)\fR strings. The individual strings
  188. are associated with the \fIconf\fR and will be invalid after \fIconf\fR is
  189. freed. The returned stack must be freed with \fBsk_OPENSSL_CSTRING_free()\fR.
  190. .PP
  191. \&\fBNCONF_get_section()\fR gets the config values associated with the \fIconf\fR from
  192. the config section \fIname\fR as \fB\s-1STACK_OF\s0(\s-1CONF_VALUE\s0)\fR structures. The returned
  193. stack is associated with the \fIconf\fR and will be invalid after \fIconf\fR
  194. is freed. It must not be freed by the caller.
  195. .SH "RETURN VALUES"
  196. .IX Header "RETURN VALUES"
  197. \&\fBNCONF_load()\fR returns 1 on success or 0 on error.
  198. .PP
  199. \&\fBNCONF_new_ex()\fR and \fBNCONF_new()\fR return a newly created \fI\s-1CONF\s0\fR object
  200. or \s-1NULL\s0 if an error occurs.
  201. .SH "SEE ALSO"
  202. .IX Header "SEE ALSO"
  203. \&\fBCONF_modules_load_file\fR\|(3),
  204. .SH "HISTORY"
  205. .IX Header "HISTORY"
  206. \&\fBNCONF_new_ex()\fR, \fBNCONF_get0_libctx()\fR, and \fBNCONF_get_section_names()\fR were added
  207. in OpenSSL 3.0.
  208. .SH "COPYRIGHT"
  209. .IX Header "COPYRIGHT"
  210. Copyright 2020\-2024 The OpenSSL Project Authors. All Rights Reserved.
  211. .PP
  212. Licensed under the Apache License 2.0 (the \*(L"License\*(R"). You may not use
  213. this file except in compliance with the License. You can obtain a copy
  214. in the file \s-1LICENSE\s0 in the source distribution or at
  215. <https://www.openssl.org/source/license.html>.