Check-in [67b7b916be]
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:merge with trunk
Timelines: family | ancestors | descendants | both | wtf-8-experiment
Files: files | file ages | folders
SHA1: 67b7b916be4e2e174199d046772a99b73050eef5
User & Date: chw 2018-04-04 22:40:35.757
Context
2018-04-08
19:31
merge with trunk check-in: c64ea0ce4e user: chw tags: wtf-8-experiment
2018-04-04
22:40
merge with trunk check-in: 67b7b916be user: chw tags: wtf-8-experiment
19:01
update libressl to version 2.7.2 check-in: 938250c18e user: chw tags: trunk
17:25
cleanup after merge check-in: e829e0a898 user: chw tags: wtf-8-experiment
Changes
Unified Diff Ignore Whitespace Patch
Changes to jni/libressl/Android.mk.
18
19
20
21
22
23
24

25
26
27
28
29
30
31
32
33
34
35
36
37

38
39
40
41
42
43
44
LOCAL_SHARED_LIBRARIES :=

LOCAL_SRC_FILES := \
	crypto/mem_dbg.c \
	crypto/dsa/dsa_asn1.c \
	crypto/dsa/dsa_sign.c \
	crypto/dsa/dsa_lib.c \

	crypto/dsa/dsa_gen.c \
	crypto/dsa/dsa_vrf.c \
	crypto/dsa/dsa_err.c \
	crypto/dsa/dsa_key.c \
	crypto/dsa/dsa_depr.c \
	crypto/dsa/dsa_pmeth.c \
	crypto/dsa/dsa_ossl.c \
	crypto/dsa/dsa_prn.c \
	crypto/dsa/dsa_ameth.c \
	crypto/poly1305/poly1305.c \
	crypto/md4/md4_one.c \
	crypto/md4/md4_dgst.c \
	crypto/cryptlib.c \

	crypto/comp/comp_err.c \
	crypto/comp/c_rle.c \
	crypto/comp/comp_lib.c \
	crypto/comp/c_zlib.c \
	crypto/mem_clr.c \
	crypto/dh/dh_prn.c \
	crypto/dh/dh_key.c \







>













>







18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
LOCAL_SHARED_LIBRARIES :=

LOCAL_SRC_FILES := \
	crypto/mem_dbg.c \
	crypto/dsa/dsa_asn1.c \
	crypto/dsa/dsa_sign.c \
	crypto/dsa/dsa_lib.c \
	crypto/dsa/dsa_meth.c \
	crypto/dsa/dsa_gen.c \
	crypto/dsa/dsa_vrf.c \
	crypto/dsa/dsa_err.c \
	crypto/dsa/dsa_key.c \
	crypto/dsa/dsa_depr.c \
	crypto/dsa/dsa_pmeth.c \
	crypto/dsa/dsa_ossl.c \
	crypto/dsa/dsa_prn.c \
	crypto/dsa/dsa_ameth.c \
	crypto/poly1305/poly1305.c \
	crypto/md4/md4_one.c \
	crypto/md4/md4_dgst.c \
	crypto/cryptlib.c \
	crypto/crypto_init.c \
	crypto/comp/comp_err.c \
	crypto/comp/c_rle.c \
	crypto/comp/comp_lib.c \
	crypto/comp/c_zlib.c \
	crypto/mem_clr.c \
	crypto/dh/dh_prn.c \
	crypto/dh/dh_key.c \
325
326
327
328
329
330
331

332
333
334
335
336
337
338
	crypto/rsa/rsa_ameth.c \
	crypto/rsa/rsa_gen.c \
	crypto/rsa/rsa_oaep.c \
	crypto/rsa/rsa_saos.c \
	crypto/rsa/rsa_pss.c \
	crypto/rsa/rsa_sign.c \
	crypto/rsa/rsa_lib.c \

	crypto/rsa/rsa_pmeth.c \
	crypto/rsa/rsa_depr.c \
	crypto/rsa/rsa_asn1.c \
	crypto/rsa/rsa_none.c \
	crypto/rsa/rsa_chk.c \
	crypto/rsa/rsa_prn.c \
	crypto/rsa/rsa_eay.c \







>







327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
	crypto/rsa/rsa_ameth.c \
	crypto/rsa/rsa_gen.c \
	crypto/rsa/rsa_oaep.c \
	crypto/rsa/rsa_saos.c \
	crypto/rsa/rsa_pss.c \
	crypto/rsa/rsa_sign.c \
	crypto/rsa/rsa_lib.c \
	crypto/rsa/rsa_meth.c \
	crypto/rsa/rsa_pmeth.c \
	crypto/rsa/rsa_depr.c \
	crypto/rsa/rsa_asn1.c \
	crypto/rsa/rsa_none.c \
	crypto/rsa/rsa_chk.c \
	crypto/rsa/rsa_prn.c \
	crypto/rsa/rsa_eay.c \
361
362
363
364
365
366
367

368
369
370
371
372
373
374
	crypto/engine/tb_asnmth.c \
	crypto/engine/eng_cnf.c \
	crypto/engine/tb_ecdh.c \
	crypto/bio/bss_log.c \
	crypto/bio/b_sock.c \
	crypto/bio/bio_err.c \
	crypto/bio/bio_lib.c \

	crypto/bio/bss_conn.c \
	crypto/bio/b_dump.c \
	crypto/bio/bss_null.c \
	crypto/bio/bss_dgram.c \
	crypto/bio/bio_cb.c \
	crypto/bio/bss_fd.c \
	crypto/bio/b_posix.c \







>







364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
	crypto/engine/tb_asnmth.c \
	crypto/engine/eng_cnf.c \
	crypto/engine/tb_ecdh.c \
	crypto/bio/bss_log.c \
	crypto/bio/b_sock.c \
	crypto/bio/bio_err.c \
	crypto/bio/bio_lib.c \
	crypto/bio/bio_meth.c \
	crypto/bio/bss_conn.c \
	crypto/bio/b_dump.c \
	crypto/bio/bss_null.c \
	crypto/bio/bss_dgram.c \
	crypto/bio/bio_cb.c \
	crypto/bio/bss_fd.c \
	crypto/bio/b_posix.c \
630
631
632
633
634
635
636

637
638
639
640
641
642
643
644
645
646
647
648
649
	ssl/ssl_rsa.c \
	ssl/ssl_sess.c \
	ssl/ssl_srvr.c \
	ssl/ssl_stat.c \
	ssl/ssl_txt.c \
	ssl/ssl_tlsext.c \
	ssl/ssl_versions.c \

	ssl/t1_clnt.c \
	ssl/t1_enc.c \
	ssl/t1_hash.c \
	ssl/t1_lib.c \
	ssl/t1_meth.c \
	ssl/t1_reneg.c \
	ssl/t1_srvr.c

LOCAL_C_INCLUDES := $(LOCAL_PATH)/include \
	$(LOCAL_PATH)/include/compat \
	$(LOCAL_PATH)/ssl \
	$(LOCAL_PATH)/crypto/compat








>





<







634
635
636
637
638
639
640
641
642
643
644
645
646

647
648
649
650
651
652
653
	ssl/ssl_rsa.c \
	ssl/ssl_sess.c \
	ssl/ssl_srvr.c \
	ssl/ssl_stat.c \
	ssl/ssl_txt.c \
	ssl/ssl_tlsext.c \
	ssl/ssl_versions.c \
	ssl/ssl_init.c \
	ssl/t1_clnt.c \
	ssl/t1_enc.c \
	ssl/t1_hash.c \
	ssl/t1_lib.c \
	ssl/t1_meth.c \

	ssl/t1_srvr.c

LOCAL_C_INCLUDES := $(LOCAL_PATH)/include \
	$(LOCAL_PATH)/include/compat \
	$(LOCAL_PATH)/ssl \
	$(LOCAL_PATH)/crypto/compat

Changes to jni/libressl/CMakeLists.txt.
24
25
26
27
28
29
30


31
32
33
34
35
36
37
38
39
40
41

file(READ ${CMAKE_CURRENT_SOURCE_DIR}/tls/VERSION TLS_VERSION)
string(STRIP ${TLS_VERSION} TLS_VERSION)
string(REPLACE ":" "." TLS_VERSION ${TLS_VERSION})
string(REGEX REPLACE "\\..*" "" TLS_MAJOR_VERSION ${TLS_VERSION})

option(LIBRESSL_SKIP_INSTALL "Skip installation" ${LIBRESSL_SKIP_INSTALL})


option(ENABLE_ASM "Enable assembly" ON)
option(ENABLE_EXTRATESTS "Enable extra tests that may be unreliable on some platforms" OFF)
option(ENABLE_NC "Enable installing TLS-enabled nc(1)" OFF)
option(ENABLE_VSTEST "Enable test on Visual Studio" OFF)
set(OPENSSLDIR ${OPENSSLDIR} CACHE PATH "Set the default openssl directory" FORCE)

if(NOT LIBRESSL_SKIP_INSTALL)
	set( ENABLE_LIBRESSL_INSTALL ON )
endif(NOT LIBRESSL_SKIP_INSTALL)









>
>



<







24
25
26
27
28
29
30
31
32
33
34
35

36
37
38
39
40
41
42

file(READ ${CMAKE_CURRENT_SOURCE_DIR}/tls/VERSION TLS_VERSION)
string(STRIP ${TLS_VERSION} TLS_VERSION)
string(REPLACE ":" "." TLS_VERSION ${TLS_VERSION})
string(REGEX REPLACE "\\..*" "" TLS_MAJOR_VERSION ${TLS_VERSION})

option(LIBRESSL_SKIP_INSTALL "Skip installation" ${LIBRESSL_SKIP_INSTALL})
option(LIBRESSL_APPS "Build apps" ON)
option(LIBRESSL_TESTS "Build tests" ON)
option(ENABLE_ASM "Enable assembly" ON)
option(ENABLE_EXTRATESTS "Enable extra tests that may be unreliable on some platforms" OFF)
option(ENABLE_NC "Enable installing TLS-enabled nc(1)" OFF)

set(OPENSSLDIR ${OPENSSLDIR} CACHE PATH "Set the default openssl directory" FORCE)

if(NOT LIBRESSL_SKIP_INSTALL)
	set( ENABLE_LIBRESSL_INSTALL ON )
endif(NOT LIBRESSL_SKIP_INSTALL)


75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109

110
111
112
113
114
115
116
117
118
119
120
121
122
123
124

125
126
127
128
129
130
131
132
133
134
135
136
endif()

if(CMAKE_SYSTEM_NAME MATCHES "SunOS")
	set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -std=gnu99 -fno-strict-aliasing")
	set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__EXTENSIONS__")
	set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_XOPEN_SOURCE=600")
	set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DBSD_COMP")
	set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fpic -m64")
endif()

add_definitions(-DLIBRESSL_INTERNAL)
add_definitions(-DOPENSSL_NO_HW_PADLOCK)
add_definitions(-D__BEGIN_HIDDEN_DECLS=)
add_definitions(-D__END_HIDDEN_DECLS=)

set(CMAKE_POSITION_INDEPENDENT_CODE true)

if (CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang")
	add_definitions(-Wno-pointer-sign)
endif()

if(WIN32)
	add_definitions(-Drestrict)
	add_definitions(-D_CRT_SECURE_NO_WARNINGS)
	add_definitions(-D_CRT_DEPRECATED_NO_WARNINGS)
	add_definitions(-D_REENTRANT -D_POSIX_THREAD_SAFE_FUNCTIONS)
	add_definitions(-DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0501)
	add_definitions(-DCPPFLAGS -DOPENSSL_NO_SPEED -DNO_SYSLOG -DNO_CRYPT)
endif()

if(MSVC)
	add_definitions(-Dinline=__inline)
	message(STATUS "Using [${CMAKE_C_COMPILER_ID}] compiler")
	if(CMAKE_C_COMPILER_ID MATCHES "MSVC")
		set(MSVC_DISABLED_WARNINGS_LIST

			"C4057" # C4057: 'initializing' : 'unsigned char *' differs in
		        	# indirection to slightly different base types from 'char [2]'
			"C4018" # '>=': signed/unsigned mismatch
			"C4100" # 'exarg' : unreferenced formal parameter
			"C4127" # conditional expression is constant
			"C4146" # unary minus operator applied to unsigned
			        # type, result still unsigned
			"C4242" # 'function' : conversion from 'int' to 'uint8_t',
			        # possible loss of data
			"C4244" # 'function' : conversion from 'int' to 'uint8_t',
			        # possible loss of data
			"C4245" # 'initializing': conversion from 'long' to
			        # 'unsigned long', signed/unsigned mismatch
			"C4267" # conversion from 'size_t' to 'some type that is almost
				# certainly safe to convert a size_t to'.

			"C4389" # '!=': signed/unsigned mismatch
			"C4706" # assignment within conditional expression
			"C4820" # 'bytes' bytes padding added after construct 'member_name'
			"C4996" # 'read': The POSIX name for this item is deprecated. Instead,
			        # use the ISO C++ conformant name: _read.
		)
	elseif(CMAKE_C_COMPILER_ID MATCHES "Intel")
		add_definitions(-D_CRT_SUPPRESS_RESTRICT)
		set(MSVC_DISABLED_WARNINGS_LIST
			"C111"  # Unreachable statement
			"C128"  # Unreachable loop
			"C167"  # Unexplict casting unsigned to signed







|


















|








>
|
|
<
|

|
|
|
|
|
<
<
|
|
<
>
|

<
|
|







76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113

114
115
116
117
118
119
120


121
122

123
124
125

126
127
128
129
130
131
132
133
134
endif()

if(CMAKE_SYSTEM_NAME MATCHES "SunOS")
	set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -std=gnu99 -fno-strict-aliasing")
	set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__EXTENSIONS__")
	set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_XOPEN_SOURCE=600")
	set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DBSD_COMP")
	set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fpic")
endif()

add_definitions(-DLIBRESSL_INTERNAL)
add_definitions(-DOPENSSL_NO_HW_PADLOCK)
add_definitions(-D__BEGIN_HIDDEN_DECLS=)
add_definitions(-D__END_HIDDEN_DECLS=)

set(CMAKE_POSITION_INDEPENDENT_CODE true)

if (CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang")
	add_definitions(-Wno-pointer-sign)
endif()

if(WIN32)
	add_definitions(-Drestrict)
	add_definitions(-D_CRT_SECURE_NO_WARNINGS)
	add_definitions(-D_CRT_DEPRECATED_NO_WARNINGS)
	add_definitions(-D_REENTRANT -D_POSIX_THREAD_SAFE_FUNCTIONS)
	add_definitions(-DWIN32_LEAN_AND_MEAN)
	add_definitions(-DCPPFLAGS -DOPENSSL_NO_SPEED -DNO_SYSLOG -DNO_CRYPT)
endif()

if(MSVC)
	add_definitions(-Dinline=__inline)
	message(STATUS "Using [${CMAKE_C_COMPILER_ID}] compiler")
	if(CMAKE_C_COMPILER_ID MATCHES "MSVC")
		set(MSVC_DISABLED_WARNINGS_LIST
			"C4018" # 'expression' : signed/unsigned mismatch
			"C4057" # 'operator' : 'identifier1' indirection to
		        	# slightly different base types from 'identifier2'

			"C4100" # 'identifier' : unreferenced formal parameter
			"C4127" # conditional expression is constant
			"C4146" # unary minus operator applied to unsigned type,
				# result still unsigned
			"C4244" # 'argument' : conversion from 'type1' to 'type2',
				# possible loss of data
			"C4245" # 'conversion' : conversion from 'type1' to 'type2',


				# signed/unsigned mismatch
			"C4267" # 'var' : conversion from 'size_t' to 'type',

				# possible loss of data
			"C4389" # 'operator' : signed/unsigned mismatch
			"C4706" # assignment within conditional expression

			"C4996" # The POSIX name for this item is deprecated.
				# Instead, use the ISO C and C++ conformant name
		)
	elseif(CMAKE_C_COMPILER_ID MATCHES "Intel")
		add_definitions(-D_CRT_SUPPRESS_RESTRICT)
		set(MSVC_DISABLED_WARNINGS_LIST
			"C111"  # Unreachable statement
			"C128"  # Unreachable loop
			"C167"  # Unexplict casting unsigned to signed
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
endif()

check_function_exists(asprintf HAVE_ASPRINTF)
if(HAVE_ASPRINTF)
	add_definitions(-DHAVE_ASPRINTF)
endif()

check_function_exists(inet_pton HAVE_INET_PTON)
if(HAVE_INET_PTON)
	add_definitions(-DHAVE_INET_PTON)
endif()

check_function_exists(reallocarray HAVE_REALLOCARRAY)
if(HAVE_REALLOCARRAY)
	add_definitions(-DHAVE_REALLOCARRAY)
endif()

check_function_exists(strcasecmp HAVE_STRCASECMP)
if(HAVE_STRCASECMP)







<
<
<
<
<







151
152
153
154
155
156
157





158
159
160
161
162
163
164
endif()

check_function_exists(asprintf HAVE_ASPRINTF)
if(HAVE_ASPRINTF)
	add_definitions(-DHAVE_ASPRINTF)
endif()






check_function_exists(reallocarray HAVE_REALLOCARRAY)
if(HAVE_REALLOCARRAY)
	add_definitions(-DHAVE_REALLOCARRAY)
endif()

check_function_exists(strcasecmp HAVE_STRCASECMP)
if(HAVE_STRCASECMP)
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283

284
285
286
287

288
289
290
291
292
293
294
295
296
297

298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316

317

318
319
320
321
322
323

324
325
326
327
328
329
330
			set(HOST_ASM_ELF_X86_64 true)
		endif()
	elseif(APPLE AND "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86_64")
		set(HOST_ASM_MACOSX_X86_64 true)
	endif()
endif()

if(NOT (CMAKE_SYSTEM_NAME MATCHES "(Darwin|CYGWIN)"))
	set(BUILD_SHARED true)
endif()

# USE_SHARED builds applications (e.g. openssl) using shared LibreSSL.
# By default, applications use LibreSSL static library to avoid dependencies.
# USE_SHARED isn't set by default; use -DUSE_SHARED=ON with CMake to enable.
# Can be helpful for debugging; don't use for public releases.
if(NOT BUILD_SHARED)
	set(USE_SHARED off)
endif()


if(USE_SHARED)
	set(OPENSSL_LIBS tls-shared ssl-shared crypto-shared)
else()
	set(OPENSSL_LIBS tls ssl crypto)

endif()

if(CMAKE_HOST_WIN32)
	set(OPENSSL_LIBS ${OPENSSL_LIBS} ws2_32)
endif()
if(CMAKE_SYSTEM_NAME MATCHES "Linux")
	check_library_exists(rt clock_gettime "time.h" HAVE_CLOCK_GETTIME)
	if (HAVE_CLOCK_GETTIME)
		set(OPENSSL_LIBS ${OPENSSL_LIBS} rt)
	endif()

endif()
if(CMAKE_SYSTEM_NAME MATCHES "HP-UX")
	set(OPENSSL_LIBS ${OPENSSL_LIBS} pthread)
endif()
if(CMAKE_SYSTEM_NAME MATCHES "SunOS")
	set(OPENSSL_LIBS ${OPENSSL_LIBS} nsl socket)
endif()

check_type_size(time_t SIZEOF_TIME_T)
if(SIZEOF_TIME_T STREQUAL "4")
	set(SMALL_TIME_T true)
	add_definitions(-DSMALL_TIME_T)
	message(WARNING " ** Warning, this system is unable to represent times past 2038\n"
	                " ** It will behave incorrectly when handling valid RFC5280 dates")
endif()
add_definitions(-DSIZEOF_TIME_T=${SIZEOF_TIME_T})

add_subdirectory(crypto)
add_subdirectory(ssl)

add_subdirectory(apps)

add_subdirectory(tls)
add_subdirectory(include)
if(NOT MSVC)
	add_subdirectory(man)
endif()
if(NOT MSVC OR ENABLE_VSTEST)

	add_subdirectory(tests)
endif()

if(NOT MSVC)
	# Create pkgconfig files.
	set(prefix      ${CMAKE_INSTALL_PREFIX})
	set(exec_prefix \${prefix})







<
|
<

<
<
<
<
|
|


>
|
<
<
<
>


<
<
<





>



















>
|
>





|
>







258
259
260
261
262
263
264

265

266




267
268
269
270
271
272



273
274
275



276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
			set(HOST_ASM_ELF_X86_64 true)
		endif()
	elseif(APPLE AND "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86_64")
		set(HOST_ASM_MACOSX_X86_64 true)
	endif()
endif()


set(OPENSSL_LIBS tls ssl crypto)






if(WIN32)
	set(OPENSSL_LIBS ${OPENSSL_LIBS} ws2_32)
endif()

check_function_exists(clock_gettime HAVE_CLOCK_GETTIME)
if(HAVE_CLOCK_GETTIME)



	add_definitions(-DHAVE_CLOCK_GETTIME)
endif()




if(CMAKE_SYSTEM_NAME MATCHES "Linux")
	check_library_exists(rt clock_gettime "time.h" HAVE_CLOCK_GETTIME)
	if (HAVE_CLOCK_GETTIME)
		set(OPENSSL_LIBS ${OPENSSL_LIBS} rt)
	endif()
	set(OPENSSL_LIBS ${OPENSSL_LIBS} pthread)
endif()
if(CMAKE_SYSTEM_NAME MATCHES "HP-UX")
	set(OPENSSL_LIBS ${OPENSSL_LIBS} pthread)
endif()
if(CMAKE_SYSTEM_NAME MATCHES "SunOS")
	set(OPENSSL_LIBS ${OPENSSL_LIBS} nsl socket)
endif()

check_type_size(time_t SIZEOF_TIME_T)
if(SIZEOF_TIME_T STREQUAL "4")
	set(SMALL_TIME_T true)
	add_definitions(-DSMALL_TIME_T)
	message(WARNING " ** Warning, this system is unable to represent times past 2038\n"
	                " ** It will behave incorrectly when handling valid RFC5280 dates")
endif()
add_definitions(-DSIZEOF_TIME_T=${SIZEOF_TIME_T})

add_subdirectory(crypto)
add_subdirectory(ssl)
if(LIBRESSL_APPS)
	add_subdirectory(apps)
endif()
add_subdirectory(tls)
add_subdirectory(include)
if(NOT MSVC)
	add_subdirectory(man)
endif()
# Tests require the openssl executable and are unavailable when building shared libraries
if(LIBRESSL_APPS AND LIBRESSL_TESTS AND NOT BUILD_SHARED_LIBS)
	add_subdirectory(tests)
endif()

if(NOT MSVC)
	# Create pkgconfig files.
	set(prefix      ${CMAKE_INSTALL_PREFIX})
	set(exec_prefix \${prefix})
Changes to jni/libressl/ChangeLog.
24
25
26
27
28
29
30



























































31
32
33
34
35
36
37
The portable bits of the project are largely maintained out-of-tree, and their
history is also available from Git.

	https://github.com/libressl-portable/portable

LibreSSL Portable Release Notes:




























































2.6.4 - Bug fixes

	* Make tls_config_parse_protocols() work correctly when passed a NULL
	  pointer for a protocol string. Issue found by semarie@, who also
	  provided the diff.

	* Correct TLS extensions handling when no extensions are present.







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
The portable bits of the project are largely maintained out-of-tree, and their
history is also available from Git.

	https://github.com/libressl-portable/portable

LibreSSL Portable Release Notes:

2.7.2 - Stable release

	* Updated and added extensive new HISTORY sections to API manuals.

	* Added support for shared library builds with CMake on all supported
	  platforms. Note that some of the CMake options have changed, consult
	  the README for details.

2.7.1 - Bug fixes

	* Fixed a bug in int_x509_param_set_hosts, calling strlen() if name
	  length provided is 0 to match the OpenSSL behaviour. Issue noticed
	  by Christian Heimes <christian@python.org>.

	* Fixed builds macOS 10.11 and older.

2.7.0 - Bug fixes and improvements

	* Added support for many OpenSSL 1.0.2 and 1.1 APIs, based on
	  observations of real-world usage in applications. These are
	  implemented in parallel with existing OpenSSL 1.0.1 APIs - visibility
	  changes have not been made to existing structs, allowing code written
	  for older OpenSSL APIs to continue working.

	* Extensive corrections, improvements, and additions to the
	  API documentation, including new public APIs from OpenSSL that had
	  no pre-existing documentation.

	* Added support for automatic library initialization in libcrypto,
	  libssl, and libtls. Support for pthread_once or a compatible
	  equivalent is now required of the target operating system. As a
	  side-effect, minimum Windows support is Vista or higher.

	* Converted more packet handling methods to CBB, which improves
	  resiliency when generating TLS messages.

	* Completed TLS extension handling rewrite, improving consistency of
	  checks for malformed and duplicate extensions.

	* Rewrote ASN1_TYPE_{get,set}_octetstring() using templated ASN.1.
	  This removes the last remaining use of the old M_ASN1_* macros
	  (asn1_mac.h) from API that needs to continue to exist.

	* Added support for client-side session resumption in libtls.
	  A libtls client can specify a session file descriptor (a regular
	  file with appropriate ownership and permissions) and libtls will
	  manage reading and writing of session data across TLS handshakes.

	* Improved support for strict alignment on ARMv7 architectures,
	  conditionally enabling assembly in those cases.

	* Fixed a memory leak in libtls when reusing a tls_config.

	* Merged more DTLS support into the regular TLS code path, removing
	  duplicated code.

	* Many improvements to Windows Cmake-based builds and tests,
	  especially when targeting Visual Studio.

2.6.4 - Bug fixes

	* Make tls_config_parse_protocols() work correctly when passed a NULL
	  pointer for a protocol string. Issue found by semarie@, who also
	  provided the diff.

	* Correct TLS extensions handling when no extensions are present.
Changes to jni/libressl/README.md.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
![LibreSSL image](http://www.libressl.org/images/libressl.jpg)
## Official portable version of [LibreSSL](http://www.libressl.org) ##

[![Build Status](https://travis-ci.org/libressl-portable/portable.svg?branch=master)](https://travis-ci.org/libressl-portable/portable)

LibreSSL is a fork of [OpenSSL](https://www.openssl.org) 1.0.1g developed by the
[OpenBSD](http://www.openbsd.org) project.  Our goal is to modernize the codebase,
improve security, and apply best practice development processes from OpenBSD.

## Compatibility with OpenSSL: ##

LibreSSL is API compatible with OpenSSL 1.0.1, but does not yet include all
new APIs from OpenSSL 1.0.2 and later. LibreSSL also includes APIs not yet
present in OpenSSL. The current common API subset is OpenSSL 1.0.1.
|
|




|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
![LibreSSL image](https://www.libressl.org/images/libressl.jpg)
## Official portable version of [LibreSSL](https://www.libressl.org) ##

[![Build Status](https://travis-ci.org/libressl-portable/portable.svg?branch=master)](https://travis-ci.org/libressl-portable/portable)

LibreSSL is a fork of [OpenSSL](https://www.openssl.org) 1.0.1g developed by the
[OpenBSD](https://www.openbsd.org) project.  Our goal is to modernize the codebase,
improve security, and apply best practice development processes from OpenBSD.

## Compatibility with OpenSSL: ##

LibreSSL is API compatible with OpenSSL 1.0.1, but does not yet include all
new APIs from OpenSSL 1.0.2 and later. LibreSSL also includes APIs not yet
present in OpenSSL. The current common API subset is OpenSSL 1.0.1.
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
* NetBSD (7.0 or later recommended)
* HP-UX (11i)
* Solaris (11 and later preferred)
* Mac OS X (tested with 10.8 and later)
* AIX (5.3 and later)

LibreSSL also supports the following Windows environments:
* Microsoft Windows (XP or higher, x86 and x64)
* Wine (32-bit and 64-bit)
* Builds with Mingw-w64, Cygwin, and Visual Studio

Official release tarballs are available at your friendly neighborhood
OpenBSD mirror in directory
[LibreSSL](http://ftp.openbsd.org/pub/OpenBSD/LibreSSL/),
although we suggest that you use a [mirror](http://www.openbsd.org/ftp.html).

The LibreSSL portable build framework is also
[mirrored](https://github.com/libressl-portable/portable) in Github.

Please report bugs either to the public libressl@openbsd.org mailing list,
or to the github
[issue tracker](https://github.com/libressl-portable/portable/issues)







|





|
|







33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
* NetBSD (7.0 or later recommended)
* HP-UX (11i)
* Solaris (11 and later preferred)
* Mac OS X (tested with 10.8 and later)
* AIX (5.3 and later)

LibreSSL also supports the following Windows environments:
* Microsoft Windows (Vista or higher, x86 and x64)
* Wine (32-bit and 64-bit)
* Builds with Mingw-w64, Cygwin, and Visual Studio

Official release tarballs are available at your friendly neighborhood
OpenBSD mirror in directory
[LibreSSL](https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/),
although we suggest that you use a [mirror](https://www.openbsd.org/ftp.html).

The LibreSSL portable build framework is also
[mirrored](https://github.com/libressl-portable/portable) in Github.

Please report bugs either to the public libressl@openbsd.org mailing list,
or to the github
[issue tracker](https://github.com/libressl-portable/portable/issues)
139
140
141
142
143
144
145



146
147
148
149
150
151
into other projects or build by itself.

#### Cmake - Additional Options ####

| Option Name | Default | Description
| ------------ | -----: | ------
|  LIBRESSL_SKIP_INSTALL | OFF | allows skipping install() rules.  Can be specified from command line using <br>```-DLIBRESSL_SKIP_INSTALL=ON``` |



|  ENABLE_ASM | ON | builds assembly optimized rules. |
|  ENABLE_EXTRATESTS | OFF | Enable extra tests that may be unreliable on some platforms |
|  ENABLE_NC | OFF | Enable installing TLS-enabled nc(1) |
|  ENABLE_VSTEST | OFF | Enable test on Visual Studio |
|  OPENSSLDIR | Blank | Set the default openssl directory.  Can be specified from command line using <br>```-DOPENSSLDIR=<dirname>``` |








>
>
>



<


139
140
141
142
143
144
145
146
147
148
149
150
151

152
153
into other projects or build by itself.

#### Cmake - Additional Options ####

| Option Name | Default | Description
| ------------ | -----: | ------
|  LIBRESSL_SKIP_INSTALL | OFF | allows skipping install() rules.  Can be specified from command line using <br>```-DLIBRESSL_SKIP_INSTALL=ON``` |
|  LIBRESSL_APPS | ON | allows skipping application builds. Apps are required to run tests |
|  LIBRESSL_TESTS | ON | allows skipping of tests. Tests are only available in static builds |
|  BUILD_SHARED_LIBS | OFF | CMake option for building shared libraries. |
|  ENABLE_ASM | ON | builds assembly optimized rules. |
|  ENABLE_EXTRATESTS | OFF | Enable extra tests that may be unreliable on some platforms |
|  ENABLE_NC | OFF | Enable installing TLS-enabled nc(1) |

|  OPENSSLDIR | Blank | Set the default openssl directory.  Can be specified from command line using <br>```-DOPENSSLDIR=<dirname>``` |

Changes to jni/libressl/VERSION.
1
2
2.6.4

|

1
2
2.7.2

Changes to jni/libressl/apps/nc/nc.1.
1
2
3
4
5
6
7
8
.\"     $OpenBSD: nc.1,v 1.87 2017/07/15 18:11:47 jmc Exp $
.\"
.\" Copyright (c) 1996 David Sacerdote
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
|







1
2
3
4
5
6
7
8
.\"     $OpenBSD: nc.1,v 1.88 2017/11/28 16:59:10 jsing Exp $
.\"
.\" Copyright (c) 1996 David Sacerdote
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: July 15 2017 $
.Dt NC 1
.Os
.Sh NAME
.Nm nc
.Nd arbitrary TCP and UDP connections and listens
.Sh SYNOPSIS
.Nm nc







|







21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 28 2017 $
.Dt NC 1
.Os
.Sh NAME
.Nm nc
.Nd arbitrary TCP and UDP connections and listens
.Sh SYNOPSIS
.Nm nc
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248









249
250
251
252
253
254
255
.Fl l
option.
.It Fl T Ar keyword
Change IPv4 TOS value or TLS options.
For TLS options
.Ar keyword
may be one of:
.Ar tlsall ,
which allows the use of all supported TLS protocols and ciphers;
.Ar tlscompat ,
which allows the use of all supported TLS protocols and "compat" ciphers;
.Ar noverify ,
which disables certificate verification;
.Ar noname ,
which disables certificate name checking;
.Ar clientcert ,
which requires a client certificate on incoming connections; or
.Ar muststaple ,
which requires the peer to provide a valid stapled OCSP response
with the handshake.









It is illegal to specify TLS options if not using TLS.
.Pp
For IPv4 TOS value
.Ar keyword
may be one of
.Ar critical ,
.Ar inetcontrol ,







<
<
<
<









>
>
>
>
>
>
>
>
>







229
230
231
232
233
234
235




236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
.Fl l
option.
.It Fl T Ar keyword
Change IPv4 TOS value or TLS options.
For TLS options
.Ar keyword
may be one of:




.Ar noverify ,
which disables certificate verification;
.Ar noname ,
which disables certificate name checking;
.Ar clientcert ,
which requires a client certificate on incoming connections; or
.Ar muststaple ,
which requires the peer to provide a valid stapled OCSP response
with the handshake.
The following TLS options specify a value in the form of a key=value pair:
.Ar ciphers ,
which allows the supported TLS ciphers to be specified (see
.Xr tls_config_set_ciphers 3
for further details);
.Ar protocols ,
which allows the supported TLS protocols to be specified (see
.Xr tls_config_parse_protocols 3
for further details).
It is illegal to specify TLS options if not using TLS.
.Pp
For IPv4 TOS value
.Ar keyword
may be one of
.Ar critical ,
.Ar inetcontrol ,
492
493
494
495
496
497
498
499





500
501
502
503
504
505
506
507
508
509
510
220 host.example.com IMS SMTP Receiver Version 0.84 Ready
.Ed
.Sh EXAMPLES
Open a TCP connection to port 42 of host.example.com, using port 31337 as
the source port, with a timeout of 5 seconds:
.Pp
.Dl $ nc -p 31337 -w 5 host.example.com 42
.Pp





Open a TCP connection to port 443 of www.google.ca, and negotiate TLS.
Check for a different name in the certificate for validation.
.Pp
.Dl $  nc -v -c -e adsf.au.doubleclick.net www.google.ca 443
.Pp
Open a UDP connection to port 53 of host.example.com:
.Pp
.Dl $ nc -u host.example.com 53
.Pp
Open a TCP connection to port 42 of host.example.com using 10.1.2.3 as the
IP for the local end of the connection:








>
>
>
>
>

|

|







497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
220 host.example.com IMS SMTP Receiver Version 0.84 Ready
.Ed
.Sh EXAMPLES
Open a TCP connection to port 42 of host.example.com, using port 31337 as
the source port, with a timeout of 5 seconds:
.Pp
.Dl $ nc -p 31337 -w 5 host.example.com 42
.Pp
Open a TCP connection to port 443 of www.example.com, and negotiate TLS with
any supported TLS protocol version and "compat" ciphers:
.Pp
.Dl $ nc -cv -T protocols=all -T ciphers=compat www.example.com 443
.Pp
Open a TCP connection to port 443 of www.google.ca, and negotiate TLS.
Check for a different name in the certificate for validation:
.Pp
.Dl $ nc -cv -e adsf.au.doubleclick.net www.google.ca 443
.Pp
Open a UDP connection to port 53 of host.example.com:
.Pp
.Dl $ nc -u host.example.com 53
.Pp
Open a TCP connection to port 42 of host.example.com using 10.1.2.3 as the
IP for the local end of the connection:
Changes to jni/libressl/apps/nc/netcat.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: netcat.c,v 1.187 2017/07/15 17:27:39 jsing Exp $ */
/*
 * Copyright (c) 2001 Eric Jackson <ericj@monkey.org>
 * Copyright (c) 2015 Bob Beck.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
|







1
2
3
4
5
6
7
8
/* $OpenBSD: netcat.c,v 1.190 2018/03/19 16:35:29 jsing Exp $ */
/*
 * Copyright (c) 2001 Eric Jackson <ericj@monkey.org>
 * Copyright (c) 2015 Bob Beck.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#define POLL_NETIN	2
#define POLL_STDOUT	3
#define BUFSIZE		16384
#ifndef DEFAULT_CA_FILE
#define DEFAULT_CA_FILE	"/etc/ssl/cert.pem"
#endif

#define TLS_ALL	(1 << 1)
#define TLS_NOVERIFY	(1 << 2)
#define TLS_NONAME	(1 << 3)
#define TLS_CCERT	(1 << 4)
#define TLS_MUSTSTAPLE	(1 << 5)
#define TLS_COMPAT	(1 << 6)

/* Command Line Options */
int	dflag;					/* detached, no stdin */
int	Fflag;					/* fdpass sock to stdout */
unsigned int iflag;				/* Interval Flag */
int	kflag;					/* More than one connect */
int	lflag;					/* Bind to local port */







<
|
|
|
|
<







66
67
68
69
70
71
72

73
74
75
76

77
78
79
80
81
82
83
#define POLL_NETIN	2
#define POLL_STDOUT	3
#define BUFSIZE		16384
#ifndef DEFAULT_CA_FILE
#define DEFAULT_CA_FILE	"/etc/ssl/cert.pem"
#endif


#define TLS_NOVERIFY	(1 << 1)
#define TLS_NONAME	(1 << 2)
#define TLS_CCERT	(1 << 3)
#define TLS_MUSTSTAPLE	(1 << 4)


/* Command Line Options */
int	dflag;					/* detached, no stdin */
int	Fflag;					/* fdpass sock to stdout */
unsigned int iflag;				/* Interval Flag */
int	kflag;					/* More than one connect */
int	lflag;					/* Bind to local port */
110
111
112
113
114
115
116


117
118
119
120
121
122
123
char    *Kflag;					/* Private key file */
char    *oflag;					/* OCSP stapling file */
char    *Rflag = DEFAULT_CA_FILE;		/* Root CA file */
int	tls_cachanged;				/* Using non-default CA file */
int     TLSopt;					/* TLS options */
char	*tls_expectname;			/* required name in peer cert */
char	*tls_expecthash;			/* required hash of peer cert */


FILE	*Zflag;					/* file to save peer cert */

int recvcount, recvlimit;
int timeout = -1;
int family = AF_UNSPEC;
char *portlist[PORT_MAX+1];
char *unix_dg_tmp_socket;







>
>







108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
char    *Kflag;					/* Private key file */
char    *oflag;					/* OCSP stapling file */
char    *Rflag = DEFAULT_CA_FILE;		/* Root CA file */
int	tls_cachanged;				/* Using non-default CA file */
int     TLSopt;					/* TLS options */
char	*tls_expectname;			/* required name in peer cert */
char	*tls_expecthash;			/* required hash of peer cert */
char	*tls_ciphers;				/* TLS ciphers */
char	*tls_protocols;				/* TLS protocols */
FILE	*Zflag;					/* file to save peer cert */

int recvcount, recvlimit;
int timeout = -1;
int family = AF_UNSPEC;
char *portlist[PORT_MAX+1];
char *unix_dg_tmp_socket;
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
int	socks_connect(const char *, const char *, struct addrinfo,
	    const char *, const char *, struct addrinfo, int, const char *);
int	udptest(int);
int	unix_bind(char *, int);
int	unix_connect(char *);
int	unix_listen(char *);
void	set_common_sockopts(int, int);
int	map_tos(char *, int *);
int	map_tls(char *, int *);
void	save_peer_cert(struct tls *_tls_ctx, FILE *_fp);
void	report_connect(const struct sockaddr *, socklen_t, char *);
void	report_tls(struct tls *tls_ctx, char * host);
void	usage(int);
ssize_t drainbuf(int, unsigned char *, size_t *, struct tls *);
ssize_t fillbuf(int, unsigned char *, size_t *, struct tls *);
void	tls_setup_client(struct tls *, int, char *);







|
|







137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
int	socks_connect(const char *, const char *, struct addrinfo,
	    const char *, const char *, struct addrinfo, int, const char *);
int	udptest(int);
int	unix_bind(char *, int);
int	unix_connect(char *);
int	unix_listen(char *);
void	set_common_sockopts(int, int);
int	process_tos_opt(char *, int *);
int	process_tls_opt(char *, int *);
void	save_peer_cert(struct tls *_tls_ctx, FILE *_fp);
void	report_connect(const struct sockaddr *, socklen_t, char *);
void	report_tls(struct tls *tls_ctx, char * host);
void	usage(int);
ssize_t drainbuf(int, unsigned char *, size_t *, struct tls *);
ssize_t fillbuf(int, unsigned char *, size_t *, struct tls *);
void	tls_setup_client(struct tls *, int, char *);
163
164
165
166
167
168
169

170
171
172
173
174
175
176
	struct sockaddr_storage cliaddr;
	char *proxy = NULL, *proxyport = NULL;
	const char *errstr;
	struct addrinfo proxyhints;
	char unix_dg_tmp_socket_buf[UNIX_DG_TMP_SOCKET_SIZE];
	struct tls_config *tls_cfg = NULL;
	struct tls *tls_ctx = NULL;


	ret = 1;
	socksv = 5;
	host = NULL;
	uport = NULL;
	sv = NULL;








>







163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
	struct sockaddr_storage cliaddr;
	char *proxy = NULL, *proxyport = NULL;
	const char *errstr;
	struct addrinfo proxyhints;
	char unix_dg_tmp_socket_buf[UNIX_DG_TMP_SOCKET_SIZE];
	struct tls_config *tls_cfg = NULL;
	struct tls *tls_ctx = NULL;
	uint32_t protocols;

	ret = 1;
	socksv = 5;
	host = NULL;
	uport = NULL;
	sv = NULL;

330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
		case 'S':
			Sflag = 1;
			break;
#endif
		case 'T':
			errstr = NULL;
			errno = 0;
			if (map_tos(optarg, &Tflag))
				break;
			if (map_tls(optarg, &TLSopt))
				break;
			if (strlen(optarg) > 1 && optarg[0] == '0' &&
			    optarg[1] == 'x')
				Tflag = (int)strtol(optarg, NULL, 16);
			else
				Tflag = (int)strtonum(optarg, 0, 255,
				    &errstr);







|

|







331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
		case 'S':
			Sflag = 1;
			break;
#endif
		case 'T':
			errstr = NULL;
			errno = 0;
			if (process_tls_opt(optarg, &TLSopt))
				break;
			if (process_tos_opt(optarg, &Tflag))
				break;
			if (strlen(optarg) > 1 && optarg[0] == '0' &&
			    optarg[1] == 'x')
				Tflag = (int)strtol(optarg, NULL, 16);
			else
				Tflag = (int)strtonum(optarg, 0, 255,
				    &errstr);
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
		errx(1, "cannot use -c and -U");
	if ((family == AF_UNIX) && Fflag)
		errx(1, "cannot use -F and -U");
	if (Fflag && usetls)
		errx(1, "cannot use -c and -F");
	if (TLSopt && !usetls)
		errx(1, "you must specify -c to use TLS options");
	if ((TLSopt & (TLS_ALL|TLS_COMPAT)) == (TLS_ALL|TLS_COMPAT))
		errx(1, "cannot use -T tlsall and -T tlscompat");
	if (Cflag && !usetls)
		errx(1, "you must specify -c to use -C");
	if (Kflag && !usetls)
		errx(1, "you must specify -c to use -K");
	if (Zflag && !usetls)
		errx(1, "you must specify -c to use -Z");
	if (oflag && !Cflag)







<
<







411
412
413
414
415
416
417


418
419
420
421
422
423
424
		errx(1, "cannot use -c and -U");
	if ((family == AF_UNIX) && Fflag)
		errx(1, "cannot use -F and -U");
	if (Fflag && usetls)
		errx(1, "cannot use -c and -F");
	if (TLSopt && !usetls)
		errx(1, "you must specify -c to use TLS options");


	if (Cflag && !usetls)
		errx(1, "you must specify -c to use -C");
	if (Kflag && !usetls)
		errx(1, "you must specify -c to use -K");
	if (Zflag && !usetls)
		errx(1, "you must specify -c to use -Z");
	if (oflag && !Cflag)
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512

513
514
515
516
517
518
519
520
521
522
523
524
525
526
		proxyhints.ai_socktype = SOCK_STREAM;
		proxyhints.ai_protocol = IPPROTO_TCP;
		if (nflag)
			proxyhints.ai_flags |= AI_NUMERICHOST;
	}

	if (usetls) {
		if (tls_init() == -1)
			errx(1, "unable to initialize TLS");
		if ((tls_cfg = tls_config_new()) == NULL)
			errx(1, "unable to allocate TLS config");
		if (Rflag && tls_config_set_ca_file(tls_cfg, Rflag) == -1)
			errx(1, "%s", tls_config_error(tls_cfg));
		if (Cflag && tls_config_set_cert_file(tls_cfg, Cflag) == -1)
			errx(1, "%s", tls_config_error(tls_cfg));
		if (Kflag && tls_config_set_key_file(tls_cfg, Kflag) == -1)
			errx(1, "%s", tls_config_error(tls_cfg));
		if (oflag && tls_config_set_ocsp_staple_file(tls_cfg, oflag) == -1)
			errx(1, "%s", tls_config_error(tls_cfg));
		if (TLSopt & (TLS_ALL|TLS_COMPAT)) {

			if (tls_config_set_protocols(tls_cfg,
			    TLS_PROTOCOLS_ALL) != 0)
				errx(1, "%s", tls_config_error(tls_cfg));
			if (tls_config_set_ciphers(tls_cfg,
			    (TLSopt & TLS_ALL) ? "all" : "compat") != 0)
				errx(1, "%s", tls_config_error(tls_cfg));
		}
		if (!lflag && (TLSopt & TLS_CCERT))
			errx(1, "clientcert is only valid with -l");
		if (TLSopt & TLS_NONAME)
			tls_config_insecure_noverifyname(tls_cfg);
		if (TLSopt & TLS_NOVERIFY) {
			if (tls_expecthash != NULL)
				errx(1, "-H and -T noverify may not be used "







<
<










|
>
|
<
|
|
<
|
<







492
493
494
495
496
497
498


499
500
501
502
503
504
505
506
507
508
509
510
511

512
513

514

515
516
517
518
519
520
521
		proxyhints.ai_socktype = SOCK_STREAM;
		proxyhints.ai_protocol = IPPROTO_TCP;
		if (nflag)
			proxyhints.ai_flags |= AI_NUMERICHOST;
	}

	if (usetls) {


		if ((tls_cfg = tls_config_new()) == NULL)
			errx(1, "unable to allocate TLS config");
		if (Rflag && tls_config_set_ca_file(tls_cfg, Rflag) == -1)
			errx(1, "%s", tls_config_error(tls_cfg));
		if (Cflag && tls_config_set_cert_file(tls_cfg, Cflag) == -1)
			errx(1, "%s", tls_config_error(tls_cfg));
		if (Kflag && tls_config_set_key_file(tls_cfg, Kflag) == -1)
			errx(1, "%s", tls_config_error(tls_cfg));
		if (oflag && tls_config_set_ocsp_staple_file(tls_cfg, oflag) == -1)
			errx(1, "%s", tls_config_error(tls_cfg));
		if (tls_config_parse_protocols(&protocols, tls_protocols) == -1)
			errx(1, "invalid TLS protocols `%s'", tls_protocols);
		if (tls_config_set_protocols(tls_cfg, protocols) == -1)

			errx(1, "%s", tls_config_error(tls_cfg));
		if (tls_config_set_ciphers(tls_cfg, tls_ciphers) == -1)

			errx(1, "%s", tls_config_error(tls_cfg));

		if (!lflag && (TLSopt & TLS_CCERT))
			errx(1, "clientcert is only valid with -l");
		if (TLSopt & TLS_NONAME)
			tls_config_insecure_noverifyname(tls_cfg);
		if (TLSopt & TLS_NOVERIFY) {
			if (tls_expecthash != NULL)
				errx(1, "-H and -T noverify may not be used "
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
				readwrite(s, NULL);
			} else if (uflag && !kflag) {
				/*
				 * For UDP and not -k, we will use recvfrom()
				 * initially to wait for a caller, then use
				 * the regular functions to talk to the caller.
				 */
				int rv, plen;
				char buf[16384];
				struct sockaddr_storage z;

				len = sizeof(z);
				plen = 2048;
				rv = recvfrom(s, buf, plen, MSG_PEEK,
				    (struct sockaddr *)&z, &len);
				if (rv < 0)
					err(1, "recvfrom");

				rv = connect(s, (struct sockaddr *)&z, len);
				if (rv < 0)
					err(1, "connect");







|
|



<
|







566
567
568
569
570
571
572
573
574
575
576
577

578
579
580
581
582
583
584
585
				readwrite(s, NULL);
			} else if (uflag && !kflag) {
				/*
				 * For UDP and not -k, we will use recvfrom()
				 * initially to wait for a caller, then use
				 * the regular functions to talk to the caller.
				 */
				int rv;
				char buf[2048];
				struct sockaddr_storage z;

				len = sizeof(z);

				rv = recvfrom(s, buf, sizeof(buf), MSG_PEEK,
				    (struct sockaddr *)&z, &len);
				if (rv < 0)
					err(1, "recvfrom");

				rv = connect(s, (struct sockaddr *)&z, len);
				if (rv < 0)
					err(1, "connect");
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
		    IPV6_MINHOPCOUNT, &minttl, sizeof(minttl)))
			err(1, "set IPv6 min hop count");
#endif
	}
}

int
map_tos(char *s, int *val)
{
	/* DiffServ Codepoints and other TOS mappings */
	const struct toskeywords {
		const char	*keyword;
		int		 val;
	} *t, toskeywords[] = {
		{ "af11",		IPTOS_DSCP_AF11 },







|







1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
		    IPV6_MINHOPCOUNT, &minttl, sizeof(minttl)))
			err(1, "set IPv6 min hop count");
#endif
	}
}

int
process_tos_opt(char *s, int *val)
{
	/* DiffServ Codepoints and other TOS mappings */
	const struct toskeywords {
		const char	*keyword;
		int		 val;
	} *t, toskeywords[] = {
		{ "af11",		IPTOS_DSCP_AF11 },
1589
1590
1591
1592
1593
1594
1595
1596
1597



1598
1599
1600

1601
1602
1603
1604
1605
1606

1607

1608
1609
1610






1611

1612





1613

1614
1615
1616
1617
1618
1619
1620
		}
	}

	return 0;
}

int
map_tls(char *s, int *val)
{



	const struct tlskeywords {
		const char	*keyword;
		int		 val;

	} *t, tlskeywords[] = {
		{ "tlsall",		TLS_ALL },
		{ "noverify",		TLS_NOVERIFY },
		{ "noname",		TLS_NONAME },
		{ "clientcert",		TLS_CCERT},
		{ "muststaple",		TLS_MUSTSTAPLE},

		{ "tlscompat",		TLS_COMPAT },

		{ NULL,			-1 },
	};







	for (t = tlskeywords; t->keyword != NULL; t++) {

		if (strcmp(s, t->keyword) == 0) {





			*val |= t->val;

			return 1;
		}
	}
	return 0;
}

void







|

>
>
>


|
>

|
<
<
|
|
>
|
>
|


>
>
>
>
>
>

>
|
>
>
>
>
>
|
>







1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600


1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
		}
	}

	return 0;
}

int
process_tls_opt(char *s, int *flags)
{
	size_t len;
	char *v;

	const struct tlskeywords {
		const char	*keyword;
		int		 flag;
		char		**value;
	} *t, tlskeywords[] = {
		{ "ciphers",		-1,			&tls_ciphers },


		{ "clientcert",		TLS_CCERT,		NULL },
		{ "muststaple",		TLS_MUSTSTAPLE,		NULL },
		{ "noverify",		TLS_NOVERIFY,		NULL },
		{ "noname",		TLS_NONAME,		NULL },
		{ "protocols",		-1,			&tls_protocols },
		{ NULL,			-1,			NULL },
	};

	len = strlen(s);
	if ((v = strchr(s, '=')) != NULL) {
		len = v - s;
		v++;
	}

	for (t = tlskeywords; t->keyword != NULL; t++) {
		if (strlen(t->keyword) == len &&
		    strncmp(s, t->keyword, len) == 0) {
			if (t->value != NULL) {
				if (v == NULL)
					errx(1, "invalid tls value `%s'", s);
				*t->value = v;
			} else {
				*flags |= t->flag;
			}
			return 1;
		}
	}
	return 0;
}

void
Changes to jni/libressl/apps/ocspcheck/CMakeLists.txt.
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

set(
	OCSPCHECK_SRC
	http.c
	ocspcheck.c
)

check_function_exists(inet_ntop HAVE_INET_NTOP)
if(HAVE_INET_NTOP)
        add_definitions(-DHAVE_INET_NTOP)
else()
        set(OCSPCHECK_SRC ${OCSPCHECK_SRC} compat/inet_ntop.c)
endif()

check_function_exists(memmem HAVE_MEMMEM)
if(HAVE_MEMMEM)
        add_definitions(-DHAVE_MEMMEM)
else()
        set(OCSPCHECK_SRC ${OCSPCHECK_SRC} compat/memmem.c)
endif()








<
<
<
<
<
<
<







9
10
11
12
13
14
15







16
17
18
19
20
21
22

set(
	OCSPCHECK_SRC
	http.c
	ocspcheck.c
)








check_function_exists(memmem HAVE_MEMMEM)
if(HAVE_MEMMEM)
        add_definitions(-DHAVE_MEMMEM)
else()
        set(OCSPCHECK_SRC ${OCSPCHECK_SRC} compat/memmem.c)
endif()

Changes to jni/libressl/apps/ocspcheck/Makefile.am.
10
11
12
13
14
15
16
17
18
19
20
21
22
23
ocspcheck_LDADD += $(abs_top_builddir)/tls/libtls.la
ocspcheck_LDADD += $(PLATFORM_LDADD) $(PROG_LDADD)

ocspcheck_SOURCES = http.c
ocspcheck_SOURCES += ocspcheck.c
noinst_HEADERS = http.h

if !HAVE_INET_NTOP
ocspcheck_SOURCES += compat/inet_ntop.c
endif

if !HAVE_MEMMEM
ocspcheck_SOURCES += compat/memmem.c
endif







<
<
<
<



10
11
12
13
14
15
16




17
18
19
ocspcheck_LDADD += $(abs_top_builddir)/tls/libtls.la
ocspcheck_LDADD += $(PLATFORM_LDADD) $(PROG_LDADD)

ocspcheck_SOURCES = http.c
ocspcheck_SOURCES += ocspcheck.c
noinst_HEADERS = http.h





if !HAVE_MEMMEM
ocspcheck_SOURCES += compat/memmem.c
endif
Changes to jni/libressl/apps/ocspcheck/Makefile.in.
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
bin_PROGRAMS = ocspcheck$(EXEEXT)
@HAVE_INET_NTOP_FALSE@am__append_1 = compat/inet_ntop.c
@HAVE_MEMMEM_FALSE@am__append_2 = compat/memmem.c
subdir = apps/ocspcheck
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/check-hardening-options.m4 \
	$(top_srcdir)/m4/check-libc.m4 \
	$(top_srcdir)/m4/check-os-options.m4 \
	$(top_srcdir)/m4/disable-compiler-warnings.m4 \
	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
	$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
	$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
	$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
	$(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
am__installdirs = "$(DESTDIR)$(bindir)"
PROGRAMS = $(bin_PROGRAMS)
am__ocspcheck_SOURCES_DIST = http.c ocspcheck.c compat/inet_ntop.c \
	compat/memmem.c
am__dirstamp = $(am__leading_dot)dirstamp
@HAVE_INET_NTOP_FALSE@am__objects_1 = compat/inet_ntop.$(OBJEXT)
@HAVE_MEMMEM_FALSE@am__objects_2 = compat/memmem.$(OBJEXT)
am_ocspcheck_OBJECTS = http.$(OBJEXT) ocspcheck.$(OBJEXT) \
	$(am__objects_1) $(am__objects_2)
ocspcheck_OBJECTS = $(am_ocspcheck_OBJECTS)
am__DEPENDENCIES_1 =
ocspcheck_DEPENDENCIES = $(abs_top_builddir)/crypto/libcrypto.la \
	$(abs_top_builddir)/ssl/libssl.la \
	$(abs_top_builddir)/tls/libtls.la $(am__DEPENDENCIES_1) \
	$(am__DEPENDENCIES_1)
AM_V_lt = $(am__v_lt_@AM_V@)







<
|


















|
<

<
|

|







86
87
88
89
90
91
92

93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112

113

114
115
116
117
118
119
120
121
122
123
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
bin_PROGRAMS = ocspcheck$(EXEEXT)

@HAVE_MEMMEM_FALSE@am__append_1 = compat/memmem.c
subdir = apps/ocspcheck
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/check-hardening-options.m4 \
	$(top_srcdir)/m4/check-libc.m4 \
	$(top_srcdir)/m4/check-os-options.m4 \
	$(top_srcdir)/m4/disable-compiler-warnings.m4 \
	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
	$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
	$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
	$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
	$(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
am__installdirs = "$(DESTDIR)$(bindir)"
PROGRAMS = $(bin_PROGRAMS)
am__ocspcheck_SOURCES_DIST = http.c ocspcheck.c compat/memmem.c

am__dirstamp = $(am__leading_dot)dirstamp

@HAVE_MEMMEM_FALSE@am__objects_1 = compat/memmem.$(OBJEXT)
am_ocspcheck_OBJECTS = http.$(OBJEXT) ocspcheck.$(OBJEXT) \
	$(am__objects_1)
ocspcheck_OBJECTS = $(am_ocspcheck_OBJECTS)
am__DEPENDENCIES_1 =
ocspcheck_DEPENDENCIES = $(abs_top_builddir)/crypto/libcrypto.la \
	$(abs_top_builddir)/ssl/libssl.la \
	$(abs_top_builddir)/tls/libtls.la $(am__DEPENDENCIES_1) \
	$(am__DEPENDENCIES_1)
AM_V_lt = $(am__v_lt_@AM_V@)
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
	-DLIBRESSL_INTERNAL -D__BEGIN_HIDDEN_DECLS= \
	-D__END_HIDDEN_DECLS=
EXTRA_DIST = ocspcheck.8 CMakeLists.txt
ocspcheck_LDADD = $(abs_top_builddir)/crypto/libcrypto.la \
	$(abs_top_builddir)/ssl/libssl.la \
	$(abs_top_builddir)/tls/libtls.la $(PLATFORM_LDADD) \
	$(PROG_LDADD)
ocspcheck_SOURCES = http.c ocspcheck.c $(am__append_1) $(am__append_2)
noinst_HEADERS = http.h
all: all-am

.SUFFIXES:
.SUFFIXES: .c .lo .o .obj
$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(top_srcdir)/Makefile.am.common $(am__configure_deps)
	@for dep in $?; do \







|







316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
	-DLIBRESSL_INTERNAL -D__BEGIN_HIDDEN_DECLS= \
	-D__END_HIDDEN_DECLS=
EXTRA_DIST = ocspcheck.8 CMakeLists.txt
ocspcheck_LDADD = $(abs_top_builddir)/crypto/libcrypto.la \
	$(abs_top_builddir)/ssl/libssl.la \
	$(abs_top_builddir)/tls/libtls.la $(PLATFORM_LDADD) \
	$(PROG_LDADD)
ocspcheck_SOURCES = http.c ocspcheck.c $(am__append_1)
noinst_HEADERS = http.h
all: all-am

.SUFFIXES:
.SUFFIXES: .c .lo .o .obj
$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(top_srcdir)/Makefile.am.common $(am__configure_deps)
	@for dep in $?; do \
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
	rm -f $$list
compat/$(am__dirstamp):
	@$(MKDIR_P) compat
	@: > compat/$(am__dirstamp)
compat/$(DEPDIR)/$(am__dirstamp):
	@$(MKDIR_P) compat/$(DEPDIR)
	@: > compat/$(DEPDIR)/$(am__dirstamp)
compat/inet_ntop.$(OBJEXT): compat/$(am__dirstamp) \
	compat/$(DEPDIR)/$(am__dirstamp)
compat/memmem.$(OBJEXT): compat/$(am__dirstamp) \
	compat/$(DEPDIR)/$(am__dirstamp)

ocspcheck$(EXEEXT): $(ocspcheck_OBJECTS) $(ocspcheck_DEPENDENCIES) $(EXTRA_ocspcheck_DEPENDENCIES) 
	@rm -f ocspcheck$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(ocspcheck_OBJECTS) $(ocspcheck_LDADD) $(LIBS)

mostlyclean-compile:
	-rm -f *.$(OBJEXT)
	-rm -f compat/*.$(OBJEXT)

distclean-compile:
	-rm -f *.tab.c

@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/http.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ocspcheck.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/inet_ntop.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/memmem.Po@am__quote@

.c.o:
@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@







<
<
















<







407
408
409
410
411
412
413


414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429

430
431
432
433
434
435
436
	rm -f $$list
compat/$(am__dirstamp):
	@$(MKDIR_P) compat
	@: > compat/$(am__dirstamp)
compat/$(DEPDIR)/$(am__dirstamp):
	@$(MKDIR_P) compat/$(DEPDIR)
	@: > compat/$(DEPDIR)/$(am__dirstamp)


compat/memmem.$(OBJEXT): compat/$(am__dirstamp) \
	compat/$(DEPDIR)/$(am__dirstamp)

ocspcheck$(EXEEXT): $(ocspcheck_OBJECTS) $(ocspcheck_DEPENDENCIES) $(EXTRA_ocspcheck_DEPENDENCIES) 
	@rm -f ocspcheck$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(ocspcheck_OBJECTS) $(ocspcheck_LDADD) $(LIBS)

mostlyclean-compile:
	-rm -f *.$(OBJEXT)
	-rm -f compat/*.$(OBJEXT)

distclean-compile:
	-rm -f *.tab.c

@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/http.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ocspcheck.Po@am__quote@

@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/memmem.Po@am__quote@

.c.o:
@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
Deleted jni/libressl/apps/ocspcheck/compat/inet_ntop.c.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
/*	$OpenBSD: inet_ntop.c,v 1.13 2016/09/21 04:38:56 guenther Exp $	*/

/* Copyright (c) 1996 by Internet Software Consortium.
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
 * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
 * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
 * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
 * SOFTWARE.
 */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <arpa/nameser.h>
#include <string.h>
#include <errno.h>
#include <stdio.h>

/*
 * WARNING: Don't even consider trying to compile this on a system where
 * sizeof(int) < 4.  sizeof(int) > 4 is fine; all the world's not a VAX.
 */

static const char *inet_ntop4(const u_char *src, char *dst, size_t size);
static const char *inet_ntop6(const u_char *src, char *dst, size_t size);

/* const char *
 * inet_ntop(af, src, dst, size)
 *	convert a network format address to presentation format.
 * return:
 *	pointer to presentation format address (`dst'), or NULL (see errno).
 * author:
 *	Paul Vixie, 1996.
 */
const char *
inet_ntop(int af, const void *src, char *dst, socklen_t size)
{
	switch (af) {
	case AF_INET:
		return (inet_ntop4(src, dst, size));
	case AF_INET6:
		return (inet_ntop6(src, dst, size));
	default:
		errno = EAFNOSUPPORT;
		return (NULL);
	}
	/* NOTREACHED */
}

/* const char *
 * inet_ntop4(src, dst, size)
 *	format an IPv4 address, more or less like inet_ntoa()
 * return:
 *	`dst' (as a const)
 * notes:
 *	(1) uses no statics
 *	(2) takes a u_char* not an in_addr as input
 * author:
 *	Paul Vixie, 1996.
 */
static const char *
inet_ntop4(const u_char *src, char *dst, size_t size)
{
	char tmp[sizeof "255.255.255.255"];
	int l;

	l = snprintf(tmp, sizeof(tmp), "%u.%u.%u.%u",
	    src[0], src[1], src[2], src[3]);
	if (l <= 0 || l >= size) {
		errno = ENOSPC;
		return (NULL);
	}
	strlcpy(dst, tmp, size);
	return (dst);
}

/* const char *
 * inet_ntop6(src, dst, size)
 *	convert IPv6 binary address into presentation (printable) format
 * author:
 *	Paul Vixie, 1996.
 */
static const char *
inet_ntop6(const u_char *src, char *dst, size_t size)
{
	/*
	 * Note that int32_t and int16_t need only be "at least" large enough
	 * to contain a value of the specified size.  On some systems, like
	 * Crays, there is no such thing as an integer variable with 16 bits.
	 * Keep this in mind if you think this function should have been coded
	 * to use pointer overlays.  All the world's not a VAX.
	 */
	char tmp[sizeof "ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255"];
	char *tp, *ep;
	struct { int base, len; } best, cur;
	u_int words[IN6ADDRSZ / INT16SZ];
	int i;
	int advance;

	/*
	 * Preprocess:
	 *	Copy the input (bytewise) array into a wordwise array.
	 *	Find the longest run of 0x00's in src[] for :: shorthanding.
	 */
	memset(words, '\0', sizeof words);
	for (i = 0; i < IN6ADDRSZ; i++)
		words[i / 2] |= (src[i] << ((1 - (i % 2)) << 3));
	best.base = -1;
	cur.base = -1;
	for (i = 0; i < (IN6ADDRSZ / INT16SZ); i++) {
		if (words[i] == 0) {
			if (cur.base == -1)
				cur.base = i, cur.len = 1;
			else
				cur.len++;
		} else {
			if (cur.base != -1) {
				if (best.base == -1 || cur.len > best.len)
					best = cur;
				cur.base = -1;
			}
		}
	}
	if (cur.base != -1) {
		if (best.base == -1 || cur.len > best.len)
			best = cur;
	}
	if (best.base != -1 && best.len < 2)
		best.base = -1;

	/*
	 * Format the result.
	 */
	tp = tmp;
	ep = tmp + sizeof(tmp);
	for (i = 0; i < (IN6ADDRSZ / INT16SZ) && tp < ep; i++) {
		/* Are we inside the best run of 0x00's? */
		if (best.base != -1 && i >= best.base &&
		    i < (best.base + best.len)) {
			if (i == best.base) {
				if (tp + 1 >= ep) {
					errno = ENOSPC;
					return (NULL);
				}
				*tp++ = ':';
			}
			continue;
		}
		/* Are we following an initial run of 0x00s or any real hex? */
		if (i != 0) {
			if (tp + 1 >= ep) {
				errno = ENOSPC;
				return (NULL);
			}
			*tp++ = ':';
		}
		/* Is this address an encapsulated IPv4? */
		if (i == 6 && best.base == 0 &&
		    (best.len == 6 || (best.len == 5 && words[5] == 0xffff))) {
			if (!inet_ntop4(src+12, tp, ep - tp))
				return (NULL);
			tp += strlen(tp);
			break;
		}
		advance = snprintf(tp, ep - tp, "%x", words[i]);
		if (advance <= 0 || advance >= ep - tp) {
			errno = ENOSPC;
			return (NULL);
		}
		tp += advance;
	}
	/* Was it a trailing run of 0x00's? */
	if (best.base != -1 && (best.base + best.len) == (IN6ADDRSZ / INT16SZ)) {
		if (tp + 1 >= ep) {
			errno = ENOSPC;
			return (NULL);
		}
		*tp++ = ':';
	}
	if (tp + 1 >= ep) {
		errno = ENOSPC;
		return (NULL);
	}
	*tp++ = '\0';

	/*
	 * Check for overflow, copy, and we're done.
	 */
	if ((size_t)(tp - tmp) > size) {
		errno = ENOSPC;
		return (NULL);
	}
	strlcpy(dst, tmp, size);
	return (dst);
}
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
























































































































































































































































































































































































































Changes to jni/libressl/apps/ocspcheck/ocspcheck.8.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

27
28
29
30
31
32
33
.\"	$OpenBSD: ocspcheck.8,v 1.6 2017/01/26 22:59:55 jmc Exp $
.\"
.\" Copyright (c) 2017 Bob Beck <beck@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: January 26 2017 $
.Dt OCSPCHECK 8
.Os
.Sh NAME
.Nm ocspcheck
.Nd check a certificate for validity against its OCSP responder
.Sh SYNOPSIS
.Nm
.Op Fl Nv
.Op Fl C Ar CAfile

.Op Fl o Ar staplefile
.Ar file
.Sh DESCRIPTION
The
.Nm
utility validates a PEM format certificate against the OCSP responder
encoded in the certificate specified by the
|















|









>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
.\"	$OpenBSD: ocspcheck.8,v 1.9 2017/11/29 21:15:45 jmc Exp $
.\"
.\" Copyright (c) 2017 Bob Beck <beck@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: November 29 2017 $
.Dt OCSPCHECK 8
.Os
.Sh NAME
.Nm ocspcheck
.Nd check a certificate for validity against its OCSP responder
.Sh SYNOPSIS
.Nm
.Op Fl Nv
.Op Fl C Ar CAfile
.Op Fl i Ar staplefile
.Op Fl o Ar staplefile
.Ar file
.Sh DESCRIPTION
The
.Nm
utility validates a PEM format certificate against the OCSP responder
encoded in the certificate specified by the
41
42
43
44
45
46
47







48
49
50
51

52
53
54
55
56
57
58
.It Fl C Ar CAfile
Specify a PEM format root certificate bundle to use for the validation of
requests.
By default no certificates are used beyond those in the
certificate chain provided by the
.Ar file
argument.







.It Fl N
Do not use a nonce value in the OCSP request, or validate that the
nonce was returned in the OCSP response.
By default a nonce is always used and validated.

The use of this flag is a security risk as it will allow OCSP
responses to be replayed.
It should not be used unless the OCSP server does not support the
use of OCSP nonces.
.It Fl o Ar staplefile
Specify an output filename where the DER encoded response from the
OCSP server will be written, if the OCSP response validates.







>
>
>
>
>
>
>



|
>







42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
.It Fl C Ar CAfile
Specify a PEM format root certificate bundle to use for the validation of
requests.
By default no certificates are used beyond those in the
certificate chain provided by the
.Ar file
argument.
.It Fl i Ar staplefile
Specify an input filename from which a DER-encoded OCSP response
will be read instead of fetching it from the OCSP server.
A filename
of
.Sq -
will read the response from standard input.
.It Fl N
Do not use a nonce value in the OCSP request, or validate that the
nonce was returned in the OCSP response.
By default a nonce is always used and validated when retrieving
a response from an OCSP server.
The use of this flag is a security risk as it will allow OCSP
responses to be replayed.
It should not be used unless the OCSP server does not support the
use of OCSP nonces.
.It Fl o Ar staplefile
Specify an output filename where the DER encoded response from the
OCSP server will be written, if the OCSP response validates.
75
76
77
78
79
80
81





82
83
84
85
86
87
88
.Nm
exits >0 if an error occurs or the OCSP response fails to validate.
.Sh SEE ALSO
.Xr nc 1 ,
.Xr tls_config_set_ocsp_staple_file 3 ,
.Xr tls_config_set_ocsp_staple_mem 3 ,
.Xr httpd 8





.Sh AUTHORS
.Nm
was written by
.An Bob Beck .
.Sh CAVEATS
While
.Nm







>
>
>
>
>







84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
.Nm
exits >0 if an error occurs or the OCSP response fails to validate.
.Sh SEE ALSO
.Xr nc 1 ,
.Xr tls_config_set_ocsp_staple_file 3 ,
.Xr tls_config_set_ocsp_staple_mem 3 ,
.Xr httpd 8
.Sh HISTORY
The
.Nm
utility first appeared in
.Ox 6.1 .
.Sh AUTHORS
.Nm
was written by
.An Bob Beck .
.Sh CAVEATS
While
.Nm
Changes to jni/libressl/apps/ocspcheck/ocspcheck.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: ocspcheck.c,v 1.21 2017/05/08 20:15:34 beck Exp $ */

/*
 * Copyright (c) 2017 Bob Beck <beck@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
|







1
2
3
4
5
6
7
8
/* $OpenBSD: ocspcheck.c,v 1.24 2017/12/01 14:42:23 visa Exp $ */

/*
 * Copyright (c) 2017 Bob Beck <beck@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
36
37
38
39
40
41
42

43
44
45
46
47
48
49
#include <openssl/ocsp.h>
#include <openssl/ssl.h>

#include "http.h"

#define MAXAGE_SEC (14*24*60*60)
#define JITTER_SEC (60)


typedef struct ocsp_request {
	STACK_OF(X509) *fullchain;
	OCSP_REQUEST *req;
	char *url;
	unsigned char *data;
	size_t size;







>







36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <openssl/ocsp.h>
#include <openssl/ssl.h>

#include "http.h"

#define MAXAGE_SEC (14*24*60*60)
#define JITTER_SEC (60)
#define OCSP_MAX_RESPONSE_SIZE (20480)

typedef struct ocsp_request {
	STACK_OF(X509) *fullchain;
	OCSP_REQUEST *req;
	char *url;
	unsigned char *data;
	size_t size;
493
494
495
496
497
498
499
500

501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530



531
532
533
534
535
536
537
	return 1;
}

static void
usage(void)
{
	fprintf(stderr,
	    "usage: ocspcheck [-Nv] [-C CAfile] [-o staplefile] file\n");

	exit(1);
}

int
main(int argc, char **argv)
{
	char *host = NULL, *path = "/", *certfile = NULL, *outfile = NULL,
	    *cafile = NULL;
	struct addr addrs[MAX_SERVERS_DNS] = {{0}};
	struct source sources[MAX_SERVERS_DNS];
	int i, ch, staplefd = -1, nonce = 1;
	ocsp_request *request = NULL;
	size_t rescount, httphsz;
	struct httphead	*httph;
	struct httpget *hget;
	X509_STORE *castore;
	ssize_t written, w;
	short port;

	while ((ch = getopt(argc, argv, "C:No:v")) != -1) {
		switch (ch) {
		case 'C':
			cafile = optarg;
			break;
		case 'N':
			nonce = 0;
			break;
		case 'o':
			outfile = optarg;
			break;



		case 'v':
			verbose++;
			break;
		default:
			usage();
		}
	}







|
>







|


|

|
|





|










>
>
>







494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
	return 1;
}

static void
usage(void)
{
	fprintf(stderr,
	    "usage: ocspcheck [-Nv] [-C CAfile] [-i staplefile] "
	    "[-o staplefile] file\n");
	exit(1);
}

int
main(int argc, char **argv)
{
	char *host = NULL, *path = "/", *certfile = NULL, *outfile = NULL,
	    *cafile = NULL, *instaple = NULL, *infile = NULL;
	struct addr addrs[MAX_SERVERS_DNS] = {{0}};
	struct source sources[MAX_SERVERS_DNS];
	int i, ch, staplefd = -1, infd = -1, nonce = 1;
	ocsp_request *request = NULL;
	size_t rescount, httphsz = 0, instaplesz = 0;
	struct httphead	*httph = NULL;
	struct httpget *hget;
	X509_STORE *castore;
	ssize_t written, w;
	short port;

	while ((ch = getopt(argc, argv, "C:i:No:v")) != -1) {
		switch (ch) {
		case 'C':
			cafile = optarg;
			break;
		case 'N':
			nonce = 0;
			break;
		case 'o':
			outfile = optarg;
			break;
		case 'i':
			infile = optarg;
			break;
		case 'v':
			verbose++;
			break;
		default:
			usage();
		}
	}
546
547
548
549
550
551
552










553
554
555
556
557
558
559
			staplefd = STDOUT_FILENO;
		else
			staplefd = open(outfile, O_WRONLY|O_CREAT,
			    S_IWUSR|S_IRUSR|S_IRGRP|S_IROTH);
		if (staplefd < 0)
			err(1, "Unable to open output file %s", outfile);
	}











	if (pledge("stdio inet rpath dns", NULL) == -1)
		err(1, "pledge");

	/*
	 * Load our certificate and keystore, and build up an
	 * OCSP request based on the full certificate chain







>
>
>
>
>
>
>
>
>
>







551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
			staplefd = STDOUT_FILENO;
		else
			staplefd = open(outfile, O_WRONLY|O_CREAT,
			    S_IWUSR|S_IRUSR|S_IRGRP|S_IROTH);
		if (staplefd < 0)
			err(1, "Unable to open output file %s", outfile);
	}

	if (infile != NULL) {
		if (strcmp(infile, "-") == 0)
			infd = STDIN_FILENO;
		else
			infd = open(infile, O_RDONLY);
		if (infd < 0)
			err(1, "Unable to open input file %s", infile);
		nonce = 0; /* Can't validate a nonce on a saved reply */
	}

	if (pledge("stdio inet rpath dns", NULL) == -1)
		err(1, "pledge");

	/*
	 * Load our certificate and keystore, and build up an
	 * OCSP request based on the full certificate chain
567
568
569
570
571
572
573




574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
































618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
	dspew("Built an %zu byte ocsp request\n", request->size);

	if ((host = url2host(request->url, &port, &path)) == NULL)
		errx(1, "Invalid OCSP url %s from %s", request->url,
		    certfile);
	if (*path == '\0')
		path = "/";




	vspew("Using %s to host %s, port %d, path %s\n",
	    port == 443 ? "https" : "http", host, port, path);

	rescount = host_dns(host, addrs);
	for (i = 0; i < rescount; i++) {
		sources[i].ip = addrs[i].ip;
		sources[i].family = addrs[i].family;
	}

	/*
	 * Do an HTTP post to send our request to the OCSP
	 * server, and hopefully get an answer back
	 */
	hget = http_get(sources, rescount, host, port, path,
	    request->data, request->size);
	if (hget == NULL)
		errx(1, "http_get");

	/*
	 * Pledge minimally before fiddling with libcrypto init
	 * routines and parsing untrusted input from someone's OCSP
	 * server.
	 */
	if (pledge("stdio", NULL) == -1)
		err(1, "pledge");

	httph = http_head_parse(hget->http, hget->xfer, &httphsz);
	dspew("Server at %s returns:\n", host);
	for (i = 0; i < httphsz; i++)
		dspew("	  [%s]=[%s]\n", httph[i].key, httph[i].val);
	dspew("	  [Body]=[%zu bytes]\n", hget->bodypartsz);
	if (hget->bodypartsz <= 0)
		errx(1, "No body in reply from %s", host);

	if (hget->code != 200)
		errx(1, "http reply code %d from %s", hget->code, host);

	/*
	 * Validate the OCSP response we got back
	 */
	OPENSSL_add_all_algorithms_noconf();
	if (!validate_response(hget->bodypart, hget->bodypartsz,
	    request, castore, host, certfile))
		exit(1);

































	/*
	 * If we have been given a place to save a staple,
	 * write out the DER format response to the staplefd
	 */
	if (staplefd >= 0) {
		(void) ftruncate(staplefd, 0);
		w = 0;
		written = 0;
		while (written < hget->bodypartsz) {
			w = write(staplefd, hget->bodypart + written,
			    hget->bodypartsz - written);
			if (w == -1) {
				if (errno != EINTR && errno != EAGAIN)
					err(1, "Write of OCSP response failed");
			} else
				written += w;
		}
		close(staplefd);
	}
	exit(0);
}







>
>
>
>
|
|

|
|
|
|
|

|
|
|
|
|
|
|
|
<
|
|
|
|
|
|
|

<
|
|
|
|
|
|

|
|

|
|
|
|
|
|
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>









|
|
|










582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609

610
611
612
613
614
615
616
617

618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
	dspew("Built an %zu byte ocsp request\n", request->size);

	if ((host = url2host(request->url, &port, &path)) == NULL)
		errx(1, "Invalid OCSP url %s from %s", request->url,
		    certfile);
	if (*path == '\0')
		path = "/";

	if (infd == -1) {
		/* Get a new OCSP response from the indicated server */

		vspew("Using %s to host %s, port %d, path %s\n",
		    port == 443 ? "https" : "http", host, port, path);

		rescount = host_dns(host, addrs);
		for (i = 0; i < rescount; i++) {
			sources[i].ip = addrs[i].ip;
			sources[i].family = addrs[i].family;
		}

		/*
		 * Do an HTTP post to send our request to the OCSP
		 * server, and hopefully get an answer back
		 */
		hget = http_get(sources, rescount, host, port, path,
		    request->data, request->size);
		if (hget == NULL)
			errx(1, "http_get");

		/*
		 * Pledge minimally before fiddling with libcrypto init
		 * routines and parsing untrusted input from someone's OCSP
		 * server.
		 */
		if (pledge("stdio", NULL) == -1)
			err(1, "pledge");


		dspew("Server at %s returns:\n", host);
		for (i = 0; i < httphsz; i++)
			dspew("	  [%s]=[%s]\n", httph[i].key, httph[i].val);
		dspew("	  [Body]=[%zu bytes]\n", hget->bodypartsz);
		if (hget->bodypartsz <= 0)
			errx(1, "No body in reply from %s", host);

		if (hget->code != 200)
			errx(1, "http reply code %d from %s", hget->code, host);

		/*
		 * Validate the OCSP response we got back
		 */
		OPENSSL_add_all_algorithms_noconf();
		if (!validate_response(hget->bodypart, hget->bodypartsz,
			request, castore, host, certfile))
			exit(1);
		instaple = hget->bodypart;
		instaplesz = hget->bodypartsz;
	} else {
		size_t nr = 0;
		instaplesz = 0;

		/*
		 * Pledge minimally before fiddling with libcrypto init
		 */
		if (pledge("stdio", NULL) == -1)
			err(1, "pledge");

		dspew("Using ocsp response saved in %s:\n", infile);

		/* Use the existing OCSP response saved in infd */
		instaple = calloc(OCSP_MAX_RESPONSE_SIZE, 1);
		if (instaple) {
			while ((nr = read(infd, instaple + instaplesz,
			    OCSP_MAX_RESPONSE_SIZE - instaplesz)) != -1 &&
			    nr != 0)
				instaplesz += nr;
		}
		if (instaplesz == 0)
			exit(1);
		/*
		 * Validate the OCSP staple we read in.
		 */
		OPENSSL_add_all_algorithms_noconf();
		if (!validate_response(instaple, instaplesz,
			request, castore, host, certfile))
			exit(1);
	}

	/*
	 * If we have been given a place to save a staple,
	 * write out the DER format response to the staplefd
	 */
	if (staplefd >= 0) {
		(void) ftruncate(staplefd, 0);
		w = 0;
		written = 0;
		while (written < instaplesz) {
			w = write(staplefd, instaple + written,
			    instaplesz - written);
			if (w == -1) {
				if (errno != EINTR && errno != EAGAIN)
					err(1, "Write of OCSP response failed");
			} else
				written += w;
		}
		close(staplefd);
	}
	exit(0);
}
Changes to jni/libressl/apps/openssl/CMakeLists.txt.
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
	spkac.c
	ts.c
	verify.c
	version.c
	x509.c
)

if(CMAKE_HOST_UNIX)
	set(OPENSSL_SRC ${OPENSSL_SRC} apps_posix.c)
	set(OPENSSL_SRC ${OPENSSL_SRC} certhash.c)
endif()

if(CMAKE_HOST_WIN32)
	set(OPENSSL_SRC ${OPENSSL_SRC} apps_win.c)
	set(OPENSSL_SRC ${OPENSSL_SRC} certhash_win.c)
	set(OPENSSL_SRC ${OPENSSL_SRC} compat/poll_win.c)
endif()

check_function_exists(strtonum HAVE_STRTONUM)
if(HAVE_STRTONUM)







|




|







51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
	spkac.c
	ts.c
	verify.c
	version.c
	x509.c
)

if(UNIX)
	set(OPENSSL_SRC ${OPENSSL_SRC} apps_posix.c)
	set(OPENSSL_SRC ${OPENSSL_SRC} certhash.c)
endif()

if(WIN32)
	set(OPENSSL_SRC ${OPENSSL_SRC} apps_win.c)
	set(OPENSSL_SRC ${OPENSSL_SRC} certhash_win.c)
	set(OPENSSL_SRC ${OPENSSL_SRC} compat/poll_win.c)
endif()

check_function_exists(strtonum HAVE_STRTONUM)
if(HAVE_STRTONUM)
Changes to jni/libressl/apps/openssl/Makefile.am.
69
70
71
72
73
74
75






76
77
78
79
80
81
82
endif

if !HAVE_POLL
if HOST_WIN
openssl_SOURCES += compat/poll_win.c
endif
endif







if !HAVE_STRTONUM
openssl_SOURCES += compat/strtonum.c
endif

noinst_HEADERS = apps.h
noinst_HEADERS += progs.h







>
>
>
>
>
>







69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
endif

if !HAVE_POLL
if HOST_WIN
openssl_SOURCES += compat/poll_win.c
endif
endif

if !HAVE_CLOCK_GETTIME
if HOST_DARWIN
openssl_SOURCES += compat/clock_gettime_osx.c
endif
endif

if !HAVE_STRTONUM
openssl_SOURCES += compat/strtonum.c
endif

noinst_HEADERS = apps.h
noinst_HEADERS += progs.h
Changes to jni/libressl/apps/openssl/Makefile.in.
91
92
93
94
95
96
97

98
99
100
101
102
103
104
105
host_triplet = @host@
bin_PROGRAMS = openssl$(EXEEXT)
@BUILD_CERTHASH_TRUE@am__append_1 = certhash.c
@BUILD_CERTHASH_FALSE@am__append_2 = certhash_win.c
@HOST_WIN_TRUE@am__append_3 = apps_win.c
@HOST_WIN_FALSE@am__append_4 = apps_posix.c
@HAVE_POLL_FALSE@@HOST_WIN_TRUE@am__append_5 = compat/poll_win.c

@HAVE_STRTONUM_FALSE@am__append_6 = compat/strtonum.c
subdir = apps/openssl
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/check-hardening-options.m4 \
	$(top_srcdir)/m4/check-libc.m4 \
	$(top_srcdir)/m4/check-os-options.m4 \
	$(top_srcdir)/m4/disable-compiler-warnings.m4 \
	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \







>
|







91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
host_triplet = @host@
bin_PROGRAMS = openssl$(EXEEXT)
@BUILD_CERTHASH_TRUE@am__append_1 = certhash.c
@BUILD_CERTHASH_FALSE@am__append_2 = certhash_win.c
@HOST_WIN_TRUE@am__append_3 = apps_win.c
@HOST_WIN_FALSE@am__append_4 = apps_posix.c
@HAVE_POLL_FALSE@@HOST_WIN_TRUE@am__append_5 = compat/poll_win.c
@HAVE_CLOCK_GETTIME_FALSE@@HOST_DARWIN_TRUE@am__append_6 = compat/clock_gettime_osx.c
@HAVE_STRTONUM_FALSE@am__append_7 = compat/strtonum.c
subdir = apps/openssl
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/check-hardening-options.m4 \
	$(top_srcdir)/m4/check-libc.m4 \
	$(top_srcdir)/m4/check-os-options.m4 \
	$(top_srcdir)/m4/disable-compiler-warnings.m4 \
	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132

133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
	crl2p7.c dgst.c dh.c dhparam.c dsa.c dsaparam.c ec.c ecparam.c \
	enc.c errstr.c gendh.c gendsa.c genpkey.c genrsa.c nseq.c \
	ocsp.c openssl.c passwd.c pkcs12.c pkcs7.c pkcs8.c pkey.c \
	pkeyparam.c pkeyutl.c prime.c rand.c req.c rsa.c rsautl.c \
	s_cb.c s_client.c s_server.c s_socket.c s_time.c sess_id.c \
	smime.c speed.c spkac.c ts.c verify.c version.c x509.c \
	certhash.c certhash_win.c apps_win.c apps_posix.c \
	compat/poll_win.c compat/strtonum.c
@BUILD_CERTHASH_TRUE@am__objects_1 = certhash.$(OBJEXT)
@BUILD_CERTHASH_FALSE@am__objects_2 = certhash_win.$(OBJEXT)
@HOST_WIN_TRUE@am__objects_3 = apps_win.$(OBJEXT)
@HOST_WIN_FALSE@am__objects_4 = apps_posix.$(OBJEXT)
am__dirstamp = $(am__leading_dot)dirstamp
@HAVE_POLL_FALSE@@HOST_WIN_TRUE@am__objects_5 =  \
@HAVE_POLL_FALSE@@HOST_WIN_TRUE@	compat/poll_win.$(OBJEXT)

@HAVE_STRTONUM_FALSE@am__objects_6 = compat/strtonum.$(OBJEXT)
am_openssl_OBJECTS = apps.$(OBJEXT) asn1pars.$(OBJEXT) ca.$(OBJEXT) \
	ciphers.$(OBJEXT) crl.$(OBJEXT) crl2p7.$(OBJEXT) \
	dgst.$(OBJEXT) dh.$(OBJEXT) dhparam.$(OBJEXT) dsa.$(OBJEXT) \
	dsaparam.$(OBJEXT) ec.$(OBJEXT) ecparam.$(OBJEXT) \
	enc.$(OBJEXT) errstr.$(OBJEXT) gendh.$(OBJEXT) \
	gendsa.$(OBJEXT) genpkey.$(OBJEXT) genrsa.$(OBJEXT) \
	nseq.$(OBJEXT) ocsp.$(OBJEXT) openssl.$(OBJEXT) \
	passwd.$(OBJEXT) pkcs12.$(OBJEXT) pkcs7.$(OBJEXT) \
	pkcs8.$(OBJEXT) pkey.$(OBJEXT) pkeyparam.$(OBJEXT) \
	pkeyutl.$(OBJEXT) prime.$(OBJEXT) rand.$(OBJEXT) req.$(OBJEXT) \
	rsa.$(OBJEXT) rsautl.$(OBJEXT) s_cb.$(OBJEXT) \
	s_client.$(OBJEXT) s_server.$(OBJEXT) s_socket.$(OBJEXT) \
	s_time.$(OBJEXT) sess_id.$(OBJEXT) smime.$(OBJEXT) \
	speed.$(OBJEXT) spkac.$(OBJEXT) ts.$(OBJEXT) verify.$(OBJEXT) \
	version.$(OBJEXT) x509.$(OBJEXT) $(am__objects_1) \
	$(am__objects_2) $(am__objects_3) $(am__objects_4) \
	$(am__objects_5) $(am__objects_6)
openssl_OBJECTS = $(am_openssl_OBJECTS)
am__DEPENDENCIES_1 =
openssl_DEPENDENCIES = $(abs_top_builddir)/ssl/libssl.la \
	$(abs_top_builddir)/crypto/libcrypto.la $(am__DEPENDENCIES_1) \
	$(am__DEPENDENCIES_1)
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)







|







>
|
















|







119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
	crl2p7.c dgst.c dh.c dhparam.c dsa.c dsaparam.c ec.c ecparam.c \
	enc.c errstr.c gendh.c gendsa.c genpkey.c genrsa.c nseq.c \
	ocsp.c openssl.c passwd.c pkcs12.c pkcs7.c pkcs8.c pkey.c \
	pkeyparam.c pkeyutl.c prime.c rand.c req.c rsa.c rsautl.c \
	s_cb.c s_client.c s_server.c s_socket.c s_time.c sess_id.c \
	smime.c speed.c spkac.c ts.c verify.c version.c x509.c \
	certhash.c certhash_win.c apps_win.c apps_posix.c \
	compat/poll_win.c compat/clock_gettime_osx.c compat/strtonum.c
@BUILD_CERTHASH_TRUE@am__objects_1 = certhash.$(OBJEXT)
@BUILD_CERTHASH_FALSE@am__objects_2 = certhash_win.$(OBJEXT)
@HOST_WIN_TRUE@am__objects_3 = apps_win.$(OBJEXT)
@HOST_WIN_FALSE@am__objects_4 = apps_posix.$(OBJEXT)
am__dirstamp = $(am__leading_dot)dirstamp
@HAVE_POLL_FALSE@@HOST_WIN_TRUE@am__objects_5 =  \
@HAVE_POLL_FALSE@@HOST_WIN_TRUE@	compat/poll_win.$(OBJEXT)
@HAVE_CLOCK_GETTIME_FALSE@@HOST_DARWIN_TRUE@am__objects_6 = compat/clock_gettime_osx.$(OBJEXT)
@HAVE_STRTONUM_FALSE@am__objects_7 = compat/strtonum.$(OBJEXT)
am_openssl_OBJECTS = apps.$(OBJEXT) asn1pars.$(OBJEXT) ca.$(OBJEXT) \
	ciphers.$(OBJEXT) crl.$(OBJEXT) crl2p7.$(OBJEXT) \
	dgst.$(OBJEXT) dh.$(OBJEXT) dhparam.$(OBJEXT) dsa.$(OBJEXT) \
	dsaparam.$(OBJEXT) ec.$(OBJEXT) ecparam.$(OBJEXT) \
	enc.$(OBJEXT) errstr.$(OBJEXT) gendh.$(OBJEXT) \
	gendsa.$(OBJEXT) genpkey.$(OBJEXT) genrsa.$(OBJEXT) \
	nseq.$(OBJEXT) ocsp.$(OBJEXT) openssl.$(OBJEXT) \
	passwd.$(OBJEXT) pkcs12.$(OBJEXT) pkcs7.$(OBJEXT) \
	pkcs8.$(OBJEXT) pkey.$(OBJEXT) pkeyparam.$(OBJEXT) \
	pkeyutl.$(OBJEXT) prime.$(OBJEXT) rand.$(OBJEXT) req.$(OBJEXT) \
	rsa.$(OBJEXT) rsautl.$(OBJEXT) s_cb.$(OBJEXT) \
	s_client.$(OBJEXT) s_server.$(OBJEXT) s_socket.$(OBJEXT) \
	s_time.$(OBJEXT) sess_id.$(OBJEXT) smime.$(OBJEXT) \
	speed.$(OBJEXT) spkac.$(OBJEXT) ts.$(OBJEXT) verify.$(OBJEXT) \
	version.$(OBJEXT) x509.$(OBJEXT) $(am__objects_1) \
	$(am__objects_2) $(am__objects_3) $(am__objects_4) \
	$(am__objects_5) $(am__objects_6) $(am__objects_7)
openssl_OBJECTS = $(am_openssl_OBJECTS)
am__DEPENDENCIES_1 =
openssl_DEPENDENCIES = $(abs_top_builddir)/ssl/libssl.la \
	$(abs_top_builddir)/crypto/libcrypto.la $(am__DEPENDENCIES_1) \
	$(am__DEPENDENCIES_1)
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
	dgst.c dh.c dhparam.c dsa.c dsaparam.c ec.c ecparam.c enc.c \
	errstr.c gendh.c gendsa.c genpkey.c genrsa.c nseq.c ocsp.c \
	openssl.c passwd.c pkcs12.c pkcs7.c pkcs8.c pkey.c pkeyparam.c \
	pkeyutl.c prime.c rand.c req.c rsa.c rsautl.c s_cb.c \
	s_client.c s_server.c s_socket.c s_time.c sess_id.c smime.c \
	speed.c spkac.c ts.c verify.c version.c x509.c $(am__append_1) \
	$(am__append_2) $(am__append_3) $(am__append_4) \
	$(am__append_5) $(am__append_6)
noinst_HEADERS = apps.h progs.h s_apps.h testdsa.h testrsa.h \
	timeouts.h
EXTRA_DIST = cert.pem openssl.cnf x509v3.cnf CMakeLists.txt
all: all-am

.SUFFIXES:
.SUFFIXES: .c .lo .o .obj







|







388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
	dgst.c dh.c dhparam.c dsa.c dsaparam.c ec.c ecparam.c enc.c \
	errstr.c gendh.c gendsa.c genpkey.c genrsa.c nseq.c ocsp.c \
	openssl.c passwd.c pkcs12.c pkcs7.c pkcs8.c pkey.c pkeyparam.c \
	pkeyutl.c prime.c rand.c req.c rsa.c rsautl.c s_cb.c \
	s_client.c s_server.c s_socket.c s_time.c sess_id.c smime.c \
	speed.c spkac.c ts.c verify.c version.c x509.c $(am__append_1) \
	$(am__append_2) $(am__append_3) $(am__append_4) \
	$(am__append_5) $(am__append_6) $(am__append_7)
noinst_HEADERS = apps.h progs.h s_apps.h testdsa.h testrsa.h \
	timeouts.h
EXTRA_DIST = cert.pem openssl.cnf x509v3.cnf CMakeLists.txt
all: all-am

.SUFFIXES:
.SUFFIXES: .c .lo .o .obj
481
482
483
484
485
486
487


488
489
490
491
492
493
494
	@$(MKDIR_P) compat
	@: > compat/$(am__dirstamp)
compat/$(DEPDIR)/$(am__dirstamp):
	@$(MKDIR_P) compat/$(DEPDIR)
	@: > compat/$(DEPDIR)/$(am__dirstamp)
compat/poll_win.$(OBJEXT): compat/$(am__dirstamp) \
	compat/$(DEPDIR)/$(am__dirstamp)


compat/strtonum.$(OBJEXT): compat/$(am__dirstamp) \
	compat/$(DEPDIR)/$(am__dirstamp)

openssl$(EXEEXT): $(openssl_OBJECTS) $(openssl_DEPENDENCIES) $(EXTRA_openssl_DEPENDENCIES) 
	@rm -f openssl$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(openssl_OBJECTS) $(openssl_LDADD) $(LIBS)








>
>







483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
	@$(MKDIR_P) compat
	@: > compat/$(am__dirstamp)
compat/$(DEPDIR)/$(am__dirstamp):
	@$(MKDIR_P) compat/$(DEPDIR)
	@: > compat/$(DEPDIR)/$(am__dirstamp)
compat/poll_win.$(OBJEXT): compat/$(am__dirstamp) \
	compat/$(DEPDIR)/$(am__dirstamp)
compat/clock_gettime_osx.$(OBJEXT): compat/$(am__dirstamp) \
	compat/$(DEPDIR)/$(am__dirstamp)
compat/strtonum.$(OBJEXT): compat/$(am__dirstamp) \
	compat/$(DEPDIR)/$(am__dirstamp)

openssl$(EXEEXT): $(openssl_OBJECTS) $(openssl_DEPENDENCIES) $(EXTRA_openssl_DEPENDENCIES) 
	@rm -f openssl$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(openssl_OBJECTS) $(openssl_LDADD) $(LIBS)

546
547
548
549
550
551
552

553
554
555
556
557
558
559
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smime.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/speed.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/spkac.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ts.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/verify.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/x509.Po@am__quote@

@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/poll_win.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/strtonum.Po@am__quote@

.c.o:
@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po







>







550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smime.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/speed.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/spkac.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ts.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/verify.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/x509.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/clock_gettime_osx.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/poll_win.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/strtonum.Po@am__quote@

.c.o:
@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
Changes to jni/libressl/apps/openssl/apps.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: apps.c,v 1.44 2017/08/12 21:04:33 jsing Exp $ */
/*
 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: apps.c,v 1.47 2018/02/07 08:57:25 jsing Exp $ */
/*
 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
			    "Mac verify error (wrong password?) in PKCS12 file for %s\n", desc);
			goto die;
		}
		pass = tpass;
	}
	ret = PKCS12_parse(p12, pass, pkey, cert, ca);

die:
	if (p12)
		PKCS12_free(p12);
	return ret;
}

X509 *
load_cert(BIO *err, const char *file, int format, const char *pass,
    const char *cert_descrip)
{







|
<
|







579
580
581
582
583
584
585
586

587
588
589
590
591
592
593
594
			    "Mac verify error (wrong password?) in PKCS12 file for %s\n", desc);
			goto die;
		}
		pass = tpass;
	}
	ret = PKCS12_parse(p12, pass, pkey, cert, ca);

 die:

	PKCS12_free(p12);
	return ret;
}

X509 *
load_cert(BIO *err, const char *file, int format, const char *pass,
    const char *cert_descrip)
{
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
			goto end;
	} else {
		BIO_printf(err, "bad input format specified for %s\n",
		    cert_descrip);
		goto end;
	}

end:
	if (x == NULL) {
		BIO_printf(err, "unable to load certificate\n");
		ERR_print_errors(err);
	}
	BIO_free(cert);
	return (x);
}







|







638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
			goto end;
	} else {
		BIO_printf(err, "bad input format specified for %s\n",
		    cert_descrip);
		goto end;
	}

 end:
	if (x == NULL) {
		BIO_printf(err, "unable to load certificate\n");
		ERR_print_errors(err);
	}
	BIO_free(cert);
	return (x);
}
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
		pkey = b2i_PVK_bio(key, password_callback,
		    &cb_data);
#endif
	else {
		BIO_printf(err, "bad input format specified for key file\n");
		goto end;
	}
end:
	BIO_free(key);
	if (pkey == NULL) {
		BIO_printf(err, "unable to load %s\n", key_descrip);
		ERR_print_errors(err);
	}
	return (pkey);
}







|







701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
		pkey = b2i_PVK_bio(key, password_callback,
		    &cb_data);
#endif
	else {
		BIO_printf(err, "bad input format specified for key file\n");
		goto end;
	}
 end:
	BIO_free(key);
	if (pkey == NULL) {
		BIO_printf(err, "unable to load %s\n", key_descrip);
		ERR_print_errors(err);
	}
	return (pkey);
}
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
		pkey = b2i_PublicKey_bio(key);
#endif
	else {
		BIO_printf(err, "bad input format specified for key file\n");
		goto end;
	}

end:
	BIO_free(key);
	if (pkey == NULL)
		BIO_printf(err, "unable to load %s\n", key_descrip);
	return (pkey);
}

#if !defined(OPENSSL_NO_RC4) && !defined(OPENSSL_NO_RSA)







|







778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
		pkey = b2i_PublicKey_bio(key);
#endif
	else {
		BIO_printf(err, "bad input format specified for key file\n");
		goto end;
	}

 end:
	BIO_free(key);
	if (pkey == NULL)
		BIO_printf(err, "unable to load %s\n", key_descrip);
	return (pkey);
}

#if !defined(OPENSSL_NO_RC4) && !defined(OPENSSL_NO_RSA)
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
	    (format == FORMAT_IISSGC ? 1 : 0));
	if (rsa == NULL)
		goto error;
	BUF_MEM_free(buf);
	EVP_PKEY_set1_RSA(pkey, rsa);
	return pkey;

error:
	BUF_MEM_free(buf);
	EVP_PKEY_free(pkey);
	return NULL;
}
#endif				/* ndef OPENSSL_NO_RC4 */

static int







|







823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
	    (format == FORMAT_IISSGC ? 1 : 0));
	if (rsa == NULL)
		goto error;
	BUF_MEM_free(buf);
	EVP_PKEY_set1_RSA(pkey, rsa);
	return pkey;

 error:
	BUF_MEM_free(buf);
	EVP_PKEY_free(pkey);
	return NULL;
}
#endif				/* ndef OPENSSL_NO_RC4 */

static int
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911

	if (pcerts && sk_X509_num(*pcerts) > 0)
		rv = 1;

	if (pcrls && sk_X509_CRL_num(*pcrls) > 0)
		rv = 1;

end:
	if (xis)
		sk_X509_INFO_pop_free(xis, X509_INFO_free);

	if (rv == 0) {
		if (pcerts) {
			sk_X509_pop_free(*pcerts, X509_free);
			*pcerts = NULL;
		}
		if (pcrls) {







|
<
|







894
895
896
897
898
899
900
901

902
903
904
905
906
907
908
909

	if (pcerts && sk_X509_num(*pcerts) > 0)
		rv = 1;

	if (pcrls && sk_X509_CRL_num(*pcrls) > 0)
		rv = 1;

 end:

	sk_X509_INFO_pop_free(xis, X509_INFO_free);

	if (rv == 0) {
		if (pcerts) {
			sk_X509_pop_free(*pcerts, X509_free);
			*pcerts = NULL;
		}
		if (pcrls) {
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
		}
		if (!X509_add_ext(x, ext, -1))
			goto end;
	}

	ret = 1;

end:
	sk_X509_EXTENSION_pop_free(exts, X509_EXTENSION_free);

	return ret;
}

static int
set_multi_opts(unsigned long *flags, const char *arg,







|







1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
		}
		if (!X509_add_ext(x, ext, -1))
			goto end;
	}

	ret = 1;

 end:
	sk_X509_EXTENSION_pop_free(exts, X509_EXTENSION_free);

	return ret;
}

static int
set_multi_opts(unsigned long *flags, const char *arg,
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
		}
	} else
		X509_LOOKUP_add_dir(lookup, NULL, X509_FILETYPE_DEFAULT);

	ERR_clear_error();
	return store;

end:
	X509_STORE_free(store);
	return NULL;
}

int
load_config(BIO *err, CONF *cnf)
{







|







1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
		}
	} else
		X509_LOOKUP_add_dir(lookup, NULL, X509_FILETYPE_DEFAULT);

	ERR_clear_error();
	return store;

 end:
	X509_STORE_free(store);
	return NULL;
}

int
load_config(BIO *err, CONF *cnf)
{
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
	}

	if (ret && retai) {
		*retai = ai;
		ai = NULL;
	}

err:
	if (in != NULL)
		BIO_free(in);
	if (ai != NULL)
		ASN1_INTEGER_free(ai);
	return (ret);
}

int
save_serial(char *serialfile, char *suffix, BIGNUM *serial,
    ASN1_INTEGER **retai)
{







|
<
|
<
|







1304
1305
1306
1307
1308
1309
1310
1311

1312

1313
1314
1315
1316
1317
1318
1319
1320
	}

	if (ret && retai) {
		*retai = ai;
		ai = NULL;
	}

 err:

	BIO_free(in);

	ASN1_INTEGER_free(ai);
	return (ret);
}

int
save_serial(char *serialfile, char *suffix, BIGNUM *serial,
    ASN1_INTEGER **retai)
{
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
	BIO_puts(out, "\n");
	ret = 1;
	if (retai) {
		*retai = ai;
		ai = NULL;
	}

err:
	if (out != NULL)
		BIO_free_all(out);
	if (ai != NULL)
		ASN1_INTEGER_free(ai);
	return (ret);
}

int
rotate_serial(char *serialfile, char *new_suffix, char *old_suffix)
{
	char opath[PATH_MAX], npath[PATH_MAX];







|
<
|
<
|







1350
1351
1352
1353
1354
1355
1356
1357

1358

1359
1360
1361
1362
1363
1364
1365
1366
	BIO_puts(out, "\n");
	ret = 1;
	if (retai) {
		*retai = ai;
		ai = NULL;
	}

 err:

	BIO_free_all(out);

	ASN1_INTEGER_free(ai);
	return (ret);
}

int
rotate_serial(char *serialfile, char *new_suffix, char *old_suffix)
{
	char opath[PATH_MAX], npath[PATH_MAX];
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
			    opath, serialfile);
			perror("reason");
		}
		goto err;
	}
	return 1;

err:
	return 0;
}

int
rand_serial(BIGNUM *b, ASN1_INTEGER *ai)
{
	BIGNUM *btmp;







|







1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
			    opath, serialfile);
			perror("reason");
		}
		goto err;
	}
	return 1;

 err:
	return 0;
}

int
rand_serial(BIGNUM *b, ASN1_INTEGER *ai)
{
	BIGNUM *btmp;
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
	if (!BN_pseudo_rand(btmp, SERIAL_RAND_BITS, 0, 0))
		goto error;
	if (ai && !BN_to_ASN1_INTEGER(btmp, ai))
		goto error;

	ret = 1;

error:
	if (!b)
		BN_free(btmp);

	return ret;
}

CA_DB *
load_index(char *dbfile, DB_ATTR *db_attr)







|
|







1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
	if (!BN_pseudo_rand(btmp, SERIAL_RAND_BITS, 0, 0))
		goto error;
	if (ai && !BN_to_ASN1_INTEGER(btmp, ai))
		goto error;

	ret = 1;

 error:
	if (b != btmp)
		BN_free(btmp);

	return ret;
}

CA_DB *
load_index(char *dbfile, DB_ATTR *db_attr)
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
	if (dbattr_conf) {
		char *p = NCONF_get_string(dbattr_conf, NULL, "unique_subject");
		if (p) {
			retdb->attributes.unique_subject = parse_yesno(p, 1);
		}
	}

err:
	if (dbattr_conf)
		NCONF_free(dbattr_conf);
	if (tmpdb)
		TXT_DB_free(tmpdb);
	if (in)
		BIO_free_all(in);
	return retdb;
}

int
index_index(CA_DB *db)
{
	if (!TXT_DB_create_index(db->db, DB_serial, NULL,







|
<
|
<
|
<
|







1486
1487
1488
1489
1490
1491
1492
1493

1494

1495

1496
1497
1498
1499
1500
1501
1502
1503
	if (dbattr_conf) {
		char *p = NCONF_get_string(dbattr_conf, NULL, "unique_subject");
		if (p) {
			retdb->attributes.unique_subject = parse_yesno(p, 1);
		}
	}

 err:

	NCONF_free(dbattr_conf);

	TXT_DB_free(tmpdb);

	BIO_free_all(in);
	return retdb;
}

int
index_index(CA_DB *db)
{
	if (!TXT_DB_create_index(db->db, DB_serial, NULL,
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
	}
	BIO_printf(out, "unique_subject = %s\n",
	    db->attributes.unique_subject ? "yes" : "no");
	BIO_free(out);

	return 1;

err:
	return 0;
}

int
rotate_index(const char *dbfile, const char *new_suffix, const char *old_suffix)
{
	char attrpath[PATH_MAX], nattrpath[PATH_MAX], oattrpath[PATH_MAX];







|







1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
	}
	BIO_printf(out, "unique_subject = %s\n",
	    db->attributes.unique_subject ? "yes" : "no");
	BIO_free(out);

	return 1;

 err:
	return 0;
}

int
rotate_index(const char *dbfile, const char *new_suffix, const char *old_suffix)
{
	char attrpath[PATH_MAX], nattrpath[PATH_MAX], oattrpath[PATH_MAX];
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
			    odbpath, dbfile);
			perror("reason");
		}
		goto err;
	}
	return 1;

err:
	return 0;
}

void
free_index(CA_DB *db)
{
	if (db) {
		if (db->db)
			TXT_DB_free(db->db);
		free(db);
	}
}

int
parse_yesno(const char *str, int def)
{







|







<
|







1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668

1669
1670
1671
1672
1673
1674
1675
1676
			    odbpath, dbfile);
			perror("reason");
		}
		goto err;
	}
	return 1;

 err:
	return 0;
}

void
free_index(CA_DB *db)
{
	if (db) {

		TXT_DB_free(db->db);
		free(db);
	}
}

int
parse_yesno(const char *str, int def)
{
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
		}
		if (!X509_NAME_add_entry_by_NID(name, nid, chtype,
		    (unsigned char *) ne_values[i], -1, -1, mval[i]))
			goto error;
	}
	goto done;

error:
	X509_NAME_free(name);
	name = NULL;

done:
	free(ne_values);
	free(ne_types);
	free(mval);
	free(buf);

	return name;
}







|



|







1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
		}
		if (!X509_NAME_add_entry_by_NID(name, nid, chtype,
		    (unsigned char *) ne_values[i], -1, -1, mval[i]))
			goto error;
	}
	goto done;

 error:
	X509_NAME_free(name);
	name = NULL;

 done:
	free(ne_values);
	free(ne_types);
	free(mval);
	free(buf);

	return name;
}
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
		flags |= X509_V_FLAG_NOTIFY_POLICY;
	else if (!strcmp(arg, "-check_ss_sig"))
		flags |= X509_V_FLAG_CHECK_SS_SIGNATURE;
	else
		return 0;

	if (*badarg) {
		if (*pm)
			X509_VERIFY_PARAM_free(*pm);
		*pm = NULL;
		goto end;
	}
	if (!*pm && !(*pm = X509_VERIFY_PARAM_new())) {
		*badarg = 1;
		goto end;
	}







<
|







1931
1932
1933
1934
1935
1936
1937

1938
1939
1940
1941
1942
1943
1944
1945
		flags |= X509_V_FLAG_NOTIFY_POLICY;
	else if (!strcmp(arg, "-check_ss_sig"))
		flags |= X509_V_FLAG_CHECK_SS_SIGNATURE;
	else
		return 0;

	if (*badarg) {

		X509_VERIFY_PARAM_free(*pm);
		*pm = NULL;
		goto end;
	}
	if (!*pm && !(*pm = X509_VERIFY_PARAM_new())) {
		*badarg = 1;
		goto end;
	}
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980

	if (depth >= 0)
		X509_VERIFY_PARAM_set_depth(*pm, depth);

	if (at_time)
		X509_VERIFY_PARAM_set_time(*pm, at_time);

end:
	(*pargs)++;

	if (pargc)
		*pargc -= *pargs - oldargs;

	ASN1_OBJECT_free(otmp);
	return 1;







|







1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969

	if (depth >= 0)
		X509_VERIFY_PARAM_set_depth(*pm, depth);

	if (at_time)
		X509_VERIFY_PARAM_set_time(*pm, at_time);

 end:
	(*pargs)++;

	if (pargc)
		*pargc -= *pargs - oldargs;

	ASN1_OBJECT_free(otmp);
	return 1;
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
	explicit_policy = X509_STORE_CTX_get_explicit_policy(ctx);

	BIO_printf(out, "Require explicit Policy: %s\n",
	    explicit_policy ? "True" : "False");

	nodes_print(out, "Authority", X509_policy_tree_get0_policies(tree));
	nodes_print(out, "User", X509_policy_tree_get0_user_policies(tree));
	if (free_out)
		BIO_free(out);
}

/*
 * next_protos_parse parses a comma separated list of strings into a string
 * in a format suitable for passing to SSL_CTX_set_next_protos_advertised.
 *   outlen: (output) set to the length of the resulting buffer on success.
 *   err: (maybe NULL) on failure, an error message line is written to this BIO.







|
|







2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
	explicit_policy = X509_STORE_CTX_get_explicit_policy(ctx);

	BIO_printf(out, "Require explicit Policy: %s\n",
	    explicit_policy ? "True" : "False");

	nodes_print(out, "Authority", X509_policy_tree_get0_policies(tree));
	nodes_print(out, "User", X509_policy_tree_get0_user_policies(tree));

	BIO_free(out);
}

/*
 * next_protos_parse parses a comma separated list of strings into a string
 * in a format suitable for passing to SSL_CTX_set_next_protos_advertised.
 *   outlen: (output) set to the length of the resulting buffer on success.
 *   err: (maybe NULL) on failure, an error message line is written to this BIO.
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
		default:
			fprintf(stderr, "option %s - unknown type %i\n",
			    opt->name, opt->type);
			return (1);
		}
	}

done:
	if (argsused != NULL)
		*argsused = i;

	return (0);

toomany:
	fprintf(stderr, "too many arguments\n");
	return (1);

unknown:
	fprintf(stderr, "unknown option '%s'\n", arg);
	return (1);
}







|





|



|



2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
		default:
			fprintf(stderr, "option %s - unknown type %i\n",
			    opt->name, opt->type);
			return (1);
		}
	}

 done:
	if (argsused != NULL)
		*argsused = i;

	return (0);

 toomany:
	fprintf(stderr, "too many arguments\n");
	return (1);

 unknown:
	fprintf(stderr, "unknown option '%s'\n", arg);
	return (1);
}
Changes to jni/libressl/apps/openssl/apps.h.
1
2
3
4
5
6
7
8
/* $OpenBSD: apps.h,v 1.19 2016/08/30 14:34:59 deraadt Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: apps.h,v 1.20 2017/12/05 15:02:06 jca Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
275
276
277
278
279
280
281
282

283
284
285
286
287
288
289

#define SERIAL_RAND_BITS	64

int app_isdir(const char *);

#define TM_START	0
#define TM_STOP		1
double app_tminterval (int stop, int usertime);


#define OPENSSL_NO_SSL_INTERN

struct option {
	const char *name;
	const char *argname;
	const char *desc;







|
>







275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290

#define SERIAL_RAND_BITS	64

int app_isdir(const char *);

#define TM_START	0
#define TM_STOP		1
double app_timer_real(int stop);
double app_timer_user(int stop);

#define OPENSSL_NO_SSL_INTERN

struct option {
	const char *name;
	const char *argname;
	const char *desc;
Changes to jni/libressl/apps/openssl/apps_posix.c.
112
113
114
115
116
117
118
119

120
121
122
123
124
125
126
127
128
129
130
131
132

133
134

135
136
137
138

139
140





141




142

143
144
145
146
147
148
149
150
 *
 */

/*
 * Functions that need to be overridden by non-POSIX operating systems.
 */

#include <sys/times.h>


#include <unistd.h>

#include "apps.h"

double
app_tminterval(int stop, int usertime)
{
	double ret = 0;
	struct tms rus;
	clock_t now = times(&rus);
	static clock_t tmstart;


	if (usertime)
		now = rus.tms_utime;


	if (stop == TM_START)
		tmstart = now;
	else {

		long int tck = sysconf(_SC_CLK_TCK);
		ret = (now - tmstart) / (double) tck;





	}






	return (ret);
}

int
setup_ui(void)
{
	ui_method = UI_create_method("OpenSSL application user interface");
	UI_method_set_opener(ui_method, ui_open);







|
>

|




|

<
|
|
<

>
|
|
>
|
<
|
|
>
|
|
>
>
>
>
>
|
>
>
>
>
|
>
|







112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128

129
130

131
132
133
134
135
136

137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
 *
 */

/*
 * Functions that need to be overridden by non-POSIX operating systems.
 */

#include <sys/resource.h>
#include <sys/time.h>

#include <time.h>

#include "apps.h"

double
app_timer_real(int stop)
{

	static struct timespec start;
	struct timespec elapsed, now;


	clock_gettime(CLOCK_MONOTONIC, &now);
	if (stop) {
		timespecsub(&now, &start, &elapsed);
		return elapsed.tv_sec + elapsed.tv_nsec / 1000000000.0;
	}

	start = now;
	return 0.0;
}

double
app_timer_user(int stop)
{
	static struct timeval start;
	struct timeval elapsed;
	struct rusage now;

	getrusage(RUSAGE_SELF, &now);
	if (stop) {
		timersub(&now.ru_utime, &start, &elapsed);
		return elapsed.tv_sec + elapsed.tv_usec / 1000000.0;
	}
	start = now.ru_utime;
	return 0.0;
}

int
setup_ui(void)
{
	ui_method = UI_create_method("OpenSSL application user interface");
	UI_method_set_opener(ui_method, ui_open);
Changes to jni/libressl/apps/openssl/apps_win.c.
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

31
32
33
34
35
36
37
38

#include <io.h>
#include <fcntl.h>

#include "apps.h"

double
app_tminterval(int stop, int usertime)
{
	static unsigned __int64 tmstart;
	union {
		unsigned __int64 u64;
		FILETIME ft;
	} ct, et, kt, ut;

	GetProcessTimes(GetCurrentProcess(), &ct.ft, &et.ft, &kt.ft, &ut.ft);

	if (stop == TM_START) {
		tmstart = ut.u64 + kt.u64;
	} else {
		return (ut.u64 + kt.u64 - tmstart) / (double) 10000000;
	}

	return 0;
}

int
setup_ui(void)
{
	ui_method = UI_create_method("OpenSSL application user interface");
	UI_method_set_opener(ui_method, ui_open);







|








<
|
<
<

|
>
|







9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

25


26
27
28
29
30
31
32
33
34
35
36

#include <io.h>
#include <fcntl.h>

#include "apps.h"

double
app_timer_user(int stop)
{
	static unsigned __int64 tmstart;
	union {
		unsigned __int64 u64;
		FILETIME ft;
	} ct, et, kt, ut;

	GetProcessTimes(GetCurrentProcess(), &ct.ft, &et.ft, &kt.ft, &ut.ft);

	if (stop)


		return (ut.u64 + kt.u64 - tmstart) / (double) 10000000;

	tmstart = ut.u64 + kt.u64;
	return 0.0;
}

int
setup_ui(void)
{
	ui_method = UI_create_method("OpenSSL application user interface");
	UI_method_set_opener(ui_method, ui_open);
Changes to jni/libressl/apps/openssl/asn1pars.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: asn1pars.c,v 1.7 2017/01/20 08:57:11 deraadt Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: asn1pars.c,v 1.9 2018/02/07 05:47:55 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
	    (unsigned char *)&(str[asn1pars_config.offset]),
	    asn1pars_config.length, asn1pars_config.indent,
	    asn1pars_config.dump)) {
		ERR_print_errors(bio_err);
		goto end;
	}
	ret = 0;
end:
	BIO_free(derout);
	BIO_free(in);
	BIO_free_all(out);
	BIO_free(b64);
	if (ret != 0)
		ERR_print_errors(bio_err);
	BUF_MEM_free(buf);
	if (at != NULL)
		ASN1_TYPE_free(at);
	sk_OPENSSL_STRING_free(asn1pars_config.osk);
	OBJ_cleanup();

	return (ret);
}

static int







|







<
|







404
405
406
407
408
409
410
411
412
413
414
415
416
417
418

419
420
421
422
423
424
425
426
	    (unsigned char *)&(str[asn1pars_config.offset]),
	    asn1pars_config.length, asn1pars_config.indent,
	    asn1pars_config.dump)) {
		ERR_print_errors(bio_err);
		goto end;
	}
	ret = 0;
 end:
	BIO_free(derout);
	BIO_free(in);
	BIO_free_all(out);
	BIO_free(b64);
	if (ret != 0)
		ERR_print_errors(bio_err);
	BUF_MEM_free(buf);

	ASN1_TYPE_free(at);
	sk_OPENSSL_STRING_free(asn1pars_config.osk);
	OBJ_cleanup();

	return (ret);
}

static int
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
	p = (unsigned char *) buf->data;

	i2d_ASN1_TYPE(atyp, &p);

	ASN1_TYPE_free(atyp);
	return len;

conferr:

	if (errline > 0)
		BIO_printf(bio, "Error on line %ld of config file '%s'\n",
		    errline, genconf);
	else
		BIO_printf(bio, "Error loading config file '%s'\n", genconf);

err:
	NCONF_free(cnf);
	ASN1_TYPE_free(atyp);

	return -1;

}







|







|






460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
	p = (unsigned char *) buf->data;

	i2d_ASN1_TYPE(atyp, &p);

	ASN1_TYPE_free(atyp);
	return len;

 conferr:

	if (errline > 0)
		BIO_printf(bio, "Error on line %ld of config file '%s'\n",
		    errline, genconf);
	else
		BIO_printf(bio, "Error loading config file '%s'\n", genconf);

 err:
	NCONF_free(cnf);
	ASN1_TYPE_free(atyp);

	return -1;

}
Changes to jni/libressl/apps/openssl/ca.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: ca.c,v 1.25 2017/05/08 21:12:36 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: ca.c,v 1.26 2018/02/07 05:47:55 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
		} else if (strcmp(*argv, "-crl_CA_compromise") == 0) {
			if (--argc < 1)
				goto bad;
			rev_arg = *(++argv);
			rev_type = REV_CA_COMPROMISE;
		}
		else {
bad:
			if (errstr)
				BIO_printf(bio_err, "invalid argument %s: %s\n",
				    *argv, errstr);
			else
				BIO_printf(bio_err, "unknown option %s\n", *argv);
			badops = 1;
			break;







|







493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
		} else if (strcmp(*argv, "-crl_CA_compromise") == 0) {
			if (--argc < 1)
				goto bad;
			rev_arg = *(++argv);
			rev_type = REV_CA_COMPROMISE;
		}
		else {
 bad:
			if (errstr)
				BIO_printf(bio_err, "invalid argument %s: %s\n",
				    *argv, errstr);
			else
				BIO_printf(bio_err, "unknown option %s\n", *argv);
			badops = 1;
			break;
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320

			BIO_printf(bio_err, "Data Base Updated\n");
		}
	}
	/*****************************************************************/
	ret = 0;

err:
	free(tofree);

	BIO_free_all(Cout);
	BIO_free_all(Sout);
	BIO_free_all(out);
	BIO_free_all(in);








|







1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320

			BIO_printf(bio_err, "Data Base Updated\n");
		}
	}
	/*****************************************************************/
	ret = 0;

 err:
	free(tofree);

	BIO_free_all(Cout);
	BIO_free_all(Sout);
	BIO_free_all(out);
	BIO_free_all(in);

1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
		BIO_printf(bio_err, "Signature ok\n");

	ok = do_body(xret, pkey, x509, dgst, sigopts, policy, db, serial,
	    subj, chtype, multirdn, email_dn, startdate, enddate, days, batch,
	    verbose, req, ext_sect, lconf, certopt, nameopt, default_op,
	    ext_copy, selfsign);

err:
	if (req != NULL)
		X509_REQ_free(req);
	if (in != NULL)
		BIO_free(in);
	return (ok);
}








|







1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
		BIO_printf(bio_err, "Signature ok\n");

	ok = do_body(xret, pkey, x509, dgst, sigopts, policy, db, serial,
	    subj, chtype, multirdn, email_dn, startdate, enddate, days, batch,
	    verbose, req, ext_sect, lconf, certopt, nameopt, default_op,
	    ext_copy, selfsign);

 err:
	if (req != NULL)
		X509_REQ_free(req);
	if (in != NULL)
		BIO_free(in);
	return (ok);
}

1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
		goto err;

	ok = do_body(xret, pkey, x509, dgst, sigopts, policy, db, serial,
	    subj, chtype, multirdn, email_dn, startdate, enddate, days, batch,
	    verbose, rreq, ext_sect, lconf, certopt, nameopt, default_op,
	    ext_copy, 0);

err:
	if (rreq != NULL)
		X509_REQ_free(rreq);
	if (req != NULL)
		X509_free(req);
	return (ok);
}








|







1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
		goto err;

	ok = do_body(xret, pkey, x509, dgst, sigopts, policy, db, serial,
	    subj, chtype, multirdn, email_dn, startdate, enddate, days, batch,
	    verbose, rreq, ext_sect, lconf, certopt, nameopt, default_op,
	    ext_copy, 0);

 err:
	if (rreq != NULL)
		X509_REQ_free(rreq);
	if (req != NULL)
		X509_free(req);
	return (ok);
}

1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979

	if (!TXT_DB_insert(db->db, irow)) {
		BIO_printf(bio_err, "failed to update database\n");
		BIO_printf(bio_err, "TXT_DB error number %ld\n", db->db->error);
		goto err;
	}
	ok = 1;
err:
	for (i = 0; i < DB_NUMBER; i++)
		free(row[i]);

	if (CAname != NULL)
		X509_NAME_free(CAname);
	if (subject != NULL)
		X509_NAME_free(subject);







|







1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979

	if (!TXT_DB_insert(db->db, irow)) {
		BIO_printf(bio_err, "failed to update database\n");
		BIO_printf(bio_err, "TXT_DB error number %ld\n", db->db->error);
		goto err;
	}
	ok = 1;
 err:
	for (i = 0; i < DB_NUMBER; i++)
		free(row[i]);

	if (CAname != NULL)
		X509_NAME_free(CAname);
	if (subject != NULL)
		X509_NAME_free(subject);
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
	X509_REQ_set_pubkey(req, pktmp);
	EVP_PKEY_free(pktmp);
	ok = do_body(xret, pkey, x509, dgst, sigopts, policy, db, serial,
	    subj, chtype, multirdn, email_dn, startdate, enddate, days, 1,
	    verbose, req, ext_sect, lconf, certopt, nameopt, default_op,
	    ext_copy, 0);

err:
	if (req != NULL)
		X509_REQ_free(req);
	if (parms != NULL)
		CONF_free(parms);
	if (spki != NULL)
		NETSCAPE_SPKI_free(spki);








|







2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
	X509_REQ_set_pubkey(req, pktmp);
	EVP_PKEY_free(pktmp);
	ok = do_body(xret, pkey, x509, dgst, sigopts, policy, db, serial,
	    subj, chtype, multirdn, email_dn, startdate, enddate, days, 1,
	    verbose, req, ext_sect, lconf, certopt, nameopt, default_op,
	    ext_copy, 0);

 err:
	if (req != NULL)
		X509_REQ_free(req);
	if (parms != NULL)
		CONF_free(parms);
	if (spki != NULL)
		NETSCAPE_SPKI_free(spki);

2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
		}
		rrow[DB_type][0] = 'R';
		rrow[DB_type][1] = '\0';
		rrow[DB_rev_date] = rev_str;
	}
	ok = 1;

err:
	for (i = 0; i < DB_NUMBER; i++)
		free(row[i]);

	return (ok);
}

static int







|







2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
		}
		rrow[DB_type][0] = 'R';
		rrow[DB_type][1] = '\0';
		rrow[DB_rev_date] = rev_str;
	}
	ok = 1;

 err:
	for (i = 0; i < DB_NUMBER; i++)
		free(row[i]);

	return (ok);
}

static int
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
		goto err;
	} else {
		BIO_printf(bio_err, "%s=Unknown (%c).\n",
		    row[DB_serial], rrow[DB_type][0]);
		ok = -1;
	}

err:
	for (i = 0; i < DB_NUMBER; i++)
		free(row[i]);

	return (ok);
}

static int







|







2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
		goto err;
	} else {
		BIO_printf(bio_err, "%s=Unknown (%c).\n",
		    row[DB_serial], rrow[DB_type][0]);
		ok = -1;
	}

 err:
	for (i = 0; i < DB_NUMBER; i++)
		free(row[i]);

	return (ok);
}

static int
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393

				BIO_printf(bio_err, "%s=Expired\n",
				    rrow[DB_serial]);
			}
		}
	}

err:
	ASN1_UTCTIME_free(a_tm);
	free(a_tm_s);

	return (cnt);
}

static const char *crl_reasons[] = {







|







2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393

				BIO_printf(bio_err, "%s=Expired\n",
				    rrow[DB_serial]);
			}
		}
	}

 err:
	ASN1_UTCTIME_free(a_tm);
	free(a_tm_s);

	return (cnt);
}

static const char *crl_reasons[] = {
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
			goto err;
	}
	if (reason_code != OCSP_REVOKED_STATUS_NOSTATUS)
		ret = 2;
	else
		ret = 1;

err:
	free(tmp);

	ASN1_OBJECT_free(hold);
	ASN1_GENERALIZEDTIME_free(comp_time);
	ASN1_ENUMERATED_free(rtmp);
	ASN1_TIME_free(revDate);








|







2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
			goto err;
	}
	if (reason_code != OCSP_REVOKED_STATUS_NOSTATUS)
		ret = 2;
	else
		ret = 1;

 err:
	free(tmp);

	ASN1_OBJECT_free(hold);
	ASN1_GENERALIZEDTIME_free(comp_time);
	ASN1_ENUMERATED_free(rtmp);
	ASN1_TIME_free(revDate);

2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
	if (pinvtm)
		*pinvtm = comp_time;
	else
		ASN1_GENERALIZEDTIME_free(comp_time);

	ret = 1;

err:
	free(tmp);

	if (!phold)
		ASN1_OBJECT_free(hold);
	if (!pinvtm)
		ASN1_GENERALIZEDTIME_free(comp_time);








|







2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
	if (pinvtm)
		*pinvtm = comp_time;
	else
		ASN1_GENERALIZEDTIME_free(comp_time);

	ret = 1;

 err:
	free(tmp);

	if (!phold)
		ASN1_OBJECT_free(hold);
	if (!pinvtm)
		ASN1_GENERALIZEDTIME_free(comp_time);

Changes to jni/libressl/apps/openssl/cert.pem.
1




























































































































































































































































































































































2
3
4
5
6
7
8
# $OpenBSD: cert.pem,v 1.15 2017/02/24 10:42:00 sthen Exp $





























































































































































































































































































































































### AddTrust AB

=== /C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
Certificate:
    Data:
        Version: 3 (0x2)
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
# $OpenBSD: cert.pem,v 1.16 2018/03/21 15:26:09 sthen Exp $
### /C=ES/CN=Autoridad de Certificacion Firmaprofesional CIF A62634068

=== /C=ES/CN=Autoridad de Certificacion Firmaprofesional CIF A62634068
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 6047274297262753887 (0x53ec3beefbb2485f)
    Signature Algorithm: sha1WithRSAEncryption
        Validity
            Not Before: May 20 08:38:15 2009 GMT
            Not After : Dec 31 08:38:15 2030 GMT
        Subject: C=ES, CN=Autoridad de Certificacion Firmaprofesional CIF A62634068
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:TRUE, pathlen:1
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Subject Key Identifier: 
                65:CD:EB:AB:35:1E:00:3E:7E:D5:74:C0:1C:B4:73:47:0E:1A:64:2F
            X509v3 Certificate Policies: 
                Policy: X509v3 Any Policy
                  CPS: http://www.firmaprofesional.com/cps
                  User Notice:
                    Explicit Text: 

SHA1 Fingerprint=AE:C5:FB:3F:C8:E1:BF:C4:E5:4F:03:07:5A:9A:E8:00:B7:F7:B6:FA
SHA256 Fingerprint=04:04:80:28:BF:1F:28:64:D4:8F:9A:D4:D8:32:94:36:6A:82:88:56:55:3F:3B:14:30:3F:90:14:7F:5D:40:EF
-----BEGIN CERTIFICATE-----
MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UE
BhMCRVMxQjBABgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1h
cHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEy
MzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIwQAYDVQQDDDlBdXRvcmlkYWQgZGUg
Q2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBBNjI2MzQwNjgwggIi
MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDDUtd9
thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQM
cas9UX4PB99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefG
L9ItWY16Ck6WaVICqjaY7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15i
NA9wBj4gGFrO93IbJWyTdBSTo3OxDqqHECNZXyAFGUftaI6SEspd/NYrspI8IM/h
X68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyIplD9amML9ZMWGxmPsu2b
m8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctXMbScyJCy
Z/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirja
EbsXLZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/T
KI8xWVvTyQKmtFLKbpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF
6NkBiDkal4ZkQdU7hwxu+g/GvUgUvzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVh
OSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD
VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNHDhpkLzCBpgYD
VR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp
cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBv
ACAAZABlACAAbABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBl
AGwAbwBuAGEAIAAwADgAMAAxADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF
661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx51tkljYyGOylMnfX40S2wBEqgLk9
am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qkR71kMrv2JYSiJ0L1
ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaPT481
PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS
3a/DTg4fJl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5k
SeTy36LssUzAKh3ntLFlosS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF
3dvd6qJ2gHN99ZwExEWN57kci57q13XRcrHedUTnQn3iV2t93Jm8PYMo6oCTjcVM
ZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoRsaS8I8nkvof/uZS2+F0g
StRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTDKCOM/icz
Q0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQB
jLMi6Et8Vcad+qMUu2WFbm5PEn4KPJ2V
-----END CERTIFICATE-----

### AC Camerfirma S.A.

=== /C=EU/L=Madrid (see current address at www.camerfirma.com/address)/serialNumber=A82743287/O=AC Camerfirma S.A./CN=Chambers of Commerce Root - 2008
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 11806822484801597146 (0xa3da427ea4b1aeda)
    Signature Algorithm: sha1WithRSAEncryption
        Validity
            Not Before: Aug  1 12:29:50 2008 GMT
            Not After : Jul 31 12:29:50 2038 GMT
        Subject: C=EU, L=Madrid (see current address at www.camerfirma.com/address)/serialNumber=A82743287, O=AC Camerfirma S.A., CN=Chambers of Commerce Root - 2008
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:TRUE, pathlen:12
            X509v3 Subject Key Identifier: 
                F9:24:AC:0F:B2:B5:F8:79:C0:FA:60:88:1B:C4:D9:4D:02:9E:17:19
            X509v3 Authority Key Identifier: 
                keyid:F9:24:AC:0F:B2:B5:F8:79:C0:FA:60:88:1B:C4:D9:4D:02:9E:17:19
                DirName:/C=EU/L=Madrid (see current address at www.camerfirma.com/address)/serialNumber=A82743287/O=AC Camerfirma S.A./CN=Chambers of Commerce Root - 2008
                serial:A3:DA:42:7E:A4:B1:AE:DA

            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Certificate Policies: 
                Policy: X509v3 Any Policy
                  CPS: http://policy.camerfirma.com

SHA1 Fingerprint=78:6A:74:AC:76:AB:14:7F:9C:6A:30:50:BA:9E:A8:7E:FE:9A:CE:3C
SHA256 Fingerprint=06:3E:4A:FA:C4:91:DF:D3:32:F3:08:9B:85:42:E9:46:17:D8:93:D7:FE:94:4E:10:A7:93:7E:E2:9D:96:93:C0
-----BEGIN CERTIFICATE-----
MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYD
VQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0
IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3
MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xKTAnBgNVBAMTIENoYW1iZXJz
IG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEyMjk1MFoXDTM4MDcz
MTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBj
dXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIw
EAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEp
MCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0G
CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW9
28sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKAXuFixrYp4YFs8r/lfTJq
VKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorjh40G072Q
DuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR
5gN/ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfL
ZEFHcpOrUMPrCXZkNNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05a
Sd+pZgvMPMZ4fKecHePOjlO+Bd5gD2vlGts/4+EhySnB8esHnFIbAURRPHsl18Tl
UlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331lubKgdaX8ZSD6e2wsWsSaR6s
+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ0wlf2eOKNcx5
Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj
ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAx
hduub+84Mxh2EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNV
HQ4EFgQU+SSsD7K1+HnA+mCIG8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1
+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpN
YWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29t
L2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVy
ZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAt
IDIwMDiCCQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRV
HSAAMCowKAYIKwYBBQUHAgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20w
DQYJKoZIhvcNAQEFBQADggIBAJASryI1wqM58C7e6bXpeHxIvj99RZJe6dqxGfwW
PJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH3qLPaYRgM+gQDROpI9CF
5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbURWpGqOt1
glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaH
FoI6M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2
pSB7+R5KBWIBpih1YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MD
xvbxrN8y8NmBGuScvfaAFPDRLLmF9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QG
tjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcKzBIKinmwPQN/aUv0NCB9szTq
jktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvGnrDQWzilm1De
fhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg
OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZ
d0jQ
-----END CERTIFICATE-----
=== /C=EU/L=Madrid (see current address at www.camerfirma.com/address)/serialNumber=A82743287/O=AC Camerfirma S.A./CN=Global Chambersign Root - 2008
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 14541511773111788494 (0xc9cdd3e9d57d23ce)
    Signature Algorithm: sha1WithRSAEncryption
        Validity
            Not Before: Aug  1 12:31:40 2008 GMT
            Not After : Jul 31 12:31:40 2038 GMT
        Subject: C=EU, L=Madrid (see current address at www.camerfirma.com/address)/serialNumber=A82743287, O=AC Camerfirma S.A., CN=Global Chambersign Root - 2008
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:TRUE, pathlen:12
            X509v3 Subject Key Identifier: 
                B9:09:CA:9C:1E:DB:D3:6C:3A:6B:AE:ED:54:F1:5B:93:06:35:2E:5E
            X509v3 Authority Key Identifier: 
                keyid:B9:09:CA:9C:1E:DB:D3:6C:3A:6B:AE:ED:54:F1:5B:93:06:35:2E:5E
                DirName:/C=EU/L=Madrid (see current address at www.camerfirma.com/address)/serialNumber=A82743287/O=AC Camerfirma S.A./CN=Global Chambersign Root - 2008
                serial:C9:CD:D3:E9:D5:7D:23:CE

            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Certificate Policies: 
                Policy: X509v3 Any Policy
                  CPS: http://policy.camerfirma.com

SHA1 Fingerprint=4A:BD:EE:EC:95:0D:35:9C:89:AE:C7:52:A1:2C:5B:29:F6:D6:AA:0C
SHA256 Fingerprint=13:63:35:43:93:34:A7:69:80:16:A0:D3:24:DE:72:28:4E:07:9D:7B:52:20:BB:8F:BD:74:78:16:EE:BE:BA:CA
-----BEGIN CERTIFICATE-----
MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYD
VQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0
IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3
MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD
aGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMxNDBaFw0zODA3MzEx
MjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3Vy
cmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAG
A1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAl
BgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZI
hvcNAQEBBQADggIPADCCAgoCggIBAMDfVtPkOpt2RbQT2//BthmLN0EYlVJH6xed
KYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXfXjaOcNFccUMd2drvXNL7
G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0ZJJ0YPP2
zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4
ddPB/gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyG
HoiMvvKRhI9lNNgATH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2
Id3UwD2ln58fQ1DJu7xsepeY7s2MH/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3V
yJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfeOx2YItaswTXbo6Al/3K1dh3e
beksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSFHTynyQbehP9r
6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh
wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsog
zCtLkykPAgMBAAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQW
BBS5CcqcHtvTbDprru1U8VuTBjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDpr
ru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UEBhMCRVUxQzBBBgNVBAcTOk1hZHJp
ZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJmaXJtYS5jb20vYWRk
cmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJmaXJt
YSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiC
CQDJzdPp1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCow
KAYIKwYBBQUHAgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZI
hvcNAQEFBQADggIBAICIf3DekijZBZRG/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZ
UohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6ReAJ3spED8IXDneRRXoz
X1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/sdZ7LoR/x
fxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVz
a2Mg9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yyd
Yhz2rXzdpjEetrHHfoUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMd
SqlapskD7+3056huirRXhOukP9DuqqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9O
AP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETrP3iZ8ntxPjzxmKfFGBI/5rso
M0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVqc5iJWzouE4ge
v8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z
09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B
-----END CERTIFICATE-----

### ACCV

=== /CN=ACCVRAIZ1/OU=PKIACCV/O=ACCV/C=ES
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 6828503384748696800 (0x5ec3b7a6437fa4e0)
    Signature Algorithm: sha1WithRSAEncryption
        Validity
            Not Before: May  5 09:37:37 2011 GMT
            Not After : Dec 31 09:37:37 2030 GMT
        Subject: CN=ACCVRAIZ1, OU=PKIACCV, O=ACCV, C=ES
        X509v3 extensions:
            Authority Information Access: 
                CA Issuers - URI:http://www.accv.es/fileadmin/Archivos/certificados/raizaccv1.crt
                OCSP - URI:http://ocsp.accv.es

            X509v3 Subject Key Identifier: 
                D2:87:B4:E3:DF:37:27:93:55:F6:56:EA:81:E5:36:CC:8C:1E:3F:BD
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Authority Key Identifier: 
                keyid:D2:87:B4:E3:DF:37:27:93:55:F6:56:EA:81:E5:36:CC:8C:1E:3F:BD

            X509v3 Certificate Policies: 
                Policy: X509v3 Any Policy
                  User Notice:
                    Explicit Text: 
                  CPS: http://www.accv.es/legislacion_c.htm

            X509v3 CRL Distribution Points: 

                Full Name:
                  URI:http://www.accv.es/fileadmin/Archivos/certificados/raizaccv1_der.crl

            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Subject Alternative Name: 
                email:accv@accv.es
SHA1 Fingerprint=93:05:7A:88:15:C6:4F:CE:88:2F:FA:91:16:52:28:78:BC:53:64:17
SHA256 Fingerprint=9A:6E:C0:12:E1:A7:DA:9D:BE:34:19:4D:47:8A:D7:C0:DB:18:22:FB:07:1D:F1:29:81:49:6E:D1:04:38:41:13
-----BEGIN CERTIFICATE-----
MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UE
AwwJQUNDVlJBSVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQsw
CQYDVQQGEwJFUzAeFw0xMTA1MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQ
BgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwHUEtJQUNDVjENMAsGA1UECgwEQUND
VjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCb
qau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gMjmoY
HtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWo
G2ioPej0RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpA
lHPrzg5XPAOBOp0KoVdDaaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhr
IA8wKFSVf+DuzgpmndFALW4ir50awQUZ0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/
0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDGWuzndN9wrqODJerWx5eH
k6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs78yM2x/47
4KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMO
m3WR5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpa
cXpkatcnYGMN285J9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPl
uUsXQA+xtrn13k/c4LOsOxFwYIRKQ26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYI
KwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRwOi8vd3d3LmFjY3YuZXMvZmls
ZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEuY3J0MB8GCCsG
AQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2
VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeT
VfZW6oHlNsyMHj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIG
CCsGAQUFBwICMIIBFB6CARAAQQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUA
cgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBhAO0AegAgAGQAZQAgAGwAYQAgAEEA
QwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUAYwBuAG8AbABvAGcA
7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBjAHQA
cgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAA
QwBQAFMAIABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUA
czAwBggrBgEFBQcCARYkaHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2Mu
aHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRt
aW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2MV9kZXIuY3JsMA4GA1Ud
DwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZIhvcNAQEF
BQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdp
D70ER9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gU
JyCpZET/LtZ1qmxNYEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+m
AM/EKXMRNt6GGT6d7hmKG9Ww7Y49nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepD
vV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJTS+xJlsndQAJxGJ3KQhfnlms
tn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3sCPdK6jT2iWH
7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h
I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szA
h1xA2syVP1XgNce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xF
d3+YJ5oyXSrjhO7FmGYvliAd3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2H
pPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3pEfbRD0tVNEYqi4Y7
-----END CERTIFICATE-----

### Actalis S.p.A./03358520967

=== /C=IT/L=Milan/O=Actalis S.p.A./03358520967/CN=Actalis Authentication Root CA
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 6271844772424770508 (0x570a119742c4e3cc)
    Signature Algorithm: sha256WithRSAEncryption
        Validity
            Not Before: Sep 22 11:22:02 2011 GMT
            Not After : Sep 22 11:22:02 2030 GMT
        Subject: C=IT, L=Milan, O=Actalis S.p.A./03358520967, CN=Actalis Authentication Root CA
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                52:D8:88:3A:C8:9F:78:66:ED:89:F3:7B:38:70:94:C9:02:02:36:D0
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Authority Key Identifier: 
                keyid:52:D8:88:3A:C8:9F:78:66:ED:89:F3:7B:38:70:94:C9:02:02:36:D0

            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
SHA1 Fingerprint=F3:73:B3:87:06:5A:28:84:8A:F2:F3:4A:CE:19:2B:DD:C7:8E:9C:AC
SHA256 Fingerprint=55:92:60:84:EC:96:3A:64:B9:6E:2A:BE:01:CE:0B:A8:6A:64:FB:FE:BC:C7:AA:B5:AF:C1:55:B3:7F:D7:60:66
-----BEGIN CERTIFICATE-----
MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UE
BhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8w
MzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290
IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDkyMjExMjIwMlowazELMAkGA1UEBhMC
SVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1
ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENB
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNv
UTufClrJwkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX
4ay8IMKx4INRimlNAJZaby/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9
KK3giq0itFZljoZUj5NDKd45RnijMCO6zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/
gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1fYVEiVRvjRuPjPdA1Yprb
rxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2oxgkg4YQ
51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2F
be8lEfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxe
KF+w6D9Fz8+vm2/7hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4F
v6MGn8i1zeQf1xcGDXqVdFUNaBr8EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbn
fpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5jF66CyCU3nuDuP/jVo23Eek7
jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLYiDrIn3hm7Ynz
ezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt
ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAL
e3KHwGCmSUyIWOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70
jsNjLiNmsGe+b7bAEzlgqqI0JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDz
WochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKxK3JCaKygvU5a2hi/a5iB0P2avl4V
SM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+Xlff1ANATIGk0k9j
pwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC4yyX
X04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+Ok
fcvHlXHo2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7R
K4X9p2jIugErsWx0Hbhzlefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btU
ZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXemOR/qnuOf0GZvBeyqdn6/axag67XH/JJU
LysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9vwGYT7JZVEc+NHt4bVaT
LnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg==
-----END CERTIFICATE-----

### AddTrust AB

=== /C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
Certificate:
    Data:
        Version: 3 (0x2)
47
48
49
50
51
52
53
54



55
56
57
58







































59
60
61
62
63







































64
65
66
67
68

69
70
71
72
73
74






















75



























76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91



92

93
94
95












96
97
98
99
100
101
102

103







104







































105
106

107
108
109
110
111
112
113
114
115
116
117
118


119
120
121



























122



























123
124
125















126
127
128
129
130
131
132
133
134
135
136
137
138
139











140
141
142
143
144
145
146
147
148











149
150
151
152
153
154

155
156
157
158
159
160




161
















162

163

164










165
166


167
168
169
170

















































171


172



173
174

175
176
177
178
179
180
181
182
183
184
185
186
187
188
189



190
191
192
193
194
195
196
197




198
199
200
201
202
203
204
AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
-----END CERTIFICATE-----
=== /C=SE/O=AddTrust AB/OU=AddTrust TTP Network/CN=AddTrust Class 1 CA Root



Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 1 (0x1)







































    Signature Algorithm: sha1WithRSAEncryption
        Validity
            Not Before: May 30 10:38:31 2000 GMT
            Not After : May 30 10:38:31 2020 GMT
        Subject: C=SE, O=AddTrust AB, OU=AddTrust TTP Network, CN=AddTrust Class 1 CA Root







































        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                95:B1:B4:F0:94:B6:BD:C7:DA:D1:11:09:21:BE:C1:AF:49:FD:10:7B
            X509v3 Key Usage: 
                Certificate Sign, CRL Sign

            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Authority Key Identifier: 
                keyid:95:B1:B4:F0:94:B6:BD:C7:DA:D1:11:09:21:BE:C1:AF:49:FD:10:7B
                DirName:/C=SE/O=AddTrust AB/OU=AddTrust TTP Network/CN=AddTrust Class 1 CA Root
                serial:01


















































SHA1 Fingerprint=CC:AB:0E:A0:4C:23:01:D6:69:7B:DD:37:9F:CD:12:EB:24:E3:94:9D
SHA256 Fingerprint=8C:72:09:27:9A:C0:4E:27:5E:16:D0:7F:D3:B7:75:E8:01:54:B5:96:80:46:E3:1F:52:DD:25:76:63:24:E9:A7
-----BEGIN CERTIFICATE-----
MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEU
MBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3
b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMw
MTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYD
VQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUA
A4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ul
CDtbKRY654eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6n
tGO0/7Gcrjyvd7ZWxbWroulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyl
dI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1Zmne3yzxbrww2ywkEtvrNTVokMsAsJch
PXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJuiGMx1I4S+6+JNM3GOGvDC
+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8wHQYDVR0O
BBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8E



BTADAQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBl

MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFk
ZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENB
IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxtZBsfzQ3duQH6lmM0MkhHma6X












7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0PhiVYrqW9yTkkz
43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY
eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJl
pz/+0WatC7xrmYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOA
WiFeIc9TVPC6b4nbqKqVz4vjccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk=
-----END CERTIFICATE-----
=== /C=SE/O=AddTrust AB/OU=AddTrust TTP Network/CN=AddTrust Public CA Root

Certificate:







    Data:







































        Version: 3 (0x2)
        Serial Number: 1 (0x1)

    Signature Algorithm: sha1WithRSAEncryption
        Validity
            Not Before: May 30 10:41:50 2000 GMT
            Not After : May 30 10:41:50 2020 GMT
        Subject: C=SE, O=AddTrust AB, OU=AddTrust TTP Network, CN=AddTrust Public CA Root
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                81:3E:37:D8:92:B0:1F:77:9F:5C:B4:AB:73:AA:E7:F6:34:60:2F:FA
            X509v3 Key Usage: 
                Certificate Sign, CRL Sign
            X509v3 Basic Constraints: critical
                CA:TRUE


            X509v3 Authority Key Identifier: 
                keyid:81:3E:37:D8:92:B0:1F:77:9F:5C:B4:AB:73:AA:E7:F6:34:60:2F:FA
                DirName:/C=SE/O=AddTrust AB/OU=AddTrust TTP Network/CN=AddTrust Public CA Root



























                serial:01




























SHA1 Fingerprint=2A:B6:28:48:5E:78:FB:F3:AD:9E:79:10:DD:6B:DF:99:72:2C:96:E5
SHA256 Fingerprint=07:91:CA:07:49:B2:07:82:AA:D3:C7:D7:BD:0C:DF:C9:48:58:35:84:3E:B2:D7:99:60:09:CE:43:AB:6C:69:27















-----BEGIN CERTIFICATE-----
MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEU
MBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3
b3JrMSAwHgYDVQQDExdBZGRUcnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAx
MDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtB
ZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5ldHdvcmsxIDAeBgNV
BAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOC
AQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV
6tsfSlbunyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nX
GCwwfQ56HmIexkvA/X1id9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnP
dzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSGAa2Il+tmzV7R/9x98oTaunet3IAIx6eH
1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAwHM+A+WD+eeSI8t0A65RF
62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0GA1UdDgQW
BBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUw











AwEB/zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDEL
MAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRU
cnVzdCBUVFAgTmV0d29yazEgMB4GA1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJv
b3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4JNojVhaTdt02KLmuG7jD8WS6
IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL+YPoRNWyQSW/
iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao
GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh
4SINhwBk/ox9Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQm
XiLsks3/QppEIW1cxeMiHV9HEufOX1362KqxMy3ZdvJOOjMMK7MtkAY=











-----END CERTIFICATE-----
=== /C=SE/O=AddTrust AB/OU=AddTrust TTP Network/CN=AddTrust Qualified CA Root
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 1 (0x1)

    Signature Algorithm: sha1WithRSAEncryption
        Validity
            Not Before: May 30 10:44:50 2000 GMT
            Not After : May 30 10:44:50 2020 GMT
        Subject: C=SE, O=AddTrust AB, OU=AddTrust TTP Network, CN=AddTrust Qualified CA Root
        X509v3 extensions:




            X509v3 Subject Key Identifier: 
















                39:95:8B:62:8B:5C:C9:D4:80:BA:58:0F:97:3F:15:08:43:CC:98:A7

            X509v3 Key Usage: 

                Certificate Sign, CRL Sign










            X509v3 Basic Constraints: critical
                CA:TRUE


            X509v3 Authority Key Identifier: 
                keyid:39:95:8B:62:8B:5C:C9:D4:80:BA:58:0F:97:3F:15:08:43:CC:98:A7
                DirName:/C=SE/O=AddTrust AB/OU=AddTrust TTP Network/CN=AddTrust Qualified CA Root
                serial:01




















































SHA1 Fingerprint=4D:23:78:EC:91:95:39:B5:00:7F:75:8F:03:3B:21:1E:C5:4D:8B:CF



SHA256 Fingerprint=80:95:21:08:05:DB:4B:BC:35:5E:44:28:D8:FD:6E:C2:CD:E3:AB:5F:B9:7A:99:42:98:8E:B8:F4:DC:D0:60:16
-----BEGIN CERTIFICATE-----

MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEU
MBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3
b3JrMSMwIQYDVQQDExpBZGRUcnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1
MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcxCzAJBgNVBAYTAlNFMRQwEgYDVQQK
EwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5ldHdvcmsxIzAh
BgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwq
xBb/4Oxx64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G
87B4pfYOQnrjfxvM0PC3KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i
2O+tCBGaKZnhqkRFmhJePp1tUvznoD1oL/BLcHwTOK28FSXx1s6rosAx1i+f4P8U
WfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GRwVY18BTcZTYJbqukB8c1
0cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HUMIHRMB0G
A1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0T
AQH/BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6Fr
pGkwZzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQL



ExRBZGRUcnVzdCBUVFAgTmV0d29yazEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlm
aWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBABmrder4i2VhlRO6aQTv
hsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxGGuoYQ992zPlm
hpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X
dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3
P6CxB9bpT9zeRXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9Y
iQBCYz95OdBEsIJuQRno3eDBiFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5no
xqE=




-----END CERTIFICATE-----

### Baltimore

=== /C=IE/O=Baltimore/OU=CyberTrust/CN=Baltimore CyberTrust Root
Certificate:
    Data:







|
>
>
>



|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>


|
|
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>


<
<
<
>


|
<
<
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
|

|
|
|
|
|
|
|
|
<
<
<
<
|
>
>
>
|
>
|
|
|
>
>
>
>
>
>
>
>
>
>
>
>
|
<
<
<
<
|
<
>
|
>
>
>
>
>
>
>
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

|
>
|

|
|
|

<
<
<
<


>
>
|
<
<
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
|
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
<
<
<
<
<
<
<
<
<
<
<
<
<
>
>
>
>
>
>
>
>
>
>
>
|
|
|
|
|
|
|
|
|
>
>
>
>
>
>
>
>
>
>
>

|



|
>
|

|
|
|

>
>
>
>

>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
>
|
>
|
>
>
>
>
>
>
>
>
>
>


>
>
|
<
<
<
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

>
>
|
>
>
>
|

>
|
<
<
<
<
|
<
<
<
<
<
<
<
<
|
>
>
>
|
|
|
|
|
|
|
|
>
>
>
>







395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494



495
496
497
498


499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560




561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582




583

584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641




642
643
644
645
646


647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720













721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805



806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865




866








867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
-----END CERTIFICATE-----

### AffirmTrust

=== /C=US/O=AffirmTrust/CN=AffirmTrust Commercial
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 8608355977964138876 (0x7777062726a9b17c)
    Signature Algorithm: sha256WithRSAEncryption
        Validity
            Not Before: Jan 29 14:06:06 2010 GMT
            Not After : Dec 31 14:06:06 2030 GMT
        Subject: C=US, O=AffirmTrust, CN=AffirmTrust Commercial
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                9D:93:C6:53:8B:5E:CA:AF:3F:9F:1E:0F:E5:99:95:BC:24:F6:94:8F
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
SHA1 Fingerprint=F9:B5:B6:32:45:5F:9C:BE:EC:57:5F:80:DC:E9:6E:2C:C7:B2:78:B7
SHA256 Fingerprint=03:76:AB:1D:54:C5:F9:80:3C:E4:B2:E2:01:A0:EE:7E:EF:7B:57:B6:36:E8:A9:3C:9B:8D:48:60:C9:6F:5F:A7
-----BEGIN CERTIFICATE-----
MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UE
BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz
dCBDb21tZXJjaWFsMB4XDTEwMDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDEL
MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp
cm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6EqdbDuKP
Hx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yr
ba0F8PrVC8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPAL
MeIrJmqbTFeurCA+ukV6BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1
yHp52UKqK39c/s4mT6NmgTWvRLpUHhwwMmWd5jyTXlBOeuM61G7MGvv50jeuJCqr
VwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNVHQ4EFgQUnZPGU4teyq8/
nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ
KoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYG
XUPGhi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNj
vbz4YYCanrHOQnDiqX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivt
Z8SOyUOyXGsViQK8YvxO8rUzqrJv0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9g
N53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0khsUlHRUe072o0EclNmsxZt9YC
nlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8=
-----END CERTIFICATE-----
=== /C=US/O=AffirmTrust/CN=AffirmTrust Networking
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 8957382827206547757 (0x7c4f04391cd4992d)
    Signature Algorithm: sha1WithRSAEncryption
        Validity
            Not Before: Jan 29 14:08:24 2010 GMT
            Not After : Dec 31 14:08:24 2030 GMT
        Subject: C=US, O=AffirmTrust, CN=AffirmTrust Networking
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                07:1F:D2:E7:9C:DA:C2:6E:A2:40:B4:B0:7A:50:10:50:74:C4:C8:BD
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
SHA1 Fingerprint=29:36:21:02:8B:20:ED:02:F5:66:C5:32:D1:D6:ED:90:9F:45:00:2F
SHA256 Fingerprint=0A:81:EC:5A:92:97:77:F1:45:90:4A:F3:8D:5D:50:9F:66:B5:E2:C5:8F:CD:B5:31:05:8B:0E:17:F3:F0:B4:1B
-----BEGIN CERTIFICATE-----
MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UE
BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz
dCBOZXR3b3JraW5nMB4XDTEwMDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDEL
MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp
cm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SEHi3y
YJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbua
kCNrmreIdIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRL
QESxG9fhwoXA3hA/Pe24/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp
6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gbh+0t+nvujArjqWaJGctB+d1ENmHP4ndG
yH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNVHQ4EFgQUBx/S55zawm6i
QLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ
KoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfO
tDIuUFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzu
QY0x2+c06lkh1QF612S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZ
Lgo/bNjR9eUJtGxUAArgFU2HdW23WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4u
olu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9/ZFvgrG+CJPbFEfxojfHRZ48
x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s=
-----END CERTIFICATE-----
=== /C=US/O=AffirmTrust/CN=AffirmTrust Premium
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 7893706540734352110 (0x6d8c1446b1a60aee)
    Signature Algorithm: sha384WithRSAEncryption
        Validity
            Not Before: Jan 29 14:10:36 2010 GMT
            Not After : Dec 31 14:10:36 2040 GMT
        Subject: C=US, O=AffirmTrust, CN=AffirmTrust Premium
        X509v3 extensions:
            X509v3 Subject Key Identifier: 



                9D:C0:67:A6:0C:22:D9:26:F5:45:AB:A6:65:52:11:27:D8:45:AC:63
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: critical


                Certificate Sign, CRL Sign
SHA1 Fingerprint=D8:A6:33:2C:E0:03:6F:B1:85:F6:63:4F:7D:6A:06:65:26:32:28:27
SHA256 Fingerprint=70:A7:3F:7F:37:6B:60:07:42:48:90:45:34:B1:14:82:D5:BF:0E:69:8E:CC:49:8D:F5:25:77:EB:F2:E9:3B:9A
-----BEGIN CERTIFICATE-----
MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UE
BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVz
dCBQcmVtaXVtMB4XDTEwMDEyOTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkG
A1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1U
cnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxBLf
qV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtnBKAQ
JG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ
+jjeRFcV5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrS
s8PhaJyJ+HoAVt70VZVs+7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5
HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmdGPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d7
70O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5Rp9EixAqnOEhss/n/fauG
V+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NIS+LI+H+S
qHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S
5u046uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4Ia
C1nEWTJ3s7xgaVY5/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TX
OwF0lkLgAOIua+rF7nKsu7/+6qqo+Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYE
FJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/
BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByvMiPIs0laUZx2
KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg
Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B
8OWycvpEgjNC6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQ
MKSOyARiqcTtNd56l+0OOF6SL5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc
0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK+4w1IX2COPKpVJEZNZOUbWo6xbLQ
u4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmVBtWVyuEklut89pMF
u+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFgIxpH
YoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8
GKa1qF60g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaO
RtGdFNrHF+QFlozEJLUbzxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6e
KeC2uAloGRwYQw==
-----END CERTIFICATE-----
=== /C=US/O=AffirmTrust/CN=AffirmTrust Premium ECC
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 8401224907861490260 (0x7497258ac73f7a54)
    Signature Algorithm: ecdsa-with-SHA384
        Validity
            Not Before: Jan 29 14:20:24 2010 GMT
            Not After : Dec 31 14:20:24 2040 GMT
        Subject: C=US, O=AffirmTrust, CN=AffirmTrust Premium ECC
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                9A:AF:29:7A:C0:11:35:35:26:51:30:00:C3:6A:FE:40:D5:AE:D6:3C
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
SHA1 Fingerprint=B8:23:6B:00:2F:1D:16:86:53:01:55:6C:11:A4:37:CA:EB:FF:C3:BB
SHA256 Fingerprint=BD:71:FD:F6:DA:97:E4:CF:62:D1:64:7A:DD:25:81:B0:7D:79:AD:F8:39:7E:B4:EC:BA:9C:5E:84:88:82:14:23
-----BEGIN CERTIFICATE-----
MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMC
VVMxFDASBgNVBAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQ
cmVtaXVtIEVDQzAeFw0xMDAxMjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJ
BgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1UcnVzdDEgMB4GA1UEAwwXQWZmaXJt
VHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQNMF4bFZ0D
0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQN8O9
ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0G
A1UdDgQWBBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4G




A1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/Vs
aobgxCd05DhT1wV/GzTjxi+zygk8N53X57hG8f2h4nECMEJZh0PUUd+60wkyWs6I
flc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKMeQ==
-----END CERTIFICATE-----

### Agencia Catalana de Certificacio (NIF Q-0801176-I)

=== /C=ES/O=Agencia Catalana de Certificacio (NIF Q-0801176-I)/OU=Serveis Publics de Certificacio/OU=Vegeu https://www.catcert.net/verarrel (c)03/OU=Jerarquia Entitats de Certificacio Catalanes/CN=EC-ACC
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
             (Negative)11:d4:c2:14:2b:de:21:eb:57:9d:53:fb:0c:22:3b:ff
    Signature Algorithm: sha1WithRSAEncryption
        Validity
            Not Before: Jan  7 23:00:00 2003 GMT
            Not After : Jan  7 22:59:59 2031 GMT
        Subject: C=ES, O=Agencia Catalana de Certificacio (NIF Q-0801176-I), OU=Serveis Publics de Certificacio, OU=Vegeu https://www.catcert.net/verarrel (c)03, OU=Jerarquia Entitats de Certificacio Catalanes, CN=EC-ACC
        X509v3 extensions:
            X509v3 Subject Alternative Name: 
                email:ec_acc@catcert.net
            X509v3 Basic Constraints: critical




                CA:TRUE

            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Subject Key Identifier: 
                A0:C3:8B:44:AA:37:A5:45:BF:97:80:5A:D1:F1:78:A2:9B:E9:5D:8D
            X509v3 Certificate Policies: 
                Policy: 1.3.6.1.4.1.15096.1.3.1.10
                  CPS: https://www.catcert.net/verarrel
                  User Notice:
                    Explicit Text: Vegeu https://www.catcert.net/verarrel 

SHA1 Fingerprint=28:90:3A:63:5B:52:80:FA:E6:77:4C:0B:6D:A7:D6:BA:A6:4A:F2:E8
SHA256 Fingerprint=88:49:7F:01:60:2F:31:54:24:6A:E2:8C:4D:5A:EF:10:F1:D8:7E:BB:76:62:6F:4A:E0:B7:F9:5B:A7:96:87:99
-----BEGIN CERTIFICATE-----
MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB
8zELMAkGA1UEBhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2Vy
dGlmaWNhY2lvIChOSUYgUS0wODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1
YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYDVQQLEyxWZWdldSBodHRwczovL3d3
dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UECxMsSmVyYXJxdWlh
IEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMTBkVD
LUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQG
EwJFUzE7MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8g
KE5JRiBRLTA4MDExNzYtSSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBD
ZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZlZ2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQu
bmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJhcnF1aWEgRW50aXRhdHMg
ZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUNDMIIBIjAN
BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R
85iKw5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm
4CgPukLjbo73FCeTae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaV
HMf5NLWUhdWZXqBIoH7nF2W4onW4HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNd
QlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0aE9jD2z3Il3rucO2n5nzbcc8t
lGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw0JDnJwIDAQAB
o4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E
BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4
opvpXY0wfwYDVR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBo
dHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidW
ZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAwDQYJKoZIhvcN
AQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJlF7W2u++AVtd0x7Y
/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNaAl6k
SBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhy
Rp/7SNVel+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOS
Agu+TGbrIP65y7WZf+a2E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xl
nJ2lYJU6Un/10asIbvPuW/mIPX64b24D5EI=
-----END CERTIFICATE-----

### Amazon

=== /C=US/O=Amazon/CN=Amazon Root CA 1
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            06:6c:9f:cf:99:bf:8c:0a:39:e2:f0:78:8a:43:e6:96:36:5b:ca
    Signature Algorithm: sha256WithRSAEncryption
        Validity
            Not Before: May 26 00:00:00 2015 GMT
            Not After : Jan 17 00:00:00 2038 GMT
        Subject: C=US, O=Amazon, CN=Amazon Root CA 1
        X509v3 extensions:




            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: critical
                Digital Signature, Certificate Sign, CRL Sign
            X509v3 Subject Key Identifier: 


                84:18:CC:85:34:EC:BC:0C:94:94:2E:08:59:9C:C7:B2:10:4E:0A:08
SHA1 Fingerprint=8D:A7:F9:65:EC:5E:FC:37:91:0F:1C:6E:59:FD:C1:CC:6A:6E:DE:16
SHA256 Fingerprint=8E:CD:E6:88:4F:3D:87:B1:12:5B:A3:1A:C3:FC:B1:3D:70:16:DE:7F:57:CC:90:4F:E1:CB:97:C6:AE:98:19:6E
-----BEGIN CERTIFICATE-----
MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsF
ADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6
b24gUm9vdCBDQSAxMB4XDTE1MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTEL
MAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv
b3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJ4gHHKeNXj
ca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgHFzZM
9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qw
IFAGbHrQgLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6
VOujw5H5SNz/0egwLX0tdHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L
93FcXmn/6pUCyziKrlA4b9v7LWIbxcceVOF34GfID5yHI9Y/QCB/IIDEgEw+OyQm
jgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
AYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3DQEBCwUA
A4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDI
U5PMCCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUs
N+gDS63pYaACbvXy8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vv
o/ufQJVtMVT8QtPHRh8jrdkPSHCa2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU
5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2xJNDd2ZhwLnoQdeXeGADbkpy
rqXRfboQnoZsG4q5WTP468SQvvG5
-----END CERTIFICATE-----
=== /C=US/O=Amazon/CN=Amazon Root CA 2
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            06:6c:9f:d2:96:35:86:9f:0a:0f:e5:86:78:f8:5b:26:bb:8a:37
    Signature Algorithm: sha384WithRSAEncryption
        Validity
            Not Before: May 26 00:00:00 2015 GMT
            Not After : May 26 00:00:00 2040 GMT
        Subject: C=US, O=Amazon, CN=Amazon Root CA 2
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: critical
                Digital Signature, Certificate Sign, CRL Sign
            X509v3 Subject Key Identifier: 
                B0:0C:F0:4C:30:F4:05:58:02:48:FD:33:E5:52:AF:4B:84:E3:66:52
SHA1 Fingerprint=5A:8C:EF:45:D7:A6:98:59:76:7A:8C:8B:44:96:B5:78:CF:47:4B:1A
SHA256 Fingerprint=1B:A5:B2:AA:8C:65:40:1A:82:96:01:18:F8:0B:EC:4F:62:30:4D:83:CE:C4:71:3A:19:C3:9C:01:1E:A4:6D:B4
-----BEGIN CERTIFICATE-----
MIIFQTCCAymgAwIBAgITBmyf0pY1hp8KD+WGePhbJruKNzANBgkqhkiG9w0BAQwF
ADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6
b24gUm9vdCBDQSAyMB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTEL
MAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv
b3QgQ0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK2Wny2cSkxK
gXlRmeyKy2tgURO8TW0G/LAIjd0ZEGrHJgw12MBvIITplLGbhQPDW9tK6Mj4kHbZ
W0/jTOgGNk3Mmqw9DJArktQGGWCsN0R5hYGCrVo34A3MnaZMUnbqQ523BNFQ9lXg
1dKmSYXpN+nKfq5clU1Imj+uIFptiJXZNLhSGkOQsL9sBbm2eLfq0OQ6PBJTYv9K
8nu+NQWpEjTj82R0Yiw9AElaKP4yRLuH3WUnAnE72kr3H9rN9yFVkE8P7K6C4Z9r
2UXTu/Bfh+08LDmG2j/e7HJV63mjrdvdfLC6HM783k81ds8P+HgfajZRRidhW+me
z/CiVX18JYpvL7TFz4QuK/0NURBs+18bvBt+xa47mAExkv8LV/SasrlX6avvDXbR
8O70zoan4G7ptGmh32n2M8ZpLpcTnqWHsFcQgTfJU7O7f/aS0ZzQGPSSbtqDT6Zj
mUyl+17vIWR6IF9sZIUVyzfpYgwLKhbcAS4y2j5L9Z469hdAlO+ekQiG+r5jqFoz
7Mt0Q5X5bGlSNscpb/xVA1wf+5+9R+vnSUeVC06JIglJ4PVhHvG/LopyboBZ/1c6
+XUyo05f7O0oYtlNc/LMgRdg7c3r3NunysV+Ar3yVAhU/bQtCSwXVEqY0VThUWcI
0u1ufm8/0i2BWSlmy5A5lREedCf+3euvAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMB
Af8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSwDPBMMPQFWAJI/TPlUq9LhONm
UjANBgkqhkiG9w0BAQwFAAOCAgEAqqiAjw54o+Ci1M3m9Zh6O+oAA7CXDpO8Wqj2
LIxyh6mx/H9z/WNxeKWHWc8w4Q0QshNabYL1auaAn6AFC2jkR2vHat+2/XcycuUY
+gn0oJMsXdKMdYV2ZZAMA3m3MSNjrXiDCYZohMr/+c8mmpJ5581LxedhpxfL86kS
k5Nrp+gvU5LEYFiwzAJRGFuFjWJZY7attN6a+yb3ACfAXVU3dJnJUH/jWS5E4ywl
7uxMMne0nxrpS10gxdr9HIcWxkPo1LsmmkVwXqkLN1PiRnsn/eBG8om3zEK2yygm
btmlyTrIQRNg91CMFa6ybRoVGld45pIq2WWQgj9sAq+uEjonljYE1x2igGOpm/Hl
urR8FLBOybEfdF849lHqm/osohHUqS0nGkWxr7JOcQ3AWEbWaQbLU8uz/mtBzUF+
fUwPfHJ5elnNXkoOrJupmHN5fLT0zLm4BwyydFy4x2+IoZCn9Kr5v2c69BoVYh63
n749sSmvZ6ES8lgQGVMDMBu4Gon2nL2XA46jCfMdiyHxtN/kHNGfZQIG6lzWE7OE
76KlXIx3KadowGuuQNKotOrN8I1LOJwZmhsoVLiJkO/KdYE+HvJkJMcYr07/R54H
9jVlpNMKVv/1F2Rs76giJUmTtt8AF9pYfl3uxRuw0dFfIRDH+fO6AgonB8Xx1sfT
4PsJYGw=
-----END CERTIFICATE-----













=== /C=US/O=Amazon/CN=Amazon Root CA 3
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            06:6c:9f:d5:74:97:36:66:3f:3b:0b:9a:d9:e8:9e:76:03:f2:4a
    Signature Algorithm: ecdsa-with-SHA256
        Validity
            Not Before: May 26 00:00:00 2015 GMT
            Not After : May 26 00:00:00 2040 GMT
        Subject: C=US, O=Amazon, CN=Amazon Root CA 3
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: critical
                Digital Signature, Certificate Sign, CRL Sign
            X509v3 Subject Key Identifier: 
                AB:B6:DB:D7:06:9E:37:AC:30:86:07:91:70:C7:9C:C4:19:B1:78:C0
SHA1 Fingerprint=0D:44:DD:8C:3C:8C:1A:1A:58:75:64:81:E9:0F:2E:2A:FF:B3:D2:6E
SHA256 Fingerprint=18:CE:6C:FE:7B:F1:4E:60:B2:E3:47:B8:DF:E8:68:CB:31:D0:2E:BB:3A:DA:27:15:69:F5:03:43:B4:6D:B3:A4
-----BEGIN CERTIFICATE-----
MIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5
MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24g
Um9vdCBDQSAzMB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkG
A1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJvb3Qg
Q0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCmXp8ZBf8ANm+gBG1bG8lKl
ui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6AF2hiRVd9RFgdszflZwjrZt6j
QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSr
ttvXBp43rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkr
BqWTrBqYaGFy+uGh0PsceGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteM
YyRIHN8wfdVoOw==
-----END CERTIFICATE-----
=== /C=US/O=Amazon/CN=Amazon Root CA 4
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            06:6c:9f:d7:c1:bb:10:4c:29:43:e5:71:7b:7b:2c:c8:1a:c1:0e
    Signature Algorithm: ecdsa-with-SHA384
        Validity
            Not Before: May 26 00:00:00 2015 GMT
            Not After : May 26 00:00:00 2040 GMT
        Subject: C=US, O=Amazon, CN=Amazon Root CA 4
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: critical
                Digital Signature, Certificate Sign, CRL Sign
            X509v3 Subject Key Identifier: 
                D3:EC:C7:3A:65:6E:CC:E1:DA:76:9A:56:FB:9C:F3:86:6D:57:E5:81
SHA1 Fingerprint=F6:10:84:07:D6:F8:BB:67:98:0C:C2:E2:44:C2:EB:AE:1C:EF:63:BE
SHA256 Fingerprint=E3:5D:28:41:9E:D0:20:25:CF:A6:90:38:CD:62:39:62:45:8D:A5:C6:95:FB:DE:A3:C2:2B:0B:FB:25:89:70:92
-----BEGIN CERTIFICATE-----
MIIB8jCCAXigAwIBAgITBmyf18G7EEwpQ+Vxe3ssyBrBDjAKBggqhkjOPQQDAzA5
MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24g
Um9vdCBDQSA0MB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkG
A1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJvb3Qg
Q0EgNDB2MBAGByqGSM49AgEGBSuBBAAiA2IABNKrijdPo1MN/sGKe0uoe0ZLY7Bi
9i0b2whxIdIA6GO9mif78DluXeo9pcmBqqNbIJhFXRbb/egQbeOc4OO9X4Ri83Bk
M6DLJC9wuoihKqB1+IGuYgbEgds5bimwHvouXKNCMEAwDwYDVR0TAQH/BAUwAwEB
/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFNPsxzplbszh2naaVvuc84ZtV+WB
MAoGCCqGSM49BAMDA2gAMGUCMDqLIfG9fhGt0O9Yli/W651+kI0rz2ZVwyzjKKlw
CkcO8DdZEv8tmZQoTipPNU0zWgIxAOp1AE47xDqUEpHJWEadIRNyp4iciuRMStuW
1KyLa2tJElMzrdfkviT8tQp21KW8EA==
-----END CERTIFICATE-----

### AS Sertifitseerimiskeskus

=== /C=EE/O=AS Sertifitseerimiskeskus/CN=EE Certification Centre Root CA/emailAddress=pki@sk.ee
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            54:80:f9:a0:73:ed:3f:00:4c:ca:89:d8:e3:71:e6:4a
    Signature Algorithm: sha1WithRSAEncryption
        Validity
            Not Before: Oct 30 10:10:30 2010 GMT
            Not After : Dec 17 23:59:59 2030 GMT
        Subject: C=EE, O=AS Sertifitseerimiskeskus, CN=EE Certification Centre Root CA/emailAddress=pki@sk.ee
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Subject Key Identifier: 



                12:F2:5A:3E:EA:56:1C:BF:CD:06:AC:F1:F1:25:C9:A9:4B:D4:14:99
            X509v3 Extended Key Usage: 
                TLS Web Client Authentication, TLS Web Server Authentication, Code Signing, E-mail Protection, Time Stamping, OCSP Signing
SHA1 Fingerprint=C9:A8:B9:E7:55:80:5E:58:E3:53:77:A7:25:EB:AF:C3:7B:27:CC:D7
SHA256 Fingerprint=3E:84:BA:43:42:90:85:16:E7:75:73:C0:99:2F:09:79:CA:08:4E:46:85:68:1F:F1:95:CC:BA:8A:22:9B:8A:76
-----BEGIN CERTIFICATE-----
MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1
MQswCQYDVQQGEwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1
czEoMCYGA1UEAwwfRUUgQ2VydGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYG
CSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIwMTAxMDMwMTAxMDMwWhgPMjAzMDEy
MTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlBUyBTZXJ0aWZpdHNl
ZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRyZSBS
b290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEB
AQUAA4IBDwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUy
euuOF0+W2Ap7kaJjbMeMTC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvO
bntl8jixwKIy72KyaOBhU8E2lf/slLo2rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIw
WFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw93X2PaRka9ZP585ArQ/d
MtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtNP2MbRMNE
1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYD
VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/
zQas8fElyalL1BSZMEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYB
BQUHAwMGCCsGAQUFBwMEBggrBgEFBQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEF
BQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+RjxY6hUFaTlrg4wCQiZrxTFGGV
v9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqMlIpPnTX/dqQG
E5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u
uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIW
iAYLtqZLICjU3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/v
GVCJYMzpJJUPwssd8m92kMfMdcGWxZ0=
-----END CERTIFICATE-----

### Atos

=== /CN=Atos TrustedRoot 2011/O=Atos/C=DE
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 6643877497813316402 (0x5c33cb622c5fb332)
    Signature Algorithm: sha256WithRSAEncryption
        Validity
            Not Before: Jul  7 14:58:30 2011 GMT
            Not After : Dec 31 23:59:59 2030 GMT
        Subject: CN=Atos TrustedRoot 2011, O=Atos, C=DE
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                A7:A5:06:B1:2C:A6:09:60:EE:D1:97:E9:70:AE:BC:3B:19:6C:DB:21
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Authority Key Identifier: 
                keyid:A7:A5:06:B1:2C:A6:09:60:EE:D1:97:E9:70:AE:BC:3B:19:6C:DB:21

            X509v3 Certificate Policies: 
                Policy: 1.3.6.1.4.1.6189.3.4.1.1

            X509v3 Key Usage: critical
                Digital Signature, Certificate Sign, CRL Sign
SHA1 Fingerprint=2B:B1:F5:3E:55:0C:1D:C5:F1:D4:E6:B7:6A:46:4B:55:06:02:AC:21
SHA256 Fingerprint=F3:56:BE:A2:44:B7:A9:1E:B3:5D:53:CA:9A:D7:86:4A:CE:01:8E:2D:35:D5:F8:F9:6D:DF:68:A6:F4:1A:A4:74
-----BEGIN CERTIFICATE-----
MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UE
AwwVQXRvcyBUcnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQG




EwJERTAeFw0xMTA3MDcxNDU4MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMM








FUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsGA1UECgwEQXRvczELMAkGA1UEBhMC
REUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCVhTuXbyo7LjvPpvMp
Nb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr54rM
VD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+
SZFhyBH+DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ
4J7sVaE3IqKHBAUsR320HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0L
cp2AMBYHlT8oDv3FdU9T1nSatCQujgKRz3bFmx5VdJx4IbHwLfELn8LVlhgf8FQi
eowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7Rl+lwrrw7GWzbITAPBgNV
HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZbNshMBgG
A1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3
DQEBCwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8j
vZfza1zv7v1Apt+hk6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kP
DpFrdRbhIfzYJsdHt6bPWHJxfrrhTZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pc
maHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a961qn8FYiqTxlVMYVqL2Gns2D
lmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G3mB/ufNPRJLv
KrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed
-----END CERTIFICATE-----

### Baltimore

=== /C=IE/O=Baltimore/OU=CyberTrust/CN=Baltimore CyberTrust Root
Certificate:
    Data:
236
237
238
239
240
241
242
































































































































































243
244
245
246
247
248
249
9hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx
jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0
Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhz
ksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS
R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
-----END CERTIFICATE-----

































































































































































### Certplus

=== /C=FR/O=Certplus/CN=Certplus Root CA G1
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
9hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx
jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0
Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhz
ksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS
R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
-----END CERTIFICATE-----

### Buypass AS-983163327

=== /C=NO/O=Buypass AS-983163327/CN=Buypass Class 2 Root CA
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 2 (0x2)
    Signature Algorithm: sha256WithRSAEncryption
        Validity
            Not Before: Oct 26 08:38:03 2010 GMT
            Not After : Oct 26 08:38:03 2040 GMT
        Subject: C=NO, O=Buypass AS-983163327, CN=Buypass Class 2 Root CA
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Subject Key Identifier: 
                C9:80:77:E0:62:92:82:F5:46:9C:F3:BA:F7:4C:C3:DE:B8:A3:AD:39
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
SHA1 Fingerprint=49:0A:75:74:DE:87:0A:47:FE:58:EE:F6:C7:6B:EB:C6:0B:12:40:99
SHA256 Fingerprint=9A:11:40:25:19:7C:5B:B9:5D:94:E6:3D:55:CD:43:79:08:47:B6:46:B2:3C:DF:11:AD:A4:A0:0E:FF:15:FB:48
-----BEGIN CERTIFICATE-----
MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEd
MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3Mg
Q2xhc3MgMiBSb290IENBMB4XDTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1ow
TjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MSAw
HgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEB
BQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1g1Lr
6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPV
L4O2fuPn9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC91
1K2GScuVr1QGbNgGE41b/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHx
MlAQTn/0hpPshNOOvEu/XAFOBz3cFIqUCqTqc/sLUegTBxj6DvEr0VQVfTzh97QZ
QmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeffawrbD02TTqigzXsu8lkB
arcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgIzRFo1clr
Us3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLi
FRhnBkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRS
P/TizPJhk9H9Z2vXUq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN
9SG9dKpN6nIDSdvHXx1iY8f93ZHsM+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxP
AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMmAd+BikoL1Rpzz
uvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAU18h
9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s
A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3t
OluwlN5E40EIosHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo
+fsicdl9sz1Gv7SEr5AcD48Saq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7
KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYdDnkM/crqJIByw5c/8nerQyIKx+u2
DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWDLfJ6v9r9jv6ly0Us
H8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0oyLQ
I+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK7
5t98biGCwWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h
3PFaTWwyI0PurKju7koSCTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPz
Y11aWOIv4x3kqdbQCtCev9eBCfHJxyYNrJgWVqA=
-----END CERTIFICATE-----
=== /C=NO/O=Buypass AS-983163327/CN=Buypass Class 3 Root CA
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 2 (0x2)
    Signature Algorithm: sha256WithRSAEncryption
        Validity
            Not Before: Oct 26 08:28:58 2010 GMT
            Not After : Oct 26 08:28:58 2040 GMT
        Subject: C=NO, O=Buypass AS-983163327, CN=Buypass Class 3 Root CA
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Subject Key Identifier: 
                47:B8:CD:FF:E5:6F:EE:F8:B2:EC:2F:4E:0E:F9:25:B0:8E:3C:6B:C3
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
SHA1 Fingerprint=DA:FA:F7:FA:66:84:EC:06:8F:14:50:BD:C7:C2:81:A5:BC:A9:64:57
SHA256 Fingerprint=ED:F7:EB:BC:A2:7A:2A:38:4D:38:7B:7D:40:10:C6:66:E2:ED:B4:84:3E:4C:29:B4:AE:1D:5B:93:32:E6:B2:4D
-----BEGIN CERTIFICATE-----
MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEd
MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3Mg
Q2xhc3MgMyBSb290IENBMB4XDTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFow
TjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MSAw
HgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEB
BQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRHsJ8Y
ZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3E
N3coTRiR5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9
tznDDgFHmV0ST9tD+leh7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX
0DJq1l1sDPGzbjniazEuOQAnFN44wOwZZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c
/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH2xc519woe2v1n/MuwU8X
KhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV/afmiSTY
zIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvS
O1UQRwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D
34xFMFbG02SrZvPAXpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgP
K9Dx2hzLabjKSWJtyNBjYt1gD1iqj6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3
AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFEe4zf/lb+74suwv
Tg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAACAj
QTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV
cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXS
IGrs/CIBKM+GuIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2
HJLw5QY33KbmkJs4j1xrG0aGQ0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsa
O5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8ZORK15FTAaggiG6cX0S5y2CBNOxv
033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2KSb12tjE8nVhz36u
dmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz6MkE
kbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg41
3OEMXbugUZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvD
u79leNKGef9JOxqDDPDeeOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq
4/g7u9xN12TyUb7mqqta6THuBrxzvxNiCp/HuZc=
-----END CERTIFICATE-----

### Certinomis

=== /C=FR/O=Certinomis/OU=0002 433998903/CN=Certinomis - Root CA
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 1 (0x1)
    Signature Algorithm: sha256WithRSAEncryption
        Validity
            Not Before: Oct 21 09:17:18 2013 GMT
            Not After : Oct 21 09:17:18 2033 GMT
        Subject: C=FR, O=Certinomis, OU=0002 433998903, CN=Certinomis - Root CA
        X509v3 extensions:
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Subject Key Identifier: 
                EF:91:4C:F5:A5:C3:30:E8:2F:08:EA:D3:71:22:A4:92:68:78:74:D9
            X509v3 Authority Key Identifier: 
                keyid:EF:91:4C:F5:A5:C3:30:E8:2F:08:EA:D3:71:22:A4:92:68:78:74:D9

SHA1 Fingerprint=9D:70:BB:01:A5:A4:A0:18:11:2E:F7:1C:01:B9:32:C5:34:E7:88:A8
SHA256 Fingerprint=2A:99:F5:BC:11:74:B7:3C:BB:1D:62:08:84:E0:1C:34:E5:1C:CB:39:78:DA:12:5F:0E:33:26:88:83:BF:41:58
-----BEGIN CERTIFICATE-----
MIIFkjCCA3qgAwIBAgIBATANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJGUjET
MBEGA1UEChMKQ2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxHTAb
BgNVBAMTFENlcnRpbm9taXMgLSBSb290IENBMB4XDTEzMTAyMTA5MTcxOFoXDTMz
MTAyMTA5MTcxOFowWjELMAkGA1UEBhMCRlIxEzARBgNVBAoTCkNlcnRpbm9taXMx
FzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMR0wGwYDVQQDExRDZXJ0aW5vbWlzIC0g
Um9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANTMCQosP5L2
fxSeC5yaah1AMGT9qt8OHgZbn1CF6s2Nq0Nn3rD6foCWnoR4kkjW4znuzuRZWJfl
LieY6pOod5tK8O90gC3rMB+12ceAnGInkYjwSond3IjmFPnVAy//ldu9n+ws+hQV
WZUKxkd8aRi5pwP5ynapz8dvtF4F/u7BUrJ1Mofs7SlmO/NKFoL21prbcpjp3vDF
TKWrteoB4owuZH9kb/2jJZOLyKIOSY008B/sWEUuNKqEUL3nskoTuLAPrjhdsKkb
5nPJWqHZZkCqqU2mNAKthH6yI8H7KsZn9DS2sJVqM09xRLWtwHkziOC/7aOgFLSc
CbAK42C++PhmiM1b8XcF4LVzbsF9Ri6OSyemzTUK/eVNfaoqoynHWmgE6OXWk6Ri
wsXm9E/G+Z8ajYJJGYrKWUM66A0ywfRMEwNvbqY/kXPLynNvEiCL7sCCeN5LLsJJ
wx3tFvYk9CcbXFcx3FXuqB5vbKziRcxXV4p1VxngtViZSTYxPDMBbRZKzbgqg4SG
m/lg0h9tkQPTYKbVPZrdd5A9NaSfD171UkRpucC63M9933zZxKyGIjK8e2uR73r4
F2iw4lNVYC2vPsKD2NkJK/DAZNuHi5HMkesE/Xa0lZrmFAYb1TQdvtj/dBxThZng
WVJKYe2InmtJiUZ+IFrZ50rlau7SZRFDAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIB
BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTvkUz1pcMw6C8I6tNxIqSSaHh0
2TAfBgNVHSMEGDAWgBTvkUz1pcMw6C8I6tNxIqSSaHh02TANBgkqhkiG9w0BAQsF
AAOCAgEAfj1U2iJdGlg+O1QnurrMyOMaauo++RLrVl89UM7g6kgmJs95Vn6RHJk/
0KGRHCwPT5iVWVO90CLYiF2cN/z7ZMF4jIuaYAnq1fohX9B0ZedQxb8uuQsLrbWw
F6YSjNRieOpWauwK0kDDPAUwPk2Ut59KA9N9J0u2/kTO+hkzGm2kQtHdzMjI1xZS
g081lLMSVX3l4kLr5JyTCcBMWwerx20RoFAXlCOotQqSD7J6wWAsOMwaplv/8gzj
qh8c3LigkyfeY+N/IZ865Z764BNqdeuWXGKRlI5nU7aJ+BIJy29SWwNyhlCVCNSN
h4YVH5Uk2KRvms6knZtt0rJ2BobGVgjF6wnaNsIbW0G+YSrjcOa4pvi2WsS9Iff/
ql+hbHY5ZtbqTFXhADObE5hjyW/QASAJN1LnDE8+zbz1X5YnpyACleAu6AdBBR8V
btaw5BngDwKTACdyxYvRVB9dSsNAl35VpnzBMwQUAR1JIGkLGZOdblgi90AMRgwj
Y/M50n92Uaf0yKHxDHYiI0ZSKS3io0EHVmmY0gUJvGnHWmHNj4FgFU2A3ZDifcRQ
8ow7bkrHxuaAKzyBvBGAFhAn1/DNP3nMcyrDflOR1m749fPH0FFNjkulW+YZFzvW
gQncItzujrnEj1PhZ7szuIgVRs/taTX/dQ1G885x4cVrhkIGuUE=
-----END CERTIFICATE-----

### Certplus

=== /C=FR/O=Certplus/CN=Certplus Root CA G1
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405




406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421



422










423
424


425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464






465
466
467
468
469
470


471
472
473
474
475
476
477
478
479








480
481
482
483
484
485

486
487
488
489
490





491
492



493
494
495
496

497
498
499
500
501
502
503
504
505
506
507
508

509
510
511
512
513
514
515




516
517
518
519
520
521
522
523
524
525



526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
yfFC82x/xXp8HVGIutIKPidd3i1RTtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMR
FcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+7UCmnYR0ObncHoUW2ikbhiMA
ybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW//1IMwrh3KWB
kJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7
l7+ijrRU
-----END CERTIFICATE-----

### Comodo CA Limited

=== /C=GB/ST=Greater Manchester/L=Salford/O=Comodo CA Limited/CN=AAA Certificate Services
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 1 (0x1)
    Signature Algorithm: sha1WithRSAEncryption
        Validity
            Not Before: Jan  1 00:00:00 2004 GMT
            Not After : Dec 31 23:59:59 2028 GMT
        Subject: C=GB, ST=Greater Manchester, L=Salford, O=Comodo CA Limited, CN=AAA Certificate Services
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                A0:11:0A:23:3E:96:F1:07:EC:E2:AF:29:EF:82:A5:7F:D0:30:A4:B4
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 CRL Distribution Points: 





                Full Name:
                  URI:http://crl.comodoca.com/AAACertificateServices.crl

                Full Name:
                  URI:http://crl.comodo.net/AAACertificateServices.crl

SHA1 Fingerprint=D1:EB:23:A4:6D:17:D6:8F:D9:25:64:C2:F1:F1:60:17:64:D8:E3:49
SHA256 Fingerprint=D7:A7:A0:FB:5D:7E:27:31:D7:71:E9:48:4E:BC:DE:F7:1D:5F:0C:3E:0A:29:48:78:2B:C8:3E:E0:EA:69:9E:F4
-----BEGIN CERTIFICATE-----
MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEb
MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow
GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmlj
YXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVowezEL
MAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE
BwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNVBAMM



GEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP










ADCCAQoCggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQua
BtDFcCLNSS1UY8y2bmhGC1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe


3M/vg4aijJRPn2jymJBGhCfHdr/jzDUsi14HZGWCwEiwqJH5YZ92IFCokcdmtet4
YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszWY19zjNoFmag4qMsXeDZR
rOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjHYpy+g8cm
ez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQU
oBEKIz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
MAMBAf8wewYDVR0fBHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20v
QUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29t
b2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNybDANBgkqhkiG9w0BAQUF
AAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm7l3sAg9g1o1Q
GE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2
G9w84FoVxp7Z8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsi
l2D4kF501KKaU73yqWjgom7C12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3
smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
-----END CERTIFICATE-----
=== /C=GB/ST=Greater Manchester/L=Salford/O=Comodo CA Limited/CN=Secure Certificate Services
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 1 (0x1)
    Signature Algorithm: sha1WithRSAEncryption
        Validity
            Not Before: Jan  1 00:00:00 2004 GMT
            Not After : Dec 31 23:59:59 2028 GMT
        Subject: C=GB, ST=Greater Manchester, L=Salford, O=Comodo CA Limited, CN=Secure Certificate Services
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                3C:D8:93:88:C2:C0:82:09:CC:01:99:06:93:20:E9:9E:70:09:63:4F
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 CRL Distribution Points: 

                Full Name:
                  URI:http://crl.comodoca.com/SecureCertificateServices.crl

                Full Name:
                  URI:http://crl.comodo.net/SecureCertificateServices.crl







SHA1 Fingerprint=4A:65:D5:F4:1D:EF:39:B8:B8:90:4A:4A:D3:64:81:33:CF:C7:A1:D1
SHA256 Fingerprint=BD:81:CE:3B:4F:65:91:D1:1A:67:B5:FC:7A:47:FD:EF:25:52:1B:F9:AA:4E:18:B9:E3:DF:2E:34:A7:80:3B:E8
-----BEGIN CERTIFICATE-----
MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEb
MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow
GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRp


ZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVow
fjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
A1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAiBgNV
BAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPM
cm3ye5drswfxdySRXyWP9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3S
HpR7LZQdqnXXs5jLrLxkU0C8j6ysNstcrbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996
CF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rCoznl2yY4rYsK7hljxxwk
3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3Vp6ea5EQz








6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNV
HQ4EFgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1Ud
EwEB/wQFMAMBAf8wgYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2Rv
Y2EuY29tL1NlY3VyZUNlcnRpZmljYXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRw
Oi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmww
DQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm4J4oqF7Tt/Q0

5qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj
Z55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtI
gKvcnDe4IRRLDXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJ
aD61JlfutuC23bkpgHl9j6PwpCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDl
izeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1HRR3B7Hzs/Sk=





-----END CERTIFICATE-----
=== /C=GB/ST=Greater Manchester/L=Salford/O=Comodo CA Limited/CN=Trusted Certificate Services



Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 1 (0x1)

    Signature Algorithm: sha1WithRSAEncryption
        Validity
            Not Before: Jan  1 00:00:00 2004 GMT
            Not After : Dec 31 23:59:59 2028 GMT
        Subject: C=GB, ST=Greater Manchester, L=Salford, O=Comodo CA Limited, CN=Trusted Certificate Services
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                C5:7B:58:BD:ED:DA:25:69:D2:F7:59:16:A8:B3:32:C0:7B:27:5B:F4
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Basic Constraints: critical
                CA:TRUE

            X509v3 CRL Distribution Points: 

                Full Name:
                  URI:http://crl.comodoca.com/TrustedCertificateServices.crl

                Full Name:
                  URI:http://crl.comodo.net/TrustedCertificateServices.crl





SHA1 Fingerprint=E1:9F:E3:0E:8B:84:60:9E:80:9B:17:0D:72:A8:C5:BA:6E:14:09:BD
SHA256 Fingerprint=3F:06:E5:56:81:D4:96:F5:BE:16:9E:B5:38:9F:9F:2B:8F:F6:1E:17:08:DF:68:81:72:48:49:CD:5D:27:CB:69
-----BEGIN CERTIFICATE-----
MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEb
MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow
GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0
aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEwMDAwMDBaFw0yODEyMzEyMzU5NTla
MH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO
BgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUwIwYD



VQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWW
fnJSoBVC21ndZHoa0Lh73TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMt
TGo87IvDktJTdyR0nAducPy9C1t2ul/y/9c3S0pgePfw+spwtOpZqqPOSC+pw7IL
fhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6juljatEPmsbS9Is6FARW
1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsSivnkBbA7
kUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0G
A1UdDgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYD
VR0TAQH/BAUwAwEB/zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21v
ZG9jYS5jb20vVHJ1c3RlZENlcnRpZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRo
dHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENlcnRpZmljYXRlU2VydmljZXMu
Y3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8NtwuleGFTQQuS9/
HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32
pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxIS
jBc/lDb+XbDABHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+
xqFx7D+gIIxmOom0jtTYsU0lR+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/Atyjcn
dBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O9y5Xt5hwXsjEeLBi
-----END CERTIFICATE-----

### COMODO CA Limited

=== /C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO Certification Authority
Certificate:
    Data:







|

|



|


|
|
|

<
<
<
<


|
>
>
>
>
|
<
<
<
<
<
<
<
<

|
<
<
<
<
<
>
>
>
|
>
>
>
>
>
>
>
>
>
>
|
|
>
>
|
|
|
<
<
<
<
<
<
<
<
<
<
<
<
|



|
|

|
|
|

|
<
<
<
<
<
<
|
<
<
<
<
<

>
>
>
>
>
>
|
|

|
<
|
>
>
|
<
<
<
<
<
<
<
|
>
>
>
>
>
>
>
>
|
|
|
|
<
|
>
|
|
|
|
|
>
>
>
>
>

|
>
>
>



|
>


|
|
|


<
|
<
|

>
|
|
|
|
|
|
|
>
>
>
>
|
|
|
|
|
|
|
|
|
|
>
>
>
|
<
<
<
|
|
|
|
|
|
|
|
|
|
|
<
<







1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243




1244
1245
1246
1247
1248
1249
1250
1251








1252
1253





1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274












1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286






1287





1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298

1299
1300
1301
1302







1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315

1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344

1345

1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373



1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384


1385
1386
1387
1388
1389
1390
1391
yfFC82x/xXp8HVGIutIKPidd3i1RTtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMR
FcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+7UCmnYR0ObncHoUW2ikbhiMA
ybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW//1IMwrh3KWB
kJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7
l7+ijrRU
-----END CERTIFICATE-----

### certSIGN

=== /C=RO/O=certSIGN/OU=certSIGN ROOT CA
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 35210227249154 (0x200605167002)
    Signature Algorithm: sha1WithRSAEncryption
        Validity
            Not Before: Jul  4 17:20:04 2006 GMT
            Not After : Jul  4 17:20:04 2031 GMT
        Subject: C=RO, O=certSIGN, OU=certSIGN ROOT CA
        X509v3 extensions:




            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: critical
                Digital Signature, Non Repudiation, Certificate Sign, CRL Sign
            X509v3 Subject Key Identifier: 
                E0:8C:9B:DB:25:49:B3:F1:7C:86:D6:B2:42:87:0B:D0:6B:A0:D9:E4
SHA1 Fingerprint=FA:B7:EE:36:97:26:62:FB:2D:B0:2A:F6:BF:03:FD:E8:7C:4B:2F:9B
SHA256 Fingerprint=EA:A9:62:C4:FA:4A:6B:AF:EB:E4:15:19:6D:35:1C:CD:88:8D:4F:53:F3:FA:8A:E6:D7:C4:66:A9:4E:60:42:BB








-----BEGIN CERTIFICATE-----
MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYT





AlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBD
QTAeFw0wNjA3MDQxNzIwMDRaFw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJP
MREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTCC
ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7IJUqOtdu0KBuqV5Do
0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHHrfAQ
UySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5d
RdY4zTW2ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQ
OA7+j0xbm0bqQfWwCHTD0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwv
JoIQ4uNllAoEwF73XVv4EOLQunpL+943AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08C
AwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAcYwHQYDVR0O
BBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IBAQA+0hyJ
LjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecY
MnQ8SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ
44gx+FkagQnIl6Z0x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6I
Jd1hJyMctTEHBDa0GpC9oHRxUIltvBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNw
i/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7NzTogVZ96edhBiIL5VaZVDADlN
9u6wWk5JRFRYX0KD
-----END CERTIFICATE-----

### China Financial Certification Authority













=== /C=CN/O=China Financial Certification Authority/CN=CFCA EV ROOT
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 407555286 (0x184accd6)
    Signature Algorithm: sha256WithRSAEncryption
        Validity
            Not Before: Aug  8 03:07:01 2012 GMT
            Not After : Dec 31 03:07:01 2029 GMT
        Subject: C=CN, O=China Financial Certification Authority, CN=CFCA EV ROOT
        X509v3 extensions:
            X509v3 Authority Key Identifier: 






                keyid:E3:FE:2D:FD:28:D0:0B:B5:BA:B6:A2:C4:BF:06:AA:05:8C:93:FB:2F






            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Subject Key Identifier: 
                E3:FE:2D:FD:28:D0:0B:B5:BA:B6:A2:C4:BF:06:AA:05:8C:93:FB:2F
SHA1 Fingerprint=E2:B8:29:4B:55:84:AB:6B:58:C2:90:46:6C:AC:3F:B8:39:8F:84:83
SHA256 Fingerprint=5C:C3:D7:8E:4E:1D:5E:45:54:7A:04:E6:87:3E:64:F9:0C:F9:53:6D:1C:CC:2E:F8:00:F3:55:C4:C5:FD:70:FD
-----BEGIN CERTIFICATE-----
MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJD

TjEwMC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9y
aXR5MRUwEwYDVQQDDAxDRkNBIEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkx
MjMxMDMwNzAxWjBWMQswCQYDVQQGEwJDTjEwMC4GA1UECgwnQ2hpbmEgRmluYW5j
aWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNBIEVWIFJP







T1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXXWvNED8fBVnVBU03
sQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCjZ9YMrM8irq93VCpL
TIpTUnrD7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3IvHWOX6Jn5
/ZOkVIBMUtRSqy5J35DNuF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp
7hZZLDRJGqgG16iI0gNyejLi6mhNbiyWZXvKWfry4t3uMCz7zEasxGPrb382KzRz
EpR/38wmnvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7xzbh72fROdOXW3NiGUgt
hxwG+3SYIElz8AXSG7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9fpy25IGvP
a931DfSCt/SyZi4QKPaXWnuWFo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqot
aK8KgWU6cMGbrU1tVMoqLUuFG7OA5nBFDWteNfB/O7ic5ARwiRIlk9oKmSJgamNg
TnYGmE69g60dWIolhdLHZR4tjsbftsbhf4oEIRUpdPA+nJCdDC7xij5aqgwJHsfV
PKPtl8MeNPo4+QgO48BdK4PRVmrJtqhUUy54Mmc9gn900PvhtgVguXDbjgv5E1hv
cWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAfBgNVHSMEGDAWgBTj/i39KNAL
tbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAd

BgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIB
ACXGumvrh8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObT
ej/tUxPQ4i9qecsAIyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdL
jOztUmCypAbqTuv0axn96/Ua4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBS
ESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9BC2sGE5uPhnEFtC+NiWYzKXZUmhH4J/qy
P5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfXBDrDMlI1Dlb4pd19
xIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZePglr4UeWJoBjnaH9d
Ci77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4RUHlzEhLN
5mydLIhyPDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe
/v5WOaHIz16eGWRGENoXkbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+Z
AAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3CekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ
5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su
-----END CERTIFICATE-----

### Chunghwa Telecom Co., Ltd.

=== /C=TW/O=Chunghwa Telecom Co., Ltd./OU=ePKI Root Certification Authority
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            15:c8:bd:65:47:5c:af:b8:97:00:5e:e4:06:d2:bc:9d
    Signature Algorithm: sha1WithRSAEncryption
        Validity
            Not Before: Dec 20 02:31:27 2004 GMT
            Not After : Dec 20 02:31:27 2034 GMT
        Subject: C=TW, O=Chunghwa Telecom Co., Ltd., OU=ePKI Root Certification Authority
        X509v3 extensions:
            X509v3 Subject Key Identifier: 

                1E:0C:F7:B6:67:F2:E1:92:26:09:45:C0:55:39:2E:77:3F:42:4A:A2

            X509v3 Basic Constraints: 
                CA:TRUE
            setCext-hashedRoot: 
                0/0-...0...+......0...g*.....E...
V|.[x....S.....
SHA1 Fingerprint=67:65:0D:F1:7E:8E:7E:5B:82:40:A4:F4:56:4B:CF:E2:3D:69:C6:F0
SHA256 Fingerprint=C0:A6:F4:DC:63:A2:4B:FD:CF:54:EF:2A:6A:08:2A:0A:72:DE:35:80:3E:2F:F5:FF:52:7A:E5:D8:72:06:DF:D5
-----BEGIN CERTIFICATE-----
MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBe
MQswCQYDVQQGEwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0
ZC4xKjAoBgNVBAsMIWVQS0kgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe
Fw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMxMjdaMF4xCzAJBgNVBAYTAlRXMSMw
IQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEqMCgGA1UECwwhZVBL
SSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEF
AAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAH
SyZbCUNsIZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAh
ijHyl3SJCRImHJ7K2RKilTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3X
DZoTM1PRYfl61dd4s5oz9wCGzh1NlDivqOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1
TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX12ruOzjjK9SXDrkb5wdJ
fzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0OWQqraffA
sgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uU
WH1+ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLS
nT0IFaUQAS2zMnaolQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pH
dmX2Os+PYhcZewoozRrSgx4hxyy/vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJip
NiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXiZo1jDiVN1Rmy5nk3pyKdVDEC
AwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/QkqiMAwGA1UdEwQF
MAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH
ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGB



uvl2ICO1J2B01GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6Yl
PwZpVnPDimZI+ymBV3QGypzqKOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkP
JXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdVxrsStZf0X4OFunHB2WyBEXYKCrC/
gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEPNXubrjlpC2JgQCA2
j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+rGNm6
5ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUB
o2M3IUxExJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS
/jQ6fbjpKdx2qcgw+BRxgMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2z
Gp1iro2C6pSe3VkQw63d4k3jMdXH7OjysP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTE
W9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmODBCEIZ43ygknQW/2xzQ+D
hNQ+IIX3Sj0rnP0qCglN6oH4EZw=


-----END CERTIFICATE-----

### COMODO CA Limited

=== /C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO Certification Authority
Certificate:
    Data:
681
682
683
684
685
686
687























































































































































































































688
689
690
691
692
693
694
jkk9u+UJueBPSZI9FoJAzMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yL
S0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHqZJx64SIDqZxubw5lT2yHh17zbqD5daWb
QOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk527RH89elWsn2/x20Kk4yl
0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7ILaZRfyHB
NVOFBkpdn627G190
-----END CERTIFICATE-----
























































































































































































































### Deutsche Telekom AG

=== /C=DE/O=Deutsche Telekom AG/OU=T-TeleSec Trust Center/CN=Deutsche Telekom Root CA 2
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 38 (0x26)







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
jkk9u+UJueBPSZI9FoJAzMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yL
S0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHqZJx64SIDqZxubw5lT2yHh17zbqD5daWb
QOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk527RH89elWsn2/x20Kk4yl
0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7ILaZRfyHB
NVOFBkpdn627G190
-----END CERTIFICATE-----

### Comodo CA Limited

=== /C=GB/ST=Greater Manchester/L=Salford/O=Comodo CA Limited/CN=AAA Certificate Services
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 1 (0x1)
    Signature Algorithm: sha1WithRSAEncryption
        Validity
            Not Before: Jan  1 00:00:00 2004 GMT
            Not After : Dec 31 23:59:59 2028 GMT
        Subject: C=GB, ST=Greater Manchester, L=Salford, O=Comodo CA Limited, CN=AAA Certificate Services
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                A0:11:0A:23:3E:96:F1:07:EC:E2:AF:29:EF:82:A5:7F:D0:30:A4:B4
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 CRL Distribution Points: 

                Full Name:
                  URI:http://crl.comodoca.com/AAACertificateServices.crl

                Full Name:
                  URI:http://crl.comodo.net/AAACertificateServices.crl

SHA1 Fingerprint=D1:EB:23:A4:6D:17:D6:8F:D9:25:64:C2:F1:F1:60:17:64:D8:E3:49
SHA256 Fingerprint=D7:A7:A0:FB:5D:7E:27:31:D7:71:E9:48:4E:BC:DE:F7:1D:5F:0C:3E:0A:29:48:78:2B:C8:3E:E0:EA:69:9E:F4
-----BEGIN CERTIFICATE-----
MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEb
MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow
GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmlj
YXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVowezEL
MAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE
BwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNVBAMM
GEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP
ADCCAQoCggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQua
BtDFcCLNSS1UY8y2bmhGC1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe
3M/vg4aijJRPn2jymJBGhCfHdr/jzDUsi14HZGWCwEiwqJH5YZ92IFCokcdmtet4
YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszWY19zjNoFmag4qMsXeDZR
rOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjHYpy+g8cm
ez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQU
oBEKIz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
MAMBAf8wewYDVR0fBHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20v
QUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29t
b2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNybDANBgkqhkiG9w0BAQUF
AAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm7l3sAg9g1o1Q
GE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2
G9w84FoVxp7Z8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsi
l2D4kF501KKaU73yqWjgom7C12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3
smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
-----END CERTIFICATE-----

### Cybertrust, Inc

=== /O=Cybertrust, Inc/CN=Cybertrust Global Root
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            04:00:00:00:00:01:0f:85:aa:2d:48
    Signature Algorithm: sha1WithRSAEncryption
        Validity
            Not Before: Dec 15 08:00:00 2006 GMT
            Not After : Dec 15 08:00:00 2021 GMT
        Subject: O=Cybertrust, Inc, CN=Cybertrust Global Root
        X509v3 extensions:
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Subject Key Identifier: 
                B6:08:7B:0D:7A:CC:AC:20:4C:86:56:32:5E:CF:AB:6E:85:2D:70:57
            X509v3 CRL Distribution Points: 

                Full Name:
                  URI:http://www2.public-trust.com/crl/ct/ctroot.crl

            X509v3 Authority Key Identifier: 
                keyid:B6:08:7B:0D:7A:CC:AC:20:4C:86:56:32:5E:CF:AB:6E:85:2D:70:57

SHA1 Fingerprint=5F:43:E5:B1:BF:F8:78:8C:AC:1C:C7:CA:4A:9A:C6:22:2B:CC:34:C6
SHA256 Fingerprint=96:0A:DF:00:63:E9:63:56:75:0C:29:65:DD:0A:08:67:DA:0B:9C:BD:6E:77:71:4A:EA:FB:23:49:AB:39:3D:A3
-----BEGIN CERTIFICATE-----
MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYG
A1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2Jh
bCBSb290MB4XDTA2MTIxNTA4MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UE
ChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBS
b290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+Mi8vRRQZhP/8NN5
7CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW0ozS
J8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2y
HLtgwEZLAfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iP
t3sMpTjr3kfb1V05/Iin89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNz
FtApD0mpSPCzqrdsxacwOUBdrsTiXSZT8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAY
XSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/
MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2MDSgMqAw
hi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3Js
MB8GA1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUA
A4IBAQBW7wojoFROlZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMj
Wqd8BfP9IjsO0QbE2zZMcwSO5bAi5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUx
XOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2hO0j9n0Hq0V+09+zv+mKts2o
omcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+TX3EJIrduPuoc
A06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW
WL1WMRJOEcgh4LMRkWXbtKaIOM5V
-----END CERTIFICATE-----

### D-Trust GmbH

=== /C=DE/O=D-Trust GmbH/CN=D-TRUST Root Class 3 CA 2 2009
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 623603 (0x983f3)
    Signature Algorithm: sha256WithRSAEncryption
        Validity
            Not Before: Nov  5 08:35:58 2009 GMT
            Not After : Nov  5 08:35:58 2029 GMT
        Subject: C=DE, O=D-Trust GmbH, CN=D-TRUST Root Class 3 CA 2 2009
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Subject Key Identifier: 
                FD:DA:14:C4:9F:30:DE:21:BD:1E:42:39:FC:AB:63:23:49:E0:F1:84
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 CRL Distribution Points: 

                Full Name:
                  URI:ldap://directory.d-trust.net/CN=D-TRUST%20Root%20Class%203%20CA%202%202009,O=D-Trust%20GmbH,C=DE?certificaterevocationlist

                Full Name:
                  URI:http://www.d-trust.net/crl/d-trust_root_class_3_ca_2_2009.crl

SHA1 Fingerprint=58:E8:AB:B0:36:15:33:FB:80:F7:9B:1B:6D:29:D3:FF:8D:5F:00:F0
SHA256 Fingerprint=49:E7:A4:42:AC:F0:EA:62:87:05:00:54:B5:25:64:B6:50:E4:F4:9E:42:E3:48:D6:AA:38:E0:39:E9:57:B1:C1
-----BEGIN CERTIFICATE-----
MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRF
MRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBD
bGFzcyAzIENBIDIgMjAwOTAeFw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NTha
ME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJzAlBgNVBAMM
HkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOADER03
UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42
tSHKXzlABF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9R
ySPocq60vFYJfxLLHLGvKZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsM
lFqVlNpQmvH/pStmMaTJOKDfHR+4CS7zp+hnUquVH+BGPtikw8paxTGA6Eian5Rp
/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUCAwEAAaOCARowggEWMA8G
A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ4PGEMA4G
A1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVj
dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUy
MENBJTIwMiUyMDIwMDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRl
cmV2b2NhdGlvbmxpc3QwQ6BBoD+GPWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3Js
L2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAwOS5jcmwwDQYJKoZIhvcNAQEL
BQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm2H6NMLVwMeni
acfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0
o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4K
zCUqNQT4YJEVdT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8
PIWmawomDeCTmGCufsYkl4phX5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3Y
Johw1+qRzT65ysCQblrGXnRl11z+o+I=
-----END CERTIFICATE-----
=== /C=DE/O=D-Trust GmbH/CN=D-TRUST Root Class 3 CA 2 EV 2009
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 623604 (0x983f4)
    Signature Algorithm: sha256WithRSAEncryption
        Validity
            Not Before: Nov  5 08:50:46 2009 GMT
            Not After : Nov  5 08:50:46 2029 GMT
        Subject: C=DE, O=D-Trust GmbH, CN=D-TRUST Root Class 3 CA 2 EV 2009
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Subject Key Identifier: 
                D3:94:8A:4C:62:13:2A:19:2E:CC:AF:72:8A:7D:36:D7:9A:1C:DC:67
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 CRL Distribution Points: 

                Full Name:
                  URI:ldap://directory.d-trust.net/CN=D-TRUST%20Root%20Class%203%20CA%202%20EV%202009,O=D-Trust%20GmbH,C=DE?certificaterevocationlist

                Full Name:
                  URI:http://www.d-trust.net/crl/d-trust_root_class_3_ca_2_ev_2009.crl

SHA1 Fingerprint=96:C9:1B:0B:95:B4:10:98:42:FA:D0:D8:22:79:FE:60:FA:B9:16:83
SHA256 Fingerprint=EE:C5:49:6B:98:8C:E9:86:25:B9:34:09:2E:EC:29:08:BE:D0:B0:F3:16:C2:D4:73:0C:84:EA:F1:F3:D3:48:81
-----BEGIN CERTIFICATE-----
MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRF
MRUwEwYDVQQKDAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBD
bGFzcyAzIENBIDIgRVYgMjAwOTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUw
NDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxKjAoBgNV
BAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAwOTCCASIwDQYJKoZI
hvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfSegpn
ljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM0
3TP1YtHhzRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6Z
qQTMFexgaDbtCHu39b+T7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lR
p75mpoo6Kr3HGrHhFPC+Oh25z1uxav60sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8
HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure3511H3a6UCAwEAAaOCASQw
ggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyvcop9Ntea
HNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFw
Oi8vZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xh
c3MlMjAzJTIwQ0ElMjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1E
RT9jZXJ0aWZpY2F0ZXJldm9jYXRpb25saXN0MEagRKBChkBodHRwOi8vd3d3LmQt
dHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xhc3NfM19jYV8yX2V2XzIwMDku
Y3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+PPoeUSbrh/Yp
3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05
nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNF
CSuGdXzfX2lXANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7na
xpeG0ILD5EJt/rDiZE4OJudANCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqX
KVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVvw9y4AyHqnxbxLFS1
-----END CERTIFICATE-----

### Deutsche Telekom AG

=== /C=DE/O=Deutsche Telekom AG/OU=T-TeleSec Trust Center/CN=Deutsche Telekom Root CA 2
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 38 (0x26)
725
726
727
728
729
730
731



















































732
733
734
735
736
737
738
tJh6sTtU6zkXR34ajgv8HzFZMQSyzhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpa
IzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8rZ7/gFnkm0W09juwzTkZmDLl
6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4Gdyd1Lx+4ivn+
xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU
Cm26OWMohpLzGITY+9HPBVZkVw==
-----END CERTIFICATE-----




















































### DigiCert Inc

=== /C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert Assured ID Root CA
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
tJh6sTtU6zkXR34ajgv8HzFZMQSyzhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpa
IzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8rZ7/gFnkm0W09juwzTkZmDLl
6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4Gdyd1Lx+4ivn+
xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU
Cm26OWMohpLzGITY+9HPBVZkVw==
-----END CERTIFICATE-----

### Dhimyotis

=== /C=FR/O=Dhimyotis/CN=Certigna
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 18364802974209362175 (0xfedce3010fc948ff)
    Signature Algorithm: sha1WithRSAEncryption
        Validity
            Not Before: Jun 29 15:13:05 2007 GMT
            Not After : Jun 29 15:13:05 2027 GMT
        Subject: C=FR, O=Dhimyotis, CN=Certigna
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Subject Key Identifier: 
                1A:ED:FE:41:39:90:B4:24:59:BE:01:F2:52:D5:45:F6:5A:39:DC:11
            X509v3 Authority Key Identifier: 
                keyid:1A:ED:FE:41:39:90:B4:24:59:BE:01:F2:52:D5:45:F6:5A:39:DC:11
                DirName:/C=FR/O=Dhimyotis/CN=Certigna
                serial:FE:DC:E3:01:0F:C9:48:FF

            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            Netscape Cert Type: 
                SSL CA, S/MIME CA, Object Signing CA
SHA1 Fingerprint=B1:2E:13:63:45:86:A4:6F:1A:B2:60:68:37:58:2D:C4:AC:FD:94:97
SHA256 Fingerprint=E3:B6:A2:DB:2E:D7:CE:48:84:2F:7A:C5:32:41:C7:B7:1D:54:14:4B:FB:40:C1:1F:3F:1D:0B:42:F5:EE:A1:2D
-----BEGIN CERTIFICATE-----
MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNV
BAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4X
DTA3MDYyOTE1MTMwNVoXDTI3MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQ
BgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwIQ2VydGlnbmEwggEiMA0GCSqGSIb3
DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7qXOEm7RFHYeGifBZ4
QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyHGxny
gQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbw
zBfsV1/pogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q
130yGLMLLGq/jj8UEYkgDncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2
JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKfIrjxwo1p3Po6WAbfAgMBAAGjgbwwgbkw
DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQtCRZvgHyUtVF9lo53BEw
ZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJBgNVBAYT
AkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzj
AQ/JSP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG
9w0BAQUFAAOCAQEAhQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8h
bV6lUmPOEvjvKtpv6zf+EwLHyzs+ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFnc
fca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1kluPBS1xp81HlDQwY9qcEQCYsuu
HWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY1gkIl2PlwS6w
t0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw
WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==
-----END CERTIFICATE-----

### DigiCert Inc

=== /C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert Assured ID Root CA
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie
4u1Ki7wb/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mI
r/OSmbaz5mEP0oUA51Aa5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1
/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tKG48BtieVU+i2iW1bvGjUI+iLUaJW+fCm
gKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP82Z+
-----END CERTIFICATE-----

### Digital Signature Trust

=== /C=US/O=Digital Signature Trust/OU=DST ACES/CN=DST ACES CA X6
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            0d:5e:99:0a:d6:9d:b7:78:ec:d8:07:56:3b:86:15:d9
    Signature Algorithm: sha1WithRSAEncryption
        Validity
            Not Before: Nov 20 21:19:58 2003 GMT
            Not After : Nov 20 21:19:58 2017 GMT
        Subject: C=US, O=Digital Signature Trust, OU=DST ACES, CN=DST ACES CA X6
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: critical
                Digital Signature, Non Repudiation, Certificate Sign, CRL Sign
            X509v3 Subject Alternative Name: 
                email:pki-ops@trustdst.com
            X509v3 Certificate Policies: 
                Policy: 2.16.840.1.101.3.2.1.1.1
                  CPS: http://www.trustdst.com/certificates/policy/ACES-index.html

            X509v3 Subject Key Identifier: 
                09:72:06:4E:18:43:0F:E5:D6:CC:C3:6A:8B:31:7B:78:8F:A8:83:B8
SHA1 Fingerprint=40:54:DA:6F:1C:3F:40:74:AC:ED:0F:EC:CD:DB:79:D1:53:FB:90:1D
SHA256 Fingerprint=76:7C:95:5A:76:41:2C:89:AF:68:8E:90:A1:C7:0F:55:6C:FD:6B:60:25:DB:EA:10:41:6D:7E:B6:83:1F:8C:40
-----BEGIN CERTIFICATE-----
MIIECTCCAvGgAwIBAgIQDV6ZCtadt3js2AdWO4YV2TANBgkqhkiG9w0BAQUFADBb
MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3Qx
ETAPBgNVBAsTCERTVCBBQ0VTMRcwFQYDVQQDEw5EU1QgQUNFUyBDQSBYNjAeFw0w
MzExMjAyMTE5NThaFw0xNzExMjAyMTE5NThaMFsxCzAJBgNVBAYTAlVTMSAwHgYD
VQQKExdEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdDERMA8GA1UECxMIRFNUIEFDRVMx
FzAVBgNVBAMTDkRTVCBBQ0VTIENBIFg2MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
MIIBCgKCAQEAuT31LMmU3HWKlV1j6IR3dma5WZFcRt2SPp/5DgO0PWGSvSMmtWPu
ktKe1jzIDZBfZIGxqAgNTNj50wUoUrQBJcWVHAx+PhCEdc/BGZFjz+iokYi5Q1K7
gLFViYsx+tC3dr5BPTCapCIlF3PoHuLTrCq9Wzgh1SpL11V94zpVvddtawJXa+ZH
fAjIgrrep4c9oW24MFbCswKBXy314powGCi4ZtPLAZZv6opFVdbgnf9nKxcCpk4a
ahELfrd755jWjHZvwTvbUJN+5dCOHze4vbrGn2zpfDPyMjwmR/onJALJfh1biEIT
ajV8fTXpLmaRcpPVMibEdPVTo7NdmvYJywIDAQABo4HIMIHFMA8GA1UdEwEB/wQF
MAMBAf8wDgYDVR0PAQH/BAQDAgHGMB8GA1UdEQQYMBaBFHBraS1vcHNAdHJ1c3Rk
c3QuY29tMGIGA1UdIARbMFkwVwYKYIZIAWUDAgEBATBJMEcGCCsGAQUFBwIBFjto
dHRwOi8vd3d3LnRydXN0ZHN0LmNvbS9jZXJ0aWZpY2F0ZXMvcG9saWN5L0FDRVMt
aW5kZXguaHRtbDAdBgNVHQ4EFgQUCXIGThhDD+XWzMNqizF7eI+og7gwDQYJKoZI
hvcNAQEFBQADggEBAKPYjtay284F5zLNAdMEA+V25FYrnJmQ6AgwbN99Pe7lv7Uk
QIRJ4dEorsTCOlMwiPH1d25Ryvr/ma8kXxug/fKshMrfqfBfBC6tFr8hlxCBPeP/
h40y3JTlR4peahPJlJU90u7INJXQgNStMgiAVDzgvVJT11J8smk/f3rPanTK+gQq
nExaBqXpIK1FZg9p8d2/6eMyi/rgwYZNcjwu2JN4Cir42NInPRmJX1p7ijvMDNpR
rscL9yuwNwXsvFcj4jjSm2jzVhKIT0J8uDHEtdvkyCE06UgRNe76x5JXxZ805Mf2
9w4LTJxoeHtxMcfrHuBnQfO3oKfN5XozNmr6mis=
-----END CERTIFICATE-----

### Digital Signature Trust Co.

=== /O=Digital Signature Trust Co./CN=DST Root CA X3
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







2178
2179
2180
2181
2182
2183
2184





















































2185
2186
2187
2188
2189
2190
2191
0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie
4u1Ki7wb/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mI
r/OSmbaz5mEP0oUA51Aa5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1
/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tKG48BtieVU+i2iW1bvGjUI+iLUaJW+fCm
gKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP82Z+
-----END CERTIFICATE-----






















































### Digital Signature Trust Co.

=== /O=Digital Signature Trust Co./CN=DST Root CA X3
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
1166
1167
1168
1169
1170
1171
1172


















































































































1173
1174
1175
1176
1177
1178
1179
ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr
AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz
R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5
JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo
Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
-----END CERTIFICATE-----



















































































































### Entrust, Inc.

=== /C=US/O=Entrust, Inc./OU=See www.entrust.net/legal-terms/OU=(c) 2009 Entrust, Inc. - for authorized use only/CN=Entrust Root Certification Authority - G2
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 1246989352 (0x4a538c28)







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr
AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz
R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5
JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo
Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
-----END CERTIFICATE-----

### Disig a.s.

=== /C=SK/L=Bratislava/O=Disig a.s./CN=CA Disig Root R2
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 10572350602393338211 (0x92b888dbb08ac163)
    Signature Algorithm: sha256WithRSAEncryption
        Validity
            Not Before: Jul 19 09:15:30 2012 GMT
            Not After : Jul 19 09:15:30 2042 GMT
        Subject: C=SK, L=Bratislava, O=Disig a.s., CN=CA Disig Root R2
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Subject Key Identifier: 
                B5:99:F8:AF:B0:94:F5:E3:20:D6:0A:AD:CE:4E:56:A4:2E:6E:42:ED
SHA1 Fingerprint=B5:61:EB:EA:A4:DE:E4:25:4B:69:1A:98:A5:57:47:C2:34:C7:D9:71
SHA256 Fingerprint=E2:3D:4A:03:6D:7B:70:E9:F5:95:B1:42:20:79:D2:B9:1E:DF:BB:1F:B6:51:A0:63:3E:AA:8A:9D:C5:F8:07:03
-----BEGIN CERTIFICATE-----
MIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNV
BAYTAlNLMRMwEQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMu
MRkwFwYDVQQDExBDQSBEaXNpZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQy
MDcxOTA5MTUzMFowUjELMAkGA1UEBhMCU0sxEzARBgNVBAcTCkJyYXRpc2xhdmEx
EzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERpc2lnIFJvb3QgUjIw
ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCio8QACdaFXS1tFPbCw3Oe
NcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9vgMsRfYvZNSrXaNH
PWSb6WiaxswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwAFjxfGs3I
x2ymrdMxp7zo5eFm1tL7A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbe
QTg06ov80egEFGEtQX6sx3dOy1FU+16SGBsEWmjGycT6txOgmLcRK7fWV8x8nhfR
yyX+hk4kLlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqVg8NTEQxzHQuyRpDRQjrO
QG6Vrf/GlK1ul4SOfW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa5Beny912
H9AZdugsBbPWnDTYltxhh5EF5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJ
QfYEkoopKW1rOhzndX0CcQ7zwOe9yxndnWCywmZgtrEE7snmhrmaZkCo5xHtgUUD
i/ZnWejBBhG93c+AAk9lQHhcR1DIm+YfgXvkRKhbhZri3lrVx/k6RGZL5DJUfORs
nLMOPReisjQS1n6yqEm70XooQL6iFh/f5DcfEXP7kAplQ6INfPgGAVUzfbANuPT1
rqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud
DwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5uQu0wDQYJKoZI
hvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFM
tCQSin1tERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqf
GopTpti72TVVsRHFqQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkb
lvdhuDvEK7Z4bLQjb/D907JedR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka
+elSLotgEqv89WBW7xBci8QaQtyDW2QOy7W81k/BfDxujRNt+3vrMNDcTa/F1bal
TFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kHbA7v/zjxmHHEt38OFdAlab0i
nSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOGdGSVyCh13x01utI3
gzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+boE+18Dr
G5gPcFw0sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3Os
zMOl6W8KjptlwlCFtaOgUxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8x
L4ysEr3vQCj8KWefshNPZiTEUxnpHikV7+ZtsH8tZ/3zbBt1RqPlShfppNcL
-----END CERTIFICATE-----

### E-Tu\U011Fra EBG Bili\U015Fim Teknolojileri ve Hizmetleri A.\U015E.

=== /C=TR/L=Ankara/O=E-Tu\xC4\x9Fra EBG Bili\xC5\x9Fim Teknolojileri ve Hizmetleri A.\xC5\x9E./OU=E-Tugra Sertifikasyon Merkezi/CN=E-Tugra Certification Authority
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 7667447206703254355 (0x6a683e9c519bcb53)
    Signature Algorithm: sha256WithRSAEncryption
        Validity
            Not Before: Mar  5 12:09:48 2013 GMT
            Not After : Mar  3 12:09:48 2023 GMT
        Subject: C=TR, L=Ankara, O=E-Tu\xC4\x9Fra EBG Bili\xC5\x9Fim Teknolojileri ve Hizmetleri A.\xC5\x9E., OU=E-Tugra Sertifikasyon Merkezi, CN=E-Tugra Certification Authority
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                2E:E3:DB:B2:49:D0:9C:54:79:5C:FA:27:2A:FE:CC:4E:D2:E8:4E:54
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Authority Key Identifier: 
                keyid:2E:E3:DB:B2:49:D0:9C:54:79:5C:FA:27:2A:FE:CC:4E:D2:E8:4E:54

            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
SHA1 Fingerprint=51:C6:E7:08:49:06:6E:F3:92:D4:5C:A0:0D:6D:A3:62:8F:C3:52:39
SHA256 Fingerprint=B0:BF:D5:2B:B0:D7:D9:BD:92:BF:5D:4D:C1:3D:A2:55:C0:2C:54:2F:37:83:65:EA:89:39:11:F5:5E:55:F2:3C
-----BEGIN CERTIFICATE-----
MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNV
BAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBC
aWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNV
BAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQDDB9FLVR1
Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMwNTEyMDk0OFoXDTIz
MDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExQDA+
BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhp
em1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN
ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA4vU/kwVRHoViVF56C/UY
B4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vdhQd2h8y/L5VMzH2nPbxH
D5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5KCKpbknSF
Q9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEo
q1+gElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3D
k14opz8n8Y4e0ypQBaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcH
fC425lAcP9tDJMW/hkd5s3kc91r0E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsut
dEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gzrt48Ue7LE3wBf4QOXVGUnhMM
ti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAqjqFGOjGY5RH8
zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn
rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUX
U8u3Zg5mTPj5dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6
Jyr+zE7S6E5UMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5
XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAF
Nzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAKkEh47U6YA5n+KGCR
HTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jOXKqY
GwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c
77NCR807VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3
+GbHeJAAFS6LrVE1Uweoa2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WK
vJUawSg5TB9D0pH0clmKuVb8P7Sd2nCcdlqMQ1DujjByTd//SffGqWfZbawCEeI6
FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEVKV0jq9BgoRJP3vQXzTLl
yb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gTDx4JnW2P
AJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpD
y4Q08ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8d
NL/+I5c30jn6PQ0GC7TbO6Orb1wdtn7os4I07QZcJA==
-----END CERTIFICATE-----

### Entrust, Inc.

=== /C=US/O=Entrust, Inc./OU=See www.entrust.net/legal-terms/OU=(c) 2009 Entrust, Inc. - for authorized use only/CN=Entrust Root Certification Authority - G2
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 1246989352 (0x4a538c28)
1351
1352
1353
1354
1355
1356
1357



























































1358
1359
1360
1361
1362
1363
1364
U8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf
zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5b
u/8j72gZyxKTJ1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+
bYQLCIt+jerXmCHG8+c8eS9enNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/Er
fF6adulZkMV8gzURZVE=
-----END CERTIFICATE-----




























































### GeoTrust Inc.

=== /C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 144470 (0x23456)







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
U8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf
zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5b
u/8j72gZyxKTJ1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+
bYQLCIt+jerXmCHG8+c8eS9enNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/Er
fF6adulZkMV8gzURZVE=
-----END CERTIFICATE-----

### FNMT-RCM

=== /C=ES/O=FNMT-RCM/OU=AC RAIZ FNMT-RCM
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            5d:93:8d:30:67:36:c8:06:1d:1a:c7:54:84:69:07
    Signature Algorithm: sha256WithRSAEncryption
        Validity
            Not Before: Oct 29 15:59:56 2008 GMT
            Not After : Jan  1 00:00:00 2030 GMT
        Subject: C=ES, O=FNMT-RCM, OU=AC RAIZ FNMT-RCM
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Subject Key Identifier: 
                F7:7D:C5:FD:C4:E8:9A:1B:77:64:A7:F5:1D:A0:CC:BF:87:60:9A:6D
            X509v3 Certificate Policies: 
                Policy: X509v3 Any Policy
                  CPS: http://www.cert.fnmt.es/dpcs/

SHA1 Fingerprint=EC:50:35:07:B2:15:C4:95:62:19:E2:A8:9A:5B:42:99:2C:4C:2C:20
SHA256 Fingerprint=EB:C5:57:0C:29:01:8C:4D:67:B1:AA:12:7B:AF:12:F7:03:B4:61:1E:BC:17:B7:DA:B5:57:38:94:17:9B:93:FA
-----BEGIN CERTIFICATE-----
MIIFgzCCA2ugAwIBAgIPXZONMGc2yAYdGsdUhGkHMA0GCSqGSIb3DQEBCwUAMDsx
CzAJBgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJ
WiBGTk1ULVJDTTAeFw0wODEwMjkxNTU5NTZaFw0zMDAxMDEwMDAwMDBaMDsxCzAJ
BgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJWiBG
Tk1ULVJDTTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALpxgHpMhm5/
yBNtwMZ9HACXjywMI7sQmkCpGreHiPibVmr75nuOi5KOpyVdWRHbNi63URcfqQgf
BBckWKo3Shjf5TnUV/3XwSyRAZHiItQDwFj8d0fsjz50Q7qsNI1NOHZnjrDIbzAz
WHFctPVrbtQBULgTfmxKo0nRIBnuvMApGGWn3v7v3QqQIecaZ5JCEJhfTzC8PhxF
tBDXaEAUwED653cXeuYLj2VbPNmaUtu1vZ5Gzz3rkQUCwJaydkxNEJY7kvqcfw+Z
374jNUUeAlz+taibmSXaXvMiwzn15Cou08YfxGyqxRxqAQVKL9LFwag0Jl1mpdIC
IfkYtwb1TplvqKtMUejPUBjFd8g5CSxJkjKZqLsXF3mwWsXmo8RZZUc1g16p6DUL
mbvkzSDGm0oGObVo/CK67lWMK07q87Hj/LaZmtVC+nFNCM+HHmpxffnTtOmlcYF7
wk5HlqX2doWjKI/pgG6BU6VtX7hI+cL5NqYuSf+4lsKMB7ObiFj86xsc3i1w4peS
MKGJ47xVqCfWS+2QrYv6YyVZLag13cqXM7zlzced0ezvXg5KkAYmY6252TUtB7p2
ZSysV4999AeU14ECll2jB0nVetBX+RvnU0Z1qrB5QstocQjpYL05ac70r8NWQMet
UqIJ5G+GR4of6ygnXYMgrwTJbFaai0b1AgMBAAGjgYMwgYAwDwYDVR0TAQH/BAUw
AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFPd9xf3E6Jobd2Sn9R2gzL+H
YJptMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1odHRwOi8vd3d3
LmNlcnQuZm5tdC5lcy9kcGNzLzANBgkqhkiG9w0BAQsFAAOCAgEAB5BK3/MjTvDD
nFFlm5wioooMhfNzKWtN/gHiqQxjAb8EZ6WdmF/9ARP67Jpi6Yb+tmLSbkyU+8B1
RXxlDPiyN8+sD8+Nb/kZ94/sHvJwnvDKuO+3/3Y3dlv2bojzr2IyIpMNOmqOFGYM
LVN0V2Ue1bLdI4E7pWYjJ2cJj+F3qkPNZVEI7VFY/uY5+ctHhKQV8Xa7pO6kO8Rf
77IzlhEYt8llvhjho6Tc+hj507wTmzl6NLrTQfv6MooqtyuGC2mDOL7Nii4LcK2N
JpLuHvUBKwrZ1pebbuCoGRw6IYsMHkCtA+fdZn71uSANA+iW+YJF1DngoABd15jm
fZ5nc8OaKveri6E6FO80vFIOiZiaBECEHX5FaZNXzuvO+FB8TxxuBEOb+dY7Ixjp
6o7RTUaN8Tvkasq6+yO3m/qZASlaWFot4/nUbQ4mrcFuNLwy+AwF+mWj2zs3gyLp
1txyM/1d8iC9djwj2ij3+RvrWWTV3F9yfiD8zYm1kGdNYno/Tq0dwzn+evQoFt9B
9kiABdcPUXmsEKvU7ANm5mqwujGSQkBqvjrTcuFqN1W8rB2Vt2lh8kORdOag0wok
RqEIr9baRRmW1FMdW4R58MD3R++Lj8UGrp1MYp3/RgT408m2ECVAdf4WqslKYIYv
uu8wd+RU4riEmViAqhOLUTpPSPaLtrM=
-----END CERTIFICATE-----

### GeoTrust Inc.

=== /C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 144470 (0x23456)
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
ephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVkDBF9qn1l
uMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKIn
Z57QzxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfS
tQWVYrmm3ok9Nns4d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcF
PseKUgzbFbS9bZvlxrFUaKnjaZC2mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Un
hw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6pXE0zX5IJL4hmXXeXxx12E6nV
5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvmMw==
-----END CERTIFICATE-----
=== /C=US/O=GeoTrust Inc./CN=GeoTrust Global CA 2
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 1 (0x1)
    Signature Algorithm: sha1WithRSAEncryption
        Validity
            Not Before: Mar  4 05:00:00 2004 GMT
            Not After : Mar  4 05:00:00 2019 GMT
        Subject: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA 2
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Subject Key Identifier: 
                71:38:36:F2:02:31:53:47:2B:6E:BA:65:46:A9:10:15:58:20:05:09
            X509v3 Authority Key Identifier: 
                keyid:71:38:36:F2:02:31:53:47:2B:6E:BA:65:46:A9:10:15:58:20:05:09

            X509v3 Key Usage: critical
                Digital Signature, Certificate Sign, CRL Sign
SHA1 Fingerprint=A9:E9:78:08:14:37:58:88:F2:05:19:B0:6D:2B:0D:2B:60:16:90:7D
SHA256 Fingerprint=CA:2D:82:A0:86:77:07:2F:8A:B6:76:4F:F0:35:67:6C:FE:3E:5E:32:5E:01:21:72:DF:3F:92:09:6D:B7:9B:85
-----BEGIN CERTIFICATE-----
MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEW
MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFs
IENBIDIwHhcNMDQwMzA0MDUwMDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQG
EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3Qg
R2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDvPE1A
PRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/NTL8
Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hL
TytCOb1kLUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL
5mkWRxHCJ1kDs6ZgwiFAVvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7
S4wMcoKK+xfNAGw6EzywhIdLFnopsk/bHdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe
2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
FHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNHK266ZUap
EBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6td
EPx7srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv
/NgdRN3ggX+d6YvhZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywN
A0ZF66D0f0hExghAzN4bcLUprbqLOzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0
abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkCx1YAzUm5s2x7UwQa4qjJqhIF
I8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqFH4z1Ir+rzoPz
4iIprn2DQKi6bA==
-----END CERTIFICATE-----
=== /C=US/O=GeoTrust Inc./CN=GeoTrust Primary Certification Authority
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            18:ac:b5:6a:fd:69:b6:15:3a:63:6c:af:da:fa:c4:a1







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







2620
2621
2622
2623
2624
2625
2626











































2627
2628
2629
2630
2631
2632
2633
ephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVkDBF9qn1l
uMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKIn
Z57QzxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfS
tQWVYrmm3ok9Nns4d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcF
PseKUgzbFbS9bZvlxrFUaKnjaZC2mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Un
hw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6pXE0zX5IJL4hmXXeXxx12E6nV
5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvmMw==











































-----END CERTIFICATE-----
=== /C=US/O=GeoTrust Inc./CN=GeoTrust Primary Certification Authority
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            18:ac:b5:6a:fd:69:b6:15:3a:63:6c:af:da:fa:c4:a1
1914
1915
1916
1917
1918
1919
1920


















































































































































































































































































































































































































1921
1922
1923
1924
1925
1926
1927
WWcDYfF+OwYxdS2hII5PZYe096acvNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu
9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r5N9ss4UXnT3ZJE95kTXWXwTr
gIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYVN8Gb5DKj7Tjo
2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO
LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI
4uJEvlz36hz1
-----END CERTIFICATE-----



















































































































































































































































































































































































































### Internet Security Research Group

=== /C=US/O=Internet Security Research Group/CN=ISRG Root X1
Certificate:
    Data:
        Version: 3 (0x2)







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
WWcDYfF+OwYxdS2hII5PZYe096acvNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu
9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r5N9ss4UXnT3ZJE95kTXWXwTr
gIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYVN8Gb5DKj7Tjo
2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO
LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI
4uJEvlz36hz1
-----END CERTIFICATE-----

### Government Root Certification Authority

=== /C=TW/O=Government Root Certification Authority
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            1f:9d:59:5a:d7:2f:c2:06:44:a5:80:08:69:e3:5e:f6
    Signature Algorithm: sha1WithRSAEncryption
        Validity
            Not Before: Dec  5 13:23:33 2002 GMT
            Not After : Dec  5 13:23:33 2032 GMT
        Subject: C=TW, O=Government Root Certification Authority
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                CC:CC:EF:CC:29:60:A4:3B:B1:92:B6:3C:FA:32:62:8F:AC:25:15:3B
            X509v3 Basic Constraints: 
                CA:TRUE
            setCext-hashedRoot: 
                0/0-...0...+......0...g*........"...(6....2.1:.Qe
SHA1 Fingerprint=F4:8B:11:BF:DE:AB:BE:94:54:20:71:E6:41:DE:6B:BE:88:2B:40:B9
SHA256 Fingerprint=76:00:29:5E:EF:E8:5B:9E:1F:D6:24:DB:76:06:2A:AA:AE:59:81:8A:54:D2:77:4C:D4:C0:B2:C0:11:31:E1:B3
-----BEGIN CERTIFICATE-----
MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/
MQswCQYDVQQGEwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmlj
YXRpb24gQXV0aG9yaXR5MB4XDTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1ow
PzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dvdmVybm1lbnQgUm9vdCBDZXJ0aWZp
Y2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
AJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qNw8XR
IePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1q
gQdW8or5BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKy
yhwOeYHWtXBiCAEuTk8O1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAts
F/tnyMKtsc2AtJfcdgEWFelq16TheEfOhtX7MfP6Mb40qij7cEwdScevLJ1tZqa2
jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wovJ5pGfaENda1UhhXcSTvx
ls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7Q3hub/FC
VGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHK
YS1tB6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoH
EgKXTiCQ8P8NHuJBO9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThN
Xo+EHWbNxWCWtFJaBYmOlXqYwZE8lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1Ud
DgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNVHRMEBTADAQH/MDkGBGcqBwAE
MTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg209yewDL7MTqK
UWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ
TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyf
qzvS/3WXy6TjZwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaK
ZEk9GhiHkASfQlK3T8v+R0F2Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFE
JPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlUD7gsL0u8qV1bYH+Mh6XgUmMqvtg7
hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6QzDxARvBMB1uUO07+1
EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+HbkZ6Mm
nD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WX
udpVBrkk7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44Vbnz
ssQwmSNOXfJIoRIM3BKQCZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDe
LMDDav7v3Aun+kbfYNucpllQdSNpc5Oy+fwC00fmcc4QAu4njIT/rEUNE1yDMuAl
pYYsfPQS
-----END CERTIFICATE-----

### GUANG DONG CERTIFICATE AUTHORITY CO.,LTD.

=== /C=CN/O=GUANG DONG CERTIFICATE AUTHORITY CO.,LTD./CN=GDCA TrustAUTH R5 ROOT
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 9009899650740120186 (0x7d0997fef047ea7a)
    Signature Algorithm: sha256WithRSAEncryption
        Validity
            Not Before: Nov 26 05:13:15 2014 GMT
            Not After : Dec 31 15:59:59 2040 GMT
        Subject: C=CN, O=GUANG DONG CERTIFICATE AUTHORITY CO.,LTD., CN=GDCA TrustAUTH R5 ROOT
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                E2:C9:40:9F:4D:CE:E8:9A:A1:7C:CF:0E:3F:65:C5:29:88:6A:19:51
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: critical
                Digital Signature, Certificate Sign, CRL Sign
SHA1 Fingerprint=0F:36:38:5B:81:1A:25:C3:9B:31:4E:83:CA:E9:34:66:70:CC:74:B4
SHA256 Fingerprint=BF:FF:8F:D0:44:33:48:7D:6A:8A:A6:0C:1A:29:76:7A:9F:C2:BB:B0:5E:42:0F:71:3A:13:B9:92:89:1D:38:93
-----BEGIN CERTIFICATE-----
MIIFiDCCA3CgAwIBAgIIfQmX/vBH6nowDQYJKoZIhvcNAQELBQAwYjELMAkGA1UE
BhMCQ04xMjAwBgNVBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZ
IENPLixMVEQuMR8wHQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMB4XDTE0
MTEyNjA1MTMxNVoXDTQwMTIzMTE1NTk1OVowYjELMAkGA1UEBhMCQ04xMjAwBgNV
BAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZIENPLixMVEQuMR8w
HQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMIICIjANBgkqhkiG9w0BAQEF
AAOCAg8AMIICCgKCAgEA2aMW8Mh0dHeb7zMNOwZ+Vfy1YI92hhJCfVZmPoiC7XJj
Dp6L3TQsAlFRwxn9WVSEyfFrs0yw6ehGXTjGoqcuEVe6ghWinI9tsJlKCvLriXBj
TnnEt1u9ol2x8kECK62pOqPseQrsXzrj/e+APK00mxqriCZ7VqKChh/rNYmDf1+u
KU49tm7srsHwJ5uu4/Ts765/94Y9cnrrpftZTqfrlYwiOXnhLQiPzLyRuEH3FMEj
qcOtmkVEs7LXLM3GKeJQEK5cy4KOFxg2fZfmiJqwTTQJ9Cy5WmYqsBebnh52nUpm
MUHfP/vFBu8btn4aRjb3ZGM74zkYI+dndRTVdVeSN72+ahsmUPI2JgaQxXABZG12
ZuGR224HwGGALrIuL4xwp9E7PLOR5G62xDtw8mySlwnNR30YwPO7ng/Wi64HtloP
zgsMR6flPri9fcebNaBhlzpBdRfMK5Z3KpIhHtmVdiBnaM8Nvd/WHwlqmuLMc3Gk
L30SgLdTMEZeS1SZD2fJpcjyIMGC7J0R38IC+xo70e0gmu9lZJIQDSri3nDxGGeC
jGHeuLzRL5z7D9Ar7Rt2ueQ5Vfj4oR24qoAATILnsn8JuLwwoC8N9VKejveSswoA
HQBUlwbgsQfZxw9cZX08bVlX5O2ljelAU58VS6Bx9hoh49pwBiFYFIeFd3mqgnkC
AwEAAaNCMEAwHQYDVR0OBBYEFOLJQJ9NzuiaoXzPDj9lxSmIahlRMA8GA1UdEwEB
/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQDRSVfg
p8xoWLoBDysZzY2wYUWsEe1jUGn4H3++Fo/9nesLqjJHdtJnJO29fDMylyrHBYZm
DRd9FBUb1Ov9H5r2XpdptxolpAqzkT9fNqyL7FeoPueBihhXOYV0GkLH6VsTX4/5
COmSdI31R9KrO9b7eGZONn356ZLpBN79SWP8bfsUcZNnL0dKt7n/HipzcEYwv1ry
L3ml4Y0M2fmyYzeMN2WFcGpcWwlyua1jPLHd+PwyvzeG5LuOmCd+uh8W4XAR8gPf
JWIyJyYYMoSf/wA6E7qaTfRPuBRwIrHKK5DOKcFw9C+df/KQHtZa37dG/OaG+svg
IHZ6uqbL9XzeYqWxi+7egmaKTjowHz+Ay60nugxe19CxVsp3cbK1daFQqUBDF8Io
2c9Si1vIY9RCPqAzekYu9wogRlR+ak8x8YF+QnQ4ZXMn7sZ8uI7XpTrXmKGcjBBV
09tL7ECQ8s1uV9JiDnxXk7Gnbc2dg7sq5+W2O3FYrf3RRbxake5TFW/TRQl1brqQ
XR4EzzffHqhmsYzmIGrv/EhOdJhCrylvLmrH+33RZjEizIYAfmaDDEL0vTSSwxrq
T8p+ck0LcIymSLumoRT2+1hEmRSuqguTaaApJUqlyyvdimYHFngVV3Eb7PVHhPOe
MTd61X8kreS8/f3MboPoDKi3QWwH3b08hpcv0g==
-----END CERTIFICATE-----

### Hellenic Academic and Research Institutions Cert. Authority

=== /C=GR/L=Athens/O=Hellenic Academic and Research Institutions Cert. Authority/CN=Hellenic Academic and Research Institutions ECC RootCA 2015
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 0 (0x0)
    Signature Algorithm: ecdsa-with-SHA256
        Validity
            Not Before: Jul  7 10:37:12 2015 GMT
            Not After : Jun 30 10:37:12 2040 GMT
        Subject: C=GR, L=Athens, O=Hellenic Academic and Research Institutions Cert. Authority, CN=Hellenic Academic and Research Institutions ECC RootCA 2015
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Subject Key Identifier: 
                B4:22:0B:82:99:24:01:0E:9C:BB:E4:0E:FD:BF:FB:97:20:93:99:2A
SHA1 Fingerprint=9F:F1:71:8D:92:D5:9A:F3:7D:74:97:B4:BC:6F:84:68:0B:BA:B6:66
SHA256 Fingerprint=44:B5:45:AA:8A:25:E6:5A:73:CA:15:DC:27:FC:36:D2:4C:1C:B9:95:3A:06:65:39:B1:15:82:DC:48:7B:48:33
-----BEGIN CERTIFICATE-----
MIICwzCCAkqgAwIBAgIBADAKBggqhkjOPQQDAjCBqjELMAkGA1UEBhMCR1IxDzAN
BgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl
c2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxRDBCBgNVBAMTO0hl
bGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgRUNDIFJv
b3RDQSAyMDE1MB4XDTE1MDcwNzEwMzcxMloXDTQwMDYzMDEwMzcxMlowgaoxCzAJ
BgNVBAYTAkdSMQ8wDQYDVQQHEwZBdGhlbnMxRDBCBgNVBAoTO0hlbGxlbmljIEFj
YWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9yaXR5
MUQwQgYDVQQDEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0
dXRpb25zIEVDQyBSb290Q0EgMjAxNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABJKg
QehLgoRc4vgxEZmGZE4JJS+dQS8KrjVPdJWyUWRrjWvmP3CV8AVER6ZyOFB2lQJa
jq4onvktTpnvLEhvTCUp6NFxW98dwXU3tNf6e3pCnGoKVlp8aQuqgAkkbH7BRqNC
MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFLQi
C4KZJAEOnLvkDv2/+5cgk5kqMAoGCCqGSM49BAMCA2cAMGQCMGfOFmI4oqxiRaep
lSTAGiecMjvAwNW6qef4BENThe5SId6d9SWDPp5YSy/XZxMOIQIwBeF1Ad5o7Sof
TUwJCA3sS61kFyjndc5FZXIhF8siQQ6ME5g4mlRtm8rifOoCWCKR
-----END CERTIFICATE-----
=== /C=GR/L=Athens/O=Hellenic Academic and Research Institutions Cert. Authority/CN=Hellenic Academic and Research Institutions RootCA 2015
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 0 (0x0)
    Signature Algorithm: sha256WithRSAEncryption
        Validity
            Not Before: Jul  7 10:11:21 2015 GMT
            Not After : Jun 30 10:11:21 2040 GMT
        Subject: C=GR, L=Athens, O=Hellenic Academic and Research Institutions Cert. Authority, CN=Hellenic Academic and Research Institutions RootCA 2015
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Subject Key Identifier: 
                71:15:67:C8:C8:C9:BD:75:5D:72:D0:38:18:6A:9D:F3:71:24:54:0B
SHA1 Fingerprint=01:0C:06:95:A6:98:19:14:FF:BF:5F:C6:B0:B6:95:EA:29:E9:12:A6
SHA256 Fingerprint=A0:40:92:9A:02:CE:53:B4:AC:F4:F2:FF:C6:98:1C:E4:49:6F:75:5E:6D:45:FE:0B:2A:69:2B:CD:52:52:3F:36
-----BEGIN CERTIFICATE-----
MIIGCzCCA/OgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBpjELMAkGA1UEBhMCR1Ix
DzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5k
IFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMT
N0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9v
dENBIDIwMTUwHhcNMTUwNzA3MTAxMTIxWhcNNDAwNjMwMTAxMTIxWjCBpjELMAkG
A1UEBhMCR1IxDzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNh
ZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkx
QDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1
dGlvbnMgUm9vdENBIDIwMTUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
AQDC+Kk/G4n8PDwEXT2QNrCROnk8ZlrvbTkBSRq0t89/TSNTt5AA4xMqKKYx8ZEA
4yjsriFBzh/a/X0SWwGDD7mwX5nh8hKDgE0GPt+sr+ehiGsxr/CL0BgzuNtFajT0
AoAkKAoCFZVedioNmToUW/bLy1O8E00BiDeUJRtCvCLYjqOWXjrZMts+6PAQZe10
4S+nfK8nNLspfZu2zwnI5dMK/IhlZXQK3HMcXM1AsRzUtoSMTFDPaI6oWa7CJ06C
ojXdFPQf/7J31Ycvqm59JCfnxssm5uX+Zwdj2EUN3TpZZTlYepKZcj2chF6IIbjV
9Cz82XBST3i4vTwri5WY9bPRaM8gFH5MXF/ni+X1NYEZN9cRCLdmvtNKzoNXADrD
gfgXy5I2XdGj2HUb4Ysn6npIQf1FGQatJ5lOwXBH3bWfgVMS5bGMSF0xQxfjjMZ6
Y5ZLKTBOhE5iGV48zpeQpX8B653g+IuJ3SWYPZK2fu/Z8VFRfS0myGlZYeCsargq
NhEEelC9MoS+L9xy1dcdFkfkR2YgP/SWxa+OAXqlD3pk9Q0Yh9muiNX6hME6wGko
LfINaFGq46V3xqSQDqE3izEjR8EJCOtu93ib14L8hCCZSRm2Ekax+0VVFqmjZayc
Bw/qa9wfLgZy7IaIEuQt218FL+TwA9MmM+eAws1CoRc0CwIDAQABo0IwQDAPBgNV
HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUcRVnyMjJvXVd
ctA4GGqd83EkVAswDQYJKoZIhvcNAQELBQADggIBAHW7bVRLqhBYRjTyYtcWNl0I
XtVsyIe9tC5G8jH4fOpCtZMWVdyhDBKg2mF+D1hYc2Ryx+hFjtyp8iY/xnmMsVMI
M4GwVhO+5lFc2JsKT0ucVlMC6U/2DWDqTUJV6HwbISHTGzrMd/K4kPFox/la/vot
9L/J9UUbzjgQKjeKeaO04wlshYaT/4mWJ3iBj2fjRnRUjtkNaeJK9E10A/+yd+2V
Z5fkscWrv2oj6NSU4kQoYsRL4vDY4ilrGnB+JGGTe08DMiUNRSQrlrRGar9KC/ea
j8GsGsVn82800vpzY4zvFrCopEYq+OsS7HK07/grfoxSwIuEVPkvPuNVqNxmsdnh
X9izjFk0WaSrT2y7HxjbdavYy5LNlDhhDgcGH0tGEPEVvo2FXDtKK4F5D7Rpn0lQ
l033DlZdwJVqwjbDG2jJ9SrcR5q+ss7FJej6A7na+RZukYT1HCjI/CbM1xyQVqdf
bzoEvM14iQuODy+jqk+iGxI9FghAD/FGTNeqewjBCvVtJ94Cj8rDtSvK6evIIVM4
pcw72Hc3MKJP2W/R8kCtQXoXxdZKNYm3QdV8hn9VTYNKpXMgwDqvkPGaJI7ZjnHK
e7iG2rKPmT4dEw0SEe7Uq/DpFXYC5ODfqiAeW2GFZECpkJcNrVPSWh2HagCXZWK0
vm9qp/UsQu0yrbYhnr68
-----END CERTIFICATE-----
=== /C=GR/O=Hellenic Academic and Research Institutions Cert. Authority/CN=Hellenic Academic and Research Institutions RootCA 2011
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 0 (0x0)
    Signature Algorithm: sha1WithRSAEncryption
        Validity
            Not Before: Dec  6 13:49:52 2011 GMT
            Not After : Dec  1 13:49:52 2031 GMT
        Subject: C=GR, O=Hellenic Academic and Research Institutions Cert. Authority, CN=Hellenic Academic and Research Institutions RootCA 2011
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: 
                Certificate Sign, CRL Sign
            X509v3 Subject Key Identifier: 
                A6:91:42:FD:13:61:4A:23:9E:08:A4:29:E5:D8:13:04:23:EE:41:25
            X509v3 Name Constraints: 
                Permitted:
                  DNS:.gr
                  DNS:.eu
                  DNS:.edu
                  DNS:.org
                  email:.gr
                  email:.eu
                  email:.edu
                  email:.org

SHA1 Fingerprint=FE:45:65:9B:79:03:5B:98:A1:61:B5:51:2E:AC:DA:58:09:48:22:4D
SHA256 Fingerprint=BC:10:4F:15:A4:8B:E7:09:DC:A5:42:A7:E1:D4:B9:DF:6F:05:45:27:E8:02:EA:A9:2D:59:54:44:25:8A:FE:71
-----BEGIN CERTIFICATE-----
MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1Ix
RDBCBgNVBAoTO0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1
dGlvbnMgQ2VydC4gQXV0aG9yaXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1p
YyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIFJvb3RDQSAyMDExMB4XDTExMTIw
NjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYTAkdSMUQwQgYDVQQK
EztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIENl
cnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl
c2VhcmNoIEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBAKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPz
dYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJ
fel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa71HFK9+WXesyHgLacEns
bgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u8yBRQlqD
75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSP
FEDH3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNV
HRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp
5dgTBCPuQSUwRwYDVR0eBEAwPqA8MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQu
b3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQub3JnMA0GCSqGSIb3DQEBBQUA
A4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVtXdMiKahsog2p
6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8
TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7
dIsXRSZMFpGD/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8Acys
Nnq/onN694/BtZqhFLKPM58N7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXI
l7WdmplNsDz4SgCbZN2fOUvRJ9e4
-----END CERTIFICATE-----

### Hongkong Post

=== /C=HK/O=Hongkong Post/CN=Hongkong Post Root CA 1
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 1000 (0x3e8)
    Signature Algorithm: sha1WithRSAEncryption
        Validity
            Not Before: May 15 05:13:14 2003 GMT
            Not After : May 15 04:52:29 2023 GMT
        Subject: C=HK, O=Hongkong Post, CN=Hongkong Post Root CA 1
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:TRUE, pathlen:3
            X509v3 Key Usage: critical
                Digital Signature, Non Repudiation, Certificate Sign, CRL Sign
SHA1 Fingerprint=D6:DA:A8:20:8D:09:D2:15:4D:24:B5:2F:CB:34:6E:B2:58:B2:8A:58
SHA256 Fingerprint=F9:E6:7D:33:6C:51:00:2A:C0:54:C6:32:02:2D:66:DD:A2:E7:E3:FF:F1:0A:D0:61:ED:31:D8:BB:B4:10:CF:B2
-----BEGIN CERTIFICATE-----
MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsx
FjAUBgNVBAoTDUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3Qg
Um9vdCBDQSAxMB4XDTAzMDUxNTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkG
A1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdr
b25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1ApzQ
jVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEn
PzlTCeqrauh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjh
ZY4bXSNmO7ilMlHIhqqhqZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9
nnV0ttgCXjqQesBCNnLsak3c78QA3xMYV18meMjWCnl3v/evt3a5pQuEF10Q6m/h
q5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNVHRMBAf8ECDAGAQH/AgED
MA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7ih9legYsC
mEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI3
7piol7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clB
oiMBdDhViw+5LmeiIAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJs
EhTkYY2sEJCehFC78JZvRZ+K88psT/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpO
fMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilTc4afU9hDDl3WY4JxHYB0yvbi
AmvZWg==
-----END CERTIFICATE-----

### IdenTrust

=== /C=US/O=IdenTrust/CN=IdenTrust Commercial Root CA 1
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            0a:01:42:80:00:00:01:45:23:c8:44:b5:00:00:00:02
    Signature Algorithm: sha256WithRSAEncryption
        Validity
            Not Before: Jan 16 18:12:23 2014 GMT
            Not After : Jan 16 18:12:23 2034 GMT
        Subject: C=US, O=IdenTrust, CN=IdenTrust Commercial Root CA 1
        X509v3 extensions:
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Subject Key Identifier: 
                ED:44:19:C0:D3:F0:06:8B:EE:A4:7B:BE:42:E7:26:54:C8:8E:36:76
SHA1 Fingerprint=DF:71:7E:AA:4A:D9:4E:C9:55:84:99:60:2D:48:DE:5F:BC:F0:3A:25
SHA256 Fingerprint=5D:56:49:9B:E4:D2:E0:8B:CF:CA:D0:8A:3E:38:72:3D:50:50:3B:DE:70:69:48:E4:2F:55:60:30:19:E5:28:AE
-----BEGIN CERTIFICATE-----
MIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBK
MQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVu
VHJ1c3QgQ29tbWVyY2lhbCBSb290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQw
MTE2MTgxMjIzWjBKMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScw
JQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENBIDEwggIiMA0GCSqG
SIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k91DNG8W9RYYKyqU+PZ4ldhNlT
3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1ehm7zCYofWjK9ouuU
+ehcCuz/mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQfYo3fw7gp
S0l4PJNgiCL8mdo2yMKi1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1
bVoE/c40yiTcdCMbXTMTEl3EASX2MN0CXZ/g1Ue9tOsbobtJSdifWwLziuQkkORi
T0/Br4sOdBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl3ZBWzvurpWCdxJ35UrCL
vYf5jysjCiN2O/cz4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzyNeVJSQjK
Vsk9+w8YfYs7wRPCTY/JTw436R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZK
dHzVWYfCP04MXFL0PfdSgvHqo6z9STQaKPNBiDoT7uje/5kdX7rL6B7yuVBgwDHT
c+XvvqDtMwt0viAgxGds8AgDelWAf0ZOlqf0Hj7h9tgJ4TNkK2PXMl6f+cB7D3hv
l7yTmvmcEpB4eoCHFddydJxVdHixuuFucAS6T6C6aMN7/zHwcz09lCqxC0EOoP5N
iGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZIhvcNAQELBQAD
ggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH
6oi6mYtQlNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwt
LRvM7Kqas6pgghstO8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93
nAbowacYXVKV7cndJZ5t+qntozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3
+wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gjmmmVYjzlVYA211QC//G5Xc7UI2/YRYRK
W2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l2xPE4iUXfeu+h1sXIFRRk0pT
AwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lzzY9GvlU47/rokTLq
l1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2gXjtw+hG
4iZZRHUe2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZ
mUlO+KWA2yUPHGNiiskzZ2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A
7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7RcGzM7vRX+Bi6hG6H
-----END CERTIFICATE-----
=== /C=US/O=IdenTrust/CN=IdenTrust Public Sector Root CA 1
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            0a:01:42:80:00:00:01:45:23:cf:46:7c:00:00:00:02
    Signature Algorithm: sha256WithRSAEncryption
        Validity
            Not Before: Jan 16 17:53:32 2014 GMT
            Not After : Jan 16 17:53:32 2034 GMT
        Subject: C=US, O=IdenTrust, CN=IdenTrust Public Sector Root CA 1
        X509v3 extensions:
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Subject Key Identifier: 
                E3:71:E0:9E:D8:A7:42:D9:DB:71:91:6B:94:93:EB:C3:A3:D1:14:A3
SHA1 Fingerprint=BA:29:41:60:77:98:3F:F4:F3:EF:F2:31:05:3B:2E:EA:6D:4D:45:FD
SHA256 Fingerprint=30:D0:89:5A:9A:44:8A:26:20:91:63:55:22:D1:F5:20:10:B5:86:7A:CA:E1:2C:78:EF:95:8F:D4:F4:38:9F:2F
-----BEGIN CERTIFICATE-----
MIIFZjCCA06gAwIBAgIQCgFCgAAAAUUjz0Z8AAAAAjANBgkqhkiG9w0BAQsFADBN
MQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVu
VHJ1c3QgUHVibGljIFNlY3RvciBSb290IENBIDEwHhcNMTQwMTE2MTc1MzMyWhcN
MzQwMTE2MTc1MzMyWjBNMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0
MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3RvciBSb290IENBIDEwggIi
MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2IpT8pEiv6EdrCvsnduTyP4o7
ekosMSqMjbCpwzFrqHd2hCa2rIFCDQjrVVi7evi8ZX3yoG2LqEfpYnYeEe4IFNGy
RBb06tD6Hi9e28tzQa68ALBKK0CyrOE7S8ItneShm+waOh7wCLPQ5CQ1B5+ctMlS
bdsHyo+1W/CD80/HLaXIrcuVIKQxKFdYWuSNG5qrng0M8gozOSI5Cpcu81N3uURF
/YTLNiCBWS2ab21ISGHKTN9T0a9SvESfqy9rg3LvdYDaBjMbXcjaY8ZNzaxmMc3R
3j6HEDbhuaR672BQssvKplbgN6+rNBM5Jeg5ZuSYeqoSmJxZZoY+rfGwyj4GD3vw
EUs3oERte8uojHH01bWRNszwFcYr3lEXsZdMUD2xlVl8BX0tIdUAvwFnol57plzy
9yLxkA2T26pEUWbMfXYD62qoKjgZl3YNa4ph+bz27nb9cCvdKTz4Ch5bQhyLVi9V
GxyhLrXHFub4qjySjmm2AcG1hp2JDws4lFTo6tyePSW8Uybt1as5qsVATFSrsrTZ
2fjXctscvG29ZV/viDUqZi/u9rNl8DONfJhBaUYPQxxp+pu10GFqzcpL2UyQRqsV
WaFHVCkugyhfHMKiq3IXAAaOReyL4jM9f9oZRORicsPfIsbyVtTdX5Vy7W1f90gD
W/3FKqD2cyOEEBsB5wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
BAUwAwEB/zAdBgNVHQ4EFgQU43HgntinQtnbcZFrlJPrw6PRFKMwDQYJKoZIhvcN
AQELBQADggIBAEf63QqwEZE4rU1d9+UOl1QZgkiHVIyqZJnYWv6IAcVYpZmxI1Qj
t2odIFflAWJBF9MJ23XLblSQdf4an4EKwt3X9wnQW3IV5B4Jaj0z8yGa5hV+rVHV
DRDtfULAj+7AmgjVQdZcDiFpboBhDhXAuM/FSRJSzL46zNQuOAXeNf0fb7iAaJg9
TaDKQGXSc3z1i9kKlT/YPyNtGtEqJBnZhbMX73huqVjRI9PHE+1yJX9dsXNw0H8G
lwmEKYBhHfpe/3OsoOOJuBxxFcbeMX8S3OFtm6/n6J91eEyrRjuazr8FGF1NFTwW
mhlQBJqymm9li1JfPFgEKCXAZmExfrngdbkaqIHWchezxQMxNRF4eKLg6TCMf4Df
WN88uieW4oA0beOY02QnrEh+KHdcxiVhJfiFDGX6xDIvpZgF5PgLZxYWxoK4Mhn5
+bl53B/N66+rDt0b20XkeucC4pVd/GnwU2lhlXV5C15V5jgclKlZM57IcXR5f1GJ
tshquDDIajjDbp7hNxbqBWJMWxJH7ae0s1hWx0nzfxJoCTFx8G34Tkf71oXuxVhA
GaQdp/lLQzfcaFpPz+vCZHTetBXZ9FRUGi8c15dxVJCO2SCdUyt/q4/i6jC8UDfv
8Ue1fXwsBOxonbRJRBD0ckscZOf85muQ3Wl9af0AVqW3rLatt8o+Ae+c
-----END CERTIFICATE-----

### Internet Security Research Group

=== /C=US/O=Internet Security Research Group/CN=ISRG Root X1
Certificate:
    Data:
        Version: 3 (0x2)
1969
1970
1971
1972
1973
1974
1975




































































































































































































































































1976
1977
1978
1979
1980
1981
1982
jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc
oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq
4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA
mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d
emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc=
-----END CERTIFICATE-----





































































































































































































































































### NetLock Kft.

=== /C=HU/L=Budapest/O=NetLock Kft./OU=Tan\xC3\xBAs\xC3\xADtv\xC3\xA1nykiad\xC3\xB3k (Certification Services)/CN=NetLock Arany (Class Gold) F\xC5\x91tan\xC3\xBAs\xC3\xADtv\xC3\xA1ny
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 80544274841616 (0x49412ce40010)







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc
oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq
4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA
mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d
emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc=
-----END CERTIFICATE-----

### IZENPE S.A.

=== /C=ES/O=IZENPE S.A./CN=Izenpe.com
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            b0:b7:5a:16:48:5f:bf:e1:cb:f5:8b:d7:19:e6:7d
    Signature Algorithm: sha256WithRSAEncryption
        Validity
            Not Before: Dec 13 13:08:28 2007 GMT
            Not After : Dec 13 08:27:25 2037 GMT
        Subject: C=ES, O=IZENPE S.A., CN=Izenpe.com
        X509v3 extensions:
            X509v3 Subject Alternative Name: 
                email:info@izenpe.com, DirName:/O=IZENPE S.A. - CIF A01337260-RMerc.Vitoria-Gasteiz T1055 F62 S8/street=Avda del Mediterraneo Etorbidea 14 - 01010 Vitoria-Gasteiz
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Subject Key Identifier: 
                1D:1C:65:0E:A8:F2:25:7B:B4:91:CF:E4:B1:B1:E6:BD:55:74:6C:05
SHA1 Fingerprint=2F:78:3D:25:52:18:A7:4A:65:39:71:B5:2C:A2:9C:45:15:6F:E9:19
SHA256 Fingerprint=25:30:CC:8E:98:32:15:02:BA:D9:6F:9B:1F:BA:1B:09:9E:2D:29:9E:0F:45:48:BB:91:4F:36:3B:C0:D4:53:1F
-----BEGIN CERTIFICATE-----
MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4
MQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6
ZW5wZS5jb20wHhcNMDcxMjEzMTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYD
VQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5j
b20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ03rKDx6sp4boFmVq
scIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAKClaO
xdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6H
LmYRY2xU+zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFX
uaOKmMPsOzTFlUFpfnXCPCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQD
yCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxTOTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+
JrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbKF7jJeodWLBoBHmy+E60Q
rLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK0GqfvEyN
BjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8L
hij+0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIB
QFqNeb+Lz0vPqhbBleStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+
HMh3/1uaD7euBUbl8agW7EekFwIDAQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2lu
Zm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+SVpFTlBFIFMuQS4gLSBDSUYg
QTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBGNjIgUzgxQzBB
BgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx
MCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
AQYwHQYDVR0OBBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUA
A4ICAQB4pgwWSp9MiDrAyw6lFn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWb
laQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbgakEyrkgPH7UIBzg/YsfqikuFgba56
awmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8qhT/AQKM6WfxZSzwo
JNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Csg1lw
LDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCT
VyvehQP5aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGk
LhObNA5me0mrZJfQRsN5nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJb
UjWumDqtujWTI6cfSN01RpiyEGjkpTHCClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/
QnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZoQ0iy2+tzJOeRf1SktoA+
naM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1ZWrOZyGls
QyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw==
-----END CERTIFICATE-----

### Japan Certification Services, Inc.

=== /C=JP/O=Japan Certification Services, Inc./CN=SecureSign RootCA11
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 1 (0x1)
    Signature Algorithm: sha1WithRSAEncryption
        Validity
            Not Before: Apr  8 04:56:47 2009 GMT
            Not After : Apr  8 04:56:47 2029 GMT
        Subject: C=JP, O=Japan Certification Services, Inc., CN=SecureSign RootCA11
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                5B:F8:4D:4F:B2:A5:86:D4:3A:D2:F1:63:9A:A0:BE:09:F6:57:B7:DE
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Basic Constraints: critical
                CA:TRUE
SHA1 Fingerprint=3B:C4:9F:48:F8:F3:73:A0:9C:1E:BD:F8:5B:B1:C3:65:C7:D8:11:B3
SHA256 Fingerprint=BF:0F:EE:FB:9E:3A:58:1A:D5:F9:E9:DB:75:89:98:57:43:D2:61:08:5C:4D:31:4F:6F:5D:72:59:AA:42:16:12
-----BEGIN CERTIFICATE-----
MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDEr
MCkGA1UEChMiSmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoG
A1UEAxMTU2VjdXJlU2lnbiBSb290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0
MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSswKQYDVQQKEyJKYXBhbiBDZXJ0aWZp
Y2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1cmVTaWduIFJvb3RD
QTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvLTJsz
i1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8
h9uuywGOwvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOV
MdrAG/LuYpmGYz+/3ZMqg6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9
UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rPO7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni
8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitAbpSACW22s293bzUIUPsC
h8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZXt94wDgYD
VR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEB
AKChOBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xm
KbabfSVSSUOrTC4rbnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQ
X5Ucv+2rIrVls4W6ng+4reV6G4pQOh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWr
QbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01y8hSyn+B/tlr0/cR7SXf+Of5
pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061lgeLKBObjBmN
QSdJQO7e5iNEOdyhIta6A/I=
-----END CERTIFICATE-----

### Krajowa Izba Rozliczeniowa S.A.

=== /C=PL/O=Krajowa Izba Rozliczeniowa S.A./CN=SZAFIR ROOT CA2
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            3e:8a:5d:07:ec:55:d2:32:d5:b7:e3:b6:5f:01:eb:2d:dc:e4:d6:e4
    Signature Algorithm: sha256WithRSAEncryption
        Validity
            Not Before: Oct 19 07:43:30 2015 GMT
            Not After : Oct 19 07:43:30 2035 GMT
        Subject: C=PL, O=Krajowa Izba Rozliczeniowa S.A., CN=SZAFIR ROOT CA2
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Subject Key Identifier: 
                2E:16:A9:4A:18:B5:CB:CC:F5:6F:50:F3:23:5F:F8:5D:E7:AC:F0:C8
SHA1 Fingerprint=E2:52:FA:95:3F:ED:DB:24:60:BD:6E:28:F3:9C:CC:CF:5E:B3:3F:DE
SHA256 Fingerprint=A1:33:9D:33:28:1A:0B:56:E5:57:D3:D3:2B:1C:E7:F9:36:7E:B0:94:BD:5F:A7:2A:7E:50:04:C8:DE:D7:CA:FE
-----BEGIN CERTIFICATE-----
MIIDcjCCAlqgAwIBAgIUPopdB+xV0jLVt+O2XwHrLdzk1uQwDQYJKoZIhvcNAQEL
BQAwUTELMAkGA1UEBhMCUEwxKDAmBgNVBAoMH0tyYWpvd2EgSXpiYSBSb3psaWN6
ZW5pb3dhIFMuQS4xGDAWBgNVBAMMD1NaQUZJUiBST09UIENBMjAeFw0xNTEwMTkw
NzQzMzBaFw0zNTEwMTkwNzQzMzBaMFExCzAJBgNVBAYTAlBMMSgwJgYDVQQKDB9L
cmFqb3dhIEl6YmEgUm96bGljemVuaW93YSBTLkEuMRgwFgYDVQQDDA9TWkFGSVIg
Uk9PVCBDQTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3vD5QqEvN
QLXOYeeWyrSh2gwisPq1e3YAd4wLz32ohswmUeQgPYUM1ljj5/QqGJ3a0a4m7utT
3PSQ1hNKDJA8w/Ta0o4NkjrcsbH/ON7Dui1fgLkCvUqdGw+0w8LBZwPd3BucPbOw
3gAeqDRHu5rr/gsUvTaE2g0gv/pby6kWIK05YO4vdbbnl5z5Pv1+TW9NL++IDWr6
3fE9biCloBK0TXC5ztdyO4mTp4CEHCdJckm1/zuVnsHMyAHs6A6KCpbns6aH5db5
BSsNl0BwPLqsdVqc1U2dAgrSS5tmS0YHF2Wtn2yIANwiieDhZNRnvDF5YTy7ykHN
XGoAyDw4jlivAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD
AgEGMB0GA1UdDgQWBBQuFqlKGLXLzPVvUPMjX/hd56zwyDANBgkqhkiG9w0BAQsF
AAOCAQEAtXP4A9xZWx126aMqe5Aosk3AM0+qmrHUuOQn/6mWmc5G4G18TKI4pAZw
8PRBEew/R40/cof5O/2kbytTAOD/OblqBw7rHRz2onKQy4I9EYKL0rufKq8h5mOG
nXkZ7/e7DDWQw4rtTw/1zBLZpD67oPwglV9PJi8RI4NOdQcPv5vRtB3pEAT+ymCP
oky4rc/hkA/NrgrHXXu3UNLUYfrVFdvXn4dRVOul4+vJhaAlIDf7js4MNIThPIGy
d05DpYhfhmehPea0XGG2Ptv+tyjFogeutcrKjSoS75ftwjCkySp6+/NNIxuZMzSg
LvWpCz/UXeHPhJ/iGcJfitYgHuNztw==
-----END CERTIFICATE-----

### LuxTrust S.A.

=== /C=LU/O=LuxTrust S.A./CN=LuxTrust Global Root 2
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            0a:7e:a6:df:4b:44:9e:da:6a:24:85:9e:e6:b8:15:d3:16:7f:bb:b1
    Signature Algorithm: sha256WithRSAEncryption
        Validity
            Not Before: Mar  5 13:21:57 2015 GMT
            Not After : Mar  5 13:21:57 2035 GMT
        Subject: C=LU, O=LuxTrust S.A., CN=LuxTrust Global Root 2
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Certificate Policies: 
                Policy: 1.3.171.1.1.1.10
                  CPS: https://repository.luxtrust.lu

            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Authority Key Identifier: 
                keyid:FF:18:28:76:F9:48:05:2C:A1:AE:F1:2B:1B:2B:B2:53:F8:4B:7C:B3

            X509v3 Subject Key Identifier: 
                FF:18:28:76:F9:48:05:2C:A1:AE:F1:2B:1B:2B:B2:53:F8:4B:7C:B3
SHA1 Fingerprint=1E:0E:56:19:0A:D1:8B:25:98:B2:04:44:FF:66:8A:04:17:99:5F:3F
SHA256 Fingerprint=54:45:5F:71:29:C2:0B:14:47:C4:18:F9:97:16:8F:24:C5:8F:C5:02:3B:F5:DA:5B:E2:EB:6E:1D:D8:90:2E:D5
-----BEGIN CERTIFICATE-----
MIIFwzCCA6ugAwIBAgIUCn6m30tEntpqJIWe5rgV0xZ/u7EwDQYJKoZIhvcNAQEL
BQAwRjELMAkGA1UEBhMCTFUxFjAUBgNVBAoMDUx1eFRydXN0IFMuQS4xHzAdBgNV
BAMMFkx1eFRydXN0IEdsb2JhbCBSb290IDIwHhcNMTUwMzA1MTMyMTU3WhcNMzUw
MzA1MTMyMTU3WjBGMQswCQYDVQQGEwJMVTEWMBQGA1UECgwNTHV4VHJ1c3QgUy5B
LjEfMB0GA1UEAwwWTHV4VHJ1c3QgR2xvYmFsIFJvb3QgMjCCAiIwDQYJKoZIhvcN
AQEBBQADggIPADCCAgoCggIBANeFl78RmOnwYoNMPIf5U2o3C/IPPIfOb9wmKb3F
ibrJgz337spbxm1Jc7TJRqMbNBM/wYlFV/TZsfs2ZUv7COJIcRHIbjuend+JZTem
hfY7RBi2xjcwYkSSl2l9QjAk5A0MiWtj3sXh306pFGxT4GHO9hcvHTy95iJMHZP1
EMShduxq3sVs35a0VkBCwGKSMKEtFZSg0iAGCW5qbeXrt77U8PEVfIvmTroTzEsn
Xpk8F12PgX8zPU/TPxvsXD/wPEx1bvKm1Z3aLQdjAsZy6ZS8TEmVT4hSyNvoaYL4
zDRbIvCGp4m9SAptZoFtyMhk+wHh9OHe2Z7d21vUKpkmFRseTJIpgp7VkoGSQXAZ
96Tlk0u8d2cx3Rz9MXANF5kM+Qw5GSoXtTBxVdUPrljhPS80m8+f9niFwpN6cj5m
j5wWEWCPnolvZ77gR1o7DJpni89Gxq44o/KnvObWhWszJHAiS8sIm7vI+AIpHb4g
DEa/a4ebsypmQjVGbKq6rfmYe+lQVRQxv7HaLe2ArWgk+2mr2HETMOZns4dA/Yl+
8kPREd8vZS9kzl8UubG/Mb2HeFpZZYiq/FkySIbWTLkpS5XTdvN3JW1CHDiDTf2j
X5t/Lax5Gw5CMZdjpPuKadUiDTSQMC6otOBttpSsvItO13D8xTiOZCXhTTmQzsmH
hFhxAgMBAAGjgagwgaUwDwYDVR0TAQH/BAUwAwEB/zBCBgNVHSAEOzA5MDcGByuB
KwEBAQowLDAqBggrBgEFBQcCARYeaHR0cHM6Ly9yZXBvc2l0b3J5Lmx1eHRydXN0
Lmx1MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBT/GCh2+UgFLKGu8SsbK7JT
+Et8szAdBgNVHQ4EFgQU/xgodvlIBSyhrvErGyuyU/hLfLMwDQYJKoZIhvcNAQEL
BQADggIBAGoZFO1uecEsh9QNcH7X9njJCwROxLHOk3D+sFTAMs2ZMGQXvw/l4jP9
BzZAcg4atmpZ1gDlaCDdLnINH2pkMSCEfUmmWjfrRcmF9dTHF5kH5ptV5AzoqbTO
jFu1EVzPig4N1qx3gf4ynCSecs5U89BvolbW7MM3LGVYvlcAGvI1+ut7MV3CwRI9
loGIlonBWVx65n9wNOeD4rHh4bhY79SV5GCc8JaXcozrhAIuZY+kt9J/Z93I055c
qqmkoCUUBpvsT34tC38ddfEz2O3OuHVtPlu5mB0xDVbYQw8wkbIEa91WvpWAVWe+
2M2D2RjuLg+GLZKecBPs3lHJQ3gCpU3I+V/EkVhGFndadKpAvAefMLmx9xIX3eP/
JEAdemrRTxgKqpAd60Ae36EeRJIQmvKN4dFLRp7oRUKX6kWZ8+xm1QL68qZKJKre
zrnK+T+Tb/mjuuqlPpmt/f97mfVl7vBZKGfXkJWkE4SphMHozs51k2MavDzq1WQf
LSoSOcbDWjLtR5EWDrw4wVDej8oqkDQc7kGUnF4ZLvhFSZl0kbAEb+MEWrGrKqv+
x9CWttrhSmQGbmBNvUJO/3jaJMobtNeWOWyu8Q6qp31IiyBMz2TWuJdGsE7RKlY6
oJO9r4Ak4Ap+58rVyuiFVdw2KuGUaJPHZnJED4AhMmwlxyOAgwrr
-----END CERTIFICATE-----

### Microsec Ltd.

=== /C=HU/L=Budapest/O=Microsec Ltd./CN=Microsec e-Szigno Root CA 2009/emailAddress=info@e-szigno.hu
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 14014712776195784473 (0xc27e43044e473f19)
    Signature Algorithm: sha256WithRSAEncryption
        Validity
            Not Before: Jun 16 11:30:18 2009 GMT
            Not After : Dec 30 11:30:18 2029 GMT
        Subject: C=HU, L=Budapest, O=Microsec Ltd., CN=Microsec e-Szigno Root CA 2009/emailAddress=info@e-szigno.hu
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Subject Key Identifier: 
                CB:0F:C6:DF:42:43:CC:3D:CB:B5:48:23:A1:1A:7A:A6:2A:BB:34:68
            X509v3 Authority Key Identifier: 
                keyid:CB:0F:C6:DF:42:43:CC:3D:CB:B5:48:23:A1:1A:7A:A6:2A:BB:34:68

            X509v3 Subject Alternative Name: 
                email:info@e-szigno.hu
SHA1 Fingerprint=89:DF:74:FE:5C:F4:0F:4A:80:F9:E3:37:7D:54:DA:91:E1:01:31:8E
SHA256 Fingerprint=3C:5F:81:FE:A5:FA:B8:2C:64:BF:A2:EA:EC:AF:CD:E8:E0:77:FC:86:20:A7:CA:E5:37:16:3D:F3:6E:DB:F3:78
-----BEGIN CERTIFICATE-----
MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYD
VQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0
ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0G
CSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTAeFw0wOTA2MTYxMTMwMThaFw0y
OTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3Qx
FjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3pp
Z25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o
dTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvP
kd6mJviZpWNwrZuuyjNAfW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tc
cbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG0IMZfcChEhyVbUr02MelTTMuhTlAdX4U
fIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKApxn1ntxVUwOXewdI/5n7
N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm1HxdrtbC
xkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1
+rUCAwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G
A1UdDgQWBBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPM
Pcu1SCOhGnqmKrs0aDAbBgNVHREEFDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqG
SIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0olZMEyL/azXm4Q5DwpL7v8u8h
mLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfXI/OMn74dseGk
ddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775
tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c
2Pm2G2JwCz02yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5t
HMN1Rq41Bab2XD0h7lbwyYIiLXpUq3DDfSJlgnCW
-----END CERTIFICATE-----

### NetLock Kft.

=== /C=HU/L=Budapest/O=NetLock Kft./OU=Tan\xC3\xBAs\xC3\xADtv\xC3\xA1nykiad\xC3\xB3k (Certification Services)/CN=NetLock Arany (Class Gold) F\xC5\x91tan\xC3\xBAs\xC3\xADtv\xC3\xA1ny
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 80544274841616 (0x49412ce40010)
2066
2067
2068
2069
2070
2071
2072






















































































































































2073
2074
2075
2076
2077
2078
2079
6fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q4LqILPxFzBiwmZVRDuwduIj/
h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/GGUsyfJj4akH
/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv
wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHN
pGxlaKFJdlxDydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey
-----END CERTIFICATE-----























































































































































### QuoVadis Limited

=== /C=BM/O=QuoVadis Limited/CN=QuoVadis Root CA 1 G3
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
6fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q4LqILPxFzBiwmZVRDuwduIj/
h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/GGUsyfJj4akH
/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv
wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHN
pGxlaKFJdlxDydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey
-----END CERTIFICATE-----

### OpenTrust

=== /C=FR/O=OpenTrust/CN=OpenTrust Root CA G1
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            11:20:b3:90:55:39:7d:7f:36:6d:64:c2:a7:9f:6b:63:8e:67
    Signature Algorithm: sha256WithRSAEncryption
        Validity
            Not Before: May 26 08:45:50 2014 GMT
            Not After : Jan 15 00:00:00 2038 GMT
        Subject: C=FR, O=OpenTrust, CN=OpenTrust Root CA G1
        X509v3 extensions:
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Subject Key Identifier: 
                97:46:21:57:21:35:DA:36:55:C7:F3:F1:37:70:E5:08:F6:93:29:B6
            X509v3 Authority Key Identifier: 
                keyid:97:46:21:57:21:35:DA:36:55:C7:F3:F1:37:70:E5:08:F6:93:29:B6

SHA1 Fingerprint=79:91:E8:34:F7:E2:EE:DD:08:95:01:52:E9:55:2D:14:E9:58:D5:7E
SHA256 Fingerprint=56:C7:71:28:D9:8C:18:D9:1B:4C:FD:FF:BC:25:EE:91:03:D4:75:8E:A2:AB:AD:82:6A:90:F3:45:7D:46:0E:B4
-----BEGIN CERTIFICATE-----
MIIFbzCCA1egAwIBAgISESCzkFU5fX82bWTCp59rY45nMA0GCSqGSIb3DQEBCwUA
MEAxCzAJBgNVBAYTAkZSMRIwEAYDVQQKDAlPcGVuVHJ1c3QxHTAbBgNVBAMMFE9w
ZW5UcnVzdCBSb290IENBIEcxMB4XDTE0MDUyNjA4NDU1MFoXDTM4MDExNTAwMDAw
MFowQDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCU9wZW5UcnVzdDEdMBsGA1UEAwwU
T3BlblRydXN0IFJvb3QgQ0EgRzEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
AoICAQD4eUbalsUwXopxAy1wpLuwxQjczeY1wICkES3d5oeuXT2R0odsN7faYp6b
wiTXj/HbpqbfRm9RpnHLPhsxZ2L3EVs0J9V5ToybWL0iEA1cJwzdMOWo010hOHQX
/uMftk87ay3bfWAfjH1MBcLrARYVmBSO0ZB3Ij/swjm4eTrwSSTilZHcYTSSjFR0
77F9jAHiOH3BX2pfJLKOYheteSCtqx234LSWSE9mQxAGFiQD4eCcjsZGT44ameGP
uY4zbGneWK2gDqdkVBFpRGZPTBKnjix9xNRbxQA0MMHZmf4yzgeEtE7NCv82TWLx
p2NX5Ntqp66/K7nJ5rInieV+mhxNaMbBGN4zK1FGSxyO9z0M+Yo0FMT7MzUj8czx
Kselu7Cizv5Ta01BG2Yospb6p64KTrk5M0ScdMGTHPjgniQlQ/GbI4Kq3ywgsNw2
TgOzfALU5nsaqocTvz6hdLubDuHAk5/XpGbKuxs74zD0M1mKB3IDVedzagMxbm+W
G+Oin6+Sx+31QrclTDsTBM8clq8cIqPQqwWyTBIjUtz9GVsnnB47ev1CI9sjgBPw
vFEVVJSmdz7QdFG9URQIOTfLHzSpMJ1ShC5VkLG631UAC9hWLbFJSXKAqWLXwPYY
EQRVzXR7z2FwefR7LFxckvzluFqrTJOVoSfupb7PcSNCupt2LQIDAQABo2MwYTAO
BgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUl0YhVyE1
2jZVx/PxN3DlCPaTKbYwHwYDVR0jBBgwFoAUl0YhVyE12jZVx/PxN3DlCPaTKbYw
DQYJKoZIhvcNAQELBQADggIBAB3dAmB84DWn5ph76kTOZ0BP8pNuZtQ5iSas000E
PLuHIT839HEl2ku6q5aCgZG27dmxpGWX4m9kWaSW7mDKHyP7Rbr/jyTwyqkxf3kf
gLMtMrpkZ2CvuVnN35pJ06iCsfmYlIrM4LvgBBuZYLFGZdwIorJGnkSI6pN+VxbS
FXJfLkur1J1juONI5f6ELlgKn0Md/rcYkoZDSw6cMoYsYPXpSOqV7XAp8dUv/TW0
V8/bhUiZucJvbI/NeJWsZCj9VrDDb8O+WVLhX4SPgPL0DTatdrOjteFkdjpY3H1P
XlZs5VVZV6Xf8YpmMIzUUmI4d7S+KNfKNsSbBfD4Fdvb8e80nR14SohWZ25g/4/I
i+GOvUKpMwpZQhISKvqxnUOOBZuZ2mKtVzazHbYNeS2WuOvyDEsMpZTGMKcmGS3t
TAZQMPH9WD25SxdfGbRqhFS0OE85og2WaMMolP3tLR9Ka0OWLpABEPs4poEL0L91
09S5zvE/bw4cHjdx5RiHdRk/ULlepEU0rbDK5uUTdg8xFKmOLZTW1YVNcxVPS/Ky
Pu1svf0OnWZzsD2097+o4BGkxK51CUpjAEggpsadCwmKtODmzj7HPiY46SvepghJ
AwSQiumPv+i2tCqjI40cHLI5kqiPAlxAOXXUc0ECd97N4EOH1uS6SsNsEn/+KuYj
1oxx
-----END CERTIFICATE-----
=== /C=FR/O=OpenTrust/CN=OpenTrust Root CA G2
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            11:20:a1:69:1b:bf:bd:b9:bd:52:96:8f:23:e8:48:bf:26:11
    Signature Algorithm: sha512WithRSAEncryption
        Validity
            Not Before: May 26 00:00:00 2014 GMT
            Not After : Jan 15 00:00:00 2038 GMT
        Subject: C=FR, O=OpenTrust, CN=OpenTrust Root CA G2
        X509v3 extensions:
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Subject Key Identifier: 
                6A:39:FA:42:22:F7:E6:89:00:4D:5E:7D:33:83:CB:B8:6E:77:86:AF
            X509v3 Authority Key Identifier: 
                keyid:6A:39:FA:42:22:F7:E6:89:00:4D:5E:7D:33:83:CB:B8:6E:77:86:AF

SHA1 Fingerprint=79:5F:88:60:C5:AB:7C:3D:92:E6:CB:F4:8D:E1:45:CD:11:EF:60:0B
SHA256 Fingerprint=27:99:58:29:FE:6A:75:15:C1:BF:E8:48:F9:C4:76:1D:B1:6C:22:59:29:25:7B:F4:0D:08:94:F2:9E:A8:BA:F2
-----BEGIN CERTIFICATE-----
MIIFbzCCA1egAwIBAgISESChaRu/vbm9UpaPI+hIvyYRMA0GCSqGSIb3DQEBDQUA
MEAxCzAJBgNVBAYTAkZSMRIwEAYDVQQKDAlPcGVuVHJ1c3QxHTAbBgNVBAMMFE9w
ZW5UcnVzdCBSb290IENBIEcyMB4XDTE0MDUyNjAwMDAwMFoXDTM4MDExNTAwMDAw
MFowQDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCU9wZW5UcnVzdDEdMBsGA1UEAwwU
T3BlblRydXN0IFJvb3QgQ0EgRzIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
AoICAQDMtlelM5QQgTJT32F+D3Y5z1zCU3UdSXqWON2ic2rxb95eolq5cSG+Ntmh
/LzubKh8NBpxGuga2F8ORAbtp+Dz0mEL4DKiltE48MLaARf85KxP6O6JHnSrT78e
CbY2albz4e6WiWYkBuTNQjpK3eCasMSCRbP+yatcfD7J6xcvDH1urqWPyKwlCm/6
1UWY0jUJ9gNDlP7ZvyCVeYCYitmJNbtRG6Q3ffyZO6v/v6wNj0OxmXsWEH4db0fE
FY8ElggGQgT4hNYdvJGmQr5J1WqIP7wtUdGejeBSzFfdNTVY27SPJIjki9/ca1TS
gSuyzpJLHB9G+h3Ykst2Z7UJmQnlrBcUVXDGPKBWCgOz3GIZ38i1MH/1PCZ1Eb3X
G7OHngevZXHloM8apwkQHZOJZlvoPGIytbU6bumFAYueQ4xncyhZW+vj3CzMpSZy
YhK05pyDRPZRpOLAeiRXyg6lPzq1O4vldu5w5pLeFlwoW5cZJ5L+epJUzpM5ChaH
vGOz9bGTXOBut9Dq+WIyiET7vycotjCVXRIouZW+j1MY5aIYFuJWpLIsEPUdN6b4
t/bQWVyJ98LVtZR00dX+G7bw5tYee9I8y6jj9RjzIR9u701oBnstXW5DiabA+aC/
gh7PU3+06yzbXfZqfUAkBXKJOAGTy3HCOV0GEfZvePg3DTmEJwIDAQABo2MwYTAO
BgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUajn6QiL3
5okATV59M4PLuG53hq8wHwYDVR0jBBgwFoAUajn6QiL35okATV59M4PLuG53hq8w
DQYJKoZIhvcNAQENBQADggIBAJjLq0A85TMCl38th6aP1F5Kr7ge57tx+4BkJamz
Gj5oXScmp7oq4fBXgwpkTx4idBvpkF/wrM//T2h6OKQQbA2xx6R3gBi2oihEdqc0
nXGEL8pZ0keImUEiyTCYYW49qKgFbdEfwFFEVn8nNQLdXpgKQuswv42hm1GqO+qT
RmTFAHneIWv2V6CG1wZy7HBGS4tz3aAhdT7cHcCP009zHIXZ/n9iyJVvttN7jLpT
wm+bREx50B1ws9efAvSyB7DH5fitIw6mVskpEndI2S9G/Tvw/HRwkqWOOAgfZDC2
t0v7NqwQjqBSM2OdAzVWxWm9xiNaJ5T2pBL4LTM8oValX9YZ6e18CL13zSdkzJTa
TkZQh+D5wVOAHrut+0dSixv9ovneDiK3PTNZbNTe9ZUGMg1RGUFcPk8G97krgCf2
o6p6fAbhQ8MTOWIaNr3gKC6UAuQpLmBVrkA9sHSSXvAgZJY/X0VdiLWK2gKgW0VU
3jg9CcCoSmVGFvyqv1ROTVu+OEO3KMqLM6oaJbolXCkvW0pujOotnCr2BXbgd5eA
iN1nE28daCSLT7d0geX0YJ96Vdc+N9oWaz53rK4YcJUIeSkDiv7BO7M/Gg+kO14f
WKGVyasvc0rQLW6aWQ9VGHgtPFGml4vmu7JwqkwR3v98KzfUetF3NI/n+UL3PIEM
S1IK
-----END CERTIFICATE-----
=== /C=FR/O=OpenTrust/CN=OpenTrust Root CA G3
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            11:20:e6:f8:4c:fc:24:b0:be:05:40:ac:da:83:1b:34:60:3f
    Signature Algorithm: ecdsa-with-SHA384
        Validity
            Not Before: May 26 00:00:00 2014 GMT
            Not After : Jan 15 00:00:00 2038 GMT
        Subject: C=FR, O=OpenTrust, CN=OpenTrust Root CA G3
        X509v3 extensions:
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Subject Key Identifier: 
                47:77:C3:14:8B:62:39:0C:C9:6F:E1:50:4D:D0:10:58:DC:95:88:6D
            X509v3 Authority Key Identifier: 
                keyid:47:77:C3:14:8B:62:39:0C:C9:6F:E1:50:4D:D0:10:58:DC:95:88:6D

SHA1 Fingerprint=6E:26:64:F3:56:BF:34:55:BF:D1:93:3F:7C:01:DE:D8:13:DA:8A:A6
SHA256 Fingerprint=B7:C3:62:31:70:6E:81:07:8C:36:7C:B8:96:19:8F:1E:32:08:DD:92:69:49:DD:8F:57:09:A4:10:F7:5B:62:92
-----BEGIN CERTIFICATE-----
MIICITCCAaagAwIBAgISESDm+Ez8JLC+BUCs2oMbNGA/MAoGCCqGSM49BAMDMEAx
CzAJBgNVBAYTAkZSMRIwEAYDVQQKDAlPcGVuVHJ1c3QxHTAbBgNVBAMMFE9wZW5U
cnVzdCBSb290IENBIEczMB4XDTE0MDUyNjAwMDAwMFoXDTM4MDExNTAwMDAwMFow
QDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCU9wZW5UcnVzdDEdMBsGA1UEAwwUT3Bl
blRydXN0IFJvb3QgQ0EgRzMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARK7liuTcpm
3gY6oxH84Bjwbhy6LTAMidnW7ptzg6kjFYwvWYpa3RTqnVkrQ7cG7DK2uu5Bta1d
oYXM6h0UZqNnfkbilPPntlahFVmhTzeXuSIevRHr9LIfXsMUmuXZl5mjYzBhMA4G
A1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRHd8MUi2I5
DMlv4VBN0BBY3JWIbTAfBgNVHSMEGDAWgBRHd8MUi2I5DMlv4VBN0BBY3JWIbTAK
BggqhkjOPQQDAwNpADBmAjEAj6jcnboMBBf6Fek9LykBl7+BFjNAk2z8+e2AcG+q
j9uEwov1NcoG3GRvaBbhj5G5AjEA2Euly8LQCGzpGPta3U1fJAuwACEl74+nBCZx
4nxp5V2a+EEfOzmTk51V6s2N8fvB
-----END CERTIFICATE-----

### QuoVadis Limited

=== /C=BM/O=QuoVadis Limited/CN=QuoVadis Root CA 1 G3
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
mQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi5upZIof4l/UO/erMkqQW
xFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi5nrQNiOK
SnQ2+Q==
-----END CERTIFICATE-----

### SECOM Trust Systems CO.,LTD.

=== /C=JP/O=SECOM Trust Systems CO.,LTD./OU=Security Communication EV RootCA1
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 0 (0x0)
    Signature Algorithm: sha1WithRSAEncryption
        Validity
            Not Before: Jun  6 02:12:32 2007 GMT
            Not After : Jun  6 02:12:32 2037 GMT
        Subject: C=JP, O=SECOM Trust Systems CO.,LTD., OU=Security Communication EV RootCA1
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                35:4A:F5:4D:AF:3F:D7:82:38:AC:AB:71:65:17:75:8C:9D:55:93:E6
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Basic Constraints: critical
                CA:TRUE
SHA1 Fingerprint=FE:B8:C4:32:DC:F9:76:9A:CE:AE:3D:D8:90:8F:FD:28:86:65:64:7D
SHA256 Fingerprint=A2:2D:BA:68:1E:97:37:6E:2D:39:7D:72:8A:AE:3A:9B:62:96:B9:FD:BA:60:BC:2E:11:F6:47:F2:C6:75:FB:37
-----BEGIN CERTIFICATE-----
MIIDfTCCAmWgAwIBAgIBADANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJKUDEl
MCMGA1UEChMcU0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEqMCgGA1UECxMh
U2VjdXJpdHkgQ29tbXVuaWNhdGlvbiBFViBSb290Q0ExMB4XDTA3MDYwNjAyMTIz
MloXDTM3MDYwNjAyMTIzMlowYDELMAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09N
IFRydXN0IFN5c3RlbXMgQ08uLExURC4xKjAoBgNVBAsTIVNlY3VyaXR5IENvbW11
bmljYXRpb24gRVYgUm9vdENBMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
ggEBALx/7FebJOD+nLpCeamIivqA4PUHKUPqjgo0No0c+qe1OXj/l3X3L+SqawSE
RMqm4miO/VVQYg+kcQ7OBzgtQoVQrTyWb4vVog7P3kmJPdZkLjjlHmy1V4qe70gO
zXppFodEtZDkBp2uoQSXWHnvIEqCa4wiv+wfD+mEce3xDuS4GBPMVjZd0ZoeUWs5
bmB2iDQL87PRsJ3KYeJkHcFGB7hj3R4zZbOOCVVSPbW9/wfrrWFVGCypaZhKqkDF
MxRldAD5kd6vA0jFQFTcD4SQaCDFkpbcLuUCRarAX1T4bepJz11sS6/vmsJWXMY1
VkJqMF/Cq/biPT+zyRGPMUzXn0kCAwEAAaNCMEAwHQYDVR0OBBYEFDVK9U2vP9eC
OKyrcWUXdYydVZPmMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0G
CSqGSIb3DQEBBQUAA4IBAQCoh+ns+EBnXcPBZsdAS5f8hxOQWsTvoMpfi7ent/HW
tWS3irO4G8za+6xmiEHO6Pzk2x6Ipu0nUBsCMCRGef4Eh3CXQHPRwMFXGZpppSeZ
q51ihPZRwSzJIxXYKLerJRO1RuGGAv8mjMSIkh1W/hln8lXkgKNrnKt34VFxDSDb
EJrbvXZ5B3eZKK2aXtqxT0QsNY6llsf9g/BYxnnWmHyojf6GPgcWkuF75x3sM3Z+
Qi5KhfmRiWiEA4Glm5q+4zfFVKtWOxgtQaQM+ELbmaDgcm+7XeEWT1MKZPlO9L9O
VL14bIjqv5wTJMJwaaJ/D8g8rQjJsJhAoyrniIPtd490
-----END CERTIFICATE-----
=== /C=JP/O=SECOM Trust Systems CO.,LTD./OU=Security Communication RootCA2
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 0 (0x0)
    Signature Algorithm: sha256WithRSAEncryption
        Validity







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







4413
4414
4415
4416
4417
4418
4419








































4420
4421
4422
4423
4424
4425
4426
mQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi5upZIof4l/UO/erMkqQW
xFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi5nrQNiOK
SnQ2+Q==
-----END CERTIFICATE-----

### SECOM Trust Systems CO.,LTD.









































=== /C=JP/O=SECOM Trust Systems CO.,LTD./OU=Security Communication RootCA2
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 0 (0x0)
    Signature Algorithm: sha256WithRSAEncryption
        Validity
2538
2539
2540
2541
2542
2543
2544


















































































































































































































































































































































































































































































































2545
2546
2547
2548
2549
2550
2551
AQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vG
kl3g0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfr
Uj94nK9NrvjVT8+amCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5
Bw+SUEmK3TGXX8npN6o7WWWXlDLJs58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJU
JRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ6rBK+1YWc26sTfcioU+tHXot
RSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAiFL39vmwLAw==
-----END CERTIFICATE-----



















































































































































































































































































































































































































































































































### Starfield Technologies, Inc.

=== /C=US/O=Starfield Technologies, Inc./OU=Starfield Class 2 Certification Authority
Certificate:
    Data:
        Version: 3 (0x2)







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4507
4508
4509
4510
4511
4512
4513
4514
4515
4516
4517
4518
4519
4520
4521
4522
4523
4524
4525
4526
4527
4528
4529
4530
4531
4532
4533
4534
4535
4536
4537
4538
4539
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564
4565
4566
4567
4568
4569
4570
4571
4572
4573
4574
4575
4576
4577
4578
4579
4580
4581
4582
4583
4584
4585
4586
4587
4588
4589
4590
4591
4592
4593
4594
4595
4596
4597
4598
4599
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614
4615
4616
4617
4618
4619
4620
4621
4622
4623
4624
4625
4626
4627
4628
4629
4630
4631
4632
4633
4634
4635
4636
4637
4638
4639
4640
4641
4642
4643
4644
4645
4646
4647
4648
4649
4650
4651
4652
4653
4654
4655
4656
4657
4658
4659
4660
4661
4662
4663
4664
4665
4666
4667
4668
4669
4670
4671
4672
4673
4674
4675
4676
4677
4678
4679
4680
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
4708
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718
4719
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
4773
4774
4775
4776
4777
4778
4779
4780
4781
4782
4783
4784
4785
4786
4787
4788
4789
4790
4791
4792
4793
4794
4795
4796
4797
4798
4799
4800
4801
4802
4803
4804
4805
4806
4807
4808
4809
4810
4811
4812
4813
4814
4815
4816
4817
4818
4819
4820
4821
4822
4823
4824
4825
4826
4827
4828
4829
4830
4831
4832
4833
4834
4835
4836
4837
4838
4839
4840
4841
4842
4843
4844
4845
4846
4847
4848
4849
4850
4851
4852
4853
4854
4855
4856
4857
4858
4859
4860
4861
4862
4863
4864
4865
4866
4867
4868
4869
4870
4871
4872
4873
4874
4875
4876
4877
4878
4879
4880
4881
4882
4883
4884
4885
4886
4887
4888
4889
4890
4891
4892
4893
4894
4895
4896
4897
4898
4899
4900
4901
4902
4903
4904
4905
4906
4907
4908
4909
4910
4911
4912
4913
4914
4915
4916
4917
4918
4919
4920
4921
4922
4923
4924
4925
4926
4927
4928
4929
4930
4931
4932
4933
4934
4935
4936
4937
4938
4939
4940
4941
4942
4943
4944
4945
4946
4947
4948
4949
4950
4951
4952
4953
4954
4955
4956
4957
4958
4959
4960
4961
4962
4963
4964
4965
4966
4967
4968
4969
4970
4971
4972
4973
4974
4975
4976
4977
4978
4979
4980
4981
4982
4983
4984
4985
4986
4987
4988
4989
4990
4991
4992
4993
4994
4995
4996
4997
4998
4999
5000
5001
5002
5003
5004
5005
5006
AQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vG
kl3g0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfr
Uj94nK9NrvjVT8+amCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5
Bw+SUEmK3TGXX8npN6o7WWWXlDLJs58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJU
JRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ6rBK+1YWc26sTfcioU+tHXot
RSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAiFL39vmwLAw==
-----END CERTIFICATE-----

### SecureTrust Corporation

=== /C=US/O=SecureTrust Corporation/CN=Secure Global CA
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            07:56:22:a4:e8:d4:8a:89:4d:f4:13:c8:f0:f8:ea:a5
    Signature Algorithm: sha1WithRSAEncryption
        Validity
            Not Before: Nov  7 19:42:28 2006 GMT
            Not After : Dec 31 19:52:06 2029 GMT
        Subject: C=US, O=SecureTrust Corporation, CN=Secure Global CA
        X509v3 extensions:
            1.3.6.1.4.1.311.20.2: 
                ...C.A
            X509v3 Key Usage: 
                Digital Signature, Certificate Sign, CRL Sign
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Subject Key Identifier: 
                AF:44:04:C2:41:7E:48:83:DB:4E:39:02:EC:EC:84:7A:E6:CE:C9:A4
            X509v3 CRL Distribution Points: 

                Full Name:
                  URI:http://crl.securetrust.com/SGCA.crl

            1.3.6.1.4.1.311.21.1: 
                ...
SHA1 Fingerprint=3A:44:73:5A:E5:81:90:1F:24:86:61:46:1E:3B:9C:C4:5F:F5:3A:1B
SHA256 Fingerprint=42:00:F5:04:3A:C8:59:0E:BB:52:7D:20:9E:D1:50:30:29:FB:CB:D4:1C:A1:B5:06:EC:27:F1:5A:DE:7D:AC:69
-----BEGIN CERTIFICATE-----
MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBK
MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x
GTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkx
MjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3Qg
Q29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwggEiMA0GCSqG
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jxYDiJ
iQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa
/FHtaMbQbqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJ
jnIFHovdRIWCQtBJwB1g8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnI
HmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYVHDGA76oYa8J719rO+TMg1fW9ajMtgQT7
sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi0XPnj3pDAgMBAAGjgZ0w
gZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQF
MAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCsw
KaAnoCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsG
AQQBgjcVAQQDAgEAMA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0L
URYD7xh8yOOvaliTFGCRsoTciE6+OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXO
H0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cnCDpOGR86p1hcF895P4vkp9Mm
I50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/53CYNv6ZHdAbY
iNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc
f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW
-----END CERTIFICATE-----
=== /C=US/O=SecureTrust Corporation/CN=SecureTrust CA
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            0c:f0:8e:5c:08:16:a5:ad:42:7f:f0:eb:27:18:59:d0
    Signature Algorithm: sha1WithRSAEncryption
        Validity
            Not Before: Nov  7 19:31:18 2006 GMT
            Not After : Dec 31 19:40:55 2029 GMT
        Subject: C=US, O=SecureTrust Corporation, CN=SecureTrust CA
        X509v3 extensions:
            1.3.6.1.4.1.311.20.2: 
                ...C.A
            X509v3 Key Usage: 
                Digital Signature, Certificate Sign, CRL Sign
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Subject Key Identifier: 
                42:32:B6:16:FA:04:FD:FE:5D:4B:7A:C3:FD:F7:4C:40:1D:5A:43:AF
            X509v3 CRL Distribution Points: 

                Full Name:
                  URI:http://crl.securetrust.com/STCA.crl

            1.3.6.1.4.1.311.21.1: 
                ...
SHA1 Fingerprint=87:82:C6:C3:04:35:3B:CF:D2:96:92:D2:59:3E:7D:44:D9:34:FF:11
SHA256 Fingerprint=F1:C1:B5:0A:E5:A2:0D:D8:03:0E:C9:F6:BC:24:82:3D:D3:67:B5:25:57:59:B4:E7:1B:61:FC:E9:F7:37:5D:73
-----BEGIN CERTIFICATE-----
MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBI
MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x
FzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIz
MTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENv
cnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCCASIwDQYJKoZIhvcN
AQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQXOZEz
Zum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO
0gMdA+9tDWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIao
wW8xQmxSPmjL8xk037uHGFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj
7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b01k/unK8RCSc43Oz969XL0Imnal0ugBS
8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmHursCAwEAAaOBnTCBmjAT
BgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB
/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCeg
JYYjaHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGC
NxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt3
6Z3q059c4EVlew3KW+JwULKUBRSuSceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/
3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHfmbx8IVQr5Fiiu1cprp6poxkm
D5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZnMUFdAvnZyPS
CPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR
3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE=
-----END CERTIFICATE-----

### Sonera

=== /C=FI/O=Sonera/CN=Sonera Class2 CA
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 29 (0x1d)
    Signature Algorithm: sha1WithRSAEncryption
        Validity
            Not Before: Apr  6 07:29:40 2001 GMT
            Not After : Apr  6 07:29:40 2021 GMT
        Subject: C=FI, O=Sonera, CN=Sonera Class2 CA
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Subject Key Identifier: 
                4A:A0:AA:58:84:D3:5E:3C
            X509v3 Key Usage: 
                Certificate Sign, CRL Sign
SHA1 Fingerprint=37:F7:6D:E6:07:7C:90:C5:B1:3E:93:1A:B7:41:10:B4:F2:E4:9A:27
SHA256 Fingerprint=79:08:B4:03:14:C1:38:10:0B:51:8D:07:35:80:7F:FB:FC:F8:51:8A:00:95:33:71:05:BA:38:6B:15:3D:D9:27
-----BEGIN CERTIFICATE-----
MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEP
MA0GA1UEChMGU29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAx
MDQwNjA3Mjk0MFoXDTIxMDQwNjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNV
BAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJhIENsYXNzMiBDQTCCASIwDQYJKoZI
hvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3/Ei9vX+ALTU74W+o
Z6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybTdXnt
5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s
3TmVToMGf+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2Ej
vOr7nQKV0ba5cTppCD8PtOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu
8nYybieDwnPz3BjotJPqdURrBGAgcVeHnfO+oJAjPYok4doh28MCAwEAAaMzMDEw
DwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITTXjwwCwYDVR0PBAQDAgEG
MA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt0jSv9zil
zqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/
3DEIcbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvD
FNr450kkkdAdavphOe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6
Tk6ezAyNlNzZRZxe7EJQY670XcSxEtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2
ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLHllpwrN9M
-----END CERTIFICATE-----

### SSL Corporation

=== /C=US/ST=Texas/L=Houston/O=SSL Corporation/CN=SSL.com EV Root Certification Authority ECC
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 3182246526754555285 (0x2c299c5b16ed0595)
    Signature Algorithm: ecdsa-with-SHA256
        Validity
            Not Before: Feb 12 18:15:23 2016 GMT
            Not After : Feb 12 18:15:23 2041 GMT
        Subject: C=US, ST=Texas, L=Houston, O=SSL Corporation, CN=SSL.com EV Root Certification Authority ECC
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                5B:CA:5E:E5:DE:D2:81:AA:CD:A8:2D:64:51:B6:D9:72:9B:97:E6:4F
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Authority Key Identifier: 
                keyid:5B:CA:5E:E5:DE:D2:81:AA:CD:A8:2D:64:51:B6:D9:72:9B:97:E6:4F

            X509v3 Key Usage: critical
                Digital Signature, Certificate Sign, CRL Sign
SHA1 Fingerprint=4C:DD:51:A3:D1:F5:20:32:14:B0:C6:C5:32:23:03:91:C7:46:42:6D
SHA256 Fingerprint=22:A2:C1:F7:BD:ED:70:4C:C1:E7:01:B5:F4:08:C3:10:88:0F:E9:56:B5:DE:2A:4A:44:F9:9C:87:3A:25:A7:C8
-----BEGIN CERTIFICATE-----
MIIClDCCAhqgAwIBAgIILCmcWxbtBZUwCgYIKoZIzj0EAwIwfzELMAkGA1UEBhMC
VVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9T
U0wgQ29ycG9yYXRpb24xNDAyBgNVBAMMK1NTTC5jb20gRVYgUm9vdCBDZXJ0aWZp
Y2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEyMTgxNTIzWhcNNDEwMjEyMTgx
NTIzWjB/MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hv
dXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjE0MDIGA1UEAwwrU1NMLmNv
bSBFViBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49
AgEGBSuBBAAiA2IABKoSR5CYG/vvw0AHgyBO8TCCogbR8pKGYfL2IWjKAMTH6kMA
VIbc/R/fALhBYlzccBYy3h+Z1MzFB8gIH2EWB1E9fVwHU+M1OIzfzZ/ZLg1Kthku
WnBaBu2+8KGwytAJKaNjMGEwHQYDVR0OBBYEFFvKXuXe0oGqzagtZFG22XKbl+ZP
MA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUW8pe5d7SgarNqC1kUbbZcpuX
5k8wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2gAMGUCMQCK5kCJN+vp1RPZ
ytRrJPOwPYdGWBrssd9v+1a6cGvHOMzosYxPD/fxZ3YOg9AeUY8CMD32IygmTMZg
h5Mmm7I1HrrW9zzRHM76JTymGoEVW/MSD2zuZYrJh6j5B+BimoxcSg==
-----END CERTIFICATE-----
=== /C=US/ST=Texas/L=Houston/O=SSL Corporation/CN=SSL.com EV Root Certification Authority RSA R2
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 6248227494352943350 (0x56b629cd34bc78f6)
    Signature Algorithm: sha256WithRSAEncryption
        Validity
            Not Before: May 31 18:14:37 2017 GMT
            Not After : May 30 18:14:37 2042 GMT
        Subject: C=US, ST=Texas, L=Houston, O=SSL Corporation, CN=SSL.com EV Root Certification Authority RSA R2
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Authority Key Identifier: 
                keyid:F9:60:BB:D4:E3:D5:34:F6:B8:F5:06:80:25:A7:73:DB:46:69:A8:9E

            X509v3 Subject Key Identifier: 
                F9:60:BB:D4:E3:D5:34:F6:B8:F5:06:80:25:A7:73:DB:46:69:A8:9E
            X509v3 Key Usage: critical
                Digital Signature, Certificate Sign, CRL Sign
SHA1 Fingerprint=74:3A:F0:52:9B:D0:32:A0:F4:4A:83:CD:D4:BA:A9:7B:7C:2E:C4:9A
SHA256 Fingerprint=2E:7B:F1:6C:C2:24:85:A7:BB:E2:AA:86:96:75:07:61:B0:AE:39:BE:3B:2F:E9:D0:CC:6D:4E:F7:34:91:42:5C
-----BEGIN CERTIFICATE-----
MIIF6zCCA9OgAwIBAgIIVrYpzTS8ePYwDQYJKoZIhvcNAQELBQAwgYIxCzAJBgNV
BAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UE
CgwPU1NMIENvcnBvcmF0aW9uMTcwNQYDVQQDDC5TU0wuY29tIEVWIFJvb3QgQ2Vy
dGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIyMB4XDTE3MDUzMTE4MTQzN1oXDTQy
MDUzMDE4MTQzN1owgYIxCzAJBgNVBAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEQMA4G
A1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMTcwNQYDVQQD
DC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIy
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAjzZlQOHWTcDXtOlG2mvq
M0fNTPl9fb69LT3w23jhhqXZuglXaO1XPqDQCEGD5yhBJB/jchXQARr7XnAjssuf
OePPxU7Gkm0mxnu7s9onnQqG6YE3Bf7wcXHswxzpY6IXFJ3vG2fThVUCAtZJycxa
4bH3bzKfydQ7iEGonL3Lq9ttewkfokxykNorCPzPPFTOZw+oz12WGQvE43LrrdF9
HSfvkusQv1vrO6/PgN3B0pYEW3p+pKk8OHakYo6gOV7qd89dAFmPZiw+B6KjBSYR
aZfqhbcPlgtLyEDhULouisv3D5oi53+aNxPN8k0TayHRwMwi8qFG9kRpnMphNQcA
b9ZhCBHqurj26bNg5U257J8UZslXWNvNh2n4ioYSA0e/ZhN2rHd9NCSFg83XqpyQ
Gp8hLH94t2S42Oim9HizVcuE0jLEeK6jj2HdzghTreyI/BXkmg3mnxp3zkyPuBQV
PWKchjgGAGYS5Fl2WlPAApiiECtoRHuOec4zSnaqW4EWG7WK2NAAe15itAnWhmMO
pgWVSbooi4iTsjQc2KRVbrcc0N6ZVTsj9CLg+SlmJuwgUHfbSguPvuUCYHBBXtSu
UDkiFCbLsjtzdFVHB3mBOagwE0TlBIqulhMlQg+5U8Sb/M3kHN48+qvWBkofZ6aY
MBzdLNvcGJVXZsb/XItW9XcCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNV
HSMEGDAWgBT5YLvU49U09rj1BoAlp3PbRmmonjAdBgNVHQ4EFgQU+WC71OPVNPa4
9QaAJadz20ZpqJ4wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBW
s47LCp1Jjr+kxJG7ZhcFUZh1++VQLHqe8RT6q9OKPv+RKY9ji9i0qVQBDb6Thi/5
Sm3HXvVX+cpVHBK+Rw82xd9qt9t1wkclf7nxY/hoLVUE0fKNsKTPvDxeH3jnpaAg
cLAExbf3cqfeIg29MyVGjGSSJuM+LmOW2puMPfgYCdcDzH2GguDKBAdRUNf/ktUM
79qGn5nX67evaOI5JpS6aLe/g9Pqemc9YmeuJeVy6OLk7K4S9ksrPJ/psEDzOFSz
/bdoyNrGj1E8svuR3Bznm53htw1yj+KkxKl4+esUrMZDBcJlOSgYAsOCsp0FvmXt
ll9ldDz7CTUue5wT/RsPXcdtgTpWD8w74a8CLyKsRspGPKAcTNZEtF4uXBVmCeEm
Kf7GUmG6sXP/wwyc5WxqlD8UykAWlYTzWamsX0xhk23RO8yilQwipmdnRC652dKK
QbNmC1r7fSOl8hqw/96bg5Qu0T/fkreRrwU7ZcegbLHNYhLDkBvjJc40vG93drEQ
w/cFGsDWr3RiSBd3kmmQYRzelYB0VI8YHMPzA9C/pEN1hlMYegouCRw2n5H9gooi
S9EOUCXdywMMF8mDAAhONU2Ki+3wApRmLER/y5UnlhetCTCstnEXbosX9hwJ1C07
mKVx01QT2WDz9UtmT/rx7iASjbSsV7FFY6GsdqnC+w==
-----END CERTIFICATE-----
=== /C=US/ST=Texas/L=Houston/O=SSL Corporation/CN=SSL.com Root Certification Authority ECC
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 8495723813297216424 (0x75e6dfcbc1685ba8)
    Signature Algorithm: ecdsa-with-SHA256
        Validity
            Not Before: Feb 12 18:14:03 2016 GMT
            Not After : Feb 12 18:14:03 2041 GMT
        Subject: C=US, ST=Texas, L=Houston, O=SSL Corporation, CN=SSL.com Root Certification Authority ECC
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                82:D1:85:73:30:E7:35:04:D3:8E:02:92:FB:E5:A4:D1:C4:21:E8:CD
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Authority Key Identifier: 
                keyid:82:D1:85:73:30:E7:35:04:D3:8E:02:92:FB:E5:A4:D1:C4:21:E8:CD

            X509v3 Key Usage: critical
                Digital Signature, Certificate Sign, CRL Sign
SHA1 Fingerprint=C3:19:7C:39:24:E6:54:AF:1B:C4:AB:20:95:7A:E2:C3:0E:13:02:6A
SHA256 Fingerprint=34:17:BB:06:CC:60:07:DA:1B:96:1C:92:0B:8A:B4:CE:3F:AD:82:0E:4A:A3:0B:9A:CB:C4:A7:4E:BD:CE:BC:65
-----BEGIN CERTIFICATE-----
MIICjTCCAhSgAwIBAgIIdebfy8FoW6gwCgYIKoZIzj0EAwIwfDELMAkGA1UEBhMC
VVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9T
U0wgQ29ycG9yYXRpb24xMTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0
aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEyMTgxNDAzWhcNNDEwMjEyMTgxNDAz
WjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hvdXN0
b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNvbSBS
b290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuB
BAAiA2IABEVuqVDEpiM2nl8ojRfLliJkP9x6jh3MCLOicSS6jkm5BBtHllirLZXI
7Z4INcgn64mMU1jrYor+8FsPazFSY0E7ic3s7LaNGdM0B9y7xgZ/wkWV7Mt/qCPg
CemB+vNH06NjMGEwHQYDVR0OBBYEFILRhXMw5zUE044CkvvlpNHEIejNMA8GA1Ud
EwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUgtGFczDnNQTTjgKS++Wk0cQh6M0wDgYD
VR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2cAMGQCMG/n61kRpGDPYbCWe+0F+S8T
kdzt5fxQaxFGRrMcIQBiu77D5+jNB5n5DQtdcj7EqgIwH7y6C+IwJPt8bYBVCpk+
gA0z5Wajs6O7pdWLjwkspl1+4vAHCGht0nxpbl/f5Wpl
-----END CERTIFICATE-----
=== /C=US/ST=Texas/L=Houston/O=SSL Corporation/CN=SSL.com Root Certification Authority RSA
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 8875640296558310041 (0x7b2c9bd316803299)
    Signature Algorithm: sha256WithRSAEncryption
        Validity
            Not Before: Feb 12 17:39:39 2016 GMT
            Not After : Feb 12 17:39:39 2041 GMT
        Subject: C=US, ST=Texas, L=Houston, O=SSL Corporation, CN=SSL.com Root Certification Authority RSA
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                DD:04:09:07:A2:F5:7A:7D:52:53:12:92:95:EE:38:80:25:0D:A6:59
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Authority Key Identifier: 
                keyid:DD:04:09:07:A2:F5:7A:7D:52:53:12:92:95:EE:38:80:25:0D:A6:59

            X509v3 Key Usage: critical
                Digital Signature, Certificate Sign, CRL Sign
SHA1 Fingerprint=B7:AB:33:08:D1:EA:44:77:BA:14:80:12:5A:6F:BD:A9:36:49:0C:BB
SHA256 Fingerprint=85:66:6A:56:2E:E0:BE:5C:E9:25:C1:D8:89:0A:6F:76:A8:7E:C1:6D:4D:7D:5F:29:EA:74:19:CF:20:12:3B:69
-----BEGIN CERTIFICATE-----
MIIF3TCCA8WgAwIBAgIIeyyb0xaAMpkwDQYJKoZIhvcNAQELBQAwfDELMAkGA1UE
BhMCVVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQK
DA9TU0wgQ29ycG9yYXRpb24xMTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZp
Y2F0aW9uIEF1dGhvcml0eSBSU0EwHhcNMTYwMjEyMTczOTM5WhcNNDEwMjEyMTcz
OTM5WjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hv
dXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNv
bSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFJTQTCCAiIwDQYJKoZIhvcN
AQEBBQADggIPADCCAgoCggIBAPkP3aMrfcvQKv7sZ4Wm5y4bunfh4/WvpOz6Sl2R
xFdHaxh3a3by/ZPkPQ/CFp4LZsNWlJ4Xg4XOVu/yFv0AYvUiCVToZRdOQbngT0aX
qhvIuG5iXmmxX9sqAn78bMrzQdjt0Oj8P2FI7bADFB0QDksZ4LtO7IZl/zbzXmcC
C52GVWH9ejjt/uIZALdvoVBidXQ8oPrIJZK0bnoix/geoeOy3ZExqysdBP+lSgQ3
6YWkMyv94tZVNHwZpEpox7Ko07fKoZOI68GXvIz5HdkihCR0xwQ9aqkpk8zruFvh
/l8lqjRYyMEjVJ0bmBHDOJx+PYZspQ9AhnwC9FwCTyjLrnGfDzrIM/4RJTXq/LrF
YD3ZfBjVsqnTdXgDciLKOsMf7yzlLqn6niy2UUb9rwPW6mBo6oUWNmuF6R7As93E
JNyAKoFBbZQ+yODJgUEAnl6/f8UImKIYLEJAs/lvOCdLToD0PYFH4Ih86hzOtXVc
US4cK38acijnALXRdMbX5J+tB5O2UzU1/Dfkw/ZdFr4hc96SCvigY2q8lpJqPvi8
ZVWb3vUNiSYE/CUapiVpy8JtynziWV+XrOvvLsi81xtZPCvM8hnIk2snYxnP/Okm
+Mpxm3+T/jRnhE6Z6/yzeAkzcLpmpnbtG3PrGqUNxCITIJRWCk4sbE6x/c+cCbqi
M+2HAgMBAAGjYzBhMB0GA1UdDgQWBBTdBAkHovV6fVJTEpKV7jiAJQ2mWTAPBgNV
HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFN0ECQei9Xp9UlMSkpXuOIAlDaZZMA4G
A1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAIBgRlCn7Jp0cHh5wYfGV
cpNxJK1ok1iOMq8bs3AD/CUrdIWQPXhq9LmLpZc7tRiRux6n+UBbkflVma8eEdBc
Hadm47GUBwwyOabqG7B52B2ccETjit3E+ZUfijhDPwGFpUenPUayvOUiaPd7nNgs
PgohyC0zrL/FgZkxdMF1ccW+sfAjRfSda/wZY52jvATGGAslu1OJD7OAUN5F7kR/
q5R4ZJjT9ijdh9hwZXT7DrkT66cPYakylszeu+1jTBi7qUD3oFRuIIhxdRjqerQ0
cuAjJ3dctpDqhiVAq+8zD8ufgr6iIPv2tS0a5sKFsXQP+8hlAqRSAUfdSSLBv9jr
a6x+3uxjMxW3IwiPxg+NQVrdjsW5j+VFP3jbutIbQLH+cU0/4IGiul607BXgk90I
H37hVZkLId6Tngr75qNJvTYw/ud3sqB1l7UtgYgXZSD32pAAn8lSzDLKNXz1PQ/Y
K9f1JmzJBjSWFupwWRoyeXkLtoh/D1JIPb9s2KJELtFOt3JY04kTlf5Eq/jXixtu
nLwsoFvVagCvXzfh1foQC5ichucmj87w7G6KVwuA406ywKBjYZC6VWg3dGq2ktuf
oYYitmUnDuy2n0Jg5GfCtdpBC8TTi2EbvPofkSvXRAdeuims2cXp71NIWuuA8ShY
Ic2wBlX7Jz9TkHCpBB5XJ7k=
-----END CERTIFICATE-----

### Staat der Nederlanden

=== /C=NL/O=Staat der Nederlanden/CN=Staat der Nederlanden EV Root CA
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 10000013 (0x98968d)
    Signature Algorithm: sha256WithRSAEncryption
        Validity
            Not Before: Dec  8 11:19:29 2010 GMT
            Not After : Dec  8 11:10:28 2022 GMT
        Subject: C=NL, O=Staat der Nederlanden, CN=Staat der Nederlanden EV Root CA
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Subject Key Identifier: 
                FE:AB:00:90:98:9E:24:FC:A9:CC:1A:8A:FB:27:B8:BF:30:6E:A8:3B
SHA1 Fingerprint=76:E2:7E:C1:4F:DB:82:C1:C0:A6:75:B5:05:BE:3D:29:B4:ED:DB:BB
SHA256 Fingerprint=4D:24:91:41:4C:FE:95:67:46:EC:4C:EF:A6:CF:6F:72:E2:8A:13:29:43:2F:9D:8A:90:7A:C4:CB:5D:AD:C1:5A
-----BEGIN CERTIFICATE-----
MIIFcDCCA1igAwIBAgIEAJiWjTANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQGEwJO
TDEeMBwGA1UECgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSkwJwYDVQQDDCBTdGFh
dCBkZXIgTmVkZXJsYW5kZW4gRVYgUm9vdCBDQTAeFw0xMDEyMDgxMTE5MjlaFw0y
MjEyMDgxMTEwMjhaMFgxCzAJBgNVBAYTAk5MMR4wHAYDVQQKDBVTdGFhdCBkZXIg
TmVkZXJsYW5kZW4xKTAnBgNVBAMMIFN0YWF0IGRlciBOZWRlcmxhbmRlbiBFViBS
b290IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA48d+ifkkSzrS
M4M1LGns3Amk41GoJSt5uAg94JG6hIXGhaTK5skuU6TJJB79VWZxXSzFYGgEt9nC
UiY4iKTWO0Cmws0/zZiTs1QUWJZV1VD+hq2kY39ch/aO5ieSZxeSAgMs3NZmdO3d
Z//BYY1jTw+bbRcwJu+r0h8QoPnFfxZpgQNH7R5ojXKhTbImxrpsX23Wr9GxE46p
rfNeaXUmGD5BKyF/7otdBwadQ8QpCiv8Kj6GyzyDOvnJDdrFmeK8eEEzduG/L13l
pJhQDBXd4Pqcfzho0LKmeqfRMb1+ilgnQ7O6M5HTp5gVXJrm0w912fxBmJc+qiXb
j5IusHsMX/FjqTf5m3VpTCgmJdrV8hJwRVXj33NeN/UhbJCONVrJ0yPr08C+eKxC
KFhmpUZtcALXEPlLVPxdhkqHz3/KRawRWrUgUY0viEeXOcDPusBCAUCZSCELa6fS
/ZbV0b5GnUngC6agIk440ME8MLxwjyx1zNDFjFE7PZQIZCZhfbnDZY8UnCHQqv0X
cgOPvZuM5l5Tnrmd74K74bzickFbIZTTRTeU0d8JOV3nI6qaHcptqAqGhYqCvkIH
1vI4gnPah1vlPNOePqc7nvQDs/nxfRN0Av+7oeX6AHkcpmZBiFxgV6YuCcS6/ZrP
px9Aw7vMWgpVSzs4dlG4Y4uElBbmVvMCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB
/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFP6rAJCYniT8qcwaivsnuL8wbqg7
MA0GCSqGSIb3DQEBCwUAA4ICAQDPdyxuVr5Os7aEAJSrR8kN0nbHhp8dB9O2tLsI
eK9p0gtJ3jPFrK3CiAJ9Brc1AsFgyb/E6JTe1NOpEyVa/m6irn0F3H3zbPB+po3u
2dfOWBfoqSmuc0iH55vKbimhZF8ZE/euBhD/UcabTVUlT5OZEAFTdfETzsemQUHS
v4ilf0X8rLiltTMMgsT7B/Zq5SWEXwbKwYY5EdtYzXc7LMJMD16a4/CrPmEbUCTC
wPTxGfARKbalGAKb12NMcIxHowNDXLldRqANb/9Zjr7dn3LDWyvfjFvO5QxGbJKy
CqNMVEIYFRIYvdr8unRu/8G2oGTYqV9Vrp9canaW2HNnh/tNf1zuacpzEPuKqf2e
vTY4SUmH9A4U8OmHuD+nT3pajnnUk+S7aFKErGzp85hwVXIy+TSrK0m1zSBi5Dp6
Z2Orltxtrpfs/J92VoguZs9btsmksNcFuuEnL5O7Jiqik7Ab846+HUCjuTaPPoIa
Gl6I6lD4WeKDRikL40Rc4ZW2aZCaFG+XroHPaO+Zmr615+F/+PoTRxZMzG0IQOeL
eG9QgkRQP2YGiqtDhFZKDyAthg710tvSeopLzaXoTvFeJiUBWSOgftL2fiFX1ye8
FVdMpEbB4IMeDExNH08GGeL5qPQ6gqGyeUN51q1veieQA6TqJIc/2b3Z6fJfUEkc
7uzXLg==
-----END CERTIFICATE-----
=== /C=NL/O=Staat der Nederlanden/CN=Staat der Nederlanden Root CA - G2
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 10000012 (0x98968c)
    Signature Algorithm: sha256WithRSAEncryption
        Validity
            Not Before: Mar 26 11:18:17 2008 GMT
            Not After : Mar 25 11:03:10 2020 GMT
        Subject: C=NL, O=Staat der Nederlanden, CN=Staat der Nederlanden Root CA - G2
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Certificate Policies: 
                Policy: X509v3 Any Policy
                  CPS: http://www.pkioverheid.nl/policies/root-policy-G2

            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Subject Key Identifier: 
                91:68:32:87:15:1D:89:E2:B5:F1:AC:36:28:34:8D:0B:7C:62:88:EB
SHA1 Fingerprint=59:AF:82:79:91:86:C7:B4:75:07:CB:CF:03:57:46:EB:04:DD:B7:16
SHA256 Fingerprint=66:8C:83:94:7D:A6:3B:72:4B:EC:E1:74:3C:31:A0:E6:AE:D0:DB:8E:C5:B3:1B:E3:77:BB:78:4F:91:B6:71:6F
-----BEGIN CERTIFICATE-----
MIIFyjCCA7KgAwIBAgIEAJiWjDANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJO
TDEeMBwGA1UECgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFh
dCBkZXIgTmVkZXJsYW5kZW4gUm9vdCBDQSAtIEcyMB4XDTA4MDMyNjExMTgxN1oX
DTIwMDMyNTExMDMxMFowWjELMAkGA1UEBhMCTkwxHjAcBgNVBAoMFVN0YWF0IGRl
ciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5lZGVybGFuZGVuIFJv
b3QgQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVZ5291
qj5LnLW4rJ4L5PnZyqtdj7U5EILXr1HgO+EASGrP2uEGQxGZqhQlEq0i6ABtQ8Sp
uOUfiUtnvWFI7/3S4GCI5bkYYCjDdyutsDeqN95kWSpGV+RLufg3fNU254DBtvPU
Z5uW6M7XxgpT0GtJlvOjCwV3SPcl5XCsMBQgJeN/dVrlSPhOewMHBPqCYYdu8DvE
pMfQ9XQ+pV0aCPKbJdL2rAQmPlU6Yiile7Iwr/g3wtG61jj99O9JMDeZJiFIhQGp
5Rbn3JBV3w/oOM2ZNyFPXfUib2rFEhZgF1XyZWampzCROME4HYYEhLoaJXhena/M
UGDWE4dS7WMfbWV9whUYdMrhfmQpjHLYFhN9C0lK8SgbIHRrxT3dsKpICT0ugpTN
GmXZK4iambwYfp/ufWZ8Pr2UuIHOzZgweMFvZ9C+X+Bo7d7iscksWXiSqt8rYGPy
5V6548r6f1CGPqI0GAwJaCgRHOThuVw+R7oyPxjMW4T182t0xHJ04eOLoEq9jWYv
6q012iDTiIJh8BIitrzQ1aTsr1SIJSQ8p22xcik/Plemf1WvbibG/ufMQFxRRIEK
eN5KzlW/HdXZt1bv8Hb/C3m1r737qWmRRpdogBQ2HbN/uymYNqUg+oJgYjOk7Na6
B6duxc8UpufWkjTYgfX8HV2qXB72o007uPc5AgMBAAGjgZcwgZQwDwYDVR0TAQH/
BAUwAwEB/zBSBgNVHSAESzBJMEcGBFUdIAAwPzA9BggrBgEFBQcCARYxaHR0cDov
L3d3dy5wa2lvdmVyaGVpZC5ubC9wb2xpY2llcy9yb290LXBvbGljeS1HMjAOBgNV
HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJFoMocVHYnitfGsNig0jQt8YojrMA0GCSqG
SIb3DQEBCwUAA4ICAQCoQUpnKpKBglBu4dfYszk78wIVCVBR7y29JHuIhjv5tLyS
CZa59sCrI2AGeYwRTlHSeYAz+51IvuxBQ4EffkdAHOV6CMqqi3WtFMTC6GY8ggen
5ieCWxjmD27ZUD6KQhgpxrRW/FYQoAUXvQwjf/ST7ZwaUb7dRUG/kSS0H4zpX897
IZmflZ85OkYcbPnNe5yQzSipx6lVu6xiNGI1E0sUOlWDuYaNkqbG9AclVMwWVxJK
gnjIFNkXgiYtXSAfea7+1HAWFpWD2DU5/1JddRwWxRNVz0fMdWVSSt7wsKfkCpYL
+63C4iWEst3kvX5ZbJvw8NjnyvLplzh+ib7M+zkXYT9y2zqR2GUBGR2tUKRXCnxL
vJxxcypFURmFzI79R6d0lR2o0a9OF7FpJsKqeFdbxU2n5Z4FF5TKsl+gSRiNNOkm
bEgeqmiSBeGCc1qb3AdbCG19ndeNIdn8FCCqwkXfP+cAslHkwvgFuXkajDTznlvk
N1trSt8sV4pAWja63XVECDdCcAz+3F4hoKOKwJCcaNpQ5kUQR3i2TtJlycM33+FC
Y7BXN0Ute4qcvwXqZVUz9zkQxSgqIXobisQk+T8VyJoVIPVVYpbtbZNQvOSqeK3Z
ywplh6ZmwcSBo3c6WB4L7oOLnR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm66+KAQ==
-----END CERTIFICATE-----
=== /C=NL/O=Staat der Nederlanden/CN=Staat der Nederlanden Root CA - G3
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 10003001 (0x98a239)
    Signature Algorithm: sha256WithRSAEncryption
        Validity
            Not Before: Nov 14 11:28:42 2013 GMT
            Not After : Nov 13 23:00:00 2028 GMT
        Subject: C=NL, O=Staat der Nederlanden, CN=Staat der Nederlanden Root CA - G3
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Subject Key Identifier: 
                54:AD:FA:C7:92:57:AE:CA:35:9C:2E:12:FB:E4:BA:5D:20:DC:94:57
SHA1 Fingerprint=D8:EB:6B:41:51:92:59:E0:F3:E7:85:00:C0:3D:B6:88:97:C9:EE:FC
SHA256 Fingerprint=3C:4F:B0:B9:5A:B8:B3:00:32:F4:32:B8:6F:53:5F:E1:72:C1:85:D0:FD:39:86:58:37:CF:36:18:7F:A6:F4:28
-----BEGIN CERTIFICATE-----
MIIFdDCCA1ygAwIBAgIEAJiiOTANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJO
TDEeMBwGA1UECgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFh
dCBkZXIgTmVkZXJsYW5kZW4gUm9vdCBDQSAtIEczMB4XDTEzMTExNDExMjg0MloX
DTI4MTExMzIzMDAwMFowWjELMAkGA1UEBhMCTkwxHjAcBgNVBAoMFVN0YWF0IGRl
ciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5lZGVybGFuZGVuIFJv
b3QgQ0EgLSBHMzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL4yolQP
cPssXFnrbMSkUeiFKrPMSjTysF/zDsccPVMeiAho2G89rcKezIJnByeHaHE6n3WW
IkYFsO2tx1ueKt6c/DrGlaf1F2cY5y9JCAxcz+bMNO14+1Cx3Gsy8KL+tjzk7FqX
xz8ecAgwoNzFs21v0IJyEavSgWhZghe3eJJg+szeP4TrjTgzkApyI/o1zCZxMdFy
KJLZWyNtZrVtB0LrpjPOktvA9mxjeM3KTj215VKb8b475lRgsGYeCasH/lSJEULR
9yS6YHgamPfJEf0WwTUaVHXvQ9Plrk7O53vDxk5hUUurmkVLoR9BvUhTFXFkC4az
5S6+zqQbwSmEorXLCCN2QyIkHxcE1G6cxvx/K2Ya7Irl1s9N9WMJtxU51nus6+N8
6U78dULI7ViVDAZCopz35HCz33JvWjdAidiFpNfxC95DGdRKWCyMijmev4SH8RY7
Ngzp07TKbBlBUgmhHbBqv4LvcFEhMtwFdozL92TkA1CvjJFnq8Xy7ljY3r735zHP
bMk7ccHViLVlvMDoFxcHErVc0qsgk7TmgoNwNsXNo42ti+yjwUOH5kPiNL6VizXt
BznaqB16nzaeErAMZRKQFWDZJkBE41ZgpRDUajz9QdwOWke275dhdU/Z/seyHdTt
XUmzqWrLZoQT1Vyg3N9udwbRcXXIV2+vD3dbAgMBAAGjQjBAMA8GA1UdEwEB/wQF
MAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRUrfrHkleuyjWcLhL75Lpd
INyUVzANBgkqhkiG9w0BAQsFAAOCAgEAMJmdBTLIXg47mAE6iqTnB/d6+Oea31BD
U5cqPco8R5gu4RV78ZLzYdqQJRZlwJ9UXQ4DO1t3ApyEtg2YXzTdO2PCwyiBwpwp
LiniyMMB8jPqKqrMCQj3ZWfGzd/TtiunvczRDnBfuCPRy5FOCvTIeuXZYzbB1N/8
Ipf3YF3qKS9Ysr1YvY2WTxB1v0h7PVGHoTx0IsL8B3+A3MSs/mrBcDCw6Y5p4ixp
gZQJut3+TcCDjJRYwEYgr5wfAvg1VUkvRtTA8KCWAg8zxXHzniN9lLf9OtMJgwYh
/WA9rjLA0u6NpvDntIJ8CsxwyXmA+P5M9zWEGYox+wrZ13+b8KKaa8MFSu1BYBQw
0aoRQm7TIwIEC8Zl3d1Sd9qBa7Ko+gE4uZbqKmxnl4mUnrzhVNXkanjvSr0rmj1A
fsbAddJu+2gw7OyLnflJNZoaLNmzlTnVHpL3prllL+U9bTpITAjc5CgSKL59NVzq
4BZ+Extq1z7XnvwtdbLBFNUjA9tbbws+eC8N3jONFrdI54OagQ97wUNNVQQXOEpR
1VmiiXTTn74eS9fGbbeIJG9gkaSChVtWQbzQRKtqE77RLFi3EjNYsjdj3BP1lB0/
QFH1T/U67cjF68IeHRaVesd+QnGTbksVtzDfqu1XhUisHWrdOWnk4Xl4vs4Fv6EM
94B7IWcnMFk=
-----END CERTIFICATE-----

### Starfield Technologies, Inc.

=== /C=US/O=Starfield Technologies, Inc./OU=Starfield Class 2 Certification Authority
Certificate:
    Data:
        Version: 3 (0x2)
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
AdcwKziIorhtSpzyEZGDMA0GCSqGSIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMI
bw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPPE95Dz+I0swSdHynVv/heyNXB
ve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTyxQGjhdByPq1z
qwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd
iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn
0q23KXB56jzaYyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCN
sSi6
-----END CERTIFICATE-----

### StartCom Ltd.

=== /C=IL/O=StartCom Ltd./CN=StartCom Certification Authority G2
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 59 (0x3b)
    Signature Algorithm: sha256WithRSAEncryption
        Validity
            Not Before: Jan  1 01:00:01 2010 GMT
            Not After : Dec 31 23:59:01 2039 GMT
        Subject: C=IL, O=StartCom Ltd., CN=StartCom Certification Authority G2
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Subject Key Identifier: 
                4B:C5:B4:40:6B:AD:1C:B3:A5:1C:65:6E:46:36:89:87:05:0C:0E:B6
SHA1 Fingerprint=31:F1:FD:68:22:63:20:EE:C6:3B:3F:9D:EA:4A:3E:53:7C:7C:39:17
SHA256 Fingerprint=C7:BA:65:67:DE:93:A7:98:AE:1F:AA:79:1E:71:2D:37:8F:AE:1F:93:C4:39:7F:EA:44:1B:B7:CB:E6:FD:59:95
-----BEGIN CERTIFICATE-----
MIIFYzCCA0ugAwIBAgIBOzANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJJTDEW
MBQGA1UEChMNU3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlm
aWNhdGlvbiBBdXRob3JpdHkgRzIwHhcNMTAwMTAxMDEwMDAxWhcNMzkxMjMxMjM1
OTAxWjBTMQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjEsMCoG
A1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgRzIwggIiMA0G
CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2iTZbB7cgNr2Cu+EWIAOVeq8Oo1XJ
JZlKxdBWQYeQTSFgpBSHO839sj60ZwNq7eEPS8CRhXBF4EKe3ikj1AENoBB5uNsD
vfOpL9HG4A/LnooUCri99lZi8cVytjIl2bLzvWXFDSxu1ZJvGIsAQRSCb0AgJnoo
D/Uefyf3lLE3PbfHkffiAez9lInhzG7TNtYKGXmu1zSCZf98Qru23QumNK9LYP5/
Q0kGi4xDuFby2X8hQxfqp0iVAXV16iulQ5XqFYSdCI0mblWbq9zSOdIxHWDirMxW
RST1HFSr7obdljKF+ExP6JV2tgXdNiNnvP8V4so75qbsO+wmETRIjfaAKxojAuuK
HDp2KntWFhxyKrOq42ClAJ8Em+JvHhRYW6Vsi1g8w7pOOlz34ZYrPu8HvKTlXcxN
nw3h3Kq74W4a7I/htkxNeXJdFzULHdfBR9qWJODQcqhaX2YtENwvKhOuJv4KHBnM
0D4LnMgJLvlblnpHnOl68wVQdJVznjAJ85eCXuaPOQgeWeU1FEIT/wCc976qUM/i
UUjXuG+v+E5+M5iSFGI6dWPPe/regjupuznixL0sAA7IF6wT700ljtizkC+p2il9
Ha90OrInwMEePnWjFqmveiJdnxMaz6eg6+OGCtP95paV1yPIN93EfKo2rJgaErHg
TuixO/XWb/Ew1wIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE
AwIBBjAdBgNVHQ4EFgQUS8W0QGutHLOlHGVuRjaJhwUMDrYwDQYJKoZIhvcNAQEL
BQADggIBAHNXPyzVlTJ+N9uWkusZXn5T50HsEbZH77Xe7XRcxfGOSeD8bpkTzZ+K
2s06Ctg6Wgk/XzTQLwPSZh0avZyQN8gMjgdalEVGKua+etqhqaRpEpKwfTbURIfX
UfEpY9Z1zRbkJ4kd+MIySP3bmdCPX1R0zKxnNBFi2QwKN4fRoxdIjtIXHfbX/dtl
6/2o1PXWT6RbdejF0mCy2wl+JYt7ulKSnj7oxXehPOBKc2thz4bcQ///If4jXSRK
9dNtD2IEBVeC2m6kMyV5Sy5UGYvMLD0w6dEG/+gyRr61M3Z3qAFdlsHB1b6uJcDJ
HgoJIIihDsnzb02CVAAgp9KP5DlUFy6NHrgbuxu9mk47EDTcnIhT76IxW1hPkWLI
wpqazRVdOKnWvvgTtZ8SafJQYqz7Fzf07rh1Z2AQ+4NQ+US1dZxAF7L+/XldblhY
XzD8AK6vM8EOTmy6p6ahfzLbOOCxchcKK5HsamMm7YnUeMx0HgX4a/6ManY5Ka5l
IxKVCCIcl85bBu4M4ru8H0ST9tg4RQUh7eStqxK2A6RCLi3ECToDZ2mEmuFZkIoo
hdVddLHRDiBYmxOlsGOm7XtH/UVVMKTumtTm4ofvmMkyghEpIrwACjFeLQ/Ajulr
so8uBtjRkcfGEvRM/TAXw8HaOFvjqermobp573PYtlNXLfbQ4ddI
-----END CERTIFICATE-----
=== /C=IL/O=StartCom Ltd./OU=Secure Digital Certificate Signing/CN=StartCom Certification Authority
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 45 (0x2d)
    Signature Algorithm: sha256WithRSAEncryption
        Validity
            Not Before: Sep 17 19:46:37 2006 GMT
            Not After : Sep 17 19:46:36 2036 GMT
        Subject: C=IL, O=StartCom Ltd., OU=Secure Digital Certificate Signing, CN=StartCom Certification Authority
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Subject Key Identifier: 
                4E:0B:EF:1A:A4:40:5B:A5:17:69:87:30:CA:34:68:43:D0:41:AE:F2
            X509v3 Authority Key Identifier: 
                keyid:4E:0B:EF:1A:A4:40:5B:A5:17:69:87:30:CA:34:68:43:D0:41:AE:F2

            X509v3 Certificate Policies: 
                Policy: 1.3.6.1.4.1.23223.1.1.1
                  CPS: http://www.startssl.com/policy.pdf
                  CPS: http://www.startssl.com/intermediate.pdf
                  User Notice:
                    Organization: Start Commercial (StartCom) Ltd.
                    Number: 1
                    Explicit Text: Limited Liability, read the section *Legal Limitations* of the StartCom Certification Authority Policy available at http://www.startssl.com/policy.pdf

            Netscape Cert Type: 
                SSL CA, S/MIME CA, Object Signing CA
            Netscape Comment: 
                StartCom Free SSL Certification Authority
SHA1 Fingerprint=A3:F1:33:3F:E2:42:BF:CF:C5:D1:4E:8F:39:42:98:40:68:10:D1:A0
SHA256 Fingerprint=E1:78:90:EE:09:A3:FB:F4:F4:8B:9C:41:4A:17:D6:37:B7:A5:06:47:E9:BC:75:23:22:72:7F:CC:17:42:A9:11
-----BEGIN CERTIFICATE-----
MIIHhzCCBW+gAwIBAgIBLTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJJTDEW
MBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwg
Q2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNh
dGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0NjM3WhcNMzYwOTE3MTk0NjM2WjB9
MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMi
U2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3Rh
cnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUA
A4ICDwAwggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZk
pMyONvg45iPwbm2xPN1yo4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rf
OQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/C
Ji/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/deMotHweXMAEtcnn6RtYT
Kqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt2PZE4XNi
HzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMM
Av+Z6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w
+2OqqGwaVLRcJXrJosmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+
Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3
Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVcUjyJthkqcwEKDwOzEmDyei+B
26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT37uMdBNSSwID
AQABo4ICEDCCAgwwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
VR0OBBYEFE4L7xqkQFulF2mHMMo0aEPQQa7yMB8GA1UdIwQYMBaAFE4L7xqkQFul
F2mHMMo0aEPQQa7yMIIBWgYDVR0gBIIBUTCCAU0wggFJBgsrBgEEAYG1NwEBATCC
ATgwLgYIKwYBBQUHAgEWImh0dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5w
ZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cuc3RhcnRzc2wuY29tL2ludGVybWVk
aWF0ZS5wZGYwgc8GCCsGAQUFBwICMIHCMCcWIFN0YXJ0IENvbW1lcmNpYWwgKFN0
YXJ0Q29tKSBMdGQuMAMCAQEagZZMaW1pdGVkIExpYWJpbGl0eSwgcmVhZCB0aGUg
c2VjdGlvbiAqTGVnYWwgTGltaXRhdGlvbnMqIG9mIHRoZSBTdGFydENvbSBDZXJ0
aWZpY2F0aW9uIEF1dGhvcml0eSBQb2xpY3kgYXZhaWxhYmxlIGF0IGh0dHA6Ly93
d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgG
CWCGSAGG+EIBDQQrFilTdGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1
dGhvcml0eTANBgkqhkiG9w0BAQsFAAOCAgEAjo/n3JR5fPGFf59Jb2vKXfuM/gTF
wWLRfUKKvFO3lANmMD+x5wqnUCBVJX92ehQN6wQOQOY+2IirByeDqXWmN3PH/UvS
Ta0XQMhGvjt/UfzDtgUx3M2FIk5xt/JxXrAaxrqTi3iSSoX4eA+D/i+tLPfkpLst
0OcNOrg+zvZ49q5HJMqjNTbOx8aHmNrs++myziebiMMEofYLWWivydsQD032ZGNc
pRJvkrKTlMeIFw6Ttn5ii5B/q06f/ON1FE8qMt9bDeD1e5MNq6HPh+GlBEXoPBKl
CcWw0bdT82AUuoVpaiF8H3VhFyAXe2w7QSlc4axa0c2Mm+tgHRns9+Ww2vl5GKVF
P0lDV9LdJNUso/2RjSe15esUBppMeyG7Oq0wBhjA2MFrLH9ZXF2RsXAiV+uKa0hK
1Q8p7MZAwC+ITGgBF3f0JBlPvfrhsiAhS90a2Cl9qrjeVOwhVYBsHvUwyKMQ5bLm
KhQxw4UtjJixhlpPiVktucf3HMiKf8CdBUrmQk9io20ppB+Fq9vlgcitKj1MXVuE
JnHEhV5xJMqlG2zYYdMa4FTbzrqpMrUi9nNBCV24F10OD5mQ1kfabwo6YigUZ4LZ
8dCAWZvLMdibD4x3TrVoivJs9iQOLWxwxXPR3hTQcY+203sC9uO41Alua551hDnm
fyWl8kgAwKQB2j8=
-----END CERTIFICATE-----

### SwissSign AG

=== /C=CH/O=SwissSign AG/CN=SwissSign Gold CA - G2
Certificate:
    Data:







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







5126
5127
5128
5129
5130
5131
5132



































































































































5133
5134
5135
5136
5137
5138
5139
AdcwKziIorhtSpzyEZGDMA0GCSqGSIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMI
bw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPPE95Dz+I0swSdHynVv/heyNXB
ve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTyxQGjhdByPq1z
qwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd
iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn
0q23KXB56jzaYyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCN
sSi6



































































































































-----END CERTIFICATE-----

### SwissSign AG

=== /C=CH/O=SwissSign AG/CN=SwissSign Gold CA - G2
Certificate:
    Data:
3011
3012
3013
3014
3015
3016
3017































































































































































































3018
3019
3020
3021
3022
3023
3024
WL6ukK2YJ5f+AbGwUgC4TeQbIXQbfsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ
1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzTucpH9sry9uetuUg/vBa3wW30
6gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7hP0HHRwA11fXT
91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml
e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4p
TpPDpFQUWw==
-----END CERTIFICATE-----
































































































































































































### thawte, Inc.

=== /C=US/O=thawte, Inc./OU=(c) 2007 thawte, Inc. - For authorized use only/CN=thawte Primary Root CA - G2
Certificate:
    Data:
        Version: 3 (0x2)







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







5335
5336
5337
5338
5339
5340
5341
5342
5343
5344
5345
5346
5347
5348
5349
5350
5351
5352
5353
5354
5355
5356
5357
5358
5359
5360
5361
5362
5363
5364
5365
5366
5367
5368
5369
5370
5371
5372
5373
5374
5375
5376
5377
5378
5379
5380
5381
5382
5383
5384
5385
5386
5387
5388
5389
5390
5391
5392
5393
5394
5395
5396
5397
5398
5399
5400
5401
5402
5403
5404
5405
5406
5407
5408
5409
5410
5411
5412
5413
5414
5415
5416
5417
5418
5419
5420
5421
5422
5423
5424
5425
5426
5427
5428
5429
5430
5431
5432
5433
5434
5435
5436
5437
5438
5439
5440
5441
5442
5443
5444
5445
5446
5447
5448
5449
5450
5451
5452
5453
5454
5455
5456
5457
5458
5459
5460
5461
5462
5463
5464
5465
5466
5467
5468
5469
5470
5471
5472
5473
5474
5475
5476
5477
5478
5479
5480
5481
5482
5483
5484
5485
5486
5487
5488
5489
5490
5491
5492
5493
5494
5495
5496
5497
5498
5499
5500
5501
5502
5503
5504
5505
5506
5507
5508
5509
5510
5511
5512
5513
5514
5515
5516
5517
5518
5519
5520
5521
5522
5523
5524
5525
5526
5527
5528
5529
5530
5531
5532
5533
5534
5535
5536
5537
5538
5539
WL6ukK2YJ5f+AbGwUgC4TeQbIXQbfsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ
1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzTucpH9sry9uetuUg/vBa3wW30
6gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7hP0HHRwA11fXT
91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml
e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4p
TpPDpFQUWw==
-----END CERTIFICATE-----

### T\DCRKTRUST Bilgi \U0130leti\U015Fim ve Bili\U015Fim G\FCvenli\U011Fi Hizmetleri A.\U015E.

=== /C=TR/L=Ankara/O=T\xC3\x9CRKTRUST Bilgi \xC4\xB0leti\xC5\x9Fim ve Bili\xC5\x9Fim G\xC3\xBCvenli\xC4\x9Fi Hizmetleri A.\xC5\x9E./CN=T\xC3\x9CRKTRUST Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xC4\xB1c\xC4\xB1s\xC4\xB1 H5
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 156233699172481 (0x8e17fe242081)
    Signature Algorithm: sha256WithRSAEncryption
        Validity
            Not Before: Apr 30 08:07:01 2013 GMT
            Not After : Apr 28 08:07:01 2023 GMT
        Subject: C=TR, L=Ankara, O=T\xC3\x9CRKTRUST Bilgi \xC4\xB0leti\xC5\x9Fim ve Bili\xC5\x9Fim G\xC3\xBCvenli\xC4\x9Fi Hizmetleri A.\xC5\x9E., CN=T\xC3\x9CRKTRUST Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xC4\xB1c\xC4\xB1s\xC4\xB1 H5
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                56:99:07:1E:D3:AC:0C:69:64:B4:0C:50:47:DE:43:2C:BE:20:C0:FB
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Basic Constraints: critical
                CA:TRUE
SHA1 Fingerprint=C4:18:F6:4D:46:D1:DF:00:3D:27:30:13:72:43:A9:12:11:C6:75:FB
SHA256 Fingerprint=49:35:1B:90:34:44:C1:85:CC:DC:5C:69:3D:24:D8:55:5C:B2:08:D6:A8:14:13:07:69:9F:4A:F0:63:19:9D:78
-----BEGIN CERTIFICATE-----
MIIEJzCCAw+gAwIBAgIHAI4X/iQggTANBgkqhkiG9w0BAQsFADCBsTELMAkGA1UE
BhMCVFIxDzANBgNVBAcMBkFua2FyYTFNMEsGA1UECgxEVMOcUktUUlVTVCBCaWxn
aSDEsGxldGnFn2ltIHZlIEJpbGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkg
QS7Fni4xQjBABgNVBAMMOVTDnFJLVFJVU1QgRWxla3Ryb25payBTZXJ0aWZpa2Eg
SGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSBINTAeFw0xMzA0MzAwODA3MDFaFw0yMzA0
MjgwODA3MDFaMIGxMQswCQYDVQQGEwJUUjEPMA0GA1UEBwwGQW5rYXJhMU0wSwYD
VQQKDERUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmlsacWfaW0gR8O8
dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjFCMEAGA1UEAww5VMOcUktUUlVTVCBF
bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIEg1MIIB
IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApCUZ4WWe60ghUEoI5RHwWrom
/4NZzkQqL/7hzmAD/I0Dpe3/a6i6zDQGn1k19uwsu537jVJp45wnEFPzpALFp/kR
Gml1bsMdi9GYjZOHp3GXDSHHmflS0yxjXVW86B8BSLlg/kJK9siArs1mep5Fimh3
4khon6La8eHBEJ/rPCmBp+EyCNSgBbGM+42WAA4+Jd9ThiI7/PS98wl+d+yG6w8z
5UNP9FR1bSmZLmZaQ9/LXMrI5Tjxfjs1nQ/0xVqhzPMggCTTV+wVunUlm+hkS7M0
hO8EuPbJbKoCPrZV4jI3X/xml1/N1p7HIL9Nxqw/dV8c7TKcfGkAaZHjIxhT6QID
AQABo0IwQDAdBgNVHQ4EFgQUVpkHHtOsDGlktAxQR95DLL4gwPswDgYDVR0PAQH/
BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAJ5FdnsX
SDLyOIspve6WSk6BGLFRRyDN0GSxDsnZAdkJzsiZ3GglE9Rc8qPoBP5yCccLqh0l
VX6Wmle3usURehnmp349hQ71+S4pL+f5bFgWV1Al9j4uPqrtd3GqqpmWRgqujuwq
URawXs3qZwQcWDD1YIq9pr1N5Za0/EKJAWv2cMhQOQwt1WbZyNKzMrcbGW3LM/nf
peYVhDfwwvJllpKQd/Ct9JDpEXjXk4nAPQu6KfTomZ1yju2dL+6SfaHx/126M2CF
Yv4HAqGEVka+lgqaE9chTLd8B59OTj+RdPsnnRHM3eaxynFNExc5JsUpISuTKWqW
+qtB4Uu2NQvAmxU=
-----END CERTIFICATE-----

### TAIWAN-CA

=== /C=TW/O=TAIWAN-CA/OU=Root CA/CN=TWCA Global Root CA
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 3262 (0xcbe)
    Signature Algorithm: sha256WithRSAEncryption
        Validity
            Not Before: Jun 27 06:28:33 2012 GMT
            Not After : Dec 31 15:59:59 2030 GMT
        Subject: C=TW, O=TAIWAN-CA, OU=Root CA, CN=TWCA Global Root CA
        X509v3 extensions:
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Basic Constraints: critical
                CA:TRUE
SHA1 Fingerprint=9C:BB:48:53:F6:A4:F6:D3:52:A4:E8:32:52:55:60:13:F5:AD:AF:65
SHA256 Fingerprint=59:76:90:07:F7:68:5D:0F:CD:50:87:2F:9F:95:D5:75:5A:5B:2B:45:7D:81:F3:69:2B:61:0A:98:67:2F:0E:1B
-----BEGIN CERTIFICATE-----
MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcx
EjAQBgNVBAoTCVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMT
VFdDQSBHbG9iYWwgUm9vdCBDQTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5
NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQKEwlUQUlXQU4tQ0ExEDAOBgNVBAsT
B1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3QgQ0EwggIiMA0GCSqG
SIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2CnJfF
10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz
0ALfUPZVr2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfCh
MBwqoJimFb3u/Rk28OKRQ4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbH
zIh1HrtsBv+baz4X7GGqcXzGHaL3SekVtTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc
46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1WKKD+u4ZqyPpcC1jcxkt2
yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99sy2sbZCi
laLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYP
oA/pyJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQA
BDzfuBSO6N+pjWxnkjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcE
qYSjMq+u7msXi7Kx/mzhkIyIqJdIzshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm
4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6gcFGn90xHNcgL
1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn
LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WF
H6vPNOw/KP4M8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNo
RI2T9GRwoD2dKAXDOXC4Ynsg/eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+
nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlglPx4mI88k1HtQJAH32RjJMtOcQWh
15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryPA9gK8kxkRr05YuWW
6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3mi4TW
nsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5j
wa19hAM8EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWz
aGHQRiapIVJpLesux+t3zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmy
KwbQBM0=
-----END CERTIFICATE-----
=== /C=TW/O=TAIWAN-CA/OU=Root CA/CN=TWCA Root Certification Authority
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 1 (0x1)
    Signature Algorithm: sha1WithRSAEncryption
        Validity
            Not Before: Aug 28 07:24:33 2008 GMT
            Not After : Dec 31 15:59:59 2030 GMT
        Subject: C=TW, O=TAIWAN-CA, OU=Root CA, CN=TWCA Root Certification Authority
        X509v3 extensions:
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Subject Key Identifier: 
                6A:38:5B:26:8D:DE:8B:5A:F2:4F:7A:54:83:19:18:E3:08:35:A6:BA
SHA1 Fingerprint=CF:9E:87:6D:D3:EB:FC:42:26:97:A3:B5:A3:7A:A0:76:A9:06:23:48
SHA256 Fingerprint=BF:D8:8F:E1:10:1C:41:AE:3E:80:1B:F8:BE:56:35:0E:E9:BA:D1:A6:B9:BD:51:5E:DC:5C:6D:5B:87:11:AC:44
-----BEGIN CERTIFICATE-----
MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzES
MBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFU
V0NBIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMz
WhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJVEFJV0FO
LUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlm
aWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
AQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFE
AcK0HMMxQhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HH
K3XLfJ+utdGdIzdjp9xCoi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeX
RfwZVzsrb+RH9JlF/h3x+JejiB03HFyP4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/z
rX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1ry+UPizgN7gr8/g+YnzAx
3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkq
hkiG9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeC
MErJk/9q56YAf4lCmtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdls
XebQ79NqZp4VKIV66IIArB6nCWlWQtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62D
lhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVYT0bf+215WfKEIlKuD8z7fDvn
aspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocnyYh0igzyXxfkZ
YiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw==
-----END CERTIFICATE-----

### TeliaSonera

=== /O=TeliaSonera/CN=TeliaSonera Root CA v1
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            95:be:16:a0:f7:2e:46:f1:7b:39:82:72:fa:8b:cd:96
    Signature Algorithm: sha1WithRSAEncryption
        Validity
            Not Before: Oct 18 12:00:50 2007 GMT
            Not After : Oct 18 12:00:50 2032 GMT
        Subject: O=TeliaSonera, CN=TeliaSonera Root CA v1
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: 
                Certificate Sign, CRL Sign
            X509v3 Subject Key Identifier: 
                F0:8F:59:38:00:B3:F5:8F:9A:96:0C:D5:EB:FA:7B:AA:17:E8:13:12
SHA1 Fingerprint=43:13:BB:96:F1:D5:86:9B:C1:4E:6A:92:F6:CF:F6:34:69:87:82:37
SHA256 Fingerprint=DD:69:36:FE:21:F8:F0:77:C1:23:A1:A5:21:C1:22:24:F7:22:55:B7:3E:03:A7:26:06:93:E8:A2:4B:0F:A3:89
-----BEGIN CERTIFICATE-----
MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAw
NzEUMBIGA1UECgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJv
b3QgQ0EgdjEwHhcNMDcxMDE4MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYD
VQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwWVGVsaWFTb25lcmEgUm9vdCBDQSB2
MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+6yfwIaPzaSZVfp3F
VRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA3GV1
7CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+X
Z75Ljo1kB1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+
/jXh7VB7qTCNGdMJjmhnXb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs
81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxHoLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkm
dtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3F0fUTPHSiXk+TT2YqGHe
Oh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJoWjiUIMu
sDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4
pgd7gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fs
slESl1MpWtTwEhDcTwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQ
arMCpgKIv7NHfirZ1fpoeDVNAgMBAAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYD
VR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qWDNXr+nuqF+gTEjANBgkqhkiG
9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNmzqjMDfz1mgbl
dxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx
0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1Tj
TQpgcmLNkQfWpb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBed
Y2gea+zDTYa4EzAvXUYNR0PVG6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7
Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpcc41teyWRyu5FrgZLAMzTsVlQ2jqI
OylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOTJsjrDNYmiLbAJM+7
vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2qReW
t88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcn
HL/EVlP6Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVx
SK236thZiNSQvxaz2emsWWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY=
-----END CERTIFICATE-----

### thawte, Inc.

=== /C=US/O=thawte, Inc./OU=(c) 2007 thawte, Inc. - For authorized use only/CN=thawte Primary Root CA - G2
Certificate:
    Data:
        Version: 3 (0x2)
3282
3283
3284
3285
3286
3287
3288
3289



3290
3291
3292



























































































































































3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313

3314
3315
3316
3317


3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345

3346
3347
3348
3349
3350
3351
3352
3353
3354
3355




3356
3357
3358
3359
3360
3361



3362
3363

3364
3365
3366
3367
3368
3369
3370



3371
3372
3373
3374
3375
3376
3377











3378
3379
3380
3381
3382
3383
3384
Sf7dNXGiFSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZ
XHlKYC6SQK5MNyosycdiyA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/
qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9cJ2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRB
VXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGwsAvgnEzDHNb842m1R0aB
L6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gxQ+6IHdfG
jjxDah2nGN59PRbxYvnKkKj9
-----END CERTIFICATE-----
=== /C=US/ST=UT/L=Salt Lake City/O=The USERTRUST Network/OU=http://www.usertrust.com/CN=UTN-USERFirst-Hardware



Certificate:
    Data:
        Version: 3 (0x2)



























































































































































        Serial Number:
            44:be:0c:8b:50:00:24:b4:11:d3:36:2a:fe:65:0a:fd
    Signature Algorithm: sha1WithRSAEncryption
        Validity
            Not Before: Jul  9 18:10:42 1999 GMT
            Not After : Jul  9 18:19:22 2019 GMT
        Subject: C=US, ST=UT, L=Salt Lake City, O=The USERTRUST Network, OU=http://www.usertrust.com, CN=UTN-USERFirst-Hardware
        X509v3 extensions:
            X509v3 Key Usage: 
                Digital Signature, Non Repudiation, Certificate Sign, CRL Sign
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Subject Key Identifier: 
                A1:72:5F:26:1B:28:98:43:95:5D:07:37:D5:85:96:9D:4B:D2:C3:45
            X509v3 CRL Distribution Points: 

                Full Name:
                  URI:http://crl.usertrust.com/UTN-USERFirst-Hardware.crl

            X509v3 Extended Key Usage: 
                TLS Web Server Authentication, IPSec End System, IPSec Tunnel, IPSec User

SHA1 Fingerprint=04:83:ED:33:99:AC:36:08:05:87:22:ED:BC:5E:46:00:E3:BE:F9:D7
SHA256 Fingerprint=6E:A5:47:41:D0:04:66:7E:ED:1B:48:16:63:4A:A3:A7:9E:6E:4B:96:95:0F:82:79:DA:FC:8D:9B:D8:81:21:37
-----BEGIN CERTIFICATE-----
MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCB


lzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2Ug
Q2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho
dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3Qt
SGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgxOTIyWjCBlzELMAkG
A1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEe
MBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8v
d3d3LnVzZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdh
cmUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn
0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlIwrthdBKWHTxqctU8EGc6Oe0rE81m65UJ
M6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFdtqdt++BxF2uiiPsA3/4a
MXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8i4fDidNd
oI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqI
DsjfPe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9Ksy
oUhbAgMBAAGjgbkwgbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYD
VR0OBBYEFKFyXyYbKJhDlV0HN9WFlp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0
dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNFUkZpcnN0LUhhcmR3YXJlLmNy
bDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUFBwMGBggrBgEF
BQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM
//bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28Gpgoiskli
CE7/yMgUsogWXecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gE
CJChicsZUN/KHAG8HQQZexB2lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t
3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kniCrVWFCVH/A7HFe7fRQ5YiuayZSS
KqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67nfhmqA==
-----END CERTIFICATE-----

### Unizeto Sp. z o.o.

=== /C=PL/O=Unizeto Sp. z o.o./CN=Certum CA

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 65568 (0x10020)
    Signature Algorithm: sha1WithRSAEncryption
        Validity
            Not Before: Jun 11 10:46:39 2002 GMT
            Not After : Jun 11 10:46:39 2027 GMT
        Subject: C=PL, O=Unizeto Sp. z o.o., CN=Certum CA
        X509v3 extensions:




            X509v3 Basic Constraints: critical
                CA:TRUE
SHA1 Fingerprint=62:52:DC:40:F7:11:43:A2:2F:DE:9E:F7:34:8E:06:42:51:B1:81:18
SHA256 Fingerprint=D8:E0:FE:BC:1D:B2:E3:8D:00:94:0F:37:D2:7D:41:34:4D:99:3E:73:4B:99:D5:65:6D:97:78:D4:D8:14:36:24
-----BEGIN CERTIFICATE-----
MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBM



MRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBD
QTAeFw0wMjA2MTExMDQ2MzlaFw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBM

MRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBD
QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6xwS7TT3zNJc4YPk/E
jG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdLkKWo
ePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GI
ULdtlkIJ89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapu
Ob7kky/ZR6By6/qmW6/KUz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUg
AKpoC6EahQGcxEZjgoi2IrHu/qpGWX7PNSzVttpd90gzFFS269lvzs2I1qsb2pY7



HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEA
uI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+GXYkHAQa
TOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTg
xSvgGrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1q
CjqTE5s7FCMTY5w/0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5x
O/fIR/RpbxXyEV6DHpx8Uq79AtoSqFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs
6GAqm4VKQPNriiTsBhYscw==











-----END CERTIFICATE-----

### Unizeto Technologies S.A.

=== /C=PL/O=Unizeto Technologies S.A./OU=Certum Certification Authority/CN=Certum Trusted Network CA
Certificate:
    Data:







|
>
>
>



>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

|


|
|
|

<
<


|
<
<
|
<
<

|
<
>
|
|

|
>
>
|
<
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<
<
<
<
<


|

<
>



|
|

|
|
|

>
>
>
>


|
|

|
>
>
>
|
<
>
|
<
<
<
<
<
<
>
>
>
|
<
<
<
<
|
|
>
>
>
>
>
>
>
>
>
>
>







5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
5865
5866
5867
5868
5869
5870
5871
5872
5873
5874
5875
5876
5877
5878
5879
5880
5881
5882
5883
5884
5885
5886
5887
5888
5889
5890
5891
5892
5893
5894
5895
5896
5897
5898
5899
5900
5901
5902
5903
5904
5905
5906
5907
5908
5909
5910
5911
5912
5913
5914
5915
5916
5917
5918
5919
5920
5921
5922
5923
5924
5925
5926
5927
5928
5929
5930
5931
5932
5933
5934
5935
5936
5937
5938
5939
5940
5941
5942
5943
5944
5945
5946
5947
5948
5949
5950
5951
5952
5953
5954
5955
5956
5957
5958
5959
5960
5961
5962
5963
5964
5965
5966
5967
5968
5969
5970
5971
5972
5973


5974
5975
5976


5977


5978
5979

5980
5981
5982
5983
5984
5985
5986
5987


5988
5989
5990
5991
5992
5993
5994
5995
5996
5997
5998
5999
6000
6001
6002





6003
6004
6005
6006

6007
6008
6009
6010
6011
6012
6013
6014
6015
6016
6017
6018
6019
6020
6021
6022
6023
6024
6025
6026
6027
6028
6029
6030
6031

6032
6033






6034
6035
6036
6037




6038
6039
6040
6041
6042
6043
6044
6045
6046
6047
6048
6049
6050
6051
6052
6053
6054
6055
6056
6057
Sf7dNXGiFSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZ
XHlKYC6SQK5MNyosycdiyA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/
qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9cJ2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRB
VXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGwsAvgnEzDHNb842m1R0aB
L6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gxQ+6IHdfG
jjxDah2nGN59PRbxYvnKkKj9
-----END CERTIFICATE-----

### TrustCor Systems S. de R.L.

=== /C=PA/ST=Panama/L=Panama City/O=TrustCor Systems S. de R.L./OU=TrustCor Certificate Authority/CN=TrustCor ECA-1
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 9548242946988625984 (0x84822c5f1c62d040)
    Signature Algorithm: sha256WithRSAEncryption
        Validity
            Not Before: Feb  4 12:32:33 2016 GMT
            Not After : Dec 31 17:28:07 2029 GMT
        Subject: C=PA, ST=Panama, L=Panama City, O=TrustCor Systems S. de R.L., OU=TrustCor Certificate Authority, CN=TrustCor ECA-1
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                44:9E:48:F5:CC:6D:48:D4:A0:4B:7F:FE:59:24:2F:83:97:99:9A:86
            X509v3 Authority Key Identifier: 
                keyid:44:9E:48:F5:CC:6D:48:D4:A0:4B:7F:FE:59:24:2F:83:97:99:9A:86

            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: critical
                Digital Signature, Certificate Sign, CRL Sign
SHA1 Fingerprint=58:D1:DF:95:95:67:6B:63:C0:F0:5B:1C:17:4D:8B:84:0B:C8:78:BD
SHA256 Fingerprint=5A:88:5D:B1:9C:01:D9:12:C5:75:93:88:93:8C:AF:BB:DF:03:1A:B2:D4:8E:91:EE:15:58:9B:42:97:1D:03:9C
-----BEGIN CERTIFICATE-----
MIIEIDCCAwigAwIBAgIJAISCLF8cYtBAMA0GCSqGSIb3DQEBCwUAMIGcMQswCQYD
VQQGEwJQQTEPMA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEk
MCIGA1UECgwbVHJ1c3RDb3IgU3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5U
cnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxFzAVBgNVBAMMDlRydXN0Q29y
IEVDQS0xMB4XDTE2MDIwNDEyMzIzM1oXDTI5MTIzMTE3MjgwN1owgZwxCzAJBgNV
BAYTAlBBMQ8wDQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5MSQw
IgYDVQQKDBtUcnVzdENvciBTeXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRy
dXN0Q29yIENlcnRpZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOVHJ1c3RDb3Ig
RUNBLTEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPj+ARtZ+odnbb
3w9U73NjKYKtR8aja+3+XzP4Q1HpGjORMRegdMTUpwHmspI+ap3tDvl0mEDTPwOA
BoJA6LHip1GnHYMma6ve+heRK9jGrB6xnhkB1Zem6g23xFUfJ3zSCNV2HykVh0A5
3ThFEXXQmqc04L/NyFIduUd+Dbi7xgz2c1cWWn5DkR9VOsZtRASqnKmcp0yJF4Ou
owReUoCLHhIlERnXDH19MURB6tuvsBzvgdAsxZohmz3tQjtQJvLsznFhBmIhVE5/
wZ0+fyCMgMsq2JdiyIMzkX2woloPV+g7zPIlstR8L+xNxqE6FXrntl019fZISjZF
ZtS6mFjBAgMBAAGjYzBhMB0GA1UdDgQWBBREnkj1zG1I1KBLf/5ZJC+Dl5mahjAf
BgNVHSMEGDAWgBREnkj1zG1I1KBLf/5ZJC+Dl5mahjAPBgNVHRMBAf8EBTADAQH/
MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAQEABT41XBVwm8nHc2Fv
civUwo/yQ10CzsSUuZQRg2dd4mdsdXa/uwyqNsatR5Nj3B5+1t4u/ukZMjgDfxT2
AHMsWbEhBuH7rBiVDKP/mZb3Kyeb1STMHd3BOuCYRLDE5D53sXOpZCz2HAF8P11F
hcCF5yWPldwX8zyfGm6wyuMdKulMY/okYWLW2n62HGz1Ah3UKt1VkOsqEUc8Ll50
soIipX1TH0XsJ5F95yIW6MBoNtjG8U+ARDL54dHRHareqKucBK+tIA5kmE2la8BI
WJZpTdwHjFGTot+fDz2LYLSCjaoITmJF4PkL0uDgPFveXHEnJcLmA4GLEFPjx1Wi
tJ/X5g==
-----END CERTIFICATE-----
=== /C=PA/ST=Panama/L=Panama City/O=TrustCor Systems S. de R.L./OU=TrustCor Certificate Authority/CN=TrustCor RootCert CA-1
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 15752444095811006489 (0xda9bec71f303b019)
    Signature Algorithm: sha256WithRSAEncryption
        Validity
            Not Before: Feb  4 12:32:16 2016 GMT
            Not After : Dec 31 17:23:16 2029 GMT
        Subject: C=PA, ST=Panama, L=Panama City, O=TrustCor Systems S. de R.L., OU=TrustCor Certificate Authority, CN=TrustCor RootCert CA-1
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                EE:6B:49:3C:7A:3F:0D:E3:B1:09:B7:8A:C8:AB:19:9F:73:33:50:E7
            X509v3 Authority Key Identifier: 
                keyid:EE:6B:49:3C:7A:3F:0D:E3:B1:09:B7:8A:C8:AB:19:9F:73:33:50:E7

            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: critical
                Digital Signature, Certificate Sign, CRL Sign
SHA1 Fingerprint=FF:BD:CD:E7:82:C8:43:5E:3C:6F:26:86:5C:CA:A8:3A:45:5B:C3:0A
SHA256 Fingerprint=D4:0E:9C:86:CD:8F:E4:68:C1:77:69:59:F4:9E:A7:74:FA:54:86:84:B6:C4:06:F3:90:92:61:F4:DC:E2:57:5C
-----BEGIN CERTIFICATE-----
MIIEMDCCAxigAwIBAgIJANqb7HHzA7AZMA0GCSqGSIb3DQEBCwUAMIGkMQswCQYD
VQQGEwJQQTEPMA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEk
MCIGA1UECgwbVHJ1c3RDb3IgU3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5U
cnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxHzAdBgNVBAMMFlRydXN0Q29y
IFJvb3RDZXJ0IENBLTEwHhcNMTYwMjA0MTIzMjE2WhcNMjkxMjMxMTcyMzE2WjCB
pDELMAkGA1UEBhMCUEExDzANBgNVBAgMBlBhbmFtYTEUMBIGA1UEBwwLUGFuYW1h
IENpdHkxJDAiBgNVBAoMG1RydXN0Q29yIFN5c3RlbXMgUy4gZGUgUi5MLjEnMCUG
A1UECwweVHJ1c3RDb3IgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MR8wHQYDVQQDDBZU
cnVzdENvciBSb290Q2VydCBDQS0xMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
CgKCAQEAv463leLCJhJrMxnHQFgKq1mqjQCj/IDHUHuO1CAmujIS2CNUSSUQIpid
RtLByZ5OGy4sDjjzGiVoHKZaBeYei0i/mJZ0PmnK6bV4pQa81QBeCQryJ3pS/C3V
seq0iWEk8xoT26nPUu0MJLq5nux+AHT6k61sKZKuUbS701e/s/OojZz0JEsq1pme
9J7+wH5COucLlVPat2gOkEz7cD+PSiyU8ybdY2mplNgQTsVHCJCZGxdNuWxu72CV
EY4hgLW9oHPY0LJ3xEXqWib7ZnZ2+AYfYW0PVcWDtxBWcgYHpfOxGgMFZA6dWorW
hnAbJN7+KIor0Gqw/Hqi3LJ5DotlDwIDAQABo2MwYTAdBgNVHQ4EFgQU7mtJPHo/
DeOxCbeKyKsZn3MzUOcwHwYDVR0jBBgwFoAU7mtJPHo/DeOxCbeKyKsZn3MzUOcw
DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQAD
ggEBACUY1JGPE+6PHh0RU9otRCkZoB5rMZ5NDp6tPVxBb5UrJKF5mDo4Nvu7Zp5I
/5CQ7z3UuJu0h3U/IJvOcs+hVcFNZKIZBqEHMwwLKeXx6quj7LUKdJDHfXLy11yf
ke+Ri7fc7Waiz45mO7yfOgLgJ90WmMCV1Aqk5IGadZQ1nJBfiDcGrVmVCrDRZ9MZ
yonnMlo2HD6CqFqTvsbQZJG2z9m2GM/bftJlo6bEjhcxwft+dtvTheNYsnd6djts
L1Ac59v2Z3kf9YKVmgenFK+P3CghZwnS1k1aHBkcjndcw5QkPTJrS37UeJSDvjdN
zl/HHk484IkzlQsPpTLWPFp5LBk=
-----END CERTIFICATE-----
=== /C=PA/ST=Panama/L=Panama City/O=TrustCor Systems S. de R.L./OU=TrustCor Certificate Authority/CN=TrustCor RootCert CA-2
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 2711694510199101698 (0x25a1dfca33cb5902)
    Signature Algorithm: sha256WithRSAEncryption
        Validity
            Not Before: Feb  4 12:32:23 2016 GMT
            Not After : Dec 31 17:26:39 2034 GMT
        Subject: C=PA, ST=Panama, L=Panama City, O=TrustCor Systems S. de R.L., OU=TrustCor Certificate Authority, CN=TrustCor RootCert CA-2
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                D9:FE:21:40:6E:94:9E:BC:9B:3D:9C:7D:98:20:19:E5:8C:30:62:B2
            X509v3 Authority Key Identifier: 
                keyid:D9:FE:21:40:6E:94:9E:BC:9B:3D:9C:7D:98:20:19:E5:8C:30:62:B2

            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: critical
                Digital Signature, Certificate Sign, CRL Sign
SHA1 Fingerprint=B8:BE:6D:CB:56:F1:55:B9:63:D4:12:CA:4E:06:34:C7:94:B2:1C:C0
SHA256 Fingerprint=07:53:E9:40:37:8C:1B:D5:E3:83:6E:39:5D:AE:A5:CB:83:9E:50:46:F1:BD:0E:AE:19:51:CF:10:FE:C7:C9:65
-----BEGIN CERTIFICATE-----
MIIGLzCCBBegAwIBAgIIJaHfyjPLWQIwDQYJKoZIhvcNAQELBQAwgaQxCzAJBgNV
BAYTAlBBMQ8wDQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5MSQw
IgYDVQQKDBtUcnVzdENvciBTeXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRy
dXN0Q29yIENlcnRpZmljYXRlIEF1dGhvcml0eTEfMB0GA1UEAwwWVHJ1c3RDb3Ig
Um9vdENlcnQgQ0EtMjAeFw0xNjAyMDQxMjMyMjNaFw0zNDEyMzExNzI2MzlaMIGk
MQswCQYDVQQGEwJQQTEPMA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEg
Q2l0eTEkMCIGA1UECgwbVHJ1c3RDb3IgU3lzdGVtcyBTLiBkZSBSLkwuMScwJQYD
VQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxHzAdBgNVBAMMFlRy
dXN0Q29yIFJvb3RDZXJ0IENBLTIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
AoICAQCnIG7CKqJiJJWQdsg4foDSq8GbZQWU9MEKENUCrO2fk8eHyLAnK0IMPQo+
QVqedd2NyuCb7GgypGmSaIwLgQ5WoD4a3SwlFIIvl9NkRvRUqdw6VC0xK5mC8tkq
1+9xALgxpL56JAfDQiDyitSSBBtlVkxs1Pu2YVpHI7TYabS3OtB0PAx1oYxOdqHp
2yqlO/rOsP9+aij9JxzIsekp8VduZLTQwRVtDr4uDkbIXvRR/u8OYzo7cbrPb1nK
DOObXUm4TOJXsZiKQlecdu/vvdFoqNL0Cbt3Nb4lggjEFixEIFapRBF37120Hape
az6LMvYHL1cEksr1/p3C6eizjkxLAjHZ5DxIgif3GIJ2SDpxsROhOdUuxTTCHWKF
3wP+TfSvPd9cW436cOGlfifHhi5qjxLGhF5DUVCcGZt45vz27Ud+ez1m7xMTiF88
oWP7+ayHNZ/zgp6kPwqcMWmLmaSISo5uZk3vFsQPeSghYA2FFn3XVDjxklb9tTNM
g9zXEJ9L/cb4Qr26fHMC4P99zVvh1Kxhe1fVSntb1IVYJ12/+CtgrKAmrhQhJ8Z3
mjOAPF5GP/fDsaOGM8boXg25NSyqRsGFAnWAoOsk+xWq5Gd/bnc/9ASKL3x74xdh
8N0JqSDIvgmk0H5Ew7IwSjiqqewYmgeCK9u4nBit2uBGF6zPXQIDAQABo2MwYTAd
BgNVHQ4EFgQU2f4hQG6UnrybPZx9mCAZ5YwwYrIwHwYDVR0jBBgwFoAU2f4hQG6U
nrybPZx9mCAZ5YwwYrIwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYw
DQYJKoZIhvcNAQELBQADggIBAJ5Fngw7tu/hOsh80QA9z+LqBrWyOrsGS2h60COX
dKcs8AjYeVrXWoSK2BKaG9l9XE1wxaX5q+WjiYndAfrs3fnpkpfbsEZC89NiqpX+
MWcUaViQCqoL7jcjx1BRtPV+nuN79+TMQjItSQzL/0kMmx40/W5ulop5A7Zv2wnL
/V9lFDfhOPXzYRZY5LVtDQsEGz9QLX+zx3oaFoBg+Iof6Rsqxvm6ARppv9JYx1RX
CI/hOWB3S6xZhBqI8d3LT3jX5+EzLfzuQfogsL7L9ziUwOHQhQ+77Sxzq+3+knYa
ZH9bDTMJBzN7Bj8RpFxwPIXAz+OQqIN3+tvmxYxoZxBnpVIt8MSZj3+/0WvitUfW
2dCFmU2Umw9Lje4AWkcdEQOsQRivh7dvDDqPys/cA8GiCcjl/YBeyGBCARsaU1q7
N6a3vLqE6R5sGtRk2tRD/pOLS/IseRYQ1JMLiI+h2IYURpFHmygk71dSTlxCnKr3
Sewn6EAes6aJInKc9Q0ztFijMDvd1GpUk74aTfOTlPf8hAs/hCBcNANExdqtvArB
As8e5ZTZ845b2EzwnexhF7sUMlQMAimTHpKG9n/v55IFDlndmQguLvqcAFLTxWYp
5KeXRKQOKIETNcX2b2TmQcTVL8w0RSXPQQCWPUouwpaYT05KnJe32x+SMsj/D1Fu
1uwJ
-----END CERTIFICATE-----

### Trustis Limited

=== /C=GB/O=Trustis Limited/OU=Trustis FPS Root CA
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            1b:1f:ad:b6:20:f9:24:d3:36:6b:f7:c7:f1:8c:a0:59
    Signature Algorithm: sha1WithRSAEncryption
        Validity
            Not Before: Dec 23 12:14:06 2003 GMT
            Not After : Jan 21 11:36:54 2024 GMT
        Subject: C=GB, O=Trustis Limited, OU=Trustis FPS Root CA
        X509v3 extensions:


            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Authority Key Identifier: 


                keyid:BA:FA:71:25:79:8B:57:41:25:21:86:0B:71:EB:B2:64:0E:8B:21:67



            X509v3 Subject Key Identifier: 

                BA:FA:71:25:79:8B:57:41:25:21:86:0B:71:EB:B2:64:0E:8B:21:67
SHA1 Fingerprint=3B:C0:38:0B:33:C3:F6:A6:0C:86:15:22:93:D9:DF:F5:4B:81:C0:04
SHA256 Fingerprint=C1:B4:82:99:AB:A5:20:8F:E9:63:0A:CE:55:CA:68:A0:3E:DA:5A:51:9C:88:02:A0:D3:A6:73:BE:8F:8E:55:7D
-----BEGIN CERTIFICATE-----
MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBF
MQswCQYDVQQGEwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQL
ExNUcnVzdGlzIEZQUyBSb290IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTEx
MzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNVBAoTD1RydXN0aXMgTGltaXRlZDEc


MBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQAD
ggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQRUN+
AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihH
iTHcDnlkH5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjj
vSkCqPoc4Vu5g6hBSLwacY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA
0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zto3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlB
OrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEAAaNTMFEwDwYDVR0TAQH/
BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAdBgNVHQ4E
FgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01
GX2cGE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmW
zaD+vkAMXBJV+JOCyinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP4
1BIy+Q7DsdwyhEQsb8tGD+pmQQ9P8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZE
f1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHVl/9D7S3B2l0pKoU/rGXuhg8F
jZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYliB6XzCGcKQEN
ZetX2fNXlrtIzYE=





-----END CERTIFICATE-----

### Turkiye Bilimsel ve Teknolojik Arastirma Kurumu - TUBITAK


=== /C=TR/L=Gebze - Kocaeli/O=Turkiye Bilimsel ve Teknolojik Arastirma Kurumu - TUBITAK/OU=Kamu Sertifikasyon Merkezi - Kamu SM/CN=TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 1 (0x1)
    Signature Algorithm: sha256WithRSAEncryption
        Validity
            Not Before: Nov 25 08:25:55 2013 GMT
            Not After : Oct 25 08:25:55 2043 GMT
        Subject: C=TR, L=Gebze - Kocaeli, O=Turkiye Bilimsel ve Teknolojik Arastirma Kurumu - TUBITAK, OU=Kamu Sertifikasyon Merkezi - Kamu SM, CN=TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                65:3F:C7:8A:86:C6:3C:DD:3C:54:5C:35:F8:3A:ED:52:0C:47:57:C8
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Basic Constraints: critical
                CA:TRUE
SHA1 Fingerprint=31:43:64:9B:EC:CE:27:EC:ED:3A:3F:0B:8F:0D:E4:E8:91:DD:EE:CA
SHA256 Fingerprint=46:ED:C3:68:90:46:D5:3A:45:3F:B3:10:4A:B8:0D:CA:EC:65:8B:26:60:EA:16:29:DD:7E:86:79:90:64:87:16
-----BEGIN CERTIFICATE-----
MIIEYzCCA0ugAwIBAgIBATANBgkqhkiG9w0BAQsFADCB0jELMAkGA1UEBhMCVFIx
GDAWBgNVBAcTD0dlYnplIC0gS29jYWVsaTFCMEAGA1UEChM5VHVya2l5ZSBCaWxp
bXNlbCB2ZSBUZWtub2xvamlrIEFyYXN0aXJtYSBLdXJ1bXUgLSBUVUJJVEFLMS0w
KwYDVQQLEyRLYW11IFNlcnRpZmlrYXN5b24gTWVya2V6aSAtIEthbXUgU00xNjA0
BgNVBAMTLVRVQklUQUsgS2FtdSBTTSBTU0wgS29rIFNlcnRpZmlrYXNpIC0gU3Vy

dW0gMTAeFw0xMzExMjUwODI1NTVaFw00MzEwMjUwODI1NTVaMIHSMQswCQYDVQQG
EwJUUjEYMBYGA1UEBxMPR2ViemUgLSBLb2NhZWxpMUIwQAYDVQQKEzlUdXJraXll






IEJpbGltc2VsIHZlIFRla25vbG9qaWsgQXJhc3Rpcm1hIEt1cnVtdSAtIFRVQklU
QUsxLTArBgNVBAsTJEthbXUgU2VydGlmaWthc3lvbiBNZXJrZXppIC0gS2FtdSBT
TTE2MDQGA1UEAxMtVFVCSVRBSyBLYW11IFNNIFNTTCBLb2sgU2VydGlmaWthc2kg
LSBTdXJ1bSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr3UwM6q7




a9OZLBI3hNmNe5eA027n/5tQlT6QlVZC1xl8JoSNkvoBHToP4mQ4t4y86Ij5iySr
LqP1N+RAjhgleYN1Hzv/bKjFxlb4tO2KRKOrbEz8HdDc72i9z+SqzvBV96I01INr
N3wcwv61A+xXzry0tcXtAA9TNypN9E8Mg/uGz8v+jE69h/mniyFXnHrfA2eJLJ2X
YacQuFWQfw4tJzh03+f92k4S400VIgLI4OD8D62K18lUUMw7D8oWgITQUVbDjlZ/
iSIzL+aFCr2lqBs23tPcLG07xxO9WSMs5uWk99gL7eqQQESolbuT1dCANLZGeA4f
AJNG4e7p+exPFwIDAQABo0IwQDAdBgNVHQ4EFgQUZT/HiobGPN08VFw1+DrtUgxH
V8gwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL
BQADggEBACo/4fEyjq7hmFxLXs9rHmoJ0iKpEsdeV31zVmSAhHqT5Am5EM2fKifh
AHe+SMg1qIGf5LgsyX8OsNJLN13qudULXjS99HMpw+0mFZx+CFOKWI3QSyjfwbPf
IPP54+M638yclNhOT8NrF7f3cuitZjO1JVOr4PhMqZ398g26rrnZqsZr+ZO7rqu4
lzwDGrpDxpa5RXI4s6ehlj2Re37AIVNMh+3yC1SVUZPVIqUNivGTDj5UDrDYyU7c
8jEyVupk+eq1nRZmQnLzf9OxMUP8pI4X8W0jq5Rm+K37DwhuJi1/FwcJsoz7UMCf
lo3Ptv0AnVoUmr8CRPXBwp8iXqIPoeM=
-----END CERTIFICATE-----

### Unizeto Technologies S.A.

=== /C=PL/O=Unizeto Technologies S.A./OU=Certum Certification Authority/CN=Certum Trusted Network CA
Certificate:
    Data:
3653
3654
3655
3656
3657
3658
3659



































































































































































































sAPmLGd75JR3Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+
seQxIcaBlVZaDrHC1LGmWazxY8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz
4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTxP/jgdFcrGJ2BtMQo2pSXpXDrrB2+
BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+PwGZsY6rp2aQW9IHR
lRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4mJO3
7M2CYfE45k+XmCpajQ==
-----END CERTIFICATE-----










































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
6326
6327
6328
6329
6330
6331
6332
6333
6334
6335
6336
6337
6338
6339
6340
6341
6342
6343
6344
6345
6346
6347
6348
6349
6350
6351
6352
6353
6354
6355
6356
6357
6358
6359
6360
6361
6362
6363
6364
6365
6366
6367
6368
6369
6370
6371
6372
6373
6374
6375
6376
6377
6378
6379
6380
6381
6382
6383
6384
6385
6386
6387
6388
6389
6390
6391
6392
6393
6394
6395
6396
6397
6398
6399
6400
6401
6402
6403
6404
6405
6406
6407
6408
6409
6410
6411
6412
6413
6414
6415
6416
6417
6418
6419
6420
6421
6422
6423
6424
6425
6426
6427
6428
6429
6430
6431
6432
6433
6434
6435
6436
6437
6438
6439
6440
6441
6442
6443
6444
6445
6446
6447
6448
6449
6450
6451
6452
6453
6454
6455
6456
6457
6458
6459
6460
6461
6462
6463
6464
6465
6466
6467
6468
6469
6470
6471
6472
6473
6474
6475
6476
6477
6478
6479
6480
6481
6482
6483
6484
6485
6486
6487
6488
6489
6490
6491
6492
6493
6494
6495
6496
6497
6498
6499
6500
6501
6502
6503
6504
6505
6506
6507
6508
6509
6510
6511
6512
6513
6514
6515
6516
6517
6518
6519
6520
6521
6522
6523
6524
6525
6526
6527
sAPmLGd75JR3Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+
seQxIcaBlVZaDrHC1LGmWazxY8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz
4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTxP/jgdFcrGJ2BtMQo2pSXpXDrrB2+
BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+PwGZsY6rp2aQW9IHR
lRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4mJO3
7M2CYfE45k+XmCpajQ==
-----END CERTIFICATE-----

### VISA

=== /C=US/O=VISA/OU=Visa International Service Association/CN=Visa eCommerce Root
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            13:86:35:4d:1d:3f:06:f2:c1:f9:65:05:d5:90:1c:62
    Signature Algorithm: sha1WithRSAEncryption
        Validity
            Not Before: Jun 26 02:18:36 2002 GMT
            Not After : Jun 24 00:16:12 2022 GMT
        Subject: C=US, O=VISA, OU=Visa International Service Association, CN=Visa eCommerce Root
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Subject Key Identifier: 
                15:38:83:0F:3F:2C:3F:70:33:1E:CD:46:FE:07:8C:20:E0:D7:C3:B7
SHA1 Fingerprint=70:17:9B:86:8C:00:A4:FA:60:91:52:22:3F:9F:3E:32:BD:E0:05:62
SHA256 Fingerprint=69:FA:C9:BD:55:FB:0A:C7:8D:53:BB:EE:5C:F1:D5:97:98:9F:D0:AA:AB:20:A2:51:51:BD:F1:73:3E:E7:D1:22
-----BEGIN CERTIFICATE-----
MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUFADBr
MQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRl
cm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNv
bW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2WhcNMjIwNjI0MDAxNjEyWjBrMQsw
CQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5h
dGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNvbW1l
cmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvV95WHm6h
2mCxlCfLF9sHP4CFT8icttD0b0/Pmdjh28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4E
lpF7sDPwsRROEW+1QK8bRaVK7362rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdV
ZqW1LS7YgFmypw23RuwhY/81q6UCzyr0TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq
299yOIzzlr3xF7zSujtFWsan9sYXiwGd/BmoKoMWuDpI/k4+oKsGGelT84ATB+0t
vz8KPFUgOSwsAGl0lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzsGHxBvfaL
dXe6YJ2E5/4tAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD
AgEGMB0GA1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUF
AAOCAQEAX/FBfXxcCLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcR
zCSs00Rsca4BIGsDoo8Ytyk6feUWYFN4PMCvFYP3j1IzJL1kk5fui/fbGKhtcbP3
LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pzzkWKsKZJ/0x9nXGIxHYdkFsd
7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBuYQa7FkKMcPcw
++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt
398znM/jra6O1I7mT1GvFpLgXPYHDw==
-----END CERTIFICATE-----

### WISeKey

=== /C=CH/O=WISeKey/OU=Copyright (c) 2005/OU=OISTE Foundation Endorsed/CN=OISTE WISeKey Global Root GA CA
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            41:3d:72:c7:f4:6b:1f:81:43:7d:f1:d2:28:54:df:9a
    Signature Algorithm: sha1WithRSAEncryption
        Validity
            Not Before: Dec 11 16:03:44 2005 GMT
            Not After : Dec 11 16:09:51 2037 GMT
        Subject: C=CH, O=WISeKey, OU=Copyright (c) 2005, OU=OISTE Foundation Endorsed, CN=OISTE WISeKey Global Root GA CA
        X509v3 extensions:
            X509v3 Key Usage: 
                Digital Signature, Certificate Sign, CRL Sign
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Subject Key Identifier: 
                B3:03:7E:AE:36:BC:B0:79:D1:DC:94:26:B6:11:BE:21:B2:69:86:94
            1.3.6.1.4.1.311.21.1: 
                ...
SHA1 Fingerprint=59:22:A1:E1:5A:EA:16:35:21:F8:98:39:6A:46:46:B0:44:1B:0F:A9
SHA256 Fingerprint=41:C9:23:86:6A:B4:CA:D6:B7:AD:57:80:81:58:2E:02:07:97:A6:CB:DF:4F:FF:78:CE:83:96:B3:89:37:D7:F5
-----BEGIN CERTIFICATE-----
MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCB
ijELMAkGA1UEBhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHly
aWdodCAoYykgMjAwNTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNl
ZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQSBDQTAeFw0w
NTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYDVQQGEwJDSDEQMA4G
A1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIwIAYD
VQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBX
SVNlS2V5IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
MIIBCgKCAQEAy0+zAJs9Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxR
VVuuk+g3/ytr6dTqvirdqFEr12bDYVxgAsj1znJ7O7jyTmUIms2kahnBAbtzptf2
w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbDd50kc3vkDIzh2TbhmYsF
mQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ/yxViJGg
4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t9
4B3RLoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYw
DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQw
EAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOx
SPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vImMMkQyh2I+3QZH4VFvbBsUfk2
ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4+vg1YFkCExh8
vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa
hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZi
Fj4A4xylNoEYokxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ
/L7fCg0=
-----END CERTIFICATE-----
=== /C=CH/O=WISeKey/OU=OISTE Foundation Endorsed/CN=OISTE WISeKey Global Root GB CA
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            76:b1:20:52:74:f0:85:87:46:b3:f8:23:1a:f6:c2:c0
    Signature Algorithm: sha256WithRSAEncryption
        Validity
            Not Before: Dec  1 15:00:32 2014 GMT
            Not After : Dec  1 15:10:31 2039 GMT
        Subject: C=CH, O=WISeKey, OU=OISTE Foundation Endorsed, CN=OISTE WISeKey Global Root GB CA
        X509v3 extensions:
            X509v3 Key Usage: 
                Digital Signature, Certificate Sign, CRL Sign
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Subject Key Identifier: 
                35:0F:C8:36:63:5E:E2:A3:EC:F9:3B:66:15:CE:51:52:E3:91:9A:3D
            1.3.6.1.4.1.311.21.1: 
                ...
SHA1 Fingerprint=0F:F9:40:76:18:D3:D7:6A:4B:98:F0:A8:35:9E:0C:FD:27:AC:CC:ED
SHA256 Fingerprint=6B:9C:08:E8:6E:B0:F7:67:CF:AD:65:CD:98:B6:21:49:E5:49:4A:67:F5:84:5E:7B:D1:ED:01:9F:27:B8:6B:D6
-----BEGIN CERTIFICATE-----
MIIDtTCCAp2gAwIBAgIQdrEgUnTwhYdGs/gjGvbCwDANBgkqhkiG9w0BAQsFADBt
MQswCQYDVQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUg
Rm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9i
YWwgUm9vdCBHQiBDQTAeFw0xNDEyMDExNTAwMzJaFw0zOTEyMDExNTEwMzFaMG0x
CzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQLExlPSVNURSBG
b3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2Jh
bCBSb290IEdCIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Be3
HEokKtaXscriHvt9OO+Y9bI5mE4nuBFde9IllIiCFSZqGzG7qFshISvYD06fWvGx
WuR51jIjK+FTzJlFXHtPrby/h0oLS5daqPZI7H17Dc0hBt+eFf1Biki3IPShehtX
1F1Q/7pn2COZH8g/497/b1t3sWtuuMlk9+HKQUYOKXHQuSP8yYFfTvdv37+ErXNk
u7dCjmn21HYdfp2nuFeKUWdy19SouJVUQHMD9ur06/4oQnc/nSMbsrY9gBQHTC5P
99UKFg29ZkM3fiNDecNAhvVMKdqOmq0NpQSHiB6F4+lT1ZvIiwNjeOvgGUpuuy9r
M2RYk61pv48b74JIxwIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw
AwEB/zAdBgNVHQ4EFgQUNQ/INmNe4qPs+TtmFc5RUuORmj0wEAYJKwYBBAGCNxUB
BAMCAQAwDQYJKoZIhvcNAQELBQADggEBAEBM+4eymYGQfp3FsLAmzYh7KzKNbrgh
cViXfa43FK8+5/ea4n32cZiZBKpDdHij40lhPnOMTZTg+XHEthYOU3gf1qKHLwI5
gSk8rxWYITD+KJAAjNHhy/peyP34EEY7onhCkRd0VQreUGdNZtGn//3ZwLWoo4rO
ZvUPQ82nK1d7Y0Zqqi5S2PTt4W2tKZB4SLrhI6qjiey1q5bAtEuiHZeeevJuQHHf
aPFlTc58Bd9TZaml8LGXBHAVRgOY1NK/VLSgWH1Sb9pWJmLU2NuJMW8c8CLC02Ic
Nc1MaRVUGpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM=
-----END CERTIFICATE-----

### XRamp Security Services Inc

=== /C=US/OU=www.xrampsecurity.com/O=XRamp Security Services Inc/CN=XRamp Global Certification Authority
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            50:94:6c:ec:18:ea:d5:9c:4d:d5:97:ef:75:8f:a0:ad
    Signature Algorithm: sha1WithRSAEncryption
        Validity
            Not Before: Nov  1 17:14:04 2004 GMT
            Not After : Jan  1 05:37:19 2035 GMT
        Subject: C=US, OU=www.xrampsecurity.com, O=XRamp Security Services Inc, CN=XRamp Global Certification Authority
        X509v3 extensions:
            1.3.6.1.4.1.311.20.2: 
                ...C.A
            X509v3 Key Usage: 
                Digital Signature, Certificate Sign, CRL Sign
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Subject Key Identifier: 
                C6:4F:A2:3D:06:63:84:09:9C:CE:62:E4:04:AC:8D:5C:B5:E9:B6:1B
            X509v3 CRL Distribution Points: 

                Full Name:
                  URI:http://crl.xrampsecurity.com/XGCA.crl

            1.3.6.1.4.1.311.21.1: 
                ...
SHA1 Fingerprint=B8:01:86:D1:EB:9C:86:A5:41:04:CF:30:54:F3:4C:52:B7:E5:58:C6
SHA256 Fingerprint=CE:CD:DC:90:50:99:D8:DA:DF:C5:B1:D2:09:B7:37:CB:E2:C1:8C:FB:2C:10:C0:FF:0B:CF:0D:32:86:FC:1A:A2
-----BEGIN CERTIFICATE-----
MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCB
gjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEk
MCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRY
UmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQxMTAxMTcx
NDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3
dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2Vy
dmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB
dXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS6
38eMpSe2OAtp87ZOqCwuIR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCP
KZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMxfoArtYzAQDsRhtDLooY2YKTVMIJt2W7Q
DxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FEzG+gSqmUsE3a56k0enI4
qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqsAxcZZPRa
JSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNVi
PvryxS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0P
BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASs
jVy16bYbMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0
eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQEwDQYJKoZIhvcNAQEFBQAD
ggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc/Kh4ZzXxHfAR
vbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt
qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLa
IR9NmXmd4c8nnxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSy
i6mx5O+aGtA9aZnuqCij4Tyz8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQ
O+7ETPTsJ3xCwnR8gooJybQDJbw=
-----END CERTIFICATE-----
Changes to jni/libressl/apps/openssl/certhash.c.
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
	if (errstr != NULL)
		goto err;

	hi->index = (unsigned int)val;

	goto done;

err:
	hashinfo_free(hi);
	hi = NULL;

done:
	free(l);

	return (hi);
}

static struct hashinfo *
certhash_cert(BIO *bio, const char *filename)







|



|







281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
	if (errstr != NULL)
		goto err;

	hi->index = (unsigned int)val;

	goto done;

 err:
	hashinfo_free(hi);
	hi = NULL;

 done:
	free(l);

	return (hi);
}

static struct hashinfo *
certhash_cert(BIO *bio, const char *filename)
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
	if (X509_digest(cert, digest, fingerprint, &len) != 1) {
		fprintf(stderr, "out of memory\n");
		goto err;
	}

	hi = hashinfo(filename, hash, fingerprint);

err:
	X509_free(cert);

	return (hi);
}

static struct hashinfo *
certhash_crl(BIO *bio, const char *filename)







|







314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
	if (X509_digest(cert, digest, fingerprint, &len) != 1) {
		fprintf(stderr, "out of memory\n");
		goto err;
	}

	hi = hashinfo(filename, hash, fingerprint);

 err:
	X509_free(cert);

	return (hi);
}

static struct hashinfo *
certhash_crl(BIO *bio, const char *filename)
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
	if (X509_CRL_digest(crl, digest, fingerprint, &len) != 1) {
		fprintf(stderr, "out of memory\n");
		goto err;
	}

	hi = hashinfo(filename, hash, fingerprint);

err:
	X509_CRL_free(crl);

	return (hi);
}

static int
certhash_addlink(struct hashinfo **links, struct hashinfo *hi)







|







343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
	if (X509_CRL_digest(crl, digest, fingerprint, &len) != 1) {
		fprintf(stderr, "out of memory\n");
		goto err;
	}

	hi = hashinfo(filename, hash, fingerprint);

 err:
	X509_CRL_free(crl);

	return (hi);
}

static int
certhash_addlink(struct hashinfo **links, struct hashinfo *hi)
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
	link->reference = hi;
	link->changed = 1;
	*links = hashinfo_chain(*links, link);
	hi->reference = link;

	return (0);

err:
	hashinfo_free(link);
	return (-1);
}

static void
certhash_findlink(struct hashinfo *links, struct hashinfo *hi)
{







|







367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
	link->reference = hi;
	link->changed = 1;
	*links = hashinfo_chain(*links, link);
	hi->reference = link;

	return (0);

 err:
	hashinfo_free(link);
	return (-1);
}

static void
certhash_findlink(struct hashinfo *links, struct hashinfo *hi)
{
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555

	if (!has_cert && !has_crl)
		fprintf(stderr, "PEM file %s does not contain a certificate "
		    "or CRL, ignoring...\n", dep->d_name);

	ret = 0;

err:
	BIO_free(bio);

	return (ret);
}

static int
certhash_directory(const char *path)







|







541
542
543
544
545
546
547
548
549
550
551
552
553
554
555

	if (!has_cert && !has_crl)
		fprintf(stderr, "PEM file %s does not contain a certificate "
		    "or CRL, ignoring...\n", dep->d_name);

	ret = 0;

 err:
	BIO_free(bio);

	return (ret);
}

static int
certhash_directory(const char *path)
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
			    link->filename, link->reference->filename);
			goto err;
		}
	}

	goto done;

err:
	ret = 1;

done:
	hashinfo_chain_free(certs);
	hashinfo_chain_free(crls);
	hashinfo_chain_free(links);

	if (dip != NULL)
		closedir(dip);
	return (ret);







|


|







618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
			    link->filename, link->reference->filename);
			goto err;
		}
	}

	goto done;

 err:
	ret = 1;

 done:
	hashinfo_chain_free(certs);
	hashinfo_chain_free(crls);
	hashinfo_chain_free(links);

	if (dip != NULL)
		closedir(dip);
	return (ret);
Changes to jni/libressl/apps/openssl/ciphers.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: ciphers.c,v 1.8 2015/10/17 15:00:11 doug Exp $ */
/*
 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: ciphers.c,v 1.9 2018/02/07 05:47:55 jsing Exp $ */
/*
 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
		free(desc);
	}
	if (ciphers_config.verbose == 0)
		fprintf(stdout, "\n");

	goto done;

err:
	ERR_print_errors_fp(stderr);
	rv = 1;

done:
	SSL_CTX_free(ssl_ctx);
	SSL_free(ssl);

	return (rv);
}







|



|





136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
		free(desc);
	}
	if (ciphers_config.verbose == 0)
		fprintf(stdout, "\n");

	goto done;

 err:
	ERR_print_errors_fp(stderr);
	rv = 1;

 done:
	SSL_CTX_free(ssl_ctx);
	SSL_free(ssl);

	return (rv);
}
Added jni/libressl/apps/openssl/compat/clock_gettime_osx.c.




















































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <time.h>

#include <mach/mach_time.h>
#define ORWL_NANO (+1.0E-9)
#define ORWL_GIGA UINT64_C(1000000000)

int
clock_gettime(clockid_t clock_id, struct timespec *tp)
{
	static double orwl_timebase = 0.0;
	static uint64_t orwl_timestart = 0;

	if (!orwl_timestart) {
		mach_timebase_info_data_t tb = { 0 };
		mach_timebase_info(&tb);
		orwl_timebase = tb.numer;
		orwl_timebase /= tb.denom;
		orwl_timestart = mach_absolute_time();
	}

	double diff = (mach_absolute_time() - orwl_timestart) * orwl_timebase;
	tp->tv_sec = diff * ORWL_NANO;
	tp->tv_nsec = diff - (tp->tv_sec * ORWL_GIGA);

	return 0;
}
Changes to jni/libressl/apps/openssl/crl.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: crl.c,v 1.10 2017/01/20 08:57:11 deraadt Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: crl.c,v 1.11 2018/02/07 05:47:55 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
	}
	if (!i) {
		BIO_printf(bio_err, "unable to write CRL\n");
		goto end;
	}
	ret = 0;

end:
	BIO_free_all(out);
	BIO_free_all(bio_out);
	bio_out = NULL;
	X509_CRL_free(x);
	if (store) {
		X509_STORE_CTX_cleanup(&ctx);
		X509_STORE_free(store);







|







420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
	}
	if (!i) {
		BIO_printf(bio_err, "unable to write CRL\n");
		goto end;
	}
	ret = 0;

 end:
	BIO_free_all(out);
	BIO_free_all(bio_out);
	bio_out = NULL;
	X509_CRL_free(x);
	if (store) {
		X509_STORE_CTX_cleanup(&ctx);
		X509_STORE_free(store);
467
468
469
470
471
472
473
474
475
476
477
	}
	if (x == NULL) {
		BIO_printf(bio_err, "unable to load CRL\n");
		ERR_print_errors(bio_err);
		goto end;
	}

end:
	BIO_free(in);
	return (x);
}







|



467
468
469
470
471
472
473
474
475
476
477
	}
	if (x == NULL) {
		BIO_printf(bio_err, "unable to load CRL\n");
		ERR_print_errors(bio_err);
		goto end;
	}

 end:
	BIO_free(in);
	return (x);
}
Changes to jni/libressl/apps/openssl/crl2p7.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: crl2p7.c,v 1.7 2017/01/20 08:57:11 deraadt Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: crl2p7.c,v 1.8 2018/02/07 05:47:55 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
	if (!i) {
		BIO_printf(bio_err, "unable to write pkcs7 object\n");
		ERR_print_errors(bio_err);
		goto end;
	}
	ret = 0;

end:
	if (in != NULL)
		BIO_free(in);
	if (out != NULL)
		BIO_free_all(out);
	if (p7 != NULL)
		PKCS7_free(p7);
	if (crl != NULL)







|







273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
	if (!i) {
		BIO_printf(bio_err, "unable to write pkcs7 object\n");
		ERR_print_errors(bio_err);
		goto end;
	}
	ret = 0;

 end:
	if (in != NULL)
		BIO_free(in);
	if (out != NULL)
		BIO_free_all(out);
	if (p7 != NULL)
		PKCS7_free(p7);
	if (crl != NULL)
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
			count++;
		}
		X509_INFO_free(xi);
	}

	ret = count;

end:
	/* never need to free x */
	if (in != NULL)
		BIO_free(in);
	if (sk != NULL)
		sk_X509_INFO_free(sk);
	return (ret);
}







|







319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
			count++;
		}
		X509_INFO_free(xi);
	}

	ret = count;

 end:
	/* never need to free x */
	if (in != NULL)
		BIO_free(in);
	if (sk != NULL)
		sk_X509_INFO_free(sk);
	return (ret);
}
Changes to jni/libressl/apps/openssl/dgst.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: dgst.c,v 1.11 2017/04/18 02:15:50 deraadt Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: dgst.c,v 1.12 2018/02/07 05:47:55 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
			}
			if (r)
				err = r;
			(void) BIO_reset(bmd);
		}
	}

end:
	freezero(buf, BUFSIZE);
	if (in != NULL)
		BIO_free(in);
	free(passin);
	BIO_free_all(out);
	EVP_PKEY_free(sigkey);
	if (sigopts)







|







443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
			}
			if (r)
				err = r;
			(void) BIO_reset(bmd);
		}
	}

 end:
	freezero(buf, BUFSIZE);
	if (in != NULL)
		BIO_free(in);
	free(passin);
	BIO_free_all(out);
	EVP_PKEY_free(sigkey);
	if (sigopts)
Changes to jni/libressl/apps/openssl/dh.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: dh.c,v 1.9 2017/01/20 08:57:11 deraadt Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: dh.c,v 1.11 2018/02/07 05:47:55 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
			BIO_printf(bio_err, "unable to write DH parameters\n");
			ERR_print_errors(bio_err);
			goto end;
		}
	}
	ret = 0;

end:
	BIO_free(in);
	if (out != NULL)
		BIO_free_all(out);
	if (dh != NULL)
		DH_free(dh);

	return (ret);
}
#endif







|

<
|
<
|




284
285
286
287
288
289
290
291
292

293

294
295
296
297
298
			BIO_printf(bio_err, "unable to write DH parameters\n");
			ERR_print_errors(bio_err);
			goto end;
		}
	}
	ret = 0;

 end:
	BIO_free(in);

	BIO_free_all(out);

	DH_free(dh);

	return (ret);
}
#endif
Changes to jni/libressl/apps/openssl/dhparam.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: dhparam.c,v 1.9 2017/01/20 08:57:11 deraadt Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: dhparam.c,v 1.11 2018/02/07 05:47:55 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
		BN_GENCB_set(&cb, dh_cb, bio_err);
		if (dhparam_config.dsaparam) {
			DSA *dsa = DSA_new();

			BIO_printf(bio_err, "Generating DSA parameters, %d bit long prime\n", num);
			if (!dsa || !DSA_generate_parameters_ex(dsa, num,
				NULL, 0, NULL, NULL, &cb)) {
				if (dsa)
					DSA_free(dsa);
				ERR_print_errors(bio_err);
				goto end;
			}
			dh = DSA_dup_DH(dsa);
			DSA_free(dsa);
			if (dh == NULL) {
				ERR_print_errors(bio_err);







<
|







288
289
290
291
292
293
294

295
296
297
298
299
300
301
302
		BN_GENCB_set(&cb, dh_cb, bio_err);
		if (dhparam_config.dsaparam) {
			DSA *dsa = DSA_new();

			BIO_printf(bio_err, "Generating DSA parameters, %d bit long prime\n", num);
			if (!dsa || !DSA_generate_parameters_ex(dsa, num,
				NULL, 0, NULL, NULL, &cb)) {

				DSA_free(dsa);
				ERR_print_errors(bio_err);
				goto end;
			}
			dh = DSA_dup_DH(dsa);
			DSA_free(dsa);
			if (dh == NULL) {
				ERR_print_errors(bio_err);
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
			BIO_printf(bio_err, "unable to write DH parameters\n");
			ERR_print_errors(bio_err);
			goto end;
		}
	}
	ret = 0;

end:
	BIO_free(in);
	if (out != NULL)
		BIO_free_all(out);
	if (dh != NULL)
		DH_free(dh);

	return (ret);
}

/* dh_cb is identical to dsa_cb in apps/dsaparam.c */
static int
dh_cb(int p, int n, BN_GENCB * cb)







|

<
|
<
|







462
463
464
465
466
467
468
469
470

471

472
473
474
475
476
477
478
479
			BIO_printf(bio_err, "unable to write DH parameters\n");
			ERR_print_errors(bio_err);
			goto end;
		}
	}
	ret = 0;

 end:
	BIO_free(in);

	BIO_free_all(out);

	DH_free(dh);

	return (ret);
}

/* dh_cb is identical to dsa_cb in apps/dsaparam.c */
static int
dh_cb(int p, int n, BN_GENCB * cb)
Changes to jni/libressl/apps/openssl/dsa.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: dsa.c,v 1.9 2017/01/20 08:57:11 deraadt Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: dsa.c,v 1.11 2018/02/07 05:47:55 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
		goto end;
	}
	if (i <= 0) {
		BIO_printf(bio_err, "unable to write private key\n");
		ERR_print_errors(bio_err);
	} else
		ret = 0;
end:
	BIO_free(in);
	if (out != NULL)
		BIO_free_all(out);
	if (dsa != NULL)
		DSA_free(dsa);
	free(passin);
	free(passout);

	return (ret);
}







|

<
|
<
|





356
357
358
359
360
361
362
363
364

365

366
367
368
369
370
371
		goto end;
	}
	if (i <= 0) {
		BIO_printf(bio_err, "unable to write private key\n");
		ERR_print_errors(bio_err);
	} else
		ret = 0;
 end:
	BIO_free(in);

	BIO_free_all(out);

	DSA_free(dsa);
	free(passin);
	free(passout);

	return (ret);
}
Changes to jni/libressl/apps/openssl/dsaparam.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: dsaparam.c,v 1.8 2017/01/20 08:57:12 deraadt Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: dsaparam.c,v 1.10 2018/02/07 05:47:55 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
			DSA_free(dsakey);
			goto end;
		}
		DSA_free(dsakey);
	}
	ret = 0;

end:
	BIO_free(in);
	if (out != NULL)
		BIO_free_all(out);
	if (dsa != NULL)
		DSA_free(dsa);

	return (ret);
}

static int
dsa_cb(int p, int n, BN_GENCB * cb)
{







|

<
|
<
|







334
335
336
337
338
339
340
341
342

343

344
345
346
347
348
349
350
351
			DSA_free(dsakey);
			goto end;
		}
		DSA_free(dsakey);
	}
	ret = 0;

 end:
	BIO_free(in);

	BIO_free_all(out);

	DSA_free(dsa);

	return (ret);
}

static int
dsa_cb(int p, int n, BN_GENCB * cb)
{
Changes to jni/libressl/apps/openssl/ec.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: ec.c,v 1.9 2017/01/20 08:57:12 deraadt Exp $ */
/*
 * Written by Nils Larsch for the OpenSSL project.
 */
/* ====================================================================
 * Copyright (c) 1998-2005 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
/* $OpenBSD: ec.c,v 1.11 2018/02/07 05:47:55 jsing Exp $ */
/*
 * Written by Nils Larsch for the OpenSSL project.
 */
/* ====================================================================
 * Copyright (c) 1998-2005 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
	}

	if (!i) {
		BIO_printf(bio_err, "unable to write private key\n");
		ERR_print_errors(bio_err);
	} else
		ret = 0;
end:
	BIO_free(in);
	if (out)
		BIO_free_all(out);
	if (eckey)
		EC_KEY_free(eckey);
	free(passin);
	free(passout);

	return (ret);
}
#endif







|

<
|
<
|






388
389
390
391
392
393
394
395
396

397

398
399
400
401
402
403
404
	}

	if (!i) {
		BIO_printf(bio_err, "unable to write private key\n");
		ERR_print_errors(bio_err);
	} else
		ret = 0;
 end:
	BIO_free(in);

	BIO_free_all(out);

	EC_KEY_free(eckey);
	free(passin);
	free(passout);

	return (ret);
}
#endif
Changes to jni/libressl/apps/openssl/ecparam.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: ecparam.c,v 1.16 2017/01/20 08:57:12 deraadt Exp $ */
/*
 * Written by Nils Larsch for the OpenSSL project.
 */
/* ====================================================================
 * Copyright (c) 1998-2005 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
/* $OpenBSD: ecparam.c,v 1.17 2018/02/07 05:47:55 jsing Exp $ */
/*
 * Written by Nils Larsch for the OpenSSL project.
 */
/* ====================================================================
 * Copyright (c) 1998-2005 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
			EC_KEY_free(eckey);
			goto end;
		}
		EC_KEY_free(eckey);
	}
	ret = 0;

end:
	BN_free(ec_p);
	BN_free(ec_a);
	BN_free(ec_b);
	BN_free(ec_gen);
	BN_free(ec_order);
	BN_free(ec_cofactor);








|







568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
			EC_KEY_free(eckey);
			goto end;
		}
		EC_KEY_free(eckey);
	}
	ret = 0;

 end:
	BN_free(ec_p);
	BN_free(ec_a);
	BN_free(ec_b);
	BN_free(ec_gen);
	BN_free(ec_order);
	BN_free(ec_cofactor);

Changes to jni/libressl/apps/openssl/enc.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: enc.c,v 1.12 2017/01/20 08:57:12 deraadt Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: enc.c,v 1.14 2018/02/07 05:47:55 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
		goto end;
	}
	ret = 0;
	if (enc_config.verbose) {
		BIO_printf(bio_err, "bytes read   :%8ld\n", BIO_number_read(in));
		BIO_printf(bio_err, "bytes written:%8ld\n", BIO_number_written(out));
	}
end:
	ERR_print_errors(bio_err);
	free(strbuf);
	free(buff);
	BIO_free(in);
	if (out != NULL)
		BIO_free_all(out);
	BIO_free(benc);
	BIO_free(b64);
#ifdef ZLIB
	BIO_free(bzl);
#endif
	free(pass);








|




<
|







713
714
715
716
717
718
719
720
721
722
723
724

725
726
727
728
729
730
731
732
		goto end;
	}
	ret = 0;
	if (enc_config.verbose) {
		BIO_printf(bio_err, "bytes read   :%8ld\n", BIO_number_read(in));
		BIO_printf(bio_err, "bytes written:%8ld\n", BIO_number_written(out));
	}
 end:
	ERR_print_errors(bio_err);
	free(strbuf);
	free(buff);
	BIO_free(in);

	BIO_free_all(out);
	BIO_free(benc);
	BIO_free(b64);
#ifdef ZLIB
	BIO_free(bzl);
#endif
	free(pass);

Changes to jni/libressl/apps/openssl/gendh.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: gendh.c,v 1.8 2017/01/20 08:57:12 deraadt Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: gendh.c,v 1.10 2018/02/07 05:47:55 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
	if (((dh = DH_new()) == NULL) ||
	    !DH_generate_parameters_ex(dh, numbits, gendh_config.g, &cb))
		goto end;

	if (!PEM_write_bio_DHparams(out, dh))
		goto end;
	ret = 0;
end:
	if (ret != 0)
		ERR_print_errors(bio_err);
	if (out != NULL)
		BIO_free_all(out);
	if (dh != NULL)
		DH_free(dh);

	return (ret);
}

static int
dh_cb(int p, int n, BN_GENCB * cb)
{







|


<
|
<
|







182
183
184
185
186
187
188
189
190
191

192

193
194
195
196
197
198
199
200
	if (((dh = DH_new()) == NULL) ||
	    !DH_generate_parameters_ex(dh, numbits, gendh_config.g, &cb))
		goto end;

	if (!PEM_write_bio_DHparams(out, dh))
		goto end;
	ret = 0;
 end:
	if (ret != 0)
		ERR_print_errors(bio_err);

	BIO_free_all(out);

	DH_free(dh);

	return (ret);
}

static int
dh_cb(int p, int n, BN_GENCB * cb)
{
Changes to jni/libressl/apps/openssl/gendsa.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: gendsa.c,v 1.8 2017/01/20 08:57:12 deraadt Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: gendsa.c,v 1.10 2018/02/07 05:47:55 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
		} else
			goto bad;
		argv++;
		argc--;
	}

	if (dsaparams == NULL) {
bad:
		BIO_printf(bio_err, "usage: gendsa [args] dsaparam-file\n");
		BIO_printf(bio_err, " -out file - output the key to 'file'\n");
#ifndef OPENSSL_NO_DES
		BIO_printf(bio_err, " -des      - encrypt the generated key with DES in cbc mode\n");
		BIO_printf(bio_err, " -des3     - encrypt the generated key with DES in ede cbc mode (168 bit key)\n");
#endif
#ifndef OPENSSL_NO_IDEA







|







139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
		} else
			goto bad;
		argv++;
		argc--;
	}

	if (dsaparams == NULL) {
 bad:
		BIO_printf(bio_err, "usage: gendsa [args] dsaparam-file\n");
		BIO_printf(bio_err, " -out file - output the key to 'file'\n");
#ifndef OPENSSL_NO_DES
		BIO_printf(bio_err, " -des      - encrypt the generated key with DES in cbc mode\n");
		BIO_printf(bio_err, " -des3     - encrypt the generated key with DES in ede cbc mode (168 bit key)\n");
#endif
#ifndef OPENSSL_NO_IDEA
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
	    BN_num_bits(dsa->p));
	if (!DSA_generate_key(dsa))
		goto end;

	if (!PEM_write_bio_DSAPrivateKey(out, dsa, enc, NULL, 0, NULL, passout))
		goto end;
	ret = 0;
end:
	if (ret != 0)
		ERR_print_errors(bio_err);
	BIO_free(in);
	if (out != NULL)
		BIO_free_all(out);
	if (dsa != NULL)
		DSA_free(dsa);
	free(passout);

	return (ret);
}







|



<
|
<
|




198
199
200
201
202
203
204
205
206
207
208

209

210
211
212
213
214
	    BN_num_bits(dsa->p));
	if (!DSA_generate_key(dsa))
		goto end;

	if (!PEM_write_bio_DSAPrivateKey(out, dsa, enc, NULL, 0, NULL, passout))
		goto end;
	ret = 0;
 end:
	if (ret != 0)
		ERR_print_errors(bio_err);
	BIO_free(in);

	BIO_free_all(out);

	DSA_free(dsa);
	free(passout);

	return (ret);
}
Changes to jni/libressl/apps/openssl/genpkey.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: genpkey.c,v 1.9 2017/01/20 08:57:12 deraadt Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
 * project 2006
 */
/* ====================================================================
 * Copyright (c) 2006 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
/* $OpenBSD: genpkey.c,v 1.12 2018/02/08 11:17:44 jsing Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
 * project 2006
 */
/* ====================================================================
 * Copyright (c) 2006 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
61
62
63
64
65
66
67













68





69



70





























































































































71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95


96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142

143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185

186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262

#include "apps.h"

#include <openssl/err.h>
#include <openssl/evp.h>
#include <openssl/pem.h>














static int





init_keygen_file(BIO * err, EVP_PKEY_CTX ** pctx, const char *file);



static int genpkey_cb(EVP_PKEY_CTX * ctx);






























































































































int
genpkey_main(int argc, char **argv)
{
	char **args, *outfile = NULL;
	char *passarg = NULL;
	BIO *in = NULL, *out = NULL;
	const EVP_CIPHER *cipher = NULL;
	int outformat;
	int text = 0;
	EVP_PKEY *pkey = NULL;
	EVP_PKEY_CTX *ctx = NULL;
	char *pass = NULL;
	int badarg = 0;
	int ret = 1, rv;

	int do_param = 0;

	if (single_execution) {
		if (pledge("stdio cpath wpath rpath tty", NULL) == -1) {
			perror("pledge");
			exit(1);
		}
	}



	outformat = FORMAT_PEM;

	args = argv + 1;
	while (!badarg && *args && *args[0] == '-') {
		if (!strcmp(*args, "-outform")) {
			if (args[1]) {
				args++;
				outformat = str2fmt(*args);
			} else
				badarg = 1;
		} else if (!strcmp(*args, "-pass")) {
			if (!args[1])
				goto bad;
			passarg = *(++args);
		}
		else if (!strcmp(*args, "-paramfile")) {
			if (!args[1])
				goto bad;
			args++;
			if (do_param == 1)
				goto bad;
			if (!init_keygen_file(bio_err, &ctx, *args))
				goto end;
		} else if (!strcmp(*args, "-out")) {
			if (args[1]) {
				args++;
				outfile = *args;
			} else
				badarg = 1;
		} else if (strcmp(*args, "-algorithm") == 0) {
			if (!args[1])
				goto bad;
			if (!init_gen_str(bio_err, &ctx, *(++args), do_param))
				goto end;
		} else if (strcmp(*args, "-pkeyopt") == 0) {
			if (!args[1])
				goto bad;
			if (!ctx) {
				BIO_puts(bio_err, "No keytype specified\n");
				goto bad;
			} else if (pkey_ctrl_string(ctx, *(++args)) <= 0) {
				BIO_puts(bio_err, "parameter setting error\n");
				ERR_print_errors(bio_err);
				goto end;
			}
		} else if (strcmp(*args, "-genparam") == 0) {
			if (ctx)

				goto bad;
			do_param = 1;
		} else if (strcmp(*args, "-text") == 0)
			text = 1;
		else {
			cipher = EVP_get_cipherbyname(*args + 1);
			if (!cipher) {
				BIO_printf(bio_err, "Unknown cipher %s\n",
				    *args + 1);
				badarg = 1;
			}
			if (do_param == 1)
				badarg = 1;
		}
		args++;
	}

	if (!ctx)
		badarg = 1;

	if (badarg) {
bad:
		BIO_printf(bio_err, "Usage: genpkey [options]\n");
		BIO_printf(bio_err, "where options may be\n");
		BIO_printf(bio_err, "-out file          output file\n");
		BIO_printf(bio_err, "-outform X         output format (DER or PEM)\n");
		BIO_printf(bio_err, "-pass arg          output file pass phrase source\n");
		BIO_printf(bio_err, "-<cipher>          use cipher <cipher> to encrypt the key\n");
		BIO_printf(bio_err, "-paramfile file    parameters file\n");
		BIO_printf(bio_err, "-algorithm alg     the public key algorithm\n");
		BIO_printf(bio_err, "-pkeyopt opt:value set the public key algorithm option <opt>\n"
		    "                   to value <value>\n");
		BIO_printf(bio_err, "-genparam          generate parameters, not key\n");
		BIO_printf(bio_err, "-text              print the in text\n");
		BIO_printf(bio_err, "NB: options order may be important!  See the manual page.\n");
		goto end;
	}
	if (!app_passwd(bio_err, passarg, NULL, &pass, NULL)) {
		BIO_puts(bio_err, "Error getting password\n");
		goto end;
	}
	if (outfile) {
		if (!(out = BIO_new_file(outfile, "wb"))) {

			BIO_printf(bio_err,
			    "Can't open output file %s\n", outfile);
			goto end;
		}
	} else {
		out = BIO_new_fp(stdout, BIO_NOCLOSE);
	}

	EVP_PKEY_CTX_set_cb(ctx, genpkey_cb);
	EVP_PKEY_CTX_set_app_data(ctx, bio_err);

	if (do_param) {
		if (EVP_PKEY_paramgen(ctx, &pkey) <= 0) {
			BIO_puts(bio_err, "Error generating parameters\n");
			ERR_print_errors(bio_err);
			goto end;
		}
	} else {
		if (EVP_PKEY_keygen(ctx, &pkey) <= 0) {
			BIO_puts(bio_err, "Error generating key\n");
			ERR_print_errors(bio_err);
			goto end;
		}
	}

	if (do_param)
		rv = PEM_write_bio_Parameters(out, pkey);
	else if (outformat == FORMAT_PEM)
		rv = PEM_write_bio_PrivateKey(out, pkey, cipher, NULL, 0,
		    NULL, pass);
	else if (outformat == FORMAT_ASN1)
		rv = i2d_PrivateKey_bio(out, pkey);
	else {
		BIO_printf(bio_err, "Bad format specified for key\n");
		goto end;
	}

	if (rv <= 0) {
		BIO_puts(bio_err, "Error writing key\n");
		ERR_print_errors(bio_err);
	}
	if (text) {
		if (do_param)
			rv = EVP_PKEY_print_params(out, pkey, 0, NULL);
		else
			rv = EVP_PKEY_print_private(out, pkey, 0, NULL);

		if (rv <= 0) {
			BIO_puts(bio_err, "Error printing key\n");
			ERR_print_errors(bio_err);
		}
	}
	ret = 0;

end:
	if (pkey)
		EVP_PKEY_free(pkey);
	if (ctx)
		EVP_PKEY_CTX_free(ctx);
	if (out)
		BIO_free_all(out);
	BIO_free(in);
	free(pass);

	return ret;
}

static int
init_keygen_file(BIO * err, EVP_PKEY_CTX ** pctx,
    const char *file)
{
	BIO *pbio;
	EVP_PKEY *pkey = NULL;
	EVP_PKEY_CTX *ctx = NULL;
	if (*pctx) {
		BIO_puts(err, "Parameters already set!\n");
		return 0;







>
>
>
>
>
>
>
>
>
>
>
>
>

>
>
>
>
>
|
>
>
>
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>




<
<

|
<
<

<

<


<
<







>
>
|

<
<
|
|
<
<
<
<
<
<
|
<
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
|
<
|
>
|
<
<
<
<
<
<
<
<
<
|
<
<
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
|



|
|
>
|
|









|













|

|
|
|
|










|
|











|
<
|
<
|
<
|







|
<







61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220


221
222


223

224

225
226


227
228
229
230
231
232
233
234
235
236
237


238
239






240

241





























242

243
244
245









246


247























248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309

310

311

312
313
314
315
316
317
318
319
320

321
322
323
324
325
326
327

#include "apps.h"

#include <openssl/err.h>
#include <openssl/evp.h>
#include <openssl/pem.h>

static int init_keygen_file(BIO * err, EVP_PKEY_CTX **pctx, const char *file);
static int genpkey_cb(EVP_PKEY_CTX * ctx);

struct {
	const EVP_CIPHER *cipher;
	EVP_PKEY_CTX **ctx;
	int do_param;
	char *outfile;
	int outformat;
	char *passarg;
	int text;
} genpkey_config;

static int
genpkey_opt_algorithm(char *arg)
{
	if (!init_gen_str(bio_err, genpkey_config.ctx, arg,
	    genpkey_config.do_param))
		return (1);

	return (0);
}

static int
genpkey_opt_cipher(int argc, char **argv, int *argsused)
{
	char *name = argv[0];

	if (*name++ != '-')
		return (1);

	if (genpkey_config.do_param == 1)
		return (1);

	if (strcmp(name, "none") == 0) {
		genpkey_config.cipher = NULL;
		*argsused = 1;
		return (0);
	}

	if ((genpkey_config.cipher = EVP_get_cipherbyname(name)) != NULL) {
		*argsused = 1;
		return (0);
	}

	return (1);
}

static int
genpkey_opt_paramfile(char *arg)
{
	if (genpkey_config.do_param == 1)
		return (1);
	if (!init_keygen_file(bio_err, genpkey_config.ctx, arg))
		return (1);

	return (0);
}

static int
genpkey_opt_pkeyopt(char *arg)
{
	if (*genpkey_config.ctx == NULL) {
		BIO_puts(bio_err, "No keytype specified\n");
		return (1);
	}

	if (pkey_ctrl_string(*genpkey_config.ctx, arg) <= 0) {
		BIO_puts(bio_err, "parameter setting error\n");
		ERR_print_errors(bio_err);
		return (1);
	}

	return (0);
}

struct option genpkey_options[] = {
	{
		.name = "algorithm",
		.argname = "name",
		.desc = "Public key algorithm to use (must precede -pkeyopt)",
		.type = OPTION_ARG_FUNC,
		.opt.argfunc = genpkey_opt_algorithm,
	},
	{
		.name = "genparam",
		.desc = "Generate a set of parameters instead of a private key",
		.type = OPTION_FLAG,
		.opt.flag = &genpkey_config.do_param,
	},
	{
		.name = "out",
		.argname = "file",
		.desc = "Output file to write to (default stdout)",
		.type = OPTION_ARG,
		.opt.arg = &genpkey_config.outfile,
	},
	{
		.name = "outform",
		.argname = "format",
		.desc = "Output format (DER or PEM)",
		.type = OPTION_ARG_FORMAT,
		.opt.value = &genpkey_config.outformat,
	},
	{
		.name = "paramfile",
		.argname = "file",
		.desc = "File to load public key algorithm parameters from\n"
		    "(must precede -pkeyopt)",
		.type = OPTION_ARG_FUNC,
		.opt.argfunc = genpkey_opt_paramfile,
	},
	{
		.name = "pass",
		.argname = "arg",
		.desc = "Output file password source",
		.type = OPTION_ARG,
		.opt.arg = &genpkey_config.passarg,
	},
	{
		.name = "pkeyopt",
		.argname = "opt:value",
		.desc = "Set public key algorithm option to the given value",
		.type = OPTION_ARG_FUNC,
		.opt.argfunc = genpkey_opt_pkeyopt,
	},
	{
		.name = "text",
		.desc = "Print the private/public key in human readable form",
		.type = OPTION_FLAG,
		.opt.flag = &genpkey_config.text,
	},
	{
		.name = NULL,
		.type = OPTION_ARGV_FUNC,
		.opt.argvfunc = genpkey_opt_cipher,
	},
	{NULL},
};

static void
genpkey_usage()
{
	fprintf(stderr,
	    "usage: genpkey [-algorithm alg] [cipher] [-genparam] [-out file]\n"
	    "    [-outform der | pem] [-paramfile file] [-pass arg]\n"
	    "    [-pkeyopt opt:value] [-text]\n\n");
	options_usage(genpkey_options);
}

int
genpkey_main(int argc, char **argv)
{


	BIO *in = NULL, *out = NULL;
	EVP_PKEY_CTX *ctx = NULL;


	EVP_PKEY *pkey = NULL;

	char *pass = NULL;

	int ret = 1, rv;



	if (single_execution) {
		if (pledge("stdio cpath wpath rpath tty", NULL) == -1) {
			perror("pledge");
			exit(1);
		}
	}

	memset(&genpkey_config, 0, sizeof(genpkey_config));
	genpkey_config.ctx = &ctx;
	genpkey_config.outformat = FORMAT_PEM;



	if (options_parse(argc, argv, genpkey_options, NULL, NULL) != 0) {
		genpkey_usage();






		goto end;

	}































	if (ctx == NULL) {
		genpkey_usage();
		goto end;









	}


























	if (!app_passwd(bio_err, genpkey_config.passarg, NULL, &pass, NULL)) {
		BIO_puts(bio_err, "Error getting password\n");
		goto end;
	}
	if (genpkey_config.outfile != NULL) {
		if ((out = BIO_new_file(genpkey_config.outfile, "wb")) ==
		    NULL) {
			BIO_printf(bio_err, "Can't open output file %s\n",
			    genpkey_config.outfile);
			goto end;
		}
	} else {
		out = BIO_new_fp(stdout, BIO_NOCLOSE);
	}

	EVP_PKEY_CTX_set_cb(ctx, genpkey_cb);
	EVP_PKEY_CTX_set_app_data(ctx, bio_err);

	if (genpkey_config.do_param) {
		if (EVP_PKEY_paramgen(ctx, &pkey) <= 0) {
			BIO_puts(bio_err, "Error generating parameters\n");
			ERR_print_errors(bio_err);
			goto end;
		}
	} else {
		if (EVP_PKEY_keygen(ctx, &pkey) <= 0) {
			BIO_puts(bio_err, "Error generating key\n");
			ERR_print_errors(bio_err);
			goto end;
		}
	}

	if (genpkey_config.do_param)
		rv = PEM_write_bio_Parameters(out, pkey);
	else if (genpkey_config.outformat == FORMAT_PEM)
		rv = PEM_write_bio_PrivateKey(out, pkey, genpkey_config.cipher,
		    NULL, 0, NULL, pass);
	else if (genpkey_config.outformat == FORMAT_ASN1)
		rv = i2d_PrivateKey_bio(out, pkey);
	else {
		BIO_printf(bio_err, "Bad format specified for key\n");
		goto end;
	}

	if (rv <= 0) {
		BIO_puts(bio_err, "Error writing key\n");
		ERR_print_errors(bio_err);
	}
	if (genpkey_config.text) {
		if (genpkey_config.do_param)
			rv = EVP_PKEY_print_params(out, pkey, 0, NULL);
		else
			rv = EVP_PKEY_print_private(out, pkey, 0, NULL);

		if (rv <= 0) {
			BIO_puts(bio_err, "Error printing key\n");
			ERR_print_errors(bio_err);
		}
	}
	ret = 0;

 end:

	EVP_PKEY_free(pkey);

	EVP_PKEY_CTX_free(ctx);

	BIO_free_all(out);
	BIO_free(in);
	free(pass);

	return ret;
}

static int
init_keygen_file(BIO * err, EVP_PKEY_CTX ** pctx, const char *file)

{
	BIO *pbio;
	EVP_PKEY *pkey = NULL;
	EVP_PKEY_CTX *ctx = NULL;
	if (*pctx) {
		BIO_puts(err, "Parameters already set!\n");
		return 0;
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301

302
303
304
305
306
307
308
		goto err;
	if (EVP_PKEY_keygen_init(ctx) <= 0)
		goto err;
	EVP_PKEY_free(pkey);
	*pctx = ctx;
	return 1;

err:
	BIO_puts(err, "Error initializing context\n");
	ERR_print_errors(err);
	if (ctx)
		EVP_PKEY_CTX_free(ctx);
	if (pkey)
		EVP_PKEY_free(pkey);
	return 0;

}

int
init_gen_str(BIO * err, EVP_PKEY_CTX ** pctx,
    const char *algname, int do_param)
{
	EVP_PKEY_CTX *ctx = NULL;
	const EVP_PKEY_ASN1_METHOD *ameth;

	int pkey_id;

	if (*pctx) {
		BIO_puts(err, "Algorithm already set!\n");
		return 0;
	}
	ameth = EVP_PKEY_asn1_find_str(NULL, algname, -1);







|


<
|
<
|





|
<

<

>







343
344
345
346
347
348
349
350
351
352

353

354
355
356
357
358
359
360

361

362
363
364
365
366
367
368
369
370
		goto err;
	if (EVP_PKEY_keygen_init(ctx) <= 0)
		goto err;
	EVP_PKEY_free(pkey);
	*pctx = ctx;
	return 1;

 err:
	BIO_puts(err, "Error initializing context\n");
	ERR_print_errors(err);

	EVP_PKEY_CTX_free(ctx);

	EVP_PKEY_free(pkey);
	return 0;

}

int
init_gen_str(BIO * err, EVP_PKEY_CTX ** pctx, const char *algname, int do_param)

{

	const EVP_PKEY_ASN1_METHOD *ameth;
	EVP_PKEY_CTX *ctx = NULL;
	int pkey_id;

	if (*pctx) {
		BIO_puts(err, "Algorithm already set!\n");
		return 0;
	}
	ameth = EVP_PKEY_asn1_find_str(NULL, algname, -1);
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
		if (EVP_PKEY_keygen_init(ctx) <= 0)
			goto err;
	}

	*pctx = ctx;
	return 1;

err:
	BIO_printf(err, "Error initializing %s context\n", algname);
	ERR_print_errors(err);
	if (ctx)
		EVP_PKEY_CTX_free(ctx);
	return 0;

}

static int
genpkey_cb(EVP_PKEY_CTX * ctx)
{







|


<
|







387
388
389
390
391
392
393
394
395
396

397
398
399
400
401
402
403
404
		if (EVP_PKEY_keygen_init(ctx) <= 0)
			goto err;
	}

	*pctx = ctx;
	return 1;

 err:
	BIO_printf(err, "Error initializing %s context\n", algname);
	ERR_print_errors(err);

	EVP_PKEY_CTX_free(ctx);
	return 0;

}

static int
genpkey_cb(EVP_PKEY_CTX * ctx)
{
Changes to jni/libressl/apps/openssl/genrsa.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: genrsa.c,v 1.9 2017/01/20 08:57:12 deraadt Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: genrsa.c,v 1.11 2018/02/07 05:47:55 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
			passargout = *(++argv);
		} else
			break;
		argv++;
		argc--;
	}
	if ((argc >= 1) && ((sscanf(*argv, "%d", &num) == 0) || (num < 0))) {
bad:
		BIO_printf(bio_err, "usage: genrsa [args] [numbits]\n");
		BIO_printf(bio_err, " -des            encrypt the generated key with DES in cbc mode\n");
		BIO_printf(bio_err, " -des3           encrypt the generated key with DES in ede cbc mode (168 bit key)\n");
#ifndef OPENSSL_NO_IDEA
		BIO_printf(bio_err, " -idea           encrypt the generated key with IDEA in cbc mode\n");
#endif
#ifndef OPENSSL_NO_AES







|







161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
			passargout = *(++argv);
		} else
			break;
		argv++;
		argc--;
	}
	if ((argc >= 1) && ((sscanf(*argv, "%d", &num) == 0) || (num < 0))) {
 bad:
		BIO_printf(bio_err, "usage: genrsa [args] [numbits]\n");
		BIO_printf(bio_err, " -des            encrypt the generated key with DES in cbc mode\n");
		BIO_printf(bio_err, " -des3           encrypt the generated key with DES in ede cbc mode (168 bit key)\n");
#ifndef OPENSSL_NO_IDEA
		BIO_printf(bio_err, " -idea           encrypt the generated key with IDEA in cbc mode\n");
#endif
#ifndef OPENSSL_NO_AES
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243

244
245
246
247
248
249
250
		cb_data.prompt_info = outfile;
		if (!PEM_write_bio_RSAPrivateKey(out, rsa, enc, NULL, 0,
			password_callback, &cb_data))
			goto err;
	}

	ret = 0;
err:
	if (bn)
		BN_free(bn);
	if (rsa)
		RSA_free(rsa);
	if (out)
		BIO_free_all(out);
	free(passout);

	if (ret != 0)
		ERR_print_errors(bio_err);

	return (ret);
}

static int







|
<
|
<
|
<
|

>







229
230
231
232
233
234
235
236

237

238

239
240
241
242
243
244
245
246
247
248
		cb_data.prompt_info = outfile;
		if (!PEM_write_bio_RSAPrivateKey(out, rsa, enc, NULL, 0,
			password_callback, &cb_data))
			goto err;
	}

	ret = 0;
 err:

	BN_free(bn);

	RSA_free(rsa);

	BIO_free_all(out);
	free(passout);

	if (ret != 0)
		ERR_print_errors(bio_err);

	return (ret);
}

static int
Changes to jni/libressl/apps/openssl/nseq.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: nseq.c,v 1.7 2017/01/20 08:57:12 deraadt Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
 * project 1999.
 */
/* ====================================================================
 * Copyright (c) 1999 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
/* $OpenBSD: nseq.c,v 1.8 2018/02/07 05:47:55 jsing Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
 * project 1999.
 */
/* ====================================================================
 * Copyright (c) 1999 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
163
164
165
166
167
168
169
170
171
172
173
174
175
176
	}
	for (i = 0; i < sk_X509_num(seq->certs); i++) {
		x509 = sk_X509_value(seq->certs, i);
		dump_cert_text(out, x509);
		PEM_write_bio_X509(out, x509);
	}
	ret = 0;
end:
	BIO_free(in);
	BIO_free_all(out);
	NETSCAPE_CERT_SEQUENCE_free(seq);

	return (ret);
}







|






163
164
165
166
167
168
169
170
171
172
173
174
175
176
	}
	for (i = 0; i < sk_X509_num(seq->certs); i++) {
		x509 = sk_X509_value(seq->certs, i);
		dump_cert_text(out, x509);
		PEM_write_bio_X509(out, x509);
	}
	ret = 0;
 end:
	BIO_free(in);
	BIO_free_all(out);
	NETSCAPE_CERT_SEQUENCE_free(seq);

	return (ret);
}
Changes to jni/libressl/apps/openssl/ocsp.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: ocsp.c,v 1.12 2017/01/21 09:29:09 deraadt Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
 * project 2000.
 */
/* ====================================================================
 * Copyright (c) 1999 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
/* $OpenBSD: ocsp.c,v 1.15 2018/02/07 05:49:36 jsing Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
 * project 2000.
 */
/* ====================================================================
 * Copyright (c) 1999 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
    STACK_OF(CONF_VALUE) * headers,
    OCSP_REQUEST * req, int req_timeout);

int
ocsp_main(int argc, char **argv)
{
	char **args;
	char *host = NULL, *port = NULL, *path = "/";
	char *reqin = NULL, *respin = NULL;
	char *reqout = NULL, *respout = NULL;
	char *signfile = NULL, *keyfile = NULL;
	char *rsignfile = NULL, *rkeyfile = NULL;
	char *outfile = NULL;
	int add_nonce = 1, noverify = 0, use_ssl = -1;
	STACK_OF(CONF_VALUE) * headers = NULL;







|







102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
    STACK_OF(CONF_VALUE) * headers,
    OCSP_REQUEST * req, int req_timeout);

int
ocsp_main(int argc, char **argv)
{
	char **args;
	char *host = NULL, *port = NULL, *path = NULL;
	char *reqin = NULL, *respin = NULL;
	char *reqout = NULL, *respout = NULL;
	char *signfile = NULL, *keyfile = NULL;
	char *rsignfile = NULL, *rkeyfile = NULL;
	char *outfile = NULL;
	int add_nonce = 1, noverify = 0, use_ssl = -1;
	STACK_OF(CONF_VALUE) * headers = NULL;
173
174
175
176
177
178
179
180

181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
					    "Illegal timeout value %s: %s\n",
					    *args, errstr);
					badarg = 1;
				}
			} else
				badarg = 1;
		} else if (!strcmp(*args, "-url")) {
			if (args[1]) {

				args++;
				if (!OCSP_parse_url(*args, &host, &port, &path, &use_ssl)) {
					BIO_printf(bio_err, "Error parsing URL\n");
					badarg = 1;
				}
			} else
				badarg = 1;
		} else if (!strcmp(*args, "-host")) {
			if (args[1]) {
				args++;
				host = *args;
			} else
				badarg = 1;
		} else if (!strcmp(*args, "-port")) {
			if (args[1]) {
				args++;
				port = *args;
			} else
				badarg = 1;
		} else if (!strcmp(*args, "-header")) {
			if (args[1] && args[2]) {
				if (!X509V3_add_value(args[1], args[2], &headers))







|
>








|





|







173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
					    "Illegal timeout value %s: %s\n",
					    *args, errstr);
					badarg = 1;
				}
			} else
				badarg = 1;
		} else if (!strcmp(*args, "-url")) {
			if (args[1] && host == NULL && port == NULL &&
			    path == NULL) {
				args++;
				if (!OCSP_parse_url(*args, &host, &port, &path, &use_ssl)) {
					BIO_printf(bio_err, "Error parsing URL\n");
					badarg = 1;
				}
			} else
				badarg = 1;
		} else if (!strcmp(*args, "-host")) {
			if (args[1] && use_ssl == -1) {
				args++;
				host = *args;
			} else
				badarg = 1;
		} else if (!strcmp(*args, "-port")) {
			if (args[1] && use_ssl == -1) {
				args++;
				port = *args;
			} else
				badarg = 1;
		} else if (!strcmp(*args, "-header")) {
			if (args[1] && args[2]) {
				if (!X509V3_add_value(args[1], args[2], &headers))
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
		} else if (!strcmp(*args, "-respout")) {
			if (args[1]) {
				args++;
				respout = *args;
			} else
				badarg = 1;
		} else if (!strcmp(*args, "-path")) {
			if (args[1]) {
				args++;
				path = *args;
			} else
				badarg = 1;
		} else if (!strcmp(*args, "-issuer")) {
			if (args[1]) {
				args++;







|







328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
		} else if (!strcmp(*args, "-respout")) {
			if (args[1]) {
				args++;
				respout = *args;
			} else
				badarg = 1;
		} else if (!strcmp(*args, "-path")) {
			if (args[1] && use_ssl == -1) {
				args++;
				path = *args;
			} else
				badarg = 1;
		} else if (!strcmp(*args, "-issuer")) {
			if (args[1]) {
				args++;
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
			goto end;
	}
	if (rdb) {
		i = make_ocsp_response(&resp, req, rdb, rca_cert, rsigner, rkey, rother, rflags, nmin, ndays);
		if (cbio)
			send_ocsp_response(cbio, resp);
	} else if (host) {
		resp = process_responder(bio_err, req, host, path,
		    port, use_ssl, headers, req_timeout);
		if (!resp)
			goto end;
	} else if (respin) {
		derbio = BIO_new_file(respin, "rb");
		if (!derbio) {
			BIO_printf(bio_err, "Error Opening OCSP response file\n");







|







626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
			goto end;
	}
	if (rdb) {
		i = make_ocsp_response(&resp, req, rdb, rca_cert, rsigner, rkey, rother, rflags, nmin, ndays);
		if (cbio)
			send_ocsp_response(cbio, resp);
	} else if (host) {
		resp = process_responder(bio_err, req, host, path ? path : "/",
		    port, use_ssl, headers, req_timeout);
		if (!resp)
			goto end;
	} else if (respin) {
		derbio = BIO_new_file(respin, "rb");
		if (!derbio) {
			BIO_printf(bio_err, "Error Opening OCSP response file\n");
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741

	}
	if (!print_ocsp_summary(out, bs, req, reqnames, ids, nsec, maxage))
		goto end;

	ret = 0;

end:
	ERR_print_errors(bio_err);
	X509_free(signer);
	X509_STORE_free(store);
	EVP_PKEY_free(key);
	EVP_PKEY_free(rkey);
	X509_free(issuer);
	X509_free(cert);







|







728
729
730
731
732
733
734
735
736
737
738
739
740
741
742

	}
	if (!print_ocsp_summary(out, bs, req, reqnames, ids, nsec, maxage))
		goto end;

	ret = 0;

 end:
	ERR_print_errors(bio_err);
	X509_free(signer);
	X509_STORE_free(store);
	EVP_PKEY_free(key);
	EVP_PKEY_free(rkey);
	X509_free(issuer);
	X509_free(cert);
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
	id = OCSP_cert_to_id(cert_id_md, cert, issuer);
	if (!id || !sk_OCSP_CERTID_push(ids, id))
		goto err;
	if (!OCSP_request_add0_id(*req, id))
		goto err;
	return 1;

err:
	BIO_printf(bio_err, "Error Creating OCSP request\n");
	return 0;
}

static int
add_ocsp_serial(OCSP_REQUEST ** req, char *serial, const EVP_MD * cert_id_md, X509 * issuer,
    STACK_OF(OCSP_CERTID) * ids)







|







779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
	id = OCSP_cert_to_id(cert_id_md, cert, issuer);
	if (!id || !sk_OCSP_CERTID_push(ids, id))
		goto err;
	if (!OCSP_request_add0_id(*req, id))
		goto err;
	return 1;

 err:
	BIO_printf(bio_err, "Error Creating OCSP request\n");
	return 0;
}

static int
add_ocsp_serial(OCSP_REQUEST ** req, char *serial, const EVP_MD * cert_id_md, X509 * issuer,
    STACK_OF(OCSP_CERTID) * ids)
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
	ASN1_INTEGER_free(sno);
	if (!id || !sk_OCSP_CERTID_push(ids, id))
		goto err;
	if (!OCSP_request_add0_id(*req, id))
		goto err;
	return 1;

err:
	BIO_printf(bio_err, "Error Creating OCSP request\n");
	return 0;
}

static int
print_ocsp_summary(BIO * out, OCSP_BASICRESP * bs, OCSP_REQUEST * req,
    STACK_OF(OPENSSL_STRING) * names,







|







815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
	ASN1_INTEGER_free(sno);
	if (!id || !sk_OCSP_CERTID_push(ids, id))
		goto err;
	if (!OCSP_request_add0_id(*req, id))
		goto err;
	return 1;

 err:
	BIO_printf(bio_err, "Error Creating OCSP request\n");
	return 0;
}

static int
print_ocsp_summary(BIO * out, OCSP_BASICRESP * bs, OCSP_REQUEST * req,
    STACK_OF(OPENSSL_STRING) * names,
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936

		cert_id_md = EVP_get_digestbyobj(cert_id_md_oid);
		if (!cert_id_md) {
			*resp = OCSP_response_create(OCSP_RESPONSE_STATUS_INTERNALERROR,
			    NULL);
			goto end;
		}
		if (ca_id)
			OCSP_CERTID_free(ca_id);
		ca_id = OCSP_cert_to_id(cert_id_md, NULL, ca);

		/* Is this request about our CA? */
		if (OCSP_id_issuer_cmp(ca_id, cid)) {
			OCSP_basic_add1_status(bs, cid,
			    V_OCSP_CERTSTATUS_UNKNOWN,
			    0, NULL,







<
|







922
923
924
925
926
927
928

929
930
931
932
933
934
935
936

		cert_id_md = EVP_get_digestbyobj(cert_id_md_oid);
		if (!cert_id_md) {
			*resp = OCSP_response_create(OCSP_RESPONSE_STATUS_INTERNALERROR,
			    NULL);
			goto end;
		}

		OCSP_CERTID_free(ca_id);
		ca_id = OCSP_cert_to_id(cert_id_md, NULL, ca);

		/* Is this request about our CA? */
		if (OCSP_id_issuer_cmp(ca_id, cid)) {
			OCSP_basic_add1_status(bs, cid,
			    V_OCSP_CERTSTATUS_UNKNOWN,
			    0, NULL,
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986

	OCSP_copy_nonce(bs, req);

	OCSP_basic_sign(bs, rcert, rkey, NULL, rother, flags);

	*resp = OCSP_response_create(OCSP_RESPONSE_STATUS_SUCCESSFUL, bs);

end:
	ASN1_TIME_free(thisupd);
	ASN1_TIME_free(nextupd);
	OCSP_CERTID_free(ca_id);
	OCSP_BASICRESP_free(bs);
	return ret;

}







|







972
973
974
975
976
977
978
979
980
981
982
983
984
985
986

	OCSP_copy_nonce(bs, req);

	OCSP_basic_sign(bs, rcert, rkey, NULL, rother, flags);

	*resp = OCSP_response_create(OCSP_RESPONSE_STATUS_SUCCESSFUL, bs);

 end:
	ASN1_TIME_free(thisupd);
	ASN1_TIME_free(nextupd);
	OCSP_CERTID_free(ca_id);
	OCSP_BASICRESP_free(bs);
	return ret;

}
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
	if (BIO_do_accept(acbio) <= 0) {
		BIO_printf(bio_err, "Error setting up accept BIO\n");
		ERR_print_errors(bio_err);
		goto err;
	}
	return acbio;

err:
	BIO_free_all(acbio);
	BIO_free(bufbio);
	return NULL;
}

static int
do_responder(OCSP_REQUEST ** preq, BIO ** pcbio, BIO * acbio, char *port)







|







1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
	if (BIO_do_accept(acbio) <= 0) {
		BIO_printf(bio_err, "Error setting up accept BIO\n");
		ERR_print_errors(bio_err);
		goto err;
	}
	return acbio;

 err:
	BIO_free_all(acbio);
	BIO_free(bufbio);
	return NULL;
}

static int
do_responder(OCSP_REQUEST ** preq, BIO ** pcbio, BIO * acbio, char *port)
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
			break;
		}
		if (rv == -1 || (pfd[0].revents & (POLLERR|POLLNVAL))) {
			BIO_puts(err, "Poll error\n");
			break;
		}
	}
err:
	if (ctx)
		OCSP_REQ_CTX_free(ctx);

	return rsp;
}

OCSP_RESPONSE *
process_responder(BIO * err, OCSP_REQUEST * req,
    char *host, char *path, char *port, int use_ssl,







|
<
|







1168
1169
1170
1171
1172
1173
1174
1175

1176
1177
1178
1179
1180
1181
1182
1183
			break;
		}
		if (rv == -1 || (pfd[0].revents & (POLLERR|POLLNVAL))) {
			BIO_puts(err, "Poll error\n");
			break;
		}
	}
 err:

	OCSP_REQ_CTX_free(ctx);

	return rsp;
}

OCSP_RESPONSE *
process_responder(BIO * err, OCSP_REQUEST * req,
    char *host, char *path, char *port, int use_ssl,
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
		SSL_CTX_set_mode(ctx, SSL_MODE_AUTO_RETRY);
		sbio = BIO_new_ssl(ctx, 1);
		cbio = BIO_push(sbio, cbio);
	}
	resp = query_responder(err, cbio, path, headers, req, req_timeout);
	if (!resp)
		BIO_printf(bio_err, "Error querying OCSP responder\n");
end:
	if (cbio)
		BIO_free_all(cbio);
	if (ctx)
		SSL_CTX_free(ctx);
	return resp;
}

#endif







|
<
|
<
|




1204
1205
1206
1207
1208
1209
1210
1211

1212

1213
1214
1215
1216
1217
		SSL_CTX_set_mode(ctx, SSL_MODE_AUTO_RETRY);
		sbio = BIO_new_ssl(ctx, 1);
		cbio = BIO_push(sbio, cbio);
	}
	resp = query_responder(err, cbio, path, headers, req, req_timeout);
	if (!resp)
		BIO_printf(bio_err, "Error querying OCSP responder\n");
 end:

	BIO_free_all(cbio);

	SSL_CTX_free(ctx);
	return resp;
}

#endif
Changes to jni/libressl/apps/openssl/openssl.1.
1
2
3
4
5
6
7
8
.\" $OpenBSD: openssl.1,v 1.86 2017/08/28 17:50:58 jsing Exp $
.\" ====================================================================
.\" Copyright (c) 1998-2002 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
|







1
2
3
4
5
6
7
8
.\" $OpenBSD: openssl.1,v 1.89 2018/03/22 19:24:18 jmc Exp $
.\" ====================================================================
.\" Copyright (c) 1998-2002 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
.\" The licence and distribution terms for any publically available version or
.\" derivative of this code cannot be changed.  i.e. this code cannot simply be
.\" copied and put under another distribution licence
.\" [including the GNU Public Licence.]
.\"
.\" OPENSSL
.\"
.Dd $Mdocdate: August 28 2017 $
.Dt OPENSSL 1
.Os
.Sh NAME
.Nm openssl
.Nd OpenSSL command line tool
.Sh SYNOPSIS
.Nm







|







108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
.\" The licence and distribution terms for any publically available version or
.\" derivative of this code cannot be changed.  i.e. this code cannot simply be
.\" copied and put under another distribution licence
.\" [including the GNU Public Licence.]
.\"
.\" OPENSSL
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt OPENSSL 1
.Os
.Sh NAME
.Nm openssl
.Nd OpenSSL command line tool
.Sh SYNOPSIS
.Nm
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
The CA certificate file.
.It Fl config Ar file
Specify an alternative configuration file.
.It Fl days Ar arg
The number of days to certify the certificate for.
.It Fl enddate Ar date
Set the expiry date.
The format of the date is YYMMDDHHMMSSZ
.Pq the same as an ASN.1 UTCTime structure .
.It Fl extensions Ar section
The section of the configuration file containing certificate extensions
to be added when a certificate is issued (defaults to
.Cm x509_extensions
unless the
.Fl extfile
option is used).







|
|







356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
The CA certificate file.
.It Fl config Ar file
Specify an alternative configuration file.
.It Fl days Ar arg
The number of days to certify the certificate for.
.It Fl enddate Ar date
Set the expiry date.
The format of the date is [YY]YYMMDDHHMMSSZ,
with all four year digits required for dates from 2050 onwards.
.It Fl extensions Ar section
The section of the configuration file containing certificate extensions
to be added when a certificate is issued (defaults to
.Cm x509_extensions
unless the
.Fl extfile
option is used).
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
If it's necessary to include the same component twice,
then it can be preceded by a number and a
.Sq \&. .
.It Fl ss_cert Ar file
A single self-signed certificate to be signed by the CA.
.It Fl startdate Ar date
Set the start date.
The format of the date is YYMMDDHHMMSSZ
.Pq the same as an ASN.1 UTCTime structure .
.It Fl status Ar serial
Show the status of the certificate with serial number
.Ar serial .
.It Fl updatedb
Update database for expired certificates.
.It Fl verbose
Print extra details about the operations being performed.







|
|







488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
If it's necessary to include the same component twice,
then it can be preceded by a number and a
.Sq \&. .
.It Fl ss_cert Ar file
A single self-signed certificate to be signed by the CA.
.It Fl startdate Ar date
Set the start date.
The format of the date is [YY]YYMMDDHHMMSSZ,
with all four year digits required for dates from 2050 onwards.
.It Fl status Ar serial
Show the status of the certificate with serial number
.Ar serial .
.It Fl updatedb
Update database for expired certificates.
.It Fl verbose
Print extra details about the operations being performed.
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
.Pp
The actual permitted field names are any object identifier short or
long names.
These are compiled into
.Nm openssl
and include the usual values such as
.Cm commonName , countryName , localityName , organizationName ,
.Cm organizationUnitName , stateOrProvinceName .
Additionally,
.Cm emailAddress
is included as well as
.Cm name , surname , givenName , initials
and
.Cm dnQualifier .
.Pp







|







3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
.Pp
The actual permitted field names are any object identifier short or
long names.
These are compiled into
.Nm openssl
and include the usual values such as
.Cm commonName , countryName , localityName , organizationName ,
.Cm organizationalUnitName , stateOrProvinceName .
Additionally,
.Cm emailAddress
is included as well as
.Cm name , surname , givenName , initials
and
.Cm dnQualifier .
.Pp
3574
3575
3576
3577
3578
3579
3580

3581
3582
3583
3584
3585
3586
3587
.Op Fl cipher Ar cipherlist
.Op Fl connect Ar host Ns Op : Ns Ar port
.Op Fl crl_check
.Op Fl crl_check_all
.Op Fl crlf
.Op Fl debug
.Op Fl extended_crl

.Op Fl ign_eof
.Op Fl ignore_critical
.Op Fl issuer_checks
.Op Fl key Ar keyfile
.Op Fl msg
.Op Fl nbio
.Op Fl nbio_test







>







3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
.Op Fl cipher Ar cipherlist
.Op Fl connect Ar host Ns Op : Ns Ar port
.Op Fl crl_check
.Op Fl crl_check_all
.Op Fl crlf
.Op Fl debug
.Op Fl extended_crl
.Op Fl groups
.Op Fl ign_eof
.Op Fl ignore_critical
.Op Fl issuer_checks
.Op Fl key Ar keyfile
.Op Fl msg
.Op Fl nbio
.Op Fl nbio_test
3687
3688
3689
3690
3691
3692
3693


3694
3695
3696
3697
3698
3699
3700
character,
which is useful for numeric IPv6 addresses.
.It Fl crlf
Translate a line feed from the terminal into CR+LF,
as required by some servers.
.It Fl debug
Print extensive debugging information, including a hex dump of all traffic.


.It Fl ign_eof
Inhibit shutting down the connection when end of file is reached in the input.
.It Fl key Ar keyfile
The private key to use.
If not specified, the certificate file will be used.
.It Fl msg
Show all protocol messages with hex dump.







>
>







3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
character,
which is useful for numeric IPv6 addresses.
.It Fl crlf
Translate a line feed from the terminal into CR+LF,
as required by some servers.
.It Fl debug
Print extensive debugging information, including a hex dump of all traffic.
.It Fl groups Ar ecgroups
Specify a colon-separated list of permitted EC curve groups.
.It Fl ign_eof
Inhibit shutting down the connection when end of file is reached in the input.
.It Fl key Ar keyfile
The private key to use.
If not specified, the certificate file will be used.
.It Fl msg
Show all protocol messages with hex dump.
Changes to jni/libressl/apps/openssl/openssl.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: openssl.c,v 1.25 2017/01/20 08:57:12 deraadt Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: openssl.c,v 1.26 2018/02/07 05:47:55 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
		}
		modes[type] = 0;
	} else {
		errstr = "invalid mode";
		goto err;
	}

err:
	if (errstr) {
		/* we cannot use bio_err here */
		fprintf(stderr, "openssl (lock_dbg_cb): %s (mode=%d, type=%d) at %s:%d\n",
		    errstr, mode, type, file, line);
	}
}








|







381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
		}
		modes[type] = 0;
	} else {
		errstr = "invalid mode";
		goto err;
	}

 err:
	if (errstr) {
		/* we cannot use bio_err here */
		fprintf(stderr, "openssl (lock_dbg_cb): %s (mode=%d, type=%d) at %s:%d\n",
		    errstr, mode, type, file, line);
	}
}

558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
		if (ret != 0)
			BIO_printf(bio_err, "error in %s\n", argv[0]);
		(void) BIO_flush(bio_err);
	}
	BIO_printf(bio_err, "bad exit\n");
	ret = 1;

end:
	free(to_free);

	if (config != NULL) {
		NCONF_free(config);
		config = NULL;
	}
	if (prog != NULL)







|







558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
		if (ret != 0)
			BIO_printf(bio_err, "error in %s\n", argv[0]);
		(void) BIO_flush(bio_err);
	}
	BIO_printf(bio_err, "bad exit\n");
	ret = 1;

 end:
	free(to_free);

	if (config != NULL) {
		NCONF_free(config);
		config = NULL;
	}
	if (prog != NULL)
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
#else
			BIO_printf(bio_err, "%-18s", fp->name);
#endif
		}
		BIO_printf(bio_err, "\n\n");
		ret = 0;
	}
end:
	return (ret);
}

static int
SortFnByName(const void *_f1, const void *_f2)
{
	const FUNCTION *f1 = _f1;







|







705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
#else
			BIO_printf(bio_err, "%-18s", fp->name);
#endif
		}
		BIO_printf(bio_err, "\n\n");
		ret = 0;
	}
 end:
	return (ret);
}

static int
SortFnByName(const void *_f1, const void *_f2)
{
	const FUNCTION *f1 = _f1;
Changes to jni/libressl/apps/openssl/passwd.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: passwd.c,v 1.8 2017/01/20 08:57:12 deraadt Exp $ */

#if defined OPENSSL_NO_MD5
#define NO_MD5CRYPT_1
#endif

#if !defined(OPENSSL_NO_DES) || !defined(NO_MD5CRYPT_1)

|







1
2
3
4
5
6
7
8
/* $OpenBSD: passwd.c,v 1.9 2018/02/07 05:47:55 jsing Exp $ */

#if defined OPENSSL_NO_MD5
#define NO_MD5CRYPT_1
#endif

#if !defined(OPENSSL_NO_DES) || !defined(NO_MD5CRYPT_1)

269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
					goto err;
			}
			done = (r <= 0);
		} while (!done);
	}
	ret = 0;

err:
	ERR_print_errors(bio_err);

	free(salt_malloc);
	free(passwd_malloc);

	BIO_free(in);
	BIO_free_all(out);







|







269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
					goto err;
			}
			done = (r <= 0);
		} while (!done);
	}
	ret = 0;

 err:
	ERR_print_errors(bio_err);

	free(salt_malloc);
	free(passwd_malloc);

	BIO_free(in);
	BIO_free_all(out);
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
		BIO_printf(out, "%s\t%s\n", passwd, hash);
	else if (table && reverse)
		BIO_printf(out, "%s\t%s\n", hash, passwd);
	else
		BIO_printf(out, "%s\n", hash);
	return 1;

err:
	return 0;
}
#else

int
passwd_main(int argc, char **argv)
{
	fputs("Program not available.\n", stderr)
	return (1);
}
#endif







|











473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
		BIO_printf(out, "%s\t%s\n", passwd, hash);
	else if (table && reverse)
		BIO_printf(out, "%s\t%s\n", hash, passwd);
	else
		BIO_printf(out, "%s\n", hash);
	return 1;

 err:
	return 0;
}
#else

int
passwd_main(int argc, char **argv)
{
	fputs("Program not available.\n", stderr)
	return (1);
}
#endif
Changes to jni/libressl/apps/openssl/pkcs12.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: pkcs12.c,v 1.9 2017/01/20 08:57:12 deraadt Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
 * project.
 */
/* ====================================================================
 * Copyright (c) 1999-2006 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
/* $OpenBSD: pkcs12.c,v 1.10 2018/02/07 05:47:55 jsing Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
 * project.
 */
/* ====================================================================
 * Copyright (c) 1999-2006 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
	}
	if (!dump_certs_keys_p12(out, p12, cpass, -1, options, passout)) {
		BIO_printf(bio_err, "Error outputting keys and certificates\n");
		ERR_print_errors(bio_err);
		goto end;
	}
	ret = 0;
end:
	if (p12)
		PKCS12_free(p12);
	BIO_free(in);
	BIO_free_all(out);
	if (canames)
		sk_OPENSSL_STRING_free(canames);
	free(passin);







|







580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
	}
	if (!dump_certs_keys_p12(out, p12, cpass, -1, options, passout)) {
		BIO_printf(bio_err, "Error outputting keys and certificates\n");
		ERR_print_errors(bio_err);
		goto end;
	}
	ret = 0;
 end:
	if (p12)
		PKCS12_free(p12);
	BIO_free(in);
	BIO_free_all(out);
	if (canames)
		sk_OPENSSL_STRING_free(canames);
	free(passin);
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
			goto err;
		}
		sk_PKCS12_SAFEBAG_pop_free(bags, PKCS12_SAFEBAG_free);
		bags = NULL;
	}
	ret = 1;

err:

	if (asafes)
		sk_PKCS7_pop_free(asafes, PKCS7_free);
	return ret;
}

int







|







633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
			goto err;
		}
		sk_PKCS12_SAFEBAG_pop_free(bags, PKCS12_SAFEBAG_free);
		bags = NULL;
	}
	ret = 1;

 err:

	if (asafes)
		sk_PKCS7_pop_free(asafes, PKCS7_free);
	return ret;
}

int
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
			 * set an appropriate error value in the context
			 */
			i = -1;
		chn = NULL;
		goto err;
	} else
		chn = X509_STORE_CTX_get1_chain(&store_ctx);
err:
	X509_STORE_CTX_cleanup(&store_ctx);
	*chain = chn;

	return i;
}

int







|







764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
			 * set an appropriate error value in the context
			 */
			i = -1;
		chn = NULL;
		goto err;
	} else
		chn = X509_STORE_CTX_get1_chain(&store_ctx);
 err:
	X509_STORE_CTX_cleanup(&store_ctx);
	*chain = chn;

	return i;
}

int
Changes to jni/libressl/apps/openssl/pkcs7.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: pkcs7.c,v 1.9 2017/01/20 08:57:12 deraadt Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: pkcs7.c,v 1.10 2018/02/07 05:47:55 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
		if (!i) {
			BIO_printf(bio_err, "unable to write pkcs7 object\n");
			ERR_print_errors(bio_err);
			goto end;
		}
	}
	ret = 0;
end:
	if (p7 != NULL)
		PKCS7_free(p7);
	if (in != NULL)
		BIO_free(in);
	if (out != NULL)
		BIO_free_all(out);

	return (ret);
}







|









273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
		if (!i) {
			BIO_printf(bio_err, "unable to write pkcs7 object\n");
			ERR_print_errors(bio_err);
			goto end;
		}
	}
	ret = 0;
 end:
	if (p7 != NULL)
		PKCS7_free(p7);
	if (in != NULL)
		BIO_free(in);
	if (out != NULL)
		BIO_free_all(out);

	return (ret);
}
Changes to jni/libressl/apps/openssl/pkcs8.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: pkcs8.c,v 1.10 2017/01/20 08:57:12 deraadt Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
 * project 1999-2004.
 */
/* ====================================================================
 * Copyright (c) 1999 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
/* $OpenBSD: pkcs8.c,v 1.11 2018/02/07 05:47:55 jsing Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
 * project 1999-2004.
 */
/* ====================================================================
 * Copyright (c) 1999 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
		i2d_PrivateKey_bio(out, pkey);
	else {
		BIO_printf(bio_err, "Bad format specified for key\n");
		goto end;
	}
	ret = 0;

end:
	X509_SIG_free(p8);
	PKCS8_PRIV_KEY_INFO_free(p8inf);
	EVP_PKEY_free(pkey);
	BIO_free_all(out);
	BIO_free(in);
	free(passin);
	free(passout);

	return ret;
}







|










402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
		i2d_PrivateKey_bio(out, pkey);
	else {
		BIO_printf(bio_err, "Bad format specified for key\n");
		goto end;
	}
	ret = 0;

 end:
	X509_SIG_free(p8);
	PKCS8_PRIV_KEY_INFO_free(p8inf);
	EVP_PKEY_free(pkey);
	BIO_free_all(out);
	BIO_free(in);
	free(passin);
	free(passout);

	return ret;
}
Changes to jni/libressl/apps/openssl/pkey.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: pkey.c,v 1.9 2017/01/20 08:57:12 deraadt Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
 * project 2006
 */
/* ====================================================================
 * Copyright (c) 2006 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
/* $OpenBSD: pkey.c,v 1.10 2018/02/07 05:47:55 jsing Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
 * project 2006
 */
/* ====================================================================
 * Copyright (c) 2006 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
				badarg = 1;
			}
		}
		args++;
	}

	if (badarg) {
bad:
		BIO_printf(bio_err, "Usage pkey [options]\n");
		BIO_printf(bio_err, "where options are\n");
		BIO_printf(bio_err, "-in file        input file\n");
		BIO_printf(bio_err, "-inform X       input format (DER or PEM)\n");
		BIO_printf(bio_err, "-passin arg     input file pass phrase source\n");
		BIO_printf(bio_err, "-outform X      output format (DER or PEM)\n");
		BIO_printf(bio_err, "-out file       output file\n");







|







145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
				badarg = 1;
			}
		}
		args++;
	}

	if (badarg) {
 bad:
		BIO_printf(bio_err, "Usage pkey [options]\n");
		BIO_printf(bio_err, "where options are\n");
		BIO_printf(bio_err, "-in file        input file\n");
		BIO_printf(bio_err, "-inform X       input format (DER or PEM)\n");
		BIO_printf(bio_err, "-passin arg     input file pass phrase source\n");
		BIO_printf(bio_err, "-outform X      output format (DER or PEM)\n");
		BIO_printf(bio_err, "-out file       output file\n");
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
		if (pubtext)
			EVP_PKEY_print_public(out, pkey, 0, NULL);
		else
			EVP_PKEY_print_private(out, pkey, 0, NULL);
	}
	ret = 0;

end:
	EVP_PKEY_free(pkey);
	BIO_free_all(out);
	BIO_free(in);
	free(passin);
	free(passout);

	return ret;
}







|








205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
		if (pubtext)
			EVP_PKEY_print_public(out, pkey, 0, NULL);
		else
			EVP_PKEY_print_private(out, pkey, 0, NULL);
	}
	ret = 0;

 end:
	EVP_PKEY_free(pkey);
	BIO_free_all(out);
	BIO_free(in);
	free(passin);
	free(passout);

	return ret;
}
Changes to jni/libressl/apps/openssl/pkeyparam.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: pkeyparam.c,v 1.10 2017/01/20 08:57:12 deraadt Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
 * project 2006
 */
/* ====================================================================
 * Copyright (c) 2006 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
/* $OpenBSD: pkeyparam.c,v 1.11 2018/02/07 05:47:55 jsing Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
 * project 2006
 */
/* ====================================================================
 * Copyright (c) 2006 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
161
162
163
164
165
166
167
168
169
170
171
172
173
174
		PEM_write_bio_Parameters(out, pkey);

	if (pkeyparam_config.text)
		EVP_PKEY_print_params(out, pkey, 0, NULL);

	ret = 0;

end:
	EVP_PKEY_free(pkey);
	BIO_free_all(out);
	BIO_free(in);

	return ret;
}







|






161
162
163
164
165
166
167
168
169
170
171
172
173
174
		PEM_write_bio_Parameters(out, pkey);

	if (pkeyparam_config.text)
		EVP_PKEY_print_params(out, pkey, 0, NULL);

	ret = 0;

 end:
	EVP_PKEY_free(pkey);
	BIO_free_all(out);
	BIO_free(in);

	return ret;
}
Changes to jni/libressl/apps/openssl/pkeyutl.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: pkeyutl.c,v 1.11 2017/01/20 08:57:12 deraadt Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
 * project 2006.
 */
/* ====================================================================
 * Copyright (c) 2006 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
/* $OpenBSD: pkeyutl.c,v 1.14 2018/02/07 05:47:55 jsing Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
 * project 2006.
 */
/* ====================================================================
 * Copyright (c) 2006 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
	char badarg = 0, rev = 0;
	char hexdump = 0, asn1parse = 0;
	EVP_PKEY_CTX *ctx = NULL;
	char *passargin = NULL;
	int keysize = -1;

	unsigned char *buf_in = NULL, *buf_out = NULL, *sig = NULL;
	size_t buf_outlen;
	int buf_inlen = 0, siglen = -1;

	int ret = 1, rv = -1;

	if (single_execution) {
		if (pledge("stdio cpath wpath rpath tty", NULL) == -1) {
			perror("pledge");







|







91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
	char badarg = 0, rev = 0;
	char hexdump = 0, asn1parse = 0;
	EVP_PKEY_CTX *ctx = NULL;
	char *passargin = NULL;
	int keysize = -1;

	unsigned char *buf_in = NULL, *buf_out = NULL, *sig = NULL;
	size_t buf_outlen = 0;
	int buf_inlen = 0, siglen = -1;

	int ret = 1, rv = -1;

	if (single_execution) {
		if (pledge("stdio cpath wpath rpath tty", NULL) == -1) {
			perror("pledge");
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
		if (!ASN1_parse_dump(out, buf_out, buf_outlen, 1, -1))
			ERR_print_errors(bio_err);
	} else if (hexdump)
		BIO_dump(out, (char *) buf_out, buf_outlen);
	else
		BIO_write(out, buf_out, buf_outlen);

end:
	if (ctx)
		EVP_PKEY_CTX_free(ctx);
	BIO_free(in);
	BIO_free_all(out);
	free(buf_in);
	free(buf_out);
	free(sig);

	return ret;







|
<
|







305
306
307
308
309
310
311
312

313
314
315
316
317
318
319
320
		if (!ASN1_parse_dump(out, buf_out, buf_outlen, 1, -1))
			ERR_print_errors(bio_err);
	} else if (hexdump)
		BIO_dump(out, (char *) buf_out, buf_outlen);
	else
		BIO_write(out, buf_out, buf_outlen);

 end:

	EVP_PKEY_CTX_free(ctx);
	BIO_free(in);
	BIO_free_all(out);
	free(buf_in);
	free(buf_out);
	free(sig);

	return ret;
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
		break;
	}

	if (rv <= 0) {
		EVP_PKEY_CTX_free(ctx);
		ctx = NULL;
	}
end:

	free(passin);

	return ctx;


}







|







423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
		break;
	}

	if (rv <= 0) {
		EVP_PKEY_CTX_free(ctx);
		ctx = NULL;
	}
 end:

	free(passin);

	return ctx;


}
Changes to jni/libressl/apps/openssl/prime.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: prime.c,v 1.10 2015/10/17 15:00:11 doug Exp $ */
/* ====================================================================
 * Copyright (c) 2004 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: prime.c,v 1.11 2018/02/07 05:47:55 jsing Exp $ */
/* ====================================================================
 * Copyright (c) 2004 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
187
188
189
190
191
192
193
194
195
196
197
198
199
		BIO_printf(bio_out, "%s is %sprime\n", prime,
		    BN_is_prime_ex(bn, prime_config.checks,
			NULL, NULL) ? "" : "not ");
	}

	ret = 0;

end:
	BN_free(bn);
	BIO_free_all(bio_out);

	return (ret);
}







|





187
188
189
190
191
192
193
194
195
196
197
198
199
		BIO_printf(bio_out, "%s is %sprime\n", prime,
		    BN_is_prime_ex(bn, prime_config.checks,
			NULL, NULL) ? "" : "not ");
	}

	ret = 0;

 end:
	BN_free(bn);
	BIO_free_all(bio_out);

	return (ret);
}
Changes to jni/libressl/apps/openssl/rand.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: rand.c,v 1.11 2017/01/20 08:57:12 deraadt Exp $ */
/* ====================================================================
 * Copyright (c) 1998-2001 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: rand.c,v 1.13 2018/02/07 05:47:55 jsing Exp $ */
/* ====================================================================
 * Copyright (c) 1998-2001 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
172
173
174
175
176
177
178
179
180
181
182
183
184
185

	if (rand_config.hex)
		BIO_puts(out, "\n");
	(void) BIO_flush(out);

	ret = 0;

err:
	ERR_print_errors(bio_err);
	if (out)
		BIO_free_all(out);

	return (ret);
}







|

<
|



172
173
174
175
176
177
178
179
180

181
182
183
184

	if (rand_config.hex)
		BIO_puts(out, "\n");
	(void) BIO_flush(out);

	ret = 0;

 err:
	ERR_print_errors(bio_err);

	BIO_free_all(out);

	return (ret);
}
Changes to jni/libressl/apps/openssl/req.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: req.c,v 1.14 2017/01/20 08:57:12 deraadt Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: req.c,v 1.15 2018/02/07 05:47:55 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
			break;
		}
		argc--;
		argv++;
	}

	if (badops) {
bad:
		BIO_printf(bio_err, "%s [options] <infile >outfile\n", prog);
		BIO_printf(bio_err, "where options  are\n");
		BIO_printf(bio_err, " -inform arg    input format - DER or PEM\n");
		BIO_printf(bio_err, " -outform arg   output format - DER or PEM\n");
		BIO_printf(bio_err, " -in arg        input file\n");
		BIO_printf(bio_err, " -out arg       output file\n");
		BIO_printf(bio_err, " -text          text form of request\n");







|







336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
			break;
		}
		argc--;
		argv++;
	}

	if (badops) {
 bad:
		BIO_printf(bio_err, "%s [options] <infile >outfile\n", prog);
		BIO_printf(bio_err, "where options  are\n");
		BIO_printf(bio_err, " -inform arg    input format - DER or PEM\n");
		BIO_printf(bio_err, " -outform arg   output format - DER or PEM\n");
		BIO_printf(bio_err, " -in arg        input file\n");
		BIO_printf(bio_err, " -out arg       output file\n");
		BIO_printf(bio_err, " -text          text form of request\n");
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
		}
		if ((p != NULL) && (strcmp(p, "no") == 0))
			cipher = NULL;
		if (nodes)
			cipher = NULL;

		i = 0;
loop:
		if (!PEM_write_bio_PrivateKey(out, pkey, cipher,
			NULL, 0, NULL, passout)) {
			if ((ERR_GET_REASON(ERR_peek_error()) ==
				PEM_R_PROBLEMS_GETTING_PASSWORD) && (i < 3)) {
				ERR_clear_error();
				i++;
				goto loop;







|







587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
		}
		if ((p != NULL) && (strcmp(p, "no") == 0))
			cipher = NULL;
		if (nodes)
			cipher = NULL;

		i = 0;
 loop:
		if (!PEM_write_bio_PrivateKey(out, pkey, cipher,
			NULL, 0, NULL, passout)) {
			if ((ERR_GET_REASON(ERR_peek_error()) ==
				PEM_R_PROBLEMS_GETTING_PASSWORD) && (i < 3)) {
				ERR_clear_error();
				i++;
				goto loop;
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
		}
		if (!i) {
			BIO_printf(bio_err, "unable to write X509 certificate\n");
			goto end;
		}
	}
	ex = 0;
end:
	if (ex) {
		ERR_print_errors(bio_err);
	}
	if ((req_conf != NULL) && (req_conf != config))
		NCONF_free(req_conf);
	BIO_free(in);
	BIO_free_all(out);







|







854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
		}
		if (!i) {
			BIO_printf(bio_err, "unable to write X509 certificate\n");
			goto end;
		}
	}
	ex = 0;
 end:
	if (ex) {
		ERR_print_errors(bio_err);
	}
	if ((req_conf != NULL) && (req_conf != config))
		NCONF_free(req_conf);
	BIO_free(in);
	BIO_free_all(out);
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
	if (!i)
		goto err;

	if (!X509_REQ_set_pubkey(req, pkey))
		goto err;

	ret = 1;
err:
	return (ret);
}

/*
 * subject is expected to be in the format /type0=value0/type1=value1/type2=...
 * where characters may be escaped by \
 */







|







939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
	if (!i)
		goto err;

	if (!X509_REQ_set_pubkey(req, pkey))
		goto err;

	ret = 1;
 err:
	return (ret);
}

/*
 * subject is expected to be in the format /type0=value0/type1=value1/type2=...
 * where characters may be escaped by \
 */
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
		BIO_printf(bio_err, "There are quite a few fields but you can leave some blank\n");
		BIO_printf(bio_err, "For some fields there will be a default value,\n");
		BIO_printf(bio_err, "If you enter '.', the field will be left blank.\n");
		BIO_printf(bio_err, "-----\n");
	}
	if (sk_CONF_VALUE_num(dn_sk)) {
		i = -1;
start:		for (;;) {
			int ret;
			i++;
			if (sk_CONF_VALUE_num(dn_sk) <= i)
				break;

			v = sk_CONF_VALUE_value(dn_sk, i);
			p = q = NULL;







|







992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
		BIO_printf(bio_err, "There are quite a few fields but you can leave some blank\n");
		BIO_printf(bio_err, "For some fields there will be a default value,\n");
		BIO_printf(bio_err, "If you enter '.', the field will be left blank.\n");
		BIO_printf(bio_err, "-----\n");
	}
	if (sk_CONF_VALUE_num(dn_sk)) {
		i = -1;
 start:		for (;;) {
			int ret;
			i++;
			if (sk_CONF_VALUE_num(dn_sk) <= i)
				break;

			v = sk_CONF_VALUE_value(dn_sk, i);
			p = q = NULL;
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224

static int
add_DN_object(X509_NAME * n, char *text, const char *def, char *value,
    int nid, int n_min, int n_max, unsigned long chtype, int mval)
{
	int i, ret = 0;
	char buf[1024];
start:
	if (!batch)
		BIO_printf(bio_err, "%s [%s]:", text, def);
	(void) BIO_flush(bio_err);
	if (value != NULL) {
		strlcpy(buf, value, sizeof buf);
		strlcat(buf, "\n", sizeof buf);
		BIO_printf(bio_err, "%s\n", value);







|







1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224

static int
add_DN_object(X509_NAME * n, char *text, const char *def, char *value,
    int nid, int n_min, int n_max, unsigned long chtype, int mval)
{
	int i, ret = 0;
	char buf[1024];
 start:
	if (!batch)
		BIO_printf(bio_err, "%s [%s]:", text, def);
	(void) BIO_flush(bio_err);
	if (value != NULL) {
		strlcpy(buf, value, sizeof buf);
		strlcat(buf, "\n", sizeof buf);
		BIO_printf(bio_err, "%s\n", value);
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
	buf[--i] = '\0';
	if (!req_check_len(i, n_min, n_max))
		goto start;
	if (!X509_NAME_add_entry_by_NID(n, nid, chtype,
		(unsigned char *) buf, -1, -1, mval))
		goto err;
	ret = 1;
err:
	return (ret);
}

static int
add_attribute_object(X509_REQ * req, char *text, const char *def,
    char *value, int nid, int n_min,
    int n_max, unsigned long chtype)
{
	int i;
	static char buf[1024];

start:
	if (!batch)
		BIO_printf(bio_err, "%s [%s]:", text, def);
	(void) BIO_flush(bio_err);
	if (value != NULL) {
		strlcpy(buf, value, sizeof buf);
		strlcat(buf, "\n", sizeof buf);
		BIO_printf(bio_err, "%s\n", value);







|











|







1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
	buf[--i] = '\0';
	if (!req_check_len(i, n_min, n_max))
		goto start;
	if (!X509_NAME_add_entry_by_NID(n, nid, chtype,
		(unsigned char *) buf, -1, -1, mval))
		goto err;
	ret = 1;
 err:
	return (ret);
}

static int
add_attribute_object(X509_REQ * req, char *text, const char *def,
    char *value, int nid, int n_min,
    int n_max, unsigned long chtype)
{
	int i;
	static char buf[1024];

 start:
	if (!batch)
		BIO_printf(bio_err, "%s [%s]:", text, def);
	(void) BIO_flush(bio_err);
	if (value != NULL) {
		strlcpy(buf, value, sizeof buf);
		strlcat(buf, "\n", sizeof buf);
		BIO_printf(bio_err, "%s\n", value);
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
	if (!X509_REQ_add1_attr_by_NID(req, nid, chtype,
		(unsigned char *) buf, -1)) {
		BIO_printf(bio_err, "Error adding attribute\n");
		ERR_print_errors(bio_err);
		goto err;
	}
	return (1);
err:
	return (0);
}

static int
req_check_len(int len, int n_min, int n_max)
{
	if ((n_min > 0) && (len < n_min)) {







|







1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
	if (!X509_REQ_add1_attr_by_NID(req, nid, chtype,
		(unsigned char *) buf, -1)) {
		BIO_printf(bio_err, "Error adding attribute\n");
		ERR_print_errors(bio_err);
		goto err;
	}
	return (1);
 err:
	return (0);
}

static int
req_check_len(int len, int n_min, int n_max)
{
	if ((n_min > 0) && (len < n_min)) {
Changes to jni/libressl/apps/openssl/rsa.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: rsa.c,v 1.9 2017/01/20 08:57:12 deraadt Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: rsa.c,v 1.10 2018/02/07 05:47:55 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
	}
	if (i <= 0) {
		BIO_printf(bio_err, "unable to write key\n");
		ERR_print_errors(bio_err);
	} else
		ret = 0;

end:
	BIO_free_all(out);
	RSA_free(rsa);
	free(passin);
	free(passout);

	return (ret);
}







|







435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
	}
	if (i <= 0) {
		BIO_printf(bio_err, "unable to write key\n");
		ERR_print_errors(bio_err);
	} else
		ret = 0;

 end:
	BIO_free_all(out);
	RSA_free(rsa);
	free(passin);
	free(passout);

	return (ret);
}
Changes to jni/libressl/apps/openssl/rsautl.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: rsautl.c,v 1.12 2017/08/28 17:50:58 jsing Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
 * project 2000.
 */
/* ====================================================================
 * Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
/* $OpenBSD: rsautl.c,v 1.13 2018/02/07 05:47:55 jsing Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
 * project 2000.
 */
/* ====================================================================
 * Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
			ERR_print_errors(bio_err);
		}
	} else if (hexdump)
		BIO_dump(out, (char *) rsa_out, rsa_outlen);
	else
		BIO_write(out, rsa_out, rsa_outlen);

end:
	RSA_free(rsa);
	BIO_free(in);
	BIO_free_all(out);
	free(rsa_in);
	free(rsa_out);
	free(passin);








|







293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
			ERR_print_errors(bio_err);
		}
	} else if (hexdump)
		BIO_dump(out, (char *) rsa_out, rsa_outlen);
	else
		BIO_write(out, rsa_out, rsa_outlen);

 end:
	RSA_free(rsa);
	BIO_free(in);
	BIO_free_all(out);
	free(rsa_in);
	free(rsa_out);
	free(passin);

Changes to jni/libressl/apps/openssl/s_cb.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: s_cb.c,v 1.8 2017/08/12 21:04:33 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: s_cb.c,v 1.9 2018/01/15 11:02:07 inoguchi Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
727
728
729
730
731
732
733








734
735
736
737
738
739
740
	case TLSEXT_TYPE_session_ticket:
		extname = "session ticket";
		break;

	case TLSEXT_TYPE_renegotiate:
		extname = "renegotiation info";
		break;









	default:
		extname = "unknown";
		break;

	}








>
>
>
>
>
>
>
>







727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
	case TLSEXT_TYPE_session_ticket:
		extname = "session ticket";
		break;

	case TLSEXT_TYPE_renegotiate:
		extname = "renegotiation info";
		break;

	case TLSEXT_TYPE_application_layer_protocol_negotiation:
		extname = "application layer protocol negotiation";
		break;

	case TLSEXT_TYPE_padding:
		extname = "TLS padding";
		break;

	default:
		extname = "unknown";
		break;

	}

Changes to jni/libressl/apps/openssl/s_client.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: s_client.c,v 1.33 2017/08/12 21:04:33 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: s_client.c,v 1.36 2018/02/11 20:03:10 jmc Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
		if (connect == NULL)
			connect = SSL_HOST_NAME;
	} else if (connect != NULL) {
		if (!extract_host_port(connect, &host, NULL, &port))
			goto bad;
	}
	if (badop) {
bad:
		if (errstr)
			BIO_printf(bio_err, "invalid argument %s: %s\n",
			    *argv, errstr);
		else
			sc_usage();
		goto end;
	}







|







588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
		if (connect == NULL)
			connect = SSL_HOST_NAME;
	} else if (connect != NULL) {
		if (!extract_host_port(connect, &host, NULL, &port))
			goto bad;
	}
	if (badop) {
 bad:
		if (errstr)
			BIO_printf(bio_err, "invalid argument %s: %s\n",
			    *argv, errstr);
		else
			sc_usage();
		goto end;
	}
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
		}
		while (mbuf_len > 3 && mbuf[3] == '-');
		(void) BIO_flush(fbio);
		BIO_pop(fbio);
		BIO_free(fbio);
		if (!foundit)
			BIO_printf(bio_err,
			    "didn't found starttls in server response,"
			    " try anyway...\n");
		BIO_printf(sbio, "STARTTLS\r\n");
		BIO_read(sbio, sbuf, BUFSIZZ);
	} else if (starttls_proto == PROTO_POP3) {
		mbuf_len = BIO_read(sbio, mbuf, BUFSIZZ);
		if (mbuf_len == -1) {
			BIO_printf(bio_err, "BIO_read failed\n");







|







855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
		}
		while (mbuf_len > 3 && mbuf[3] == '-');
		(void) BIO_flush(fbio);
		BIO_pop(fbio);
		BIO_free(fbio);
		if (!foundit)
			BIO_printf(bio_err,
			    "didn't find starttls in server response,"
			    " try anyway...\n");
		BIO_printf(sbio, "STARTTLS\r\n");
		BIO_read(sbio, sbuf, BUFSIZZ);
	} else if (starttls_proto == PROTO_POP3) {
		mbuf_len = BIO_read(sbio, mbuf, BUFSIZZ);
		if (mbuf_len == -1) {
			BIO_printf(bio_err, "BIO_read failed\n");
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230

			write_ssl = 1;
			read_tty = 0;
		}
	}

	ret = 0;
shut:
	if (in_init)
		print_stuff(bio_c_out, con, full_log);
	SSL_shutdown(con);
	shutdown(SSL_get_fd(con), SHUT_RD);
	close(SSL_get_fd(con));
end:
	if (con != NULL) {
		if (prexit != 0)
			print_stuff(bio_c_out, con, 1);
		SSL_free(con);
	}
	if (ctx != NULL)
		SSL_CTX_free(ctx);
	if (cert)
		X509_free(cert);
	if (key)
		EVP_PKEY_free(key);
	free(pass);
	if (vpm)
		X509_VERIFY_PARAM_free(vpm);
	freezero(cbuf, BUFSIZZ);
	freezero(sbuf, BUFSIZZ);
	freezero(mbuf, BUFSIZZ);
	if (bio_c_out != NULL) {
		BIO_free(bio_c_out);
		bio_c_out = NULL;
	}







|





|





<
|
<
|
<
|

<
|







1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214

1215

1216

1217
1218

1219
1220
1221
1222
1223
1224
1225
1226

			write_ssl = 1;
			read_tty = 0;
		}
	}

	ret = 0;
 shut:
	if (in_init)
		print_stuff(bio_c_out, con, full_log);
	SSL_shutdown(con);
	shutdown(SSL_get_fd(con), SHUT_RD);
	close(SSL_get_fd(con));
 end:
	if (con != NULL) {
		if (prexit != 0)
			print_stuff(bio_c_out, con, 1);
		SSL_free(con);
	}

	SSL_CTX_free(ctx);

	X509_free(cert);

	EVP_PKEY_free(key);
	free(pass);

	X509_VERIFY_PARAM_free(vpm);
	freezero(cbuf, BUFSIZZ);
	freezero(sbuf, BUFSIZZ);
	freezero(mbuf, BUFSIZZ);
	if (bio_c_out != NULL) {
		BIO_free(bio_c_out);
		bio_c_out = NULL;
	}
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
					    exportedkeymat[i]);
				BIO_printf(bio, "\n");
			}
			free(exportedkeymat);
		}
	}
	BIO_printf(bio, "---\n");
	if (peer != NULL)
		X509_free(peer);
	/* flush, or debugging output gets mixed with http response */
	(void) BIO_flush(bio);
}


static int
ocsp_resp_cb(SSL * s, void *arg)







<
|







1397
1398
1399
1400
1401
1402
1403

1404
1405
1406
1407
1408
1409
1410
1411
					    exportedkeymat[i]);
				BIO_printf(bio, "\n");
			}
			free(exportedkeymat);
		}
	}
	BIO_printf(bio, "---\n");

	X509_free(peer);
	/* flush, or debugging output gets mixed with http response */
	(void) BIO_flush(bio);
}


static int
ocsp_resp_cb(SSL * s, void *arg)
Changes to jni/libressl/apps/openssl/s_server.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: s_server.c,v 1.27 2017/08/12 21:04:33 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: s_server.c,v 1.30 2018/02/07 05:47:55 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
 */

static int
cert_status_cb(SSL * s, void *arg)
{
	tlsextstatusctx *srctx = arg;
	BIO *err = srctx->err;
	char *host, *port, *path;
	int use_ssl;
	unsigned char *rspder = NULL;
	int rspderlen;
	STACK_OF(OPENSSL_STRING) * aia = NULL;
	X509 *x = NULL;
	X509_STORE_CTX inctx;
	X509_OBJECT obj;







|







400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
 */

static int
cert_status_cb(SSL * s, void *arg)
{
	tlsextstatusctx *srctx = arg;
	BIO *err = srctx->err;
	char *host = NULL, *port = NULL, *path = NULL;
	int use_ssl;
	unsigned char *rspder = NULL;
	int rspderlen;
	STACK_OF(OPENSSL_STRING) * aia = NULL;
	X509 *x = NULL;
	X509_STORE_CTX inctx;
	X509_OBJECT obj;
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
		goto err;
	SSL_set_tlsext_status_ocsp_resp(s, rspder, rspderlen);
	if (srctx->verbose) {
		BIO_puts(err, "cert_status: ocsp response sent:\n");
		OCSP_RESPONSE_print(err, resp, 2);
	}
	ret = SSL_TLSEXT_ERR_OK;
done:
	if (ret != SSL_TLSEXT_ERR_OK)
		ERR_print_errors(err);
	if (aia) {
		free(host);
		free(path);
		free(port);
		X509_email_free(aia);
	}
	if (id)
		OCSP_CERTID_free(id);
	if (req)
		OCSP_REQUEST_free(req);
	if (resp)
		OCSP_RESPONSE_free(resp);
	return ret;
err:
	ret = SSL_TLSEXT_ERR_ALERT_FATAL;
	goto done;
}

/* This the context that we pass to alpn_cb */
typedef struct tlsextalpnctx_st {
	unsigned char *data;







|















|







483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
		goto err;
	SSL_set_tlsext_status_ocsp_resp(s, rspder, rspderlen);
	if (srctx->verbose) {
		BIO_puts(err, "cert_status: ocsp response sent:\n");
		OCSP_RESPONSE_print(err, resp, 2);
	}
	ret = SSL_TLSEXT_ERR_OK;
 done:
	if (ret != SSL_TLSEXT_ERR_OK)
		ERR_print_errors(err);
	if (aia) {
		free(host);
		free(path);
		free(port);
		X509_email_free(aia);
	}
	if (id)
		OCSP_CERTID_free(id);
	if (req)
		OCSP_REQUEST_free(req);
	if (resp)
		OCSP_RESPONSE_free(resp);
	return ret;
 err:
	ret = SSL_TLSEXT_ERR_ALERT_FATAL;
	goto done;
}

/* This the context that we pass to alpn_cb */
typedef struct tlsextalpnctx_st {
	unsigned char *data;
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
			badop = 1;
			break;
		}
		argc--;
		argv++;
	}
	if (badop) {
bad:
		if (errstr)
			BIO_printf(bio_err, "invalid argument %s: %s\n",
			    *argv, errstr);
		else
			sv_usage();
		goto end;
	}







|







854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
			badop = 1;
			break;
		}
		argc--;
		argv++;
	}
	if (badop) {
 bad:
		if (errstr)
			BIO_printf(bio_err, "invalid argument %s: %s\n",
			    *argv, errstr);
		else
			sv_usage();
		goto end;
	}
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
	(void) BIO_flush(bio_s_out);
	if (www)
		do_server(port, socket_type, &accept_socket, www_body, context);
	else
		do_server(port, socket_type, &accept_socket, sv_body, context);
	print_stats(bio_s_out, ctx);
	ret = 0;
end:
	if (ctx != NULL)
		SSL_CTX_free(ctx);
	if (s_cert)
		X509_free(s_cert);
	if (s_dcert)
		X509_free(s_dcert);
	if (s_key)
		EVP_PKEY_free(s_key);
	if (s_dkey)
		EVP_PKEY_free(s_dkey);
	free(pass);
	free(dpass);
	if (vpm)
		X509_VERIFY_PARAM_free(vpm);
	free(tlscstatp.host);
	free(tlscstatp.port);
	free(tlscstatp.path);
	if (ctx2 != NULL)
		SSL_CTX_free(ctx2);
	if (s_cert2)
		X509_free(s_cert2);
	if (s_key2)
		EVP_PKEY_free(s_key2);
	free(alpn_ctx.data);
	if (bio_s_out != NULL) {
		BIO_free(bio_s_out);
		bio_s_out = NULL;
	}

	return (ret);







|
<
|
<
|
<
|
<
|
<
|


<
|



<
|
<
|
<
|







1194
1195
1196
1197
1198
1199
1200
1201

1202

1203

1204

1205

1206
1207
1208

1209
1210
1211
1212

1213

1214

1215
1216
1217
1218
1219
1220
1221
1222
	(void) BIO_flush(bio_s_out);
	if (www)
		do_server(port, socket_type, &accept_socket, www_body, context);
	else
		do_server(port, socket_type, &accept_socket, sv_body, context);
	print_stats(bio_s_out, ctx);
	ret = 0;
 end:

	SSL_CTX_free(ctx);

	X509_free(s_cert);

	X509_free(s_dcert);

	EVP_PKEY_free(s_key);

	EVP_PKEY_free(s_dkey);
	free(pass);
	free(dpass);

	X509_VERIFY_PARAM_free(vpm);
	free(tlscstatp.host);
	free(tlscstatp.port);
	free(tlscstatp.path);

	SSL_CTX_free(ctx2);

	X509_free(s_cert2);

	EVP_PKEY_free(s_key2);
	free(alpn_ctx.data);
	if (bio_s_out != NULL) {
		BIO_free(bio_s_out);
		bio_s_out = NULL;
	}

	return (ret);
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
					BIO_printf(bio_s_out, "DONE\n");
					ret = 1;
					goto err;
				}
			}
		}
	}
err:
	if (con != NULL) {
		BIO_printf(bio_s_out, "shutting down SSL\n");
		SSL_set_shutdown(con, SSL_SENT_SHUTDOWN | SSL_RECEIVED_SHUTDOWN);
		SSL_free(con);
	}
	BIO_printf(bio_s_out, "CONNECTION CLOSED\n");
	freezero(buf, bufsize);







|







1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
					BIO_printf(bio_s_out, "DONE\n");
					ret = 1;
					goto err;
				}
			}
		}
	}
 err:
	if (con != NULL) {
		BIO_printf(bio_s_out, "shutting down SSL\n");
		SSL_set_shutdown(con, SSL_SENT_SHUTDOWN | SSL_RECEIVED_SHUTDOWN);
		SSL_free(con);
	}
	BIO_printf(bio_s_out, "CONNECTION CLOSED\n");
	freezero(buf, bufsize);
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
{
	DH *ret = NULL;
	BIO *bio;

	if ((bio = BIO_new_file(dhfile, "r")) == NULL)
		goto err;
	ret = PEM_read_bio_DHparams(bio, NULL, NULL, NULL);
err:
	BIO_free(bio);
	return (ret);
}
#endif

static int
www_body(char *hostname, int s, unsigned char *context)







|







1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
{
	DH *ret = NULL;
	BIO *bio;

	if ((bio = BIO_new_file(dhfile, "r")) == NULL)
		goto err;
	ret = PEM_read_bio_DHparams(bio, NULL, NULL, NULL);
 err:
	BIO_free(bio);
	return (ret);
}
#endif

static int
www_body(char *hostname, int s, unsigned char *context)
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
		i = (int) BIO_flush(io);
		if (i <= 0) {
			if (!BIO_should_retry(io))
				break;
		} else
			break;
	}
end:
	/* make sure we re-use sessions */
	SSL_set_shutdown(con, SSL_SENT_SHUTDOWN | SSL_RECEIVED_SHUTDOWN);

err:

	if (ret >= 0)
		BIO_printf(bio_s_out, "ACCEPT\n");

	free(buf);
	if (io != NULL)
		BIO_free_all(io);
/*	if (ssl_bio != NULL) BIO_free(ssl_bio);*/
	return (ret);
}

#define MAX_SESSION_ID_ATTEMPTS 10
static int
generate_session_id(const SSL * ssl, unsigned char *id,







|



|





<
|







1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952

1953
1954
1955
1956
1957
1958
1959
1960
		i = (int) BIO_flush(io);
		if (i <= 0) {
			if (!BIO_should_retry(io))
				break;
		} else
			break;
	}
 end:
	/* make sure we re-use sessions */
	SSL_set_shutdown(con, SSL_SENT_SHUTDOWN | SSL_RECEIVED_SHUTDOWN);

 err:

	if (ret >= 0)
		BIO_printf(bio_s_out, "ACCEPT\n");

	free(buf);

	BIO_free_all(io);
/*	if (ssl_bio != NULL) BIO_free(ssl_bio);*/
	return (ret);
}

#define MAX_SESSION_ID_ATTEMPTS 10
static int
generate_session_id(const SSL * ssl, unsigned char *id,
Changes to jni/libressl/apps/openssl/s_socket.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: s_socket.c,v 1.8 2015/09/10 02:23:29 lteo Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: s_socket.c,v 1.9 2018/02/07 05:47:55 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
			return (1);
		}
		close(s);
		s = -1;
	}

	perror("connect");
out:
	if (s != -1)
		close(s);
	freeaddrinfo(ai_top);
	return (0);
}

int







|







118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
			return (1);
		}
		close(s);
		s = -1;
	}

	perror("connect");
 out:
	if (s != -1)
		close(s);
	freeaddrinfo(ai_top);
	return (0);
}

int
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
		goto err;
	}
	/* Make it 128 for linux */
	if (type == SOCK_STREAM && listen(s, 128) == -1)
		goto err;
	*sock = s;
	ret = 1;
err:
	if ((ret == 0) && (s != -1)) {
		shutdown(s, SHUT_RD);
		close(s);
	}
	return (ret);
}








|







206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
		goto err;
	}
	/* Make it 128 for linux */
	if (type == SOCK_STREAM && listen(s, 128) == -1)
		goto err;
	*sock = s;
	ret = 1;
 err:
	if ((ret == 0) && (s != -1)) {
		shutdown(s, SHUT_RD);
		close(s);
	}
	return (ret);
}

229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
{
	int ret;
	struct hostent *h1, *h2;
	static struct sockaddr_in from;
	socklen_t len;
/*	struct linger ling; */

redoit:

	memset((char *) &from, 0, sizeof(from));
	len = sizeof(from);
	ret = accept(acc_sock, (struct sockaddr *) & from, &len);
	if (ret == -1) {
		if (errno == EINTR) {
			/* check_timeout(); */







|







229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
{
	int ret;
	struct hostent *h1, *h2;
	static struct sockaddr_in from;
	socklen_t len;
/*	struct linger ling; */

 redoit:

	memset((char *) &from, 0, sizeof(from));
	len = sizeof(from);
	ret = accept(acc_sock, (struct sockaddr *) & from, &len);
	if (ret == -1) {
		if (errno == EINTR) {
			/* check_timeout(); */
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
		if (h2->h_addrtype != AF_INET) {
			BIO_printf(bio_err, "gethostbyname addr is not AF_INET\n");
			close(ret);
			return (0);
		}
	}

end:
	*sock = ret;
	return (1);
}

int
extract_host_port(char *str, char **host_ptr, unsigned char *ip,
    char **port_ptr)







|







281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
		if (h2->h_addrtype != AF_INET) {
			BIO_printf(bio_err, "gethostbyname addr is not AF_INET\n");
			close(ret);
			return (0);
		}
	}

 end:
	*sock = ret;
	return (1);
}

int
extract_host_port(char *str, char **host_ptr, unsigned char *ip,
    char **port_ptr)
Changes to jni/libressl/apps/openssl/s_time.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: s_time.c,v 1.17 2017/01/20 08:57:12 deraadt Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: s_time.c,v 1.23 2018/02/07 05:47:55 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98

#define BUFSIZZ 1024*10

#define MYBUFSIZ 1024*8

#define SECONDS	30
extern int verify_depth;
extern int verify_error;

static void s_time_usage(void);
static SSL *doConnection(SSL * scon);

static SSL_CTX *tm_ctx = NULL;
static const SSL_METHOD *s_time_meth = NULL;
static long bytes_read = 0;







<







84
85
86
87
88
89
90

91
92
93
94
95
96
97

#define BUFSIZZ 1024*10

#define MYBUFSIZ 1024*8

#define SECONDS	30
extern int verify_depth;


static void s_time_usage(void);
static SSL *doConnection(SSL * scon);

static SSL_CTX *tm_ctx = NULL;
static const SSL_METHOD *s_time_meth = NULL;
static long bytes_read = 0;
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
/***********************************************************************
 * TIME - time functions
 */
#define START	0
#define STOP	1

static double
tm_Time_F(int s)
{
	return app_tminterval(s, 1);
}

/***********************************************************************
 * MAIN - main processing area for client
 *			real name depends on MONOLITH
 */
int
s_time_main(int argc, char **argv)
{
	double totalTime = 0.0;
	int nConn = 0;
	SSL *scon = NULL;
	time_t finishtime;
	int ret = 1;
	char buf[1024 * 8];
	int ver;

	if (single_execution) {
		if (pledge("stdio rpath inet", NULL) == -1) {
			perror("pledge");
			exit(1);
		}
	}

	s_time_meth = SSLv23_client_method();








|

|


















|







228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
/***********************************************************************
 * TIME - time functions
 */
#define START	0
#define STOP	1

static double
tm_Time_F(int op)
{
	return app_timer_user(op);
}

/***********************************************************************
 * MAIN - main processing area for client
 *			real name depends on MONOLITH
 */
int
s_time_main(int argc, char **argv)
{
	double totalTime = 0.0;
	int nConn = 0;
	SSL *scon = NULL;
	time_t finishtime;
	int ret = 1;
	char buf[1024 * 8];
	int ver;

	if (single_execution) {
		if (pledge("stdio rpath inet dns", NULL) == -1) {
			perror("pledge");
			exit(1);
		}
	}

	s_time_meth = SSLv23_client_method();

350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
				bytes_read += i;
		}
		if (s_time_config.no_shutdown)
			SSL_set_shutdown(scon, SSL_SENT_SHUTDOWN |
			    SSL_RECEIVED_SHUTDOWN);
		else
			SSL_shutdown(scon);
		shutdown(SSL_get_fd(scon), SHUT_RDWR);
		close(SSL_get_fd(scon));

		nConn += 1;
		if (SSL_session_reused(scon))
			ver = 'r';
		else {
			ver = SSL_version(scon);
			if (ver == TLS1_VERSION)







<
<







349
350
351
352
353
354
355


356
357
358
359
360
361
362
				bytes_read += i;
		}
		if (s_time_config.no_shutdown)
			SSL_set_shutdown(scon, SSL_SENT_SHUTDOWN |
			    SSL_RECEIVED_SHUTDOWN);
		else
			SSL_shutdown(scon);



		nConn += 1;
		if (SSL_session_reused(scon))
			ver = 'r';
		else {
			ver = SSL_version(scon);
			if (ver == TLS1_VERSION)
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
	    bytes_read / nConn);

	/*
	 * Now loop and time connections using the same session id over and
	 * over
	 */

next:
	if (!(s_time_config.perform & 2))
		goto end;
	printf("\n\nNow timing with session id reuse.\n");

	/* Get an SSL object so we can reuse the session id */
	if ((scon = doConnection(NULL)) == NULL) {
		fprintf(stderr, "Unable to get connection\n");







|







384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
	    bytes_read / nConn);

	/*
	 * Now loop and time connections using the same session id over and
	 * over
	 */

 next:
	if (!(s_time_config.perform & 2))
		goto end;
	printf("\n\nNow timing with session id reuse.\n");

	/* Get an SSL object so we can reuse the session id */
	if ((scon = doConnection(NULL)) == NULL) {
		fprintf(stderr, "Unable to get connection\n");
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
		while (SSL_read(scon, buf, sizeof(buf)) > 0);
	}
	if (s_time_config.no_shutdown)
		SSL_set_shutdown(scon, SSL_SENT_SHUTDOWN |
		    SSL_RECEIVED_SHUTDOWN);
	else
		SSL_shutdown(scon);
	shutdown(SSL_get_fd(scon), SHUT_RDWR);
	close(SSL_get_fd(scon));

	nConn = 0;
	totalTime = 0.0;

	finishtime = time(NULL) + s_time_config.maxtime;

	printf("starting\n");







<
<







409
410
411
412
413
414
415


416
417
418
419
420
421
422
		while (SSL_read(scon, buf, sizeof(buf)) > 0);
	}
	if (s_time_config.no_shutdown)
		SSL_set_shutdown(scon, SSL_SENT_SHUTDOWN |
		    SSL_RECEIVED_SHUTDOWN);
	else
		SSL_shutdown(scon);



	nConn = 0;
	totalTime = 0.0;

	finishtime = time(NULL) + s_time_config.maxtime;

	printf("starting\n");
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
				bytes_read += i;
		}
		if (s_time_config.no_shutdown)
			SSL_set_shutdown(scon, SSL_SENT_SHUTDOWN |
			    SSL_RECEIVED_SHUTDOWN);
		else
			SSL_shutdown(scon);
		shutdown(SSL_get_fd(scon), SHUT_RDWR);
		close(SSL_get_fd(scon));

		nConn += 1;
		if (SSL_session_reused(scon))
			ver = 'r';
		else {
			ver = SSL_version(scon);
			if (ver == TLS1_VERSION)







<
<







441
442
443
444
445
446
447


448
449
450
451
452
453
454
				bytes_read += i;
		}
		if (s_time_config.no_shutdown)
			SSL_set_shutdown(scon, SSL_SENT_SHUTDOWN |
			    SSL_RECEIVED_SHUTDOWN);
		else
			SSL_shutdown(scon);



		nConn += 1;
		if (SSL_session_reused(scon))
			ver = 'r';
		else {
			ver = SSL_version(scon);
			if (ver == TLS1_VERSION)
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
	printf("\n\n%d connections in %.2fs; %.2f connections/user sec, bytes read %ld\n", nConn, totalTime, ((double) nConn / totalTime), bytes_read);
	printf("%d connections in %lld real seconds, %ld bytes read per connection\n",
	    nConn,
	    (long long)(time(NULL) - finishtime + s_time_config.maxtime),
	    bytes_read / nConn);

	ret = 0;
end:
	if (scon != NULL)
		SSL_free(scon);

	if (tm_ctx != NULL) {
		SSL_CTX_free(tm_ctx);
		tm_ctx = NULL;
	}

	return (ret);







|
<
|







468
469
470
471
472
473
474
475

476
477
478
479
480
481
482
483
	printf("\n\n%d connections in %.2fs; %.2f connections/user sec, bytes read %ld\n", nConn, totalTime, ((double) nConn / totalTime), bytes_read);
	printf("%d connections in %lld real seconds, %ld bytes read per connection\n",
	    nConn,
	    (long long)(time(NULL) - finishtime + s_time_config.maxtime),
	    bytes_read / nConn);

	ret = 0;
 end:

	SSL_free(scon);

	if (tm_ctx != NULL) {
		SSL_CTX_free(tm_ctx);
		tm_ctx = NULL;
	}

	return (ret);
Changes to jni/libressl/apps/openssl/sess_id.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: sess_id.c,v 1.8 2017/01/20 08:57:12 deraadt Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: sess_id.c,v 1.9 2018/02/07 05:47:55 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
		if (!i) {
			BIO_printf(bio_err, "unable to write X509\n");
			goto end;
		}
	}
	ret = 0;

end:
	BIO_free_all(out);
	SSL_SESSION_free(x);

	return (ret);
}

static SSL_SESSION *







|







245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
		if (!i) {
			BIO_printf(bio_err, "unable to write X509\n");
			goto end;
		}
	}
	ret = 0;

 end:
	BIO_free_all(out);
	SSL_SESSION_free(x);

	return (ret);
}

static SSL_SESSION *
285
286
287
288
289
290
291
292
293
294
295
		goto end;
	}
	if (x == NULL) {
		BIO_printf(bio_err, "unable to load SSL_SESSION\n");
		ERR_print_errors(bio_err);
		goto end;
	}
end:
	BIO_free(in);
	return (x);
}







|



285
286
287
288
289
290
291
292
293
294
295
		goto end;
	}
	if (x == NULL) {
		BIO_printf(bio_err, "unable to load SSL_SESSION\n");
		ERR_print_errors(bio_err);
		goto end;
	}
 end:
	BIO_free(in);
	return (x);
}
Changes to jni/libressl/apps/openssl/smime.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: smime.c,v 1.8 2017/01/20 08:57:12 deraadt Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
 * project.
 */
/* ====================================================================
 * Copyright (c) 1999-2004 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
/* $OpenBSD: smime.c,v 1.10 2018/02/07 05:47:55 jsing Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
 * project.
 */
/* ====================================================================
 * Copyright (c) 1999-2004 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
			BIO_printf(bio_err, "No recipient(s) certificate(s) specified\n");
			badarg = 1;
		}
	} else if (!operation)
		badarg = 1;

	if (badarg) {
argerr:
		BIO_printf(bio_err, "Usage smime [options] cert.pem ...\n");
		BIO_printf(bio_err, "where options are\n");
		BIO_printf(bio_err, "-encrypt       encrypt message\n");
		BIO_printf(bio_err, "-decrypt       decrypt encrypted message\n");
		BIO_printf(bio_err, "-sign          sign message\n");
		BIO_printf(bio_err, "-verify        verify signed message\n");
		BIO_printf(bio_err, "-pk7out        output PKCS#7 structure\n");







|







338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
			BIO_printf(bio_err, "No recipient(s) certificate(s) specified\n");
			badarg = 1;
		}
	} else if (!operation)
		badarg = 1;

	if (badarg) {
 argerr:
		BIO_printf(bio_err, "Usage smime [options] cert.pem ...\n");
		BIO_printf(bio_err, "where options are\n");
		BIO_printf(bio_err, "-encrypt       encrypt message\n");
		BIO_printf(bio_err, "-decrypt       decrypt encrypted message\n");
		BIO_printf(bio_err, "-sign          sign message\n");
		BIO_printf(bio_err, "-verify        verify signed message\n");
		BIO_printf(bio_err, "-pk7out        output PKCS#7 structure\n");
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
			i2d_PKCS7_bio_stream(out, p7, in, flags);
		else {
			BIO_printf(bio_err, "Bad output format for PKCS#7 file\n");
			goto end;
		}
	}
	ret = 0;
end:
	if (ret)
		ERR_print_errors(bio_err);
	sk_X509_pop_free(encerts, X509_free);
	sk_X509_pop_free(other, X509_free);
	if (vpm)
		X509_VERIFY_PARAM_free(vpm);
	if (sksigners)
		sk_OPENSSL_STRING_free(sksigners);
	if (skkeys)
		sk_OPENSSL_STRING_free(skkeys);
	X509_STORE_free(store);
	X509_free(cert);
	X509_free(recip);
	X509_free(signer);
	EVP_PKEY_free(key);
	PKCS7_free(p7);
	BIO_free(in);







|




<
|
<
|
<
|







616
617
618
619
620
621
622
623
624
625
626
627

628

629

630
631
632
633
634
635
636
637
			i2d_PKCS7_bio_stream(out, p7, in, flags);
		else {
			BIO_printf(bio_err, "Bad output format for PKCS#7 file\n");
			goto end;
		}
	}
	ret = 0;
 end:
	if (ret)
		ERR_print_errors(bio_err);
	sk_X509_pop_free(encerts, X509_free);
	sk_X509_pop_free(other, X509_free);

	X509_VERIFY_PARAM_free(vpm);

	sk_OPENSSL_STRING_free(sksigners);

	sk_OPENSSL_STRING_free(skkeys);
	X509_STORE_free(store);
	X509_free(cert);
	X509_free(recip);
	X509_free(signer);
	EVP_PKEY_free(key);
	PKCS7_free(p7);
	BIO_free(in);
Changes to jni/libressl/apps/openssl/speed.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: speed.c,v 1.19 2016/08/22 04:33:07 deraadt Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: speed.c,v 1.22 2018/02/07 05:47:55 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
198
199
200
201
202
203
204

205


206
207
208
209
210
211
212
#define START	0
#define STOP	1


static double
Time_F(int s)
{

	return app_tminterval(s, usertime);


}


static const int KDF1_SHA1_len = 20;
static void *
KDF1_SHA1(const void *in, size_t inlen, void *out, size_t * outlen)
{







>
|
>
>







198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
#define START	0
#define STOP	1


static double
Time_F(int s)
{
	if (usertime)
		return app_timer_user(s);
	else
		return app_timer_real(s);
}


static const int KDF1_SHA1_len = 20;
static void *
KDF1_SHA1(const void *in, size_t inlen, void *out, size_t * outlen)
{
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
			if (!evp_cipher && !evp_md) {
				BIO_printf(bio_err, "%s is an unknown cipher or digest\n", *argv);
				goto end;
			}
			doit[D_EVP] = 1;
		} else if (argc > 0 && !strcmp(*argv, "-decrypt")) {
			decrypt = 1;
			j--;	/* Otherwise, -elapsed gets confused with an
				 * algorithm. */
		}
		else if ((argc > 0) && (strcmp(*argv, "-multi") == 0)) {
			argc--;
			argv++;
			if (argc == 0) {
				BIO_printf(bio_err, "no multi count given\n");
				goto end;
			}
			multi = strtonum(argv[0], 1, INT_MAX, &errstr);
			if (errstr) {
				BIO_printf(bio_err, "bad multi count: %s", errstr);
				goto end;
			}
			j--;	/* Otherwise, -mr gets confused with an
				 * algorithm. */
		}
		else if (argc > 0 && !strcmp(*argv, "-mr")) {
			mr = 1;
			j--;	/* Otherwise, -mr gets confused with an
				 * algorithm. */
		} else







|














|







537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
			if (!evp_cipher && !evp_md) {
				BIO_printf(bio_err, "%s is an unknown cipher or digest\n", *argv);
				goto end;
			}
			doit[D_EVP] = 1;
		} else if (argc > 0 && !strcmp(*argv, "-decrypt")) {
			decrypt = 1;
			j--;	/* Otherwise, -decrypt gets confused with an
				 * algorithm. */
		}
		else if ((argc > 0) && (strcmp(*argv, "-multi") == 0)) {
			argc--;
			argv++;
			if (argc == 0) {
				BIO_printf(bio_err, "no multi count given\n");
				goto end;
			}
			multi = strtonum(argv[0], 1, INT_MAX, &errstr);
			if (errstr) {
				BIO_printf(bio_err, "bad multi count: %s", errstr);
				goto end;
			}
			j--;	/* Otherwise, -multi gets confused with an
				 * algorithm. */
		}
		else if (argc > 0 && !strcmp(*argv, "-mr")) {
			mr = 1;
			j--;	/* Otherwise, -mr gets confused with an
				 * algorithm. */
		} else
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
			    test_curves_bits[k],
			    test_curves_names[k],
			    ecdh_results[k][0], 1.0 / ecdh_results[k][0]);
	}

	mret = 0;

end:
	ERR_print_errors(bio_err);
	free(buf);
	free(buf2);
	for (i = 0; i < RSA_NUM; i++)
		if (rsa_key[i] != NULL)
			RSA_free(rsa_key[i]);
	for (i = 0; i < DSA_NUM; i++)







|







1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
			    test_curves_bits[k],
			    test_curves_names[k],
			    ecdh_results[k][0], 1.0 / ecdh_results[k][0]);
	}

	mret = 0;

 end:
	ERR_print_errors(bio_err);
	free(buf);
	free(buf2);
	for (i = 0; i < RSA_NUM; i++)
		if (rsa_key[i] != NULL)
			RSA_free(rsa_key[i]);
	for (i = 0; i < DSA_NUM; i++)
Changes to jni/libressl/apps/openssl/spkac.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: spkac.c,v 1.9 2017/01/20 08:57:12 deraadt Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
 * project 1999. Based on an original idea by Massimiliano Pala
 * (madwolf@openca.org).
 */
/* ====================================================================
 * Copyright (c) 1999 The OpenSSL Project.  All rights reserved.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: spkac.c,v 1.10 2018/02/07 05:47:55 jsing Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
 * project 1999. Based on an original idea by Massimiliano Pala
 * (madwolf@openca.org).
 */
/* ====================================================================
 * Copyright (c) 1999 The OpenSSL Project.  All rights reserved.
 *
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
		}
	}
	if (spkac_config.pubkey)
		PEM_write_bio_PUBKEY(out, pkey);

	ret = 0;

end:
	NCONF_free(conf);
	NETSCAPE_SPKI_free(spki);
	BIO_free(in);
	BIO_free_all(out);
	EVP_PKEY_free(pkey);
	free(passin);

	return (ret);
}







|









297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
		}
	}
	if (spkac_config.pubkey)
		PEM_write_bio_PUBKEY(out, pkey);

	ret = 0;

 end:
	NCONF_free(conf);
	NETSCAPE_SPKI_free(spki);
	BIO_free(in);
	BIO_free_all(out);
	EVP_PKEY_free(pkey);
	free(passin);

	return (ret);
}
Changes to jni/libressl/apps/openssl/ts.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: ts.c,v 1.14 2017/01/20 08:57:12 deraadt Exp $ */
/* Written by Zoltan Glozik (zglozik@stones.com) for the OpenSSL
 * project 2002.
 */
/* ====================================================================
 * Copyright (c) 2001 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
/* $OpenBSD: ts.c,v 1.15 2018/02/07 05:47:55 jsing Exp $ */
/* Written by Zoltan Glozik (zglozik@stones.com) for the OpenSSL
 * project 2002.
 */
/* ====================================================================
 * Copyright (c) 2001 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332

		ret = !verify_command(data, digest, queryfile, in, token_in,
		    ca_path, ca_file, untrusted);
	}

	goto cleanup;

usage:
	BIO_printf(bio_err, "usage:\n"
	    "ts -query [-config configfile] "
	    "[-data file_to_hash] [-digest digest_bytes]"
	    "[-md4|-md5|-sha1|-ripemd160] "
	    "[-policy object_id] [-no_nonce] [-cert] "
	    "[-in request.tsq] [-out request.tsq] [-text]\n");
	BIO_printf(bio_err, "or\n"
	    "ts -reply [-config configfile] [-section tsa_section] "
	    "[-queryfile request.tsq] [-passin password] "
	    "[-signer tsa_cert.pem] [-inkey private_key.pem] "
	    "[-chain certs_file.pem] [-policy object_id] "
	    "[-in response.tsr] [-token_in] "
	    "[-out response.tsr] [-token_out] [-text]\n");
	BIO_printf(bio_err, "or\n"
	    "ts -verify [-data file_to_hash] [-digest digest_bytes] "
	    "[-queryfile request.tsq] "
	    "-in response.tsr [-token_in] "
	    "-CApath ca_path -CAfile ca_file.pem "
	    "-untrusted cert_file.pem\n");

cleanup:
	/* Clean up. */
	NCONF_free(conf);
	free(password);
	OBJ_cleanup();

	return (ret);
}







|




















|







297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332

		ret = !verify_command(data, digest, queryfile, in, token_in,
		    ca_path, ca_file, untrusted);
	}

	goto cleanup;

 usage:
	BIO_printf(bio_err, "usage:\n"
	    "ts -query [-config configfile] "
	    "[-data file_to_hash] [-digest digest_bytes]"
	    "[-md4|-md5|-sha1|-ripemd160] "
	    "[-policy object_id] [-no_nonce] [-cert] "
	    "[-in request.tsq] [-out request.tsq] [-text]\n");
	BIO_printf(bio_err, "or\n"
	    "ts -reply [-config configfile] [-section tsa_section] "
	    "[-queryfile request.tsq] [-passin password] "
	    "[-signer tsa_cert.pem] [-inkey private_key.pem] "
	    "[-chain certs_file.pem] [-policy object_id] "
	    "[-in response.tsr] [-token_in] "
	    "[-out response.tsr] [-token_out] [-text]\n");
	BIO_printf(bio_err, "or\n"
	    "ts -verify [-data file_to_hash] [-digest digest_bytes] "
	    "[-queryfile request.tsq] "
	    "-in response.tsr [-token_in] "
	    "-CApath ca_path -CAfile ca_file.pem "
	    "-untrusted cert_file.pem\n");

 cleanup:
	/* Clean up. */
	NCONF_free(conf);
	free(password);
	OBJ_cleanup();

	return (ret);
}
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
		/* ASN.1 output. */
		if (!i2d_TS_REQ_bio(out_bio, query))
			goto end;
	}

	ret = 1;

end:
	ERR_print_errors(bio_err);

	/* Clean up. */
	BIO_free_all(in_bio);
	BIO_free_all(data_bio);
	BIO_free_all(out_bio);
	TS_REQ_free(query);







|







431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
		/* ASN.1 output. */
		if (!i2d_TS_REQ_bio(out_bio, query))
			goto end;
	}

	ret = 1;

 end:
	ERR_print_errors(bio_err);

	/* Clean up. */
	BIO_free_all(in_bio);
	BIO_free_all(data_bio);
	BIO_free_all(out_bio);
	TS_REQ_free(query);
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531

	/* Setting certificate request flag if requested. */
	if (!TS_REQ_set_cert_req(ts_req, cert))
		goto err;

	ret = 1;

err:
	if (!ret) {
		TS_REQ_free(ts_req);
		ts_req = NULL;
		BIO_printf(bio_err, "could not create query\n");
	}
	TS_MSG_IMPRINT_free(msg_imprint);
	X509_ALGOR_free(algo);







|







517
518
519
520
521
522
523
524
525
526
527
528
529
530
531

	/* Setting certificate request flag if requested. */
	if (!TS_REQ_set_cert_req(ts_req, cert))
		goto err;

	ret = 1;

 err:
	if (!ret) {
		TS_REQ_free(ts_req);
		ts_req = NULL;
		BIO_printf(bio_err, "could not create query\n");
	}
	TS_MSG_IMPRINT_free(msg_imprint);
	X509_ALGOR_free(algo);
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
			BIO_printf(bio_err, "bad digest, %d bytes "
			    "must be specified\n", md_value_len);
			goto err;
		}
	}

	return md_value_len;
err:
	return 0;
}

static ASN1_INTEGER *
create_nonce(int bits)
{
	unsigned char buf[20];







|







570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
			BIO_printf(bio_err, "bad digest, %d bytes "
			    "must be specified\n", md_value_len);
			goto err;
		}
	}

	return md_value_len;
 err:
	return 0;
}

static ASN1_INTEGER *
create_nonce(int bits)
{
	unsigned char buf[20];
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
	nonce->length = len - i;
	if (!(nonce->data = malloc(nonce->length + 1)))
		goto err;
	memcpy(nonce->data, buf + i, nonce->length);

	return nonce;

err:
	BIO_printf(bio_err, "could not create nonce\n");
	ASN1_INTEGER_free(nonce);
	return NULL;
}
/*
 * Reply-related method definitions.
 */







|







601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
	nonce->length = len - i;
	if (!(nonce->data = malloc(nonce->length + 1)))
		goto err;
	memcpy(nonce->data, buf + i, nonce->length);

	return nonce;

 err:
	BIO_printf(bio_err, "could not create nonce\n");
	ASN1_INTEGER_free(nonce);
	return NULL;
}
/*
 * Reply-related method definitions.
 */
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
			if (!i2d_TS_RESP_bio(out_bio, response))
				goto end;
		}
	}

	ret = 1;

end:
	ERR_print_errors(bio_err);

	/* Clean up. */
	BIO_free_all(in_bio);
	BIO_free_all(query_bio);
	BIO_free_all(inkey_bio);
	BIO_free_all(signer_bio);







|







676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
			if (!i2d_TS_RESP_bio(out_bio, response))
				goto end;
		}
	}

	ret = 1;

 end:
	ERR_print_errors(bio_err);

	/* Clean up. */
	BIO_free_all(in_bio);
	BIO_free_all(query_bio);
	BIO_free_all(inkey_bio);
	BIO_free_all(signer_bio);
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738

	/* Setting encapsulated token. */
	TS_RESP_set_tst_info(resp, token, tst_info);
	token = NULL;		/* Ownership is lost. */
	tst_info = NULL;	/* Ownership is lost. */

	ret = 1;
end:
	PKCS7_free(token);
	TS_TST_INFO_free(tst_info);
	if (!ret) {
		TS_RESP_free(resp);
		resp = NULL;
	}
	TS_STATUS_INFO_free(si);







|







724
725
726
727
728
729
730
731
732
733
734
735
736
737
738

	/* Setting encapsulated token. */
	TS_RESP_set_tst_info(resp, token, tst_info);
	token = NULL;		/* Ownership is lost. */
	tst_info = NULL;	/* Ownership is lost. */

	ret = 1;
 end:
	PKCS7_free(token);
	TS_TST_INFO_free(tst_info);
	if (!ret) {
		TS_RESP_free(resp);
		resp = NULL;
	}
	TS_STATUS_INFO_free(si);
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
		goto end;

	/* Creating the response. */
	if (!(response = TS_RESP_create_response(resp_ctx, query_bio)))
		goto end;

	ret = 1;
end:
	if (!ret) {
		TS_RESP_free(response);
		response = NULL;
	}
	TS_RESP_CTX_free(resp_ctx);
	BIO_free_all(query_bio);








|







809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
		goto end;

	/* Creating the response. */
	if (!(response = TS_RESP_create_response(resp_ctx, query_bio)))
		goto end;

	ret = 1;
 end:
	if (!ret) {
		TS_RESP_free(response);
		response = NULL;
	}
	TS_RESP_CTX_free(resp_ctx);
	BIO_free_all(query_bio);

872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
		serial = NULL;
		if (!BN_add_word(bn, 1))
			goto err;
		if (!(serial = BN_to_ASN1_INTEGER(bn, NULL)))
			goto err;
	}
	ret = 1;
err:
	if (!ret) {
		ASN1_INTEGER_free(serial);
		serial = NULL;
	}
	BIO_free_all(in);
	BN_free(bn);
	return serial;







|







872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
		serial = NULL;
		if (!BN_add_word(bn, 1))
			goto err;
		if (!(serial = BN_to_ASN1_INTEGER(bn, NULL)))
			goto err;
	}
	ret = 1;
 err:
	if (!ret) {
		ASN1_INTEGER_free(serial);
		serial = NULL;
	}
	BIO_free_all(in);
	BN_free(bn);
	return serial;
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
	if (!(out = BIO_new_file(serialfile, "w")))
		goto err;
	if (i2a_ASN1_INTEGER(out, serial) <= 0)
		goto err;
	if (BIO_puts(out, "\n") <= 0)
		goto err;
	ret = 1;
err:
	if (!ret)
		BIO_printf(bio_err, "could not save serial number to %s\n",
		    serialfile);
	BIO_free_all(out);
	return ret;
}








|







895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
	if (!(out = BIO_new_file(serialfile, "w")))
		goto err;
	if (i2a_ASN1_INTEGER(out, serial) <= 0)
		goto err;
	if (BIO_puts(out, "\n") <= 0)
		goto err;
	ret = 1;
 err:
	if (!ret)
		BIO_printf(bio_err, "could not save serial number to %s\n",
		    serialfile);
	BIO_free_all(out);
	return ret;
}

937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
		goto end;

	/* Checking the token or response against the request. */
	ret = token_in ?
	    TS_RESP_verify_token(verify_ctx, token) :
	    TS_RESP_verify_response(verify_ctx, response);

end:
	printf("Verification: ");
	if (ret)
		printf("OK\n");
	else {
		printf("FAILED\n");
		/* Print errors, if there are any. */
		ERR_print_errors(bio_err);







|







937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
		goto end;

	/* Checking the token or response against the request. */
	ret = token_in ?
	    TS_RESP_verify_token(verify_ctx, token) :
	    TS_RESP_verify_response(verify_ctx, response);

 end:
	printf("Verification: ");
	if (ret)
		printf("OK\n");
	else {
		printf("FAILED\n");
		/* Print errors, if there are any. */
		ERR_print_errors(bio_err);
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
		goto err;

	/* Loading untrusted certificates. */
	if (untrusted && !(ctx->certs = TS_CONF_load_certs(untrusted)))
		goto err;

	ret = 1;
err:
	if (!ret) {
		TS_VERIFY_CTX_free(ctx);
		ctx = NULL;
	}
	BIO_free_all(input);
	TS_REQ_free(request);
	return ctx;







|







1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
		goto err;

	/* Loading untrusted certificates. */
	if (untrusted && !(ctx->certs = TS_CONF_load_certs(untrusted)))
		goto err;

	ret = 1;
 err:
	if (!ret) {
		TS_VERIFY_CTX_free(ctx);
		ctx = NULL;
	}
	BIO_free_all(input);
	TS_REQ_free(request);
	return ctx;
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
		i = X509_LOOKUP_load_file(lookup, ca_file, X509_FILETYPE_PEM);
		if (!i) {
			BIO_printf(bio_err, "Error loading file %s\n", ca_file);
			goto err;
		}
	}
	return cert_ctx;
err:
	X509_STORE_free(cert_ctx);
	return NULL;
}

static int
verify_cb(int ok, X509_STORE_CTX * ctx)
{







|







1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
		i = X509_LOOKUP_load_file(lookup, ca_file, X509_FILETYPE_PEM);
		if (!i) {
			BIO_printf(bio_err, "Error loading file %s\n", ca_file);
			goto err;
		}
	}
	return cert_ctx;
 err:
	X509_STORE_free(cert_ctx);
	return NULL;
}

static int
verify_cb(int ok, X509_STORE_CTX * ctx)
{
Changes to jni/libressl/apps/openssl/verify.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: verify.c,v 1.6 2015/10/17 15:00:11 doug Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: verify.c,v 1.7 2018/02/07 05:47:55 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
	} else {
		for (i = 0; i < argc; i++)
			if (1 != check(cert_ctx, argv[i], untrusted, trusted,
			    crls))
				ret = -1;
	}

end:
	if (ret == 1) {
		BIO_printf(bio_err, "usage: verify [-verbose] [-CApath path] [-CAfile file] [-purpose purpose] [-crl_check]");
		BIO_printf(bio_err, " [-attime timestamp]");
		BIO_printf(bio_err, " cert1 cert2 ...\n");

		BIO_printf(bio_err, "recognized usages:\n");
		for (i = 0; i < X509_PURPOSE_get_count(); i++) {







|







197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
	} else {
		for (i = 0; i < argc; i++)
			if (1 != check(cert_ctx, argv[i], untrusted, trusted,
			    crls))
				ret = -1;
	}

 end:
	if (ret == 1) {
		BIO_printf(bio_err, "usage: verify [-verbose] [-CApath path] [-CAfile file] [-purpose purpose] [-crl_check]");
		BIO_printf(bio_err, " [-attime timestamp]");
		BIO_printf(bio_err, " cert1 cert2 ...\n");

		BIO_printf(bio_err, "recognized usages:\n");
		for (i = 0; i < X509_PURPOSE_get_count(); i++) {
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
	if (crls)
		X509_STORE_CTX_set0_crls(csc, crls);
	i = X509_verify_cert(csc);
	X509_STORE_CTX_free(csc);

	ret = 0;

end:
	if (i > 0) {
		fprintf(stdout, "OK\n");
		ret = 1;
	} else
		ERR_print_errors(bio_err);
	if (x != NULL)
		X509_free(x);







|







255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
	if (crls)
		X509_STORE_CTX_set0_crls(csc, crls);
	i = X509_verify_cert(csc);
	X509_STORE_CTX_free(csc);

	ret = 0;

 end:
	if (i > 0) {
		fprintf(stdout, "OK\n");
		ret = 1;
	} else
		ERR_print_errors(bio_err);
	if (x != NULL)
		X509_free(x);
Changes to jni/libressl/apps/openssl/x509.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: x509.c,v 1.14 2017/01/20 08:57:12 deraadt Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: x509.c,v 1.16 2018/02/07 05:47:55 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
			break;
		}
		argc--;
		argv++;
	}

	if (badops) {
bad:
		for (pp = x509_usage; (*pp != NULL); pp++)
			BIO_printf(bio_err, "%s", *pp);
		goto end;
	}

	if (!app_passwd(bio_err, passargin, NULL, &passin, NULL)) {
		BIO_printf(bio_err, "Error getting password\n");







|







425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
			break;
		}
		argc--;
		argv++;
	}

	if (badops) {
 bad:
		for (pp = x509_usage; (*pp != NULL); pp++)
			BIO_printf(bio_err, "%s", *pp);
		goto end;
	}

	if (!app_passwd(bio_err, passargin, NULL, &passin, NULL)) {
		BIO_printf(bio_err, "Error getting password\n");
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
	if (!i) {
		BIO_printf(bio_err, "unable to write certificate\n");
		ERR_print_errors(bio_err);
		goto end;
	}
	ret = 0;

end:
	OBJ_cleanup();
	NCONF_free(extconf);
	BIO_free_all(out);
	BIO_free_all(STDout);
	X509_STORE_free(ctx);
	X509_REQ_free(req);
	X509_free(x);
	X509_free(xca);
	EVP_PKEY_free(Upkey);
	EVP_PKEY_free(CApkey);
	if (sigopts)
		sk_OPENSSL_STRING_free(sigopts);
	X509_REQ_free(rq);
	ASN1_INTEGER_free(sno);
	sk_ASN1_OBJECT_pop_free(trust, ASN1_OBJECT_free);
	sk_ASN1_OBJECT_pop_free(reject, ASN1_OBJECT_free);
	free(passin);

	return (ret);







|










<
|







901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918

919
920
921
922
923
924
925
926
	if (!i) {
		BIO_printf(bio_err, "unable to write certificate\n");
		ERR_print_errors(bio_err);
		goto end;
	}
	ret = 0;

 end:
	OBJ_cleanup();
	NCONF_free(extconf);
	BIO_free_all(out);
	BIO_free_all(STDout);
	X509_STORE_free(ctx);
	X509_REQ_free(req);
	X509_free(x);
	X509_free(xca);
	EVP_PKEY_free(Upkey);
	EVP_PKEY_free(CApkey);

	sk_OPENSSL_STRING_free(sigopts);
	X509_REQ_free(rq);
	ASN1_INTEGER_free(sno);
	sk_ASN1_OBJECT_pop_free(trust, ASN1_OBJECT_free);
	sk_ASN1_OBJECT_pop_free(reject, ASN1_OBJECT_free);
	free(passin);

	return (ret);
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
	if (!BN_add_word(serial, 1)) {
		BIO_printf(bio_err, "add_word failure\n");
		goto end;
	}
	if (!save_serial(buf, NULL, serial, &bs))
		goto end;

end:
	free(buf);
	BN_free(serial);

	return bs;
}

static int







|







959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
	if (!BN_add_word(serial, 1)) {
		BIO_printf(bio_err, "add_word failure\n");
		goto end;
	}
	if (!save_serial(buf, NULL, serial, &bs))
		goto end;

 end:
	free(buf);
	BN_free(serial);

	return bs;
}

static int
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
		X509V3_set_nconf(&ctx2, conf);
		if (!X509V3_EXT_add_nconf(conf, &ctx2, section, x))
			goto end;
	}
	if (!do_X509_sign(bio_err, x, pkey, digest, sigopts))
		goto end;
	ret = 1;
end:
	X509_STORE_CTX_cleanup(&xsc);
	if (!ret)
		ERR_print_errors(bio_err);
	if (!sno)
		ASN1_INTEGER_free(bs);
	return ret;
}







|







1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
		X509V3_set_nconf(&ctx2, conf);
		if (!X509V3_EXT_add_nconf(conf, &ctx2, section, x))
			goto end;
	}
	if (!do_X509_sign(bio_err, x, pkey, digest, sigopts))
		goto end;
	ret = 1;
 end:
	X509_STORE_CTX_cleanup(&xsc);
	if (!ret)
		ERR_print_errors(bio_err);
	if (!sno)
		ASN1_INTEGER_free(bs);
	return ret;
}
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
		if (!X509V3_EXT_add_nconf(conf, &ctx, section, x))
			goto err;
	}
	if (!X509_sign(x, pkey, digest))
		goto err;
	return 1;

err:
	ERR_print_errors(bio_err);
	return 0;
}

static int
purpose_print(BIO *bio, X509 *cert, X509_PURPOSE *pt)
{







|







1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
		if (!X509V3_EXT_add_nconf(conf, &ctx, section, x))
			goto err;
	}
	if (!X509_sign(x, pkey, digest))
		goto err;
	return 1;

 err:
	ERR_print_errors(bio_err);
	return 0;
}

static int
purpose_print(BIO *bio, X509 *cert, X509_PURPOSE *pt)
{
Changes to jni/libressl/cmake_export_symbol.cmake.
1
2
3

4
5
6

7
8
9
10
11
12
13
14
15
16
17

18
19
20
21
22
23
24
25
26

27
28
29
30
31
32
33
34

35
36
37
38
39
40
41
42
43

44
45
46
47
48
49
50
macro(export_symbol TARGET FILENAME)

	set(FLAG "")


	if(WIN32)
		string(REPLACE ".sym" ".def" DEF_FILENAME ${FILENAME})

		file(WRITE ${DEF_FILENAME} "EXPORTS\n")
		file(READ ${FILENAME} SYMBOLS)
		file(APPEND ${DEF_FILENAME} "${SYMBOLS}")
		target_sources(${TARGET} PRIVATE ${DEF_FILENAME})

	elseif(APPLE)
		file(READ ${FILENAME} SYMBOLS)
		string(REGEX REPLACE "\n$" "" SYMBOLS ${SYMBOLS})
		string(REPLACE "\n" "\n_" SYMBOLS ${SYMBOLS})
		string(REGEX REPLACE "(.)$" "\\1\\n" SYMBOLS ${SYMBOLS})
		string(REPLACE ".sym" ".exp" EXP_FILENAME ${FILENAME})

		file(WRITE ${EXP_FILENAME} "_${SYMBOLS}")
		set(FLAG "-exported_symbols_list ${EXP_FILENAME}")
		set_target_properties(${TARGET} PROPERTIES LINK_FLAGS ${FLAG})

	elseif(CMAKE_SYSTEM_NAME MATCHES "HP-UX")
		file(READ ${FILENAME} SYMBOLS)
		string(REGEX REPLACE "\n$" "" SYMBOLS ${SYMBOLS})
		string(REPLACE "\n" "\n+e " SYMBOLS ${SYMBOLS})
		string(REPLACE ".sym" ".opt" OPT_FILENAME ${FILENAME})

		file(WRITE ${OPT_FILENAME} "+e ${SYMBOLS}")
		set(FLAG "-Wl,-c,${OPT_FILENAME}")
		set_target_properties(${TARGET} PROPERTIES LINK_FLAGS ${FLAG})

	elseif(CMAKE_SYSTEM_NAME MATCHES "SunOS")
		file(READ ${FILENAME} SYMBOLS)
		string(REPLACE "\n" ";\n" SYMBOLS ${SYMBOLS})
		string(REPLACE ".sym" ".ver" VER_FILENAME ${FILENAME})

		file(WRITE ${VER_FILENAME}
			"{\nglobal:\n${SYMBOLS}\nlocal:\n*;\n};\n")
		set(FLAG "-Wl,-M${VER_FILENAME}")
		set_target_properties(${TARGET} PROPERTIES LINK_FLAGS ${FLAG})

	elseif(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang")
		file(READ ${FILENAME} SYMBOLS)
		string(REPLACE "\n" ";\n" SYMBOLS ${SYMBOLS})
		string(REPLACE ".sym" ".ver" VER_FILENAME ${FILENAME})

		file(WRITE ${VER_FILENAME}
			"{\nglobal:\n${SYMBOLS}\nlocal:\n*;\n};\n")
		set(FLAG "-Wl,--version-script,\"${VER_FILENAME}\"")
		set_target_properties(${TARGET} PROPERTIES LINK_FLAGS ${FLAG})
	endif()

endmacro()
|


>



>
|
|
|
|


|




>
|
|



|



>
|
|



|


>
|

|



|


>
|

|




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
macro(export_symbol TARGET SYMBOLS_PATH)

	set(FLAG "")
	get_filename_component(FILENAME ${SYMBOLS_PATH} NAME)

	if(WIN32)
		string(REPLACE ".sym" ".def" DEF_FILENAME ${FILENAME})
		file(TO_CMAKE_PATH "${CMAKE_CURRENT_BINARY_DIR}/${DEF_FILENAME}" DEF_PATH)
		file(WRITE ${DEF_PATH} "EXPORTS\n")
		file(READ ${SYMBOLS_PATH} SYMBOLS)
		file(APPEND ${DEF_PATH} "${SYMBOLS}")
		target_sources(${TARGET} PRIVATE ${DEF_PATH})

	elseif(APPLE)
		file(READ ${SYMBOLS_PATH} SYMBOLS)
		string(REGEX REPLACE "\n$" "" SYMBOLS ${SYMBOLS})
		string(REPLACE "\n" "\n_" SYMBOLS ${SYMBOLS})
		string(REGEX REPLACE "(.)$" "\\1\\n" SYMBOLS ${SYMBOLS})
		string(REPLACE ".sym" ".exp" EXP_FILENAME ${FILENAME})
		file(TO_CMAKE_PATH "${CMAKE_CURRENT_BINARY_DIR}/${EXP_FILENAME}" EXP_PATH)
		file(WRITE ${EXP_PATH} "_${SYMBOLS}")
		set(FLAG "-exported_symbols_list ${EXP_PATH}")
		set_target_properties(${TARGET} PROPERTIES LINK_FLAGS ${FLAG})

	elseif(CMAKE_SYSTEM_NAME MATCHES "HP-UX")
		file(READ ${SYMBOLS_PATH} SYMBOLS)
		string(REGEX REPLACE "\n$" "" SYMBOLS ${SYMBOLS})
		string(REPLACE "\n" "\n+e " SYMBOLS ${SYMBOLS})
		string(REPLACE ".sym" ".opt" OPT_FILENAME ${FILENAME})
		file(TO_CMAKE_PATH "${CMAKE_CURRENT_BINARY_DIR}/${OPT_FILENAME}" OPT_PATH)
		file(WRITE ${OPT_PATH} "+e ${SYMBOLS}")
		set(FLAG "-Wl,-c,${OPT_PATH}")
		set_target_properties(${TARGET} PROPERTIES LINK_FLAGS ${FLAG})

	elseif(CMAKE_SYSTEM_NAME MATCHES "SunOS")
		file(READ ${SYMBOLS_PATH} SYMBOLS)
		string(REPLACE "\n" ";\n" SYMBOLS ${SYMBOLS})
		string(REPLACE ".sym" ".ver" VER_FILENAME ${FILENAME})
		file(TO_CMAKE_PATH "${CMAKE_CURRENT_BINARY_DIR}/${VER_FILENAME}" VER_PATH)
		file(WRITE ${VER_PATH}
			"{\nglobal:\n${SYMBOLS}\nlocal:\n*;\n};\n")
		set(FLAG "-Wl,-M${VER_PATH}")
		set_target_properties(${TARGET} PROPERTIES LINK_FLAGS ${FLAG})

	elseif(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang")
		file(READ ${SYMBOLS_PATH} SYMBOLS)
		string(REPLACE "\n" ";\n" SYMBOLS ${SYMBOLS})
		string(REPLACE ".sym" ".ver" VER_FILENAME ${FILENAME})
		file(TO_CMAKE_PATH "${CMAKE_CURRENT_BINARY_DIR}/${VER_FILENAME}" VER_PATH)
		file(WRITE ${VER_PATH}
			"{\nglobal:\n${SYMBOLS}\nlocal:\n*;\n};\n")
		set(FLAG "-Wl,--version-script,\"${VER_PATH}\"")
		set_target_properties(${TARGET} PROPERTIES LINK_FLAGS ${FLAG})
	endif()

endmacro()
Changes to jni/libressl/configure.
1
2
3
4
5
6
7
8
9
10
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for libressl 2.6.4.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
#
#
# This configure script is free software; the Free Software Foundation
# gives unlimited permission to copy, distribute and modify it.


|







1
2
3
4
5
6
7
8
9
10
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for libressl 2.7.2.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
#
#
# This configure script is free software; the Free Software Foundation
# gives unlimited permission to copy, distribute and modify it.
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
subdirs=
MFLAGS=
MAKEFLAGS=

# Identity of this package.
PACKAGE_NAME='libressl'
PACKAGE_TARNAME='libressl'
PACKAGE_VERSION='2.6.4'
PACKAGE_STRING='libressl 2.6.4'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''

# Factoring default headers for most tests.
ac_includes_default="\
#include <stdio.h>
#ifdef HAVE_SYS_TYPES_H







|
|







583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
subdirs=
MFLAGS=
MAKEFLAGS=

# Identity of this package.
PACKAGE_NAME='libressl'
PACKAGE_TARNAME='libressl'
PACKAGE_VERSION='2.7.2'
PACKAGE_STRING='libressl 2.7.2'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''

# Factoring default headers for most tests.
ac_includes_default="\
#include <stdio.h>
#ifdef HAVE_SYS_TYPES_H
645
646
647
648
649
650
651


652
653
654
655
656
657
658
ENABLE_EXTRATESTS_FALSE
ENABLE_EXTRATESTS_TRUE
OPENSSLDIR_DEFINED_FALSE
OPENSSLDIR_DEFINED_TRUE
OPENSSLDIR
HAVE_B64_NTOP_FALSE
HAVE_B64_NTOP_TRUE


HAVE_TIMINGSAFE_MEMCMP_FALSE
HAVE_TIMINGSAFE_MEMCMP_TRUE
HAVE_TIMINGSAFE_BCMP_FALSE
HAVE_TIMINGSAFE_BCMP_TRUE
HAVE_GETENTROPY_FALSE
HAVE_GETENTROPY_TRUE
HAVE_EXPLICIT_BZERO_FALSE







>
>







645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
ENABLE_EXTRATESTS_FALSE
ENABLE_EXTRATESTS_TRUE
OPENSSLDIR_DEFINED_FALSE
OPENSSLDIR_DEFINED_TRUE
OPENSSLDIR
HAVE_B64_NTOP_FALSE
HAVE_B64_NTOP_TRUE
HAVE_CLOCK_GETTIME_FALSE
HAVE_CLOCK_GETTIME_TRUE
HAVE_TIMINGSAFE_MEMCMP_FALSE
HAVE_TIMINGSAFE_MEMCMP_TRUE
HAVE_TIMINGSAFE_BCMP_FALSE
HAVE_TIMINGSAFE_BCMP_TRUE
HAVE_GETENTROPY_FALSE
HAVE_GETENTROPY_TRUE
HAVE_EXPLICIT_BZERO_FALSE
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
HAVE_RECALLOCARRAY_TRUE
HAVE_REALLOCARRAY_FALSE
HAVE_REALLOCARRAY_TRUE
HAVE_READPASSPHRASE_FALSE
HAVE_READPASSPHRASE_TRUE
HAVE_MEMMEM_FALSE
HAVE_MEMMEM_TRUE
HAVE_INET_PTON_FALSE
HAVE_INET_PTON_TRUE
HAVE_INET_NTOP_FALSE
HAVE_INET_NTOP_TRUE
HAVE_GETPAGESIZE_FALSE
HAVE_GETPAGESIZE_TRUE
HAVE_FREEZERO_FALSE
HAVE_FREEZERO_TRUE
HAVE_ASPRINTF_FALSE
HAVE_ASPRINTF_TRUE
BUILD_CERTHASH_FALSE







<
<
<
<







693
694
695
696
697
698
699




700
701
702
703
704
705
706
HAVE_RECALLOCARRAY_TRUE
HAVE_REALLOCARRAY_FALSE
HAVE_REALLOCARRAY_TRUE
HAVE_READPASSPHRASE_FALSE
HAVE_READPASSPHRASE_TRUE
HAVE_MEMMEM_FALSE
HAVE_MEMMEM_TRUE




HAVE_GETPAGESIZE_FALSE
HAVE_GETPAGESIZE_TRUE
HAVE_FREEZERO_FALSE
HAVE_FREEZERO_TRUE
HAVE_ASPRINTF_FALSE
HAVE_ASPRINTF_TRUE
BUILD_CERTHASH_FALSE
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
#
# Report the --help message.
#
if test "$ac_init_help" = "long"; then
  # Omit some internal or obsolete options to make the list less imposing.
  # This message is too long to be a string in the A/UX 3.1 sh.
  cat <<_ACEOF
\`configure' configures libressl 2.6.4 to adapt to many kinds of systems.

Usage: $0 [OPTION]... [VAR=VALUE]...

To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE.  See below for descriptions of some of the useful variables.

Defaults for the options are specified in brackets.







|







1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
#
# Report the --help message.
#
if test "$ac_init_help" = "long"; then
  # Omit some internal or obsolete options to make the list less imposing.
  # This message is too long to be a string in the A/UX 3.1 sh.
  cat <<_ACEOF
\`configure' configures libressl 2.7.2 to adapt to many kinds of systems.

Usage: $0 [OPTION]... [VAR=VALUE]...

To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE.  See below for descriptions of some of the useful variables.

Defaults for the options are specified in brackets.
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
  --build=BUILD     configure for building on BUILD [guessed]
  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
_ACEOF
fi

if test -n "$ac_init_help"; then
  case $ac_init_help in
     short | recursive ) echo "Configuration of libressl 2.6.4:";;
   esac
  cat <<\_ACEOF

Optional Features:
  --disable-option-checking  ignore unrecognized --enable/--with options
  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]







|







1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
  --build=BUILD     configure for building on BUILD [guessed]
  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
_ACEOF
fi

if test -n "$ac_init_help"; then
  case $ac_init_help in
     short | recursive ) echo "Configuration of libressl 2.7.2:";;
   esac
  cat <<\_ACEOF

Optional Features:
  --disable-option-checking  ignore unrecognized --enable/--with options
  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
    cd "$ac_pwd" || { ac_status=$?; break; }
  done
fi

test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
  cat <<\_ACEOF
libressl configure 2.6.4
generated by GNU Autoconf 2.69

Copyright (C) 2012 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
  exit







|







1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
    cd "$ac_pwd" || { ac_status=$?; break; }
  done
fi

test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
  cat <<\_ACEOF
libressl configure 2.7.2
generated by GNU Autoconf 2.69

Copyright (C) 2012 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
  exit
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
  as_fn_set_status $ac_retval

} # ac_fn_c_compute_int
cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by libressl $as_me 2.6.4, which was
generated by GNU Autoconf 2.69.  Invocation command line was

  $ $0 $@

_ACEOF
exec 5>>config.log
{







|







2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
  as_fn_set_status $ac_retval

} # ac_fn_c_compute_int
cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by libressl $as_me 2.7.2, which was
generated by GNU Autoconf 2.69.  Invocation command line was

  $ $0 $@

_ACEOF
exec 5>>config.log
{
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu


LIBCRYPTO_VERSION=42:0:0

LIBSSL_VERSION=44:1:0

LIBTLS_VERSION=16:1:0


ac_aux_dir=
for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
  if test -f "$ac_dir/install-sh"; then
    ac_aux_dir=$ac_dir
    ac_install_sh="$ac_aux_dir/install-sh -c"







|

|

|







2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu


LIBCRYPTO_VERSION=43:1:0

LIBSSL_VERSION=45:1:0

LIBTLS_VERSION=17:1:0


ac_aux_dir=
for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
  if test -f "$ac_dir/install-sh"; then
    ac_aux_dir=$ac_dir
    ac_install_sh="$ac_aux_dir/install-sh -c"
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
    CYGPATH_W=echo
  fi
fi


# Define the identity of the package.
 PACKAGE='libressl'
 VERSION='2.6.4'


cat >>confdefs.h <<_ACEOF
#define PACKAGE "$PACKAGE"
_ACEOF









|







3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
    CYGPATH_W=echo
  fi
fi


# Define the identity of the package.
 PACKAGE='libressl'
 VERSION='2.7.2'


cat >>confdefs.h <<_ACEOF
#define PACKAGE "$PACKAGE"
_ACEOF


12185
12186
12187
12188
12189
12190
12191


12192
12193
12194
12195
12196
12197
12198
		PLATFORM_LDADD='-lpthread'

		;;
	*linux*)
		HOST_OS=linux
		HOST_ABI=elf
		CPPFLAGS="$CPPFLAGS -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_SOURCE -D_GNU_SOURCE"


		;;
	*netbsd*)
		HOST_OS=netbsd
		HOST_ABI=elf
		cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */








>
>







12183
12184
12185
12186
12187
12188
12189
12190
12191
12192
12193
12194
12195
12196
12197
12198
		PLATFORM_LDADD='-lpthread'

		;;
	*linux*)
		HOST_OS=linux
		HOST_ABI=elf
		CPPFLAGS="$CPPFLAGS -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_SOURCE -D_GNU_SOURCE"
		PLATFORM_LDADD='-lpthread'

		;;
	*netbsd*)
		HOST_OS=netbsd
		HOST_ABI=elf
		cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

12226
12227
12228
12229
12230
12231
12232
12233
12234
12235
12236
12237
12238
12239
12240
12241
12242
12243
12244
12245
12246
12247
12248

		;;
	*mingw*)
		HOST_OS=win
		BUILD_NC=no
		CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE -D_POSIX -D_POSIX_SOURCE -D__USE_MINGW_ANSI_STDIO"
		CPPFLAGS="$CPPFLAGS -D_REENTRANT -D_POSIX_THREAD_SAFE_FUNCTIONS"
		CPPFLAGS="$CPPFLAGS -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0501"
		CPPFLAGS="$CPPFLAGS -DOPENSSL_NO_SPEED"
		PLATFORM_LDADD='-lws2_32'

		;;
	*solaris*)
		HOST_OS=solaris
		HOST_ABI=elf
		CFLAGS="$CFLAGS -m64"
		CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__ -D_XOPEN_SOURCE=600 -DBSD_COMP"
		PLATFORM_LDADD='-lnsl -lsocket'

		;;
	*) ;;
esac








|







<







12226
12227
12228
12229
12230
12231
12232
12233
12234
12235
12236
12237
12238
12239
12240

12241
12242
12243
12244
12245
12246
12247

		;;
	*mingw*)
		HOST_OS=win
		BUILD_NC=no
		CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE -D_POSIX -D_POSIX_SOURCE -D__USE_MINGW_ANSI_STDIO"
		CPPFLAGS="$CPPFLAGS -D_REENTRANT -D_POSIX_THREAD_SAFE_FUNCTIONS"
		CPPFLAGS="$CPPFLAGS -DWIN32_LEAN_AND_MEAN"
		CPPFLAGS="$CPPFLAGS -DOPENSSL_NO_SPEED"
		PLATFORM_LDADD='-lws2_32'

		;;
	*solaris*)
		HOST_OS=solaris
		HOST_ABI=elf

		CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__ -D_XOPEN_SOURCE=600 -DBSD_COMP"
		PLATFORM_LDADD='-lnsl -lsocket'

		;;
	*) ;;
esac

13033
13034
13035
13036
13037
13038
13039
13040
13041
13042
13043
13044
13045
13046
13047
_ACEOF

fi

done

# Check for general libc functions
for ac_func in asprintf freezero inet_ntop inet_pton memmem
do :
  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF







|







13032
13033
13034
13035
13036
13037
13038
13039
13040
13041
13042
13043
13044
13045
13046
_ACEOF

fi

done

# Check for general libc functions
for ac_func in asprintf freezero memmem
do :
  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
13141
13142
13143
13144
13145
13146
13147
13148
13149
13150
13151
13152
13153
13154
13155
13156
13157
13158
13159
13160
13161
13162
13163
13164
13165
13166
13167
13168
13169
13170
  HAVE_GETPAGESIZE_TRUE=
  HAVE_GETPAGESIZE_FALSE='#'
else
  HAVE_GETPAGESIZE_TRUE='#'
  HAVE_GETPAGESIZE_FALSE=
fi

 if test "x$ac_cv_func_inet_ntop" = xyes; then
  HAVE_INET_NTOP_TRUE=
  HAVE_INET_NTOP_FALSE='#'
else
  HAVE_INET_NTOP_TRUE='#'
  HAVE_INET_NTOP_FALSE=
fi

 if test "x$ac_cv_func_inet_pton" = xyes; then
  HAVE_INET_PTON_TRUE=
  HAVE_INET_PTON_FALSE='#'
else
  HAVE_INET_PTON_TRUE='#'
  HAVE_INET_PTON_FALSE=
fi

 if test "x$ac_cv_func_memmem" = xyes; then
  HAVE_MEMMEM_TRUE=
  HAVE_MEMMEM_FALSE='#'
else
  HAVE_MEMMEM_TRUE='#'
  HAVE_MEMMEM_FALSE=
fi







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







13140
13141
13142
13143
13144
13145
13146
















13147
13148
13149
13150
13151
13152
13153
  HAVE_GETPAGESIZE_TRUE=
  HAVE_GETPAGESIZE_FALSE='#'
else
  HAVE_GETPAGESIZE_TRUE='#'
  HAVE_GETPAGESIZE_FALSE=
fi

















 if test "x$ac_cv_func_memmem" = xyes; then
  HAVE_MEMMEM_TRUE=
  HAVE_MEMMEM_FALSE='#'
else
  HAVE_MEMMEM_TRUE='#'
  HAVE_MEMMEM_FALSE=
fi
13475
13476
13477
13478
13479
13480
13481


13482
13483
13484
13485
13486
13487
13488
13489
13490
13491
13492
13493
13494
13495
13496
13497
13498
13499
13500
13501
13502
13503
13504
13505
13506
13507
13508
13509
13510
13511
13512
13513
13514
13515
13516
13517
13518
13519
13520
13521
13522
13523
13524
13525
13526
13527
13528
13529
13530
13531
13532
13533
13534
13535
13536
13537
13538
13539
13540
13541
13542
13543
13544
13545
13546
13547
13548
13549
13550
13551
13552
13553
else
  HAVE_ARC4RANDOM_BUF_TRUE='#'
  HAVE_ARC4RANDOM_BUF_FALSE=
fi


# Check for getentropy fallback dependencies


ac_fn_c_check_func "$LINENO" "getauxval" "ac_cv_func_getauxval"
if test "x$ac_cv_func_getauxval" = xyes; then :

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5
$as_echo_n "checking for library containing clock_gettime... " >&6; }
if ${ac_cv_search_clock_gettime+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char clock_gettime ();
int
main ()
{
return clock_gettime ();
  ;
  return 0;
}
_ACEOF
for ac_lib in '' rt posix4; do
  if test -z "$ac_lib"; then
    ac_res="none required"
  else
    ac_res=-l$ac_lib
    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
  fi
  if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_search_clock_gettime=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext
  if ${ac_cv_search_clock_gettime+:} false; then :
  break
fi
done
if ${ac_cv_search_clock_gettime+:} false; then :

else
  ac_cv_search_clock_gettime=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5
$as_echo "$ac_cv_search_clock_gettime" >&6; }
ac_res=$ac_cv_search_clock_gettime
if test "$ac_res" != no; then :
  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"

fi

ac_fn_c_check_func "$LINENO" "clock_gettime" "ac_cv_func_clock_gettime"
if test "x$ac_cv_func_clock_gettime" = xyes; then :

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dl_iterate_phdr" >&5
$as_echo_n "checking for library containing dl_iterate_phdr... " >&6; }
if ${ac_cv_search_dl_iterate_phdr+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_func_search_save_LIBS=$LIBS







>
>
|

<
<
<
<
<
<
<
<
<
<
|
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<

|
<
<
<
<
<
|
<
<
<
<
<
<
<
<

<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







13458
13459
13460
13461
13462
13463
13464
13465
13466
13467
13468










13469
13470














13471
13472





13473








13474




















13475
13476
13477
13478
13479
13480
13481
else
  HAVE_ARC4RANDOM_BUF_TRUE='#'
  HAVE_ARC4RANDOM_BUF_FALSE=
fi


# Check for getentropy fallback dependencies
for ac_func in getauxval
do :
  ac_fn_c_check_func "$LINENO" "getauxval" "ac_cv_func_getauxval"
if test "x$ac_cv_func_getauxval" = xyes; then :










  cat >>confdefs.h <<_ACEOF
#define HAVE_GETAUXVAL 1














_ACEOF






fi








done





















{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dl_iterate_phdr" >&5
$as_echo_n "checking for library containing dl_iterate_phdr... " >&6; }
if ${ac_cv_search_dl_iterate_phdr+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_func_search_save_LIBS=$LIBS
13597
13598
13599
13600
13601
13602
13603


13604
13605



13606
13607













































































13608
13609
13610
13611
13612
13613
13614
$as_echo "$ac_cv_search_dl_iterate_phdr" >&6; }
ac_res=$ac_cv_search_dl_iterate_phdr
if test "$ac_res" != no; then :
  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"

fi



ac_fn_c_check_func "$LINENO" "dl_iterate_phdr" "ac_cv_func_dl_iterate_phdr"
if test "x$ac_cv_func_dl_iterate_phdr" = xyes; then :




fi
















































































{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether va_copy exists" >&5
$as_echo_n "checking whether va_copy exists... " >&6; }
if ${ac_cv_have_va_copy+:} false; then :
  $as_echo_n "(cached) " >&6







>
>
|

>
>
>


>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







13525
13526
13527
13528
13529
13530
13531
13532
13533
13534
13535
13536
13537
13538
13539
13540
13541
13542
13543
13544
13545
13546
13547
13548
13549
13550
13551
13552
13553
13554
13555
13556
13557
13558
13559
13560
13561
13562
13563
13564
13565
13566
13567
13568
13569
13570
13571
13572
13573
13574
13575
13576
13577
13578
13579
13580
13581
13582
13583
13584
13585
13586
13587
13588
13589
13590
13591
13592
13593
13594
13595
13596
13597
13598
13599
13600
13601
13602
13603
13604
13605
13606
13607
13608
13609
13610
13611
13612
13613
13614
13615
13616
13617
13618
13619
13620
13621
13622
13623
13624
$as_echo "$ac_cv_search_dl_iterate_phdr" >&6; }
ac_res=$ac_cv_search_dl_iterate_phdr
if test "$ac_res" != no; then :
  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"

fi

for ac_func in dl_iterate_phdr
do :
  ac_fn_c_check_func "$LINENO" "dl_iterate_phdr" "ac_cv_func_dl_iterate_phdr"
if test "x$ac_cv_func_dl_iterate_phdr" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_DL_ITERATE_PHDR 1
_ACEOF

fi
done


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5
$as_echo_n "checking for library containing clock_gettime... " >&6; }
if ${ac_cv_search_clock_gettime+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char clock_gettime ();
int
main ()
{
return clock_gettime ();
  ;
  return 0;
}
_ACEOF
for ac_lib in '' rt posix4; do
  if test -z "$ac_lib"; then
    ac_res="none required"
  else
    ac_res=-l$ac_lib
    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
  fi
  if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_search_clock_gettime=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext
  if ${ac_cv_search_clock_gettime+:} false; then :
  break
fi
done
if ${ac_cv_search_clock_gettime+:} false; then :

else
  ac_cv_search_clock_gettime=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5
$as_echo "$ac_cv_search_clock_gettime" >&6; }
ac_res=$ac_cv_search_clock_gettime
if test "$ac_res" != no; then :
  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"

fi

for ac_func in clock_gettime
do :
  ac_fn_c_check_func "$LINENO" "clock_gettime" "ac_cv_func_clock_gettime"
if test "x$ac_cv_func_clock_gettime" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_CLOCK_GETTIME 1
_ACEOF

fi
done

 if test "x$ac_cv_func_clock_gettime" = xyes; then
  HAVE_CLOCK_GETTIME_TRUE=
  HAVE_CLOCK_GETTIME_FALSE='#'
else
  HAVE_CLOCK_GETTIME_TRUE='#'
  HAVE_CLOCK_GETTIME_FALSE=
fi



{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether va_copy exists" >&5
$as_echo_n "checking whether va_copy exists... " >&6; }
if ${ac_cv_have_va_copy+:} false; then :
  $as_echo_n "(cached) " >&6
14282
14283
14284
14285
14286
14287
14288
14289
14290
14291
14292
14293
14294
14295
14296
14297
14298
14299
14300
14301
14302
14303
  as_fn_error $? "conditional \"HAVE_FREEZERO\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${HAVE_GETPAGESIZE_TRUE}" && test -z "${HAVE_GETPAGESIZE_FALSE}"; then
  as_fn_error $? "conditional \"HAVE_GETPAGESIZE\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${HAVE_INET_NTOP_TRUE}" && test -z "${HAVE_INET_NTOP_FALSE}"; then
  as_fn_error $? "conditional \"HAVE_INET_NTOP\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${HAVE_INET_PTON_TRUE}" && test -z "${HAVE_INET_PTON_FALSE}"; then
  as_fn_error $? "conditional \"HAVE_INET_PTON\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${HAVE_MEMMEM_TRUE}" && test -z "${HAVE_MEMMEM_FALSE}"; then
  as_fn_error $? "conditional \"HAVE_MEMMEM\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${HAVE_READPASSPHRASE_TRUE}" && test -z "${HAVE_READPASSPHRASE_FALSE}"; then
  as_fn_error $? "conditional \"HAVE_READPASSPHRASE\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5







<
<
<
<
<
<
<
<







14292
14293
14294
14295
14296
14297
14298








14299
14300
14301
14302
14303
14304
14305
  as_fn_error $? "conditional \"HAVE_FREEZERO\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${HAVE_GETPAGESIZE_TRUE}" && test -z "${HAVE_GETPAGESIZE_FALSE}"; then
  as_fn_error $? "conditional \"HAVE_GETPAGESIZE\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi








if test -z "${HAVE_MEMMEM_TRUE}" && test -z "${HAVE_MEMMEM_FALSE}"; then
  as_fn_error $? "conditional \"HAVE_MEMMEM\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${HAVE_READPASSPHRASE_TRUE}" && test -z "${HAVE_READPASSPHRASE_FALSE}"; then
  as_fn_error $? "conditional \"HAVE_READPASSPHRASE\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
14385
14386
14387
14388
14389
14390
14391




14392
14393
14394
14395
14396
14397
14398
if test -z "${HAVE_TIMINGSAFE_MEMCMP_TRUE}" && test -z "${HAVE_TIMINGSAFE_MEMCMP_FALSE}"; then
  as_fn_error $? "conditional \"HAVE_TIMINGSAFE_MEMCMP\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${HAVE_ARC4RANDOM_BUF_TRUE}" && test -z "${HAVE_ARC4RANDOM_BUF_FALSE}"; then
  as_fn_error $? "conditional \"HAVE_ARC4RANDOM_BUF\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5




fi
if test -z "${HAVE_B64_NTOP_TRUE}" && test -z "${HAVE_B64_NTOP_FALSE}"; then
  as_fn_error $? "conditional \"HAVE_B64_NTOP\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${OPENSSLDIR_DEFINED_TRUE}" && test -z "${OPENSSLDIR_DEFINED_FALSE}"; then
  as_fn_error $? "conditional \"OPENSSLDIR_DEFINED\" was never defined.







>
>
>
>







14387
14388
14389
14390
14391
14392
14393
14394
14395
14396
14397
14398
14399
14400
14401
14402
14403
14404
if test -z "${HAVE_TIMINGSAFE_MEMCMP_TRUE}" && test -z "${HAVE_TIMINGSAFE_MEMCMP_FALSE}"; then
  as_fn_error $? "conditional \"HAVE_TIMINGSAFE_MEMCMP\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${HAVE_ARC4RANDOM_BUF_TRUE}" && test -z "${HAVE_ARC4RANDOM_BUF_FALSE}"; then
  as_fn_error $? "conditional \"HAVE_ARC4RANDOM_BUF\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${HAVE_CLOCK_GETTIME_TRUE}" && test -z "${HAVE_CLOCK_GETTIME_FALSE}"; then
  as_fn_error $? "conditional \"HAVE_CLOCK_GETTIME\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${HAVE_B64_NTOP_TRUE}" && test -z "${HAVE_B64_NTOP_FALSE}"; then
  as_fn_error $? "conditional \"HAVE_B64_NTOP\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${OPENSSLDIR_DEFINED_TRUE}" && test -z "${OPENSSLDIR_DEFINED_FALSE}"; then
  as_fn_error $? "conditional \"OPENSSLDIR_DEFINED\" was never defined.
14815
14816
14817
14818
14819
14820
14821
14822
14823
14824
14825
14826
14827
14828
14829
test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1

cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# Save the log message, to keep $0 and so on meaningful, and to
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by libressl $as_me 2.6.4, which was
generated by GNU Autoconf 2.69.  Invocation command line was

  CONFIG_FILES    = $CONFIG_FILES
  CONFIG_HEADERS  = $CONFIG_HEADERS
  CONFIG_LINKS    = $CONFIG_LINKS
  CONFIG_COMMANDS = $CONFIG_COMMANDS
  $ $0 $@







|







14821
14822
14823
14824
14825
14826
14827
14828
14829
14830
14831
14832
14833
14834
14835
test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1

cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# Save the log message, to keep $0 and so on meaningful, and to
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by libressl $as_me 2.7.2, which was
generated by GNU Autoconf 2.69.  Invocation command line was

  CONFIG_FILES    = $CONFIG_FILES
  CONFIG_HEADERS  = $CONFIG_HEADERS
  CONFIG_LINKS    = $CONFIG_LINKS
  CONFIG_COMMANDS = $CONFIG_COMMANDS
  $ $0 $@
14872
14873
14874
14875
14876
14877
14878
14879
14880
14881
14882
14883
14884
14885
14886

Report bugs to the package provider."

_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
libressl config.status 2.6.4
configured by $0, generated by GNU Autoconf 2.69,
  with options \\"\$ac_cs_config\\"

Copyright (C) 2012 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."








|







14878
14879
14880
14881
14882
14883
14884
14885
14886
14887
14888
14889
14890
14891
14892

Report bugs to the package provider."

_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
libressl config.status 2.7.2
configured by $0, generated by GNU Autoconf 2.69,
  with options \\"\$ac_cs_config\\"

Copyright (C) 2012 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."

Changes to jni/libressl/crypto/CMakeLists.txt.
108
109
110
111
112
113
114

115
116
117
118
119
120
121
endif()

set(
	CRYPTO_SRC
	${CRYPTO_SRC}
	cpt_err.c
	cryptlib.c

	cversion.c
	ex_data.c
	malloc-wrapper.c
	mem_clr.c
	mem_dbg.c
	o_init.c
	o_str.c







>







108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
endif()

set(
	CRYPTO_SRC
	${CRYPTO_SRC}
	cpt_err.c
	cryptlib.c
	crypto_init.c
	cversion.c
	ex_data.c
	malloc-wrapper.c
	mem_clr.c
	mem_dbg.c
	o_init.c
	o_str.c
213
214
215
216
217
218
219

220
221
222
223
224
225
226
	bio/b_sock.c
	bio/bf_buff.c
	bio/bf_nbio.c
	bio/bf_null.c
	bio/bio_cb.c
	bio/bio_err.c
	bio/bio_lib.c

	bio/bss_acpt.c
	bio/bss_bio.c
	bio/bss_conn.c
	bio/bss_dgram.c
	bio/bss_fd.c
	bio/bss_file.c
	bio/bss_mem.c







>







214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
	bio/b_sock.c
	bio/bf_buff.c
	bio/bf_nbio.c
	bio/bf_null.c
	bio/bio_cb.c
	bio/bio_err.c
	bio/bio_lib.c
	bio/bio_meth.c
	bio/bss_acpt.c
	bio/bss_bio.c
	bio/bss_conn.c
	bio/bss_dgram.c
	bio/bss_fd.c
	bio/bss_file.c
	bio/bss_mem.c
319
320
321
322
323
324
325

326
327
328
329
330
331
332
	dsa/dsa_ameth.c
	dsa/dsa_asn1.c
	dsa/dsa_depr.c
	dsa/dsa_err.c
	dsa/dsa_gen.c
	dsa/dsa_key.c
	dsa/dsa_lib.c

	dsa/dsa_ossl.c
	dsa/dsa_pmeth.c
	dsa/dsa_prn.c
	dsa/dsa_sign.c
	dsa/dsa_vrf.c
	dso/dso_dlfcn.c
	dso/dso_err.c







>







321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
	dsa/dsa_ameth.c
	dsa/dsa_asn1.c
	dsa/dsa_depr.c
	dsa/dsa_err.c
	dsa/dsa_gen.c
	dsa/dsa_key.c
	dsa/dsa_lib.c
	dsa/dsa_meth.c
	dsa/dsa_ossl.c
	dsa/dsa_pmeth.c
	dsa/dsa_prn.c
	dsa/dsa_sign.c
	dsa/dsa_vrf.c
	dso/dso_dlfcn.c
	dso/dso_err.c
547
548
549
550
551
552
553

554
555
556
557
558
559
560
	rsa/rsa_chk.c
	rsa/rsa_crpt.c
	rsa/rsa_depr.c
	rsa/rsa_eay.c
	rsa/rsa_err.c
	rsa/rsa_gen.c
	rsa/rsa_lib.c

	rsa/rsa_none.c
	rsa/rsa_oaep.c
	rsa/rsa_pk1.c
	rsa/rsa_pmeth.c
	rsa/rsa_prn.c
	rsa/rsa_pss.c
	rsa/rsa_saos.c







>







550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
	rsa/rsa_chk.c
	rsa/rsa_crpt.c
	rsa/rsa_depr.c
	rsa/rsa_eay.c
	rsa/rsa_err.c
	rsa/rsa_gen.c
	rsa/rsa_lib.c
	rsa/rsa_meth.c
	rsa/rsa_none.c
	rsa/rsa_oaep.c
	rsa/rsa_pk1.c
	rsa/rsa_pmeth.c
	rsa/rsa_prn.c
	rsa/rsa_pss.c
	rsa/rsa_saos.c
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
	x509v3/v3_purp.c
	x509v3/v3_skey.c
	x509v3/v3_sxnet.c
	x509v3/v3_utl.c
	x509v3/v3err.c
)

if(CMAKE_HOST_UNIX)
	set(CRYPTO_SRC ${CRYPTO_SRC} bio/b_posix.c)
	set(CRYPTO_SRC ${CRYPTO_SRC} bio/bss_log.c)
	set(CRYPTO_SRC ${CRYPTO_SRC} ui/ui_openssl.c)
endif()

if(CMAKE_HOST_WIN32)
	set(CRYPTO_SRC ${CRYPTO_SRC} bio/b_win.c)
	set(CRYPTO_UNEXPORT ${CRYPTO_UNEXPORT} BIO_s_log)
	set(CRYPTO_SRC ${CRYPTO_SRC} ui/ui_openssl_win.c)
endif()

if(CMAKE_HOST_WIN32)
	set(CRYPTO_SRC ${CRYPTO_SRC} compat/posix_win.c)
	set(EXTRA_EXPORT ${EXTRA_EXPORT} gettimeofday)
	set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_perror)
	set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_fopen)
	set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_fgets)
	set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_open)
	set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_rename)







|





|





|







642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
	x509v3/v3_purp.c
	x509v3/v3_skey.c
	x509v3/v3_sxnet.c
	x509v3/v3_utl.c
	x509v3/v3err.c
)

if(UNIX)
	set(CRYPTO_SRC ${CRYPTO_SRC} bio/b_posix.c)
	set(CRYPTO_SRC ${CRYPTO_SRC} bio/bss_log.c)
	set(CRYPTO_SRC ${CRYPTO_SRC} ui/ui_openssl.c)
endif()

if(WIN32)
	set(CRYPTO_SRC ${CRYPTO_SRC} bio/b_win.c)
	set(CRYPTO_UNEXPORT ${CRYPTO_UNEXPORT} BIO_s_log)
	set(CRYPTO_SRC ${CRYPTO_SRC} ui/ui_openssl_win.c)
endif()

if(WIN32)
	set(CRYPTO_SRC ${CRYPTO_SRC} compat/posix_win.c)
	set(EXTRA_EXPORT ${EXTRA_EXPORT} gettimeofday)
	set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_perror)
	set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_fopen)
	set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_fgets)
	set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_open)
	set(EXTRA_EXPORT ${EXTRA_EXPORT} posix_rename)
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
	set(EXTRA_EXPORT ${EXTRA_EXPORT} freezero)
endif()

if(NOT HAVE_GETPAGESIZE)
	set(CRYPTO_SRC ${CRYPTO_SRC} compat/getpagesize.c)
endif()

if(NOT HAVE_INET_PTON)
	set(CRYPTO_SRC ${CRYPTO_SRC} compat/inet_pton.c)
	set(EXTRA_EXPORT ${EXTRA_EXPORT} inet_pton)
endif()

if(NOT HAVE_REALLOCARRAY)
	set(CRYPTO_SRC ${CRYPTO_SRC} compat/reallocarray.c)
	set(EXTRA_EXPORT ${EXTRA_EXPORT} reallocarray)
endif()

if(NOT HAVE_RECALLOCARRAY)
	set(CRYPTO_SRC ${CRYPTO_SRC} compat/recallocarray.c)







<
<
<
<
<







686
687
688
689
690
691
692





693
694
695
696
697
698
699
	set(EXTRA_EXPORT ${EXTRA_EXPORT} freezero)
endif()

if(NOT HAVE_GETPAGESIZE)
	set(CRYPTO_SRC ${CRYPTO_SRC} compat/getpagesize.c)
endif()






if(NOT HAVE_REALLOCARRAY)
	set(CRYPTO_SRC ${CRYPTO_SRC} compat/reallocarray.c)
	set(EXTRA_EXPORT ${EXTRA_EXPORT} reallocarray)
endif()

if(NOT HAVE_RECALLOCARRAY)
	set(CRYPTO_SRC ${CRYPTO_SRC} compat/recallocarray.c)
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763

if(NOT HAVE_TIMEGM)
	set(CRYPTO_SRC ${CRYPTO_SRC} compat/timegm.c)
	set(EXTRA_EXPORT ${EXTRA_EXPORT} timegm)
endif()

if(NOT HAVE_EXPLICIT_BZERO)
	if(CMAKE_HOST_WIN32)
		set(CRYPTO_SRC ${CRYPTO_SRC} compat/explicit_bzero_win.c)
	else()
		set(CRYPTO_SRC ${CRYPTO_SRC} compat/explicit_bzero.c)
		set_source_files_properties(compat/explicit_bzero.c PROPERTIES COMPILE_FLAGS -O0)
	endif()
	set(EXTRA_EXPORT ${EXTRA_EXPORT} explicit_bzero)
endif()

if(NOT HAVE_ARC4RANDOM_BUF)
	set(CRYPTO_SRC ${CRYPTO_SRC} compat/arc4random.c)
	set(CRYPTO_SRC ${CRYPTO_SRC} compat/arc4random_uniform.c)
	set(EXTRA_EXPORT ${EXTRA_EXPORT} arc4random)
	set(EXTRA_EXPORT ${EXTRA_EXPORT} arc4random_buf)
	set(EXTRA_EXPORT ${EXTRA_EXPORT} arc4random_uniform)

	if(NOT HAVE_GETENTROPY)
		if(CMAKE_HOST_WIN32)
			set(CRYPTO_SRC ${CRYPTO_SRC} compat/getentropy_win.c)
		elseif(CMAKE_SYSTEM_NAME MATCHES "AIX")
			set(CRYPTO_SRC ${CRYPTO_SRC} compat/getentropy_aix.c)
		elseif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
			set(CRYPTO_SRC ${CRYPTO_SRC} compat/getentropy_freebsd.c)
		elseif(CMAKE_SYSTEM_NAME MATCHES "HP-UX")
			set(CRYPTO_SRC ${CRYPTO_SRC} compat/getentropy_hpux.c)







|
















|







731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762

if(NOT HAVE_TIMEGM)
	set(CRYPTO_SRC ${CRYPTO_SRC} compat/timegm.c)
	set(EXTRA_EXPORT ${EXTRA_EXPORT} timegm)
endif()

if(NOT HAVE_EXPLICIT_BZERO)
	if(WIN32)
		set(CRYPTO_SRC ${CRYPTO_SRC} compat/explicit_bzero_win.c)
	else()
		set(CRYPTO_SRC ${CRYPTO_SRC} compat/explicit_bzero.c)
		set_source_files_properties(compat/explicit_bzero.c PROPERTIES COMPILE_FLAGS -O0)
	endif()
	set(EXTRA_EXPORT ${EXTRA_EXPORT} explicit_bzero)
endif()

if(NOT HAVE_ARC4RANDOM_BUF)
	set(CRYPTO_SRC ${CRYPTO_SRC} compat/arc4random.c)
	set(CRYPTO_SRC ${CRYPTO_SRC} compat/arc4random_uniform.c)
	set(EXTRA_EXPORT ${EXTRA_EXPORT} arc4random)
	set(EXTRA_EXPORT ${EXTRA_EXPORT} arc4random_buf)
	set(EXTRA_EXPORT ${EXTRA_EXPORT} arc4random_uniform)

	if(NOT HAVE_GETENTROPY)
		if(WIN32)
			set(CRYPTO_SRC ${CRYPTO_SRC} compat/getentropy_win.c)
		elseif(CMAKE_SYSTEM_NAME MATCHES "AIX")
			set(CRYPTO_SRC ${CRYPTO_SRC} compat/getentropy_aix.c)
		elseif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
			set(CRYPTO_SRC ${CRYPTO_SRC} compat/getentropy_freebsd.c)
		elseif(CMAKE_SYSTEM_NAME MATCHES "HP-UX")
			set(CRYPTO_SRC ${CRYPTO_SRC} compat/getentropy_hpux.c)
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836

	set(CRYPTO_SRC ${CRYPTO_SRC} compat/timingsafe_memcmp.c)
	set(EXTRA_EXPORT ${EXTRA_EXPORT} timingsafe_memcmp)
endif()

if(NOT ENABLE_ASM)
	add_definitions(-DOPENSSL_NO_ASM)
else()
	if(CMAKE_HOST_WIN32)
		add_definitions(-DOPENSSL_NO_ASM)
	endif()
endif()

if(NOT "${OPENSSLDIR}" STREQUAL "")
	add_definitions(-DOPENSSLDIR=\"${OPENSSLDIR}\")
else()
	add_definitions(-DOPENSSLDIR=\"${CMAKE_INSTALL_PREFIX}/etc/ssl\")
endif()

file(READ ${CMAKE_CURRENT_SOURCE_DIR}/crypto.sym SYMS)
foreach(SYM IN LISTS CRYPTO_UNEXPORT)
	string(REPLACE "${SYM}\n" "" SYMS ${SYMS})
endforeach()
file(WRITE ${CMAKE_CURRENT_SOURCE_DIR}/crypto_p.sym ${SYMS})
if(EXTRA_EXPORT)
	list(SORT EXTRA_EXPORT)
	foreach(SYM IN LISTS EXTRA_EXPORT)
		file(APPEND ${CMAKE_CURRENT_SOURCE_DIR}/crypto_p.sym "${SYM}\n")
	endforeach()
endif()

add_library(crypto-objects OBJECT ${CRYPTO_SRC})
if (BUILD_SHARED)
	add_library(crypto STATIC $<TARGET_OBJECTS:crypto-objects>)
	add_library(crypto-shared SHARED $<TARGET_OBJECTS:crypto-objects>)
	export_symbol(crypto-shared ${CMAKE_CURRENT_SOURCE_DIR}/crypto_p.sym)
	if (WIN32)
		target_link_libraries(crypto-shared Ws2_32.lib)
		set(CRYPTO_POSTFIX -${CRYPTO_MAJOR_VERSION})
	endif()
	set_target_properties(crypto-shared PROPERTIES
		OUTPUT_NAME crypto${CRYPTO_POSTFIX}
		ARCHIVE_OUTPUT_NAME crypto${CRYPTO_POSTFIX})
	set_target_properties(crypto-shared PROPERTIES VERSION
		${CRYPTO_VERSION} SOVERSION ${CRYPTO_MAJOR_VERSION})
	if(ENABLE_LIBRESSL_INSTALL)
		install(TARGETS crypto crypto-shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
	endif(ENABLE_LIBRESSL_INSTALL)
else()
	add_library(crypto STATIC ${CRYPTO_SRC})
	if(ENABLE_LIBRESSL_INSTALL)
		install(TARGETS crypto DESTINATION ${CMAKE_INSTALL_LIBDIR})
	endif(ENABLE_LIBRESSL_INSTALL)
endif()









|














|



|



|
|
<
<
|

|


|


|

|
|
|
|
|
|
|
|
<
|
>
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813


814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831

832
833
	set(CRYPTO_SRC ${CRYPTO_SRC} compat/timingsafe_memcmp.c)
	set(EXTRA_EXPORT ${EXTRA_EXPORT} timingsafe_memcmp)
endif()

if(NOT ENABLE_ASM)
	add_definitions(-DOPENSSL_NO_ASM)
else()
	if(WIN32)
		add_definitions(-DOPENSSL_NO_ASM)
	endif()
endif()

if(NOT "${OPENSSLDIR}" STREQUAL "")
	add_definitions(-DOPENSSLDIR=\"${OPENSSLDIR}\")
else()
	add_definitions(-DOPENSSLDIR=\"${CMAKE_INSTALL_PREFIX}/etc/ssl\")
endif()

file(READ ${CMAKE_CURRENT_SOURCE_DIR}/crypto.sym SYMS)
foreach(SYM IN LISTS CRYPTO_UNEXPORT)
	string(REPLACE "${SYM}\n" "" SYMS ${SYMS})
endforeach()
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/crypto_p.sym ${SYMS})
if(EXTRA_EXPORT)
	list(SORT EXTRA_EXPORT)
	foreach(SYM IN LISTS EXTRA_EXPORT)
		file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/crypto_p.sym "${SYM}\n")
	endforeach()
endif()

add_library(crypto ${CRYPTO_SRC})
if (BUILD_SHARED_LIBS)


	export_symbol(crypto ${CMAKE_CURRENT_BINARY_DIR}/crypto_p.sym)
	if (WIN32)
		target_link_libraries(crypto Ws2_32.lib)
		set(CRYPTO_POSTFIX -${CRYPTO_MAJOR_VERSION})
	endif()
	set_target_properties(crypto PROPERTIES
		OUTPUT_NAME crypto${CRYPTO_POSTFIX}
		ARCHIVE_OUTPUT_NAME crypto${CRYPTO_POSTFIX})
	set_target_properties(crypto PROPERTIES VERSION
		${CRYPTO_VERSION} SOVERSION ${CRYPTO_MAJOR_VERSION})
endif()

if(ENABLE_LIBRESSL_INSTALL)
	install(
		TARGETS crypto
		ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
		LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
		RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}

	)
endif(ENABLE_LIBRESSL_INSTALL)
Changes to jni/libressl/crypto/Makefile.am.
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
endif
if !HAVE_EXPLICIT_BZERO
	-echo explicit_bzero >> crypto_portable.sym
endif
if !HAVE_FREEZERO
	-echo freezero >> crypto_portable.sym
endif
if !HAVE_INET_PTON
	-echo inet_pton >> crypto_portable.sym
endif
if !HAVE_REALLOCARRAY
	-echo reallocarray >> crypto_portable.sym
endif
if !HAVE_RECALLOCARRAY
	-echo recallocarray >> crypto_portable.sym
endif
if !HAVE_STRLCAT







<
<
<







36
37
38
39
40
41
42



43
44
45
46
47
48
49
endif
if !HAVE_EXPLICIT_BZERO
	-echo explicit_bzero >> crypto_portable.sym
endif
if !HAVE_FREEZERO
	-echo freezero >> crypto_portable.sym
endif



if !HAVE_REALLOCARRAY
	-echo reallocarray >> crypto_portable.sym
endif
if !HAVE_RECALLOCARRAY
	-echo recallocarray >> crypto_portable.sym
endif
if !HAVE_STRLCAT
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
libcompat_la_SOURCES += compat/freezero.c
endif

if !HAVE_GETPAGESIZE
libcompat_la_SOURCES += compat/getpagesize.c
endif

if !HAVE_INET_PTON
libcompat_la_SOURCES += compat/inet_pton.c
endif

if !HAVE_TIMEGM
libcompat_la_SOURCES += compat/timegm.c
endif

if !HAVE_REALLOCARRAY
libcompat_la_SOURCES += compat/reallocarray.c
endif







<
<
<
<







159
160
161
162
163
164
165




166
167
168
169
170
171
172
libcompat_la_SOURCES += compat/freezero.c
endif

if !HAVE_GETPAGESIZE
libcompat_la_SOURCES += compat/getpagesize.c
endif





if !HAVE_TIMEGM
libcompat_la_SOURCES += compat/timegm.c
endif

if !HAVE_REALLOCARRAY
libcompat_la_SOURCES += compat/reallocarray.c
endif
212
213
214
215
216
217
218

219
220
221
222
223
224
225
libcrypto_la_SOURCES += rc4/rc4_skey.c
libcrypto_la_SOURCES += whrlpool/wp_block.c
endif
endif

libcrypto_la_SOURCES += cpt_err.c
libcrypto_la_SOURCES += cryptlib.c

libcrypto_la_SOURCES += cversion.c
libcrypto_la_SOURCES += ex_data.c
libcrypto_la_SOURCES += malloc-wrapper.c
libcrypto_la_SOURCES += mem_clr.c
libcrypto_la_SOURCES += mem_dbg.c
libcrypto_la_SOURCES += o_init.c
libcrypto_la_SOURCES += o_str.c







>







205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
libcrypto_la_SOURCES += rc4/rc4_skey.c
libcrypto_la_SOURCES += whrlpool/wp_block.c
endif
endif

libcrypto_la_SOURCES += cpt_err.c
libcrypto_la_SOURCES += cryptlib.c
libcrypto_la_SOURCES += crypto_init.c
libcrypto_la_SOURCES += cversion.c
libcrypto_la_SOURCES += ex_data.c
libcrypto_la_SOURCES += malloc-wrapper.c
libcrypto_la_SOURCES += mem_clr.c
libcrypto_la_SOURCES += mem_dbg.c
libcrypto_la_SOURCES += o_init.c
libcrypto_la_SOURCES += o_str.c
341
342
343
344
345
346
347

348
349
350
351
352
353
354
endif
libcrypto_la_SOURCES += bio/bf_buff.c
libcrypto_la_SOURCES += bio/bf_nbio.c
libcrypto_la_SOURCES += bio/bf_null.c
libcrypto_la_SOURCES += bio/bio_cb.c
libcrypto_la_SOURCES += bio/bio_err.c
libcrypto_la_SOURCES += bio/bio_lib.c

libcrypto_la_SOURCES += bio/bss_acpt.c
libcrypto_la_SOURCES += bio/bss_bio.c
libcrypto_la_SOURCES += bio/bss_conn.c
libcrypto_la_SOURCES += bio/bss_dgram.c
libcrypto_la_SOURCES += bio/bss_fd.c
libcrypto_la_SOURCES += bio/bss_file.c
if !HOST_WIN







>







335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
endif
libcrypto_la_SOURCES += bio/bf_buff.c
libcrypto_la_SOURCES += bio/bf_nbio.c
libcrypto_la_SOURCES += bio/bf_null.c
libcrypto_la_SOURCES += bio/bio_cb.c
libcrypto_la_SOURCES += bio/bio_err.c
libcrypto_la_SOURCES += bio/bio_lib.c
libcrypto_la_SOURCES += bio/bio_meth.c
libcrypto_la_SOURCES += bio/bss_acpt.c
libcrypto_la_SOURCES += bio/bss_bio.c
libcrypto_la_SOURCES += bio/bss_conn.c
libcrypto_la_SOURCES += bio/bss_dgram.c
libcrypto_la_SOURCES += bio/bss_fd.c
libcrypto_la_SOURCES += bio/bss_file.c
if !HOST_WIN
487
488
489
490
491
492
493

494
495
496
497
498
499
500
libcrypto_la_SOURCES += dsa/dsa_ameth.c
libcrypto_la_SOURCES += dsa/dsa_asn1.c
libcrypto_la_SOURCES += dsa/dsa_depr.c
libcrypto_la_SOURCES += dsa/dsa_err.c
libcrypto_la_SOURCES += dsa/dsa_gen.c
libcrypto_la_SOURCES += dsa/dsa_key.c
libcrypto_la_SOURCES += dsa/dsa_lib.c

libcrypto_la_SOURCES += dsa/dsa_ossl.c
libcrypto_la_SOURCES += dsa/dsa_pmeth.c
libcrypto_la_SOURCES += dsa/dsa_prn.c
libcrypto_la_SOURCES += dsa/dsa_sign.c
libcrypto_la_SOURCES += dsa/dsa_vrf.c
noinst_HEADERS += dsa/dsa_locl.h








>







482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
libcrypto_la_SOURCES += dsa/dsa_ameth.c
libcrypto_la_SOURCES += dsa/dsa_asn1.c
libcrypto_la_SOURCES += dsa/dsa_depr.c
libcrypto_la_SOURCES += dsa/dsa_err.c
libcrypto_la_SOURCES += dsa/dsa_gen.c
libcrypto_la_SOURCES += dsa/dsa_key.c
libcrypto_la_SOURCES += dsa/dsa_lib.c
libcrypto_la_SOURCES += dsa/dsa_meth.c
libcrypto_la_SOURCES += dsa/dsa_ossl.c
libcrypto_la_SOURCES += dsa/dsa_pmeth.c
libcrypto_la_SOURCES += dsa/dsa_prn.c
libcrypto_la_SOURCES += dsa/dsa_sign.c
libcrypto_la_SOURCES += dsa/dsa_vrf.c
noinst_HEADERS += dsa/dsa_locl.h

787
788
789
790
791
792
793

794
795
796
797
798
799
800
libcrypto_la_SOURCES += rsa/rsa_chk.c
libcrypto_la_SOURCES += rsa/rsa_crpt.c
libcrypto_la_SOURCES += rsa/rsa_depr.c
libcrypto_la_SOURCES += rsa/rsa_eay.c
libcrypto_la_SOURCES += rsa/rsa_err.c
libcrypto_la_SOURCES += rsa/rsa_gen.c
libcrypto_la_SOURCES += rsa/rsa_lib.c

libcrypto_la_SOURCES += rsa/rsa_none.c
libcrypto_la_SOURCES += rsa/rsa_oaep.c
libcrypto_la_SOURCES += rsa/rsa_pk1.c
libcrypto_la_SOURCES += rsa/rsa_pmeth.c
libcrypto_la_SOURCES += rsa/rsa_prn.c
libcrypto_la_SOURCES += rsa/rsa_pss.c
libcrypto_la_SOURCES += rsa/rsa_saos.c







>







783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
libcrypto_la_SOURCES += rsa/rsa_chk.c
libcrypto_la_SOURCES += rsa/rsa_crpt.c
libcrypto_la_SOURCES += rsa/rsa_depr.c
libcrypto_la_SOURCES += rsa/rsa_eay.c
libcrypto_la_SOURCES += rsa/rsa_err.c
libcrypto_la_SOURCES += rsa/rsa_gen.c
libcrypto_la_SOURCES += rsa/rsa_lib.c
libcrypto_la_SOURCES += rsa/rsa_meth.c
libcrypto_la_SOURCES += rsa/rsa_none.c
libcrypto_la_SOURCES += rsa/rsa_oaep.c
libcrypto_la_SOURCES += rsa/rsa_pk1.c
libcrypto_la_SOURCES += rsa/rsa_pmeth.c
libcrypto_la_SOURCES += rsa/rsa_prn.c
libcrypto_la_SOURCES += rsa/rsa_pss.c
libcrypto_la_SOURCES += rsa/rsa_saos.c
Changes to jni/libressl/crypto/Makefile.in.
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
@HAVE_STRNDUP_FALSE@am__append_11 = compat/strndup.c
# the only user of strnlen is strndup, so only build it if needed
@HAVE_STRNDUP_FALSE@@HAVE_STRNLEN_FALSE@am__append_12 = compat/strnlen.c
@HAVE_STRSEP_FALSE@am__append_13 = compat/strsep.c
@HAVE_ASPRINTF_FALSE@am__append_14 = compat/bsd-asprintf.c
@HAVE_FREEZERO_FALSE@am__append_15 = compat/freezero.c
@HAVE_GETPAGESIZE_FALSE@am__append_16 = compat/getpagesize.c
@HAVE_INET_PTON_FALSE@am__append_17 = compat/inet_pton.c
@HAVE_TIMEGM_FALSE@am__append_18 = compat/timegm.c
@HAVE_REALLOCARRAY_FALSE@am__append_19 = compat/reallocarray.c
@HAVE_RECALLOCARRAY_FALSE@am__append_20 = compat/recallocarray.c
@HAVE_TIMINGSAFE_MEMCMP_FALSE@am__append_21 = compat/timingsafe_memcmp.c
@HAVE_TIMINGSAFE_BCMP_FALSE@am__append_22 = compat/timingsafe_bcmp.c
@HOST_WIN_TRUE@am__append_23 = compat/posix_win.c
@HAVE_ARC4RANDOM_BUF_FALSE@am__append_24 = compat/arc4random.c \
@HAVE_ARC4RANDOM_BUF_FALSE@	compat/arc4random_uniform.c
@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_AIX_TRUE@am__append_25 = compat/getentropy_aix.c
@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_FREEBSD_TRUE@am__append_26 = compat/getentropy_freebsd.c
@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_HPUX_TRUE@am__append_27 = compat/getentropy_hpux.c
@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_LINUX_TRUE@am__append_28 = compat/getentropy_linux.c
@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_NETBSD_TRUE@am__append_29 = compat/getentropy_netbsd.c
@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_DARWIN_TRUE@am__append_30 = compat/getentropy_osx.c
@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_SOLARIS_TRUE@am__append_31 = compat/getentropy_solaris.c
@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_WIN_TRUE@am__append_32 = compat/getentropy_win.c
@HOST_ASM_ELF_X86_64_TRUE@am__append_33 = -DAES_ASM -DBSAES_ASM \
@HOST_ASM_ELF_X86_64_TRUE@	-DVPAES_ASM -DOPENSSL_IA32_SSE2 \
@HOST_ASM_ELF_X86_64_TRUE@	-DOPENSSL_BN_ASM_MONT \
@HOST_ASM_ELF_X86_64_TRUE@	-DOPENSSL_BN_ASM_MONT5 \
@HOST_ASM_ELF_X86_64_TRUE@	-DOPENSSL_BN_ASM_GF2m -DMD5_ASM \
@HOST_ASM_ELF_X86_64_TRUE@	-DGHASH_ASM -DRSA_ASM -DSHA1_ASM \
@HOST_ASM_ELF_X86_64_TRUE@	-DSHA256_ASM -DSHA512_ASM \
@HOST_ASM_ELF_X86_64_TRUE@	-DWHIRLPOOL_ASM -DOPENSSL_CPUID_OBJ
@HOST_ASM_ELF_X86_64_TRUE@am__append_34 = $(ASM_X86_64_ELF)
@HOST_ASM_MACOSX_X86_64_TRUE@am__append_35 = -DAES_ASM -DBSAES_ASM \
@HOST_ASM_MACOSX_X86_64_TRUE@	-DVPAES_ASM -DOPENSSL_IA32_SSE2 \
@HOST_ASM_MACOSX_X86_64_TRUE@	-DOPENSSL_BN_ASM_MONT \
@HOST_ASM_MACOSX_X86_64_TRUE@	-DOPENSSL_BN_ASM_MONT5 \
@HOST_ASM_MACOSX_X86_64_TRUE@	-DOPENSSL_BN_ASM_GF2m -DMD5_ASM \
@HOST_ASM_MACOSX_X86_64_TRUE@	-DGHASH_ASM -DRSA_ASM -DSHA1_ASM \
@HOST_ASM_MACOSX_X86_64_TRUE@	-DSHA256_ASM -DSHA512_ASM \
@HOST_ASM_MACOSX_X86_64_TRUE@	-DWHIRLPOOL_ASM \
@HOST_ASM_MACOSX_X86_64_TRUE@	-DOPENSSL_CPUID_OBJ
@HOST_ASM_MACOSX_X86_64_TRUE@am__append_36 = $(ASM_X86_64_MACOSX)
@HOST_ASM_ELF_X86_64_FALSE@@HOST_ASM_MACOSX_X86_64_FALSE@am__append_37 = aes/aes_cbc.c \
@HOST_ASM_ELF_X86_64_FALSE@@HOST_ASM_MACOSX_X86_64_FALSE@	aes/aes_core.c \
@HOST_ASM_ELF_X86_64_FALSE@@HOST_ASM_MACOSX_X86_64_FALSE@	camellia/camellia.c \
@HOST_ASM_ELF_X86_64_FALSE@@HOST_ASM_MACOSX_X86_64_FALSE@	camellia/cmll_cbc.c \
@HOST_ASM_ELF_X86_64_FALSE@@HOST_ASM_MACOSX_X86_64_FALSE@	rc4/rc4_enc.c \
@HOST_ASM_ELF_X86_64_FALSE@@HOST_ASM_MACOSX_X86_64_FALSE@	rc4/rc4_skey.c \
@HOST_ASM_ELF_X86_64_FALSE@@HOST_ASM_MACOSX_X86_64_FALSE@	whrlpool/wp_block.c
@HOST_WIN_FALSE@am__append_38 = bio/b_posix.c
@HOST_WIN_TRUE@am__append_39 = bio/b_win.c
@HOST_WIN_FALSE@am__append_40 = bio/bss_log.c
@HOST_WIN_FALSE@am__append_41 = ui/ui_openssl.c
@HOST_WIN_TRUE@am__append_42 = ui/ui_openssl_win.c
subdir = crypto
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/check-hardening-options.m4 \
	$(top_srcdir)/m4/check-libc.m4 \
	$(top_srcdir)/m4/check-os-options.m4 \
	$(top_srcdir)/m4/disable-compiler-warnings.m4 \
	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \







<
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|







|
|








|
|






|
|
|
|
|







104
105
106
107
108
109
110

111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
@HAVE_STRNDUP_FALSE@am__append_11 = compat/strndup.c
# the only user of strnlen is strndup, so only build it if needed
@HAVE_STRNDUP_FALSE@@HAVE_STRNLEN_FALSE@am__append_12 = compat/strnlen.c
@HAVE_STRSEP_FALSE@am__append_13 = compat/strsep.c
@HAVE_ASPRINTF_FALSE@am__append_14 = compat/bsd-asprintf.c
@HAVE_FREEZERO_FALSE@am__append_15 = compat/freezero.c
@HAVE_GETPAGESIZE_FALSE@am__append_16 = compat/getpagesize.c

@HAVE_TIMEGM_FALSE@am__append_17 = compat/timegm.c
@HAVE_REALLOCARRAY_FALSE@am__append_18 = compat/reallocarray.c
@HAVE_RECALLOCARRAY_FALSE@am__append_19 = compat/recallocarray.c
@HAVE_TIMINGSAFE_MEMCMP_FALSE@am__append_20 = compat/timingsafe_memcmp.c
@HAVE_TIMINGSAFE_BCMP_FALSE@am__append_21 = compat/timingsafe_bcmp.c
@HOST_WIN_TRUE@am__append_22 = compat/posix_win.c
@HAVE_ARC4RANDOM_BUF_FALSE@am__append_23 = compat/arc4random.c \
@HAVE_ARC4RANDOM_BUF_FALSE@	compat/arc4random_uniform.c
@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_AIX_TRUE@am__append_24 = compat/getentropy_aix.c
@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_FREEBSD_TRUE@am__append_25 = compat/getentropy_freebsd.c
@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_HPUX_TRUE@am__append_26 = compat/getentropy_hpux.c
@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_LINUX_TRUE@am__append_27 = compat/getentropy_linux.c
@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_NETBSD_TRUE@am__append_28 = compat/getentropy_netbsd.c
@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_DARWIN_TRUE@am__append_29 = compat/getentropy_osx.c
@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_SOLARIS_TRUE@am__append_30 = compat/getentropy_solaris.c
@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_WIN_TRUE@am__append_31 = compat/getentropy_win.c
@HOST_ASM_ELF_X86_64_TRUE@am__append_32 = -DAES_ASM -DBSAES_ASM \
@HOST_ASM_ELF_X86_64_TRUE@	-DVPAES_ASM -DOPENSSL_IA32_SSE2 \
@HOST_ASM_ELF_X86_64_TRUE@	-DOPENSSL_BN_ASM_MONT \
@HOST_ASM_ELF_X86_64_TRUE@	-DOPENSSL_BN_ASM_MONT5 \
@HOST_ASM_ELF_X86_64_TRUE@	-DOPENSSL_BN_ASM_GF2m -DMD5_ASM \
@HOST_ASM_ELF_X86_64_TRUE@	-DGHASH_ASM -DRSA_ASM -DSHA1_ASM \
@HOST_ASM_ELF_X86_64_TRUE@	-DSHA256_ASM -DSHA512_ASM \
@HOST_ASM_ELF_X86_64_TRUE@	-DWHIRLPOOL_ASM -DOPENSSL_CPUID_OBJ
@HOST_ASM_ELF_X86_64_TRUE@am__append_33 = $(ASM_X86_64_ELF)
@HOST_ASM_MACOSX_X86_64_TRUE@am__append_34 = -DAES_ASM -DBSAES_ASM \
@HOST_ASM_MACOSX_X86_64_TRUE@	-DVPAES_ASM -DOPENSSL_IA32_SSE2 \
@HOST_ASM_MACOSX_X86_64_TRUE@	-DOPENSSL_BN_ASM_MONT \
@HOST_ASM_MACOSX_X86_64_TRUE@	-DOPENSSL_BN_ASM_MONT5 \
@HOST_ASM_MACOSX_X86_64_TRUE@	-DOPENSSL_BN_ASM_GF2m -DMD5_ASM \
@HOST_ASM_MACOSX_X86_64_TRUE@	-DGHASH_ASM -DRSA_ASM -DSHA1_ASM \
@HOST_ASM_MACOSX_X86_64_TRUE@	-DSHA256_ASM -DSHA512_ASM \
@HOST_ASM_MACOSX_X86_64_TRUE@	-DWHIRLPOOL_ASM \
@HOST_ASM_MACOSX_X86_64_TRUE@	-DOPENSSL_CPUID_OBJ
@HOST_ASM_MACOSX_X86_64_TRUE@am__append_35 = $(ASM_X86_64_MACOSX)
@HOST_ASM_ELF_X86_64_FALSE@@HOST_ASM_MACOSX_X86_64_FALSE@am__append_36 = aes/aes_cbc.c \
@HOST_ASM_ELF_X86_64_FALSE@@HOST_ASM_MACOSX_X86_64_FALSE@	aes/aes_core.c \
@HOST_ASM_ELF_X86_64_FALSE@@HOST_ASM_MACOSX_X86_64_FALSE@	camellia/camellia.c \
@HOST_ASM_ELF_X86_64_FALSE@@HOST_ASM_MACOSX_X86_64_FALSE@	camellia/cmll_cbc.c \
@HOST_ASM_ELF_X86_64_FALSE@@HOST_ASM_MACOSX_X86_64_FALSE@	rc4/rc4_enc.c \
@HOST_ASM_ELF_X86_64_FALSE@@HOST_ASM_MACOSX_X86_64_FALSE@	rc4/rc4_skey.c \
@HOST_ASM_ELF_X86_64_FALSE@@HOST_ASM_MACOSX_X86_64_FALSE@	whrlpool/wp_block.c
@HOST_WIN_FALSE@am__append_37 = bio/b_posix.c
@HOST_WIN_TRUE@am__append_38 = bio/b_win.c
@HOST_WIN_FALSE@am__append_39 = bio/bss_log.c
@HOST_WIN_FALSE@am__append_40 = ui/ui_openssl.c
@HOST_WIN_TRUE@am__append_41 = ui/ui_openssl_win.c
subdir = crypto
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/check-hardening-options.m4 \
	$(top_srcdir)/m4/check-libc.m4 \
	$(top_srcdir)/m4/check-os-options.m4 \
	$(top_srcdir)/m4/disable-compiler-warnings.m4 \
	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
am__installdirs = "$(DESTDIR)$(libdir)"
LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES)
am__DEPENDENCIES_1 =
libcompat_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
am__libcompat_la_SOURCES_DIST = compat/strlcat.c compat/strlcpy.c \
	compat/strndup.c compat/strnlen.c compat/strsep.c \
	compat/bsd-asprintf.c compat/freezero.c compat/getpagesize.c \
	compat/inet_pton.c compat/timegm.c compat/reallocarray.c \
	compat/recallocarray.c compat/timingsafe_memcmp.c \
	compat/timingsafe_bcmp.c compat/posix_win.c \
	compat/arc4random.c compat/arc4random_uniform.c \
	compat/getentropy_aix.c compat/getentropy_freebsd.c \
	compat/getentropy_hpux.c compat/getentropy_linux.c \
	compat/getentropy_netbsd.c compat/getentropy_osx.c \
	compat/getentropy_solaris.c compat/getentropy_win.c
am__dirstamp = $(am__leading_dot)dirstamp
@HAVE_STRLCAT_FALSE@am__objects_1 = compat/strlcat.lo
@HAVE_STRLCPY_FALSE@am__objects_2 = compat/strlcpy.lo
@HAVE_STRNDUP_FALSE@am__objects_3 = compat/strndup.lo
@HAVE_STRNDUP_FALSE@@HAVE_STRNLEN_FALSE@am__objects_4 =  \
@HAVE_STRNDUP_FALSE@@HAVE_STRNLEN_FALSE@	compat/strnlen.lo
@HAVE_STRSEP_FALSE@am__objects_5 = compat/strsep.lo
@HAVE_ASPRINTF_FALSE@am__objects_6 = compat/bsd-asprintf.lo
@HAVE_FREEZERO_FALSE@am__objects_7 = compat/freezero.lo
@HAVE_GETPAGESIZE_FALSE@am__objects_8 = compat/getpagesize.lo
@HAVE_INET_PTON_FALSE@am__objects_9 = compat/inet_pton.lo
@HAVE_TIMEGM_FALSE@am__objects_10 = compat/timegm.lo
@HAVE_REALLOCARRAY_FALSE@am__objects_11 = compat/reallocarray.lo
@HAVE_RECALLOCARRAY_FALSE@am__objects_12 = compat/recallocarray.lo
@HAVE_TIMINGSAFE_MEMCMP_FALSE@am__objects_13 =  \
@HAVE_TIMINGSAFE_MEMCMP_FALSE@	compat/timingsafe_memcmp.lo
@HAVE_TIMINGSAFE_BCMP_FALSE@am__objects_14 =  \
@HAVE_TIMINGSAFE_BCMP_FALSE@	compat/timingsafe_bcmp.lo
@HOST_WIN_TRUE@am__objects_15 = compat/posix_win.lo
@HAVE_ARC4RANDOM_BUF_FALSE@am__objects_16 = compat/arc4random.lo \
@HAVE_ARC4RANDOM_BUF_FALSE@	compat/arc4random_uniform.lo
@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_AIX_TRUE@am__objects_17 = compat/getentropy_aix.lo
@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_FREEBSD_TRUE@am__objects_18 = compat/getentropy_freebsd.lo
@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_HPUX_TRUE@am__objects_19 = compat/getentropy_hpux.lo
@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_LINUX_TRUE@am__objects_20 = compat/getentropy_linux.lo
@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_NETBSD_TRUE@am__objects_21 = compat/getentropy_netbsd.lo
@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_DARWIN_TRUE@am__objects_22 = compat/getentropy_osx.lo
@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_SOLARIS_TRUE@am__objects_23 = compat/getentropy_solaris.lo
@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_WIN_TRUE@am__objects_24 = compat/getentropy_win.lo
am_libcompat_la_OBJECTS = $(am__objects_1) $(am__objects_2) \
	$(am__objects_3) $(am__objects_4) $(am__objects_5) \
	$(am__objects_6) $(am__objects_7) $(am__objects_8) \
	$(am__objects_9) $(am__objects_10) $(am__objects_11) \
	$(am__objects_12) $(am__objects_13) $(am__objects_14) \
	$(am__objects_15) $(am__objects_16) $(am__objects_17) \
	$(am__objects_18) $(am__objects_19) $(am__objects_20) \
	$(am__objects_21) $(am__objects_22) $(am__objects_23) \
	$(am__objects_24)
libcompat_la_OBJECTS = $(am_libcompat_la_OBJECTS)
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
am__v_lt_1 = 
libcompatnoopt_la_LIBADD =
am__libcompatnoopt_la_SOURCES_DIST = compat/explicit_bzero_win.c \
	compat/explicit_bzero.c
@HAVE_EXPLICIT_BZERO_FALSE@@HOST_WIN_TRUE@am__objects_25 = compat/libcompatnoopt_la-explicit_bzero_win.lo
@HAVE_EXPLICIT_BZERO_FALSE@@HOST_WIN_FALSE@am__objects_26 = compat/libcompatnoopt_la-explicit_bzero.lo
@HAVE_EXPLICIT_BZERO_FALSE@am_libcompatnoopt_la_OBJECTS =  \
@HAVE_EXPLICIT_BZERO_FALSE@	$(am__objects_25) $(am__objects_26)
libcompatnoopt_la_OBJECTS = $(am_libcompatnoopt_la_OBJECTS)
libcompatnoopt_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
	$(libcompatnoopt_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
	-o $@
@HAVE_EXPLICIT_BZERO_FALSE@am_libcompatnoopt_la_rpath =
libcrypto_la_DEPENDENCIES = libcompat.la $(am__append_1)







|
|
|
|
|
|
|
|










<
|
|
|
|

|

|
|

|
|
|
|
|
|
|
|







|
<








|
|

|







201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225

226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251

252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
am__installdirs = "$(DESTDIR)$(libdir)"
LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES)
am__DEPENDENCIES_1 =
libcompat_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
am__libcompat_la_SOURCES_DIST = compat/strlcat.c compat/strlcpy.c \
	compat/strndup.c compat/strnlen.c compat/strsep.c \
	compat/bsd-asprintf.c compat/freezero.c compat/getpagesize.c \
	compat/timegm.c compat/reallocarray.c compat/recallocarray.c \
	compat/timingsafe_memcmp.c compat/timingsafe_bcmp.c \
	compat/posix_win.c compat/arc4random.c \
	compat/arc4random_uniform.c compat/getentropy_aix.c \
	compat/getentropy_freebsd.c compat/getentropy_hpux.c \
	compat/getentropy_linux.c compat/getentropy_netbsd.c \
	compat/getentropy_osx.c compat/getentropy_solaris.c \
	compat/getentropy_win.c
am__dirstamp = $(am__leading_dot)dirstamp
@HAVE_STRLCAT_FALSE@am__objects_1 = compat/strlcat.lo
@HAVE_STRLCPY_FALSE@am__objects_2 = compat/strlcpy.lo
@HAVE_STRNDUP_FALSE@am__objects_3 = compat/strndup.lo
@HAVE_STRNDUP_FALSE@@HAVE_STRNLEN_FALSE@am__objects_4 =  \
@HAVE_STRNDUP_FALSE@@HAVE_STRNLEN_FALSE@	compat/strnlen.lo
@HAVE_STRSEP_FALSE@am__objects_5 = compat/strsep.lo
@HAVE_ASPRINTF_FALSE@am__objects_6 = compat/bsd-asprintf.lo
@HAVE_FREEZERO_FALSE@am__objects_7 = compat/freezero.lo
@HAVE_GETPAGESIZE_FALSE@am__objects_8 = compat/getpagesize.lo

@HAVE_TIMEGM_FALSE@am__objects_9 = compat/timegm.lo
@HAVE_REALLOCARRAY_FALSE@am__objects_10 = compat/reallocarray.lo
@HAVE_RECALLOCARRAY_FALSE@am__objects_11 = compat/recallocarray.lo
@HAVE_TIMINGSAFE_MEMCMP_FALSE@am__objects_12 =  \
@HAVE_TIMINGSAFE_MEMCMP_FALSE@	compat/timingsafe_memcmp.lo
@HAVE_TIMINGSAFE_BCMP_FALSE@am__objects_13 =  \
@HAVE_TIMINGSAFE_BCMP_FALSE@	compat/timingsafe_bcmp.lo
@HOST_WIN_TRUE@am__objects_14 = compat/posix_win.lo
@HAVE_ARC4RANDOM_BUF_FALSE@am__objects_15 = compat/arc4random.lo \
@HAVE_ARC4RANDOM_BUF_FALSE@	compat/arc4random_uniform.lo
@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_AIX_TRUE@am__objects_16 = compat/getentropy_aix.lo
@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_FREEBSD_TRUE@am__objects_17 = compat/getentropy_freebsd.lo
@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_HPUX_TRUE@am__objects_18 = compat/getentropy_hpux.lo
@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_LINUX_TRUE@am__objects_19 = compat/getentropy_linux.lo
@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_NETBSD_TRUE@am__objects_20 = compat/getentropy_netbsd.lo
@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_DARWIN_TRUE@am__objects_21 = compat/getentropy_osx.lo
@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_SOLARIS_TRUE@am__objects_22 = compat/getentropy_solaris.lo
@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@@HOST_WIN_TRUE@am__objects_23 = compat/getentropy_win.lo
am_libcompat_la_OBJECTS = $(am__objects_1) $(am__objects_2) \
	$(am__objects_3) $(am__objects_4) $(am__objects_5) \
	$(am__objects_6) $(am__objects_7) $(am__objects_8) \
	$(am__objects_9) $(am__objects_10) $(am__objects_11) \
	$(am__objects_12) $(am__objects_13) $(am__objects_14) \
	$(am__objects_15) $(am__objects_16) $(am__objects_17) \
	$(am__objects_18) $(am__objects_19) $(am__objects_20) \
	$(am__objects_21) $(am__objects_22) $(am__objects_23)

libcompat_la_OBJECTS = $(am_libcompat_la_OBJECTS)
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
am__v_lt_1 = 
libcompatnoopt_la_LIBADD =
am__libcompatnoopt_la_SOURCES_DIST = compat/explicit_bzero_win.c \
	compat/explicit_bzero.c
@HAVE_EXPLICIT_BZERO_FALSE@@HOST_WIN_TRUE@am__objects_24 = compat/libcompatnoopt_la-explicit_bzero_win.lo
@HAVE_EXPLICIT_BZERO_FALSE@@HOST_WIN_FALSE@am__objects_25 = compat/libcompatnoopt_la-explicit_bzero.lo
@HAVE_EXPLICIT_BZERO_FALSE@am_libcompatnoopt_la_OBJECTS =  \
@HAVE_EXPLICIT_BZERO_FALSE@	$(am__objects_24) $(am__objects_25)
libcompatnoopt_la_OBJECTS = $(am_libcompatnoopt_la_OBJECTS)
libcompatnoopt_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
	$(libcompatnoopt_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
	-o $@
@HAVE_EXPLICIT_BZERO_FALSE@am_libcompatnoopt_la_rpath =
libcrypto_la_DEPENDENCIES = libcompat.la $(am__append_1)
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314

315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339

340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
	md5/md5-macosx-x86_64.S modes/ghash-macosx-x86_64.S \
	rc4/rc4-macosx-x86_64.S rc4/rc4-md5-macosx-x86_64.S \
	sha/sha1-macosx-x86_64.S sha/sha256-macosx-x86_64.S \
	sha/sha512-macosx-x86_64.S whrlpool/wp-macosx-x86_64.S \
	cpuid-macosx-x86_64.S aes/aes_cbc.c aes/aes_core.c \
	camellia/camellia.c camellia/cmll_cbc.c rc4/rc4_enc.c \
	rc4/rc4_skey.c whrlpool/wp_block.c cpt_err.c cryptlib.c \
	cversion.c ex_data.c malloc-wrapper.c mem_clr.c mem_dbg.c \
	o_init.c o_str.c o_time.c aes/aes_cfb.c aes/aes_ctr.c \
	aes/aes_ecb.c aes/aes_ige.c aes/aes_misc.c aes/aes_ofb.c \
	aes/aes_wrap.c asn1/a_bitstr.c asn1/a_bool.c asn1/a_bytes.c \
	asn1/a_d2i_fp.c asn1/a_digest.c asn1/a_dup.c asn1/a_enum.c \
	asn1/a_i2d_fp.c asn1/a_int.c asn1/a_mbstr.c asn1/a_object.c \
	asn1/a_octet.c asn1/a_print.c asn1/a_set.c asn1/a_sign.c \
	asn1/a_strex.c asn1/a_strnid.c asn1/a_time.c asn1/a_time_tm.c \
	asn1/a_type.c asn1/a_utf8.c asn1/a_verify.c asn1/ameth_lib.c \
	asn1/asn1_err.c asn1/asn1_gen.c asn1/asn1_lib.c \
	asn1/asn1_par.c asn1/asn_mime.c asn1/asn_moid.c \
	asn1/asn_pack.c asn1/bio_asn1.c asn1/bio_ndef.c asn1/d2i_pr.c \
	asn1/d2i_pu.c asn1/evp_asn1.c asn1/f_enum.c asn1/f_int.c \
	asn1/f_string.c asn1/i2d_pr.c asn1/i2d_pu.c asn1/n_pkey.c \
	asn1/nsseq.c asn1/p5_pbe.c asn1/p5_pbev2.c asn1/p8_pkey.c \
	asn1/t_bitst.c asn1/t_crl.c asn1/t_pkey.c asn1/t_req.c \
	asn1/t_spki.c asn1/t_x509.c asn1/t_x509a.c asn1/tasn_dec.c \
	asn1/tasn_enc.c asn1/tasn_fre.c asn1/tasn_new.c \
	asn1/tasn_prn.c asn1/tasn_typ.c asn1/tasn_utl.c asn1/x_algor.c \

	asn1/x_attrib.c asn1/x_bignum.c asn1/x_crl.c asn1/x_exten.c \
	asn1/x_info.c asn1/x_long.c asn1/x_name.c asn1/x_nx509.c \
	asn1/x_pkey.c asn1/x_pubkey.c asn1/x_req.c asn1/x_sig.c \
	asn1/x_spki.c asn1/x_val.c asn1/x_x509.c asn1/x_x509a.c \
	bf/bf_cfb64.c bf/bf_ecb.c bf/bf_enc.c bf/bf_ofb64.c \
	bf/bf_skey.c bio/b_dump.c bio/b_posix.c bio/b_print.c \
	bio/b_sock.c bio/b_win.c bio/bf_buff.c bio/bf_nbio.c \
	bio/bf_null.c bio/bio_cb.c bio/bio_err.c bio/bio_lib.c \
	bio/bss_acpt.c bio/bss_bio.c bio/bss_conn.c bio/bss_dgram.c \
	bio/bss_fd.c bio/bss_file.c bio/bss_log.c bio/bss_mem.c \
	bio/bss_null.c bio/bss_sock.c bn/bn_add.c bn/bn_asm.c \
	bn/bn_blind.c bn/bn_const.c bn/bn_ctx.c bn/bn_depr.c \
	bn/bn_div.c bn/bn_err.c bn/bn_exp.c bn/bn_exp2.c bn/bn_gcd.c \
	bn/bn_gf2m.c bn/bn_kron.c bn/bn_lib.c bn/bn_mod.c bn/bn_mont.c \
	bn/bn_mpi.c bn/bn_mul.c bn/bn_nist.c bn/bn_prime.c \
	bn/bn_print.c bn/bn_rand.c bn/bn_recp.c bn/bn_shift.c \
	bn/bn_sqr.c bn/bn_sqrt.c bn/bn_word.c bn/bn_x931p.c \
	buffer/buf_err.c buffer/buf_str.c buffer/buffer.c \
	camellia/cmll_cfb.c camellia/cmll_ctr.c camellia/cmll_ecb.c \
	camellia/cmll_misc.c camellia/cmll_ofb.c cast/c_cfb64.c \
	cast/c_ecb.c cast/c_enc.c cast/c_ofb64.c cast/c_skey.c \
	chacha/chacha.c cmac/cm_ameth.c cmac/cm_pmeth.c cmac/cmac.c \
	comp/c_rle.c comp/c_zlib.c comp/comp_err.c comp/comp_lib.c \
	conf/conf_api.c conf/conf_def.c conf/conf_err.c \
	conf/conf_lib.c conf/conf_mall.c conf/conf_mod.c \

	conf/conf_sap.c curve25519/curve25519-generic.c \
	curve25519/curve25519.c des/cbc_cksm.c des/cbc_enc.c \
	des/cfb64ede.c des/cfb64enc.c des/cfb_enc.c des/des_enc.c \
	des/ecb3_enc.c des/ecb_enc.c des/ede_cbcm_enc.c des/enc_read.c \
	des/enc_writ.c des/fcrypt.c des/fcrypt_b.c des/ofb64ede.c \
	des/ofb64enc.c des/ofb_enc.c des/pcbc_enc.c des/qud_cksm.c \
	des/rand_key.c des/set_key.c des/str2key.c des/xcbc_enc.c \
	dh/dh_ameth.c dh/dh_asn1.c dh/dh_check.c dh/dh_depr.c \
	dh/dh_err.c dh/dh_gen.c dh/dh_key.c dh/dh_lib.c dh/dh_pmeth.c \
	dh/dh_prn.c dsa/dsa_ameth.c dsa/dsa_asn1.c dsa/dsa_depr.c \
	dsa/dsa_err.c dsa/dsa_gen.c dsa/dsa_key.c dsa/dsa_lib.c \
	dsa/dsa_ossl.c dsa/dsa_pmeth.c dsa/dsa_prn.c dsa/dsa_sign.c \
	dsa/dsa_vrf.c dso/dso_dlfcn.c dso/dso_err.c dso/dso_lib.c \
	dso/dso_null.c dso/dso_openssl.c ec/ec2_mult.c ec/ec2_oct.c \
	ec/ec2_smpl.c ec/ec_ameth.c ec/ec_asn1.c ec/ec_check.c \
	ec/ec_curve.c ec/ec_cvt.c ec/ec_err.c ec/ec_key.c ec/ec_lib.c \
	ec/ec_mult.c ec/ec_oct.c ec/ec_pmeth.c ec/ec_print.c \
	ec/eck_prn.c ec/ecp_mont.c ec/ecp_nist.c ec/ecp_oct.c \
	ec/ecp_smpl.c ecdh/ech_err.c ecdh/ech_key.c ecdh/ech_lib.c \
	ecdsa/ecs_asn1.c ecdsa/ecs_err.c ecdsa/ecs_lib.c \
	ecdsa/ecs_ossl.c ecdsa/ecs_sign.c ecdsa/ecs_vrf.c \
	engine/eng_all.c engine/eng_cnf.c engine/eng_ctrl.c \
	engine/eng_dyn.c engine/eng_err.c engine/eng_fat.c \
	engine/eng_init.c engine/eng_lib.c engine/eng_list.c \
	engine/eng_openssl.c engine/eng_pkey.c engine/eng_table.c \
	engine/tb_asnmth.c engine/tb_cipher.c engine/tb_dh.c \
	engine/tb_digest.c engine/tb_dsa.c engine/tb_ecdh.c \
	engine/tb_ecdsa.c engine/tb_pkmeth.c engine/tb_rand.c \
	engine/tb_rsa.c engine/tb_store.c err/err.c err/err_all.c \
	err/err_prn.c evp/bio_b64.c evp/bio_enc.c evp/bio_md.c \
	evp/c_all.c evp/digest.c evp/e_aes.c evp/e_aes_cbc_hmac_sha1.c \
	evp/e_bf.c evp/e_camellia.c evp/e_cast.c evp/e_chacha.c \
	evp/e_chacha20poly1305.c evp/e_des.c evp/e_des3.c \
	evp/e_gost2814789.c evp/e_idea.c evp/e_null.c evp/e_old.c \
	evp/e_rc2.c evp/e_rc4.c evp/e_rc4_hmac_md5.c evp/e_xcbc_d.c \
	evp/encode.c evp/evp_aead.c evp/evp_enc.c evp/evp_err.c \
	evp/evp_key.c evp/evp_lib.c evp/evp_pbe.c evp/evp_pkey.c \
	evp/m_dss.c evp/m_dss1.c evp/m_ecdsa.c evp/m_gost2814789.c \
	evp/m_gostr341194.c evp/m_md4.c evp/m_md5.c evp/m_md5_sha1.c \







|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|







286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328

329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
	md5/md5-macosx-x86_64.S modes/ghash-macosx-x86_64.S \
	rc4/rc4-macosx-x86_64.S rc4/rc4-md5-macosx-x86_64.S \
	sha/sha1-macosx-x86_64.S sha/sha256-macosx-x86_64.S \
	sha/sha512-macosx-x86_64.S whrlpool/wp-macosx-x86_64.S \
	cpuid-macosx-x86_64.S aes/aes_cbc.c aes/aes_core.c \
	camellia/camellia.c camellia/cmll_cbc.c rc4/rc4_enc.c \
	rc4/rc4_skey.c whrlpool/wp_block.c cpt_err.c cryptlib.c \
	crypto_init.c cversion.c ex_data.c malloc-wrapper.c mem_clr.c \
	mem_dbg.c o_init.c o_str.c o_time.c aes/aes_cfb.c \
	aes/aes_ctr.c aes/aes_ecb.c aes/aes_ige.c aes/aes_misc.c \
	aes/aes_ofb.c aes/aes_wrap.c asn1/a_bitstr.c asn1/a_bool.c \
	asn1/a_bytes.c asn1/a_d2i_fp.c asn1/a_digest.c asn1/a_dup.c \
	asn1/a_enum.c asn1/a_i2d_fp.c asn1/a_int.c asn1/a_mbstr.c \
	asn1/a_object.c asn1/a_octet.c asn1/a_print.c asn1/a_set.c \
	asn1/a_sign.c asn1/a_strex.c asn1/a_strnid.c asn1/a_time.c \
	asn1/a_time_tm.c asn1/a_type.c asn1/a_utf8.c asn1/a_verify.c \
	asn1/ameth_lib.c asn1/asn1_err.c asn1/asn1_gen.c \
	asn1/asn1_lib.c asn1/asn1_par.c asn1/asn_mime.c \
	asn1/asn_moid.c asn1/asn_pack.c asn1/bio_asn1.c \
	asn1/bio_ndef.c asn1/d2i_pr.c asn1/d2i_pu.c asn1/evp_asn1.c \
	asn1/f_enum.c asn1/f_int.c asn1/f_string.c asn1/i2d_pr.c \
	asn1/i2d_pu.c asn1/n_pkey.c asn1/nsseq.c asn1/p5_pbe.c \
	asn1/p5_pbev2.c asn1/p8_pkey.c asn1/t_bitst.c asn1/t_crl.c \
	asn1/t_pkey.c asn1/t_req.c asn1/t_spki.c asn1/t_x509.c \
	asn1/t_x509a.c asn1/tasn_dec.c asn1/tasn_enc.c asn1/tasn_fre.c \
	asn1/tasn_new.c asn1/tasn_prn.c asn1/tasn_typ.c \
	asn1/tasn_utl.c asn1/x_algor.c asn1/x_attrib.c asn1/x_bignum.c \
	asn1/x_crl.c asn1/x_exten.c asn1/x_info.c asn1/x_long.c \
	asn1/x_name.c asn1/x_nx509.c asn1/x_pkey.c asn1/x_pubkey.c \
	asn1/x_req.c asn1/x_sig.c asn1/x_spki.c asn1/x_val.c \
	asn1/x_x509.c asn1/x_x509a.c bf/bf_cfb64.c bf/bf_ecb.c \
	bf/bf_enc.c bf/bf_ofb64.c bf/bf_skey.c bio/b_dump.c \
	bio/b_posix.c bio/b_print.c bio/b_sock.c bio/b_win.c \
	bio/bf_buff.c bio/bf_nbio.c bio/bf_null.c bio/bio_cb.c \
	bio/bio_err.c bio/bio_lib.c bio/bio_meth.c bio/bss_acpt.c \
	bio/bss_bio.c bio/bss_conn.c bio/bss_dgram.c bio/bss_fd.c \
	bio/bss_file.c bio/bss_log.c bio/bss_mem.c bio/bss_null.c \
	bio/bss_sock.c bn/bn_add.c bn/bn_asm.c bn/bn_blind.c \
	bn/bn_const.c bn/bn_ctx.c bn/bn_depr.c bn/bn_div.c bn/bn_err.c \
	bn/bn_exp.c bn/bn_exp2.c bn/bn_gcd.c bn/bn_gf2m.c bn/bn_kron.c \
	bn/bn_lib.c bn/bn_mod.c bn/bn_mont.c bn/bn_mpi.c bn/bn_mul.c \
	bn/bn_nist.c bn/bn_prime.c bn/bn_print.c bn/bn_rand.c \
	bn/bn_recp.c bn/bn_shift.c bn/bn_sqr.c bn/bn_sqrt.c \

	bn/bn_word.c bn/bn_x931p.c buffer/buf_err.c buffer/buf_str.c \
	buffer/buffer.c camellia/cmll_cfb.c camellia/cmll_ctr.c \
	camellia/cmll_ecb.c camellia/cmll_misc.c camellia/cmll_ofb.c \
	cast/c_cfb64.c cast/c_ecb.c cast/c_enc.c cast/c_ofb64.c \
	cast/c_skey.c chacha/chacha.c cmac/cm_ameth.c cmac/cm_pmeth.c \
	cmac/cmac.c comp/c_rle.c comp/c_zlib.c comp/comp_err.c \
	comp/comp_lib.c conf/conf_api.c conf/conf_def.c \
	conf/conf_err.c conf/conf_lib.c conf/conf_mall.c \
	conf/conf_mod.c conf/conf_sap.c \
	curve25519/curve25519-generic.c curve25519/curve25519.c \
	des/cbc_cksm.c des/cbc_enc.c des/cfb64ede.c des/cfb64enc.c \
	des/cfb_enc.c des/des_enc.c des/ecb3_enc.c des/ecb_enc.c \
	des/ede_cbcm_enc.c des/enc_read.c des/enc_writ.c des/fcrypt.c \
	des/fcrypt_b.c des/ofb64ede.c des/ofb64enc.c des/ofb_enc.c \
	des/pcbc_enc.c des/qud_cksm.c des/rand_key.c des/set_key.c \
	des/str2key.c des/xcbc_enc.c dh/dh_ameth.c dh/dh_asn1.c \
	dh/dh_check.c dh/dh_depr.c dh/dh_err.c dh/dh_gen.c dh/dh_key.c \
	dh/dh_lib.c dh/dh_pmeth.c dh/dh_prn.c dsa/dsa_ameth.c \
	dsa/dsa_asn1.c dsa/dsa_depr.c dsa/dsa_err.c dsa/dsa_gen.c \
	dsa/dsa_key.c dsa/dsa_lib.c dsa/dsa_meth.c dsa/dsa_ossl.c \
	dsa/dsa_pmeth.c dsa/dsa_prn.c dsa/dsa_sign.c dsa/dsa_vrf.c \
	dso/dso_dlfcn.c dso/dso_err.c dso/dso_lib.c dso/dso_null.c \
	dso/dso_openssl.c ec/ec2_mult.c ec/ec2_oct.c ec/ec2_smpl.c \
	ec/ec_ameth.c ec/ec_asn1.c ec/ec_check.c ec/ec_curve.c \
	ec/ec_cvt.c ec/ec_err.c ec/ec_key.c ec/ec_lib.c ec/ec_mult.c \
	ec/ec_oct.c ec/ec_pmeth.c ec/ec_print.c ec/eck_prn.c \
	ec/ecp_mont.c ec/ecp_nist.c ec/ecp_oct.c ec/ecp_smpl.c \
	ecdh/ech_err.c ecdh/ech_key.c ecdh/ech_lib.c ecdsa/ecs_asn1.c \
	ecdsa/ecs_err.c ecdsa/ecs_lib.c ecdsa/ecs_ossl.c \
	ecdsa/ecs_sign.c ecdsa/ecs_vrf.c engine/eng_all.c \
	engine/eng_cnf.c engine/eng_ctrl.c engine/eng_dyn.c \
	engine/eng_err.c engine/eng_fat.c engine/eng_init.c \
	engine/eng_lib.c engine/eng_list.c engine/eng_openssl.c \
	engine/eng_pkey.c engine/eng_table.c engine/tb_asnmth.c \
	engine/tb_cipher.c engine/tb_dh.c engine/tb_digest.c \
	engine/tb_dsa.c engine/tb_ecdh.c engine/tb_ecdsa.c \
	engine/tb_pkmeth.c engine/tb_rand.c engine/tb_rsa.c \
	engine/tb_store.c err/err.c err/err_all.c err/err_prn.c \
	evp/bio_b64.c evp/bio_enc.c evp/bio_md.c evp/c_all.c \
	evp/digest.c evp/e_aes.c evp/e_aes_cbc_hmac_sha1.c evp/e_bf.c \
	evp/e_camellia.c evp/e_cast.c evp/e_chacha.c \
	evp/e_chacha20poly1305.c evp/e_des.c evp/e_des3.c \
	evp/e_gost2814789.c evp/e_idea.c evp/e_null.c evp/e_old.c \
	evp/e_rc2.c evp/e_rc4.c evp/e_rc4_hmac_md5.c evp/e_xcbc_d.c \
	evp/encode.c evp/evp_aead.c evp/evp_enc.c evp/evp_err.c \
	evp/evp_key.c evp/evp_lib.c evp/evp_pbe.c evp/evp_pkey.c \
	evp/m_dss.c evp/m_dss1.c evp/m_ecdsa.c evp/m_gost2814789.c \
	evp/m_gostr341194.c evp/m_md4.c evp/m_md5.c evp/m_md5_sha1.c \
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429

430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489

490
491
492
493
494
495
496
497

498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520

521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545

546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
	pkcs7/pk7_attr.c pkcs7/pk7_doit.c pkcs7/pk7_lib.c \
	pkcs7/pk7_mime.c pkcs7/pk7_smime.c pkcs7/pkcs7err.c \
	poly1305/poly1305.c rand/rand_err.c rand/rand_lib.c \
	rand/randfile.c rc2/rc2_cbc.c rc2/rc2_ecb.c rc2/rc2_skey.c \
	rc2/rc2cfb64.c rc2/rc2ofb64.c ripemd/rmd_dgst.c \
	ripemd/rmd_one.c rsa/rsa_ameth.c rsa/rsa_asn1.c rsa/rsa_chk.c \
	rsa/rsa_crpt.c rsa/rsa_depr.c rsa/rsa_eay.c rsa/rsa_err.c \
	rsa/rsa_gen.c rsa/rsa_lib.c rsa/rsa_none.c rsa/rsa_oaep.c \
	rsa/rsa_pk1.c rsa/rsa_pmeth.c rsa/rsa_prn.c rsa/rsa_pss.c \
	rsa/rsa_saos.c rsa/rsa_sign.c rsa/rsa_x931.c sha/sha1_one.c \
	sha/sha1dgst.c sha/sha256.c sha/sha512.c stack/stack.c \
	ts/ts_asn1.c ts/ts_conf.c ts/ts_err.c ts/ts_lib.c \
	ts/ts_req_print.c ts/ts_req_utils.c ts/ts_rsp_print.c \
	ts/ts_rsp_sign.c ts/ts_rsp_utils.c ts/ts_rsp_verify.c \
	ts/ts_verify_ctx.c txt_db/txt_db.c ui/ui_err.c ui/ui_lib.c \
	ui/ui_openssl.c ui/ui_openssl_win.c ui/ui_util.c \
	whrlpool/wp_dgst.c x509/by_dir.c x509/by_file.c x509/by_mem.c \
	x509/x509_att.c x509/x509_cmp.c x509/x509_d2.c x509/x509_def.c \
	x509/x509_err.c x509/x509_ext.c x509/x509_lu.c x509/x509_obj.c \
	x509/x509_r2x.c x509/x509_req.c x509/x509_set.c \
	x509/x509_trs.c x509/x509_txt.c x509/x509_v3.c x509/x509_vfy.c \
	x509/x509_vpm.c x509/x509cset.c x509/x509name.c \

	x509/x509rset.c x509/x509spki.c x509/x509type.c x509/x_all.c \
	x509v3/pcy_cache.c x509v3/pcy_data.c x509v3/pcy_lib.c \
	x509v3/pcy_map.c x509v3/pcy_node.c x509v3/pcy_tree.c \
	x509v3/v3_akey.c x509v3/v3_akeya.c x509v3/v3_alt.c \
	x509v3/v3_bcons.c x509v3/v3_bitst.c x509v3/v3_conf.c \
	x509v3/v3_cpols.c x509v3/v3_crld.c x509v3/v3_enum.c \
	x509v3/v3_extku.c x509v3/v3_genn.c x509v3/v3_ia5.c \
	x509v3/v3_info.c x509v3/v3_int.c x509v3/v3_lib.c \
	x509v3/v3_ncons.c x509v3/v3_ocsp.c x509v3/v3_pci.c \
	x509v3/v3_pcia.c x509v3/v3_pcons.c x509v3/v3_pku.c \
	x509v3/v3_pmaps.c x509v3/v3_prn.c x509v3/v3_purp.c \
	x509v3/v3_skey.c x509v3/v3_sxnet.c x509v3/v3_utl.c \
	x509v3/v3err.c
am__objects_27 = aes/libcrypto_la-aes-elf-x86_64.lo \
	aes/libcrypto_la-bsaes-elf-x86_64.lo \
	aes/libcrypto_la-vpaes-elf-x86_64.lo \
	aes/libcrypto_la-aesni-elf-x86_64.lo \
	aes/libcrypto_la-aesni-sha1-elf-x86_64.lo \
	bn/libcrypto_la-modexp512-elf-x86_64.lo \
	bn/libcrypto_la-mont-elf-x86_64.lo \
	bn/libcrypto_la-mont5-elf-x86_64.lo \
	bn/libcrypto_la-gf2m-elf-x86_64.lo \
	camellia/libcrypto_la-cmll-elf-x86_64.lo \
	md5/libcrypto_la-md5-elf-x86_64.lo \
	modes/libcrypto_la-ghash-elf-x86_64.lo \
	rc4/libcrypto_la-rc4-elf-x86_64.lo \
	rc4/libcrypto_la-rc4-md5-elf-x86_64.lo \
	sha/libcrypto_la-sha1-elf-x86_64.lo \
	sha/libcrypto_la-sha256-elf-x86_64.lo \
	sha/libcrypto_la-sha512-elf-x86_64.lo \
	whrlpool/libcrypto_la-wp-elf-x86_64.lo \
	libcrypto_la-cpuid-elf-x86_64.lo
@HOST_ASM_ELF_X86_64_TRUE@am__objects_28 = $(am__objects_27)
am__objects_29 = aes/libcrypto_la-aes-macosx-x86_64.lo \
	aes/libcrypto_la-bsaes-macosx-x86_64.lo \
	aes/libcrypto_la-vpaes-macosx-x86_64.lo \
	aes/libcrypto_la-aesni-macosx-x86_64.lo \
	aes/libcrypto_la-aesni-sha1-macosx-x86_64.lo \
	bn/libcrypto_la-modexp512-macosx-x86_64.lo \
	bn/libcrypto_la-mont-macosx-x86_64.lo \
	bn/libcrypto_la-mont5-macosx-x86_64.lo \
	bn/libcrypto_la-gf2m-macosx-x86_64.lo \
	camellia/libcrypto_la-cmll-macosx-x86_64.lo \
	md5/libcrypto_la-md5-macosx-x86_64.lo \
	modes/libcrypto_la-ghash-macosx-x86_64.lo \
	rc4/libcrypto_la-rc4-macosx-x86_64.lo \
	rc4/libcrypto_la-rc4-md5-macosx-x86_64.lo \
	sha/libcrypto_la-sha1-macosx-x86_64.lo \
	sha/libcrypto_la-sha256-macosx-x86_64.lo \
	sha/libcrypto_la-sha512-macosx-x86_64.lo \
	whrlpool/libcrypto_la-wp-macosx-x86_64.lo \
	libcrypto_la-cpuid-macosx-x86_64.lo
@HOST_ASM_MACOSX_X86_64_TRUE@am__objects_30 = $(am__objects_29)
@HOST_ASM_ELF_X86_64_FALSE@@HOST_ASM_MACOSX_X86_64_FALSE@am__objects_31 = aes/libcrypto_la-aes_cbc.lo \
@HOST_ASM_ELF_X86_64_FALSE@@HOST_ASM_MACOSX_X86_64_FALSE@	aes/libcrypto_la-aes_core.lo \
@HOST_ASM_ELF_X86_64_FALSE@@HOST_ASM_MACOSX_X86_64_FALSE@	camellia/libcrypto_la-camellia.lo \
@HOST_ASM_ELF_X86_64_FALSE@@HOST_ASM_MACOSX_X86_64_FALSE@	camellia/libcrypto_la-cmll_cbc.lo \
@HOST_ASM_ELF_X86_64_FALSE@@HOST_ASM_MACOSX_X86_64_FALSE@	rc4/libcrypto_la-rc4_enc.lo \
@HOST_ASM_ELF_X86_64_FALSE@@HOST_ASM_MACOSX_X86_64_FALSE@	rc4/libcrypto_la-rc4_skey.lo \
@HOST_ASM_ELF_X86_64_FALSE@@HOST_ASM_MACOSX_X86_64_FALSE@	whrlpool/libcrypto_la-wp_block.lo

@HOST_WIN_FALSE@am__objects_32 = bio/libcrypto_la-b_posix.lo
@HOST_WIN_TRUE@am__objects_33 = bio/libcrypto_la-b_win.lo
@HOST_WIN_FALSE@am__objects_34 = bio/libcrypto_la-bss_log.lo
@HOST_WIN_FALSE@am__objects_35 = ui/libcrypto_la-ui_openssl.lo
@HOST_WIN_TRUE@am__objects_36 = ui/libcrypto_la-ui_openssl_win.lo
am_libcrypto_la_OBJECTS = $(am__objects_28) $(am__objects_30) \
	$(am__objects_31) libcrypto_la-cpt_err.lo \
	libcrypto_la-cryptlib.lo libcrypto_la-cversion.lo \

	libcrypto_la-ex_data.lo libcrypto_la-malloc-wrapper.lo \
	libcrypto_la-mem_clr.lo libcrypto_la-mem_dbg.lo \
	libcrypto_la-o_init.lo libcrypto_la-o_str.lo \
	libcrypto_la-o_time.lo aes/libcrypto_la-aes_cfb.lo \
	aes/libcrypto_la-aes_ctr.lo aes/libcrypto_la-aes_ecb.lo \
	aes/libcrypto_la-aes_ige.lo aes/libcrypto_la-aes_misc.lo \
	aes/libcrypto_la-aes_ofb.lo aes/libcrypto_la-aes_wrap.lo \
	asn1/libcrypto_la-a_bitstr.lo asn1/libcrypto_la-a_bool.lo \
	asn1/libcrypto_la-a_bytes.lo asn1/libcrypto_la-a_d2i_fp.lo \
	asn1/libcrypto_la-a_digest.lo asn1/libcrypto_la-a_dup.lo \
	asn1/libcrypto_la-a_enum.lo asn1/libcrypto_la-a_i2d_fp.lo \
	asn1/libcrypto_la-a_int.lo asn1/libcrypto_la-a_mbstr.lo \
	asn1/libcrypto_la-a_object.lo asn1/libcrypto_la-a_octet.lo \
	asn1/libcrypto_la-a_print.lo asn1/libcrypto_la-a_set.lo \
	asn1/libcrypto_la-a_sign.lo asn1/libcrypto_la-a_strex.lo \
	asn1/libcrypto_la-a_strnid.lo asn1/libcrypto_la-a_time.lo \
	asn1/libcrypto_la-a_time_tm.lo asn1/libcrypto_la-a_type.lo \
	asn1/libcrypto_la-a_utf8.lo asn1/libcrypto_la-a_verify.lo \
	asn1/libcrypto_la-ameth_lib.lo asn1/libcrypto_la-asn1_err.lo \
	asn1/libcrypto_la-asn1_gen.lo asn1/libcrypto_la-asn1_lib.lo \
	asn1/libcrypto_la-asn1_par.lo asn1/libcrypto_la-asn_mime.lo \
	asn1/libcrypto_la-asn_moid.lo asn1/libcrypto_la-asn_pack.lo \
	asn1/libcrypto_la-bio_asn1.lo asn1/libcrypto_la-bio_ndef.lo \

	asn1/libcrypto_la-d2i_pr.lo asn1/libcrypto_la-d2i_pu.lo \
	asn1/libcrypto_la-evp_asn1.lo asn1/libcrypto_la-f_enum.lo \
	asn1/libcrypto_la-f_int.lo asn1/libcrypto_la-f_string.lo \
	asn1/libcrypto_la-i2d_pr.lo asn1/libcrypto_la-i2d_pu.lo \
	asn1/libcrypto_la-n_pkey.lo asn1/libcrypto_la-nsseq.lo \
	asn1/libcrypto_la-p5_pbe.lo asn1/libcrypto_la-p5_pbev2.lo \
	asn1/libcrypto_la-p8_pkey.lo asn1/libcrypto_la-t_bitst.lo \
	asn1/libcrypto_la-t_crl.lo asn1/libcrypto_la-t_pkey.lo \
	asn1/libcrypto_la-t_req.lo asn1/libcrypto_la-t_spki.lo \
	asn1/libcrypto_la-t_x509.lo asn1/libcrypto_la-t_x509a.lo \
	asn1/libcrypto_la-tasn_dec.lo asn1/libcrypto_la-tasn_enc.lo \
	asn1/libcrypto_la-tasn_fre.lo asn1/libcrypto_la-tasn_new.lo \
	asn1/libcrypto_la-tasn_prn.lo asn1/libcrypto_la-tasn_typ.lo \
	asn1/libcrypto_la-tasn_utl.lo asn1/libcrypto_la-x_algor.lo \
	asn1/libcrypto_la-x_attrib.lo asn1/libcrypto_la-x_bignum.lo \
	asn1/libcrypto_la-x_crl.lo asn1/libcrypto_la-x_exten.lo \
	asn1/libcrypto_la-x_info.lo asn1/libcrypto_la-x_long.lo \
	asn1/libcrypto_la-x_name.lo asn1/libcrypto_la-x_nx509.lo \
	asn1/libcrypto_la-x_pkey.lo asn1/libcrypto_la-x_pubkey.lo \
	asn1/libcrypto_la-x_req.lo asn1/libcrypto_la-x_sig.lo \
	asn1/libcrypto_la-x_spki.lo asn1/libcrypto_la-x_val.lo \
	asn1/libcrypto_la-x_x509.lo asn1/libcrypto_la-x_x509a.lo \
	bf/libcrypto_la-bf_cfb64.lo bf/libcrypto_la-bf_ecb.lo \
	bf/libcrypto_la-bf_enc.lo bf/libcrypto_la-bf_ofb64.lo \
	bf/libcrypto_la-bf_skey.lo bio/libcrypto_la-b_dump.lo \

	$(am__objects_32) bio/libcrypto_la-b_print.lo \
	bio/libcrypto_la-b_sock.lo $(am__objects_33) \
	bio/libcrypto_la-bf_buff.lo bio/libcrypto_la-bf_nbio.lo \
	bio/libcrypto_la-bf_null.lo bio/libcrypto_la-bio_cb.lo \
	bio/libcrypto_la-bio_err.lo bio/libcrypto_la-bio_lib.lo \
	bio/libcrypto_la-bss_acpt.lo bio/libcrypto_la-bss_bio.lo \
	bio/libcrypto_la-bss_conn.lo bio/libcrypto_la-bss_dgram.lo \
	bio/libcrypto_la-bss_fd.lo bio/libcrypto_la-bss_file.lo \
	$(am__objects_34) bio/libcrypto_la-bss_mem.lo \
	bio/libcrypto_la-bss_null.lo bio/libcrypto_la-bss_sock.lo \
	bn/libcrypto_la-bn_add.lo bn/libcrypto_la-bn_asm.lo \
	bn/libcrypto_la-bn_blind.lo bn/libcrypto_la-bn_const.lo \
	bn/libcrypto_la-bn_ctx.lo bn/libcrypto_la-bn_depr.lo \
	bn/libcrypto_la-bn_div.lo bn/libcrypto_la-bn_err.lo \
	bn/libcrypto_la-bn_exp.lo bn/libcrypto_la-bn_exp2.lo \
	bn/libcrypto_la-bn_gcd.lo bn/libcrypto_la-bn_gf2m.lo \







|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
|
|
|
|
<
|


















|
|


















|
|






>
|
|
|
|
<
|
|
|
>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<
>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>
|
<
|
|
|



|







406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440

441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492

493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518

519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546

547
548
549
550
551
552
553
554
555
556
557
558
559
560
	pkcs7/pk7_attr.c pkcs7/pk7_doit.c pkcs7/pk7_lib.c \
	pkcs7/pk7_mime.c pkcs7/pk7_smime.c pkcs7/pkcs7err.c \
	poly1305/poly1305.c rand/rand_err.c rand/rand_lib.c \
	rand/randfile.c rc2/rc2_cbc.c rc2/rc2_ecb.c rc2/rc2_skey.c \
	rc2/rc2cfb64.c rc2/rc2ofb64.c ripemd/rmd_dgst.c \
	ripemd/rmd_one.c rsa/rsa_ameth.c rsa/rsa_asn1.c rsa/rsa_chk.c \
	rsa/rsa_crpt.c rsa/rsa_depr.c rsa/rsa_eay.c rsa/rsa_err.c \
	rsa/rsa_gen.c rsa/rsa_lib.c rsa/rsa_meth.c rsa/rsa_none.c \
	rsa/rsa_oaep.c rsa/rsa_pk1.c rsa/rsa_pmeth.c rsa/rsa_prn.c \
	rsa/rsa_pss.c rsa/rsa_saos.c rsa/rsa_sign.c rsa/rsa_x931.c \
	sha/sha1_one.c sha/sha1dgst.c sha/sha256.c sha/sha512.c \
	stack/stack.c ts/ts_asn1.c ts/ts_conf.c ts/ts_err.c \
	ts/ts_lib.c ts/ts_req_print.c ts/ts_req_utils.c \
	ts/ts_rsp_print.c ts/ts_rsp_sign.c ts/ts_rsp_utils.c \
	ts/ts_rsp_verify.c ts/ts_verify_ctx.c txt_db/txt_db.c \
	ui/ui_err.c ui/ui_lib.c ui/ui_openssl.c ui/ui_openssl_win.c \
	ui/ui_util.c whrlpool/wp_dgst.c x509/by_dir.c x509/by_file.c \
	x509/by_mem.c x509/x509_att.c x509/x509_cmp.c x509/x509_d2.c \
	x509/x509_def.c x509/x509_err.c x509/x509_ext.c x509/x509_lu.c \
	x509/x509_obj.c x509/x509_r2x.c x509/x509_req.c \
	x509/x509_set.c x509/x509_trs.c x509/x509_txt.c x509/x509_v3.c \
	x509/x509_vfy.c x509/x509_vpm.c x509/x509cset.c \
	x509/x509name.c x509/x509rset.c x509/x509spki.c \
	x509/x509type.c x509/x_all.c x509v3/pcy_cache.c \
	x509v3/pcy_data.c x509v3/pcy_lib.c x509v3/pcy_map.c \
	x509v3/pcy_node.c x509v3/pcy_tree.c x509v3/v3_akey.c \
	x509v3/v3_akeya.c x509v3/v3_alt.c x509v3/v3_bcons.c \
	x509v3/v3_bitst.c x509v3/v3_conf.c x509v3/v3_cpols.c \
	x509v3/v3_crld.c x509v3/v3_enum.c x509v3/v3_extku.c \
	x509v3/v3_genn.c x509v3/v3_ia5.c x509v3/v3_info.c \
	x509v3/v3_int.c x509v3/v3_lib.c x509v3/v3_ncons.c \
	x509v3/v3_ocsp.c x509v3/v3_pci.c x509v3/v3_pcia.c \
	x509v3/v3_pcons.c x509v3/v3_pku.c x509v3/v3_pmaps.c \
	x509v3/v3_prn.c x509v3/v3_purp.c x509v3/v3_skey.c \
	x509v3/v3_sxnet.c x509v3/v3_utl.c x509v3/v3err.c

am__objects_26 = aes/libcrypto_la-aes-elf-x86_64.lo \
	aes/libcrypto_la-bsaes-elf-x86_64.lo \
	aes/libcrypto_la-vpaes-elf-x86_64.lo \
	aes/libcrypto_la-aesni-elf-x86_64.lo \
	aes/libcrypto_la-aesni-sha1-elf-x86_64.lo \
	bn/libcrypto_la-modexp512-elf-x86_64.lo \
	bn/libcrypto_la-mont-elf-x86_64.lo \
	bn/libcrypto_la-mont5-elf-x86_64.lo \
	bn/libcrypto_la-gf2m-elf-x86_64.lo \
	camellia/libcrypto_la-cmll-elf-x86_64.lo \
	md5/libcrypto_la-md5-elf-x86_64.lo \
	modes/libcrypto_la-ghash-elf-x86_64.lo \
	rc4/libcrypto_la-rc4-elf-x86_64.lo \
	rc4/libcrypto_la-rc4-md5-elf-x86_64.lo \
	sha/libcrypto_la-sha1-elf-x86_64.lo \
	sha/libcrypto_la-sha256-elf-x86_64.lo \
	sha/libcrypto_la-sha512-elf-x86_64.lo \
	whrlpool/libcrypto_la-wp-elf-x86_64.lo \
	libcrypto_la-cpuid-elf-x86_64.lo
@HOST_ASM_ELF_X86_64_TRUE@am__objects_27 = $(am__objects_26)
am__objects_28 = aes/libcrypto_la-aes-macosx-x86_64.lo \
	aes/libcrypto_la-bsaes-macosx-x86_64.lo \
	aes/libcrypto_la-vpaes-macosx-x86_64.lo \
	aes/libcrypto_la-aesni-macosx-x86_64.lo \
	aes/libcrypto_la-aesni-sha1-macosx-x86_64.lo \
	bn/libcrypto_la-modexp512-macosx-x86_64.lo \
	bn/libcrypto_la-mont-macosx-x86_64.lo \
	bn/libcrypto_la-mont5-macosx-x86_64.lo \
	bn/libcrypto_la-gf2m-macosx-x86_64.lo \
	camellia/libcrypto_la-cmll-macosx-x86_64.lo \
	md5/libcrypto_la-md5-macosx-x86_64.lo \
	modes/libcrypto_la-ghash-macosx-x86_64.lo \
	rc4/libcrypto_la-rc4-macosx-x86_64.lo \
	rc4/libcrypto_la-rc4-md5-macosx-x86_64.lo \
	sha/libcrypto_la-sha1-macosx-x86_64.lo \
	sha/libcrypto_la-sha256-macosx-x86_64.lo \
	sha/libcrypto_la-sha512-macosx-x86_64.lo \
	whrlpool/libcrypto_la-wp-macosx-x86_64.lo \
	libcrypto_la-cpuid-macosx-x86_64.lo
@HOST_ASM_MACOSX_X86_64_TRUE@am__objects_29 = $(am__objects_28)
@HOST_ASM_ELF_X86_64_FALSE@@HOST_ASM_MACOSX_X86_64_FALSE@am__objects_30 = aes/libcrypto_la-aes_cbc.lo \
@HOST_ASM_ELF_X86_64_FALSE@@HOST_ASM_MACOSX_X86_64_FALSE@	aes/libcrypto_la-aes_core.lo \
@HOST_ASM_ELF_X86_64_FALSE@@HOST_ASM_MACOSX_X86_64_FALSE@	camellia/libcrypto_la-camellia.lo \
@HOST_ASM_ELF_X86_64_FALSE@@HOST_ASM_MACOSX_X86_64_FALSE@	camellia/libcrypto_la-cmll_cbc.lo \
@HOST_ASM_ELF_X86_64_FALSE@@HOST_ASM_MACOSX_X86_64_FALSE@	rc4/libcrypto_la-rc4_enc.lo \
@HOST_ASM_ELF_X86_64_FALSE@@HOST_ASM_MACOSX_X86_64_FALSE@	rc4/libcrypto_la-rc4_skey.lo \
@HOST_ASM_ELF_X86_64_FALSE@@HOST_ASM_MACOSX_X86_64_FALSE@	whrlpool/libcrypto_la-wp_block.lo
@HOST_WIN_FALSE@am__objects_31 = bio/libcrypto_la-b_posix.lo
@HOST_WIN_TRUE@am__objects_32 = bio/libcrypto_la-b_win.lo
@HOST_WIN_FALSE@am__objects_33 = bio/libcrypto_la-bss_log.lo
@HOST_WIN_FALSE@am__objects_34 = ui/libcrypto_la-ui_openssl.lo
@HOST_WIN_TRUE@am__objects_35 = ui/libcrypto_la-ui_openssl_win.lo

am_libcrypto_la_OBJECTS = $(am__objects_27) $(am__objects_29) \
	$(am__objects_30) libcrypto_la-cpt_err.lo \
	libcrypto_la-cryptlib.lo libcrypto_la-crypto_init.lo \
	libcrypto_la-cversion.lo libcrypto_la-ex_data.lo \
	libcrypto_la-malloc-wrapper.lo libcrypto_la-mem_clr.lo \
	libcrypto_la-mem_dbg.lo libcrypto_la-o_init.lo \
	libcrypto_la-o_str.lo libcrypto_la-o_time.lo \
	aes/libcrypto_la-aes_cfb.lo aes/libcrypto_la-aes_ctr.lo \
	aes/libcrypto_la-aes_ecb.lo aes/libcrypto_la-aes_ige.lo \
	aes/libcrypto_la-aes_misc.lo aes/libcrypto_la-aes_ofb.lo \
	aes/libcrypto_la-aes_wrap.lo asn1/libcrypto_la-a_bitstr.lo \
	asn1/libcrypto_la-a_bool.lo asn1/libcrypto_la-a_bytes.lo \
	asn1/libcrypto_la-a_d2i_fp.lo asn1/libcrypto_la-a_digest.lo \
	asn1/libcrypto_la-a_dup.lo asn1/libcrypto_la-a_enum.lo \
	asn1/libcrypto_la-a_i2d_fp.lo asn1/libcrypto_la-a_int.lo \
	asn1/libcrypto_la-a_mbstr.lo asn1/libcrypto_la-a_object.lo \
	asn1/libcrypto_la-a_octet.lo asn1/libcrypto_la-a_print.lo \
	asn1/libcrypto_la-a_set.lo asn1/libcrypto_la-a_sign.lo \
	asn1/libcrypto_la-a_strex.lo asn1/libcrypto_la-a_strnid.lo \
	asn1/libcrypto_la-a_time.lo asn1/libcrypto_la-a_time_tm.lo \
	asn1/libcrypto_la-a_type.lo asn1/libcrypto_la-a_utf8.lo \
	asn1/libcrypto_la-a_verify.lo asn1/libcrypto_la-ameth_lib.lo \
	asn1/libcrypto_la-asn1_err.lo asn1/libcrypto_la-asn1_gen.lo \
	asn1/libcrypto_la-asn1_lib.lo asn1/libcrypto_la-asn1_par.lo \
	asn1/libcrypto_la-asn_mime.lo asn1/libcrypto_la-asn_moid.lo \
	asn1/libcrypto_la-asn_pack.lo asn1/libcrypto_la-bio_asn1.lo \

	asn1/libcrypto_la-bio_ndef.lo asn1/libcrypto_la-d2i_pr.lo \
	asn1/libcrypto_la-d2i_pu.lo asn1/libcrypto_la-evp_asn1.lo \
	asn1/libcrypto_la-f_enum.lo asn1/libcrypto_la-f_int.lo \
	asn1/libcrypto_la-f_string.lo asn1/libcrypto_la-i2d_pr.lo \
	asn1/libcrypto_la-i2d_pu.lo asn1/libcrypto_la-n_pkey.lo \
	asn1/libcrypto_la-nsseq.lo asn1/libcrypto_la-p5_pbe.lo \
	asn1/libcrypto_la-p5_pbev2.lo asn1/libcrypto_la-p8_pkey.lo \
	asn1/libcrypto_la-t_bitst.lo asn1/libcrypto_la-t_crl.lo \
	asn1/libcrypto_la-t_pkey.lo asn1/libcrypto_la-t_req.lo \
	asn1/libcrypto_la-t_spki.lo asn1/libcrypto_la-t_x509.lo \
	asn1/libcrypto_la-t_x509a.lo asn1/libcrypto_la-tasn_dec.lo \
	asn1/libcrypto_la-tasn_enc.lo asn1/libcrypto_la-tasn_fre.lo \
	asn1/libcrypto_la-tasn_new.lo asn1/libcrypto_la-tasn_prn.lo \
	asn1/libcrypto_la-tasn_typ.lo asn1/libcrypto_la-tasn_utl.lo \
	asn1/libcrypto_la-x_algor.lo asn1/libcrypto_la-x_attrib.lo \
	asn1/libcrypto_la-x_bignum.lo asn1/libcrypto_la-x_crl.lo \
	asn1/libcrypto_la-x_exten.lo asn1/libcrypto_la-x_info.lo \
	asn1/libcrypto_la-x_long.lo asn1/libcrypto_la-x_name.lo \
	asn1/libcrypto_la-x_nx509.lo asn1/libcrypto_la-x_pkey.lo \
	asn1/libcrypto_la-x_pubkey.lo asn1/libcrypto_la-x_req.lo \
	asn1/libcrypto_la-x_sig.lo asn1/libcrypto_la-x_spki.lo \
	asn1/libcrypto_la-x_val.lo asn1/libcrypto_la-x_x509.lo \
	asn1/libcrypto_la-x_x509a.lo bf/libcrypto_la-bf_cfb64.lo \
	bf/libcrypto_la-bf_ecb.lo bf/libcrypto_la-bf_enc.lo \
	bf/libcrypto_la-bf_ofb64.lo bf/libcrypto_la-bf_skey.lo \
	bio/libcrypto_la-b_dump.lo $(am__objects_31) \
	bio/libcrypto_la-b_print.lo bio/libcrypto_la-b_sock.lo \
	$(am__objects_32) bio/libcrypto_la-bf_buff.lo \

	bio/libcrypto_la-bf_nbio.lo bio/libcrypto_la-bf_null.lo \
	bio/libcrypto_la-bio_cb.lo bio/libcrypto_la-bio_err.lo \
	bio/libcrypto_la-bio_lib.lo bio/libcrypto_la-bio_meth.lo \
	bio/libcrypto_la-bss_acpt.lo bio/libcrypto_la-bss_bio.lo \
	bio/libcrypto_la-bss_conn.lo bio/libcrypto_la-bss_dgram.lo \
	bio/libcrypto_la-bss_fd.lo bio/libcrypto_la-bss_file.lo \
	$(am__objects_33) bio/libcrypto_la-bss_mem.lo \
	bio/libcrypto_la-bss_null.lo bio/libcrypto_la-bss_sock.lo \
	bn/libcrypto_la-bn_add.lo bn/libcrypto_la-bn_asm.lo \
	bn/libcrypto_la-bn_blind.lo bn/libcrypto_la-bn_const.lo \
	bn/libcrypto_la-bn_ctx.lo bn/libcrypto_la-bn_depr.lo \
	bn/libcrypto_la-bn_div.lo bn/libcrypto_la-bn_err.lo \
	bn/libcrypto_la-bn_exp.lo bn/libcrypto_la-bn_exp2.lo \
	bn/libcrypto_la-bn_gcd.lo bn/libcrypto_la-bn_gf2m.lo \
601
602
603
604
605
606
607
608

609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
	dh/libcrypto_la-dh_check.lo dh/libcrypto_la-dh_depr.lo \
	dh/libcrypto_la-dh_err.lo dh/libcrypto_la-dh_gen.lo \
	dh/libcrypto_la-dh_key.lo dh/libcrypto_la-dh_lib.lo \
	dh/libcrypto_la-dh_pmeth.lo dh/libcrypto_la-dh_prn.lo \
	dsa/libcrypto_la-dsa_ameth.lo dsa/libcrypto_la-dsa_asn1.lo \
	dsa/libcrypto_la-dsa_depr.lo dsa/libcrypto_la-dsa_err.lo \
	dsa/libcrypto_la-dsa_gen.lo dsa/libcrypto_la-dsa_key.lo \
	dsa/libcrypto_la-dsa_lib.lo dsa/libcrypto_la-dsa_ossl.lo \

	dsa/libcrypto_la-dsa_pmeth.lo dsa/libcrypto_la-dsa_prn.lo \
	dsa/libcrypto_la-dsa_sign.lo dsa/libcrypto_la-dsa_vrf.lo \
	dso/libcrypto_la-dso_dlfcn.lo dso/libcrypto_la-dso_err.lo \
	dso/libcrypto_la-dso_lib.lo dso/libcrypto_la-dso_null.lo \
	dso/libcrypto_la-dso_openssl.lo ec/libcrypto_la-ec2_mult.lo \
	ec/libcrypto_la-ec2_oct.lo ec/libcrypto_la-ec2_smpl.lo \
	ec/libcrypto_la-ec_ameth.lo ec/libcrypto_la-ec_asn1.lo \
	ec/libcrypto_la-ec_check.lo ec/libcrypto_la-ec_curve.lo \
	ec/libcrypto_la-ec_cvt.lo ec/libcrypto_la-ec_err.lo \
	ec/libcrypto_la-ec_key.lo ec/libcrypto_la-ec_lib.lo \
	ec/libcrypto_la-ec_mult.lo ec/libcrypto_la-ec_oct.lo \
	ec/libcrypto_la-ec_pmeth.lo ec/libcrypto_la-ec_print.lo \
	ec/libcrypto_la-eck_prn.lo ec/libcrypto_la-ecp_mont.lo \
	ec/libcrypto_la-ecp_nist.lo ec/libcrypto_la-ecp_oct.lo \
	ec/libcrypto_la-ecp_smpl.lo ecdh/libcrypto_la-ech_err.lo \
	ecdh/libcrypto_la-ech_key.lo ecdh/libcrypto_la-ech_lib.lo \
	ecdsa/libcrypto_la-ecs_asn1.lo ecdsa/libcrypto_la-ecs_err.lo \
	ecdsa/libcrypto_la-ecs_lib.lo ecdsa/libcrypto_la-ecs_ossl.lo \
	ecdsa/libcrypto_la-ecs_sign.lo ecdsa/libcrypto_la-ecs_vrf.lo \
	engine/libcrypto_la-eng_all.lo engine/libcrypto_la-eng_cnf.lo \
	engine/libcrypto_la-eng_ctrl.lo engine/libcrypto_la-eng_dyn.lo \
	engine/libcrypto_la-eng_err.lo engine/libcrypto_la-eng_fat.lo \
	engine/libcrypto_la-eng_init.lo engine/libcrypto_la-eng_lib.lo \
	engine/libcrypto_la-eng_list.lo \
	engine/libcrypto_la-eng_openssl.lo \
	engine/libcrypto_la-eng_pkey.lo \
	engine/libcrypto_la-eng_table.lo \
	engine/libcrypto_la-tb_asnmth.lo \
	engine/libcrypto_la-tb_cipher.lo engine/libcrypto_la-tb_dh.lo \
	engine/libcrypto_la-tb_digest.lo engine/libcrypto_la-tb_dsa.lo \
	engine/libcrypto_la-tb_ecdh.lo engine/libcrypto_la-tb_ecdsa.lo \







|
>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<
|







600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630

631
632
633
634
635
636
637
638
	dh/libcrypto_la-dh_check.lo dh/libcrypto_la-dh_depr.lo \
	dh/libcrypto_la-dh_err.lo dh/libcrypto_la-dh_gen.lo \
	dh/libcrypto_la-dh_key.lo dh/libcrypto_la-dh_lib.lo \
	dh/libcrypto_la-dh_pmeth.lo dh/libcrypto_la-dh_prn.lo \
	dsa/libcrypto_la-dsa_ameth.lo dsa/libcrypto_la-dsa_asn1.lo \
	dsa/libcrypto_la-dsa_depr.lo dsa/libcrypto_la-dsa_err.lo \
	dsa/libcrypto_la-dsa_gen.lo dsa/libcrypto_la-dsa_key.lo \
	dsa/libcrypto_la-dsa_lib.lo dsa/libcrypto_la-dsa_meth.lo \
	dsa/libcrypto_la-dsa_ossl.lo dsa/libcrypto_la-dsa_pmeth.lo \
	dsa/libcrypto_la-dsa_prn.lo dsa/libcrypto_la-dsa_sign.lo \
	dsa/libcrypto_la-dsa_vrf.lo dso/libcrypto_la-dso_dlfcn.lo \
	dso/libcrypto_la-dso_err.lo dso/libcrypto_la-dso_lib.lo \
	dso/libcrypto_la-dso_null.lo dso/libcrypto_la-dso_openssl.lo \
	ec/libcrypto_la-ec2_mult.lo ec/libcrypto_la-ec2_oct.lo \
	ec/libcrypto_la-ec2_smpl.lo ec/libcrypto_la-ec_ameth.lo \
	ec/libcrypto_la-ec_asn1.lo ec/libcrypto_la-ec_check.lo \
	ec/libcrypto_la-ec_curve.lo ec/libcrypto_la-ec_cvt.lo \
	ec/libcrypto_la-ec_err.lo ec/libcrypto_la-ec_key.lo \
	ec/libcrypto_la-ec_lib.lo ec/libcrypto_la-ec_mult.lo \
	ec/libcrypto_la-ec_oct.lo ec/libcrypto_la-ec_pmeth.lo \
	ec/libcrypto_la-ec_print.lo ec/libcrypto_la-eck_prn.lo \
	ec/libcrypto_la-ecp_mont.lo ec/libcrypto_la-ecp_nist.lo \
	ec/libcrypto_la-ecp_oct.lo ec/libcrypto_la-ecp_smpl.lo \
	ecdh/libcrypto_la-ech_err.lo ecdh/libcrypto_la-ech_key.lo \
	ecdh/libcrypto_la-ech_lib.lo ecdsa/libcrypto_la-ecs_asn1.lo \
	ecdsa/libcrypto_la-ecs_err.lo ecdsa/libcrypto_la-ecs_lib.lo \
	ecdsa/libcrypto_la-ecs_ossl.lo ecdsa/libcrypto_la-ecs_sign.lo \
	ecdsa/libcrypto_la-ecs_vrf.lo engine/libcrypto_la-eng_all.lo \
	engine/libcrypto_la-eng_cnf.lo engine/libcrypto_la-eng_ctrl.lo \
	engine/libcrypto_la-eng_dyn.lo engine/libcrypto_la-eng_err.lo \
	engine/libcrypto_la-eng_fat.lo engine/libcrypto_la-eng_init.lo \

	engine/libcrypto_la-eng_lib.lo engine/libcrypto_la-eng_list.lo \
	engine/libcrypto_la-eng_openssl.lo \
	engine/libcrypto_la-eng_pkey.lo \
	engine/libcrypto_la-eng_table.lo \
	engine/libcrypto_la-tb_asnmth.lo \
	engine/libcrypto_la-tb_cipher.lo engine/libcrypto_la-tb_dh.lo \
	engine/libcrypto_la-tb_digest.lo engine/libcrypto_la-tb_dsa.lo \
	engine/libcrypto_la-tb_ecdh.lo engine/libcrypto_la-tb_ecdsa.lo \
729
730
731
732
733
734
735
736

737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
	rc2/libcrypto_la-rc2_ecb.lo rc2/libcrypto_la-rc2_skey.lo \
	rc2/libcrypto_la-rc2cfb64.lo rc2/libcrypto_la-rc2ofb64.lo \
	ripemd/libcrypto_la-rmd_dgst.lo ripemd/libcrypto_la-rmd_one.lo \
	rsa/libcrypto_la-rsa_ameth.lo rsa/libcrypto_la-rsa_asn1.lo \
	rsa/libcrypto_la-rsa_chk.lo rsa/libcrypto_la-rsa_crpt.lo \
	rsa/libcrypto_la-rsa_depr.lo rsa/libcrypto_la-rsa_eay.lo \
	rsa/libcrypto_la-rsa_err.lo rsa/libcrypto_la-rsa_gen.lo \
	rsa/libcrypto_la-rsa_lib.lo rsa/libcrypto_la-rsa_none.lo \

	rsa/libcrypto_la-rsa_oaep.lo rsa/libcrypto_la-rsa_pk1.lo \
	rsa/libcrypto_la-rsa_pmeth.lo rsa/libcrypto_la-rsa_prn.lo \
	rsa/libcrypto_la-rsa_pss.lo rsa/libcrypto_la-rsa_saos.lo \
	rsa/libcrypto_la-rsa_sign.lo rsa/libcrypto_la-rsa_x931.lo \
	sha/libcrypto_la-sha1_one.lo sha/libcrypto_la-sha1dgst.lo \
	sha/libcrypto_la-sha256.lo sha/libcrypto_la-sha512.lo \
	stack/libcrypto_la-stack.lo ts/libcrypto_la-ts_asn1.lo \
	ts/libcrypto_la-ts_conf.lo ts/libcrypto_la-ts_err.lo \
	ts/libcrypto_la-ts_lib.lo ts/libcrypto_la-ts_req_print.lo \
	ts/libcrypto_la-ts_req_utils.lo \
	ts/libcrypto_la-ts_rsp_print.lo ts/libcrypto_la-ts_rsp_sign.lo \
	ts/libcrypto_la-ts_rsp_utils.lo \
	ts/libcrypto_la-ts_rsp_verify.lo \
	ts/libcrypto_la-ts_verify_ctx.lo txt_db/libcrypto_la-txt_db.lo \
	ui/libcrypto_la-ui_err.lo ui/libcrypto_la-ui_lib.lo \
	$(am__objects_35) $(am__objects_36) ui/libcrypto_la-ui_util.lo \
	whrlpool/libcrypto_la-wp_dgst.lo x509/libcrypto_la-by_dir.lo \
	x509/libcrypto_la-by_file.lo x509/libcrypto_la-by_mem.lo \
	x509/libcrypto_la-x509_att.lo x509/libcrypto_la-x509_cmp.lo \
	x509/libcrypto_la-x509_d2.lo x509/libcrypto_la-x509_def.lo \
	x509/libcrypto_la-x509_err.lo x509/libcrypto_la-x509_ext.lo \
	x509/libcrypto_la-x509_lu.lo x509/libcrypto_la-x509_obj.lo \
	x509/libcrypto_la-x509_r2x.lo x509/libcrypto_la-x509_req.lo \







|
>
|
|
|
|
|
|
|
|
|






|







728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
	rc2/libcrypto_la-rc2_ecb.lo rc2/libcrypto_la-rc2_skey.lo \
	rc2/libcrypto_la-rc2cfb64.lo rc2/libcrypto_la-rc2ofb64.lo \
	ripemd/libcrypto_la-rmd_dgst.lo ripemd/libcrypto_la-rmd_one.lo \
	rsa/libcrypto_la-rsa_ameth.lo rsa/libcrypto_la-rsa_asn1.lo \
	rsa/libcrypto_la-rsa_chk.lo rsa/libcrypto_la-rsa_crpt.lo \
	rsa/libcrypto_la-rsa_depr.lo rsa/libcrypto_la-rsa_eay.lo \
	rsa/libcrypto_la-rsa_err.lo rsa/libcrypto_la-rsa_gen.lo \
	rsa/libcrypto_la-rsa_lib.lo rsa/libcrypto_la-rsa_meth.lo \
	rsa/libcrypto_la-rsa_none.lo rsa/libcrypto_la-rsa_oaep.lo \
	rsa/libcrypto_la-rsa_pk1.lo rsa/libcrypto_la-rsa_pmeth.lo \
	rsa/libcrypto_la-rsa_prn.lo rsa/libcrypto_la-rsa_pss.lo \
	rsa/libcrypto_la-rsa_saos.lo rsa/libcrypto_la-rsa_sign.lo \
	rsa/libcrypto_la-rsa_x931.lo sha/libcrypto_la-sha1_one.lo \
	sha/libcrypto_la-sha1dgst.lo sha/libcrypto_la-sha256.lo \
	sha/libcrypto_la-sha512.lo stack/libcrypto_la-stack.lo \
	ts/libcrypto_la-ts_asn1.lo ts/libcrypto_la-ts_conf.lo \
	ts/libcrypto_la-ts_err.lo ts/libcrypto_la-ts_lib.lo \
	ts/libcrypto_la-ts_req_print.lo \
	ts/libcrypto_la-ts_req_utils.lo \
	ts/libcrypto_la-ts_rsp_print.lo ts/libcrypto_la-ts_rsp_sign.lo \
	ts/libcrypto_la-ts_rsp_utils.lo \
	ts/libcrypto_la-ts_rsp_verify.lo \
	ts/libcrypto_la-ts_verify_ctx.lo txt_db/libcrypto_la-txt_db.lo \
	ui/libcrypto_la-ui_err.lo ui/libcrypto_la-ui_lib.lo \
	$(am__objects_34) $(am__objects_35) ui/libcrypto_la-ui_util.lo \
	whrlpool/libcrypto_la-wp_dgst.lo x509/libcrypto_la-by_dir.lo \
	x509/libcrypto_la-by_file.lo x509/libcrypto_la-by_mem.lo \
	x509/libcrypto_la-x509_att.lo x509/libcrypto_la-x509_cmp.lo \
	x509/libcrypto_la-x509_d2.lo x509/libcrypto_la-x509_def.lo \
	x509/libcrypto_la-x509_err.lo x509/libcrypto_la-x509_ext.lo \
	x509/libcrypto_la-x509_lu.lo x509/libcrypto_la-x509_obj.lo \
	x509/libcrypto_la-x509_r2x.lo x509/libcrypto_la-x509_req.lo \
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
	$(ASM_X86_64_ELF) $(ASM_X86_64_MACOSX)
BUILT_SOURCES = crypto_portable.sym
CLEANFILES = crypto_portable.sym
libcrypto_la_LDFLAGS = -version-info @LIBCRYPTO_VERSION@ -no-undefined -export-symbols crypto_portable.sym
libcrypto_la_LIBADD = libcompat.la $(am__append_1)
libcrypto_la_CPPFLAGS = $(AM_CPPFLAGS) -DLIBRESSL_INTERNAL \
	-DOPENSSL_NO_HW_PADLOCK $(am__append_2) $(am__append_3) \
	$(am__append_4) $(am__append_5) $(am__append_33) \
	$(am__append_35)
noinst_LTLIBRARIES = libcompat.la $(am__append_6)
@HAVE_EXPLICIT_BZERO_FALSE@libcompatnoopt_la_CFLAGS = -O0
@HAVE_EXPLICIT_BZERO_FALSE@libcompatnoopt_la_SOURCES =  \
@HAVE_EXPLICIT_BZERO_FALSE@	$(am__append_7) $(am__append_8)

# other compatibility functions
libcompat_la_SOURCES = $(am__append_9) $(am__append_10) \
	$(am__append_11) $(am__append_12) $(am__append_13) \
	$(am__append_14) $(am__append_15) $(am__append_16) \
	$(am__append_17) $(am__append_18) $(am__append_19) \
	$(am__append_20) $(am__append_21) $(am__append_22) \
	$(am__append_23) $(am__append_24) $(am__append_25) \
	$(am__append_26) $(am__append_27) $(am__append_28) \
	$(am__append_29) $(am__append_30) $(am__append_31) \
	$(am__append_32)
libcompat_la_LIBADD = $(PLATFORM_LDADD)

# rc4
noinst_HEADERS = compat/arc4random.h compat/arc4random_aix.h \
	compat/arc4random_freebsd.h compat/arc4random_hpux.h \
	compat/arc4random_linux.h compat/arc4random_netbsd.h \
	compat/arc4random_osx.h compat/arc4random_solaris.h \







|
|













|
<







1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022

1023
1024
1025
1026
1027
1028
1029
	$(ASM_X86_64_ELF) $(ASM_X86_64_MACOSX)
BUILT_SOURCES = crypto_portable.sym
CLEANFILES = crypto_portable.sym
libcrypto_la_LDFLAGS = -version-info @LIBCRYPTO_VERSION@ -no-undefined -export-symbols crypto_portable.sym
libcrypto_la_LIBADD = libcompat.la $(am__append_1)
libcrypto_la_CPPFLAGS = $(AM_CPPFLAGS) -DLIBRESSL_INTERNAL \
	-DOPENSSL_NO_HW_PADLOCK $(am__append_2) $(am__append_3) \
	$(am__append_4) $(am__append_5) $(am__append_32) \
	$(am__append_34)
noinst_LTLIBRARIES = libcompat.la $(am__append_6)
@HAVE_EXPLICIT_BZERO_FALSE@libcompatnoopt_la_CFLAGS = -O0
@HAVE_EXPLICIT_BZERO_FALSE@libcompatnoopt_la_SOURCES =  \
@HAVE_EXPLICIT_BZERO_FALSE@	$(am__append_7) $(am__append_8)

# other compatibility functions
libcompat_la_SOURCES = $(am__append_9) $(am__append_10) \
	$(am__append_11) $(am__append_12) $(am__append_13) \
	$(am__append_14) $(am__append_15) $(am__append_16) \
	$(am__append_17) $(am__append_18) $(am__append_19) \
	$(am__append_20) $(am__append_21) $(am__append_22) \
	$(am__append_23) $(am__append_24) $(am__append_25) \
	$(am__append_26) $(am__append_27) $(am__append_28) \
	$(am__append_29) $(am__append_30) $(am__append_31)

libcompat_la_LIBADD = $(PLATFORM_LDADD)

# rc4
noinst_HEADERS = compat/arc4random.h compat/arc4random_aix.h \
	compat/arc4random_freebsd.h compat/arc4random_hpux.h \
	compat/arc4random_linux.h compat/arc4random_netbsd.h \
	compat/arc4random_osx.h compat/arc4random_solaris.h \
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174

1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191

1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
# ui

# whrlpool

# x509

# x509v3
libcrypto_la_SOURCES = $(am__append_34) $(am__append_36) \
	$(am__append_37) cpt_err.c cryptlib.c cversion.c ex_data.c \
	malloc-wrapper.c mem_clr.c mem_dbg.c o_init.c o_str.c o_time.c \
	aes/aes_cfb.c aes/aes_ctr.c aes/aes_ecb.c aes/aes_ige.c \
	aes/aes_misc.c aes/aes_ofb.c aes/aes_wrap.c asn1/a_bitstr.c \
	asn1/a_bool.c asn1/a_bytes.c asn1/a_d2i_fp.c asn1/a_digest.c \
	asn1/a_dup.c asn1/a_enum.c asn1/a_i2d_fp.c asn1/a_int.c \
	asn1/a_mbstr.c asn1/a_object.c asn1/a_octet.c asn1/a_print.c \
	asn1/a_set.c asn1/a_sign.c asn1/a_strex.c asn1/a_strnid.c \
	asn1/a_time.c asn1/a_time_tm.c asn1/a_type.c asn1/a_utf8.c \
	asn1/a_verify.c asn1/ameth_lib.c asn1/asn1_err.c \
	asn1/asn1_gen.c asn1/asn1_lib.c asn1/asn1_par.c \
	asn1/asn_mime.c asn1/asn_moid.c asn1/asn_pack.c \
	asn1/bio_asn1.c asn1/bio_ndef.c asn1/d2i_pr.c asn1/d2i_pu.c \
	asn1/evp_asn1.c asn1/f_enum.c asn1/f_int.c asn1/f_string.c \
	asn1/i2d_pr.c asn1/i2d_pu.c asn1/n_pkey.c asn1/nsseq.c \
	asn1/p5_pbe.c asn1/p5_pbev2.c asn1/p8_pkey.c asn1/t_bitst.c \
	asn1/t_crl.c asn1/t_pkey.c asn1/t_req.c asn1/t_spki.c \
	asn1/t_x509.c asn1/t_x509a.c asn1/tasn_dec.c asn1/tasn_enc.c \
	asn1/tasn_fre.c asn1/tasn_new.c asn1/tasn_prn.c \
	asn1/tasn_typ.c asn1/tasn_utl.c asn1/x_algor.c asn1/x_attrib.c \
	asn1/x_bignum.c asn1/x_crl.c asn1/x_exten.c asn1/x_info.c \
	asn1/x_long.c asn1/x_name.c asn1/x_nx509.c asn1/x_pkey.c \
	asn1/x_pubkey.c asn1/x_req.c asn1/x_sig.c asn1/x_spki.c \
	asn1/x_val.c asn1/x_x509.c asn1/x_x509a.c bf/bf_cfb64.c \
	bf/bf_ecb.c bf/bf_enc.c bf/bf_ofb64.c bf/bf_skey.c \
	bio/b_dump.c $(am__append_38) bio/b_print.c bio/b_sock.c \
	$(am__append_39) bio/bf_buff.c bio/bf_nbio.c bio/bf_null.c \
	bio/bio_cb.c bio/bio_err.c bio/bio_lib.c bio/bss_acpt.c \
	bio/bss_bio.c bio/bss_conn.c bio/bss_dgram.c bio/bss_fd.c \
	bio/bss_file.c $(am__append_40) bio/bss_mem.c bio/bss_null.c \
	bio/bss_sock.c bn/bn_add.c bn/bn_asm.c bn/bn_blind.c \
	bn/bn_const.c bn/bn_ctx.c bn/bn_depr.c bn/bn_div.c bn/bn_err.c \
	bn/bn_exp.c bn/bn_exp2.c bn/bn_gcd.c bn/bn_gf2m.c bn/bn_kron.c \
	bn/bn_lib.c bn/bn_mod.c bn/bn_mont.c bn/bn_mpi.c bn/bn_mul.c \

	bn/bn_nist.c bn/bn_prime.c bn/bn_print.c bn/bn_rand.c \
	bn/bn_recp.c bn/bn_shift.c bn/bn_sqr.c bn/bn_sqrt.c \
	bn/bn_word.c bn/bn_x931p.c buffer/buf_err.c buffer/buf_str.c \
	buffer/buffer.c camellia/cmll_cfb.c camellia/cmll_ctr.c \
	camellia/cmll_ecb.c camellia/cmll_misc.c camellia/cmll_ofb.c \
	cast/c_cfb64.c cast/c_ecb.c cast/c_enc.c cast/c_ofb64.c \
	cast/c_skey.c chacha/chacha.c cmac/cm_ameth.c cmac/cm_pmeth.c \
	cmac/cmac.c comp/c_rle.c comp/c_zlib.c comp/comp_err.c \
	comp/comp_lib.c conf/conf_api.c conf/conf_def.c \
	conf/conf_err.c conf/conf_lib.c conf/conf_mall.c \
	conf/conf_mod.c conf/conf_sap.c \
	curve25519/curve25519-generic.c curve25519/curve25519.c \
	des/cbc_cksm.c des/cbc_enc.c des/cfb64ede.c des/cfb64enc.c \
	des/cfb_enc.c des/des_enc.c des/ecb3_enc.c des/ecb_enc.c \
	des/ede_cbcm_enc.c des/enc_read.c des/enc_writ.c des/fcrypt.c \
	des/fcrypt_b.c des/ofb64ede.c des/ofb64enc.c des/ofb_enc.c \
	des/pcbc_enc.c des/qud_cksm.c des/rand_key.c des/set_key.c \

	des/str2key.c des/xcbc_enc.c dh/dh_ameth.c dh/dh_asn1.c \
	dh/dh_check.c dh/dh_depr.c dh/dh_err.c dh/dh_gen.c dh/dh_key.c \
	dh/dh_lib.c dh/dh_pmeth.c dh/dh_prn.c dsa/dsa_ameth.c \
	dsa/dsa_asn1.c dsa/dsa_depr.c dsa/dsa_err.c dsa/dsa_gen.c \
	dsa/dsa_key.c dsa/dsa_lib.c dsa/dsa_ossl.c dsa/dsa_pmeth.c \
	dsa/dsa_prn.c dsa/dsa_sign.c dsa/dsa_vrf.c dso/dso_dlfcn.c \
	dso/dso_err.c dso/dso_lib.c dso/dso_null.c dso/dso_openssl.c \
	ec/ec2_mult.c ec/ec2_oct.c ec/ec2_smpl.c ec/ec_ameth.c \
	ec/ec_asn1.c ec/ec_check.c ec/ec_curve.c ec/ec_cvt.c \
	ec/ec_err.c ec/ec_key.c ec/ec_lib.c ec/ec_mult.c ec/ec_oct.c \
	ec/ec_pmeth.c ec/ec_print.c ec/eck_prn.c ec/ecp_mont.c \
	ec/ecp_nist.c ec/ecp_oct.c ec/ecp_smpl.c ecdh/ech_err.c \
	ecdh/ech_key.c ecdh/ech_lib.c ecdsa/ecs_asn1.c ecdsa/ecs_err.c \
	ecdsa/ecs_lib.c ecdsa/ecs_ossl.c ecdsa/ecs_sign.c \
	ecdsa/ecs_vrf.c engine/eng_all.c engine/eng_cnf.c \
	engine/eng_ctrl.c engine/eng_dyn.c engine/eng_err.c \
	engine/eng_fat.c engine/eng_init.c engine/eng_lib.c \
	engine/eng_list.c engine/eng_openssl.c engine/eng_pkey.c \
	engine/eng_table.c engine/tb_asnmth.c engine/tb_cipher.c \
	engine/tb_dh.c engine/tb_digest.c engine/tb_dsa.c \







|
|
|
|
|
|
|
|
|
|
|















|
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
|
|
<
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
|
|
|
|
|







1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184

1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
# ui

# whrlpool

# x509

# x509v3
libcrypto_la_SOURCES = $(am__append_33) $(am__append_35) \
	$(am__append_36) cpt_err.c cryptlib.c crypto_init.c cversion.c \
	ex_data.c malloc-wrapper.c mem_clr.c mem_dbg.c o_init.c \
	o_str.c o_time.c aes/aes_cfb.c aes/aes_ctr.c aes/aes_ecb.c \
	aes/aes_ige.c aes/aes_misc.c aes/aes_ofb.c aes/aes_wrap.c \
	asn1/a_bitstr.c asn1/a_bool.c asn1/a_bytes.c asn1/a_d2i_fp.c \
	asn1/a_digest.c asn1/a_dup.c asn1/a_enum.c asn1/a_i2d_fp.c \
	asn1/a_int.c asn1/a_mbstr.c asn1/a_object.c asn1/a_octet.c \
	asn1/a_print.c asn1/a_set.c asn1/a_sign.c asn1/a_strex.c \
	asn1/a_strnid.c asn1/a_time.c asn1/a_time_tm.c asn1/a_type.c \
	asn1/a_utf8.c asn1/a_verify.c asn1/ameth_lib.c asn1/asn1_err.c \
	asn1/asn1_gen.c asn1/asn1_lib.c asn1/asn1_par.c \
	asn1/asn_mime.c asn1/asn_moid.c asn1/asn_pack.c \
	asn1/bio_asn1.c asn1/bio_ndef.c asn1/d2i_pr.c asn1/d2i_pu.c \
	asn1/evp_asn1.c asn1/f_enum.c asn1/f_int.c asn1/f_string.c \
	asn1/i2d_pr.c asn1/i2d_pu.c asn1/n_pkey.c asn1/nsseq.c \
	asn1/p5_pbe.c asn1/p5_pbev2.c asn1/p8_pkey.c asn1/t_bitst.c \
	asn1/t_crl.c asn1/t_pkey.c asn1/t_req.c asn1/t_spki.c \
	asn1/t_x509.c asn1/t_x509a.c asn1/tasn_dec.c asn1/tasn_enc.c \
	asn1/tasn_fre.c asn1/tasn_new.c asn1/tasn_prn.c \
	asn1/tasn_typ.c asn1/tasn_utl.c asn1/x_algor.c asn1/x_attrib.c \
	asn1/x_bignum.c asn1/x_crl.c asn1/x_exten.c asn1/x_info.c \
	asn1/x_long.c asn1/x_name.c asn1/x_nx509.c asn1/x_pkey.c \
	asn1/x_pubkey.c asn1/x_req.c asn1/x_sig.c asn1/x_spki.c \
	asn1/x_val.c asn1/x_x509.c asn1/x_x509a.c bf/bf_cfb64.c \
	bf/bf_ecb.c bf/bf_enc.c bf/bf_ofb64.c bf/bf_skey.c \
	bio/b_dump.c $(am__append_37) bio/b_print.c bio/b_sock.c \
	$(am__append_38) bio/bf_buff.c bio/bf_nbio.c bio/bf_null.c \
	bio/bio_cb.c bio/bio_err.c bio/bio_lib.c bio/bio_meth.c \
	bio/bss_acpt.c bio/bss_bio.c bio/bss_conn.c bio/bss_dgram.c \
	bio/bss_fd.c bio/bss_file.c $(am__append_39) bio/bss_mem.c \
	bio/bss_null.c bio/bss_sock.c bn/bn_add.c bn/bn_asm.c \
	bn/bn_blind.c bn/bn_const.c bn/bn_ctx.c bn/bn_depr.c \
	bn/bn_div.c bn/bn_err.c bn/bn_exp.c bn/bn_exp2.c bn/bn_gcd.c \
	bn/bn_gf2m.c bn/bn_kron.c bn/bn_lib.c bn/bn_mod.c bn/bn_mont.c \
	bn/bn_mpi.c bn/bn_mul.c bn/bn_nist.c bn/bn_prime.c \
	bn/bn_print.c bn/bn_rand.c bn/bn_recp.c bn/bn_shift.c \
	bn/bn_sqr.c bn/bn_sqrt.c bn/bn_word.c bn/bn_x931p.c \
	buffer/buf_err.c buffer/buf_str.c buffer/buffer.c \
	camellia/cmll_cfb.c camellia/cmll_ctr.c camellia/cmll_ecb.c \
	camellia/cmll_misc.c camellia/cmll_ofb.c cast/c_cfb64.c \
	cast/c_ecb.c cast/c_enc.c cast/c_ofb64.c cast/c_skey.c \
	chacha/chacha.c cmac/cm_ameth.c cmac/cm_pmeth.c cmac/cmac.c \
	comp/c_rle.c comp/c_zlib.c comp/comp_err.c comp/comp_lib.c \
	conf/conf_api.c conf/conf_def.c conf/conf_err.c \
	conf/conf_lib.c conf/conf_mall.c conf/conf_mod.c \

	conf/conf_sap.c curve25519/curve25519-generic.c \
	curve25519/curve25519.c des/cbc_cksm.c des/cbc_enc.c \
	des/cfb64ede.c des/cfb64enc.c des/cfb_enc.c des/des_enc.c \
	des/ecb3_enc.c des/ecb_enc.c des/ede_cbcm_enc.c des/enc_read.c \
	des/enc_writ.c des/fcrypt.c des/fcrypt_b.c des/ofb64ede.c \
	des/ofb64enc.c des/ofb_enc.c des/pcbc_enc.c des/qud_cksm.c \
	des/rand_key.c des/set_key.c des/str2key.c des/xcbc_enc.c \
	dh/dh_ameth.c dh/dh_asn1.c dh/dh_check.c dh/dh_depr.c \
	dh/dh_err.c dh/dh_gen.c dh/dh_key.c dh/dh_lib.c dh/dh_pmeth.c \
	dh/dh_prn.c dsa/dsa_ameth.c dsa/dsa_asn1.c dsa/dsa_depr.c \
	dsa/dsa_err.c dsa/dsa_gen.c dsa/dsa_key.c dsa/dsa_lib.c \
	dsa/dsa_meth.c dsa/dsa_ossl.c dsa/dsa_pmeth.c dsa/dsa_prn.c \
	dsa/dsa_sign.c dsa/dsa_vrf.c dso/dso_dlfcn.c dso/dso_err.c \
	dso/dso_lib.c dso/dso_null.c dso/dso_openssl.c ec/ec2_mult.c \
	ec/ec2_oct.c ec/ec2_smpl.c ec/ec_ameth.c ec/ec_asn1.c \
	ec/ec_check.c ec/ec_curve.c ec/ec_cvt.c ec/ec_err.c \
	ec/ec_key.c ec/ec_lib.c ec/ec_mult.c ec/ec_oct.c ec/ec_pmeth.c \
	ec/ec_print.c ec/eck_prn.c ec/ecp_mont.c ec/ecp_nist.c \
	ec/ecp_oct.c ec/ecp_smpl.c ecdh/ech_err.c ecdh/ech_key.c \
	ecdh/ech_lib.c ecdsa/ecs_asn1.c ecdsa/ecs_err.c \
	ecdsa/ecs_lib.c ecdsa/ecs_ossl.c ecdsa/ecs_sign.c \
	ecdsa/ecs_vrf.c engine/eng_all.c engine/eng_cnf.c \
	engine/eng_ctrl.c engine/eng_dyn.c engine/eng_err.c \
	engine/eng_fat.c engine/eng_init.c engine/eng_lib.c \
	engine/eng_list.c engine/eng_openssl.c engine/eng_pkey.c \
	engine/eng_table.c engine/tb_asnmth.c engine/tb_cipher.c \
	engine/tb_dh.c engine/tb_digest.c engine/tb_dsa.c \
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275

1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
	pkcs7/pk7_attr.c pkcs7/pk7_doit.c pkcs7/pk7_lib.c \
	pkcs7/pk7_mime.c pkcs7/pk7_smime.c pkcs7/pkcs7err.c \
	poly1305/poly1305.c rand/rand_err.c rand/rand_lib.c \
	rand/randfile.c rc2/rc2_cbc.c rc2/rc2_ecb.c rc2/rc2_skey.c \
	rc2/rc2cfb64.c rc2/rc2ofb64.c ripemd/rmd_dgst.c \
	ripemd/rmd_one.c rsa/rsa_ameth.c rsa/rsa_asn1.c rsa/rsa_chk.c \
	rsa/rsa_crpt.c rsa/rsa_depr.c rsa/rsa_eay.c rsa/rsa_err.c \
	rsa/rsa_gen.c rsa/rsa_lib.c rsa/rsa_none.c rsa/rsa_oaep.c \
	rsa/rsa_pk1.c rsa/rsa_pmeth.c rsa/rsa_prn.c rsa/rsa_pss.c \
	rsa/rsa_saos.c rsa/rsa_sign.c rsa/rsa_x931.c sha/sha1_one.c \
	sha/sha1dgst.c sha/sha256.c sha/sha512.c stack/stack.c \
	ts/ts_asn1.c ts/ts_conf.c ts/ts_err.c ts/ts_lib.c \
	ts/ts_req_print.c ts/ts_req_utils.c ts/ts_rsp_print.c \
	ts/ts_rsp_sign.c ts/ts_rsp_utils.c ts/ts_rsp_verify.c \
	ts/ts_verify_ctx.c txt_db/txt_db.c ui/ui_err.c ui/ui_lib.c \
	$(am__append_41) $(am__append_42) ui/ui_util.c \
	whrlpool/wp_dgst.c x509/by_dir.c x509/by_file.c x509/by_mem.c \
	x509/x509_att.c x509/x509_cmp.c x509/x509_d2.c x509/x509_def.c \
	x509/x509_err.c x509/x509_ext.c x509/x509_lu.c x509/x509_obj.c \
	x509/x509_r2x.c x509/x509_req.c x509/x509_set.c \
	x509/x509_trs.c x509/x509_txt.c x509/x509_v3.c x509/x509_vfy.c \
	x509/x509_vpm.c x509/x509cset.c x509/x509name.c \

	x509/x509rset.c x509/x509spki.c x509/x509type.c x509/x_all.c \
	x509v3/pcy_cache.c x509v3/pcy_data.c x509v3/pcy_lib.c \
	x509v3/pcy_map.c x509v3/pcy_node.c x509v3/pcy_tree.c \
	x509v3/v3_akey.c x509v3/v3_akeya.c x509v3/v3_alt.c \
	x509v3/v3_bcons.c x509v3/v3_bitst.c x509v3/v3_conf.c \
	x509v3/v3_cpols.c x509v3/v3_crld.c x509v3/v3_enum.c \
	x509v3/v3_extku.c x509v3/v3_genn.c x509v3/v3_ia5.c \
	x509v3/v3_info.c x509v3/v3_int.c x509v3/v3_lib.c \
	x509v3/v3_ncons.c x509v3/v3_ocsp.c x509v3/v3_pci.c \
	x509v3/v3_pcia.c x509v3/v3_pcons.c x509v3/v3_pku.c \
	x509v3/v3_pmaps.c x509v3/v3_prn.c x509v3/v3_purp.c \
	x509v3/v3_skey.c x509v3/v3_sxnet.c x509v3/v3_utl.c \
	x509v3/v3err.c

# chacha

# poly1305
EXTRA_libcrypto_la_SOURCES = chacha/chacha-merged.c des/ncbc_enc.c \
	poly1305/poly1305-donna.c
ASM_X86_64_ELF = aes/aes-elf-x86_64.S aes/bsaes-elf-x86_64.S \







|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
|
|
|
|
<







1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288

1289
1290
1291
1292
1293
1294
1295
	pkcs7/pk7_attr.c pkcs7/pk7_doit.c pkcs7/pk7_lib.c \
	pkcs7/pk7_mime.c pkcs7/pk7_smime.c pkcs7/pkcs7err.c \
	poly1305/poly1305.c rand/rand_err.c rand/rand_lib.c \
	rand/randfile.c rc2/rc2_cbc.c rc2/rc2_ecb.c rc2/rc2_skey.c \
	rc2/rc2cfb64.c rc2/rc2ofb64.c ripemd/rmd_dgst.c \
	ripemd/rmd_one.c rsa/rsa_ameth.c rsa/rsa_asn1.c rsa/rsa_chk.c \
	rsa/rsa_crpt.c rsa/rsa_depr.c rsa/rsa_eay.c rsa/rsa_err.c \
	rsa/rsa_gen.c rsa/rsa_lib.c rsa/rsa_meth.c rsa/rsa_none.c \
	rsa/rsa_oaep.c rsa/rsa_pk1.c rsa/rsa_pmeth.c rsa/rsa_prn.c \
	rsa/rsa_pss.c rsa/rsa_saos.c rsa/rsa_sign.c rsa/rsa_x931.c \
	sha/sha1_one.c sha/sha1dgst.c sha/sha256.c sha/sha512.c \
	stack/stack.c ts/ts_asn1.c ts/ts_conf.c ts/ts_err.c \
	ts/ts_lib.c ts/ts_req_print.c ts/ts_req_utils.c \
	ts/ts_rsp_print.c ts/ts_rsp_sign.c ts/ts_rsp_utils.c \
	ts/ts_rsp_verify.c ts/ts_verify_ctx.c txt_db/txt_db.c \
	ui/ui_err.c ui/ui_lib.c $(am__append_40) $(am__append_41) \
	ui/ui_util.c whrlpool/wp_dgst.c x509/by_dir.c x509/by_file.c \
	x509/by_mem.c x509/x509_att.c x509/x509_cmp.c x509/x509_d2.c \
	x509/x509_def.c x509/x509_err.c x509/x509_ext.c x509/x509_lu.c \
	x509/x509_obj.c x509/x509_r2x.c x509/x509_req.c \
	x509/x509_set.c x509/x509_trs.c x509/x509_txt.c x509/x509_v3.c \
	x509/x509_vfy.c x509/x509_vpm.c x509/x509cset.c \
	x509/x509name.c x509/x509rset.c x509/x509spki.c \
	x509/x509type.c x509/x_all.c x509v3/pcy_cache.c \
	x509v3/pcy_data.c x509v3/pcy_lib.c x509v3/pcy_map.c \
	x509v3/pcy_node.c x509v3/pcy_tree.c x509v3/v3_akey.c \
	x509v3/v3_akeya.c x509v3/v3_alt.c x509v3/v3_bcons.c \
	x509v3/v3_bitst.c x509v3/v3_conf.c x509v3/v3_cpols.c \
	x509v3/v3_crld.c x509v3/v3_enum.c x509v3/v3_extku.c \
	x509v3/v3_genn.c x509v3/v3_ia5.c x509v3/v3_info.c \
	x509v3/v3_int.c x509v3/v3_lib.c x509v3/v3_ncons.c \
	x509v3/v3_ocsp.c x509v3/v3_pci.c x509v3/v3_pcia.c \
	x509v3/v3_pcons.c x509v3/v3_pku.c x509v3/v3_pmaps.c \
	x509v3/v3_prn.c x509v3/v3_purp.c x509v3/v3_skey.c \
	x509v3/v3_sxnet.c x509v3/v3_utl.c x509v3/v3err.c


# chacha

# poly1305
EXTRA_libcrypto_la_SOURCES = chacha/chacha-merged.c des/ncbc_enc.c \
	poly1305/poly1305-donna.c
ASM_X86_64_ELF = aes/aes-elf-x86_64.S aes/bsaes-elf-x86_64.S \
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
	compat/$(DEPDIR)/$(am__dirstamp)
compat/bsd-asprintf.lo: compat/$(am__dirstamp) \
	compat/$(DEPDIR)/$(am__dirstamp)
compat/freezero.lo: compat/$(am__dirstamp) \
	compat/$(DEPDIR)/$(am__dirstamp)
compat/getpagesize.lo: compat/$(am__dirstamp) \
	compat/$(DEPDIR)/$(am__dirstamp)
compat/inet_pton.lo: compat/$(am__dirstamp) \
	compat/$(DEPDIR)/$(am__dirstamp)
compat/timegm.lo: compat/$(am__dirstamp) \
	compat/$(DEPDIR)/$(am__dirstamp)
compat/reallocarray.lo: compat/$(am__dirstamp) \
	compat/$(DEPDIR)/$(am__dirstamp)
compat/recallocarray.lo: compat/$(am__dirstamp) \
	compat/$(DEPDIR)/$(am__dirstamp)
compat/timingsafe_memcmp.lo: compat/$(am__dirstamp) \







<
<







1411
1412
1413
1414
1415
1416
1417


1418
1419
1420
1421
1422
1423
1424
	compat/$(DEPDIR)/$(am__dirstamp)
compat/bsd-asprintf.lo: compat/$(am__dirstamp) \
	compat/$(DEPDIR)/$(am__dirstamp)
compat/freezero.lo: compat/$(am__dirstamp) \
	compat/$(DEPDIR)/$(am__dirstamp)
compat/getpagesize.lo: compat/$(am__dirstamp) \
	compat/$(DEPDIR)/$(am__dirstamp)


compat/timegm.lo: compat/$(am__dirstamp) \
	compat/$(DEPDIR)/$(am__dirstamp)
compat/reallocarray.lo: compat/$(am__dirstamp) \
	compat/$(DEPDIR)/$(am__dirstamp)
compat/recallocarray.lo: compat/$(am__dirstamp) \
	compat/$(DEPDIR)/$(am__dirstamp)
compat/timingsafe_memcmp.lo: compat/$(am__dirstamp) \
1805
1806
1807
1808
1809
1810
1811


1812
1813
1814
1815
1816
1817
1818
	bio/$(DEPDIR)/$(am__dirstamp)
bio/libcrypto_la-bio_cb.lo: bio/$(am__dirstamp) \
	bio/$(DEPDIR)/$(am__dirstamp)
bio/libcrypto_la-bio_err.lo: bio/$(am__dirstamp) \
	bio/$(DEPDIR)/$(am__dirstamp)
bio/libcrypto_la-bio_lib.lo: bio/$(am__dirstamp) \
	bio/$(DEPDIR)/$(am__dirstamp)


bio/libcrypto_la-bss_acpt.lo: bio/$(am__dirstamp) \
	bio/$(DEPDIR)/$(am__dirstamp)
bio/libcrypto_la-bss_bio.lo: bio/$(am__dirstamp) \
	bio/$(DEPDIR)/$(am__dirstamp)
bio/libcrypto_la-bss_conn.lo: bio/$(am__dirstamp) \
	bio/$(DEPDIR)/$(am__dirstamp)
bio/libcrypto_la-bss_dgram.lo: bio/$(am__dirstamp) \







>
>







1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
	bio/$(DEPDIR)/$(am__dirstamp)
bio/libcrypto_la-bio_cb.lo: bio/$(am__dirstamp) \
	bio/$(DEPDIR)/$(am__dirstamp)
bio/libcrypto_la-bio_err.lo: bio/$(am__dirstamp) \
	bio/$(DEPDIR)/$(am__dirstamp)
bio/libcrypto_la-bio_lib.lo: bio/$(am__dirstamp) \
	bio/$(DEPDIR)/$(am__dirstamp)
bio/libcrypto_la-bio_meth.lo: bio/$(am__dirstamp) \
	bio/$(DEPDIR)/$(am__dirstamp)
bio/libcrypto_la-bss_acpt.lo: bio/$(am__dirstamp) \
	bio/$(DEPDIR)/$(am__dirstamp)
bio/libcrypto_la-bss_bio.lo: bio/$(am__dirstamp) \
	bio/$(DEPDIR)/$(am__dirstamp)
bio/libcrypto_la-bss_conn.lo: bio/$(am__dirstamp) \
	bio/$(DEPDIR)/$(am__dirstamp)
bio/libcrypto_la-bss_dgram.lo: bio/$(am__dirstamp) \
2079
2080
2081
2082
2083
2084
2085


2086
2087
2088
2089
2090
2091
2092
dsa/libcrypto_la-dsa_err.lo: dsa/$(am__dirstamp) \
	dsa/$(DEPDIR)/$(am__dirstamp)
dsa/libcrypto_la-dsa_gen.lo: dsa/$(am__dirstamp) \
	dsa/$(DEPDIR)/$(am__dirstamp)
dsa/libcrypto_la-dsa_key.lo: dsa/$(am__dirstamp) \
	dsa/$(DEPDIR)/$(am__dirstamp)
dsa/libcrypto_la-dsa_lib.lo: dsa/$(am__dirstamp) \


	dsa/$(DEPDIR)/$(am__dirstamp)
dsa/libcrypto_la-dsa_ossl.lo: dsa/$(am__dirstamp) \
	dsa/$(DEPDIR)/$(am__dirstamp)
dsa/libcrypto_la-dsa_pmeth.lo: dsa/$(am__dirstamp) \
	dsa/$(DEPDIR)/$(am__dirstamp)
dsa/libcrypto_la-dsa_prn.lo: dsa/$(am__dirstamp) \
	dsa/$(DEPDIR)/$(am__dirstamp)







>
>







2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
dsa/libcrypto_la-dsa_err.lo: dsa/$(am__dirstamp) \
	dsa/$(DEPDIR)/$(am__dirstamp)
dsa/libcrypto_la-dsa_gen.lo: dsa/$(am__dirstamp) \
	dsa/$(DEPDIR)/$(am__dirstamp)
dsa/libcrypto_la-dsa_key.lo: dsa/$(am__dirstamp) \
	dsa/$(DEPDIR)/$(am__dirstamp)
dsa/libcrypto_la-dsa_lib.lo: dsa/$(am__dirstamp) \
	dsa/$(DEPDIR)/$(am__dirstamp)
dsa/libcrypto_la-dsa_meth.lo: dsa/$(am__dirstamp) \
	dsa/$(DEPDIR)/$(am__dirstamp)
dsa/libcrypto_la-dsa_ossl.lo: dsa/$(am__dirstamp) \
	dsa/$(DEPDIR)/$(am__dirstamp)
dsa/libcrypto_la-dsa_pmeth.lo: dsa/$(am__dirstamp) \
	dsa/$(DEPDIR)/$(am__dirstamp)
dsa/libcrypto_la-dsa_prn.lo: dsa/$(am__dirstamp) \
	dsa/$(DEPDIR)/$(am__dirstamp)
2674
2675
2676
2677
2678
2679
2680


2681
2682
2683
2684
2685
2686
2687
	rsa/$(DEPDIR)/$(am__dirstamp)
rsa/libcrypto_la-rsa_err.lo: rsa/$(am__dirstamp) \
	rsa/$(DEPDIR)/$(am__dirstamp)
rsa/libcrypto_la-rsa_gen.lo: rsa/$(am__dirstamp) \
	rsa/$(DEPDIR)/$(am__dirstamp)
rsa/libcrypto_la-rsa_lib.lo: rsa/$(am__dirstamp) \
	rsa/$(DEPDIR)/$(am__dirstamp)


rsa/libcrypto_la-rsa_none.lo: rsa/$(am__dirstamp) \
	rsa/$(DEPDIR)/$(am__dirstamp)
rsa/libcrypto_la-rsa_oaep.lo: rsa/$(am__dirstamp) \
	rsa/$(DEPDIR)/$(am__dirstamp)
rsa/libcrypto_la-rsa_pk1.lo: rsa/$(am__dirstamp) \
	rsa/$(DEPDIR)/$(am__dirstamp)
rsa/libcrypto_la-rsa_pmeth.lo: rsa/$(am__dirstamp) \







>
>







2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
	rsa/$(DEPDIR)/$(am__dirstamp)
rsa/libcrypto_la-rsa_err.lo: rsa/$(am__dirstamp) \
	rsa/$(DEPDIR)/$(am__dirstamp)
rsa/libcrypto_la-rsa_gen.lo: rsa/$(am__dirstamp) \
	rsa/$(DEPDIR)/$(am__dirstamp)
rsa/libcrypto_la-rsa_lib.lo: rsa/$(am__dirstamp) \
	rsa/$(DEPDIR)/$(am__dirstamp)
rsa/libcrypto_la-rsa_meth.lo: rsa/$(am__dirstamp) \
	rsa/$(DEPDIR)/$(am__dirstamp)
rsa/libcrypto_la-rsa_none.lo: rsa/$(am__dirstamp) \
	rsa/$(DEPDIR)/$(am__dirstamp)
rsa/libcrypto_la-rsa_oaep.lo: rsa/$(am__dirstamp) \
	rsa/$(DEPDIR)/$(am__dirstamp)
rsa/libcrypto_la-rsa_pk1.lo: rsa/$(am__dirstamp) \
	rsa/$(DEPDIR)/$(am__dirstamp)
rsa/libcrypto_la-rsa_pmeth.lo: rsa/$(am__dirstamp) \
3014
3015
3016
3017
3018
3019
3020

3021
3022
3023
3024
3025
3026
3027
distclean-compile:
	-rm -f *.tab.c

@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcrypto_la-cpt_err.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcrypto_la-cpuid-elf-x86_64.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcrypto_la-cpuid-macosx-x86_64.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcrypto_la-cryptlib.Plo@am__quote@

@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcrypto_la-cversion.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcrypto_la-ex_data.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcrypto_la-malloc-wrapper.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcrypto_la-mem_clr.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcrypto_la-mem_dbg.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcrypto_la-o_init.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcrypto_la-o_str.Plo@am__quote@







>







3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
distclean-compile:
	-rm -f *.tab.c

@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcrypto_la-cpt_err.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcrypto_la-cpuid-elf-x86_64.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcrypto_la-cpuid-macosx-x86_64.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcrypto_la-cryptlib.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcrypto_la-crypto_init.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcrypto_la-cversion.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcrypto_la-ex_data.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcrypto_la-malloc-wrapper.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcrypto_la-mem_clr.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcrypto_la-mem_dbg.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcrypto_la-o_init.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcrypto_la-o_str.Plo@am__quote@
3133
3134
3135
3136
3137
3138
3139

3140
3141
3142
3143
3144
3145
3146
@AMDEP_TRUE@@am__include@ @am__quote@bio/$(DEPDIR)/libcrypto_la-b_win.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@bio/$(DEPDIR)/libcrypto_la-bf_buff.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@bio/$(DEPDIR)/libcrypto_la-bf_nbio.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@bio/$(DEPDIR)/libcrypto_la-bf_null.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@bio/$(DEPDIR)/libcrypto_la-bio_cb.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@bio/$(DEPDIR)/libcrypto_la-bio_err.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@bio/$(DEPDIR)/libcrypto_la-bio_lib.Plo@am__quote@

@AMDEP_TRUE@@am__include@ @am__quote@bio/$(DEPDIR)/libcrypto_la-bss_acpt.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@bio/$(DEPDIR)/libcrypto_la-bss_bio.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@bio/$(DEPDIR)/libcrypto_la-bss_conn.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@bio/$(DEPDIR)/libcrypto_la-bss_dgram.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@bio/$(DEPDIR)/libcrypto_la-bss_fd.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@bio/$(DEPDIR)/libcrypto_la-bss_file.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@bio/$(DEPDIR)/libcrypto_la-bss_log.Plo@am__quote@







>







3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
@AMDEP_TRUE@@am__include@ @am__quote@bio/$(DEPDIR)/libcrypto_la-b_win.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@bio/$(DEPDIR)/libcrypto_la-bf_buff.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@bio/$(DEPDIR)/libcrypto_la-bf_nbio.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@bio/$(DEPDIR)/libcrypto_la-bf_null.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@bio/$(DEPDIR)/libcrypto_la-bio_cb.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@bio/$(DEPDIR)/libcrypto_la-bio_err.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@bio/$(DEPDIR)/libcrypto_la-bio_lib.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@bio/$(DEPDIR)/libcrypto_la-bio_meth.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@bio/$(DEPDIR)/libcrypto_la-bss_acpt.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@bio/$(DEPDIR)/libcrypto_la-bss_bio.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@bio/$(DEPDIR)/libcrypto_la-bss_conn.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@bio/$(DEPDIR)/libcrypto_la-bss_dgram.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@bio/$(DEPDIR)/libcrypto_la-bss_fd.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@bio/$(DEPDIR)/libcrypto_la-bss_file.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@bio/$(DEPDIR)/libcrypto_la-bss_log.Plo@am__quote@
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/getentropy_hpux.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/getentropy_linux.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/getentropy_netbsd.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/getentropy_osx.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/getentropy_solaris.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/getentropy_win.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/getpagesize.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/inet_pton.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/libcompatnoopt_la-explicit_bzero.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/libcompatnoopt_la-explicit_bzero_win.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/posix_win.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/reallocarray.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/recallocarray.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/strlcat.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/strlcpy.Plo@am__quote@







<







3224
3225
3226
3227
3228
3229
3230

3231
3232
3233
3234
3235
3236
3237
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/getentropy_hpux.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/getentropy_linux.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/getentropy_netbsd.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/getentropy_osx.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/getentropy_solaris.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/getentropy_win.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/getpagesize.Plo@am__quote@

@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/libcompatnoopt_la-explicit_bzero.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/libcompatnoopt_la-explicit_bzero_win.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/posix_win.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/reallocarray.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/recallocarray.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/strlcat.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/strlcpy.Plo@am__quote@
3281
3282
3283
3284
3285
3286
3287

3288
3289
3290
3291
3292
3293
3294
@AMDEP_TRUE@@am__include@ @am__quote@dsa/$(DEPDIR)/libcrypto_la-dsa_ameth.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@dsa/$(DEPDIR)/libcrypto_la-dsa_asn1.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@dsa/$(DEPDIR)/libcrypto_la-dsa_depr.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@dsa/$(DEPDIR)/libcrypto_la-dsa_err.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@dsa/$(DEPDIR)/libcrypto_la-dsa_gen.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@dsa/$(DEPDIR)/libcrypto_la-dsa_key.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@dsa/$(DEPDIR)/libcrypto_la-dsa_lib.Plo@am__quote@

@AMDEP_TRUE@@am__include@ @am__quote@dsa/$(DEPDIR)/libcrypto_la-dsa_ossl.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@dsa/$(DEPDIR)/libcrypto_la-dsa_pmeth.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@dsa/$(DEPDIR)/libcrypto_la-dsa_prn.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@dsa/$(DEPDIR)/libcrypto_la-dsa_sign.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@dsa/$(DEPDIR)/libcrypto_la-dsa_vrf.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@dso/$(DEPDIR)/libcrypto_la-dso_dlfcn.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@dso/$(DEPDIR)/libcrypto_la-dso_err.Plo@am__quote@







>







3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
@AMDEP_TRUE@@am__include@ @am__quote@dsa/$(DEPDIR)/libcrypto_la-dsa_ameth.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@dsa/$(DEPDIR)/libcrypto_la-dsa_asn1.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@dsa/$(DEPDIR)/libcrypto_la-dsa_depr.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@dsa/$(DEPDIR)/libcrypto_la-dsa_err.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@dsa/$(DEPDIR)/libcrypto_la-dsa_gen.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@dsa/$(DEPDIR)/libcrypto_la-dsa_key.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@dsa/$(DEPDIR)/libcrypto_la-dsa_lib.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@dsa/$(DEPDIR)/libcrypto_la-dsa_meth.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@dsa/$(DEPDIR)/libcrypto_la-dsa_ossl.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@dsa/$(DEPDIR)/libcrypto_la-dsa_pmeth.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@dsa/$(DEPDIR)/libcrypto_la-dsa_prn.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@dsa/$(DEPDIR)/libcrypto_la-dsa_sign.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@dsa/$(DEPDIR)/libcrypto_la-dsa_vrf.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@dso/$(DEPDIR)/libcrypto_la-dso_dlfcn.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@dso/$(DEPDIR)/libcrypto_la-dso_err.Plo@am__quote@
3520
3521
3522
3523
3524
3525
3526

3527
3528
3529
3530
3531
3532
3533
@AMDEP_TRUE@@am__include@ @am__quote@rsa/$(DEPDIR)/libcrypto_la-rsa_chk.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@rsa/$(DEPDIR)/libcrypto_la-rsa_crpt.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@rsa/$(DEPDIR)/libcrypto_la-rsa_depr.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@rsa/$(DEPDIR)/libcrypto_la-rsa_eay.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@rsa/$(DEPDIR)/libcrypto_la-rsa_err.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@rsa/$(DEPDIR)/libcrypto_la-rsa_gen.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@rsa/$(DEPDIR)/libcrypto_la-rsa_lib.Plo@am__quote@

@AMDEP_TRUE@@am__include@ @am__quote@rsa/$(DEPDIR)/libcrypto_la-rsa_none.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@rsa/$(DEPDIR)/libcrypto_la-rsa_oaep.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@rsa/$(DEPDIR)/libcrypto_la-rsa_pk1.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@rsa/$(DEPDIR)/libcrypto_la-rsa_pmeth.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@rsa/$(DEPDIR)/libcrypto_la-rsa_prn.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@rsa/$(DEPDIR)/libcrypto_la-rsa_pss.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@rsa/$(DEPDIR)/libcrypto_la-rsa_saos.Plo@am__quote@







>







3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
@AMDEP_TRUE@@am__include@ @am__quote@rsa/$(DEPDIR)/libcrypto_la-rsa_chk.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@rsa/$(DEPDIR)/libcrypto_la-rsa_crpt.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@rsa/$(DEPDIR)/libcrypto_la-rsa_depr.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@rsa/$(DEPDIR)/libcrypto_la-rsa_eay.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@rsa/$(DEPDIR)/libcrypto_la-rsa_err.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@rsa/$(DEPDIR)/libcrypto_la-rsa_gen.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@rsa/$(DEPDIR)/libcrypto_la-rsa_lib.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@rsa/$(DEPDIR)/libcrypto_la-rsa_meth.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@rsa/$(DEPDIR)/libcrypto_la-rsa_none.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@rsa/$(DEPDIR)/libcrypto_la-rsa_oaep.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@rsa/$(DEPDIR)/libcrypto_la-rsa_pk1.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@rsa/$(DEPDIR)/libcrypto_la-rsa_pmeth.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@rsa/$(DEPDIR)/libcrypto_la-rsa_prn.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@rsa/$(DEPDIR)/libcrypto_la-rsa_pss.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@rsa/$(DEPDIR)/libcrypto_la-rsa_saos.Plo@am__quote@
4012
4013
4014
4015
4016
4017
4018







4019
4020
4021
4022
4023
4024
4025
libcrypto_la-cryptlib.lo: cryptlib.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcrypto_la-cryptlib.lo -MD -MP -MF $(DEPDIR)/libcrypto_la-cryptlib.Tpo -c -o libcrypto_la-cryptlib.lo `test -f 'cryptlib.c' || echo '$(srcdir)/'`cryptlib.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcrypto_la-cryptlib.Tpo $(DEPDIR)/libcrypto_la-cryptlib.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='cryptlib.c' object='libcrypto_la-cryptlib.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcrypto_la-cryptlib.lo `test -f 'cryptlib.c' || echo '$(srcdir)/'`cryptlib.c








libcrypto_la-cversion.lo: cversion.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcrypto_la-cversion.lo -MD -MP -MF $(DEPDIR)/libcrypto_la-cversion.Tpo -c -o libcrypto_la-cversion.lo `test -f 'cversion.c' || echo '$(srcdir)/'`cversion.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcrypto_la-cversion.Tpo $(DEPDIR)/libcrypto_la-cversion.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='cversion.c' object='libcrypto_la-cversion.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcrypto_la-cversion.lo `test -f 'cversion.c' || echo '$(srcdir)/'`cversion.c








>
>
>
>
>
>
>







4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
libcrypto_la-cryptlib.lo: cryptlib.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcrypto_la-cryptlib.lo -MD -MP -MF $(DEPDIR)/libcrypto_la-cryptlib.Tpo -c -o libcrypto_la-cryptlib.lo `test -f 'cryptlib.c' || echo '$(srcdir)/'`cryptlib.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcrypto_la-cryptlib.Tpo $(DEPDIR)/libcrypto_la-cryptlib.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='cryptlib.c' object='libcrypto_la-cryptlib.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcrypto_la-cryptlib.lo `test -f 'cryptlib.c' || echo '$(srcdir)/'`cryptlib.c

libcrypto_la-crypto_init.lo: crypto_init.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcrypto_la-crypto_init.lo -MD -MP -MF $(DEPDIR)/libcrypto_la-crypto_init.Tpo -c -o libcrypto_la-crypto_init.lo `test -f 'crypto_init.c' || echo '$(srcdir)/'`crypto_init.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcrypto_la-crypto_init.Tpo $(DEPDIR)/libcrypto_la-crypto_init.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='crypto_init.c' object='libcrypto_la-crypto_init.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcrypto_la-crypto_init.lo `test -f 'crypto_init.c' || echo '$(srcdir)/'`crypto_init.c

libcrypto_la-cversion.lo: cversion.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcrypto_la-cversion.lo -MD -MP -MF $(DEPDIR)/libcrypto_la-cversion.Tpo -c -o libcrypto_la-cversion.lo `test -f 'cversion.c' || echo '$(srcdir)/'`cversion.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcrypto_la-cversion.Tpo $(DEPDIR)/libcrypto_la-cversion.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='cversion.c' object='libcrypto_la-cversion.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcrypto_la-cversion.lo `test -f 'cversion.c' || echo '$(srcdir)/'`cversion.c

4761
4762
4763
4764
4765
4766
4767







4768
4769
4770
4771
4772
4773
4774
bio/libcrypto_la-bio_lib.lo: bio/bio_lib.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bio/libcrypto_la-bio_lib.lo -MD -MP -MF bio/$(DEPDIR)/libcrypto_la-bio_lib.Tpo -c -o bio/libcrypto_la-bio_lib.lo `test -f 'bio/bio_lib.c' || echo '$(srcdir)/'`bio/bio_lib.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) bio/$(DEPDIR)/libcrypto_la-bio_lib.Tpo bio/$(DEPDIR)/libcrypto_la-bio_lib.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='bio/bio_lib.c' object='bio/libcrypto_la-bio_lib.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bio/libcrypto_la-bio_lib.lo `test -f 'bio/bio_lib.c' || echo '$(srcdir)/'`bio/bio_lib.c








bio/libcrypto_la-bss_acpt.lo: bio/bss_acpt.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bio/libcrypto_la-bss_acpt.lo -MD -MP -MF bio/$(DEPDIR)/libcrypto_la-bss_acpt.Tpo -c -o bio/libcrypto_la-bss_acpt.lo `test -f 'bio/bss_acpt.c' || echo '$(srcdir)/'`bio/bss_acpt.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) bio/$(DEPDIR)/libcrypto_la-bss_acpt.Tpo bio/$(DEPDIR)/libcrypto_la-bss_acpt.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='bio/bss_acpt.c' object='bio/libcrypto_la-bss_acpt.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bio/libcrypto_la-bss_acpt.lo `test -f 'bio/bss_acpt.c' || echo '$(srcdir)/'`bio/bss_acpt.c








>
>
>
>
>
>
>







4775
4776
4777
4778
4779
4780
4781
4782
4783
4784
4785
4786
4787
4788
4789
4790
4791
4792
4793
4794
4795
bio/libcrypto_la-bio_lib.lo: bio/bio_lib.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bio/libcrypto_la-bio_lib.lo -MD -MP -MF bio/$(DEPDIR)/libcrypto_la-bio_lib.Tpo -c -o bio/libcrypto_la-bio_lib.lo `test -f 'bio/bio_lib.c' || echo '$(srcdir)/'`bio/bio_lib.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) bio/$(DEPDIR)/libcrypto_la-bio_lib.Tpo bio/$(DEPDIR)/libcrypto_la-bio_lib.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='bio/bio_lib.c' object='bio/libcrypto_la-bio_lib.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bio/libcrypto_la-bio_lib.lo `test -f 'bio/bio_lib.c' || echo '$(srcdir)/'`bio/bio_lib.c

bio/libcrypto_la-bio_meth.lo: bio/bio_meth.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bio/libcrypto_la-bio_meth.lo -MD -MP -MF bio/$(DEPDIR)/libcrypto_la-bio_meth.Tpo -c -o bio/libcrypto_la-bio_meth.lo `test -f 'bio/bio_meth.c' || echo '$(srcdir)/'`bio/bio_meth.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) bio/$(DEPDIR)/libcrypto_la-bio_meth.Tpo bio/$(DEPDIR)/libcrypto_la-bio_meth.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='bio/bio_meth.c' object='bio/libcrypto_la-bio_meth.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bio/libcrypto_la-bio_meth.lo `test -f 'bio/bio_meth.c' || echo '$(srcdir)/'`bio/bio_meth.c

bio/libcrypto_la-bss_acpt.lo: bio/bss_acpt.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bio/libcrypto_la-bss_acpt.lo -MD -MP -MF bio/$(DEPDIR)/libcrypto_la-bss_acpt.Tpo -c -o bio/libcrypto_la-bss_acpt.lo `test -f 'bio/bss_acpt.c' || echo '$(srcdir)/'`bio/bss_acpt.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) bio/$(DEPDIR)/libcrypto_la-bss_acpt.Tpo bio/$(DEPDIR)/libcrypto_la-bss_acpt.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='bio/bss_acpt.c' object='bio/libcrypto_la-bss_acpt.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bio/libcrypto_la-bss_acpt.lo `test -f 'bio/bss_acpt.c' || echo '$(srcdir)/'`bio/bss_acpt.c

5510
5511
5512
5513
5514
5515
5516







5517
5518
5519
5520
5521
5522
5523
dsa/libcrypto_la-dsa_lib.lo: dsa/dsa_lib.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dsa/libcrypto_la-dsa_lib.lo -MD -MP -MF dsa/$(DEPDIR)/libcrypto_la-dsa_lib.Tpo -c -o dsa/libcrypto_la-dsa_lib.lo `test -f 'dsa/dsa_lib.c' || echo '$(srcdir)/'`dsa/dsa_lib.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) dsa/$(DEPDIR)/libcrypto_la-dsa_lib.Tpo dsa/$(DEPDIR)/libcrypto_la-dsa_lib.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='dsa/dsa_lib.c' object='dsa/libcrypto_la-dsa_lib.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dsa/libcrypto_la-dsa_lib.lo `test -f 'dsa/dsa_lib.c' || echo '$(srcdir)/'`dsa/dsa_lib.c








dsa/libcrypto_la-dsa_ossl.lo: dsa/dsa_ossl.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dsa/libcrypto_la-dsa_ossl.lo -MD -MP -MF dsa/$(DEPDIR)/libcrypto_la-dsa_ossl.Tpo -c -o dsa/libcrypto_la-dsa_ossl.lo `test -f 'dsa/dsa_ossl.c' || echo '$(srcdir)/'`dsa/dsa_ossl.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) dsa/$(DEPDIR)/libcrypto_la-dsa_ossl.Tpo dsa/$(DEPDIR)/libcrypto_la-dsa_ossl.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='dsa/dsa_ossl.c' object='dsa/libcrypto_la-dsa_ossl.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dsa/libcrypto_la-dsa_ossl.lo `test -f 'dsa/dsa_ossl.c' || echo '$(srcdir)/'`dsa/dsa_ossl.c








>
>
>
>
>
>
>







5531
5532
5533
5534
5535
5536
5537
5538
5539
5540
5541
5542
5543
5544
5545
5546
5547
5548
5549
5550
5551
dsa/libcrypto_la-dsa_lib.lo: dsa/dsa_lib.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dsa/libcrypto_la-dsa_lib.lo -MD -MP -MF dsa/$(DEPDIR)/libcrypto_la-dsa_lib.Tpo -c -o dsa/libcrypto_la-dsa_lib.lo `test -f 'dsa/dsa_lib.c' || echo '$(srcdir)/'`dsa/dsa_lib.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) dsa/$(DEPDIR)/libcrypto_la-dsa_lib.Tpo dsa/$(DEPDIR)/libcrypto_la-dsa_lib.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='dsa/dsa_lib.c' object='dsa/libcrypto_la-dsa_lib.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dsa/libcrypto_la-dsa_lib.lo `test -f 'dsa/dsa_lib.c' || echo '$(srcdir)/'`dsa/dsa_lib.c

dsa/libcrypto_la-dsa_meth.lo: dsa/dsa_meth.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dsa/libcrypto_la-dsa_meth.lo -MD -MP -MF dsa/$(DEPDIR)/libcrypto_la-dsa_meth.Tpo -c -o dsa/libcrypto_la-dsa_meth.lo `test -f 'dsa/dsa_meth.c' || echo '$(srcdir)/'`dsa/dsa_meth.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) dsa/$(DEPDIR)/libcrypto_la-dsa_meth.Tpo dsa/$(DEPDIR)/libcrypto_la-dsa_meth.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='dsa/dsa_meth.c' object='dsa/libcrypto_la-dsa_meth.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dsa/libcrypto_la-dsa_meth.lo `test -f 'dsa/dsa_meth.c' || echo '$(srcdir)/'`dsa/dsa_meth.c

dsa/libcrypto_la-dsa_ossl.lo: dsa/dsa_ossl.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dsa/libcrypto_la-dsa_ossl.lo -MD -MP -MF dsa/$(DEPDIR)/libcrypto_la-dsa_ossl.Tpo -c -o dsa/libcrypto_la-dsa_ossl.lo `test -f 'dsa/dsa_ossl.c' || echo '$(srcdir)/'`dsa/dsa_ossl.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) dsa/$(DEPDIR)/libcrypto_la-dsa_ossl.Tpo dsa/$(DEPDIR)/libcrypto_la-dsa_ossl.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='dsa/dsa_ossl.c' object='dsa/libcrypto_la-dsa_ossl.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dsa/libcrypto_la-dsa_ossl.lo `test -f 'dsa/dsa_ossl.c' || echo '$(srcdir)/'`dsa/dsa_ossl.c

7106
7107
7108
7109
7110
7111
7112







7113
7114
7115
7116
7117
7118
7119
rsa/libcrypto_la-rsa_lib.lo: rsa/rsa_lib.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT rsa/libcrypto_la-rsa_lib.lo -MD -MP -MF rsa/$(DEPDIR)/libcrypto_la-rsa_lib.Tpo -c -o rsa/libcrypto_la-rsa_lib.lo `test -f 'rsa/rsa_lib.c' || echo '$(srcdir)/'`rsa/rsa_lib.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) rsa/$(DEPDIR)/libcrypto_la-rsa_lib.Tpo rsa/$(DEPDIR)/libcrypto_la-rsa_lib.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='rsa/rsa_lib.c' object='rsa/libcrypto_la-rsa_lib.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o rsa/libcrypto_la-rsa_lib.lo `test -f 'rsa/rsa_lib.c' || echo '$(srcdir)/'`rsa/rsa_lib.c








rsa/libcrypto_la-rsa_none.lo: rsa/rsa_none.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT rsa/libcrypto_la-rsa_none.lo -MD -MP -MF rsa/$(DEPDIR)/libcrypto_la-rsa_none.Tpo -c -o rsa/libcrypto_la-rsa_none.lo `test -f 'rsa/rsa_none.c' || echo '$(srcdir)/'`rsa/rsa_none.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) rsa/$(DEPDIR)/libcrypto_la-rsa_none.Tpo rsa/$(DEPDIR)/libcrypto_la-rsa_none.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='rsa/rsa_none.c' object='rsa/libcrypto_la-rsa_none.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o rsa/libcrypto_la-rsa_none.lo `test -f 'rsa/rsa_none.c' || echo '$(srcdir)/'`rsa/rsa_none.c








>
>
>
>
>
>
>







7134
7135
7136
7137
7138
7139
7140
7141
7142
7143
7144
7145
7146
7147
7148
7149
7150
7151
7152
7153
7154
rsa/libcrypto_la-rsa_lib.lo: rsa/rsa_lib.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT rsa/libcrypto_la-rsa_lib.lo -MD -MP -MF rsa/$(DEPDIR)/libcrypto_la-rsa_lib.Tpo -c -o rsa/libcrypto_la-rsa_lib.lo `test -f 'rsa/rsa_lib.c' || echo '$(srcdir)/'`rsa/rsa_lib.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) rsa/$(DEPDIR)/libcrypto_la-rsa_lib.Tpo rsa/$(DEPDIR)/libcrypto_la-rsa_lib.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='rsa/rsa_lib.c' object='rsa/libcrypto_la-rsa_lib.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o rsa/libcrypto_la-rsa_lib.lo `test -f 'rsa/rsa_lib.c' || echo '$(srcdir)/'`rsa/rsa_lib.c

rsa/libcrypto_la-rsa_meth.lo: rsa/rsa_meth.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT rsa/libcrypto_la-rsa_meth.lo -MD -MP -MF rsa/$(DEPDIR)/libcrypto_la-rsa_meth.Tpo -c -o rsa/libcrypto_la-rsa_meth.lo `test -f 'rsa/rsa_meth.c' || echo '$(srcdir)/'`rsa/rsa_meth.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) rsa/$(DEPDIR)/libcrypto_la-rsa_meth.Tpo rsa/$(DEPDIR)/libcrypto_la-rsa_meth.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='rsa/rsa_meth.c' object='rsa/libcrypto_la-rsa_meth.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o rsa/libcrypto_la-rsa_meth.lo `test -f 'rsa/rsa_meth.c' || echo '$(srcdir)/'`rsa/rsa_meth.c

rsa/libcrypto_la-rsa_none.lo: rsa/rsa_none.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT rsa/libcrypto_la-rsa_none.lo -MD -MP -MF rsa/$(DEPDIR)/libcrypto_la-rsa_none.Tpo -c -o rsa/libcrypto_la-rsa_none.lo `test -f 'rsa/rsa_none.c' || echo '$(srcdir)/'`rsa/rsa_none.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) rsa/$(DEPDIR)/libcrypto_la-rsa_none.Tpo rsa/$(DEPDIR)/libcrypto_la-rsa_none.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='rsa/rsa_none.c' object='rsa/libcrypto_la-rsa_none.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o rsa/libcrypto_la-rsa_none.lo `test -f 'rsa/rsa_none.c' || echo '$(srcdir)/'`rsa/rsa_none.c

8149
8150
8151
8152
8153
8154
8155
8156
8157
8158
8159
8160
8161
8162
8163
@HAVE_ARC4RANDOM_BUF_FALSE@	-echo arc4random_buf >> crypto_portable.sym
@HAVE_ARC4RANDOM_BUF_FALSE@	-echo arc4random_uniform >> crypto_portable.sym
@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@	-echo getentropy >> crypto_portable.sym
@HAVE_ASPRINTF_FALSE@	-echo asprintf >> crypto_portable.sym
@HAVE_ASPRINTF_FALSE@	-echo vasprintf >> crypto_portable.sym
@HAVE_EXPLICIT_BZERO_FALSE@	-echo explicit_bzero >> crypto_portable.sym
@HAVE_FREEZERO_FALSE@	-echo freezero >> crypto_portable.sym
@HAVE_INET_PTON_FALSE@	-echo inet_pton >> crypto_portable.sym
@HAVE_REALLOCARRAY_FALSE@	-echo reallocarray >> crypto_portable.sym
@HAVE_RECALLOCARRAY_FALSE@	-echo recallocarray >> crypto_portable.sym
@HAVE_STRLCAT_FALSE@	-echo strlcat >> crypto_portable.sym
@HAVE_STRLCPY_FALSE@	-echo strlcpy >> crypto_portable.sym
@HAVE_STRNDUP_FALSE@	-echo strndup >> crypto_portable.sym
@HAVE_STRNLEN_FALSE@	-echo strnlen >> crypto_portable.sym
@HAVE_STRSEP_FALSE@	-echo strsep >> crypto_portable.sym







<







8184
8185
8186
8187
8188
8189
8190

8191
8192
8193
8194
8195
8196
8197
@HAVE_ARC4RANDOM_BUF_FALSE@	-echo arc4random_buf >> crypto_portable.sym
@HAVE_ARC4RANDOM_BUF_FALSE@	-echo arc4random_uniform >> crypto_portable.sym
@HAVE_ARC4RANDOM_BUF_FALSE@@HAVE_GETENTROPY_FALSE@	-echo getentropy >> crypto_portable.sym
@HAVE_ASPRINTF_FALSE@	-echo asprintf >> crypto_portable.sym
@HAVE_ASPRINTF_FALSE@	-echo vasprintf >> crypto_portable.sym
@HAVE_EXPLICIT_BZERO_FALSE@	-echo explicit_bzero >> crypto_portable.sym
@HAVE_FREEZERO_FALSE@	-echo freezero >> crypto_portable.sym

@HAVE_REALLOCARRAY_FALSE@	-echo reallocarray >> crypto_portable.sym
@HAVE_RECALLOCARRAY_FALSE@	-echo recallocarray >> crypto_portable.sym
@HAVE_STRLCAT_FALSE@	-echo strlcat >> crypto_portable.sym
@HAVE_STRLCPY_FALSE@	-echo strlcpy >> crypto_portable.sym
@HAVE_STRNDUP_FALSE@	-echo strndup >> crypto_portable.sym
@HAVE_STRNLEN_FALSE@	-echo strnlen >> crypto_portable.sym
@HAVE_STRSEP_FALSE@	-echo strsep >> crypto_portable.sym
Changes to jni/libressl/crypto/VERSION.
1
42:0:0
|
1
43:1:0
Changes to jni/libressl/crypto/aes/aes-elf-x86_64.S.
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162

	movl	16+4(%r15),%ebx
	movl	16+8(%r15),%ecx
	xorl	%r10d,%eax
	xorl	%r11d,%ebx
	xorl	%r12d,%ecx
	xorl	%r8d,%edx
.byte	0xf3,0xc3			
.size	_x86_64_AES_encrypt,.-_x86_64_AES_encrypt
.type	_x86_64_AES_encrypt_compact,@function
.align	16
_x86_64_AES_encrypt_compact:
	leaq	128(%r14),%r8
	movl	0-128(%r8),%edi
	movl	32-128(%r8),%ebp







|







148
149
150
151
152
153
154
155
156
157
158
159
160
161
162

	movl	16+4(%r15),%ebx
	movl	16+8(%r15),%ecx
	xorl	%r10d,%eax
	xorl	%r11d,%ebx
	xorl	%r12d,%ecx
	xorl	%r8d,%edx
	retq
.size	_x86_64_AES_encrypt,.-_x86_64_AES_encrypt
.type	_x86_64_AES_encrypt_compact,@function
.align	16
_x86_64_AES_encrypt_compact:
	leaq	128(%r14),%r8
	movl	0-128(%r8),%edi
	movl	32-128(%r8),%ebp
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
	jmp	.Lenc_loop_compact
.align	16
.Lenc_compact_done:
	xorl	0(%r15),%eax
	xorl	4(%r15),%ebx
	xorl	8(%r15),%ecx
	xorl	12(%r15),%edx
.byte	0xf3,0xc3			
.size	_x86_64_AES_encrypt_compact,.-_x86_64_AES_encrypt_compact
.globl	AES_encrypt
.type	AES_encrypt,@function
.align	16
.globl	asm_AES_encrypt
.hidden	asm_AES_encrypt
asm_AES_encrypt:







|







323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
	jmp	.Lenc_loop_compact
.align	16
.Lenc_compact_done:
	xorl	0(%r15),%eax
	xorl	4(%r15),%ebx
	xorl	8(%r15),%ecx
	xorl	12(%r15),%edx
	retq
.size	_x86_64_AES_encrypt_compact,.-_x86_64_AES_encrypt_compact
.globl	AES_encrypt
.type	AES_encrypt,@function
.align	16
.globl	asm_AES_encrypt
.hidden	asm_AES_encrypt
asm_AES_encrypt:
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
.Lenc_epilogue:
	.byte	0xf3,0xc3
.size	AES_encrypt,.-AES_encrypt
.type	_x86_64_AES_decrypt,@function
.align	16
_x86_64_AES_decrypt:
	xorl	0(%r15),%eax
	xorl	4(%r15),%ebx
	xorl	8(%r15),%ecx







|







390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
.Lenc_epilogue:
	retq
.size	AES_encrypt,.-AES_encrypt
.type	_x86_64_AES_decrypt,@function
.align	16
_x86_64_AES_decrypt:
	xorl	0(%r15),%eax
	xorl	4(%r15),%ebx
	xorl	8(%r15),%ecx
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
	movl	16+4(%r15),%ebx
	movl	16+8(%r15),%ecx
	leaq	-2048(%r14),%r14
	xorl	%r10d,%eax
	xorl	%r11d,%ebx
	xorl	%r12d,%ecx
	xorl	%r8d,%edx
.byte	0xf3,0xc3			
.size	_x86_64_AES_decrypt,.-_x86_64_AES_decrypt
.type	_x86_64_AES_decrypt_compact,@function
.align	16
_x86_64_AES_decrypt_compact:
	leaq	128(%r14),%r8
	movl	0-128(%r8),%edi
	movl	32-128(%r8),%ebp







|







545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
	movl	16+4(%r15),%ebx
	movl	16+8(%r15),%ecx
	leaq	-2048(%r14),%r14
	xorl	%r10d,%eax
	xorl	%r11d,%ebx
	xorl	%r12d,%ecx
	xorl	%r8d,%edx
	retq
.size	_x86_64_AES_decrypt,.-_x86_64_AES_decrypt
.type	_x86_64_AES_decrypt_compact,@function
.align	16
_x86_64_AES_decrypt_compact:
	leaq	128(%r14),%r8
	movl	0-128(%r8),%edi
	movl	32-128(%r8),%ebp
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
	jmp	.Ldec_loop_compact
.align	16
.Ldec_compact_done:
	xorl	0(%r15),%eax
	xorl	4(%r15),%ebx
	xorl	8(%r15),%ecx
	xorl	12(%r15),%edx
.byte	0xf3,0xc3			
.size	_x86_64_AES_decrypt_compact,.-_x86_64_AES_decrypt_compact
.globl	AES_decrypt
.type	AES_decrypt,@function
.align	16
.globl	asm_AES_decrypt
.hidden	asm_AES_decrypt
asm_AES_decrypt:







|







771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
	jmp	.Ldec_loop_compact
.align	16
.Ldec_compact_done:
	xorl	0(%r15),%eax
	xorl	4(%r15),%ebx
	xorl	8(%r15),%ecx
	xorl	12(%r15),%edx
	retq
.size	_x86_64_AES_decrypt_compact,.-_x86_64_AES_decrypt_compact
.globl	AES_decrypt
.type	AES_decrypt,@function
.align	16
.globl	asm_AES_decrypt
.hidden	asm_AES_decrypt
asm_AES_decrypt:
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
.Ldec_epilogue:
	.byte	0xf3,0xc3
.size	AES_decrypt,.-AES_decrypt
.globl	AES_set_encrypt_key
.type	AES_set_encrypt_key,@function
.align	16
AES_set_encrypt_key:
	pushq	%rbx
	pushq	%rbp







|







840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
.Ldec_epilogue:
	retq
.size	AES_decrypt,.-AES_decrypt
.globl	AES_set_encrypt_key
.type	AES_set_encrypt_key,@function
.align	16
AES_set_encrypt_key:
	pushq	%rbx
	pushq	%rbp
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
	movq	16(%rsp),%r14
	movq	24(%rsp),%r13
	movq	32(%rsp),%r12
	movq	40(%rsp),%rbp
	movq	48(%rsp),%rbx
	addq	$56,%rsp
.Lenc_key_epilogue:
	.byte	0xf3,0xc3
.size	AES_set_encrypt_key,.-AES_set_encrypt_key

.type	_x86_64_AES_set_encrypt_key,@function
.align	16
_x86_64_AES_set_encrypt_key:
	movl	%esi,%ecx
	movq	%rdi,%rsi







|







865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
	movq	16(%rsp),%r14
	movq	24(%rsp),%r13
	movq	32(%rsp),%r12
	movq	40(%rsp),%rbp
	movq	48(%rsp),%rbx
	addq	$56,%rsp
.Lenc_key_epilogue:
	retq
.size	AES_set_encrypt_key,.-AES_set_encrypt_key

.type	_x86_64_AES_set_encrypt_key,@function
.align	16
_x86_64_AES_set_encrypt_key:
	movl	%esi,%ecx
	movq	%rdi,%rsi
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
	movl	$14,48(%rdi)
	xorq	%rax,%rax
	jmp	.Lexit

.Lbadpointer:
	movq	$-1,%rax
.Lexit:
.byte	0xf3,0xc3			
.size	_x86_64_AES_set_encrypt_key,.-_x86_64_AES_set_encrypt_key
.globl	AES_set_decrypt_key
.type	AES_set_decrypt_key,@function
.align	16
AES_set_decrypt_key:
	pushq	%rbx
	pushq	%rbp







|







1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
	movl	$14,48(%rdi)
	xorq	%rax,%rax
	jmp	.Lexit

.Lbadpointer:
	movq	$-1,%rax
.Lexit:
	retq
.size	_x86_64_AES_set_encrypt_key,.-_x86_64_AES_set_encrypt_key
.globl	AES_set_decrypt_key
.type	AES_set_decrypt_key,@function
.align	16
AES_set_decrypt_key:
	pushq	%rbx
	pushq	%rbp
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
	movq	16(%rsp),%r14
	movq	24(%rsp),%r13
	movq	32(%rsp),%r12
	movq	40(%rsp),%rbp
	movq	48(%rsp),%rbx
	addq	$56,%rsp
.Ldec_key_epilogue:
	.byte	0xf3,0xc3
.size	AES_set_decrypt_key,.-AES_set_decrypt_key
.globl	AES_cbc_encrypt
.type	AES_cbc_encrypt,@function
.align	16

.hidden	OPENSSL_ia32cap_P
.globl	asm_AES_cbc_encrypt







|







1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
	movq	16(%rsp),%r14
	movq	24(%rsp),%r13
	movq	32(%rsp),%r12
	movq	40(%rsp),%rbp
	movq	48(%rsp),%rbx
	addq	$56,%rsp
.Ldec_key_epilogue:
	retq
.size	AES_set_decrypt_key,.-AES_set_decrypt_key
.globl	AES_cbc_encrypt
.type	AES_cbc_encrypt,@function
.align	16

.hidden	OPENSSL_ia32cap_P
.globl	asm_AES_cbc_encrypt
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
.Lcbc_popfq:
	popfq
.Lcbc_epilogue:
	.byte	0xf3,0xc3
.size	AES_cbc_encrypt,.-AES_cbc_encrypt
.align	64
.LAES_Te:
.long	0xa56363c6,0xa56363c6
.long	0x847c7cf8,0x847c7cf8
.long	0x997777ee,0x997777ee
.long	0x8d7b7bf6,0x8d7b7bf6







|







1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
.Lcbc_popfq:
	popfq
.Lcbc_epilogue:
	retq
.size	AES_cbc_encrypt,.-AES_cbc_encrypt
.align	64
.LAES_Te:
.long	0xa56363c6,0xa56363c6
.long	0x847c7cf8,0x847c7cf8
.long	0x997777ee,0x997777ee
.long	0x8d7b7bf6,0x8d7b7bf6
Changes to jni/libressl/crypto/aes/aes-macosx-x86_64.S.
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162

	movl	16+4(%r15),%ebx
	movl	16+8(%r15),%ecx
	xorl	%r10d,%eax
	xorl	%r11d,%ebx
	xorl	%r12d,%ecx
	xorl	%r8d,%edx
.byte	0xf3,0xc3			


.p2align	4
_x86_64_AES_encrypt_compact:
	leaq	128(%r14),%r8
	movl	0-128(%r8),%edi
	movl	32-128(%r8),%ebp







|







148
149
150
151
152
153
154
155
156
157
158
159
160
161
162

	movl	16+4(%r15),%ebx
	movl	16+8(%r15),%ecx
	xorl	%r10d,%eax
	xorl	%r11d,%ebx
	xorl	%r12d,%ecx
	xorl	%r8d,%edx
	retq


.p2align	4
_x86_64_AES_encrypt_compact:
	leaq	128(%r14),%r8
	movl	0-128(%r8),%edi
	movl	32-128(%r8),%ebp
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
	jmp	L$enc_loop_compact
.p2align	4
L$enc_compact_done:
	xorl	0(%r15),%eax
	xorl	4(%r15),%ebx
	xorl	8(%r15),%ecx
	xorl	12(%r15),%edx
.byte	0xf3,0xc3			

.globl	_AES_encrypt

.p2align	4
.globl	_asm_AES_encrypt
.private_extern	_asm_AES_encrypt
_asm_AES_encrypt:







|







323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
	jmp	L$enc_loop_compact
.p2align	4
L$enc_compact_done:
	xorl	0(%r15),%eax
	xorl	4(%r15),%ebx
	xorl	8(%r15),%ecx
	xorl	12(%r15),%edx
	retq

.globl	_AES_encrypt

.p2align	4
.globl	_asm_AES_encrypt
.private_extern	_asm_AES_encrypt
_asm_AES_encrypt:
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
L$enc_epilogue:
	.byte	0xf3,0xc3


.p2align	4
_x86_64_AES_decrypt:
	xorl	0(%r15),%eax
	xorl	4(%r15),%ebx
	xorl	8(%r15),%ecx







|







390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
L$enc_epilogue:
	retq


.p2align	4
_x86_64_AES_decrypt:
	xorl	0(%r15),%eax
	xorl	4(%r15),%ebx
	xorl	8(%r15),%ecx
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
	movl	16+4(%r15),%ebx
	movl	16+8(%r15),%ecx
	leaq	-2048(%r14),%r14
	xorl	%r10d,%eax
	xorl	%r11d,%ebx
	xorl	%r12d,%ecx
	xorl	%r8d,%edx
.byte	0xf3,0xc3			


.p2align	4
_x86_64_AES_decrypt_compact:
	leaq	128(%r14),%r8
	movl	0-128(%r8),%edi
	movl	32-128(%r8),%ebp







|







545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
	movl	16+4(%r15),%ebx
	movl	16+8(%r15),%ecx
	leaq	-2048(%r14),%r14
	xorl	%r10d,%eax
	xorl	%r11d,%ebx
	xorl	%r12d,%ecx
	xorl	%r8d,%edx
	retq


.p2align	4
_x86_64_AES_decrypt_compact:
	leaq	128(%r14),%r8
	movl	0-128(%r8),%edi
	movl	32-128(%r8),%ebp
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
	jmp	L$dec_loop_compact
.p2align	4
L$dec_compact_done:
	xorl	0(%r15),%eax
	xorl	4(%r15),%ebx
	xorl	8(%r15),%ecx
	xorl	12(%r15),%edx
.byte	0xf3,0xc3			

.globl	_AES_decrypt

.p2align	4
.globl	_asm_AES_decrypt
.private_extern	_asm_AES_decrypt
_asm_AES_decrypt:







|







771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
	jmp	L$dec_loop_compact
.p2align	4
L$dec_compact_done:
	xorl	0(%r15),%eax
	xorl	4(%r15),%ebx
	xorl	8(%r15),%ecx
	xorl	12(%r15),%edx
	retq

.globl	_AES_decrypt

.p2align	4
.globl	_asm_AES_decrypt
.private_extern	_asm_AES_decrypt
_asm_AES_decrypt:
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
L$dec_epilogue:
	.byte	0xf3,0xc3

.globl	_AES_set_encrypt_key

.p2align	4
_AES_set_encrypt_key:
	pushq	%rbx
	pushq	%rbp







|







840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
L$dec_epilogue:
	retq

.globl	_AES_set_encrypt_key

.p2align	4
_AES_set_encrypt_key:
	pushq	%rbx
	pushq	%rbp
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
	movq	16(%rsp),%r14
	movq	24(%rsp),%r13
	movq	32(%rsp),%r12
	movq	40(%rsp),%rbp
	movq	48(%rsp),%rbx
	addq	$56,%rsp
L$enc_key_epilogue:
	.byte	0xf3,0xc3



.p2align	4
_x86_64_AES_set_encrypt_key:
	movl	%esi,%ecx
	movq	%rdi,%rsi







|







865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
	movq	16(%rsp),%r14
	movq	24(%rsp),%r13
	movq	32(%rsp),%r12
	movq	40(%rsp),%rbp
	movq	48(%rsp),%rbx
	addq	$56,%rsp
L$enc_key_epilogue:
	retq



.p2align	4
_x86_64_AES_set_encrypt_key:
	movl	%esi,%ecx
	movq	%rdi,%rsi
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
	movl	$14,48(%rdi)
	xorq	%rax,%rax
	jmp	L$exit

L$badpointer:
	movq	$-1,%rax
L$exit:
.byte	0xf3,0xc3			

.globl	_AES_set_decrypt_key

.p2align	4
_AES_set_decrypt_key:
	pushq	%rbx
	pushq	%rbp







|







1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
	movl	$14,48(%rdi)
	xorq	%rax,%rax
	jmp	L$exit

L$badpointer:
	movq	$-1,%rax
L$exit:
	retq

.globl	_AES_set_decrypt_key

.p2align	4
_AES_set_decrypt_key:
	pushq	%rbx
	pushq	%rbp
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
	movq	16(%rsp),%r14
	movq	24(%rsp),%r13
	movq	32(%rsp),%r12
	movq	40(%rsp),%rbp
	movq	48(%rsp),%rbx
	addq	$56,%rsp
L$dec_key_epilogue:
	.byte	0xf3,0xc3

.globl	_AES_cbc_encrypt

.p2align	4

.private_extern	_OPENSSL_ia32cap_P
.globl	_asm_AES_cbc_encrypt







|







1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
	movq	16(%rsp),%r14
	movq	24(%rsp),%r13
	movq	32(%rsp),%r12
	movq	40(%rsp),%rbp
	movq	48(%rsp),%rbx
	addq	$56,%rsp
L$dec_key_epilogue:
	retq

.globl	_AES_cbc_encrypt

.p2align	4

.private_extern	_OPENSSL_ia32cap_P
.globl	_asm_AES_cbc_encrypt
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
L$cbc_popfq:
	popfq
L$cbc_epilogue:
	.byte	0xf3,0xc3

.p2align	6
L$AES_Te:
.long	0xa56363c6,0xa56363c6
.long	0x847c7cf8,0x847c7cf8
.long	0x997777ee,0x997777ee
.long	0x8d7b7bf6,0x8d7b7bf6







|







1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
L$cbc_popfq:
	popfq
L$cbc_epilogue:
	retq

.p2align	6
L$AES_Te:
.long	0xa56363c6,0xa56363c6
.long	0x847c7cf8,0x847c7cf8
.long	0x997777ee,0x997777ee
.long	0x8d7b7bf6,0x8d7b7bf6
Changes to jni/libressl/crypto/aes/aesni-elf-x86_64.S.
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
	aesenc	%xmm1,%xmm2
	decl	%eax
	movups	(%rdx),%xmm1
	leaq	16(%rdx),%rdx
	jnz	.Loop_enc1_1	
	aesenclast	%xmm1,%xmm2
	movups	%xmm2,(%rsi)
	.byte	0xf3,0xc3
.size	aesni_encrypt,.-aesni_encrypt

.globl	aesni_decrypt
.type	aesni_decrypt,@function
.align	16
aesni_decrypt:
	movups	(%rdi),%xmm2
	movl	240(%rdx),%eax
	movups	(%rdx),%xmm0
	movups	16(%rdx),%xmm1
	leaq	32(%rdx),%rdx
	xorps	%xmm0,%xmm2
.Loop_dec1_2:
	aesdec	%xmm1,%xmm2
	decl	%eax
	movups	(%rdx),%xmm1
	leaq	16(%rdx),%rdx
	jnz	.Loop_dec1_2	
	aesdeclast	%xmm1,%xmm2
	movups	%xmm2,(%rsi)
	.byte	0xf3,0xc3
.size	aesni_decrypt, .-aesni_decrypt
.type	_aesni_encrypt3,@function
.align	16
_aesni_encrypt3:
	movups	(%rcx),%xmm0
	shrl	$1,%eax
	movups	16(%rcx),%xmm1







|




















|







14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
	aesenc	%xmm1,%xmm2
	decl	%eax
	movups	(%rdx),%xmm1
	leaq	16(%rdx),%rdx
	jnz	.Loop_enc1_1	
	aesenclast	%xmm1,%xmm2
	movups	%xmm2,(%rsi)
	retq
.size	aesni_encrypt,.-aesni_encrypt

.globl	aesni_decrypt
.type	aesni_decrypt,@function
.align	16
aesni_decrypt:
	movups	(%rdi),%xmm2
	movl	240(%rdx),%eax
	movups	(%rdx),%xmm0
	movups	16(%rdx),%xmm1
	leaq	32(%rdx),%rdx
	xorps	%xmm0,%xmm2
.Loop_dec1_2:
	aesdec	%xmm1,%xmm2
	decl	%eax
	movups	(%rdx),%xmm1
	leaq	16(%rdx),%rdx
	jnz	.Loop_dec1_2	
	aesdeclast	%xmm1,%xmm2
	movups	%xmm2,(%rsi)
	retq
.size	aesni_decrypt, .-aesni_decrypt
.type	_aesni_encrypt3,@function
.align	16
_aesni_encrypt3:
	movups	(%rcx),%xmm0
	shrl	$1,%eax
	movups	16(%rcx),%xmm1
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82

	aesenc	%xmm1,%xmm2
	aesenc	%xmm1,%xmm3
	aesenc	%xmm1,%xmm4
	aesenclast	%xmm0,%xmm2
	aesenclast	%xmm0,%xmm3
	aesenclast	%xmm0,%xmm4
	.byte	0xf3,0xc3
.size	_aesni_encrypt3,.-_aesni_encrypt3
.type	_aesni_decrypt3,@function
.align	16
_aesni_decrypt3:
	movups	(%rcx),%xmm0
	shrl	$1,%eax
	movups	16(%rcx),%xmm1







|







68
69
70
71
72
73
74
75
76
77
78
79
80
81
82

	aesenc	%xmm1,%xmm2
	aesenc	%xmm1,%xmm3
	aesenc	%xmm1,%xmm4
	aesenclast	%xmm0,%xmm2
	aesenclast	%xmm0,%xmm3
	aesenclast	%xmm0,%xmm4
	retq
.size	_aesni_encrypt3,.-_aesni_encrypt3
.type	_aesni_decrypt3,@function
.align	16
_aesni_decrypt3:
	movups	(%rcx),%xmm0
	shrl	$1,%eax
	movups	16(%rcx),%xmm1
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115

	aesdec	%xmm1,%xmm2
	aesdec	%xmm1,%xmm3
	aesdec	%xmm1,%xmm4
	aesdeclast	%xmm0,%xmm2
	aesdeclast	%xmm0,%xmm3
	aesdeclast	%xmm0,%xmm4
	.byte	0xf3,0xc3
.size	_aesni_decrypt3,.-_aesni_decrypt3
.type	_aesni_encrypt4,@function
.align	16
_aesni_encrypt4:
	movups	(%rcx),%xmm0
	shrl	$1,%eax
	movups	16(%rcx),%xmm1







|







101
102
103
104
105
106
107
108
109
110
111
112
113
114
115

	aesdec	%xmm1,%xmm2
	aesdec	%xmm1,%xmm3
	aesdec	%xmm1,%xmm4
	aesdeclast	%xmm0,%xmm2
	aesdeclast	%xmm0,%xmm3
	aesdeclast	%xmm0,%xmm4
	retq
.size	_aesni_decrypt3,.-_aesni_decrypt3
.type	_aesni_encrypt4,@function
.align	16
_aesni_encrypt4:
	movups	(%rcx),%xmm0
	shrl	$1,%eax
	movups	16(%rcx),%xmm1
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
	aesenc	%xmm1,%xmm3
	aesenc	%xmm1,%xmm4
	aesenc	%xmm1,%xmm5
	aesenclast	%xmm0,%xmm2
	aesenclast	%xmm0,%xmm3
	aesenclast	%xmm0,%xmm4
	aesenclast	%xmm0,%xmm5
	.byte	0xf3,0xc3
.size	_aesni_encrypt4,.-_aesni_encrypt4
.type	_aesni_decrypt4,@function
.align	16
_aesni_decrypt4:
	movups	(%rcx),%xmm0
	shrl	$1,%eax
	movups	16(%rcx),%xmm1







|







139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
	aesenc	%xmm1,%xmm3
	aesenc	%xmm1,%xmm4
	aesenc	%xmm1,%xmm5
	aesenclast	%xmm0,%xmm2
	aesenclast	%xmm0,%xmm3
	aesenclast	%xmm0,%xmm4
	aesenclast	%xmm0,%xmm5
	retq
.size	_aesni_encrypt4,.-_aesni_encrypt4
.type	_aesni_decrypt4,@function
.align	16
_aesni_decrypt4:
	movups	(%rcx),%xmm0
	shrl	$1,%eax
	movups	16(%rcx),%xmm1
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
	aesdec	%xmm1,%xmm3
	aesdec	%xmm1,%xmm4
	aesdec	%xmm1,%xmm5
	aesdeclast	%xmm0,%xmm2
	aesdeclast	%xmm0,%xmm3
	aesdeclast	%xmm0,%xmm4
	aesdeclast	%xmm0,%xmm5
	.byte	0xf3,0xc3
.size	_aesni_decrypt4,.-_aesni_decrypt4
.type	_aesni_encrypt6,@function
.align	16
_aesni_encrypt6:
	movups	(%rcx),%xmm0
	shrl	$1,%eax
	movups	16(%rcx),%xmm1







|







177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
	aesdec	%xmm1,%xmm3
	aesdec	%xmm1,%xmm4
	aesdec	%xmm1,%xmm5
	aesdeclast	%xmm0,%xmm2
	aesdeclast	%xmm0,%xmm3
	aesdeclast	%xmm0,%xmm4
	aesdeclast	%xmm0,%xmm5
	retq
.size	_aesni_decrypt4,.-_aesni_decrypt4
.type	_aesni_encrypt6,@function
.align	16
_aesni_encrypt6:
	movups	(%rcx),%xmm0
	shrl	$1,%eax
	movups	16(%rcx),%xmm1
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
	aesenc	%xmm1,%xmm7
	aesenclast	%xmm0,%xmm2
	aesenclast	%xmm0,%xmm3
	aesenclast	%xmm0,%xmm4
	aesenclast	%xmm0,%xmm5
	aesenclast	%xmm0,%xmm6
	aesenclast	%xmm0,%xmm7
	.byte	0xf3,0xc3
.size	_aesni_encrypt6,.-_aesni_encrypt6
.type	_aesni_decrypt6,@function
.align	16
_aesni_decrypt6:
	movups	(%rcx),%xmm0
	shrl	$1,%eax
	movups	16(%rcx),%xmm1







|







234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
	aesenc	%xmm1,%xmm7
	aesenclast	%xmm0,%xmm2
	aesenclast	%xmm0,%xmm3
	aesenclast	%xmm0,%xmm4
	aesenclast	%xmm0,%xmm5
	aesenclast	%xmm0,%xmm6
	aesenclast	%xmm0,%xmm7
	retq
.size	_aesni_encrypt6,.-_aesni_encrypt6
.type	_aesni_decrypt6,@function
.align	16
_aesni_decrypt6:
	movups	(%rcx),%xmm0
	shrl	$1,%eax
	movups	16(%rcx),%xmm1
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
	aesdec	%xmm1,%xmm7
	aesdeclast	%xmm0,%xmm2
	aesdeclast	%xmm0,%xmm3
	aesdeclast	%xmm0,%xmm4
	aesdeclast	%xmm0,%xmm5
	aesdeclast	%xmm0,%xmm6
	aesdeclast	%xmm0,%xmm7
	.byte	0xf3,0xc3
.size	_aesni_decrypt6,.-_aesni_decrypt6
.type	_aesni_encrypt8,@function
.align	16
_aesni_encrypt8:
	movups	(%rcx),%xmm0
	shrl	$1,%eax
	movups	16(%rcx),%xmm1







|







291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
	aesdec	%xmm1,%xmm7
	aesdeclast	%xmm0,%xmm2
	aesdeclast	%xmm0,%xmm3
	aesdeclast	%xmm0,%xmm4
	aesdeclast	%xmm0,%xmm5
	aesdeclast	%xmm0,%xmm6
	aesdeclast	%xmm0,%xmm7
	retq
.size	_aesni_decrypt6,.-_aesni_decrypt6
.type	_aesni_encrypt8,@function
.align	16
_aesni_encrypt8:
	movups	(%rcx),%xmm0
	shrl	$1,%eax
	movups	16(%rcx),%xmm1
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
	aesenclast	%xmm0,%xmm3
	aesenclast	%xmm0,%xmm4
	aesenclast	%xmm0,%xmm5
	aesenclast	%xmm0,%xmm6
	aesenclast	%xmm0,%xmm7
	aesenclast	%xmm0,%xmm8
	aesenclast	%xmm0,%xmm9
	.byte	0xf3,0xc3
.size	_aesni_encrypt8,.-_aesni_encrypt8
.type	_aesni_decrypt8,@function
.align	16
_aesni_decrypt8:
	movups	(%rcx),%xmm0
	shrl	$1,%eax
	movups	16(%rcx),%xmm1







|







361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
	aesenclast	%xmm0,%xmm3
	aesenclast	%xmm0,%xmm4
	aesenclast	%xmm0,%xmm5
	aesenclast	%xmm0,%xmm6
	aesenclast	%xmm0,%xmm7
	aesenclast	%xmm0,%xmm8
	aesenclast	%xmm0,%xmm9
	retq
.size	_aesni_encrypt8,.-_aesni_encrypt8
.type	_aesni_decrypt8,@function
.align	16
_aesni_decrypt8:
	movups	(%rcx),%xmm0
	shrl	$1,%eax
	movups	16(%rcx),%xmm1
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
	aesdeclast	%xmm0,%xmm3
	aesdeclast	%xmm0,%xmm4
	aesdeclast	%xmm0,%xmm5
	aesdeclast	%xmm0,%xmm6
	aesdeclast	%xmm0,%xmm7
	aesdeclast	%xmm0,%xmm8
	aesdeclast	%xmm0,%xmm9
	.byte	0xf3,0xc3
.size	_aesni_decrypt8,.-_aesni_decrypt8
.globl	aesni_ecb_encrypt
.type	aesni_ecb_encrypt,@function
.align	16
aesni_ecb_encrypt:
	andq	$-16,%rdx
	jz	.Lecb_ret







|







431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
	aesdeclast	%xmm0,%xmm3
	aesdeclast	%xmm0,%xmm4
	aesdeclast	%xmm0,%xmm5
	aesdeclast	%xmm0,%xmm6
	aesdeclast	%xmm0,%xmm7
	aesdeclast	%xmm0,%xmm8
	aesdeclast	%xmm0,%xmm9
	retq
.size	_aesni_decrypt8,.-_aesni_decrypt8
.globl	aesni_ecb_encrypt
.type	aesni_ecb_encrypt,@function
.align	16
aesni_ecb_encrypt:
	andq	$-16,%rdx
	jz	.Lecb_ret
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
	movups	%xmm3,16(%rsi)
	movups	%xmm4,32(%rsi)
	movups	%xmm5,48(%rsi)
	movups	%xmm6,64(%rsi)
	movups	%xmm7,80(%rsi)

.Lecb_ret:
	.byte	0xf3,0xc3
.size	aesni_ecb_encrypt,.-aesni_ecb_encrypt
.globl	aesni_ccm64_encrypt_blocks
.type	aesni_ccm64_encrypt_blocks,@function
.align	16
aesni_ccm64_encrypt_blocks:
	movl	240(%rcx),%eax
	movdqu	(%r8),%xmm9







|







733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
	movups	%xmm3,16(%rsi)
	movups	%xmm4,32(%rsi)
	movups	%xmm5,48(%rsi)
	movups	%xmm6,64(%rsi)
	movups	%xmm7,80(%rsi)

.Lecb_ret:
	retq
.size	aesni_ecb_encrypt,.-aesni_ecb_encrypt
.globl	aesni_ccm64_encrypt_blocks
.type	aesni_ccm64_encrypt_blocks,@function
.align	16
aesni_ccm64_encrypt_blocks:
	movl	240(%rcx),%eax
	movdqu	(%r8),%xmm9
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
	movdqa	%xmm9,%xmm2
	movups	%xmm8,(%rsi)
	leaq	16(%rsi),%rsi
.byte	102,15,56,0,215
	jnz	.Lccm64_enc_outer

	movups	%xmm3,(%r9)
	.byte	0xf3,0xc3
.size	aesni_ccm64_encrypt_blocks,.-aesni_ccm64_encrypt_blocks
.globl	aesni_ccm64_decrypt_blocks
.type	aesni_ccm64_decrypt_blocks,@function
.align	16
aesni_ccm64_decrypt_blocks:
	movl	240(%rcx),%eax
	movups	(%r8),%xmm9







|







790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
	movdqa	%xmm9,%xmm2
	movups	%xmm8,(%rsi)
	leaq	16(%rsi),%rsi
.byte	102,15,56,0,215
	jnz	.Lccm64_enc_outer

	movups	%xmm3,(%r9)
	retq
.size	aesni_ccm64_encrypt_blocks,.-aesni_ccm64_encrypt_blocks
.globl	aesni_ccm64_decrypt_blocks
.type	aesni_ccm64_decrypt_blocks,@function
.align	16
aesni_ccm64_decrypt_blocks:
	movl	240(%rcx),%eax
	movups	(%r8),%xmm9
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
	aesenc	%xmm1,%xmm3
	decl	%eax
	movups	(%r11),%xmm1
	leaq	16(%r11),%r11
	jnz	.Loop_enc1_6	
	aesenclast	%xmm1,%xmm3
	movups	%xmm3,(%r9)
	.byte	0xf3,0xc3
.size	aesni_ccm64_decrypt_blocks,.-aesni_ccm64_decrypt_blocks
.globl	aesni_ctr32_encrypt_blocks
.type	aesni_ctr32_encrypt_blocks,@function
.align	16
aesni_ctr32_encrypt_blocks:
	cmpq	$1,%rdx
	je	.Lctr32_one_shortcut







|







877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
	aesenc	%xmm1,%xmm3
	decl	%eax
	movups	(%r11),%xmm1
	leaq	16(%r11),%r11
	jnz	.Loop_enc1_6	
	aesenclast	%xmm1,%xmm3
	movups	%xmm3,(%r9)
	retq
.size	aesni_ccm64_decrypt_blocks,.-aesni_ccm64_decrypt_blocks
.globl	aesni_ctr32_encrypt_blocks
.type	aesni_ctr32_encrypt_blocks,@function
.align	16
aesni_ctr32_encrypt_blocks:
	cmpq	$1,%rdx
	je	.Lctr32_one_shortcut
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
	xorps	%xmm4,%xmm10
	movups	%xmm9,16(%rsi)
	xorps	%xmm5,%xmm11
	movups	%xmm10,32(%rsi)
	movups	%xmm11,48(%rsi)

.Lctr32_done:
	.byte	0xf3,0xc3
.size	aesni_ctr32_encrypt_blocks,.-aesni_ctr32_encrypt_blocks
.globl	aesni_xts_encrypt
.type	aesni_xts_encrypt,@function
.align	16
aesni_xts_encrypt:
	leaq	-104(%rsp),%rsp
	movups	(%r9),%xmm15







|







1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
	xorps	%xmm4,%xmm10
	movups	%xmm9,16(%rsi)
	xorps	%xmm5,%xmm11
	movups	%xmm10,32(%rsi)
	movups	%xmm11,48(%rsi)

.Lctr32_done:
	retq
.size	aesni_ctr32_encrypt_blocks,.-aesni_ctr32_encrypt_blocks
.globl	aesni_xts_encrypt
.type	aesni_xts_encrypt,@function
.align	16
aesni_xts_encrypt:
	leaq	-104(%rsp),%rsp
	movups	(%r9),%xmm15
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
	aesenclast	%xmm1,%xmm2
	xorps	%xmm10,%xmm2
	movups	%xmm2,-16(%rsi)

.Lxts_enc_ret:
	leaq	104(%rsp),%rsp
.Lxts_enc_epilogue:
	.byte	0xf3,0xc3
.size	aesni_xts_encrypt,.-aesni_xts_encrypt
.globl	aesni_xts_decrypt
.type	aesni_xts_decrypt,@function
.align	16
aesni_xts_decrypt:
	leaq	-104(%rsp),%rsp
	movups	(%r9),%xmm15







|







1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
	aesenclast	%xmm1,%xmm2
	xorps	%xmm10,%xmm2
	movups	%xmm2,-16(%rsi)

.Lxts_enc_ret:
	leaq	104(%rsp),%rsp
.Lxts_enc_epilogue:
	retq
.size	aesni_xts_encrypt,.-aesni_xts_encrypt
.globl	aesni_xts_decrypt
.type	aesni_xts_decrypt,@function
.align	16
aesni_xts_decrypt:
	leaq	-104(%rsp),%rsp
	movups	(%r9),%xmm15
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
	aesdeclast	%xmm1,%xmm2
	xorps	%xmm10,%xmm2
	movups	%xmm2,(%rsi)

.Lxts_dec_ret:
	leaq	104(%rsp),%rsp
.Lxts_dec_epilogue:
	.byte	0xf3,0xc3
.size	aesni_xts_decrypt,.-aesni_xts_decrypt
.globl	aesni_cbc_encrypt
.type	aesni_cbc_encrypt,@function
.align	16
aesni_cbc_encrypt:
	testq	%rdx,%rdx
	jz	.Lcbc_ret







|







1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
	aesdeclast	%xmm1,%xmm2
	xorps	%xmm10,%xmm2
	movups	%xmm2,(%rsi)

.Lxts_dec_ret:
	leaq	104(%rsp),%rsp
.Lxts_dec_epilogue:
	retq
.size	aesni_xts_decrypt,.-aesni_xts_decrypt
.globl	aesni_cbc_encrypt
.type	aesni_cbc_encrypt,@function
.align	16
aesni_cbc_encrypt:
	testq	%rdx,%rdx
	jz	.Lcbc_ret
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
	movq	%rsi,%rdi
	subq	%rdx,%rcx
	leaq	-24(%rsp),%rsi
.long	0x9066A4F3	

.Lcbc_dec_ret:
.Lcbc_ret:
	.byte	0xf3,0xc3
.size	aesni_cbc_encrypt,.-aesni_cbc_encrypt
.globl	aesni_set_decrypt_key
.type	aesni_set_decrypt_key,@function
.align	16
aesni_set_decrypt_key:
	subq	$8,%rsp
	call	__aesni_set_encrypt_key







|







2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
	movq	%rsi,%rdi
	subq	%rdx,%rcx
	leaq	-24(%rsp),%rsi
.long	0x9066A4F3	

.Lcbc_dec_ret:
.Lcbc_ret:
	retq
.size	aesni_cbc_encrypt,.-aesni_cbc_encrypt
.globl	aesni_set_decrypt_key
.type	aesni_set_decrypt_key,@function
.align	16
aesni_set_decrypt_key:
	subq	$8,%rsp
	call	__aesni_set_encrypt_key
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
	ja	.Ldec_key_inverse

	movups	(%rdx),%xmm0
	aesimc	%xmm0,%xmm0
	movups	%xmm0,(%rdi)
.Ldec_key_ret:
	addq	$8,%rsp
	.byte	0xf3,0xc3
.LSEH_end_set_decrypt_key:
.size	aesni_set_decrypt_key,.-aesni_set_decrypt_key
.globl	aesni_set_encrypt_key
.type	aesni_set_encrypt_key,@function
.align	16
aesni_set_encrypt_key:
__aesni_set_encrypt_key:







|







2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
	ja	.Ldec_key_inverse

	movups	(%rdx),%xmm0
	aesimc	%xmm0,%xmm0
	movups	%xmm0,(%rdi)
.Ldec_key_ret:
	addq	$8,%rsp
	retq
.LSEH_end_set_decrypt_key:
.size	aesni_set_decrypt_key,.-aesni_set_decrypt_key
.globl	aesni_set_encrypt_key
.type	aesni_set_encrypt_key,@function
.align	16
aesni_set_encrypt_key:
__aesni_set_encrypt_key:
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
	jmp	.Lenc_key_ret

.align	16
.Lbad_keybits:
	movq	$-2,%rax
.Lenc_key_ret:
	addq	$8,%rsp
	.byte	0xf3,0xc3
.LSEH_end_set_encrypt_key:

.align	16
.Lkey_expansion_128:
	movups	%xmm0,(%rax)
	leaq	16(%rax),%rax
.Lkey_expansion_128_cold:
	shufps	$16,%xmm0,%xmm4
	xorps	%xmm4,%xmm0
	shufps	$140,%xmm0,%xmm4
	xorps	%xmm4,%xmm0
	shufps	$255,%xmm1,%xmm1
	xorps	%xmm1,%xmm0
	.byte	0xf3,0xc3

.align	16
.Lkey_expansion_192a:
	movups	%xmm0,(%rax)
	leaq	16(%rax),%rax
.Lkey_expansion_192a_cold:
	movaps	%xmm2,%xmm5
.Lkey_expansion_192b_warm:
	shufps	$16,%xmm0,%xmm4
	movdqa	%xmm2,%xmm3
	xorps	%xmm4,%xmm0
	shufps	$140,%xmm0,%xmm4
	pslldq	$4,%xmm3
	xorps	%xmm4,%xmm0
	pshufd	$85,%xmm1,%xmm1
	pxor	%xmm3,%xmm2
	pxor	%xmm1,%xmm0
	pshufd	$255,%xmm0,%xmm3
	pxor	%xmm3,%xmm2
	.byte	0xf3,0xc3

.align	16
.Lkey_expansion_192b:
	movaps	%xmm0,%xmm3
	shufps	$68,%xmm0,%xmm5
	movups	%xmm5,(%rax)
	shufps	$78,%xmm2,%xmm3







|













|



















|







2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
	jmp	.Lenc_key_ret

.align	16
.Lbad_keybits:
	movq	$-2,%rax
.Lenc_key_ret:
	addq	$8,%rsp
	retq
.LSEH_end_set_encrypt_key:

.align	16
.Lkey_expansion_128:
	movups	%xmm0,(%rax)
	leaq	16(%rax),%rax
.Lkey_expansion_128_cold:
	shufps	$16,%xmm0,%xmm4
	xorps	%xmm4,%xmm0
	shufps	$140,%xmm0,%xmm4
	xorps	%xmm4,%xmm0
	shufps	$255,%xmm1,%xmm1
	xorps	%xmm1,%xmm0
	retq

.align	16
.Lkey_expansion_192a:
	movups	%xmm0,(%rax)
	leaq	16(%rax),%rax
.Lkey_expansion_192a_cold:
	movaps	%xmm2,%xmm5
.Lkey_expansion_192b_warm:
	shufps	$16,%xmm0,%xmm4
	movdqa	%xmm2,%xmm3
	xorps	%xmm4,%xmm0
	shufps	$140,%xmm0,%xmm4
	pslldq	$4,%xmm3
	xorps	%xmm4,%xmm0
	pshufd	$85,%xmm1,%xmm1
	pxor	%xmm3,%xmm2
	pxor	%xmm1,%xmm0
	pshufd	$255,%xmm0,%xmm3
	pxor	%xmm3,%xmm2
	retq

.align	16
.Lkey_expansion_192b:
	movaps	%xmm0,%xmm3
	shufps	$68,%xmm0,%xmm5
	movups	%xmm5,(%rax)
	shufps	$78,%xmm2,%xmm3
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
.Lkey_expansion_256a_cold:
	shufps	$16,%xmm0,%xmm4
	xorps	%xmm4,%xmm0
	shufps	$140,%xmm0,%xmm4
	xorps	%xmm4,%xmm0
	shufps	$255,%xmm1,%xmm1
	xorps	%xmm1,%xmm0
	.byte	0xf3,0xc3

.align	16
.Lkey_expansion_256b:
	movups	%xmm0,(%rax)
	leaq	16(%rax),%rax

	shufps	$16,%xmm2,%xmm4
	xorps	%xmm4,%xmm2
	shufps	$140,%xmm2,%xmm4
	xorps	%xmm4,%xmm2
	shufps	$170,%xmm1,%xmm1
	xorps	%xmm1,%xmm2
	.byte	0xf3,0xc3
.size	aesni_set_encrypt_key,.-aesni_set_encrypt_key
.size	__aesni_set_encrypt_key,.-__aesni_set_encrypt_key
.align	64
.Lbswap_mask:
.byte	15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
.Lincrement32:
.long	6,6,6,0







|












|







2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
.Lkey_expansion_256a_cold:
	shufps	$16,%xmm0,%xmm4
	xorps	%xmm4,%xmm0
	shufps	$140,%xmm0,%xmm4
	xorps	%xmm4,%xmm0
	shufps	$255,%xmm1,%xmm1
	xorps	%xmm1,%xmm0
	retq

.align	16
.Lkey_expansion_256b:
	movups	%xmm0,(%rax)
	leaq	16(%rax),%rax

	shufps	$16,%xmm2,%xmm4
	xorps	%xmm4,%xmm2
	shufps	$140,%xmm2,%xmm4
	xorps	%xmm4,%xmm2
	shufps	$170,%xmm1,%xmm1
	xorps	%xmm1,%xmm2
	retq
.size	aesni_set_encrypt_key,.-aesni_set_encrypt_key
.size	__aesni_set_encrypt_key,.-__aesni_set_encrypt_key
.align	64
.Lbswap_mask:
.byte	15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
.Lincrement32:
.long	6,6,6,0
Changes to jni/libressl/crypto/aes/aesni-macosx-x86_64.S.
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
	aesenc	%xmm1,%xmm2
	decl	%eax
	movups	(%rdx),%xmm1
	leaq	16(%rdx),%rdx
	jnz	L$oop_enc1_1	
	aesenclast	%xmm1,%xmm2
	movups	%xmm2,(%rsi)
	.byte	0xf3,0xc3


.globl	_aesni_decrypt

.p2align	4
_aesni_decrypt:
	movups	(%rdi),%xmm2
	movl	240(%rdx),%eax
	movups	(%rdx),%xmm0
	movups	16(%rdx),%xmm1
	leaq	32(%rdx),%rdx
	xorps	%xmm0,%xmm2
L$oop_dec1_2:
	aesdec	%xmm1,%xmm2
	decl	%eax
	movups	(%rdx),%xmm1
	leaq	16(%rdx),%rdx
	jnz	L$oop_dec1_2	
	aesdeclast	%xmm1,%xmm2
	movups	%xmm2,(%rsi)
	.byte	0xf3,0xc3


.p2align	4
_aesni_encrypt3:
	movups	(%rcx),%xmm0
	shrl	$1,%eax
	movups	16(%rcx),%xmm1







|




















|







14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
	aesenc	%xmm1,%xmm2
	decl	%eax
	movups	(%rdx),%xmm1
	leaq	16(%rdx),%rdx
	jnz	L$oop_enc1_1	
	aesenclast	%xmm1,%xmm2
	movups	%xmm2,(%rsi)
	retq


.globl	_aesni_decrypt

.p2align	4
_aesni_decrypt:
	movups	(%rdi),%xmm2
	movl	240(%rdx),%eax
	movups	(%rdx),%xmm0
	movups	16(%rdx),%xmm1
	leaq	32(%rdx),%rdx
	xorps	%xmm0,%xmm2
L$oop_dec1_2:
	aesdec	%xmm1,%xmm2
	decl	%eax
	movups	(%rdx),%xmm1
	leaq	16(%rdx),%rdx
	jnz	L$oop_dec1_2	
	aesdeclast	%xmm1,%xmm2
	movups	%xmm2,(%rsi)
	retq


.p2align	4
_aesni_encrypt3:
	movups	(%rcx),%xmm0
	shrl	$1,%eax
	movups	16(%rcx),%xmm1
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82

	aesenc	%xmm1,%xmm2
	aesenc	%xmm1,%xmm3
	aesenc	%xmm1,%xmm4
	aesenclast	%xmm0,%xmm2
	aesenclast	%xmm0,%xmm3
	aesenclast	%xmm0,%xmm4
	.byte	0xf3,0xc3


.p2align	4
_aesni_decrypt3:
	movups	(%rcx),%xmm0
	shrl	$1,%eax
	movups	16(%rcx),%xmm1







|







68
69
70
71
72
73
74
75
76
77
78
79
80
81
82

	aesenc	%xmm1,%xmm2
	aesenc	%xmm1,%xmm3
	aesenc	%xmm1,%xmm4
	aesenclast	%xmm0,%xmm2
	aesenclast	%xmm0,%xmm3
	aesenclast	%xmm0,%xmm4
	retq


.p2align	4
_aesni_decrypt3:
	movups	(%rcx),%xmm0
	shrl	$1,%eax
	movups	16(%rcx),%xmm1
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115

	aesdec	%xmm1,%xmm2
	aesdec	%xmm1,%xmm3
	aesdec	%xmm1,%xmm4
	aesdeclast	%xmm0,%xmm2
	aesdeclast	%xmm0,%xmm3
	aesdeclast	%xmm0,%xmm4
	.byte	0xf3,0xc3


.p2align	4
_aesni_encrypt4:
	movups	(%rcx),%xmm0
	shrl	$1,%eax
	movups	16(%rcx),%xmm1







|







101
102
103
104
105
106
107
108
109
110
111
112
113
114
115

	aesdec	%xmm1,%xmm2
	aesdec	%xmm1,%xmm3
	aesdec	%xmm1,%xmm4
	aesdeclast	%xmm0,%xmm2
	aesdeclast	%xmm0,%xmm3
	aesdeclast	%xmm0,%xmm4
	retq


.p2align	4
_aesni_encrypt4:
	movups	(%rcx),%xmm0
	shrl	$1,%eax
	movups	16(%rcx),%xmm1
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
	aesenc	%xmm1,%xmm3
	aesenc	%xmm1,%xmm4
	aesenc	%xmm1,%xmm5
	aesenclast	%xmm0,%xmm2
	aesenclast	%xmm0,%xmm3
	aesenclast	%xmm0,%xmm4
	aesenclast	%xmm0,%xmm5
	.byte	0xf3,0xc3


.p2align	4
_aesni_decrypt4:
	movups	(%rcx),%xmm0
	shrl	$1,%eax
	movups	16(%rcx),%xmm1







|







139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
	aesenc	%xmm1,%xmm3
	aesenc	%xmm1,%xmm4
	aesenc	%xmm1,%xmm5
	aesenclast	%xmm0,%xmm2
	aesenclast	%xmm0,%xmm3
	aesenclast	%xmm0,%xmm4
	aesenclast	%xmm0,%xmm5
	retq


.p2align	4
_aesni_decrypt4:
	movups	(%rcx),%xmm0
	shrl	$1,%eax
	movups	16(%rcx),%xmm1
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
	aesdec	%xmm1,%xmm3
	aesdec	%xmm1,%xmm4
	aesdec	%xmm1,%xmm5
	aesdeclast	%xmm0,%xmm2
	aesdeclast	%xmm0,%xmm3
	aesdeclast	%xmm0,%xmm4
	aesdeclast	%xmm0,%xmm5
	.byte	0xf3,0xc3


.p2align	4
_aesni_encrypt6:
	movups	(%rcx),%xmm0
	shrl	$1,%eax
	movups	16(%rcx),%xmm1







|







177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
	aesdec	%xmm1,%xmm3
	aesdec	%xmm1,%xmm4
	aesdec	%xmm1,%xmm5
	aesdeclast	%xmm0,%xmm2
	aesdeclast	%xmm0,%xmm3
	aesdeclast	%xmm0,%xmm4
	aesdeclast	%xmm0,%xmm5
	retq


.p2align	4
_aesni_encrypt6:
	movups	(%rcx),%xmm0
	shrl	$1,%eax
	movups	16(%rcx),%xmm1
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
	aesenc	%xmm1,%xmm7
	aesenclast	%xmm0,%xmm2
	aesenclast	%xmm0,%xmm3
	aesenclast	%xmm0,%xmm4
	aesenclast	%xmm0,%xmm5
	aesenclast	%xmm0,%xmm6
	aesenclast	%xmm0,%xmm7
	.byte	0xf3,0xc3


.p2align	4
_aesni_decrypt6:
	movups	(%rcx),%xmm0
	shrl	$1,%eax
	movups	16(%rcx),%xmm1







|







234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
	aesenc	%xmm1,%xmm7
	aesenclast	%xmm0,%xmm2
	aesenclast	%xmm0,%xmm3
	aesenclast	%xmm0,%xmm4
	aesenclast	%xmm0,%xmm5
	aesenclast	%xmm0,%xmm6
	aesenclast	%xmm0,%xmm7
	retq


.p2align	4
_aesni_decrypt6:
	movups	(%rcx),%xmm0
	shrl	$1,%eax
	movups	16(%rcx),%xmm1
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
	aesdec	%xmm1,%xmm7
	aesdeclast	%xmm0,%xmm2
	aesdeclast	%xmm0,%xmm3
	aesdeclast	%xmm0,%xmm4
	aesdeclast	%xmm0,%xmm5
	aesdeclast	%xmm0,%xmm6
	aesdeclast	%xmm0,%xmm7
	.byte	0xf3,0xc3


.p2align	4
_aesni_encrypt8:
	movups	(%rcx),%xmm0
	shrl	$1,%eax
	movups	16(%rcx),%xmm1







|







291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
	aesdec	%xmm1,%xmm7
	aesdeclast	%xmm0,%xmm2
	aesdeclast	%xmm0,%xmm3
	aesdeclast	%xmm0,%xmm4
	aesdeclast	%xmm0,%xmm5
	aesdeclast	%xmm0,%xmm6
	aesdeclast	%xmm0,%xmm7
	retq


.p2align	4
_aesni_encrypt8:
	movups	(%rcx),%xmm0
	shrl	$1,%eax
	movups	16(%rcx),%xmm1
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
	aesenclast	%xmm0,%xmm3
	aesenclast	%xmm0,%xmm4
	aesenclast	%xmm0,%xmm5
	aesenclast	%xmm0,%xmm6
	aesenclast	%xmm0,%xmm7
	aesenclast	%xmm0,%xmm8
	aesenclast	%xmm0,%xmm9
	.byte	0xf3,0xc3


.p2align	4
_aesni_decrypt8:
	movups	(%rcx),%xmm0
	shrl	$1,%eax
	movups	16(%rcx),%xmm1







|







361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
	aesenclast	%xmm0,%xmm3
	aesenclast	%xmm0,%xmm4
	aesenclast	%xmm0,%xmm5
	aesenclast	%xmm0,%xmm6
	aesenclast	%xmm0,%xmm7
	aesenclast	%xmm0,%xmm8
	aesenclast	%xmm0,%xmm9
	retq


.p2align	4
_aesni_decrypt8:
	movups	(%rcx),%xmm0
	shrl	$1,%eax
	movups	16(%rcx),%xmm1
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
	aesdeclast	%xmm0,%xmm3
	aesdeclast	%xmm0,%xmm4
	aesdeclast	%xmm0,%xmm5
	aesdeclast	%xmm0,%xmm6
	aesdeclast	%xmm0,%xmm7
	aesdeclast	%xmm0,%xmm8
	aesdeclast	%xmm0,%xmm9
	.byte	0xf3,0xc3

.globl	_aesni_ecb_encrypt

.p2align	4
_aesni_ecb_encrypt:
	andq	$-16,%rdx
	jz	L$ecb_ret







|







431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
	aesdeclast	%xmm0,%xmm3
	aesdeclast	%xmm0,%xmm4
	aesdeclast	%xmm0,%xmm5
	aesdeclast	%xmm0,%xmm6
	aesdeclast	%xmm0,%xmm7
	aesdeclast	%xmm0,%xmm8
	aesdeclast	%xmm0,%xmm9
	retq

.globl	_aesni_ecb_encrypt

.p2align	4
_aesni_ecb_encrypt:
	andq	$-16,%rdx
	jz	L$ecb_ret
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
	movups	%xmm3,16(%rsi)
	movups	%xmm4,32(%rsi)
	movups	%xmm5,48(%rsi)
	movups	%xmm6,64(%rsi)
	movups	%xmm7,80(%rsi)

L$ecb_ret:
	.byte	0xf3,0xc3

.globl	_aesni_ccm64_encrypt_blocks

.p2align	4
_aesni_ccm64_encrypt_blocks:
	movl	240(%rcx),%eax
	movdqu	(%r8),%xmm9







|







733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
	movups	%xmm3,16(%rsi)
	movups	%xmm4,32(%rsi)
	movups	%xmm5,48(%rsi)
	movups	%xmm6,64(%rsi)
	movups	%xmm7,80(%rsi)

L$ecb_ret:
	retq

.globl	_aesni_ccm64_encrypt_blocks

.p2align	4
_aesni_ccm64_encrypt_blocks:
	movl	240(%rcx),%eax
	movdqu	(%r8),%xmm9
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
	movdqa	%xmm9,%xmm2
	movups	%xmm8,(%rsi)
	leaq	16(%rsi),%rsi
.byte	102,15,56,0,215
	jnz	L$ccm64_enc_outer

	movups	%xmm3,(%r9)
	.byte	0xf3,0xc3

.globl	_aesni_ccm64_decrypt_blocks

.p2align	4
_aesni_ccm64_decrypt_blocks:
	movl	240(%rcx),%eax
	movups	(%r8),%xmm9







|







790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
	movdqa	%xmm9,%xmm2
	movups	%xmm8,(%rsi)
	leaq	16(%rsi),%rsi
.byte	102,15,56,0,215
	jnz	L$ccm64_enc_outer

	movups	%xmm3,(%r9)
	retq

.globl	_aesni_ccm64_decrypt_blocks

.p2align	4
_aesni_ccm64_decrypt_blocks:
	movl	240(%rcx),%eax
	movups	(%r8),%xmm9
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
	aesenc	%xmm1,%xmm3
	decl	%eax
	movups	(%r11),%xmm1
	leaq	16(%r11),%r11
	jnz	L$oop_enc1_6	
	aesenclast	%xmm1,%xmm3
	movups	%xmm3,(%r9)
	.byte	0xf3,0xc3

.globl	_aesni_ctr32_encrypt_blocks

.p2align	4
_aesni_ctr32_encrypt_blocks:
	cmpq	$1,%rdx
	je	L$ctr32_one_shortcut







|







877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
	aesenc	%xmm1,%xmm3
	decl	%eax
	movups	(%r11),%xmm1
	leaq	16(%r11),%r11
	jnz	L$oop_enc1_6	
	aesenclast	%xmm1,%xmm3
	movups	%xmm3,(%r9)
	retq

.globl	_aesni_ctr32_encrypt_blocks

.p2align	4
_aesni_ctr32_encrypt_blocks:
	cmpq	$1,%rdx
	je	L$ctr32_one_shortcut
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
	xorps	%xmm4,%xmm10
	movups	%xmm9,16(%rsi)
	xorps	%xmm5,%xmm11
	movups	%xmm10,32(%rsi)
	movups	%xmm11,48(%rsi)

L$ctr32_done:
	.byte	0xf3,0xc3

.globl	_aesni_xts_encrypt

.p2align	4
_aesni_xts_encrypt:
	leaq	-104(%rsp),%rsp
	movups	(%r9),%xmm15







|







1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
	xorps	%xmm4,%xmm10
	movups	%xmm9,16(%rsi)
	xorps	%xmm5,%xmm11
	movups	%xmm10,32(%rsi)
	movups	%xmm11,48(%rsi)

L$ctr32_done:
	retq

.globl	_aesni_xts_encrypt

.p2align	4
_aesni_xts_encrypt:
	leaq	-104(%rsp),%rsp
	movups	(%r9),%xmm15
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
	aesenclast	%xmm1,%xmm2
	xorps	%xmm10,%xmm2
	movups	%xmm2,-16(%rsi)

L$xts_enc_ret:
	leaq	104(%rsp),%rsp
L$xts_enc_epilogue:
	.byte	0xf3,0xc3

.globl	_aesni_xts_decrypt

.p2align	4
_aesni_xts_decrypt:
	leaq	-104(%rsp),%rsp
	movups	(%r9),%xmm15







|







1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
	aesenclast	%xmm1,%xmm2
	xorps	%xmm10,%xmm2
	movups	%xmm2,-16(%rsi)

L$xts_enc_ret:
	leaq	104(%rsp),%rsp
L$xts_enc_epilogue:
	retq

.globl	_aesni_xts_decrypt

.p2align	4
_aesni_xts_decrypt:
	leaq	-104(%rsp),%rsp
	movups	(%r9),%xmm15
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
	aesdeclast	%xmm1,%xmm2
	xorps	%xmm10,%xmm2
	movups	%xmm2,(%rsi)

L$xts_dec_ret:
	leaq	104(%rsp),%rsp
L$xts_dec_epilogue:
	.byte	0xf3,0xc3

.globl	_aesni_cbc_encrypt

.p2align	4
_aesni_cbc_encrypt:
	testq	%rdx,%rdx
	jz	L$cbc_ret







|







1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
	aesdeclast	%xmm1,%xmm2
	xorps	%xmm10,%xmm2
	movups	%xmm2,(%rsi)

L$xts_dec_ret:
	leaq	104(%rsp),%rsp
L$xts_dec_epilogue:
	retq

.globl	_aesni_cbc_encrypt

.p2align	4
_aesni_cbc_encrypt:
	testq	%rdx,%rdx
	jz	L$cbc_ret
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
	movq	%rsi,%rdi
	subq	%rdx,%rcx
	leaq	-24(%rsp),%rsi
.long	0x9066A4F3	

L$cbc_dec_ret:
L$cbc_ret:
	.byte	0xf3,0xc3

.globl	_aesni_set_decrypt_key

.p2align	4
_aesni_set_decrypt_key:
	subq	$8,%rsp
	call	__aesni_set_encrypt_key







|







2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
	movq	%rsi,%rdi
	subq	%rdx,%rcx
	leaq	-24(%rsp),%rsi
.long	0x9066A4F3	

L$cbc_dec_ret:
L$cbc_ret:
	retq

.globl	_aesni_set_decrypt_key

.p2align	4
_aesni_set_decrypt_key:
	subq	$8,%rsp
	call	__aesni_set_encrypt_key
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
	ja	L$dec_key_inverse

	movups	(%rdx),%xmm0
	aesimc	%xmm0,%xmm0
	movups	%xmm0,(%rdi)
L$dec_key_ret:
	addq	$8,%rsp
	.byte	0xf3,0xc3
L$SEH_end_set_decrypt_key:

.globl	_aesni_set_encrypt_key

.p2align	4
_aesni_set_encrypt_key:
__aesni_set_encrypt_key:







|







2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
	ja	L$dec_key_inverse

	movups	(%rdx),%xmm0
	aesimc	%xmm0,%xmm0
	movups	%xmm0,(%rdi)
L$dec_key_ret:
	addq	$8,%rsp
	retq
L$SEH_end_set_decrypt_key:

.globl	_aesni_set_encrypt_key

.p2align	4
_aesni_set_encrypt_key:
__aesni_set_encrypt_key:
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
	jmp	L$enc_key_ret

.p2align	4
L$bad_keybits:
	movq	$-2,%rax
L$enc_key_ret:
	addq	$8,%rsp
	.byte	0xf3,0xc3
L$SEH_end_set_encrypt_key:

.p2align	4
L$key_expansion_128:
	movups	%xmm0,(%rax)
	leaq	16(%rax),%rax
L$key_expansion_128_cold:
	shufps	$16,%xmm0,%xmm4
	xorps	%xmm4,%xmm0
	shufps	$140,%xmm0,%xmm4
	xorps	%xmm4,%xmm0
	shufps	$255,%xmm1,%xmm1
	xorps	%xmm1,%xmm0
	.byte	0xf3,0xc3

.p2align	4
L$key_expansion_192a:
	movups	%xmm0,(%rax)
	leaq	16(%rax),%rax
L$key_expansion_192a_cold:
	movaps	%xmm2,%xmm5
L$key_expansion_192b_warm:
	shufps	$16,%xmm0,%xmm4
	movdqa	%xmm2,%xmm3
	xorps	%xmm4,%xmm0
	shufps	$140,%xmm0,%xmm4
	pslldq	$4,%xmm3
	xorps	%xmm4,%xmm0
	pshufd	$85,%xmm1,%xmm1
	pxor	%xmm3,%xmm2
	pxor	%xmm1,%xmm0
	pshufd	$255,%xmm0,%xmm3
	pxor	%xmm3,%xmm2
	.byte	0xf3,0xc3

.p2align	4
L$key_expansion_192b:
	movaps	%xmm0,%xmm3
	shufps	$68,%xmm0,%xmm5
	movups	%xmm5,(%rax)
	shufps	$78,%xmm2,%xmm3







|













|



















|







2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
	jmp	L$enc_key_ret

.p2align	4
L$bad_keybits:
	movq	$-2,%rax
L$enc_key_ret:
	addq	$8,%rsp
	retq
L$SEH_end_set_encrypt_key:

.p2align	4
L$key_expansion_128:
	movups	%xmm0,(%rax)
	leaq	16(%rax),%rax
L$key_expansion_128_cold:
	shufps	$16,%xmm0,%xmm4
	xorps	%xmm4,%xmm0
	shufps	$140,%xmm0,%xmm4
	xorps	%xmm4,%xmm0
	shufps	$255,%xmm1,%xmm1
	xorps	%xmm1,%xmm0
	retq

.p2align	4
L$key_expansion_192a:
	movups	%xmm0,(%rax)
	leaq	16(%rax),%rax
L$key_expansion_192a_cold:
	movaps	%xmm2,%xmm5
L$key_expansion_192b_warm:
	shufps	$16,%xmm0,%xmm4
	movdqa	%xmm2,%xmm3
	xorps	%xmm4,%xmm0
	shufps	$140,%xmm0,%xmm4
	pslldq	$4,%xmm3
	xorps	%xmm4,%xmm0
	pshufd	$85,%xmm1,%xmm1
	pxor	%xmm3,%xmm2
	pxor	%xmm1,%xmm0
	pshufd	$255,%xmm0,%xmm3
	pxor	%xmm3,%xmm2
	retq

.p2align	4
L$key_expansion_192b:
	movaps	%xmm0,%xmm3
	shufps	$68,%xmm0,%xmm5
	movups	%xmm5,(%rax)
	shufps	$78,%xmm2,%xmm3
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
L$key_expansion_256a_cold:
	shufps	$16,%xmm0,%xmm4
	xorps	%xmm4,%xmm0
	shufps	$140,%xmm0,%xmm4
	xorps	%xmm4,%xmm0
	shufps	$255,%xmm1,%xmm1
	xorps	%xmm1,%xmm0
	.byte	0xf3,0xc3

.p2align	4
L$key_expansion_256b:
	movups	%xmm0,(%rax)
	leaq	16(%rax),%rax

	shufps	$16,%xmm2,%xmm4
	xorps	%xmm4,%xmm2
	shufps	$140,%xmm2,%xmm4
	xorps	%xmm4,%xmm2
	shufps	$170,%xmm1,%xmm1
	xorps	%xmm1,%xmm2
	.byte	0xf3,0xc3


.p2align	6
L$bswap_mask:
.byte	15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
L$increment32:
.long	6,6,6,0







|












|







2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
L$key_expansion_256a_cold:
	shufps	$16,%xmm0,%xmm4
	xorps	%xmm4,%xmm0
	shufps	$140,%xmm0,%xmm4
	xorps	%xmm4,%xmm0
	shufps	$255,%xmm1,%xmm1
	xorps	%xmm1,%xmm0
	retq

.p2align	4
L$key_expansion_256b:
	movups	%xmm0,(%rax)
	leaq	16(%rax),%rax

	shufps	$16,%xmm2,%xmm4
	xorps	%xmm4,%xmm2
	shufps	$140,%xmm2,%xmm4
	xorps	%xmm4,%xmm2
	shufps	$170,%xmm1,%xmm1
	xorps	%xmm1,%xmm2
	retq


.p2align	6
L$bswap_mask:
.byte	15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
L$increment32:
.long	6,6,6,0
Changes to jni/libressl/crypto/aes/aesni-sha1-elf-x86_64.S.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "x86_arch.h"
.text	

.hidden	OPENSSL_ia32cap_P

.globl	aesni_cbc_sha1_enc
.type	aesni_cbc_sha1_enc,@function
.align	16
aesni_cbc_sha1_enc:

	movl	OPENSSL_ia32cap_P+0(%rip),%r10d
	movl	OPENSSL_ia32cap_P+4(%rip),%r11d
	jmp	aesni_cbc_sha1_enc_ssse3
	.byte	0xf3,0xc3
.size	aesni_cbc_sha1_enc,.-aesni_cbc_sha1_enc
.type	aesni_cbc_sha1_enc_ssse3,@function
.align	16
aesni_cbc_sha1_enc_ssse3:
	movq	8(%rsp),%r10















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "x86_arch.h"
.text	

.hidden	OPENSSL_ia32cap_P

.globl	aesni_cbc_sha1_enc
.type	aesni_cbc_sha1_enc,@function
.align	16
aesni_cbc_sha1_enc:

	movl	OPENSSL_ia32cap_P+0(%rip),%r10d
	movl	OPENSSL_ia32cap_P+4(%rip),%r11d
	jmp	aesni_cbc_sha1_enc_ssse3
	retq
.size	aesni_cbc_sha1_enc,.-aesni_cbc_sha1_enc
.type	aesni_cbc_sha1_enc_ssse3,@function
.align	16
aesni_cbc_sha1_enc_ssse3:
	movq	8(%rsp),%r10


1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
.Lepilogue_ssse3:
	.byte	0xf3,0xc3
.size	aesni_cbc_sha1_enc_ssse3,.-aesni_cbc_sha1_enc_ssse3
.align	64
K_XX_XX:
.long	0x5a827999,0x5a827999,0x5a827999,0x5a827999	
.long	0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1	
.long	0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc	
.long	0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6	







|







1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
.Lepilogue_ssse3:
	retq
.size	aesni_cbc_sha1_enc_ssse3,.-aesni_cbc_sha1_enc_ssse3
.align	64
K_XX_XX:
.long	0x5a827999,0x5a827999,0x5a827999,0x5a827999	
.long	0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1	
.long	0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc	
.long	0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6	
Changes to jni/libressl/crypto/aes/aesni-sha1-macosx-x86_64.S.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "x86_arch.h"
.text	

.private_extern	_OPENSSL_ia32cap_P

.globl	_aesni_cbc_sha1_enc

.p2align	4
_aesni_cbc_sha1_enc:

	movl	_OPENSSL_ia32cap_P+0(%rip),%r10d
	movl	_OPENSSL_ia32cap_P+4(%rip),%r11d
	jmp	aesni_cbc_sha1_enc_ssse3
	.byte	0xf3,0xc3


.p2align	4
aesni_cbc_sha1_enc_ssse3:
	movq	8(%rsp),%r10















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "x86_arch.h"
.text	

.private_extern	_OPENSSL_ia32cap_P

.globl	_aesni_cbc_sha1_enc

.p2align	4
_aesni_cbc_sha1_enc:

	movl	_OPENSSL_ia32cap_P+0(%rip),%r10d
	movl	_OPENSSL_ia32cap_P+4(%rip),%r11d
	jmp	aesni_cbc_sha1_enc_ssse3
	retq


.p2align	4
aesni_cbc_sha1_enc_ssse3:
	movq	8(%rsp),%r10


1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
L$epilogue_ssse3:
	.byte	0xf3,0xc3

.p2align	6
K_XX_XX:
.long	0x5a827999,0x5a827999,0x5a827999,0x5a827999	
.long	0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1	
.long	0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc	
.long	0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6	
.long	0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f	

.byte	65,69,83,78,73,45,67,66,67,43,83,72,65,49,32,115,116,105,116,99,104,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.p2align	6







|











1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
L$epilogue_ssse3:
	retq

.p2align	6
K_XX_XX:
.long	0x5a827999,0x5a827999,0x5a827999,0x5a827999	
.long	0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1	
.long	0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc	
.long	0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6	
.long	0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f	

.byte	65,69,83,78,73,45,67,66,67,43,83,72,65,49,32,115,116,105,116,99,104,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.p2align	6
Changes to jni/libressl/crypto/aes/bsaes-elf-x86_64.S.
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
	pxor	%xmm7,%xmm5
	pxor	%xmm7,%xmm2
	pxor	%xmm7,%xmm6
	pxor	%xmm7,%xmm1
	pxor	%xmm7,%xmm4
	pxor	%xmm7,%xmm15
	pxor	%xmm7,%xmm0
	.byte	0xf3,0xc3
.size	_bsaes_encrypt8,.-_bsaes_encrypt8

.type	_bsaes_decrypt8,@function
.align	64
_bsaes_decrypt8:
	leaq	.LBS0(%rip),%r11








|







469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
	pxor	%xmm7,%xmm5
	pxor	%xmm7,%xmm2
	pxor	%xmm7,%xmm6
	pxor	%xmm7,%xmm1
	pxor	%xmm7,%xmm4
	pxor	%xmm7,%xmm15
	pxor	%xmm7,%xmm0
	retq
.size	_bsaes_encrypt8,.-_bsaes_encrypt8

.type	_bsaes_decrypt8,@function
.align	64
_bsaes_decrypt8:
	leaq	.LBS0(%rip),%r11

975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
	pxor	%xmm7,%xmm3
	pxor	%xmm7,%xmm1
	pxor	%xmm7,%xmm6
	pxor	%xmm7,%xmm2
	pxor	%xmm7,%xmm4
	pxor	%xmm7,%xmm15
	pxor	%xmm7,%xmm0
	.byte	0xf3,0xc3
.size	_bsaes_decrypt8,.-_bsaes_decrypt8
.type	_bsaes_key_convert,@function
.align	16
_bsaes_key_convert:
	leaq	.Lmasks(%rip),%r11
	movdqu	(%rcx),%xmm7
	leaq	16(%rcx),%rcx







|







975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
	pxor	%xmm7,%xmm3
	pxor	%xmm7,%xmm1
	pxor	%xmm7,%xmm6
	pxor	%xmm7,%xmm2
	pxor	%xmm7,%xmm4
	pxor	%xmm7,%xmm15
	pxor	%xmm7,%xmm0
	retq
.size	_bsaes_decrypt8,.-_bsaes_decrypt8
.type	_bsaes_key_convert,@function
.align	16
_bsaes_key_convert:
	leaq	.Lmasks(%rip),%r11
	movdqu	(%rcx),%xmm7
	leaq	16(%rcx),%rcx
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
	movdqa	%xmm15,112(%rax)
	leaq	128(%rax),%rax
	decl	%r10d
	jnz	.Lkey_loop

	movdqa	80(%r11),%xmm7

	.byte	0xf3,0xc3
.size	_bsaes_key_convert,.-_bsaes_key_convert

.globl	bsaes_cbc_encrypt
.type	bsaes_cbc_encrypt,@function
.align	16
bsaes_cbc_encrypt:
	cmpl	$0,%r9d







|







1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
	movdqa	%xmm15,112(%rax)
	leaq	128(%rax),%rax
	decl	%r10d
	jnz	.Lkey_loop

	movdqa	80(%r11),%xmm7

	retq
.size	_bsaes_key_convert,.-_bsaes_key_convert

.globl	bsaes_cbc_encrypt
.type	bsaes_cbc_encrypt,@function
.align	16
bsaes_cbc_encrypt:
	cmpl	$0,%r9d
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
	movq	88(%rsp),%r13
	movq	96(%rsp),%r12
	movq	104(%rsp),%rbx
	movq	112(%rsp),%rax
	leaq	120(%rsp),%rsp
	movq	%rax,%rbp
.Lcbc_dec_epilogue:
	.byte	0xf3,0xc3
.size	bsaes_cbc_encrypt,.-bsaes_cbc_encrypt

.globl	bsaes_ctr32_encrypt_blocks
.type	bsaes_ctr32_encrypt_blocks,@function
.align	16
bsaes_ctr32_encrypt_blocks:
	movq	%rsp,%rax







|







1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
	movq	88(%rsp),%r13
	movq	96(%rsp),%r12
	movq	104(%rsp),%rbx
	movq	112(%rsp),%rax
	leaq	120(%rsp),%rsp
	movq	%rax,%rbp
.Lcbc_dec_epilogue:
	retq
.size	bsaes_cbc_encrypt,.-bsaes_cbc_encrypt

.globl	bsaes_ctr32_encrypt_blocks
.type	bsaes_ctr32_encrypt_blocks,@function
.align	16
bsaes_ctr32_encrypt_blocks:
	movq	%rsp,%rax
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
	movq	88(%rsp),%r13
	movq	96(%rsp),%r12
	movq	104(%rsp),%rbx
	movq	112(%rsp),%rax
	leaq	120(%rsp),%rsp
	movq	%rax,%rbp
.Lctr_enc_epilogue:
	.byte	0xf3,0xc3
.size	bsaes_ctr32_encrypt_blocks,.-bsaes_ctr32_encrypt_blocks
.globl	bsaes_xts_encrypt
.type	bsaes_xts_encrypt,@function
.align	16
bsaes_xts_encrypt:
	movq	%rsp,%rax
.Lxts_enc_prologue:







|







1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
	movq	88(%rsp),%r13
	movq	96(%rsp),%r12
	movq	104(%rsp),%rbx
	movq	112(%rsp),%rax
	leaq	120(%rsp),%rsp
	movq	%rax,%rbp
.Lctr_enc_epilogue:
	retq
.size	bsaes_ctr32_encrypt_blocks,.-bsaes_ctr32_encrypt_blocks
.globl	bsaes_xts_encrypt
.type	bsaes_xts_encrypt,@function
.align	16
bsaes_xts_encrypt:
	movq	%rsp,%rax
.Lxts_enc_prologue:
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
	movq	88(%rsp),%r13
	movq	96(%rsp),%r12
	movq	104(%rsp),%rbx
	movq	112(%rsp),%rax
	leaq	120(%rsp),%rsp
	movq	%rax,%rbp
.Lxts_enc_epilogue:
	.byte	0xf3,0xc3
.size	bsaes_xts_encrypt,.-bsaes_xts_encrypt

.globl	bsaes_xts_decrypt
.type	bsaes_xts_decrypt,@function
.align	16
bsaes_xts_decrypt:
	movq	%rsp,%rax







|







1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
	movq	88(%rsp),%r13
	movq	96(%rsp),%r12
	movq	104(%rsp),%rbx
	movq	112(%rsp),%rax
	leaq	120(%rsp),%rsp
	movq	%rax,%rbp
.Lxts_enc_epilogue:
	retq
.size	bsaes_xts_encrypt,.-bsaes_xts_encrypt

.globl	bsaes_xts_decrypt
.type	bsaes_xts_decrypt,@function
.align	16
bsaes_xts_decrypt:
	movq	%rsp,%rax
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
	movq	88(%rsp),%r13
	movq	96(%rsp),%r12
	movq	104(%rsp),%rbx
	movq	112(%rsp),%rax
	leaq	120(%rsp),%rsp
	movq	%rax,%rbp
.Lxts_dec_epilogue:
	.byte	0xf3,0xc3
.size	bsaes_xts_decrypt,.-bsaes_xts_decrypt
.type	_bsaes_const,@object
.align	64
_bsaes_const:
.LM0ISR:
.quad	0x0a0e0206070b0f03, 0x0004080c0d010509
.LISRM0:







|







2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
	movq	88(%rsp),%r13
	movq	96(%rsp),%r12
	movq	104(%rsp),%rbx
	movq	112(%rsp),%rax
	leaq	120(%rsp),%rsp
	movq	%rax,%rbp
.Lxts_dec_epilogue:
	retq
.size	bsaes_xts_decrypt,.-bsaes_xts_decrypt
.type	_bsaes_const,@object
.align	64
_bsaes_const:
.LM0ISR:
.quad	0x0a0e0206070b0f03, 0x0004080c0d010509
.LISRM0:
Changes to jni/libressl/crypto/aes/bsaes-macosx-x86_64.S.
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
	pxor	%xmm7,%xmm5
	pxor	%xmm7,%xmm2
	pxor	%xmm7,%xmm6
	pxor	%xmm7,%xmm1
	pxor	%xmm7,%xmm4
	pxor	%xmm7,%xmm15
	pxor	%xmm7,%xmm0
	.byte	0xf3,0xc3



.p2align	6
_bsaes_decrypt8:
	leaq	L$BS0(%rip),%r11








|







469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
	pxor	%xmm7,%xmm5
	pxor	%xmm7,%xmm2
	pxor	%xmm7,%xmm6
	pxor	%xmm7,%xmm1
	pxor	%xmm7,%xmm4
	pxor	%xmm7,%xmm15
	pxor	%xmm7,%xmm0
	retq



.p2align	6
_bsaes_decrypt8:
	leaq	L$BS0(%rip),%r11

975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
	pxor	%xmm7,%xmm3
	pxor	%xmm7,%xmm1
	pxor	%xmm7,%xmm6
	pxor	%xmm7,%xmm2
	pxor	%xmm7,%xmm4
	pxor	%xmm7,%xmm15
	pxor	%xmm7,%xmm0
	.byte	0xf3,0xc3


.p2align	4
_bsaes_key_convert:
	leaq	L$masks(%rip),%r11
	movdqu	(%rcx),%xmm7
	leaq	16(%rcx),%rcx







|







975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
	pxor	%xmm7,%xmm3
	pxor	%xmm7,%xmm1
	pxor	%xmm7,%xmm6
	pxor	%xmm7,%xmm2
	pxor	%xmm7,%xmm4
	pxor	%xmm7,%xmm15
	pxor	%xmm7,%xmm0
	retq


.p2align	4
_bsaes_key_convert:
	leaq	L$masks(%rip),%r11
	movdqu	(%rcx),%xmm7
	leaq	16(%rcx),%rcx
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
	movdqa	%xmm15,112(%rax)
	leaq	128(%rax),%rax
	decl	%r10d
	jnz	L$key_loop

	movdqa	80(%r11),%xmm7

	.byte	0xf3,0xc3


.globl	_bsaes_cbc_encrypt

.p2align	4
_bsaes_cbc_encrypt:
	cmpl	$0,%r9d







|







1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
	movdqa	%xmm15,112(%rax)
	leaq	128(%rax),%rax
	decl	%r10d
	jnz	L$key_loop

	movdqa	80(%r11),%xmm7

	retq


.globl	_bsaes_cbc_encrypt

.p2align	4
_bsaes_cbc_encrypt:
	cmpl	$0,%r9d
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
	movq	88(%rsp),%r13
	movq	96(%rsp),%r12
	movq	104(%rsp),%rbx
	movq	112(%rsp),%rax
	leaq	120(%rsp),%rsp
	movq	%rax,%rbp
L$cbc_dec_epilogue:
	.byte	0xf3,0xc3


.globl	_bsaes_ctr32_encrypt_blocks

.p2align	4
_bsaes_ctr32_encrypt_blocks:
	movq	%rsp,%rax







|







1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
	movq	88(%rsp),%r13
	movq	96(%rsp),%r12
	movq	104(%rsp),%rbx
	movq	112(%rsp),%rax
	leaq	120(%rsp),%rsp
	movq	%rax,%rbp
L$cbc_dec_epilogue:
	retq


.globl	_bsaes_ctr32_encrypt_blocks

.p2align	4
_bsaes_ctr32_encrypt_blocks:
	movq	%rsp,%rax
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
	movq	88(%rsp),%r13
	movq	96(%rsp),%r12
	movq	104(%rsp),%rbx
	movq	112(%rsp),%rax
	leaq	120(%rsp),%rsp
	movq	%rax,%rbp
L$ctr_enc_epilogue:
	.byte	0xf3,0xc3

.globl	_bsaes_xts_encrypt

.p2align	4
_bsaes_xts_encrypt:
	movq	%rsp,%rax
L$xts_enc_prologue:







|







1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
	movq	88(%rsp),%r13
	movq	96(%rsp),%r12
	movq	104(%rsp),%rbx
	movq	112(%rsp),%rax
	leaq	120(%rsp),%rsp
	movq	%rax,%rbp
L$ctr_enc_epilogue:
	retq

.globl	_bsaes_xts_encrypt

.p2align	4
_bsaes_xts_encrypt:
	movq	%rsp,%rax
L$xts_enc_prologue:
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
	movq	88(%rsp),%r13
	movq	96(%rsp),%r12
	movq	104(%rsp),%rbx
	movq	112(%rsp),%rax
	leaq	120(%rsp),%rsp
	movq	%rax,%rbp
L$xts_enc_epilogue:
	.byte	0xf3,0xc3


.globl	_bsaes_xts_decrypt

.p2align	4
_bsaes_xts_decrypt:
	movq	%rsp,%rax







|







1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
	movq	88(%rsp),%r13
	movq	96(%rsp),%r12
	movq	104(%rsp),%rbx
	movq	112(%rsp),%rax
	leaq	120(%rsp),%rsp
	movq	%rax,%rbp
L$xts_enc_epilogue:
	retq


.globl	_bsaes_xts_decrypt

.p2align	4
_bsaes_xts_decrypt:
	movq	%rsp,%rax
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
	movq	88(%rsp),%r13
	movq	96(%rsp),%r12
	movq	104(%rsp),%rbx
	movq	112(%rsp),%rax
	leaq	120(%rsp),%rsp
	movq	%rax,%rbp
L$xts_dec_epilogue:
	.byte	0xf3,0xc3


.p2align	6
_bsaes_const:
L$M0ISR:
.quad	0x0a0e0206070b0f03, 0x0004080c0d010509
L$ISRM0:







|







2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
	movq	88(%rsp),%r13
	movq	96(%rsp),%r12
	movq	104(%rsp),%rbx
	movq	112(%rsp),%rax
	leaq	120(%rsp),%rsp
	movq	%rax,%rbp
L$xts_dec_epilogue:
	retq


.p2align	6
_bsaes_const:
L$M0ISR:
.quad	0x0a0e0206070b0f03, 0x0004080c0d010509
L$ISRM0:
Changes to jni/libressl/crypto/aes/vpaes-elf-x86_64.S.
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
	movdqa	-80(%r10),%xmm0
.byte	102,15,56,0,226
	pxor	%xmm5,%xmm4
.byte	102,15,56,0,195
	movdqa	64(%r11,%r10,1),%xmm1
	pxor	%xmm4,%xmm0
.byte	102,15,56,0,193
	.byte	0xf3,0xc3
.size	_vpaes_encrypt_core,.-_vpaes_encrypt_core













|







94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
	movdqa	-80(%r10),%xmm0
.byte	102,15,56,0,226
	pxor	%xmm5,%xmm4
.byte	102,15,56,0,195
	movdqa	64(%r11,%r10,1),%xmm1
	pxor	%xmm4,%xmm0
.byte	102,15,56,0,193
	retq
.size	_vpaes_encrypt_core,.-_vpaes_encrypt_core






201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
.byte	102,15,56,0,226
	pxor	%xmm0,%xmm4
	movdqa	112(%r10),%xmm0
	movdqa	-352(%r11),%xmm2
.byte	102,15,56,0,195
	pxor	%xmm4,%xmm0
.byte	102,15,56,0,194
	.byte	0xf3,0xc3
.size	_vpaes_decrypt_core,.-_vpaes_decrypt_core













|







201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
.byte	102,15,56,0,226
	pxor	%xmm0,%xmm4
	movdqa	112(%r10),%xmm0
	movdqa	-352(%r11),%xmm2
.byte	102,15,56,0,195
	pxor	%xmm4,%xmm0
.byte	102,15,56,0,194
	retq
.size	_vpaes_decrypt_core,.-_vpaes_decrypt_core






377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
	pxor	%xmm1,%xmm1
	pxor	%xmm2,%xmm2
	pxor	%xmm3,%xmm3
	pxor	%xmm4,%xmm4
	pxor	%xmm5,%xmm5
	pxor	%xmm6,%xmm6
	pxor	%xmm7,%xmm7
	.byte	0xf3,0xc3
.size	_vpaes_schedule_core,.-_vpaes_schedule_core













|







377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
	pxor	%xmm1,%xmm1
	pxor	%xmm2,%xmm2
	pxor	%xmm3,%xmm3
	pxor	%xmm4,%xmm4
	pxor	%xmm5,%xmm5
	pxor	%xmm6,%xmm6
	pxor	%xmm7,%xmm7
	retq
.size	_vpaes_schedule_core,.-_vpaes_schedule_core






404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
	pshufd	$128,%xmm6,%xmm0
	pxor	%xmm0,%xmm6
	pshufd	$254,%xmm7,%xmm0
	pxor	%xmm0,%xmm6
	movdqa	%xmm6,%xmm0
	pxor	%xmm1,%xmm1
	movhlps	%xmm1,%xmm6
	.byte	0xf3,0xc3
.size	_vpaes_schedule_192_smear,.-_vpaes_schedule_192_smear













|







404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
	pshufd	$128,%xmm6,%xmm0
	pxor	%xmm0,%xmm6
	pshufd	$254,%xmm7,%xmm0
	pxor	%xmm0,%xmm6
	movdqa	%xmm6,%xmm0
	pxor	%xmm1,%xmm1
	movhlps	%xmm1,%xmm6
	retq
.size	_vpaes_schedule_192_smear,.-_vpaes_schedule_192_smear






480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
	movdqa	%xmm12,%xmm0
.byte	102,15,56,0,195
	pxor	%xmm4,%xmm0


	pxor	%xmm7,%xmm0
	movdqa	%xmm0,%xmm7
	.byte	0xf3,0xc3
.size	_vpaes_schedule_round,.-_vpaes_schedule_round













|







480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
	movdqa	%xmm12,%xmm0
.byte	102,15,56,0,195
	pxor	%xmm4,%xmm0


	pxor	%xmm7,%xmm0
	movdqa	%xmm0,%xmm7
	retq
.size	_vpaes_schedule_round,.-_vpaes_schedule_round






504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
	psrld	$4,%xmm1
	pand	%xmm9,%xmm0
	movdqa	(%r11),%xmm2
.byte	102,15,56,0,208
	movdqa	16(%r11),%xmm0
.byte	102,15,56,0,193
	pxor	%xmm2,%xmm0
	.byte	0xf3,0xc3
.size	_vpaes_schedule_transform,.-_vpaes_schedule_transform













|







504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
	psrld	$4,%xmm1
	pand	%xmm9,%xmm0
	movdqa	(%r11),%xmm2
.byte	102,15,56,0,208
	movdqa	16(%r11),%xmm0
.byte	102,15,56,0,193
	pxor	%xmm2,%xmm0
	retq
.size	_vpaes_schedule_transform,.-_vpaes_schedule_transform






596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672

.Lschedule_mangle_both:
	movdqa	(%r8,%r10,1),%xmm1
.byte	102,15,56,0,217
	addq	$-16,%r8
	andq	$48,%r8
	movdqu	%xmm3,(%rdx)
	.byte	0xf3,0xc3
.size	_vpaes_schedule_mangle,.-_vpaes_schedule_mangle




.globl	vpaes_set_encrypt_key
.type	vpaes_set_encrypt_key,@function
.align	16
vpaes_set_encrypt_key:
	movl	%esi,%eax
	shrl	$5,%eax
	addl	$5,%eax
	movl	%eax,240(%rdx)

	movl	$0,%ecx
	movl	$48,%r8d
	call	_vpaes_schedule_core
	xorl	%eax,%eax
	.byte	0xf3,0xc3
.size	vpaes_set_encrypt_key,.-vpaes_set_encrypt_key

.globl	vpaes_set_decrypt_key
.type	vpaes_set_decrypt_key,@function
.align	16
vpaes_set_decrypt_key:
	movl	%esi,%eax
	shrl	$5,%eax
	addl	$5,%eax
	movl	%eax,240(%rdx)
	shll	$4,%eax
	leaq	16(%rdx,%rax,1),%rdx

	movl	$1,%ecx
	movl	%esi,%r8d
	shrl	$1,%r8d
	andl	$32,%r8d
	xorl	$32,%r8d
	call	_vpaes_schedule_core
	xorl	%eax,%eax
	.byte	0xf3,0xc3
.size	vpaes_set_decrypt_key,.-vpaes_set_decrypt_key

.globl	vpaes_encrypt
.type	vpaes_encrypt,@function
.align	16
vpaes_encrypt:
	movdqu	(%rdi),%xmm0
	call	_vpaes_preheat
	call	_vpaes_encrypt_core
	movdqu	%xmm0,(%rsi)
	.byte	0xf3,0xc3
.size	vpaes_encrypt,.-vpaes_encrypt

.globl	vpaes_decrypt
.type	vpaes_decrypt,@function
.align	16
vpaes_decrypt:
	movdqu	(%rdi),%xmm0
	call	_vpaes_preheat
	call	_vpaes_decrypt_core
	movdqu	%xmm0,(%rsi)
	.byte	0xf3,0xc3
.size	vpaes_decrypt,.-vpaes_decrypt
.globl	vpaes_cbc_encrypt
.type	vpaes_cbc_encrypt,@function
.align	16
vpaes_cbc_encrypt:
	xchgq	%rcx,%rdx
	subq	$16,%rcx







|


















|




















|










|










|







596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672

.Lschedule_mangle_both:
	movdqa	(%r8,%r10,1),%xmm1
.byte	102,15,56,0,217
	addq	$-16,%r8
	andq	$48,%r8
	movdqu	%xmm3,(%rdx)
	retq
.size	_vpaes_schedule_mangle,.-_vpaes_schedule_mangle




.globl	vpaes_set_encrypt_key
.type	vpaes_set_encrypt_key,@function
.align	16
vpaes_set_encrypt_key:
	movl	%esi,%eax
	shrl	$5,%eax
	addl	$5,%eax
	movl	%eax,240(%rdx)

	movl	$0,%ecx
	movl	$48,%r8d
	call	_vpaes_schedule_core
	xorl	%eax,%eax
	retq
.size	vpaes_set_encrypt_key,.-vpaes_set_encrypt_key

.globl	vpaes_set_decrypt_key
.type	vpaes_set_decrypt_key,@function
.align	16
vpaes_set_decrypt_key:
	movl	%esi,%eax
	shrl	$5,%eax
	addl	$5,%eax
	movl	%eax,240(%rdx)
	shll	$4,%eax
	leaq	16(%rdx,%rax,1),%rdx

	movl	$1,%ecx
	movl	%esi,%r8d
	shrl	$1,%r8d
	andl	$32,%r8d
	xorl	$32,%r8d
	call	_vpaes_schedule_core
	xorl	%eax,%eax
	retq
.size	vpaes_set_decrypt_key,.-vpaes_set_decrypt_key

.globl	vpaes_encrypt
.type	vpaes_encrypt,@function
.align	16
vpaes_encrypt:
	movdqu	(%rdi),%xmm0
	call	_vpaes_preheat
	call	_vpaes_encrypt_core
	movdqu	%xmm0,(%rsi)
	retq
.size	vpaes_encrypt,.-vpaes_encrypt

.globl	vpaes_decrypt
.type	vpaes_decrypt,@function
.align	16
vpaes_decrypt:
	movdqu	(%rdi),%xmm0
	call	_vpaes_preheat
	call	_vpaes_decrypt_core
	movdqu	%xmm0,(%rsi)
	retq
.size	vpaes_decrypt,.-vpaes_decrypt
.globl	vpaes_cbc_encrypt
.type	vpaes_cbc_encrypt,@function
.align	16
vpaes_cbc_encrypt:
	xchgq	%rcx,%rdx
	subq	$16,%rcx
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
	movdqu	%xmm0,(%rsi,%rdi,1)
	leaq	16(%rdi),%rdi
	subq	$16,%rcx
	jnc	.Lcbc_dec_loop
.Lcbc_done:
	movdqu	%xmm6,(%r8)
.Lcbc_abort:
	.byte	0xf3,0xc3
.size	vpaes_cbc_encrypt,.-vpaes_cbc_encrypt






.type	_vpaes_preheat,@function
.align	16
_vpaes_preheat:
	leaq	.Lk_s0F(%rip),%r10
	movdqa	-32(%r10),%xmm10
	movdqa	-16(%r10),%xmm11
	movdqa	0(%r10),%xmm9
	movdqa	48(%r10),%xmm13
	movdqa	64(%r10),%xmm12
	movdqa	80(%r10),%xmm15
	movdqa	96(%r10),%xmm14
	.byte	0xf3,0xc3
.size	_vpaes_preheat,.-_vpaes_preheat





.type	_vpaes_consts,@object







|


















|







698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
	movdqu	%xmm0,(%rsi,%rdi,1)
	leaq	16(%rdi),%rdi
	subq	$16,%rcx
	jnc	.Lcbc_dec_loop
.Lcbc_done:
	movdqu	%xmm6,(%r8)
.Lcbc_abort:
	retq
.size	vpaes_cbc_encrypt,.-vpaes_cbc_encrypt






.type	_vpaes_preheat,@function
.align	16
_vpaes_preheat:
	leaq	.Lk_s0F(%rip),%r10
	movdqa	-32(%r10),%xmm10
	movdqa	-16(%r10),%xmm11
	movdqa	0(%r10),%xmm9
	movdqa	48(%r10),%xmm13
	movdqa	64(%r10),%xmm12
	movdqa	80(%r10),%xmm15
	movdqa	96(%r10),%xmm14
	retq
.size	_vpaes_preheat,.-_vpaes_preheat





.type	_vpaes_consts,@object
Changes to jni/libressl/crypto/aes/vpaes-macosx-x86_64.S.
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
	movdqa	-80(%r10),%xmm0
.byte	102,15,56,0,226
	pxor	%xmm5,%xmm4
.byte	102,15,56,0,195
	movdqa	64(%r11,%r10,1),%xmm1
	pxor	%xmm4,%xmm0
.byte	102,15,56,0,193
	.byte	0xf3,0xc3














|







94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
	movdqa	-80(%r10),%xmm0
.byte	102,15,56,0,226
	pxor	%xmm5,%xmm4
.byte	102,15,56,0,195
	movdqa	64(%r11,%r10,1),%xmm1
	pxor	%xmm4,%xmm0
.byte	102,15,56,0,193
	retq







201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
.byte	102,15,56,0,226
	pxor	%xmm0,%xmm4
	movdqa	112(%r10),%xmm0
	movdqa	-352(%r11),%xmm2
.byte	102,15,56,0,195
	pxor	%xmm4,%xmm0
.byte	102,15,56,0,194
	.byte	0xf3,0xc3














|







201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
.byte	102,15,56,0,226
	pxor	%xmm0,%xmm4
	movdqa	112(%r10),%xmm0
	movdqa	-352(%r11),%xmm2
.byte	102,15,56,0,195
	pxor	%xmm4,%xmm0
.byte	102,15,56,0,194
	retq







377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
	pxor	%xmm1,%xmm1
	pxor	%xmm2,%xmm2
	pxor	%xmm3,%xmm3
	pxor	%xmm4,%xmm4
	pxor	%xmm5,%xmm5
	pxor	%xmm6,%xmm6
	pxor	%xmm7,%xmm7
	.byte	0xf3,0xc3














|







377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
	pxor	%xmm1,%xmm1
	pxor	%xmm2,%xmm2
	pxor	%xmm3,%xmm3
	pxor	%xmm4,%xmm4
	pxor	%xmm5,%xmm5
	pxor	%xmm6,%xmm6
	pxor	%xmm7,%xmm7
	retq







404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
	pshufd	$128,%xmm6,%xmm0
	pxor	%xmm0,%xmm6
	pshufd	$254,%xmm7,%xmm0
	pxor	%xmm0,%xmm6
	movdqa	%xmm6,%xmm0
	pxor	%xmm1,%xmm1
	movhlps	%xmm1,%xmm6
	.byte	0xf3,0xc3














|







404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
	pshufd	$128,%xmm6,%xmm0
	pxor	%xmm0,%xmm6
	pshufd	$254,%xmm7,%xmm0
	pxor	%xmm0,%xmm6
	movdqa	%xmm6,%xmm0
	pxor	%xmm1,%xmm1
	movhlps	%xmm1,%xmm6
	retq







480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
	movdqa	%xmm12,%xmm0
.byte	102,15,56,0,195
	pxor	%xmm4,%xmm0


	pxor	%xmm7,%xmm0
	movdqa	%xmm0,%xmm7
	.byte	0xf3,0xc3














|







480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
	movdqa	%xmm12,%xmm0
.byte	102,15,56,0,195
	pxor	%xmm4,%xmm0


	pxor	%xmm7,%xmm0
	movdqa	%xmm0,%xmm7
	retq







504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
	psrld	$4,%xmm1
	pand	%xmm9,%xmm0
	movdqa	(%r11),%xmm2
.byte	102,15,56,0,208
	movdqa	16(%r11),%xmm0
.byte	102,15,56,0,193
	pxor	%xmm2,%xmm0
	.byte	0xf3,0xc3














|







504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
	psrld	$4,%xmm1
	pand	%xmm9,%xmm0
	movdqa	(%r11),%xmm2
.byte	102,15,56,0,208
	movdqa	16(%r11),%xmm0
.byte	102,15,56,0,193
	pxor	%xmm2,%xmm0
	retq







596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672

L$schedule_mangle_both:
	movdqa	(%r8,%r10,1),%xmm1
.byte	102,15,56,0,217
	addq	$-16,%r8
	andq	$48,%r8
	movdqu	%xmm3,(%rdx)
	.byte	0xf3,0xc3





.globl	_vpaes_set_encrypt_key

.p2align	4
_vpaes_set_encrypt_key:
	movl	%esi,%eax
	shrl	$5,%eax
	addl	$5,%eax
	movl	%eax,240(%rdx)

	movl	$0,%ecx
	movl	$48,%r8d
	call	_vpaes_schedule_core
	xorl	%eax,%eax
	.byte	0xf3,0xc3


.globl	_vpaes_set_decrypt_key

.p2align	4
_vpaes_set_decrypt_key:
	movl	%esi,%eax
	shrl	$5,%eax
	addl	$5,%eax
	movl	%eax,240(%rdx)
	shll	$4,%eax
	leaq	16(%rdx,%rax,1),%rdx

	movl	$1,%ecx
	movl	%esi,%r8d
	shrl	$1,%r8d
	andl	$32,%r8d
	xorl	$32,%r8d
	call	_vpaes_schedule_core
	xorl	%eax,%eax
	.byte	0xf3,0xc3


.globl	_vpaes_encrypt

.p2align	4
_vpaes_encrypt:
	movdqu	(%rdi),%xmm0
	call	_vpaes_preheat
	call	_vpaes_encrypt_core
	movdqu	%xmm0,(%rsi)
	.byte	0xf3,0xc3


.globl	_vpaes_decrypt

.p2align	4
_vpaes_decrypt:
	movdqu	(%rdi),%xmm0
	call	_vpaes_preheat
	call	_vpaes_decrypt_core
	movdqu	%xmm0,(%rsi)
	.byte	0xf3,0xc3

.globl	_vpaes_cbc_encrypt

.p2align	4
_vpaes_cbc_encrypt:
	xchgq	%rcx,%rdx
	subq	$16,%rcx







|


















|




















|










|










|







596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672

L$schedule_mangle_both:
	movdqa	(%r8,%r10,1),%xmm1
.byte	102,15,56,0,217
	addq	$-16,%r8
	andq	$48,%r8
	movdqu	%xmm3,(%rdx)
	retq





.globl	_vpaes_set_encrypt_key

.p2align	4
_vpaes_set_encrypt_key:
	movl	%esi,%eax
	shrl	$5,%eax
	addl	$5,%eax
	movl	%eax,240(%rdx)

	movl	$0,%ecx
	movl	$48,%r8d
	call	_vpaes_schedule_core
	xorl	%eax,%eax
	retq


.globl	_vpaes_set_decrypt_key

.p2align	4
_vpaes_set_decrypt_key:
	movl	%esi,%eax
	shrl	$5,%eax
	addl	$5,%eax
	movl	%eax,240(%rdx)
	shll	$4,%eax
	leaq	16(%rdx,%rax,1),%rdx

	movl	$1,%ecx
	movl	%esi,%r8d
	shrl	$1,%r8d
	andl	$32,%r8d
	xorl	$32,%r8d
	call	_vpaes_schedule_core
	xorl	%eax,%eax
	retq


.globl	_vpaes_encrypt

.p2align	4
_vpaes_encrypt:
	movdqu	(%rdi),%xmm0
	call	_vpaes_preheat
	call	_vpaes_encrypt_core
	movdqu	%xmm0,(%rsi)
	retq


.globl	_vpaes_decrypt

.p2align	4
_vpaes_decrypt:
	movdqu	(%rdi),%xmm0
	call	_vpaes_preheat
	call	_vpaes_decrypt_core
	movdqu	%xmm0,(%rsi)
	retq

.globl	_vpaes_cbc_encrypt

.p2align	4
_vpaes_cbc_encrypt:
	xchgq	%rcx,%rdx
	subq	$16,%rcx
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
	movdqu	%xmm0,(%rsi,%rdi,1)
	leaq	16(%rdi),%rdi
	subq	$16,%rcx
	jnc	L$cbc_dec_loop
L$cbc_done:
	movdqu	%xmm6,(%r8)
L$cbc_abort:
	.byte	0xf3,0xc3








.p2align	4
_vpaes_preheat:
	leaq	L$k_s0F(%rip),%r10
	movdqa	-32(%r10),%xmm10
	movdqa	-16(%r10),%xmm11
	movdqa	0(%r10),%xmm9
	movdqa	48(%r10),%xmm13
	movdqa	64(%r10),%xmm12
	movdqa	80(%r10),%xmm15
	movdqa	96(%r10),%xmm14
	.byte	0xf3,0xc3














|


















|







698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
	movdqu	%xmm0,(%rsi,%rdi,1)
	leaq	16(%rdi),%rdi
	subq	$16,%rcx
	jnc	L$cbc_dec_loop
L$cbc_done:
	movdqu	%xmm6,(%r8)
L$cbc_abort:
	retq








.p2align	4
_vpaes_preheat:
	leaq	L$k_s0F(%rip),%r10
	movdqa	-32(%r10),%xmm10
	movdqa	-16(%r10),%xmm11
	movdqa	0(%r10),%xmm9
	movdqa	48(%r10),%xmm13
	movdqa	64(%r10),%xmm12
	movdqa	80(%r10),%xmm15
	movdqa	96(%r10),%xmm14
	retq







Changes to jni/libressl/crypto/asn1/asn1_lib.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: asn1_lib.c,v 1.39 2017/05/02 03:59:44 deraadt Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: asn1_lib.c,v 1.40 2018/02/14 16:46:04 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
478
479
480
481
482
483
484
485
486






{
	return (x->type);
}

unsigned char *
ASN1_STRING_data(ASN1_STRING *x)
{
	return (x->data);
}















>
>
>
>
>
>
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
{
	return (x->type);
}

unsigned char *
ASN1_STRING_data(ASN1_STRING *x)
{
	return (x->data);
}

const unsigned char *
ASN1_STRING_get0_data(const ASN1_STRING *x)
{
	return (x->data);
}
Changes to jni/libressl/crypto/asn1/evp_asn1.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: evp_asn1.c,v 1.19 2017/01/29 17:49:22 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: evp_asn1.c,v 1.20 2017/11/28 16:51:21 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
 * [including the GNU Public Licence.]
 */

#include <stdio.h>
#include <string.h>

#include <openssl/asn1.h>
#include <openssl/asn1_mac.h>
#include <openssl/err.h>

int
ASN1_TYPE_set_octetstring(ASN1_TYPE *a, unsigned char *data, int len)
{
	ASN1_STRING *os;

	if ((os = ASN1_OCTET_STRING_new()) == NULL)
		return (0);
	if (!ASN1_STRING_set(os, data, len)) {
		ASN1_OCTET_STRING_free(os);
		return (0);
	}
	ASN1_TYPE_set(a, V_ASN1_OCTET_STRING, os);
	return (1);
}

/* int max_len:  for returned value    */
int
ASN1_TYPE_get_octetstring(ASN1_TYPE *a, unsigned char *data, int max_len)
{
	int ret, num;
	unsigned char *p;

	if ((a->type != V_ASN1_OCTET_STRING) ||







|

















<







56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80

81
82
83
84
85
86
87
 * [including the GNU Public Licence.]
 */

#include <stdio.h>
#include <string.h>

#include <openssl/asn1.h>
#include <openssl/asn1t.h>
#include <openssl/err.h>

int
ASN1_TYPE_set_octetstring(ASN1_TYPE *a, unsigned char *data, int len)
{
	ASN1_STRING *os;

	if ((os = ASN1_OCTET_STRING_new()) == NULL)
		return (0);
	if (!ASN1_STRING_set(os, data, len)) {
		ASN1_OCTET_STRING_free(os);
		return (0);
	}
	ASN1_TYPE_set(a, V_ASN1_OCTET_STRING, os);
	return (1);
}


int
ASN1_TYPE_get_octetstring(ASN1_TYPE *a, unsigned char *data, int max_len)
{
	int ret, num;
	unsigned char *p;

	if ((a->type != V_ASN1_OCTET_STRING) ||
96
97
98
99
100
101
102
103


104
105

106
107
108

109
110
111
112


113
114
115
116
117
118
119
120
121


122

123
124
125
126
127
128
129
130
131
132

133
134
135
136
137
138
139
140
141
142
143
144




145
146
147
148
149
150

151


152
153
154
155
156
157
158
159
160
161


162
163

164
165
166


167
168
169
170

171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189

190
191
192
193
194



195
196
197
198
199
200
		num = ret;
	else
		num = max_len;
	memcpy(data, p, num);
	return (ret);
}

int


ASN1_TYPE_set_int_octetstring(ASN1_TYPE *a, long num, unsigned char *data,
    int len)

{
	int n, size;
	ASN1_OCTET_STRING os, *osp;

	ASN1_INTEGER in;
	unsigned char *p;
	unsigned char buf[32]; /* when they have 256bit longs,
				* I'll be in trouble */


	in.data = buf;
	in.length = 32;
	os.data = data;
	os.type = V_ASN1_OCTET_STRING;
	os.length = len;
	ASN1_INTEGER_set(&in, num);
	n = i2d_ASN1_INTEGER(&in, NULL);
	n += i2d_ASN1_bytes((ASN1_STRING *)&os, NULL, V_ASN1_OCTET_STRING,
	    V_ASN1_UNIVERSAL);




	size = ASN1_object_size(1, n, V_ASN1_SEQUENCE);

	if ((osp = ASN1_STRING_new()) == NULL)
		return (0);
	/* Grow the 'string' */
	if (!ASN1_STRING_set(osp, NULL, size)) {
		ASN1_STRING_free(osp);
		return (0);
	}


	ASN1_STRING_length_set(osp, size);
	p = ASN1_STRING_data(osp);

	ASN1_put_object(&p, 1,n, V_ASN1_SEQUENCE, V_ASN1_UNIVERSAL);
	i2d_ASN1_INTEGER(&in, &p);
	i2d_ASN1_bytes((ASN1_STRING *)&os, &p, V_ASN1_OCTET_STRING,
	    V_ASN1_UNIVERSAL);

	ASN1_TYPE_set(a, V_ASN1_SEQUENCE, osp);
	return (1);
}





/* we return the actual length..., num may be missing, in which
 * case, set it to zero */
/* int max_len:  for returned value    */
int
ASN1_TYPE_get_int_octetstring(ASN1_TYPE *a, long *num, unsigned char *data,
    int max_len)

{


	int ret = -1, n;
	ASN1_INTEGER *ai = NULL;
	ASN1_OCTET_STRING *os = NULL;
	const unsigned char *p;
	long length;
	ASN1_const_CTX c;

	if ((a->type != V_ASN1_SEQUENCE) || (a->value.sequence == NULL)) {
		goto err;
	}


	p = ASN1_STRING_data(a->value.sequence);
	length = ASN1_STRING_length(a->value.sequence);


	c.pp = &p;
	c.p = p;


	c.max = p + length;
	c.error = ASN1_R_DATA_IS_WRONG;

	M_ASN1_D2I_start_sequence();

	c.q = c.p;
	if ((ai = d2i_ASN1_INTEGER(NULL, &c.p, c.slen)) == NULL)
		goto err;
	c.slen -= (c.p - c.q);
	c.q = c.p;
	if ((os = d2i_ASN1_OCTET_STRING(NULL, &c.p, c.slen)) == NULL)
		goto err;
	c.slen -= (c.p - c.q);
	if (!M_ASN1_D2I_end_sequence())
		goto err;

	if (num != NULL)
		*num = ASN1_INTEGER_get(ai);

	ret = ASN1_STRING_length(os);
	if (max_len > ret)
		n = ret;
	else
		n = max_len;


	if (data != NULL)
		memcpy(data, ASN1_STRING_data(os), n);
	if (0) {
err:



		ASN1error(ASN1_R_DATA_IS_WRONG);
	}
	ASN1_OCTET_STRING_free(os);
	ASN1_INTEGER_free(ai);
	return (ret);
}







|
>
>
|
|
>
|
<
|
>
|
<
<
<
>
>
|
|
<
|
<
<
<
<
<
>
>

>
|
|
|
<
|
|
|
<
|

>
|
|
|
<
|
|
<
|
<
<
|
|
>
>
>
>
|
|
|
|
<
|
>
|
>
>
|
|
|
<
<
<

<
|
|
>
>
|
|
>
|
|
<
>
>
|
<
|
|
>
|
<
<
|
|
|

|
|



|
|
|
|
<
<
|
>
|
|
|
|
|
>
>
>

|
<
<
|

95
96
97
98
99
100
101
102
103
104
105
106
107
108

109
110
111



112
113
114
115

116





117
118
119
120
121
122
123

124
125
126

127
128
129
130
131
132

133
134

135


136
137
138
139
140
141
142
143
144
145

146
147
148
149
150
151
152
153



154

155
156
157
158
159
160
161
162
163

164
165
166

167
168
169
170


171
172
173
174
175
176
177
178
179
180
181
182
183


184
185
186
187
188
189
190
191
192
193
194
195


196
197
		num = ret;
	else
		num = max_len;
	memcpy(data, p, num);
	return (ret);
}

typedef struct {
	ASN1_INTEGER *num;
	ASN1_OCTET_STRING *value;
} ASN1_int_octetstring;

static const ASN1_TEMPLATE ASN1_INT_OCTETSTRING_seq_tt[] = {
	{

		.offset = offsetof(ASN1_int_octetstring, num),
		.field_name = "num",
		.item = &ASN1_INTEGER_it,



	},
	{
		.offset = offsetof(ASN1_int_octetstring, value),
		.field_name = "value",

		.item = &ASN1_OCTET_STRING_it,





	},
};

const ASN1_ITEM ASN1_INT_OCTETSTRING_it = {
	.itype = ASN1_ITYPE_SEQUENCE,
	.utype = V_ASN1_SEQUENCE,
	.templates = ASN1_INT_OCTETSTRING_seq_tt,

	.tcount = sizeof(ASN1_INT_OCTETSTRING_seq_tt) / sizeof(ASN1_TEMPLATE),
	.size = sizeof(ASN1_int_octetstring),
	.sname = "ASN1_INT_OCTETSTRING",

};

int
ASN1_TYPE_set_int_octetstring(ASN1_TYPE *at, long num, unsigned char *data,
    int len)
{

	ASN1_int_octetstring *ios;
	ASN1_STRING *sp = NULL;

	int ret = 0;



	if ((ios = (ASN1_int_octetstring *)ASN1_item_new(
	    &ASN1_INT_OCTETSTRING_it)) == NULL)
		goto err;
	if ((ios->num = ASN1_INTEGER_new()) == NULL)
		goto err;
	if (!ASN1_INTEGER_set(ios->num, num))
		goto err;
	if ((ios->value = ASN1_OCTET_STRING_new()) == NULL)
		goto err;

	if (!ASN1_OCTET_STRING_set(ios->value, data, len))
		goto err;

	if ((sp = ASN1_item_pack(ios, &ASN1_INT_OCTETSTRING_it, NULL)) == NULL)
		goto err;

	ASN1_TYPE_set(at, V_ASN1_SEQUENCE, sp);
	sp = NULL;





	ret = 1;

 err:
	ASN1_item_free((ASN1_VALUE *)ios, &ASN1_INT_OCTETSTRING_it);
	ASN1_STRING_free(sp);

	return ret;
}


int
ASN1_TYPE_get_int_octetstring(ASN1_TYPE *at, long *num, unsigned char *data,
    int max_len)

{
	ASN1_STRING *sp = at->value.sequence;
	ASN1_int_octetstring *ios = NULL;
	int ret = -1;


	int len;

	if (at->type != V_ASN1_SEQUENCE || sp == NULL)
		goto err;

	if ((ios = ASN1_item_unpack(sp, &ASN1_INT_OCTETSTRING_it)) == NULL)
		goto err;

	if (num != NULL)
		*num = ASN1_INTEGER_get(ios->num);
	if (data != NULL) {
		len = ASN1_STRING_length(ios->value);
		if (len > max_len)


			len = max_len;
		memcpy(data, ASN1_STRING_data(ios->value), len);
	}

	ret = ASN1_STRING_length(ios->value);

 err:
	ASN1_item_free((ASN1_VALUE *)ios, &ASN1_INT_OCTETSTRING_it);

	if (ret == -1)
		ASN1error(ASN1_R_DATA_IS_WRONG);



	return ret;
}
Changes to jni/libressl/crypto/asn1/x_crl.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: x_crl.c,v 1.27 2017/01/29 17:49:22 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: x_crl.c,v 1.30 2018/03/17 14:33:20 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
457
458
459
460
461
462
463






464
465
466
467
468
469
470
}

void
X509_REVOKED_free(X509_REVOKED *a)
{
	ASN1_item_free((ASN1_VALUE *)a, &X509_REVOKED_it);
}







X509_CRL_INFO *
d2i_X509_CRL_INFO(X509_CRL_INFO **a, const unsigned char **in, long len)
{
	return (X509_CRL_INFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
	    &X509_CRL_INFO_it);
}







>
>
>
>
>
>







457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
}

void
X509_REVOKED_free(X509_REVOKED *a)
{
	ASN1_item_free((ASN1_VALUE *)a, &X509_REVOKED_it);
}

X509_REVOKED *
X509_REVOKED_dup(X509_REVOKED *a)
{
	return ASN1_item_dup(&X509_REVOKED_it, a);
}

X509_CRL_INFO *
d2i_X509_CRL_INFO(X509_CRL_INFO **a, const unsigned char **in, long len)
{
	return (X509_CRL_INFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
	    &X509_CRL_INFO_it);
}
681
682
683
684
685
686
687


































}

void *
X509_CRL_get_meth_data(X509_CRL *crl)
{
	return crl->meth_data;
}









































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
}

void *
X509_CRL_get_meth_data(X509_CRL *crl)
{
	return crl->meth_data;
}

int
X509_CRL_get_signature_nid(const X509_CRL *crl)
{
	return OBJ_obj2nid(crl->sig_alg->algorithm);
}

const STACK_OF(X509_EXTENSION) *
X509_CRL_get0_extensions(const X509_CRL *crl)
{
	return crl->crl->extensions;
}

const ASN1_TIME *
X509_CRL_get0_lastUpdate(const X509_CRL *crl)
{
	return crl->crl->lastUpdate;
}

const ASN1_TIME *
X509_CRL_get0_nextUpdate(const X509_CRL *crl)
{
	return crl->crl->nextUpdate;
}

void
X509_CRL_get0_signature(const X509_CRL *crl, const ASN1_BIT_STRING **psig,
    const X509_ALGOR **palg)
{
	if (psig != NULL)
		*psig = crl->signature;
	if (palg != NULL)
		*palg = crl->sig_alg;
}
Changes to jni/libressl/crypto/asn1/x_name.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: x_name.c,v 1.33 2017/01/29 17:49:22 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: x_name.c,v 1.34 2018/02/20 17:09:20 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
636
637
638
639
640
641
642













		if (in != NULL) {
			X509_NAME_free(*xn);
			*xn = in;
		}
	}
	return (*xn != NULL);
}




















>
>
>
>
>
>
>
>
>
>
>
>
>
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
		if (in != NULL) {
			X509_NAME_free(*xn);
			*xn = in;
		}
	}
	return (*xn != NULL);
}

int
X509_NAME_get0_der(X509_NAME *nm, const unsigned char **pder, size_t *pderlen)
{
	/* Make sure encoding is valid. */
	if (i2d_X509_NAME(nm, NULL) <= 0)
		return 0;
	if (pder != NULL)
		*pder = (unsigned char *)nm->bytes->data;
	if (pderlen != NULL)
		*pderlen = nm->bytes->length;
	return 1;
}
Changes to jni/libressl/crypto/asn1/x_pubkey.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: x_pubkey.c,v 1.26 2017/01/29 17:49:22 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: x_pubkey.c,v 1.27 2018/03/17 14:55:39 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
error:
	if (pk != NULL)
		X509_PUBKEY_free(pk);
	return 0;
}

EVP_PKEY *
X509_PUBKEY_get(X509_PUBKEY *key)
{
	EVP_PKEY *ret = NULL;

	if (key == NULL)
		goto error;

	if (key->pkey != NULL) {
		CRYPTO_add(&key->pkey->references, 1, CRYPTO_LOCK_EVP_PKEY);
		return key->pkey;
	}

	if (key->public_key == NULL)
		goto error;

	if ((ret = EVP_PKEY_new()) == NULL) {
		X509error(ERR_R_MALLOC_FAILURE);
		goto error;







|






|
<

<







171
172
173
174
175
176
177
178
179
180
181
182
183
184
185

186

187
188
189
190
191
192
193
error:
	if (pk != NULL)
		X509_PUBKEY_free(pk);
	return 0;
}

EVP_PKEY *
X509_PUBKEY_get0(X509_PUBKEY *key)
{
	EVP_PKEY *ret = NULL;

	if (key == NULL)
		goto error;

	if (key->pkey != NULL)

		return key->pkey;


	if (key->public_key == NULL)
		goto error;

	if ((ret = EVP_PKEY_new()) == NULL) {
		X509error(ERR_R_MALLOC_FAILURE);
		goto error;
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230













231
232
233
234
235
236
237
		CRYPTO_w_unlock(CRYPTO_LOCK_EVP_PKEY);
		EVP_PKEY_free(ret);
		ret = key->pkey;
	} else {
		key->pkey = ret;
		CRYPTO_w_unlock(CRYPTO_LOCK_EVP_PKEY);
	}
	CRYPTO_add(&ret->references, 1, CRYPTO_LOCK_EVP_PKEY);

	return ret;

error:
	EVP_PKEY_free(ret);
	return (NULL);
}














/* Now two pseudo ASN1 routines that take an EVP_PKEY structure
 * and encode or decode as X509_PUBKEY
 */

EVP_PKEY *
d2i_PUBKEY(EVP_PKEY **a, const unsigned char **pp, long length)







<







>
>
>
>
>
>
>
>
>
>
>
>
>







214
215
216
217
218
219
220

221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
		CRYPTO_w_unlock(CRYPTO_LOCK_EVP_PKEY);
		EVP_PKEY_free(ret);
		ret = key->pkey;
	} else {
		key->pkey = ret;
		CRYPTO_w_unlock(CRYPTO_LOCK_EVP_PKEY);
	}


	return ret;

error:
	EVP_PKEY_free(ret);
	return (NULL);
}

EVP_PKEY *
X509_PUBKEY_get(X509_PUBKEY *key)
{
	EVP_PKEY *pkey;

	if ((pkey = X509_PUBKEY_get0(key)) == NULL)
		return (NULL);

	CRYPTO_add(&pkey->references, 1, CRYPTO_LOCK_EVP_PKEY);

	return pkey;
}

/* Now two pseudo ASN1 routines that take an EVP_PKEY structure
 * and encode or decode as X509_PUBKEY
 */

EVP_PKEY *
d2i_PUBKEY(EVP_PKEY **a, const unsigned char **pp, long length)
Changes to jni/libressl/crypto/asn1/x_req.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: x_req.c,v 1.15 2015/02/11 04:00:39 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: x_req.c,v 1.17 2018/02/22 16:50:30 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
221
222
223
224
225
226
227
















}

X509_REQ *
X509_REQ_dup(X509_REQ *x)
{
	return ASN1_item_dup(&X509_REQ_it, x);
}























>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
}

X509_REQ *
X509_REQ_dup(X509_REQ *x)
{
	return ASN1_item_dup(&X509_REQ_it, x);
}

int
X509_REQ_get_signature_nid(const X509_REQ *req)
{
	return OBJ_obj2nid(req->sig_alg->algorithm);
}

void
X509_REQ_get0_signature(const X509_REQ *req, const ASN1_BIT_STRING **psig,
    const X509_ALGOR **palg)
{
	if (psig != NULL)
		*psig = req->signature;
	if (palg != NULL)
		*palg = req->sig_alg;
}
Changes to jni/libressl/crypto/asn1/x_x509.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: x_x509.c,v 1.24 2015/03/19 14:00:22 tedu Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: x_x509.c,v 1.26 2018/02/17 15:50:42 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
340
341
342
343
344
345
346
















	int length;

	length = i2d_X509(a, pp);
	if (a)
		length += i2d_X509_CERT_AUX(a->aux, pp);
	return length;
}























>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
	int length;

	length = i2d_X509(a, pp);
	if (a)
		length += i2d_X509_CERT_AUX(a->aux, pp);
	return length;
}

void
X509_get0_signature(const ASN1_BIT_STRING **psig, const X509_ALGOR **palg,
    const X509 *x)
{
	if (psig != NULL)
		*psig = x->signature;
	if (palg != NULL)
		*palg = x->sig_alg;
}

int
X509_get_signature_nid(const X509 *x)
{
	return OBJ_obj2nid(x->sig_alg->algorithm);
}
Changes to jni/libressl/crypto/bio/b_posix.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: b_posix.c,v 1.1 2014/12/03 22:14:38 bcook Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: b_posix.c,v 1.2 2018/03/17 16:20:01 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
64
65
66
67
68
69
70


71
72
73
74
75
76
77
#include <unistd.h>

#include <openssl/bio.h>

int
BIO_sock_init(void)
{


	return (1);
}

void
BIO_sock_cleanup(void)
{
}







>
>







64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include <unistd.h>

#include <openssl/bio.h>

int
BIO_sock_init(void)
{
	if (!OPENSSL_init_crypto(0, NULL)) /* XXX do we need this? */
		return (0);
	return (1);
}

void
BIO_sock_cleanup(void)
{
}
Changes to jni/libressl/crypto/bio/b_sock.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: b_sock.c,v 1.67 2017/04/30 17:54:11 beck Exp $ */
/*
 * Copyright (c) 2017 Bob Beck <beck@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: b_sock.c,v 1.69 2018/02/07 00:52:05 bluhm Exp $ */
/*
 * Copyright (c) 2017 Bob Beck <beck@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
130
131
132
133
134
135
136
137
138

139
140
141
142
143
144
145
146

147
148
149
150
151
152
153
	int error, ret = 0, s = -1;

	if (host == NULL || (str = strdup(host)) == NULL)
		return (-1);
	p = NULL;
	h = str;
	if ((p = strrchr(str, ':')) == NULL) {
		BIOerror(BIO_R_NO_PORT_SPECIFIED);
		goto err;

	}
	*p++ = '\0';
	if (*p == '\0') {
		BIOerror(BIO_R_NO_PORT_SPECIFIED);
		goto err;
	}
	if (*h == '\0' || strcmp(h, "*") == 0)
		h = NULL;


	if ((error = getaddrinfo(h, p, &hints, &res)) != 0) {
		ERR_asprintf_error_data("getaddrinfo: '%s:%s': %s'", h, p,
		    gai_strerror(error));
		goto err;
	}
	if (h == NULL) {







|
|
>
|
|
|
|
|
|
|
|
>







130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
	int error, ret = 0, s = -1;

	if (host == NULL || (str = strdup(host)) == NULL)
		return (-1);
	p = NULL;
	h = str;
	if ((p = strrchr(str, ':')) == NULL) {
		/* A string without a colon is treated as a port. */
		p = str;
		h = NULL;
	} else {
		*p++ = '\0';
		if (*p == '\0') {
			BIOerror(BIO_R_NO_PORT_SPECIFIED);
			goto err;
		}
		if (*h == '\0' || strcmp(h, "*") == 0)
			h = NULL;
	}

	if ((error = getaddrinfo(h, p, &hints, &res)) != 0) {
		ERR_asprintf_error_data("getaddrinfo: '%s:%s': %s'", h, p,
		    gai_strerror(error));
		goto err;
	}
	if (h == NULL) {
180
181
182
183
184
185
186

187
188
189
190
191
192
193
194
		BIOerror(BIO_R_UNABLE_TO_LISTEN_SOCKET);
		goto err;
	}
	ret = 1;

err:
	free(str);

	freeaddrinfo(res);
	if ((ret == 0) && (s != -1)) {
		close(s);
		s = -1;
	}
	return (s);
}








>
|







182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
		BIOerror(BIO_R_UNABLE_TO_LISTEN_SOCKET);
		goto err;
	}
	ret = 1;

err:
	free(str);
	if (res != NULL)
		freeaddrinfo(res);
	if ((ret == 0) && (s != -1)) {
		close(s);
		s = -1;
	}
	return (s);
}

Changes to jni/libressl/crypto/bio/bio_lib.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: bio_lib.c,v 1.23 2017/01/29 17:49:22 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: bio_lib.c,v 1.27 2018/02/22 16:38:43 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
59
60
61
62
63
64
65














66
67
68
69
70
71
72
#include <errno.h>
#include <stdio.h>

#include <openssl/bio.h>
#include <openssl/crypto.h>
#include <openssl/err.h>
#include <openssl/stack.h>















BIO *
BIO_new(BIO_METHOD *method)
{
	BIO *ret = NULL;

	ret = malloc(sizeof(BIO));







>
>
>
>
>
>
>
>
>
>
>
>
>
>







59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include <errno.h>
#include <stdio.h>

#include <openssl/bio.h>
#include <openssl/crypto.h>
#include <openssl/err.h>
#include <openssl/stack.h>

int
BIO_get_new_index(void)
{
	static int bio_type_index = BIO_TYPE_START;
	int index;

	/* The index will collide with the BIO flag bits if it exceeds 255. */
	index = CRYPTO_add(&bio_type_index, 1, CRYPTO_LOCK_BIO);
	if (index > 255)
		return -1;

	return index;
}

BIO *
BIO_new(BIO_METHOD *method)
{
	BIO *ret = NULL;

	ret = malloc(sizeof(BIO));
132
133
134
135
136
137
138





































139
140
141
142
143
144
145
}

void
BIO_vfree(BIO *a)
{
	BIO_free(a);
}






































void
BIO_clear_flags(BIO *b, int flags)
{
	b->flags &= ~flags;
}








>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
}

void
BIO_vfree(BIO *a)
{
	BIO_free(a);
}

int
BIO_up_ref(BIO *bio)
{
	int refs = CRYPTO_add(&bio->references, 1, CRYPTO_LOCK_BIO);
	return (refs > 1) ? 1 : 0;
}

void *
BIO_get_data(BIO *a)
{
	return (a->ptr);
}

void
BIO_set_data(BIO *a, void *ptr)
{
	a->ptr = ptr;
}

void
BIO_set_init(BIO *a, int init)
{
	a->init = init;
}

int
BIO_get_shutdown(BIO *a)
{
	return (a->shutdown);
}

void
BIO_set_shutdown(BIO *a, int shut)
{
	a->shutdown = shut;
}

void
BIO_clear_flags(BIO *b, int flags)
{
	b->flags &= ~flags;
}

Added jni/libressl/crypto/bio/bio_meth.c.






































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
/*	$OpenBSD: bio_meth.c,v 1.5 2018/02/20 18:51:35 tb Exp $	*/
/*
 * Copyright (c) 2018 Theo Buehler <tb@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

#include <stdlib.h>

#include <openssl/bio.h>

BIO_METHOD *
BIO_meth_new(int type, const char *name)
{
	BIO_METHOD *biom;

	if ((biom = calloc(1, sizeof(*biom))) == NULL)
		return NULL;

	biom->type = type;
	biom->name = name;

	return biom;
}

void
BIO_meth_free(BIO_METHOD *biom)
{
	free(biom);
}

int
(*BIO_meth_get_write(BIO_METHOD *biom))(BIO *, const char *, int)
{
	return biom->bwrite;
}

int
BIO_meth_set_write(BIO_METHOD *biom, int (*write)(BIO *, const char *, int))
{
	biom->bwrite = write;
	return 1;
}

int
(*BIO_meth_get_read(BIO_METHOD *biom))(BIO *, char *, int)
{
	return biom->bread;
}

int
BIO_meth_set_read(BIO_METHOD *biom, int (*read)(BIO *, char *, int))
{
	biom->bread = read;
	return 1;
}

int
(*BIO_meth_get_puts(BIO_METHOD *biom))(BIO *, const char *)
{
	return biom->bputs;
}

int
BIO_meth_set_puts(BIO_METHOD *biom, int (*puts)(BIO *, const char *))
{
	biom->bputs = puts;
	return 1;
}

int
(*BIO_meth_get_gets(BIO_METHOD *biom))(BIO *, char *, int)
{
	return biom->bgets;
}

int
BIO_meth_set_gets(BIO_METHOD *biom, int (*gets)(BIO *, char *, int))
{
	biom->bgets = gets;
	return 1;
}

long
(*BIO_meth_get_ctrl(BIO_METHOD *biom))(BIO *, int, long, void *)
{
	return biom->ctrl;
}

int
BIO_meth_set_ctrl(BIO_METHOD *biom, long (*ctrl)(BIO *, int, long, void *))
{
	biom->ctrl = ctrl;
	return 1;
}

int
(*BIO_meth_get_create(BIO_METHOD *biom))(BIO *)
{
	return biom->create;
}

int
BIO_meth_set_create(BIO_METHOD *biom, int (*create)(BIO *))
{
	biom->create = create;
	return 1;
}

int
(*BIO_meth_get_destroy(BIO_METHOD *biom))(BIO *)
{
	return biom->destroy;
}

int
BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy)(BIO *))
{
	biom->destroy = destroy;
	return 1;
}

long
(*BIO_meth_get_callback_ctrl(BIO_METHOD *biom))(BIO *, int, BIO_info_cb *)
{
	return
	    (long (*)(BIO *, int, BIO_info_cb *))biom->callback_ctrl; /* XXX */
}

int
BIO_meth_set_callback_ctrl(BIO_METHOD *biom,
    long (*callback_ctrl)(BIO *, int, BIO_info_cb *))
{
	biom->callback_ctrl =
	    (long (*)(BIO *, int, bio_info_cb *))callback_ctrl;	/* XXX */
	return 1;
}
Changes to jni/libressl/crypto/bn/bn_const.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: bn_const.c,v 1.4 2014/06/12 15:49:28 deraadt Exp $ */
/* Insert boilerplate */

#include <openssl/bn.h>

/* "First Oakley Default Group" from RFC2409, section 6.1.
 *
 * The prime is: 2^768 - 2 ^704 - 1 + 2^64 * { [2^638 pi] + 149686 }
|







1
2
3
4
5
6
7
8
/* $OpenBSD: bn_const.c,v 1.5 2018/02/20 17:02:30 jsing Exp $ */
/* Insert boilerplate */

#include <openssl/bn.h>

/* "First Oakley Default Group" from RFC2409, section 6.1.
 *
 * The prime is: 2^768 - 2 ^704 - 1 + 2^64 * { [2^638 pi] + 149686 }
22
23
24
25
26
27
28






29
30
31
32
33
34
35
		0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B, 0x30, 0x2B, 0x0A, 0x6D,
		0xF2, 0x5F, 0x14, 0x37, 0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45,
		0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6, 0xF4, 0x4C, 0x42, 0xE9,
		0xA6, 0x3A, 0x36, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
	};
	return BN_bin2bn(RFC2409_PRIME_768, sizeof(RFC2409_PRIME_768), bn);
}







/* "Second Oakley Default Group" from RFC2409, section 6.2.
 *
 * The prime is: 2^1024 - 2^960 - 1 + 2^64 * { [2^894 pi] + 129093 }.
 *
 * RFC2409 specifies a generator of 2.
 * RFC2412 specifies a generator of 22.







>
>
>
>
>
>







22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
		0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B, 0x30, 0x2B, 0x0A, 0x6D,
		0xF2, 0x5F, 0x14, 0x37, 0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45,
		0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6, 0xF4, 0x4C, 0x42, 0xE9,
		0xA6, 0x3A, 0x36, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
	};
	return BN_bin2bn(RFC2409_PRIME_768, sizeof(RFC2409_PRIME_768), bn);
}

BIGNUM *
BN_get_rfc2409_prime_768(BIGNUM *bn)
{
	return get_rfc2409_prime_768(bn);
}

/* "Second Oakley Default Group" from RFC2409, section 6.2.
 *
 * The prime is: 2^1024 - 2^960 - 1 + 2^64 * { [2^894 pi] + 129093 }.
 *
 * RFC2409 specifies a generator of 2.
 * RFC2412 specifies a generator of 22.
49
50
51
52
53
54
55






56
57
58
59
60
61
62
		0xA6, 0x37, 0xED, 0x6B, 0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED,
		0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5, 0xAE, 0x9F, 0x24, 0x11,
		0x7C, 0x4B, 0x1F, 0xE6, 0x49, 0x28, 0x66, 0x51, 0xEC, 0xE6, 0x53, 0x81,
		0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
	};
	return BN_bin2bn(RFC2409_PRIME_1024, sizeof(RFC2409_PRIME_1024), bn);
}







/* "1536-bit MODP Group" from RFC3526, Section 2.
 *
 * The prime is: 2^1536 - 2^1472 - 1 + 2^64 * { [2^1406 pi] + 741804 }
 *
 * RFC3526 specifies a generator of 2.
 * RFC2312 specifies a generator of 22.







>
>
>
>
>
>







55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
		0xA6, 0x37, 0xED, 0x6B, 0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED,
		0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5, 0xAE, 0x9F, 0x24, 0x11,
		0x7C, 0x4B, 0x1F, 0xE6, 0x49, 0x28, 0x66, 0x51, 0xEC, 0xE6, 0x53, 0x81,
		0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
	};
	return BN_bin2bn(RFC2409_PRIME_1024, sizeof(RFC2409_PRIME_1024), bn);
}

BIGNUM *
BN_get_rfc2409_prime_1024(BIGNUM *bn)
{
	return get_rfc2409_prime_1024(bn);
}

/* "1536-bit MODP Group" from RFC3526, Section 2.
 *
 * The prime is: 2^1536 - 2^1472 - 1 + 2^64 * { [2^1406 pi] + 741804 }
 *
 * RFC3526 specifies a generator of 2.
 * RFC2312 specifies a generator of 22.
81
82
83
84
85
86
87






88
89
90
91
92
93
94
		0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96, 0x1C, 0x62, 0xF3, 0x56,
		0x20, 0x85, 0x52, 0xBB, 0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D,
		0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04, 0xF1, 0x74, 0x6C, 0x08,
		0xCA, 0x23, 0x73, 0x27, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
	};
	return BN_bin2bn(RFC3526_PRIME_1536, sizeof(RFC3526_PRIME_1536), bn);
}







/* "2048-bit MODP Group" from RFC3526, Section 3.
 *
 * The prime is: 2^2048 - 2^1984 - 1 + 2^64 * { [2^1918 pi] + 124476 }
 *
 * RFC3526 specifies a generator of 2.
 */







>
>
>
>
>
>







93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
		0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96, 0x1C, 0x62, 0xF3, 0x56,
		0x20, 0x85, 0x52, 0xBB, 0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D,
		0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04, 0xF1, 0x74, 0x6C, 0x08,
		0xCA, 0x23, 0x73, 0x27, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
	};
	return BN_bin2bn(RFC3526_PRIME_1536, sizeof(RFC3526_PRIME_1536), bn);
}

BIGNUM *
BN_get_rfc3526_prime_1536(BIGNUM *bn)
{
	return get_rfc3526_prime_1536(bn);
}

/* "2048-bit MODP Group" from RFC3526, Section 3.
 *
 * The prime is: 2^2048 - 2^1984 - 1 + 2^64 * { [2^1918 pi] + 124476 }
 *
 * RFC3526 specifies a generator of 2.
 */
118
119
120
121
122
123
124






125
126
127
128
129
130
131
		0xDE, 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18, 0x39, 0x95, 0x49, 0x7C,
		0xEA, 0x95, 0x6A, 0xE5, 0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA, 0x05, 0x10,
		0x15, 0x72, 0x8E, 0x5A, 0x8A, 0xAC, 0xAA, 0x68, 0xFF, 0xFF, 0xFF, 0xFF,
		0xFF, 0xFF, 0xFF, 0xFF,
	};
	return BN_bin2bn(RFC3526_PRIME_2048, sizeof(RFC3526_PRIME_2048), bn);
}







/* "3072-bit MODP Group" from RFC3526, Section 4.
 *
 * The prime is: 2^3072 - 2^3008 - 1 + 2^64 * { [2^2942 pi] + 1690314 }
 *
 * RFC3526 specifies a generator of 2.
 */







>
>
>
>
>
>







136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
		0xDE, 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18, 0x39, 0x95, 0x49, 0x7C,
		0xEA, 0x95, 0x6A, 0xE5, 0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA, 0x05, 0x10,
		0x15, 0x72, 0x8E, 0x5A, 0x8A, 0xAC, 0xAA, 0x68, 0xFF, 0xFF, 0xFF, 0xFF,
		0xFF, 0xFF, 0xFF, 0xFF,
	};
	return BN_bin2bn(RFC3526_PRIME_2048, sizeof(RFC3526_PRIME_2048), bn);
}

BIGNUM *
BN_get_rfc3526_prime_2048(BIGNUM *bn)
{
	return get_rfc3526_prime_2048(bn);
}

/* "3072-bit MODP Group" from RFC3526, Section 4.
 *
 * The prime is: 2^3072 - 2^3008 - 1 + 2^64 * { [2^2942 pi] + 1690314 }
 *
 * RFC3526 specifies a generator of 2.
 */
165
166
167
168
169
170
171






172
173
174
175
176
177
178
		0xBB, 0xE1, 0x17, 0x57, 0x7A, 0x61, 0x5D, 0x6C, 0x77, 0x09, 0x88, 0xC0,
		0xBA, 0xD9, 0x46, 0xE2, 0x08, 0xE2, 0x4F, 0xA0, 0x74, 0xE5, 0xAB, 0x31,
		0x43, 0xDB, 0x5B, 0xFC, 0xE0, 0xFD, 0x10, 0x8E, 0x4B, 0x82, 0xD1, 0x20,
		0xA9, 0x3A, 0xD2, 0xCA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
	};
	return BN_bin2bn(RFC3526_PRIME_3072, sizeof(RFC3526_PRIME_3072), bn);
}







/* "4096-bit MODP Group" from RFC3526, Section 5.
 *
 * The prime is: 2^4096 - 2^4032 - 1 + 2^64 * { [2^3966 pi] + 240904 }
 *
 * RFC3526 specifies a generator of 2.
 */







>
>
>
>
>
>







189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
		0xBB, 0xE1, 0x17, 0x57, 0x7A, 0x61, 0x5D, 0x6C, 0x77, 0x09, 0x88, 0xC0,
		0xBA, 0xD9, 0x46, 0xE2, 0x08, 0xE2, 0x4F, 0xA0, 0x74, 0xE5, 0xAB, 0x31,
		0x43, 0xDB, 0x5B, 0xFC, 0xE0, 0xFD, 0x10, 0x8E, 0x4B, 0x82, 0xD1, 0x20,
		0xA9, 0x3A, 0xD2, 0xCA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
	};
	return BN_bin2bn(RFC3526_PRIME_3072, sizeof(RFC3526_PRIME_3072), bn);
}

BIGNUM *
BN_get_rfc3526_prime_3072(BIGNUM *bn)
{
	return get_rfc3526_prime_3072(bn);
}

/* "4096-bit MODP Group" from RFC3526, Section 5.
 *
 * The prime is: 2^4096 - 2^4032 - 1 + 2^64 * { [2^3966 pi] + 240904 }
 *
 * RFC3526 specifies a generator of 2.
 */
223
224
225
226
227
228
229






230
231
232
233
234
235
236
		0x21, 0x70, 0x48, 0x1C, 0xD0, 0x06, 0x91, 0x27, 0xD5, 0xB0, 0x5A, 0xA9,
		0x93, 0xB4, 0xEA, 0x98, 0x8D, 0x8F, 0xDD, 0xC1, 0x86, 0xFF, 0xB7, 0xDC,
		0x90, 0xA6, 0xC0, 0x8F, 0x4D, 0xF4, 0x35, 0xC9, 0x34, 0x06, 0x31, 0x99,
		0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
	};
	return BN_bin2bn(RFC3526_PRIME_4096, sizeof(RFC3526_PRIME_4096), bn);
}







/* "6144-bit MODP Group" from RFC3526, Section 6.
 *
 * The prime is: 2^6144 - 2^6080 - 1 + 2^64 * { [2^6014 pi] + 929484 }
 *
 * RFC3526 specifies a generator of 2.
 */







>
>
>
>
>
>







253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
		0x21, 0x70, 0x48, 0x1C, 0xD0, 0x06, 0x91, 0x27, 0xD5, 0xB0, 0x5A, 0xA9,
		0x93, 0xB4, 0xEA, 0x98, 0x8D, 0x8F, 0xDD, 0xC1, 0x86, 0xFF, 0xB7, 0xDC,
		0x90, 0xA6, 0xC0, 0x8F, 0x4D, 0xF4, 0x35, 0xC9, 0x34, 0x06, 0x31, 0x99,
		0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
	};
	return BN_bin2bn(RFC3526_PRIME_4096, sizeof(RFC3526_PRIME_4096), bn);
}

BIGNUM *
BN_get_rfc3526_prime_4096(BIGNUM *bn)
{
	return get_rfc3526_prime_4096(bn);
}

/* "6144-bit MODP Group" from RFC3526, Section 6.
 *
 * The prime is: 2^6144 - 2^6080 - 1 + 2^64 * { [2^6014 pi] + 929484 }
 *
 * RFC3526 specifies a generator of 2.
 */
302
303
304
305
306
307
308






309
310
311
312
313
314
315
		0xDA, 0x56, 0xC9, 0xEC, 0x2E, 0xF2, 0x96, 0x32, 0x38, 0x7F, 0xE8, 0xD7,
		0x6E, 0x3C, 0x04, 0x68, 0x04, 0x3E, 0x8F, 0x66, 0x3F, 0x48, 0x60, 0xEE,
		0x12, 0xBF, 0x2D, 0x5B, 0x0B, 0x74, 0x74, 0xD6, 0xE6, 0x94, 0xF9, 0x1E,
		0x6D, 0xCC, 0x40, 0x24, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
	};
	return BN_bin2bn(RFC3526_PRIME_6144, sizeof(RFC3526_PRIME_6144), bn);
}







/* "8192-bit MODP Group" from RFC3526, Section 7.
 *
 * The prime is: 2^8192 - 2^8128 - 1 + 2^64 * { [2^8062 pi] + 4743158 }
 *
 * RFC3526 specifies a generator of 2.
 */







>
>
>
>
>
>







338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
		0xDA, 0x56, 0xC9, 0xEC, 0x2E, 0xF2, 0x96, 0x32, 0x38, 0x7F, 0xE8, 0xD7,
		0x6E, 0x3C, 0x04, 0x68, 0x04, 0x3E, 0x8F, 0x66, 0x3F, 0x48, 0x60, 0xEE,
		0x12, 0xBF, 0x2D, 0x5B, 0x0B, 0x74, 0x74, 0xD6, 0xE6, 0x94, 0xF9, 0x1E,
		0x6D, 0xCC, 0x40, 0x24, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
	};
	return BN_bin2bn(RFC3526_PRIME_6144, sizeof(RFC3526_PRIME_6144), bn);
}

BIGNUM *
BN_get_rfc3526_prime_6144(BIGNUM *bn)
{
	return get_rfc3526_prime_6144(bn);
}

/* "8192-bit MODP Group" from RFC3526, Section 7.
 *
 * The prime is: 2^8192 - 2^8128 - 1 + 2^64 * { [2^8062 pi] + 4743158 }
 *
 * RFC3526 specifies a generator of 2.
 */
403
404
405
406
407
408
409






		0x95, 0x58, 0xE4, 0x47, 0x56, 0x77, 0xE9, 0xAA, 0x9E, 0x30, 0x50, 0xE2,
		0x76, 0x56, 0x94, 0xDF, 0xC8, 0x1F, 0x56, 0xE8, 0x80, 0xB9, 0x6E, 0x71,
		0x60, 0xC9, 0x80, 0xDD, 0x98, 0xED, 0xD3, 0xDF, 0xFF, 0xFF, 0xFF, 0xFF,
		0xFF, 0xFF, 0xFF, 0xFF,
	};
	return BN_bin2bn(RFC3526_PRIME_8192, sizeof(RFC3526_PRIME_8192), bn);
}













>
>
>
>
>
>
445
446
447
448
449
450
451
452
453
454
455
456
457
		0x95, 0x58, 0xE4, 0x47, 0x56, 0x77, 0xE9, 0xAA, 0x9E, 0x30, 0x50, 0xE2,
		0x76, 0x56, 0x94, 0xDF, 0xC8, 0x1F, 0x56, 0xE8, 0x80, 0xB9, 0x6E, 0x71,
		0x60, 0xC9, 0x80, 0xDD, 0x98, 0xED, 0xD3, 0xDF, 0xFF, 0xFF, 0xFF, 0xFF,
		0xFF, 0xFF, 0xFF, 0xFF,
	};
	return BN_bin2bn(RFC3526_PRIME_8192, sizeof(RFC3526_PRIME_8192), bn);
}

BIGNUM *
BN_get_rfc3526_prime_8192(BIGNUM *bn)
{
	return get_rfc3526_prime_8192(bn);
}
Changes to jni/libressl/crypto/bn/bn_lib.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: bn_lib.c,v 1.38 2017/05/02 03:59:44 deraadt Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: bn_lib.c,v 1.39 2018/02/20 17:13:14 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
884
885
886
887
888
889
890

























	case 3: BN_CONSTTIME_SWAP(2); /* Fallthrough */
	case 2: BN_CONSTTIME_SWAP(1); /* Fallthrough */
	case 1:
		BN_CONSTTIME_SWAP(0);
	}
#undef BN_CONSTTIME_SWAP
}
































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
	case 3: BN_CONSTTIME_SWAP(2); /* Fallthrough */
	case 2: BN_CONSTTIME_SWAP(1); /* Fallthrough */
	case 1:
		BN_CONSTTIME_SWAP(0);
	}
#undef BN_CONSTTIME_SWAP
}

BN_GENCB *
BN_GENCB_new(void)
{
	BN_GENCB *cb;

	if ((cb = calloc(1, sizeof(*cb))) == NULL)
		return NULL;

	return cb;
}

void
BN_GENCB_free(BN_GENCB *cb)
{
	if (cb == NULL)
		return;
	free(cb);
}

void *
BN_GENCB_get_arg(BN_GENCB *cb)
{
	return cb->arg;
}
Changes to jni/libressl/crypto/bn/gf2m-elf-x86_64.S.
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
	psrldq	$8,%xmm0
	xorq	%rbx,%rdx
	movd	%xmm0,%rdi
	xorq	%rsi,%rax
	xorq	%rdi,%rdx

	addq	$128+8,%rsp
	.byte	0xf3,0xc3
.Lend_mul_1x1:
.size	_mul_1x1,.-_mul_1x1

.hidden	OPENSSL_ia32cap_P
.globl	bn_GF2m_mul_2x2
.type	bn_GF2m_mul_2x2,@function
.align	16







|







190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
	psrldq	$8,%xmm0
	xorq	%rbx,%rdx
	movd	%xmm0,%rdi
	xorq	%rsi,%rax
	xorq	%rdi,%rdx

	addq	$128+8,%rsp
	retq
.Lend_mul_1x1:
.size	_mul_1x1,.-_mul_1x1

.hidden	OPENSSL_ia32cap_P
.globl	bn_GF2m_mul_2x2
.type	bn_GF2m_mul_2x2,@function
.align	16
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
	movdqa	%xmm4,%xmm5
	pslldq	$8,%xmm4
	psrldq	$8,%xmm5
	pxor	%xmm4,%xmm2
	pxor	%xmm5,%xmm0
	movdqu	%xmm2,0(%rdi)
	movdqu	%xmm0,16(%rdi)
	.byte	0xf3,0xc3

.align	16
.Lvanilla_mul_2x2:
	leaq	-136(%rsp),%rsp
	movq	%r14,80(%rsp)
	movq	%r13,88(%rsp)
	movq	%r12,96(%rsp)







|







223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
	movdqa	%xmm4,%xmm5
	pslldq	$8,%xmm4
	psrldq	$8,%xmm5
	pxor	%xmm4,%xmm2
	pxor	%xmm5,%xmm0
	movdqu	%xmm2,0(%rdi)
	movdqu	%xmm0,16(%rdi)
	retq

.align	16
.Lvanilla_mul_2x2:
	leaq	-136(%rsp),%rsp
	movq	%r14,80(%rsp)
	movq	%r13,88(%rsp)
	movq	%r12,96(%rsp)
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296

	movq	80(%rsp),%r14
	movq	88(%rsp),%r13
	movq	96(%rsp),%r12
	movq	104(%rsp),%rbp
	movq	112(%rsp),%rbx
	leaq	136(%rsp),%rsp
	.byte	0xf3,0xc3
.Lend_mul_2x2:
.size	bn_GF2m_mul_2x2,.-bn_GF2m_mul_2x2
.byte	71,70,40,50,94,109,41,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.align	16
#if defined(HAVE_GNU_STACK)
.section .note.GNU-stack,"",%progbits
#endif







|







282
283
284
285
286
287
288
289
290
291
292
293
294
295
296

	movq	80(%rsp),%r14
	movq	88(%rsp),%r13
	movq	96(%rsp),%r12
	movq	104(%rsp),%rbp
	movq	112(%rsp),%rbx
	leaq	136(%rsp),%rsp
	retq
.Lend_mul_2x2:
.size	bn_GF2m_mul_2x2,.-bn_GF2m_mul_2x2
.byte	71,70,40,50,94,109,41,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.align	16
#if defined(HAVE_GNU_STACK)
.section .note.GNU-stack,"",%progbits
#endif
Changes to jni/libressl/crypto/bn/gf2m-macosx-x86_64.S.
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
	psrldq	$8,%xmm0
	xorq	%rbx,%rdx
	movd	%xmm0,%rdi
	xorq	%rsi,%rax
	xorq	%rdi,%rdx

	addq	$128+8,%rsp
	.byte	0xf3,0xc3
L$end_mul_1x1:


.private_extern	_OPENSSL_ia32cap_P
.globl	_bn_GF2m_mul_2x2

.p2align	4







|







190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
	psrldq	$8,%xmm0
	xorq	%rbx,%rdx
	movd	%xmm0,%rdi
	xorq	%rsi,%rax
	xorq	%rdi,%rdx

	addq	$128+8,%rsp
	retq
L$end_mul_1x1:


.private_extern	_OPENSSL_ia32cap_P
.globl	_bn_GF2m_mul_2x2

.p2align	4
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
	movdqa	%xmm4,%xmm5
	pslldq	$8,%xmm4
	psrldq	$8,%xmm5
	pxor	%xmm4,%xmm2
	pxor	%xmm5,%xmm0
	movdqu	%xmm2,0(%rdi)
	movdqu	%xmm0,16(%rdi)
	.byte	0xf3,0xc3

.p2align	4
L$vanilla_mul_2x2:
	leaq	-136(%rsp),%rsp
	movq	%r14,80(%rsp)
	movq	%r13,88(%rsp)
	movq	%r12,96(%rsp)







|







223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
	movdqa	%xmm4,%xmm5
	pslldq	$8,%xmm4
	psrldq	$8,%xmm5
	pxor	%xmm4,%xmm2
	pxor	%xmm5,%xmm0
	movdqu	%xmm2,0(%rdi)
	movdqu	%xmm0,16(%rdi)
	retq

.p2align	4
L$vanilla_mul_2x2:
	leaq	-136(%rsp),%rsp
	movq	%r14,80(%rsp)
	movq	%r13,88(%rsp)
	movq	%r12,96(%rsp)
282
283
284
285
286
287
288
289
290
291
292
293

	movq	80(%rsp),%r14
	movq	88(%rsp),%r13
	movq	96(%rsp),%r12
	movq	104(%rsp),%rbp
	movq	112(%rsp),%rbx
	leaq	136(%rsp),%rsp
	.byte	0xf3,0xc3
L$end_mul_2x2:

.byte	71,70,40,50,94,109,41,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.p2align	4







|




282
283
284
285
286
287
288
289
290
291
292
293

	movq	80(%rsp),%r14
	movq	88(%rsp),%r13
	movq	96(%rsp),%r12
	movq	104(%rsp),%rbp
	movq	112(%rsp),%rbx
	leaq	136(%rsp),%rsp
	retq
L$end_mul_2x2:

.byte	71,70,40,50,94,109,41,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.p2align	4
Changes to jni/libressl/crypto/bn/modexp512-elf-x86_64.S.
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
	movq	56(%rsi),%rax
	mulq	%rbp
	addq	%rax,%r8
	adcq	$0,%rdx
	addq	%rbx,%r8
	adcq	$0,%rdx
	movq	%rdx,%r9
	.byte	0xf3,0xc3
.size	MULADD_128x512,.-MULADD_128x512
.type	mont_reduce,@function
.align	16
mont_reduce:
	leaq	192(%rsp),%rdi
	movq	32(%rsp),%rsi
	addq	$576,%rsi







|







125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
	movq	56(%rsi),%rax
	mulq	%rbp
	addq	%rax,%r8
	adcq	$0,%rdx
	addq	%rbx,%r8
	adcq	$0,%rdx
	movq	%rdx,%r9
	retq
.size	MULADD_128x512,.-MULADD_128x512
.type	mont_reduce,@function
.align	16
mont_reduce:
	leaq	192(%rsp),%rdi
	movq	32(%rsp),%rsi
	addq	$576,%rsi
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
	movq	%r12,16(%rsi)
	movq	%r13,24(%rsi)
	movq	%r14,32(%rsi)
	movq	%r15,40(%rsi)
	movq	%r8,48(%rsi)
	movq	%r9,56(%rsi)

	.byte	0xf3,0xc3
.size	mont_reduce,.-mont_reduce
.type	mont_mul_a3b,@function
.align	16
mont_mul_a3b:










|







568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
	movq	%r12,16(%rsi)
	movq	%r13,24(%rsi)
	movq	%r14,32(%rsi)
	movq	%r15,40(%rsi)
	movq	%r8,48(%rsi)
	movq	%r9,56(%rsi)

	retq
.size	mont_reduce,.-mont_reduce
.type	mont_mul_a3b,@function
.align	16
mont_mul_a3b:



1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbx
	movq	40(%rsi),%rbp
	leaq	48(%rsi),%rsp
.Lepilogue:
	.byte	0xf3,0xc3
.size	mod_exp_512, . - mod_exp_512
#if defined(HAVE_GNU_STACK)
.section .note.GNU-stack,"",%progbits
#endif







|




1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbx
	movq	40(%rsi),%rbp
	leaq	48(%rsi),%rsp
.Lepilogue:
	retq
.size	mod_exp_512, . - mod_exp_512
#if defined(HAVE_GNU_STACK)
.section .note.GNU-stack,"",%progbits
#endif
Changes to jni/libressl/crypto/bn/modexp512-macosx-x86_64.S.
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
	movq	56(%rsi),%rax
	mulq	%rbp
	addq	%rax,%r8
	adcq	$0,%rdx
	addq	%rbx,%r8
	adcq	$0,%rdx
	movq	%rdx,%r9
	.byte	0xf3,0xc3


.p2align	4
mont_reduce:
	leaq	192(%rsp),%rdi
	movq	32(%rsp),%rsi
	addq	$576,%rsi







|







125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
	movq	56(%rsi),%rax
	mulq	%rbp
	addq	%rax,%r8
	adcq	$0,%rdx
	addq	%rbx,%r8
	adcq	$0,%rdx
	movq	%rdx,%r9
	retq


.p2align	4
mont_reduce:
	leaq	192(%rsp),%rdi
	movq	32(%rsp),%rsi
	addq	$576,%rsi
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
	movq	%r12,16(%rsi)
	movq	%r13,24(%rsi)
	movq	%r14,32(%rsi)
	movq	%r15,40(%rsi)
	movq	%r8,48(%rsi)
	movq	%r9,56(%rsi)

	.byte	0xf3,0xc3


.p2align	4
mont_mul_a3b:










|







568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
	movq	%r12,16(%rsi)
	movq	%r13,24(%rsi)
	movq	%r14,32(%rsi)
	movq	%r15,40(%rsi)
	movq	%r8,48(%rsi)
	movq	%r9,56(%rsi)

	retq


.p2align	4
mont_mul_a3b:



1766
1767
1768
1769
1770
1771
1772
1773
1774
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbx
	movq	40(%rsi),%rbp
	leaq	48(%rsi),%rsp
L$epilogue:
	.byte	0xf3,0xc3








|

1766
1767
1768
1769
1770
1771
1772
1773
1774
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbx
	movq	40(%rsi),%rbp
	leaq	48(%rsi),%rsp
L$epilogue:
	retq

Changes to jni/libressl/crypto/bn/mont-elf-x86_64.S.
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
.Lmul_epilogue:
	.byte	0xf3,0xc3
.size	bn_mul_mont,.-bn_mul_mont
.type	bn_mul4x_mont,@function
.align	16
bn_mul4x_mont:
.Lmul4x_enter:
	pushq	%rbx
	pushq	%rbp







|







202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
.Lmul_epilogue:
	retq
.size	bn_mul_mont,.-bn_mul_mont
.type	bn_mul4x_mont,@function
.align	16
bn_mul4x_mont:
.Lmul4x_enter:
	pushq	%rbx
	pushq	%rbp
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
.Lmul4x_epilogue:
	.byte	0xf3,0xc3
.size	bn_mul4x_mont,.-bn_mul4x_mont
.type	bn_sqr4x_mont,@function
.align	16
bn_sqr4x_mont:
.Lsqr4x_enter:
	pushq	%rbx
	pushq	%rbp







|







600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
.Lmul4x_epilogue:
	retq
.size	bn_mul4x_mont,.-bn_mul4x_mont
.type	bn_sqr4x_mont,@function
.align	16
bn_sqr4x_mont:
.Lsqr4x_enter:
	pushq	%rbx
	pushq	%rbp
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
.Lsqr4x_epilogue:
	.byte	0xf3,0xc3
.size	bn_sqr4x_mont,.-bn_sqr4x_mont
.byte	77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.align	16
#if defined(HAVE_GNU_STACK)
.section .note.GNU-stack,"",%progbits
#endif







|






1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
.Lsqr4x_epilogue:
	retq
.size	bn_sqr4x_mont,.-bn_sqr4x_mont
.byte	77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.align	16
#if defined(HAVE_GNU_STACK)
.section .note.GNU-stack,"",%progbits
#endif
Changes to jni/libressl/crypto/bn/mont-macosx-x86_64.S.
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
L$mul_epilogue:
	.byte	0xf3,0xc3


.p2align	4
bn_mul4x_mont:
L$mul4x_enter:
	pushq	%rbx
	pushq	%rbp







|







202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
L$mul_epilogue:
	retq


.p2align	4
bn_mul4x_mont:
L$mul4x_enter:
	pushq	%rbx
	pushq	%rbp
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
L$mul4x_epilogue:
	.byte	0xf3,0xc3


.p2align	4
bn_sqr4x_mont:
L$sqr4x_enter:
	pushq	%rbx
	pushq	%rbp







|







600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
L$mul4x_epilogue:
	retq


.p2align	4
bn_sqr4x_mont:
L$sqr4x_enter:
	pushq	%rbx
	pushq	%rbp
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
L$sqr4x_epilogue:
	.byte	0xf3,0xc3

.byte	77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.p2align	4







|



1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
L$sqr4x_epilogue:
	retq

.byte	77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.p2align	4
Changes to jni/libressl/crypto/bn/mont5-elf-x86_64.S.
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
.Lmul_epilogue:
	.byte	0xf3,0xc3
.size	bn_mul_mont_gather5,.-bn_mul_mont_gather5
.type	bn_mul4x_mont_gather5,@function
.align	16
bn_mul4x_mont_gather5:
.Lmul4x_enter:
	movl	%r9d,%r9d
	movd	8(%rsp),%xmm5







|







391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
.Lmul_epilogue:
	retq
.size	bn_mul_mont_gather5,.-bn_mul_mont_gather5
.type	bn_mul4x_mont_gather5,@function
.align	16
bn_mul4x_mont_gather5:
.Lmul4x_enter:
	movl	%r9d,%r9d
	movd	8(%rsp),%xmm5
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
.Lmul4x_epilogue:
	.byte	0xf3,0xc3
.size	bn_mul4x_mont_gather5,.-bn_mul4x_mont_gather5
.globl	bn_scatter5
.type	bn_scatter5,@function
.align	16
bn_scatter5:
	cmpq	$0,%rsi
	jz	.Lscatter_epilogue
	leaq	(%rdx,%rcx,8),%rdx
.Lscatter:
	movq	(%rdi),%rax
	leaq	8(%rdi),%rdi
	movq	%rax,(%rdx)
	leaq	256(%rdx),%rdx
	subq	$1,%rsi
	jnz	.Lscatter
.Lscatter_epilogue:
	.byte	0xf3,0xc3
.size	bn_scatter5,.-bn_scatter5

.globl	bn_gather5
.type	bn_gather5,@function
.align	16
bn_gather5:
.LSEH_begin_bn_gather5:







|
















|







980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
.Lmul4x_epilogue:
	retq
.size	bn_mul4x_mont_gather5,.-bn_mul4x_mont_gather5
.globl	bn_scatter5
.type	bn_scatter5,@function
.align	16
bn_scatter5:
	cmpq	$0,%rsi
	jz	.Lscatter_epilogue
	leaq	(%rdx,%rcx,8),%rdx
.Lscatter:
	movq	(%rdi),%rax
	leaq	8(%rdi),%rdi
	movq	%rax,(%rdx)
	leaq	256(%rdx),%rdx
	subq	$1,%rsi
	jnz	.Lscatter
.Lscatter_epilogue:
	retq
.size	bn_scatter5,.-bn_scatter5

.globl	bn_gather5
.type	bn_gather5,@function
.align	16
bn_gather5:
.LSEH_begin_bn_gather5:
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
	por	%xmm4,%xmm0
	movq	%xmm0,(%rdi)
	leaq	8(%rdi),%rdi
	subq	$1,%rsi
	jnz	.Lgather

	leaq	(%r10),%rsp
	.byte	0xf3,0xc3
.LSEH_end_bn_gather5:
.size	bn_gather5,.-bn_gather5
.align	64
.Linc:
.long	0,0, 1,1
.long	2,2, 2,2
.byte	77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,119,105,116,104,32,115,99,97,116,116,101,114,47,103,97,116,104,101,114,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
#if defined(HAVE_GNU_STACK)
.section .note.GNU-stack,"",%progbits
#endif







|










1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
	por	%xmm4,%xmm0
	movq	%xmm0,(%rdi)
	leaq	8(%rdi),%rdi
	subq	$1,%rsi
	jnz	.Lgather

	leaq	(%r10),%rsp
	retq
.LSEH_end_bn_gather5:
.size	bn_gather5,.-bn_gather5
.align	64
.Linc:
.long	0,0, 1,1
.long	2,2, 2,2
.byte	77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,119,105,116,104,32,115,99,97,116,116,101,114,47,103,97,116,104,101,114,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
#if defined(HAVE_GNU_STACK)
.section .note.GNU-stack,"",%progbits
#endif
Changes to jni/libressl/crypto/bn/mont5-macosx-x86_64.S.
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
L$mul_epilogue:
	.byte	0xf3,0xc3


.p2align	4
bn_mul4x_mont_gather5:
L$mul4x_enter:
	movl	%r9d,%r9d
	movd	8(%rsp),%xmm5







|







391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
L$mul_epilogue:
	retq


.p2align	4
bn_mul4x_mont_gather5:
L$mul4x_enter:
	movl	%r9d,%r9d
	movd	8(%rsp),%xmm5
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
L$mul4x_epilogue:
	.byte	0xf3,0xc3

.globl	_bn_scatter5

.p2align	4
_bn_scatter5:
	cmpq	$0,%rsi
	jz	L$scatter_epilogue
	leaq	(%rdx,%rcx,8),%rdx
L$scatter:
	movq	(%rdi),%rax
	leaq	8(%rdi),%rdi
	movq	%rax,(%rdx)
	leaq	256(%rdx),%rdx
	subq	$1,%rsi
	jnz	L$scatter
L$scatter_epilogue:
	.byte	0xf3,0xc3


.globl	_bn_gather5

.p2align	4
_bn_gather5:
L$SEH_begin_bn_gather5:







|
















|







980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
L$mul4x_epilogue:
	retq

.globl	_bn_scatter5

.p2align	4
_bn_scatter5:
	cmpq	$0,%rsi
	jz	L$scatter_epilogue
	leaq	(%rdx,%rcx,8),%rdx
L$scatter:
	movq	(%rdi),%rax
	leaq	8(%rdi),%rdi
	movq	%rax,(%rdx)
	leaq	256(%rdx),%rdx
	subq	$1,%rsi
	jnz	L$scatter
L$scatter_epilogue:
	retq


.globl	_bn_gather5

.p2align	4
_bn_gather5:
L$SEH_begin_bn_gather5:
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
	por	%xmm4,%xmm0
	movq	%xmm0,(%rdi)
	leaq	8(%rdi),%rdi
	subq	$1,%rsi
	jnz	L$gather

	leaq	(%r10),%rsp
	.byte	0xf3,0xc3
L$SEH_end_bn_gather5:

.p2align	6
L$inc:
.long	0,0, 1,1
.long	2,2, 2,2
.byte	77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,119,105,116,104,32,115,99,97,116,116,101,114,47,103,97,116,104,101,114,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0







|







1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
	por	%xmm4,%xmm0
	movq	%xmm0,(%rdi)
	leaq	8(%rdi),%rdi
	subq	$1,%rsi
	jnz	L$gather

	leaq	(%r10),%rsp
	retq
L$SEH_end_bn_gather5:

.p2align	6
L$inc:
.long	0,0, 1,1
.long	2,2, 2,2
.byte	77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,119,105,116,104,32,115,99,97,116,116,101,114,47,103,97,116,104,101,114,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
Changes to jni/libressl/crypto/camellia/cmll-elf-x86_64.S.
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
	movq	0(%rsp),%r15
	movq	8(%rsp),%r14
	movq	16(%rsp),%r13
	movq	24(%rsp),%rbp
	movq	32(%rsp),%rbx
	leaq	40(%rsp),%rsp
.Lenc_epilogue:
	.byte	0xf3,0xc3
.size	Camellia_EncryptBlock_Rounds,.-Camellia_EncryptBlock_Rounds

.type	_x86_64_Camellia_encrypt,@function
.align	16
_x86_64_Camellia_encrypt:
	xorl	0(%r14),%r9d
	xorl	4(%r14),%r8d







|







56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
	movq	0(%rsp),%r15
	movq	8(%rsp),%r14
	movq	16(%rsp),%r13
	movq	24(%rsp),%rbp
	movq	32(%rsp),%rbx
	leaq	40(%rsp),%rsp
.Lenc_epilogue:
	retq
.size	Camellia_EncryptBlock_Rounds,.-Camellia_EncryptBlock_Rounds

.type	_x86_64_Camellia_encrypt,@function
.align	16
_x86_64_Camellia_encrypt:
	xorl	0(%r14),%r9d
	xorl	4(%r14),%r8d
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
	xorl	%r9d,%edx

	movl	%eax,%r8d
	movl	%ebx,%r9d
	movl	%ecx,%r10d
	movl	%edx,%r11d

.byte	0xf3,0xc3		
.size	_x86_64_Camellia_encrypt,.-_x86_64_Camellia_encrypt


.globl	Camellia_DecryptBlock
.type	Camellia_DecryptBlock,@function
.align	16
Camellia_DecryptBlock:







|







263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
	xorl	%r9d,%edx

	movl	%eax,%r8d
	movl	%ebx,%r9d
	movl	%ecx,%r10d
	movl	%edx,%r11d

	retq
.size	_x86_64_Camellia_encrypt,.-_x86_64_Camellia_encrypt


.globl	Camellia_DecryptBlock
.type	Camellia_DecryptBlock,@function
.align	16
Camellia_DecryptBlock:
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
	movq	0(%rsp),%r15
	movq	8(%rsp),%r14
	movq	16(%rsp),%r13
	movq	24(%rsp),%rbp
	movq	32(%rsp),%rbx
	leaq	40(%rsp),%rsp
.Ldec_epilogue:
	.byte	0xf3,0xc3
.size	Camellia_DecryptBlock_Rounds,.-Camellia_DecryptBlock_Rounds

.type	_x86_64_Camellia_decrypt,@function
.align	16
_x86_64_Camellia_decrypt:
	xorl	0(%r14),%r9d
	xorl	4(%r14),%r8d







|







325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
	movq	0(%rsp),%r15
	movq	8(%rsp),%r14
	movq	16(%rsp),%r13
	movq	24(%rsp),%rbp
	movq	32(%rsp),%rbx
	leaq	40(%rsp),%rsp
.Ldec_epilogue:
	retq
.size	Camellia_DecryptBlock_Rounds,.-Camellia_DecryptBlock_Rounds

.type	_x86_64_Camellia_decrypt,@function
.align	16
_x86_64_Camellia_decrypt:
	xorl	0(%r14),%r9d
	xorl	4(%r14),%r8d
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
	xorl	%r9d,%ebx

	movl	%ecx,%r8d
	movl	%edx,%r9d
	movl	%eax,%r10d
	movl	%ebx,%r11d

.byte	0xf3,0xc3		
.size	_x86_64_Camellia_decrypt,.-_x86_64_Camellia_decrypt
.globl	Camellia_Ekeygen
.type	Camellia_Ekeygen,@function
.align	16
Camellia_Ekeygen:
	pushq	%rbx
	pushq	%rbp







|







533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
	xorl	%r9d,%ebx

	movl	%ecx,%r8d
	movl	%edx,%r9d
	movl	%eax,%r10d
	movl	%ebx,%r11d

	retq
.size	_x86_64_Camellia_decrypt,.-_x86_64_Camellia_decrypt
.globl	Camellia_Ekeygen
.type	Camellia_Ekeygen,@function
.align	16
Camellia_Ekeygen:
	pushq	%rbx
	pushq	%rbp
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
	movq	0(%rsp),%r15
	movq	8(%rsp),%r14
	movq	16(%rsp),%r13
	movq	24(%rsp),%rbp
	movq	32(%rsp),%rbx
	leaq	40(%rsp),%rsp
.Lkey_epilogue:
	.byte	0xf3,0xc3
.size	Camellia_Ekeygen,.-Camellia_Ekeygen
.align	64
.LCamellia_SIGMA:
.long	0x3bcc908b, 0xa09e667f, 0x4caa73b2, 0xb67ae858
.long	0xe94f82be, 0xc6ef372f, 0xf1d36f1c, 0x54ff53a5
.long	0xde682d1d, 0x10e527fa, 0xb3e6c1fd, 0xb05688c2
.long	0,          0,          0,          0







|







1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
	movq	0(%rsp),%r15
	movq	8(%rsp),%r14
	movq	16(%rsp),%r13
	movq	24(%rsp),%rbp
	movq	32(%rsp),%rbx
	leaq	40(%rsp),%rsp
.Lkey_epilogue:
	retq
.size	Camellia_Ekeygen,.-Camellia_Ekeygen
.align	64
.LCamellia_SIGMA:
.long	0x3bcc908b, 0xa09e667f, 0x4caa73b2, 0xb67ae858
.long	0xe94f82be, 0xc6ef372f, 0xf1d36f1c, 0x54ff53a5
.long	0xde682d1d, 0x10e527fa, 0xb3e6c1fd, 0xb05688c2
.long	0,          0,          0,          0
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
	movq	8(%rcx),%r14
	movq	16(%rcx),%r13
	movq	24(%rcx),%r12
	movq	32(%rcx),%rbp
	movq	40(%rcx),%rbx
	leaq	48(%rcx),%rsp
.Lcbc_abort:
	.byte	0xf3,0xc3
.size	Camellia_cbc_encrypt,.-Camellia_cbc_encrypt

.byte	67,97,109,101,108,108,105,97,32,102,111,114,32,120,56,54,95,54,52,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
#if defined(HAVE_GNU_STACK)
.section .note.GNU-stack,"",%progbits
#endif







|






1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
	movq	8(%rcx),%r14
	movq	16(%rcx),%r13
	movq	24(%rcx),%r12
	movq	32(%rcx),%rbp
	movq	40(%rcx),%rbx
	leaq	48(%rcx),%rsp
.Lcbc_abort:
	retq
.size	Camellia_cbc_encrypt,.-Camellia_cbc_encrypt

.byte	67,97,109,101,108,108,105,97,32,102,111,114,32,120,56,54,95,54,52,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
#if defined(HAVE_GNU_STACK)
.section .note.GNU-stack,"",%progbits
#endif
Changes to jni/libressl/crypto/camellia/cmll-macosx-x86_64.S.
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
	movq	0(%rsp),%r15
	movq	8(%rsp),%r14
	movq	16(%rsp),%r13
	movq	24(%rsp),%rbp
	movq	32(%rsp),%rbx
	leaq	40(%rsp),%rsp
L$enc_epilogue:
	.byte	0xf3,0xc3



.p2align	4
_x86_64_Camellia_encrypt:
	xorl	0(%r14),%r9d
	xorl	4(%r14),%r8d







|







56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
	movq	0(%rsp),%r15
	movq	8(%rsp),%r14
	movq	16(%rsp),%r13
	movq	24(%rsp),%rbp
	movq	32(%rsp),%rbx
	leaq	40(%rsp),%rsp
L$enc_epilogue:
	retq



.p2align	4
_x86_64_Camellia_encrypt:
	xorl	0(%r14),%r9d
	xorl	4(%r14),%r8d
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
	xorl	%r9d,%edx

	movl	%eax,%r8d
	movl	%ebx,%r9d
	movl	%ecx,%r10d
	movl	%edx,%r11d

.byte	0xf3,0xc3		



.globl	_Camellia_DecryptBlock

.p2align	4
_Camellia_DecryptBlock:







|







263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
	xorl	%r9d,%edx

	movl	%eax,%r8d
	movl	%ebx,%r9d
	movl	%ecx,%r10d
	movl	%edx,%r11d

	retq



.globl	_Camellia_DecryptBlock

.p2align	4
_Camellia_DecryptBlock:
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
	movq	0(%rsp),%r15
	movq	8(%rsp),%r14
	movq	16(%rsp),%r13
	movq	24(%rsp),%rbp
	movq	32(%rsp),%rbx
	leaq	40(%rsp),%rsp
L$dec_epilogue:
	.byte	0xf3,0xc3



.p2align	4
_x86_64_Camellia_decrypt:
	xorl	0(%r14),%r9d
	xorl	4(%r14),%r8d







|







325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
	movq	0(%rsp),%r15
	movq	8(%rsp),%r14
	movq	16(%rsp),%r13
	movq	24(%rsp),%rbp
	movq	32(%rsp),%rbx
	leaq	40(%rsp),%rsp
L$dec_epilogue:
	retq



.p2align	4
_x86_64_Camellia_decrypt:
	xorl	0(%r14),%r9d
	xorl	4(%r14),%r8d
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
	xorl	%r9d,%ebx

	movl	%ecx,%r8d
	movl	%edx,%r9d
	movl	%eax,%r10d
	movl	%ebx,%r11d

.byte	0xf3,0xc3		

.globl	_Camellia_Ekeygen

.p2align	4
_Camellia_Ekeygen:
	pushq	%rbx
	pushq	%rbp







|







533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
	xorl	%r9d,%ebx

	movl	%ecx,%r8d
	movl	%edx,%r9d
	movl	%eax,%r10d
	movl	%ebx,%r11d

	retq

.globl	_Camellia_Ekeygen

.p2align	4
_Camellia_Ekeygen:
	pushq	%rbx
	pushq	%rbp
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
	movq	0(%rsp),%r15
	movq	8(%rsp),%r14
	movq	16(%rsp),%r13
	movq	24(%rsp),%rbp
	movq	32(%rsp),%rbx
	leaq	40(%rsp),%rsp
L$key_epilogue:
	.byte	0xf3,0xc3

.p2align	6
L$Camellia_SIGMA:
.long	0x3bcc908b, 0xa09e667f, 0x4caa73b2, 0xb67ae858
.long	0xe94f82be, 0xc6ef372f, 0xf1d36f1c, 0x54ff53a5
.long	0xde682d1d, 0x10e527fa, 0xb3e6c1fd, 0xb05688c2
.long	0,          0,          0,          0







|







1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
	movq	0(%rsp),%r15
	movq	8(%rsp),%r14
	movq	16(%rsp),%r13
	movq	24(%rsp),%rbp
	movq	32(%rsp),%rbx
	leaq	40(%rsp),%rsp
L$key_epilogue:
	retq

.p2align	6
L$Camellia_SIGMA:
.long	0x3bcc908b, 0xa09e667f, 0x4caa73b2, 0xb67ae858
.long	0xe94f82be, 0xc6ef372f, 0xf1d36f1c, 0x54ff53a5
.long	0xde682d1d, 0x10e527fa, 0xb3e6c1fd, 0xb05688c2
.long	0,          0,          0,          0
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
	movq	8(%rcx),%r14
	movq	16(%rcx),%r13
	movq	24(%rcx),%r12
	movq	32(%rcx),%rbp
	movq	40(%rcx),%rbx
	leaq	48(%rcx),%rsp
L$cbc_abort:
	.byte	0xf3,0xc3


.byte	67,97,109,101,108,108,105,97,32,102,111,114,32,120,56,54,95,54,52,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0







|



1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
	movq	8(%rcx),%r14
	movq	16(%rcx),%r13
	movq	24(%rcx),%r12
	movq	32(%rcx),%rbp
	movq	40(%rcx),%rbx
	leaq	48(%rcx),%rsp
L$cbc_abort:
	retq


.byte	67,97,109,101,108,108,105,97,32,102,111,114,32,120,56,54,95,54,52,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
Changes to jni/libressl/crypto/comp/c_zlib.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: c_zlib.c,v 1.19 2017/01/29 17:49:22 beck Exp $ */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <openssl/objects.h>
#include <openssl/comp.h>
#include <openssl/err.h>

|







1
2
3
4
5
6
7
8
/* $OpenBSD: c_zlib.c,v 1.20 2018/03/17 16:20:01 beck Exp $ */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <openssl/objects.h>
#include <openssl/comp.h>
#include <openssl/err.h>

187
188
189
190
191
192
193


194
195
196
197
198
199
200
				zlib_stateful_ex_idx =
			    CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_COMP,
			    0, NULL, NULL, NULL, NULL);
			CRYPTO_w_unlock(CRYPTO_LOCK_COMP);
			if (zlib_stateful_ex_idx == -1)
				goto err;
		}



		meth = &zlib_stateful_method;
	}

err:
#endif








>
>







187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
				zlib_stateful_ex_idx =
			    CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_COMP,
			    0, NULL, NULL, NULL, NULL);
			CRYPTO_w_unlock(CRYPTO_LOCK_COMP);
			if (zlib_stateful_ex_idx == -1)
				goto err;
		}
		if (!OPENSSL_init_crypto(0, NULL))
			goto err;

		meth = &zlib_stateful_method;
	}

err:
#endif

Changes to jni/libressl/crypto/compat/getentropy_linux.c.
1
2
3
4
5
6
7
8
/*	$OpenBSD: getentropy_linux.c,v 1.44 2017/04/29 18:43:31 beck Exp $	*/

/*
 * Copyright (c) 2014 Theo de Raadt <deraadt@openbsd.org>
 * Copyright (c) 2014 Bob Beck <beck@obtuse.com>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
|







1
2
3
4
5
6
7
8
/*	$OpenBSD: getentropy_linux.c,v 1.45 2018/03/13 22:53:28 bcook Exp $	*/

/*
 * Copyright (c) 2014 Theo de Raadt <deraadt@openbsd.org>
 * Copyright (c) 2014 Bob Beck <beck@obtuse.com>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#define HR(x, l) (SHA512_Update(&ctx, (char *)(x), (l)))
#define HD(x)	 (SHA512_Update(&ctx, (char *)&(x), sizeof (x)))
#define HF(x)    (SHA512_Update(&ctx, (char *)&(x), sizeof (void*)))

int	getentropy(void *buf, size_t len);

static int gotdata(char *buf, size_t len);
#ifdef SYS_getrandom
static int getentropy_getrandom(void *buf, size_t len);
#endif
static int getentropy_urandom(void *buf, size_t len);
#ifdef SYS__sysctl
static int getentropy_sysctl(void *buf, size_t len);
#endif
static int getentropy_fallback(void *buf, size_t len);
static int getentropy_phdr(struct dl_phdr_info *info, size_t size, void *data);

int
getentropy(void *buf, size_t len)
{
	int ret = -1;

	if (len > 256) {
		errno = EIO;
		return (-1);
	}

#ifdef SYS_getrandom
	/*
	 * Try descriptor-less getrandom(), in non-blocking mode.
	 *
	 * The design of Linux getrandom is broken.  It has an
	 * uninitialized phase coupled with blocking behaviour, which
	 * is unacceptable from within a library at boot time without
	 * possible recovery. See http://bugs.python.org/issue26839#msg267745







|



















|







70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#define HR(x, l) (SHA512_Update(&ctx, (char *)(x), (l)))
#define HD(x)	 (SHA512_Update(&ctx, (char *)&(x), sizeof (x)))
#define HF(x)    (SHA512_Update(&ctx, (char *)&(x), sizeof (void*)))

int	getentropy(void *buf, size_t len);

static int gotdata(char *buf, size_t len);
#if defined(SYS_getrandom) && defined(GRND_NONBLOCK)
static int getentropy_getrandom(void *buf, size_t len);
#endif
static int getentropy_urandom(void *buf, size_t len);
#ifdef SYS__sysctl
static int getentropy_sysctl(void *buf, size_t len);
#endif
static int getentropy_fallback(void *buf, size_t len);
static int getentropy_phdr(struct dl_phdr_info *info, size_t size, void *data);

int
getentropy(void *buf, size_t len)
{
	int ret = -1;

	if (len > 256) {
		errno = EIO;
		return (-1);
	}

#if defined(SYS_getrandom) && defined(GRND_NONBLOCK)
	/*
	 * Try descriptor-less getrandom(), in non-blocking mode.
	 *
	 * The design of Linux getrandom is broken.  It has an
	 * uninitialized phase coupled with blocking behaviour, which
	 * is unacceptable from within a library at boot time without
	 * possible recovery. See http://bugs.python.org/issue26839#msg267745
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
	for (i = 0; i < len; ++i)
		any_set |= buf[i];
	if (any_set == 0)
		return (-1);
	return (0);
}

#ifdef SYS_getrandom
static int
getentropy_getrandom(void *buf, size_t len)
{
	int pre_errno = errno;
	int ret;
	if (len > 256)
		return (-1);







|







189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
	for (i = 0; i < len; ++i)
		any_set |= buf[i];
	if (any_set == 0)
		return (-1);
	return (0);
}

#if defined(SYS_getrandom) && defined(GRND_NONBLOCK)
static int
getentropy_getrandom(void *buf, size_t len)
{
	int pre_errno = errno;
	int ret;
	if (len > 256)
		return (-1);
Changes to jni/libressl/crypto/conf/conf_sap.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: conf_sap.c,v 1.11 2015/02/11 03:19:37 doug Exp $ */
/* Written by Stephen Henson (steve@openssl.org) for the OpenSSL
 * project 2001.
 */
/* ====================================================================
 * Copyright (c) 2001 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
/* $OpenBSD: conf_sap.c,v 1.14 2018/03/19 03:56:08 beck Exp $ */
/* Written by Stephen Henson (steve@openssl.org) for the OpenSSL
 * project 2001.
 */
/* ====================================================================
 * Copyright (c) 2001 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
52
53
54
55
56
57
58

59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82

83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108





















109






110
111





112

113








 *
 * This product includes cryptographic software written by Eric Young
 * (eay@cryptsoft.com).  This product includes software written by Tim
 * Hudson (tjh@cryptsoft.com).
 *
 */


#include <stdio.h>

#include <openssl/opensslconf.h>

#include <openssl/asn1.h>
#include <openssl/conf.h>
#include <openssl/crypto.h>
#include <openssl/err.h>
#include <openssl/x509.h>

#ifndef OPENSSL_NO_ENGINE
#include <openssl/engine.h>
#endif

/* This is the automatic configuration loader: it is called automatically by
 * OpenSSL when any of a number of standard initialisation functions are called,
 * unless this is overridden by calling OPENSSL_no_config()
 */

static int openssl_configured = 0;

void
OPENSSL_config(const char *config_name)
{

	if (openssl_configured)
		return;

	OPENSSL_load_builtin_modules();
#ifndef OPENSSL_NO_ENGINE
	/* Need to load ENGINEs */
	ENGINE_load_builtin_engines();
#endif
	/* Add others here? */

	ERR_clear_error();
	if (CONF_modules_load_file(NULL, config_name,
	    CONF_MFLAGS_DEFAULT_SECTION|CONF_MFLAGS_IGNORE_MISSING_FILE) <= 0) {
		BIO *bio_err;
		ERR_load_crypto_strings();
		if ((bio_err = BIO_new_fp(stderr, BIO_NOCLOSE)) != NULL) {
			BIO_printf(bio_err, "Auto configuration failed\n");
			ERR_print_errors(bio_err);
			BIO_free(bio_err);
		}
		exit(1);
	}

	return;
}






















void






OPENSSL_no_config(void)
{





	openssl_configured = 1;

}















>



















|

<
|
|
>
|
<
|








|














>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

>
>
>
>
>
>
|

>
>
>
>
>
|
>
|
>
>
>
>
>
>
>
>
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80

81
82
83
84

85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
 *
 * This product includes cryptographic software written by Eric Young
 * (eay@cryptsoft.com).  This product includes software written by Tim
 * Hudson (tjh@cryptsoft.com).
 *
 */

#include <pthread.h>
#include <stdio.h>

#include <openssl/opensslconf.h>

#include <openssl/asn1.h>
#include <openssl/conf.h>
#include <openssl/crypto.h>
#include <openssl/err.h>
#include <openssl/x509.h>

#ifndef OPENSSL_NO_ENGINE
#include <openssl/engine.h>
#endif

/* This is the automatic configuration loader: it is called automatically by
 * OpenSSL when any of a number of standard initialisation functions are called,
 * unless this is overridden by calling OPENSSL_no_config()
 */

static pthread_once_t openssl_configured = PTHREAD_ONCE_INIT;


static const char *openssl_config_name;

static void
OPENSSL_config_internal(void)

{
	OPENSSL_load_builtin_modules();
#ifndef OPENSSL_NO_ENGINE
	/* Need to load ENGINEs */
	ENGINE_load_builtin_engines();
#endif
	/* Add others here? */

	ERR_clear_error();
	if (CONF_modules_load_file(NULL, openssl_config_name,
	    CONF_MFLAGS_DEFAULT_SECTION|CONF_MFLAGS_IGNORE_MISSING_FILE) <= 0) {
		BIO *bio_err;
		ERR_load_crypto_strings();
		if ((bio_err = BIO_new_fp(stderr, BIO_NOCLOSE)) != NULL) {
			BIO_printf(bio_err, "Auto configuration failed\n");
			ERR_print_errors(bio_err);
			BIO_free(bio_err);
		}
		exit(1);
	}

	return;
}

int
OpenSSL_config(const char *config_name)
{
	/* Don't override if NULL */
	/*
	 * Note - multiple threads calling this with *different* config names
	 * is probably not advisable.  One thread will win, but you don't know
	 * if it will be the same thread as wins the pthread_once.
	 */
	if (config_name != NULL)
		openssl_config_name = config_name;

	if (OPENSSL_init_crypto(0, NULL) == 0)
		return 0;

	if (pthread_once(&openssl_configured, OPENSSL_config_internal) != 0)
		return 0;

	return 1;
}

void
OPENSSL_config(const char *config_name)
{
	(void) OpenSSL_config(config_name);
}

static void
OPENSSL_no_config_internal(void)
{
}

int
OpenSSL_no_config(void)
{
	if (pthread_once(&openssl_configured, OPENSSL_no_config_internal) != 0)
		return 0;

	return 1;
}

void
OPENSSL_no_config(void)
{
	(void) OpenSSL_no_config();
}
Changes to jni/libressl/crypto/cpuid-elf-x86_64.S.
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
	movl	(%rdi),%eax
.Lspin:	leaq	(%rsi,%rax,1),%r8
.byte	0xf0		
	cmpxchgl	%r8d,(%rdi)
	jne	.Lspin
	movl	%r8d,%eax
.byte	0x48,0x98	
	.byte	0xf3,0xc3
.size	OPENSSL_atomic_add,.-OPENSSL_atomic_add

.globl	OPENSSL_ia32_cpuid
.type	OPENSSL_ia32_cpuid,@function
.align	16
OPENSSL_ia32_cpuid:
	movq	%rbx,%r8







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
	movl	(%rdi),%eax
.Lspin:	leaq	(%rsi,%rax,1),%r8
.byte	0xf0		
	cmpxchgl	%r8d,(%rdi)
	jne	.Lspin
	movl	%r8d,%eax
.byte	0x48,0x98	
	retq
.size	OPENSSL_atomic_add,.-OPENSSL_atomic_add

.globl	OPENSSL_ia32_cpuid
.type	OPENSSL_ia32_cpuid,@function
.align	16
OPENSSL_ia32_cpuid:
	movq	%rbx,%r8
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
	movl	$(~(IA32CAP_MASK1_AVX | IA32CAP_MASK1_FMA3 | IA32CAP_MASK1_AMD_XOP)),%eax
	andl	%eax,%r9d
.Ldone:
	shlq	$32,%r9
	movl	%r10d,%eax
	movq	%r8,%rbx
	orq	%r9,%rax
	.byte	0xf3,0xc3
.size	OPENSSL_ia32_cpuid,.-OPENSSL_ia32_cpuid
.globl	OPENSSL_wipe_cpu
.type	OPENSSL_wipe_cpu,@function
.align	16
OPENSSL_wipe_cpu:
	pxor	%xmm0,%xmm0
	pxor	%xmm1,%xmm1







|







141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
	movl	$(~(IA32CAP_MASK1_AVX | IA32CAP_MASK1_FMA3 | IA32CAP_MASK1_AMD_XOP)),%eax
	andl	%eax,%r9d
.Ldone:
	shlq	$32,%r9
	movl	%r10d,%eax
	movq	%r8,%rbx
	orq	%r9,%rax
	retq
.size	OPENSSL_ia32_cpuid,.-OPENSSL_ia32_cpuid
.globl	OPENSSL_wipe_cpu
.type	OPENSSL_wipe_cpu,@function
.align	16
OPENSSL_wipe_cpu:
	pxor	%xmm0,%xmm0
	pxor	%xmm1,%xmm1
172
173
174
175
176
177
178
179
180
181
182
183
	xorq	%rsi,%rsi
	xorq	%rdi,%rdi
	xorq	%r8,%r8
	xorq	%r9,%r9
	xorq	%r10,%r10
	xorq	%r11,%r11
	leaq	8(%rsp),%rax
	.byte	0xf3,0xc3
.size	OPENSSL_wipe_cpu,.-OPENSSL_wipe_cpu
#if defined(HAVE_GNU_STACK)
.section .note.GNU-stack,"",%progbits
#endif







|




172
173
174
175
176
177
178
179
180
181
182
183
	xorq	%rsi,%rsi
	xorq	%rdi,%rdi
	xorq	%r8,%r8
	xorq	%r9,%r9
	xorq	%r10,%r10
	xorq	%r11,%r11
	leaq	8(%rsp),%rax
	retq
.size	OPENSSL_wipe_cpu,.-OPENSSL_wipe_cpu
#if defined(HAVE_GNU_STACK)
.section .note.GNU-stack,"",%progbits
#endif
Changes to jni/libressl/crypto/cpuid-macosx-x86_64.S.
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
	movl	(%rdi),%eax
L$spin:	leaq	(%rsi,%rax,1),%r8
.byte	0xf0		
	cmpxchgl	%r8d,(%rdi)
	jne	L$spin
	movl	%r8d,%eax
.byte	0x48,0x98	
	.byte	0xf3,0xc3


.globl	_OPENSSL_ia32_cpuid

.p2align	4
_OPENSSL_ia32_cpuid:
	movq	%rbx,%r8







|







17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
	movl	(%rdi),%eax
L$spin:	leaq	(%rsi,%rax,1),%r8
.byte	0xf0		
	cmpxchgl	%r8d,(%rdi)
	jne	L$spin
	movl	%r8d,%eax
.byte	0x48,0x98	
	retq


.globl	_OPENSSL_ia32_cpuid

.p2align	4
_OPENSSL_ia32_cpuid:
	movq	%rbx,%r8
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
	movl	$(~(IA32CAP_MASK1_AVX | IA32CAP_MASK1_FMA3 | IA32CAP_MASK1_AMD_XOP)),%eax
	andl	%eax,%r9d
L$done:
	shlq	$32,%r9
	movl	%r10d,%eax
	movq	%r8,%rbx
	orq	%r9,%rax
	.byte	0xf3,0xc3

.globl	_OPENSSL_wipe_cpu

.p2align	4
_OPENSSL_wipe_cpu:
	pxor	%xmm0,%xmm0
	pxor	%xmm1,%xmm1







|







142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
	movl	$(~(IA32CAP_MASK1_AVX | IA32CAP_MASK1_FMA3 | IA32CAP_MASK1_AMD_XOP)),%eax
	andl	%eax,%r9d
L$done:
	shlq	$32,%r9
	movl	%r10d,%eax
	movq	%r8,%rbx
	orq	%r9,%rax
	retq

.globl	_OPENSSL_wipe_cpu

.p2align	4
_OPENSSL_wipe_cpu:
	pxor	%xmm0,%xmm0
	pxor	%xmm1,%xmm1
173
174
175
176
177
178
179
180
181
	xorq	%rsi,%rsi
	xorq	%rdi,%rdi
	xorq	%r8,%r8
	xorq	%r9,%r9
	xorq	%r10,%r10
	xorq	%r11,%r11
	leaq	8(%rsp),%rax
	.byte	0xf3,0xc3








|

173
174
175
176
177
178
179
180
181
	xorq	%rsi,%rsi
	xorq	%rdi,%rdi
	xorq	%r8,%r8
	xorq	%r9,%r9
	xorq	%r10,%r10
	xorq	%r11,%r11
	leaq	8(%rsp),%rax
	retq

Changes to jni/libressl/crypto/crypto.sym.
100
101
102
103
104
105
106

107
108
109
110
111
112
113
ASN1_STRING_TABLE_cleanup
ASN1_STRING_TABLE_get
ASN1_STRING_cmp
ASN1_STRING_copy
ASN1_STRING_data
ASN1_STRING_dup
ASN1_STRING_free

ASN1_STRING_get_default_mask
ASN1_STRING_length
ASN1_STRING_length_set
ASN1_STRING_new
ASN1_STRING_print
ASN1_STRING_print_ex
ASN1_STRING_print_ex_fp







>







100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
ASN1_STRING_TABLE_cleanup
ASN1_STRING_TABLE_get
ASN1_STRING_cmp
ASN1_STRING_copy
ASN1_STRING_data
ASN1_STRING_dup
ASN1_STRING_free
ASN1_STRING_get0_data
ASN1_STRING_get_default_mask
ASN1_STRING_length
ASN1_STRING_length_set
ASN1_STRING_new
ASN1_STRING_print
ASN1_STRING_print_ex
ASN1_STRING_print_ex_fp
271
272
273
274
275
276
277

278
279
280

281
282
283

284
285
286
287


















288
289
290
291
292
293
294
BIO_fd_should_retry
BIO_find_type
BIO_free
BIO_free_all
BIO_get_accept_socket
BIO_get_callback
BIO_get_callback_arg

BIO_get_ex_data
BIO_get_ex_new_index
BIO_get_host_ip

BIO_get_port
BIO_get_retry_BIO
BIO_get_retry_reason

BIO_gethostbyname
BIO_gets
BIO_indent
BIO_int_ctrl


















BIO_method_name
BIO_method_type
BIO_new
BIO_new_NDEF
BIO_new_PKCS7
BIO_new_accept
BIO_new_bio_pair







>



>



>




>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
BIO_fd_should_retry
BIO_find_type
BIO_free
BIO_free_all
BIO_get_accept_socket
BIO_get_callback
BIO_get_callback_arg
BIO_get_data
BIO_get_ex_data
BIO_get_ex_new_index
BIO_get_host_ip
BIO_get_new_index
BIO_get_port
BIO_get_retry_BIO
BIO_get_retry_reason
BIO_get_shutdown
BIO_gethostbyname
BIO_gets
BIO_indent
BIO_int_ctrl
BIO_meth_free
BIO_meth_get_callback_ctrl
BIO_meth_get_create
BIO_meth_get_ctrl
BIO_meth_get_destroy
BIO_meth_get_gets
BIO_meth_get_puts
BIO_meth_get_read
BIO_meth_get_write
BIO_meth_new
BIO_meth_set_callback_ctrl
BIO_meth_set_create
BIO_meth_set_ctrl
BIO_meth_set_destroy
BIO_meth_set_gets
BIO_meth_set_puts
BIO_meth_set_read
BIO_meth_set_write
BIO_method_name
BIO_method_type
BIO_new
BIO_new_NDEF
BIO_new_PKCS7
BIO_new_accept
BIO_new_bio_pair
322
323
324
325
326
327
328

329
330


331
332
333
334
335
336
337
338
339
340

341
342
343
344
345
346
347
BIO_s_mem
BIO_s_null
BIO_s_socket
BIO_set
BIO_set_callback
BIO_set_callback_arg
BIO_set_cipher

BIO_set_ex_data
BIO_set_flags


BIO_set_tcp_ndelay
BIO_snprintf
BIO_sock_cleanup
BIO_sock_error
BIO_sock_init
BIO_sock_non_fatal_error
BIO_sock_should_retry
BIO_socket_ioctl
BIO_socket_nbio
BIO_test_flags

BIO_vfree
BIO_vprintf
BIO_vsnprintf
BIO_write
BN_BLINDING_convert
BN_BLINDING_convert_ex
BN_BLINDING_create_param







>


>
>










>







344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
BIO_s_mem
BIO_s_null
BIO_s_socket
BIO_set
BIO_set_callback
BIO_set_callback_arg
BIO_set_cipher
BIO_set_data
BIO_set_ex_data
BIO_set_flags
BIO_set_init
BIO_set_shutdown
BIO_set_tcp_ndelay
BIO_snprintf
BIO_sock_cleanup
BIO_sock_error
BIO_sock_init
BIO_sock_non_fatal_error
BIO_sock_should_retry
BIO_socket_ioctl
BIO_socket_nbio
BIO_test_flags
BIO_up_ref
BIO_vfree
BIO_vprintf
BIO_vsnprintf
BIO_write
BN_BLINDING_convert
BN_BLINDING_convert_ex
BN_BLINDING_create_param
358
359
360
361
362
363
364



365
366
367
368
369
370
371
BN_CTX_end
BN_CTX_free
BN_CTX_get
BN_CTX_init
BN_CTX_new
BN_CTX_start
BN_GENCB_call



BN_GF2m_add
BN_GF2m_arr2poly
BN_GF2m_mod
BN_GF2m_mod_arr
BN_GF2m_mod_div
BN_GF2m_mod_div_arr
BN_GF2m_mod_exp







>
>
>







384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
BN_CTX_end
BN_CTX_free
BN_CTX_get
BN_CTX_init
BN_CTX_new
BN_CTX_start
BN_GENCB_call
BN_GENCB_free
BN_GENCB_get_arg
BN_GENCB_new
BN_GF2m_add
BN_GF2m_arr2poly
BN_GF2m_mod
BN_GF2m_mod_arr
BN_GF2m_mod_div
BN_GF2m_mod_div_arr
BN_GF2m_mod_exp
421
422
423
424
425
426
427








428
429
430
431
432
433
434
BN_generate_prime_ex
BN_get0_nist_prime_192
BN_get0_nist_prime_224
BN_get0_nist_prime_256
BN_get0_nist_prime_384
BN_get0_nist_prime_521
BN_get_params








BN_get_word
BN_hex2bn
BN_init
BN_is_bit_set
BN_is_prime
BN_is_prime_ex
BN_is_prime_fasttest







>
>
>
>
>
>
>
>







450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
BN_generate_prime_ex
BN_get0_nist_prime_192
BN_get0_nist_prime_224
BN_get0_nist_prime_256
BN_get0_nist_prime_384
BN_get0_nist_prime_521
BN_get_params
BN_get_rfc2409_prime_1024
BN_get_rfc2409_prime_768
BN_get_rfc3526_prime_1536
BN_get_rfc3526_prime_2048
BN_get_rfc3526_prime_3072
BN_get_rfc3526_prime_4096
BN_get_rfc3526_prime_6144
BN_get_rfc3526_prime_8192
BN_get_word
BN_hex2bn
BN_init
BN_is_bit_set
BN_is_prime
BN_is_prime_ex
BN_is_prime_fasttest
724
725
726
727
728
729
730

731
732

733
734
735
736
737



738
739
740
741
742


743
744


745
746

747
748
749
750
751
752
753
DES_set_key_checked
DES_set_key_unchecked
DES_set_odd_parity
DES_string_to_2keys
DES_string_to_key
DES_xcbc_encrypt
DH_OpenSSL

DH_check
DH_check_pub_key

DH_compute_key
DH_free
DH_generate_key
DH_generate_parameters
DH_generate_parameters_ex



DH_get_default_method
DH_get_ex_data
DH_get_ex_new_index
DH_new
DH_new_method


DH_set_default_method
DH_set_ex_data


DH_set_method
DH_size

DH_up_ref
DHparams_dup
DHparams_it
DHparams_print
DHparams_print_fp
DIRECTORYSTRING_free
DIRECTORYSTRING_it







>


>





>
>
>





>
>


>
>


>







761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
DES_set_key_checked
DES_set_key_unchecked
DES_set_odd_parity
DES_string_to_2keys
DES_string_to_key
DES_xcbc_encrypt
DH_OpenSSL
DH_bits
DH_check
DH_check_pub_key
DH_clear_flags
DH_compute_key
DH_free
DH_generate_key
DH_generate_parameters
DH_generate_parameters_ex
DH_get0_engine
DH_get0_key
DH_get0_pqg
DH_get_default_method
DH_get_ex_data
DH_get_ex_new_index
DH_new
DH_new_method
DH_set0_key
DH_set0_pqg
DH_set_default_method
DH_set_ex_data
DH_set_flags
DH_set_length
DH_set_method
DH_size
DH_test_flags
DH_up_ref
DHparams_dup
DHparams_it
DHparams_print
DHparams_print_fp
DIRECTORYSTRING_free
DIRECTORYSTRING_it
762
763
764
765
766
767
768

769
770


771
772
773
774
775
776
777



778
779
780





781
782
783
784


785
786

787
788
789
790

791
792
793
794
795
796
797
DIST_POINT_it
DIST_POINT_new
DIST_POINT_set_dpname
DSAPrivateKey_it
DSAPublicKey_it
DSA_OpenSSL
DSA_SIG_free

DSA_SIG_it
DSA_SIG_new


DSA_do_sign
DSA_do_verify
DSA_dup_DH
DSA_free
DSA_generate_key
DSA_generate_parameters
DSA_generate_parameters_ex



DSA_get_default_method
DSA_get_ex_data
DSA_get_ex_new_index





DSA_new
DSA_new_method
DSA_print
DSA_print_fp


DSA_set_default_method
DSA_set_ex_data

DSA_set_method
DSA_sign
DSA_sign_setup
DSA_size

DSA_up_ref
DSA_verify
DSAparams_dup
DSAparams_it
DSAparams_print
DSAparams_print_fp
DSO_METHOD_dlfcn







>


>
>







>
>
>



>
>
>
>
>




>
>


>




>







809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
DIST_POINT_it
DIST_POINT_new
DIST_POINT_set_dpname
DSAPrivateKey_it
DSAPublicKey_it
DSA_OpenSSL
DSA_SIG_free
DSA_SIG_get0
DSA_SIG_it
DSA_SIG_new
DSA_SIG_set0
DSA_clear_flags
DSA_do_sign
DSA_do_verify
DSA_dup_DH
DSA_free
DSA_generate_key
DSA_generate_parameters
DSA_generate_parameters_ex
DSA_get0_engine
DSA_get0_key
DSA_get0_pqg
DSA_get_default_method
DSA_get_ex_data
DSA_get_ex_new_index
DSA_meth_dup
DSA_meth_free
DSA_meth_new
DSA_meth_set_finish
DSA_meth_set_sign
DSA_new
DSA_new_method
DSA_print
DSA_print_fp
DSA_set0_key
DSA_set0_pqg
DSA_set_default_method
DSA_set_ex_data
DSA_set_flags
DSA_set_method
DSA_sign
DSA_sign_setup
DSA_size
DSA_test_flags
DSA_up_ref
DSA_verify
DSAparams_dup
DSAparams_it
DSAparams_print
DSAparams_print_fp
DSO_METHOD_dlfcn
825
826
827
828
829
830
831

832
833

834
835
836
837
838
839
840
ECDH_get_ex_new_index
ECDH_set_default_method
ECDH_set_ex_data
ECDH_set_method
ECDH_size
ECDSA_OpenSSL
ECDSA_SIG_free

ECDSA_SIG_it
ECDSA_SIG_new

ECDSA_do_sign
ECDSA_do_sign_ex
ECDSA_do_verify
ECDSA_get_default_method
ECDSA_get_ex_data
ECDSA_get_ex_new_index
ECDSA_set_default_method







>


>







887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
ECDH_get_ex_new_index
ECDH_set_default_method
ECDH_set_ex_data
ECDH_set_method
ECDH_size
ECDSA_OpenSSL
ECDSA_SIG_free
ECDSA_SIG_get0
ECDSA_SIG_it
ECDSA_SIG_new
ECDSA_SIG_set0
ECDSA_do_sign
ECDSA_do_sign_ex
ECDSA_do_verify
ECDSA_get_default_method
ECDSA_get_ex_data
ECDSA_get_ex_new_index
ECDSA_set_default_method
1199
1200
1201
1202
1203
1204
1205

1206
1207
1208
1209
1210
1211
1212
EVP_CIPHER_CTX_get_app_data
EVP_CIPHER_CTX_init
EVP_CIPHER_CTX_iv_length
EVP_CIPHER_CTX_key_length
EVP_CIPHER_CTX_new
EVP_CIPHER_CTX_nid
EVP_CIPHER_CTX_rand_key

EVP_CIPHER_CTX_set_app_data
EVP_CIPHER_CTX_set_flags
EVP_CIPHER_CTX_set_key_length
EVP_CIPHER_CTX_set_padding
EVP_CIPHER_CTX_test_flags
EVP_CIPHER_asn1_to_param
EVP_CIPHER_block_size







>







1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
EVP_CIPHER_CTX_get_app_data
EVP_CIPHER_CTX_init
EVP_CIPHER_CTX_iv_length
EVP_CIPHER_CTX_key_length
EVP_CIPHER_CTX_new
EVP_CIPHER_CTX_nid
EVP_CIPHER_CTX_rand_key
EVP_CIPHER_CTX_reset
EVP_CIPHER_CTX_set_app_data
EVP_CIPHER_CTX_set_flags
EVP_CIPHER_CTX_set_key_length
EVP_CIPHER_CTX_set_padding
EVP_CIPHER_CTX_test_flags
EVP_CIPHER_asn1_to_param
EVP_CIPHER_block_size
1257
1258
1259
1260
1261
1262
1263

1264
1265


1266
1267
1268
1269
1270
1271
1272
EVP_MD_CTX_cleanup
EVP_MD_CTX_clear_flags
EVP_MD_CTX_copy
EVP_MD_CTX_copy_ex
EVP_MD_CTX_create
EVP_MD_CTX_ctrl
EVP_MD_CTX_destroy

EVP_MD_CTX_init
EVP_MD_CTX_md


EVP_MD_CTX_set_flags
EVP_MD_CTX_test_flags
EVP_MD_block_size
EVP_MD_do_all
EVP_MD_do_all_sorted
EVP_MD_flags
EVP_MD_pkey_type







>


>
>







1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
EVP_MD_CTX_cleanup
EVP_MD_CTX_clear_flags
EVP_MD_CTX_copy
EVP_MD_CTX_copy_ex
EVP_MD_CTX_create
EVP_MD_CTX_ctrl
EVP_MD_CTX_destroy
EVP_MD_CTX_free
EVP_MD_CTX_init
EVP_MD_CTX_md
EVP_MD_CTX_new
EVP_MD_CTX_reset
EVP_MD_CTX_set_flags
EVP_MD_CTX_test_flags
EVP_MD_block_size
EVP_MD_do_all
EVP_MD_do_all_sorted
EVP_MD_flags
EVP_MD_pkey_type
1332
1333
1334
1335
1336
1337
1338




1339
1340
1341
1342
1343
1344
1345
EVP_PKEY_derive_init
EVP_PKEY_derive_set_peer
EVP_PKEY_encrypt
EVP_PKEY_encrypt_init
EVP_PKEY_encrypt_old
EVP_PKEY_free
EVP_PKEY_get0




EVP_PKEY_get0_asn1
EVP_PKEY_get1_DH
EVP_PKEY_get1_DSA
EVP_PKEY_get1_EC_KEY
EVP_PKEY_get1_RSA
EVP_PKEY_get_attr
EVP_PKEY_get_attr_by_NID







>
>
>
>







1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
EVP_PKEY_derive_init
EVP_PKEY_derive_set_peer
EVP_PKEY_encrypt
EVP_PKEY_encrypt_init
EVP_PKEY_encrypt_old
EVP_PKEY_free
EVP_PKEY_get0
EVP_PKEY_get0_DH
EVP_PKEY_get0_DSA
EVP_PKEY_get0_EC_KEY
EVP_PKEY_get0_RSA
EVP_PKEY_get0_asn1
EVP_PKEY_get1_DH
EVP_PKEY_get1_DSA
EVP_PKEY_get1_EC_KEY
EVP_PKEY_get1_RSA
EVP_PKEY_get_attr
EVP_PKEY_get_attr_by_NID
1384
1385
1386
1387
1388
1389
1390

1391
1392
1393
1394
1395
1396
1397
EVP_PKEY_set1_RSA
EVP_PKEY_set_type
EVP_PKEY_set_type_str
EVP_PKEY_sign
EVP_PKEY_sign_init
EVP_PKEY_size
EVP_PKEY_type

EVP_PKEY_verify
EVP_PKEY_verify_init
EVP_PKEY_verify_recover
EVP_PKEY_verify_recover_init
EVP_SealFinal
EVP_SealInit
EVP_SignFinal







>







1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
EVP_PKEY_set1_RSA
EVP_PKEY_set_type
EVP_PKEY_set_type_str
EVP_PKEY_sign
EVP_PKEY_sign_init
EVP_PKEY_size
EVP_PKEY_type
EVP_PKEY_up_ref
EVP_PKEY_verify
EVP_PKEY_verify_init
EVP_PKEY_verify_recover
EVP_PKEY_verify_recover_init
EVP_SealFinal
EVP_SealInit
EVP_SignFinal
1583
1584
1585
1586
1587
1588
1589


1590


1591
1592
1593
1594
1595
1596
1597
Gost28147_TestParamSet
HKDF
HKDF_expand
HKDF_extract
HMAC
HMAC_CTX_cleanup
HMAC_CTX_copy


HMAC_CTX_init


HMAC_CTX_set_flags
HMAC_Final
HMAC_Init
HMAC_Init_ex
HMAC_Update
ISSUING_DIST_POINT_free
ISSUING_DIST_POINT_it







>
>

>
>







1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
Gost28147_TestParamSet
HKDF
HKDF_expand
HKDF_extract
HMAC
HMAC_CTX_cleanup
HMAC_CTX_copy
HMAC_CTX_free
HMAC_CTX_get_md
HMAC_CTX_init
HMAC_CTX_new
HMAC_CTX_reset
HMAC_CTX_set_flags
HMAC_Final
HMAC_Init
HMAC_Init_ex
HMAC_Update
ISSUING_DIST_POINT_free
ISSUING_DIST_POINT_it
1757
1758
1759
1760
1761
1762
1763

1764
1765
1766
1767
1768
1769
1770
OCSP_SIGNATURE_free
OCSP_SIGNATURE_it
OCSP_SIGNATURE_new
OCSP_SINGLERESP_add1_ext_i2d
OCSP_SINGLERESP_add_ext
OCSP_SINGLERESP_delete_ext
OCSP_SINGLERESP_free

OCSP_SINGLERESP_get1_ext_d2i
OCSP_SINGLERESP_get_ext
OCSP_SINGLERESP_get_ext_by_NID
OCSP_SINGLERESP_get_ext_by_OBJ
OCSP_SINGLERESP_get_ext_by_critical
OCSP_SINGLERESP_get_ext_count
OCSP_SINGLERESP_it







>







1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
OCSP_SIGNATURE_free
OCSP_SIGNATURE_it
OCSP_SIGNATURE_new
OCSP_SINGLERESP_add1_ext_i2d
OCSP_SINGLERESP_add_ext
OCSP_SINGLERESP_delete_ext
OCSP_SINGLERESP_free
OCSP_SINGLERESP_get0_id
OCSP_SINGLERESP_get1_ext_d2i
OCSP_SINGLERESP_get_ext
OCSP_SINGLERESP_get_ext_by_NID
OCSP_SINGLERESP_get_ext_by_OBJ
OCSP_SINGLERESP_get_ext_by_critical
OCSP_SINGLERESP_get_ext_count
OCSP_SINGLERESP_it
1815
1816
1817
1818
1819
1820
1821

1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833


1834
1835
1836
1837
1838
1839
1840
OPENSSL_add_all_algorithms_noconf
OPENSSL_asc2uni
OPENSSL_cleanse
OPENSSL_config
OPENSSL_cpu_caps
OPENSSL_cpuid_setup
OPENSSL_init

OPENSSL_load_builtin_modules
OPENSSL_no_config
OPENSSL_strcasecmp
OPENSSL_strncasecmp
OPENSSL_uni2asc
OTHERNAME_cmp
OTHERNAME_free
OTHERNAME_it
OTHERNAME_new
OpenSSLDie
OpenSSL_add_all_ciphers
OpenSSL_add_all_digests


PBE2PARAM_free
PBE2PARAM_it
PBE2PARAM_new
PBEPARAM_free
PBEPARAM_it
PBEPARAM_new
PBKDF2PARAM_free







>












>
>







1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
OPENSSL_add_all_algorithms_noconf
OPENSSL_asc2uni
OPENSSL_cleanse
OPENSSL_config
OPENSSL_cpu_caps
OPENSSL_cpuid_setup
OPENSSL_init
OPENSSL_init_crypto
OPENSSL_load_builtin_modules
OPENSSL_no_config
OPENSSL_strcasecmp
OPENSSL_strncasecmp
OPENSSL_uni2asc
OTHERNAME_cmp
OTHERNAME_free
OTHERNAME_it
OTHERNAME_new
OpenSSLDie
OpenSSL_add_all_ciphers
OpenSSL_add_all_digests
OpenSSL_version
OpenSSL_version_num
PBE2PARAM_free
PBE2PARAM_it
PBE2PARAM_new
PBEPARAM_free
PBEPARAM_it
PBEPARAM_new
PBKDF2PARAM_free
2169
2170
2171
2172
2173
2174
2175

2176
2177
2178

2179
2180
2181
2182



2183
2184
2185
2186






2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206



2207
2208

2209
2210
2211
2212
2213

2214
2215
2216
2217
2218
2219
2220
RSAPublicKey_dup
RSAPublicKey_it
RSA_PKCS1_SSLeay
RSA_PSS_PARAMS_free
RSA_PSS_PARAMS_it
RSA_PSS_PARAMS_new
RSA_X931_hash_id

RSA_blinding_off
RSA_blinding_on
RSA_check_key

RSA_flags
RSA_free
RSA_generate_key
RSA_generate_key_ex



RSA_get_default_method
RSA_get_ex_data
RSA_get_ex_new_index
RSA_get_method






RSA_new
RSA_new_method
RSA_padding_add_PKCS1_OAEP
RSA_padding_add_PKCS1_PSS
RSA_padding_add_PKCS1_PSS_mgf1
RSA_padding_add_PKCS1_type_1
RSA_padding_add_PKCS1_type_2
RSA_padding_add_X931
RSA_padding_add_none
RSA_padding_check_PKCS1_OAEP
RSA_padding_check_PKCS1_type_1
RSA_padding_check_PKCS1_type_2
RSA_padding_check_X931
RSA_padding_check_none
RSA_print
RSA_print_fp
RSA_private_decrypt
RSA_private_encrypt
RSA_public_decrypt
RSA_public_encrypt



RSA_set_default_method
RSA_set_ex_data

RSA_set_method
RSA_setup_blinding
RSA_sign
RSA_sign_ASN1_OCTET_STRING
RSA_size

RSA_up_ref
RSA_verify
RSA_verify_ASN1_OCTET_STRING
RSA_verify_PKCS1_PSS
RSA_verify_PKCS1_PSS_mgf1
SHA1
SHA1_Final







>



>




>
>
>




>
>
>
>
>
>




















>
>
>


>





>







2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
RSAPublicKey_dup
RSAPublicKey_it
RSA_PKCS1_SSLeay
RSA_PSS_PARAMS_free
RSA_PSS_PARAMS_it
RSA_PSS_PARAMS_new
RSA_X931_hash_id
RSA_bits
RSA_blinding_off
RSA_blinding_on
RSA_check_key
RSA_clear_flags
RSA_flags
RSA_free
RSA_generate_key
RSA_generate_key_ex
RSA_get0_crt_params
RSA_get0_factors
RSA_get0_key
RSA_get_default_method
RSA_get_ex_data
RSA_get_ex_new_index
RSA_get_method
RSA_meth_dup
RSA_meth_free
RSA_meth_new
RSA_meth_set_finish
RSA_meth_set_priv_dec
RSA_meth_set_priv_enc
RSA_new
RSA_new_method
RSA_padding_add_PKCS1_OAEP
RSA_padding_add_PKCS1_PSS
RSA_padding_add_PKCS1_PSS_mgf1
RSA_padding_add_PKCS1_type_1
RSA_padding_add_PKCS1_type_2
RSA_padding_add_X931
RSA_padding_add_none
RSA_padding_check_PKCS1_OAEP
RSA_padding_check_PKCS1_type_1
RSA_padding_check_PKCS1_type_2
RSA_padding_check_X931
RSA_padding_check_none
RSA_print
RSA_print_fp
RSA_private_decrypt
RSA_private_encrypt
RSA_public_decrypt
RSA_public_encrypt
RSA_set0_crt_params
RSA_set0_factors
RSA_set0_key
RSA_set_default_method
RSA_set_ex_data
RSA_set_flags
RSA_set_method
RSA_setup_blinding
RSA_sign
RSA_sign_ASN1_OCTET_STRING
RSA_size
RSA_test_flags
RSA_up_ref
RSA_verify
RSA_verify_ASN1_OCTET_STRING
RSA_verify_PKCS1_PSS
RSA_verify_PKCS1_PSS_mgf1
SHA1
SHA1_Final
2565
2566
2567
2568
2569
2570
2571




2572
2573
2574
2575
2576
2577
2578

2579
2580
2581
2582
2583


2584
2585
2586
2587
2588
2589
2590
2591
2592

2593
2594
2595
2596
2597
2598
2599
X509_CRL_cmp
X509_CRL_delete_ext
X509_CRL_digest
X509_CRL_dup
X509_CRL_free
X509_CRL_get0_by_cert
X509_CRL_get0_by_serial




X509_CRL_get_ext
X509_CRL_get_ext_by_NID
X509_CRL_get_ext_by_OBJ
X509_CRL_get_ext_by_critical
X509_CRL_get_ext_count
X509_CRL_get_ext_d2i
X509_CRL_get_meth_data

X509_CRL_it
X509_CRL_match
X509_CRL_new
X509_CRL_print
X509_CRL_print_fp


X509_CRL_set_default_method
X509_CRL_set_issuer_name
X509_CRL_set_lastUpdate
X509_CRL_set_meth_data
X509_CRL_set_nextUpdate
X509_CRL_set_version
X509_CRL_sign
X509_CRL_sign_ctx
X509_CRL_sort

X509_CRL_verify
X509_EXTENSIONS_it
X509_EXTENSION_create_by_NID
X509_EXTENSION_create_by_OBJ
X509_EXTENSION_dup
X509_EXTENSION_free
X509_EXTENSION_get_critical







>
>
>
>







>





>
>









>







2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
X509_CRL_cmp
X509_CRL_delete_ext
X509_CRL_digest
X509_CRL_dup
X509_CRL_free
X509_CRL_get0_by_cert
X509_CRL_get0_by_serial
X509_CRL_get0_extensions
X509_CRL_get0_lastUpdate
X509_CRL_get0_nextUpdate
X509_CRL_get0_signature
X509_CRL_get_ext
X509_CRL_get_ext_by_NID
X509_CRL_get_ext_by_OBJ
X509_CRL_get_ext_by_critical
X509_CRL_get_ext_count
X509_CRL_get_ext_d2i
X509_CRL_get_meth_data
X509_CRL_get_signature_nid
X509_CRL_it
X509_CRL_match
X509_CRL_new
X509_CRL_print
X509_CRL_print_fp
X509_CRL_set1_lastUpdate
X509_CRL_set1_nextUpdate
X509_CRL_set_default_method
X509_CRL_set_issuer_name
X509_CRL_set_lastUpdate
X509_CRL_set_meth_data
X509_CRL_set_nextUpdate
X509_CRL_set_version
X509_CRL_sign
X509_CRL_sign_ctx
X509_CRL_sort
X509_CRL_up_ref
X509_CRL_verify
X509_EXTENSIONS_it
X509_EXTENSION_create_by_NID
X509_EXTENSION_create_by_OBJ
X509_EXTENSION_dup
X509_EXTENSION_free
X509_EXTENSION_get_critical
2624
2625
2626
2627
2628
2629
2630

2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643

2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658



2659
2660
2661
2662
2663
2664
2665
2666
2667

2668
2669
2670
2671
2672
2673
2674
X509_NAME_ENTRY_create_by_txt
X509_NAME_ENTRY_dup
X509_NAME_ENTRY_free
X509_NAME_ENTRY_get_data
X509_NAME_ENTRY_get_object
X509_NAME_ENTRY_it
X509_NAME_ENTRY_new

X509_NAME_ENTRY_set_data
X509_NAME_ENTRY_set_object
X509_NAME_INTERNAL_it
X509_NAME_add_entry
X509_NAME_add_entry_by_NID
X509_NAME_add_entry_by_OBJ
X509_NAME_add_entry_by_txt
X509_NAME_cmp
X509_NAME_delete_entry
X509_NAME_digest
X509_NAME_dup
X509_NAME_entry_count
X509_NAME_free

X509_NAME_get_entry
X509_NAME_get_index_by_NID
X509_NAME_get_index_by_OBJ
X509_NAME_get_text_by_NID
X509_NAME_get_text_by_OBJ
X509_NAME_hash
X509_NAME_hash_old
X509_NAME_it
X509_NAME_new
X509_NAME_oneline
X509_NAME_print
X509_NAME_print_ex
X509_NAME_print_ex_fp
X509_NAME_set
X509_OBJECT_free_contents



X509_OBJECT_idx_by_subject
X509_OBJECT_retrieve_by_subject
X509_OBJECT_retrieve_match
X509_OBJECT_up_ref_count
X509_PKEY_free
X509_PKEY_new
X509_POLICY_NODE_print
X509_PUBKEY_free
X509_PUBKEY_get

X509_PUBKEY_get0_param
X509_PUBKEY_it
X509_PUBKEY_new
X509_PUBKEY_set
X509_PUBKEY_set0_param
X509_PURPOSE_add
X509_PURPOSE_cleanup







>













>















>
>
>









>







2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
X509_NAME_ENTRY_create_by_txt
X509_NAME_ENTRY_dup
X509_NAME_ENTRY_free
X509_NAME_ENTRY_get_data
X509_NAME_ENTRY_get_object
X509_NAME_ENTRY_it
X509_NAME_ENTRY_new
X509_NAME_ENTRY_set
X509_NAME_ENTRY_set_data
X509_NAME_ENTRY_set_object
X509_NAME_INTERNAL_it
X509_NAME_add_entry
X509_NAME_add_entry_by_NID
X509_NAME_add_entry_by_OBJ
X509_NAME_add_entry_by_txt
X509_NAME_cmp
X509_NAME_delete_entry
X509_NAME_digest
X509_NAME_dup
X509_NAME_entry_count
X509_NAME_free
X509_NAME_get0_der
X509_NAME_get_entry
X509_NAME_get_index_by_NID
X509_NAME_get_index_by_OBJ
X509_NAME_get_text_by_NID
X509_NAME_get_text_by_OBJ
X509_NAME_hash
X509_NAME_hash_old
X509_NAME_it
X509_NAME_new
X509_NAME_oneline
X509_NAME_print
X509_NAME_print_ex
X509_NAME_print_ex_fp
X509_NAME_set
X509_OBJECT_free_contents
X509_OBJECT_get0_X509
X509_OBJECT_get0_X509_CRL
X509_OBJECT_get_type
X509_OBJECT_idx_by_subject
X509_OBJECT_retrieve_by_subject
X509_OBJECT_retrieve_match
X509_OBJECT_up_ref_count
X509_PKEY_free
X509_PKEY_new
X509_POLICY_NODE_print
X509_PUBKEY_free
X509_PUBKEY_get
X509_PUBKEY_get0
X509_PUBKEY_get0_param
X509_PUBKEY_it
X509_PUBKEY_new
X509_PUBKEY_set
X509_PUBKEY_set0_param
X509_PURPOSE_add
X509_PURPOSE_cleanup
2692
2693
2694
2695
2696
2697
2698

2699
2700
2701
2702
2703
2704
2705
2706

2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722

2723



2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738


2739
2740
2741
2742
2743


2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757


2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773


2774
2775
2776

2777
2778
2779
2780
2781
2782

2783
2784
2785
2786

2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801

2802
2803




2804
2805
2806
2807
2808
2809




2810
2811
2812
2813

2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824

2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844




2845


2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865

2866


2867
2868
2869
2870
2871
2872
2873
X509_REQ_add_extensions_nid
X509_REQ_check_private_key
X509_REQ_delete_attr
X509_REQ_digest
X509_REQ_dup
X509_REQ_extension_nid
X509_REQ_free

X509_REQ_get1_email
X509_REQ_get_attr
X509_REQ_get_attr_by_NID
X509_REQ_get_attr_by_OBJ
X509_REQ_get_attr_count
X509_REQ_get_extension_nids
X509_REQ_get_extensions
X509_REQ_get_pubkey

X509_REQ_it
X509_REQ_new
X509_REQ_print
X509_REQ_print_ex
X509_REQ_print_fp
X509_REQ_set_extension_nids
X509_REQ_set_pubkey
X509_REQ_set_subject_name
X509_REQ_set_version
X509_REQ_sign
X509_REQ_sign_ctx
X509_REQ_to_X509
X509_REQ_verify
X509_REVOKED_add1_ext_i2d
X509_REVOKED_add_ext
X509_REVOKED_delete_ext

X509_REVOKED_free



X509_REVOKED_get_ext
X509_REVOKED_get_ext_by_NID
X509_REVOKED_get_ext_by_OBJ
X509_REVOKED_get_ext_by_critical
X509_REVOKED_get_ext_count
X509_REVOKED_get_ext_d2i
X509_REVOKED_it
X509_REVOKED_new
X509_REVOKED_set_revocationDate
X509_REVOKED_set_serialNumber
X509_SIG_free
X509_SIG_it
X509_SIG_new
X509_STORE_CTX_cleanup
X509_STORE_CTX_free


X509_STORE_CTX_get0_current_crl
X509_STORE_CTX_get0_current_issuer
X509_STORE_CTX_get0_param
X509_STORE_CTX_get0_parent_ctx
X509_STORE_CTX_get0_policy_tree


X509_STORE_CTX_get1_chain
X509_STORE_CTX_get1_issuer
X509_STORE_CTX_get_chain
X509_STORE_CTX_get_current_cert
X509_STORE_CTX_get_error
X509_STORE_CTX_get_error_depth
X509_STORE_CTX_get_ex_data
X509_STORE_CTX_get_ex_new_index
X509_STORE_CTX_get_explicit_policy
X509_STORE_CTX_init
X509_STORE_CTX_new
X509_STORE_CTX_purpose_inherit
X509_STORE_CTX_set0_crls
X509_STORE_CTX_set0_param


X509_STORE_CTX_set_cert
X509_STORE_CTX_set_chain
X509_STORE_CTX_set_default
X509_STORE_CTX_set_depth
X509_STORE_CTX_set_error
X509_STORE_CTX_set_ex_data
X509_STORE_CTX_set_flags
X509_STORE_CTX_set_purpose
X509_STORE_CTX_set_time
X509_STORE_CTX_set_trust
X509_STORE_CTX_set_verify_cb
X509_STORE_CTX_trusted_stack
X509_STORE_add_cert
X509_STORE_add_crl
X509_STORE_add_lookup
X509_STORE_free


X509_STORE_get1_certs
X509_STORE_get1_crls
X509_STORE_get_by_subject

X509_STORE_load_locations
X509_STORE_load_mem
X509_STORE_new
X509_STORE_set1_param
X509_STORE_set_default_paths
X509_STORE_set_depth

X509_STORE_set_flags
X509_STORE_set_purpose
X509_STORE_set_trust
X509_STORE_set_verify_cb

X509_TRUST_add
X509_TRUST_cleanup
X509_TRUST_get0
X509_TRUST_get0_name
X509_TRUST_get_by_id
X509_TRUST_get_count
X509_TRUST_get_flags
X509_TRUST_get_trust
X509_TRUST_set
X509_TRUST_set_default
X509_VAL_free
X509_VAL_it
X509_VAL_new
X509_VERIFY_PARAM_add0_policy
X509_VERIFY_PARAM_add0_table

X509_VERIFY_PARAM_clear_flags
X509_VERIFY_PARAM_free




X509_VERIFY_PARAM_get_depth
X509_VERIFY_PARAM_get_flags
X509_VERIFY_PARAM_inherit
X509_VERIFY_PARAM_lookup
X509_VERIFY_PARAM_new
X509_VERIFY_PARAM_set1




X509_VERIFY_PARAM_set1_name
X509_VERIFY_PARAM_set1_policies
X509_VERIFY_PARAM_set_depth
X509_VERIFY_PARAM_set_flags

X509_VERIFY_PARAM_set_purpose
X509_VERIFY_PARAM_set_time
X509_VERIFY_PARAM_set_trust
X509_VERIFY_PARAM_table_cleanup
X509_add1_ext_i2d
X509_add1_reject_object
X509_add1_trust_object
X509_add_ext
X509_alias_get0
X509_alias_set1
X509_certificate_type

X509_check_akid
X509_check_ca
X509_check_email
X509_check_host
X509_check_ip
X509_check_ip_asc
X509_check_issued
X509_check_private_key
X509_check_purpose
X509_check_trust
X509_cmp
X509_cmp_current_time
X509_cmp_time
X509_delete_ext
X509_digest
X509_dup
X509_email_free
X509_find_by_issuer_and_serial
X509_find_by_subject
X509_free




X509_get0_pubkey_bitstr


X509_get1_email
X509_get1_ocsp
X509_get_default_cert_area
X509_get_default_cert_dir
X509_get_default_cert_dir_env
X509_get_default_cert_file
X509_get_default_cert_file_env
X509_get_default_private_dir
X509_get_ex_data
X509_get_ex_new_index
X509_get_ext
X509_get_ext_by_NID
X509_get_ext_by_OBJ
X509_get_ext_by_critical
X509_get_ext_count
X509_get_ext_d2i
X509_get_issuer_name
X509_get_pubkey
X509_get_pubkey_parameters
X509_get_serialNumber

X509_get_subject_name


X509_gmtime_adj
X509_issuer_and_serial_cmp
X509_issuer_and_serial_hash
X509_issuer_name_cmp
X509_issuer_name_hash
X509_issuer_name_hash_old
X509_it







>








>
















>

>
>
>















>
>





>
>














>
>
















>
>



>






>




>















>


>
>
>
>






>
>
>
>




>











>




















>
>
>
>

>
>




















>

>
>







2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
X509_REQ_add_extensions_nid
X509_REQ_check_private_key
X509_REQ_delete_attr
X509_REQ_digest
X509_REQ_dup
X509_REQ_extension_nid
X509_REQ_free
X509_REQ_get0_signature
X509_REQ_get1_email
X509_REQ_get_attr
X509_REQ_get_attr_by_NID
X509_REQ_get_attr_by_OBJ
X509_REQ_get_attr_count
X509_REQ_get_extension_nids
X509_REQ_get_extensions
X509_REQ_get_pubkey
X509_REQ_get_signature_nid
X509_REQ_it
X509_REQ_new
X509_REQ_print
X509_REQ_print_ex
X509_REQ_print_fp
X509_REQ_set_extension_nids
X509_REQ_set_pubkey
X509_REQ_set_subject_name
X509_REQ_set_version
X509_REQ_sign
X509_REQ_sign_ctx
X509_REQ_to_X509
X509_REQ_verify
X509_REVOKED_add1_ext_i2d
X509_REVOKED_add_ext
X509_REVOKED_delete_ext
X509_REVOKED_dup
X509_REVOKED_free
X509_REVOKED_get0_extensions
X509_REVOKED_get0_revocationDate
X509_REVOKED_get0_serialNumber
X509_REVOKED_get_ext
X509_REVOKED_get_ext_by_NID
X509_REVOKED_get_ext_by_OBJ
X509_REVOKED_get_ext_by_critical
X509_REVOKED_get_ext_count
X509_REVOKED_get_ext_d2i
X509_REVOKED_it
X509_REVOKED_new
X509_REVOKED_set_revocationDate
X509_REVOKED_set_serialNumber
X509_SIG_free
X509_SIG_it
X509_SIG_new
X509_STORE_CTX_cleanup
X509_STORE_CTX_free
X509_STORE_CTX_get0_cert
X509_STORE_CTX_get0_chain
X509_STORE_CTX_get0_current_crl
X509_STORE_CTX_get0_current_issuer
X509_STORE_CTX_get0_param
X509_STORE_CTX_get0_parent_ctx
X509_STORE_CTX_get0_policy_tree
X509_STORE_CTX_get0_store
X509_STORE_CTX_get0_untrusted
X509_STORE_CTX_get1_chain
X509_STORE_CTX_get1_issuer
X509_STORE_CTX_get_chain
X509_STORE_CTX_get_current_cert
X509_STORE_CTX_get_error
X509_STORE_CTX_get_error_depth
X509_STORE_CTX_get_ex_data
X509_STORE_CTX_get_ex_new_index
X509_STORE_CTX_get_explicit_policy
X509_STORE_CTX_init
X509_STORE_CTX_new
X509_STORE_CTX_purpose_inherit
X509_STORE_CTX_set0_crls
X509_STORE_CTX_set0_param
X509_STORE_CTX_set0_trusted_stack
X509_STORE_CTX_set0_untrusted
X509_STORE_CTX_set_cert
X509_STORE_CTX_set_chain
X509_STORE_CTX_set_default
X509_STORE_CTX_set_depth
X509_STORE_CTX_set_error
X509_STORE_CTX_set_ex_data
X509_STORE_CTX_set_flags
X509_STORE_CTX_set_purpose
X509_STORE_CTX_set_time
X509_STORE_CTX_set_trust
X509_STORE_CTX_set_verify_cb
X509_STORE_CTX_trusted_stack
X509_STORE_add_cert
X509_STORE_add_crl
X509_STORE_add_lookup
X509_STORE_free
X509_STORE_get0_objects
X509_STORE_get0_param
X509_STORE_get1_certs
X509_STORE_get1_crls
X509_STORE_get_by_subject
X509_STORE_get_ex_data
X509_STORE_load_locations
X509_STORE_load_mem
X509_STORE_new
X509_STORE_set1_param
X509_STORE_set_default_paths
X509_STORE_set_depth
X509_STORE_set_ex_data
X509_STORE_set_flags
X509_STORE_set_purpose
X509_STORE_set_trust
X509_STORE_set_verify_cb
X509_STORE_up_ref
X509_TRUST_add
X509_TRUST_cleanup
X509_TRUST_get0
X509_TRUST_get0_name
X509_TRUST_get_by_id
X509_TRUST_get_count
X509_TRUST_get_flags
X509_TRUST_get_trust
X509_TRUST_set
X509_TRUST_set_default
X509_VAL_free
X509_VAL_it
X509_VAL_new
X509_VERIFY_PARAM_add0_policy
X509_VERIFY_PARAM_add0_table
X509_VERIFY_PARAM_add1_host
X509_VERIFY_PARAM_clear_flags
X509_VERIFY_PARAM_free
X509_VERIFY_PARAM_get0
X509_VERIFY_PARAM_get0_name
X509_VERIFY_PARAM_get0_peername
X509_VERIFY_PARAM_get_count
X509_VERIFY_PARAM_get_depth
X509_VERIFY_PARAM_get_flags
X509_VERIFY_PARAM_inherit
X509_VERIFY_PARAM_lookup
X509_VERIFY_PARAM_new
X509_VERIFY_PARAM_set1
X509_VERIFY_PARAM_set1_email
X509_VERIFY_PARAM_set1_host
X509_VERIFY_PARAM_set1_ip
X509_VERIFY_PARAM_set1_ip_asc
X509_VERIFY_PARAM_set1_name
X509_VERIFY_PARAM_set1_policies
X509_VERIFY_PARAM_set_depth
X509_VERIFY_PARAM_set_flags
X509_VERIFY_PARAM_set_hostflags
X509_VERIFY_PARAM_set_purpose
X509_VERIFY_PARAM_set_time
X509_VERIFY_PARAM_set_trust
X509_VERIFY_PARAM_table_cleanup
X509_add1_ext_i2d
X509_add1_reject_object
X509_add1_trust_object
X509_add_ext
X509_alias_get0
X509_alias_set1
X509_certificate_type
X509_chain_up_ref
X509_check_akid
X509_check_ca
X509_check_email
X509_check_host
X509_check_ip
X509_check_ip_asc
X509_check_issued
X509_check_private_key
X509_check_purpose
X509_check_trust
X509_cmp
X509_cmp_current_time
X509_cmp_time
X509_delete_ext
X509_digest
X509_dup
X509_email_free
X509_find_by_issuer_and_serial
X509_find_by_subject
X509_free
X509_get0_extensions
X509_get0_notAfter
X509_get0_notBefore
X509_get0_pubkey
X509_get0_pubkey_bitstr
X509_get0_signature
X509_get0_tbs_sigalg
X509_get1_email
X509_get1_ocsp
X509_get_default_cert_area
X509_get_default_cert_dir
X509_get_default_cert_dir_env
X509_get_default_cert_file
X509_get_default_cert_file_env
X509_get_default_private_dir
X509_get_ex_data
X509_get_ex_new_index
X509_get_ext
X509_get_ext_by_NID
X509_get_ext_by_OBJ
X509_get_ext_by_critical
X509_get_ext_count
X509_get_ext_d2i
X509_get_issuer_name
X509_get_pubkey
X509_get_pubkey_parameters
X509_get_serialNumber
X509_get_signature_nid
X509_get_subject_name
X509_getm_notAfter
X509_getm_notBefore
X509_gmtime_adj
X509_issuer_and_serial_cmp
X509_issuer_and_serial_hash
X509_issuer_name_cmp
X509_issuer_name_hash
X509_issuer_name_hash_old
X509_it
2891
2892
2893
2894
2895
2896
2897


2898
2899
2900
2901
2902
2903
2904
X509_policy_tree_level_count
X509_print
X509_print_ex
X509_print_ex_fp
X509_print_fp
X509_pubkey_digest
X509_reject_clear


X509_set_ex_data
X509_set_issuer_name
X509_set_notAfter
X509_set_notBefore
X509_set_pubkey
X509_set_serialNumber
X509_set_subject_name







>
>







3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
X509_policy_tree_level_count
X509_print
X509_print_ex
X509_print_ex_fp
X509_print_fp
X509_pubkey_digest
X509_reject_clear
X509_set1_notAfter
X509_set1_notBefore
X509_set_ex_data
X509_set_issuer_name
X509_set_notAfter
X509_set_notBefore
X509_set_pubkey
X509_set_serialNumber
X509_set_subject_name
Added jni/libressl/crypto/crypto_init.c.






























































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
/*
 * Copyright (c) 2018 Bob Beck <beck@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

/* OpenSSL style init */

#include <pthread.h>
#include <stdio.h>

#include <openssl/objects.h>
#include <openssl/conf.h>
#include <openssl/evp.h>
#include <openssl/err.h>
#include "cryptlib.h"

int OpenSSL_config(const char *);
int OpenSSL_no_config(void);

static pthread_t crypto_init_thread;

static void
OPENSSL_init_crypto_internal(void)
{
	crypto_init_thread = pthread_self();
	OPENSSL_cpuid_setup();
	ERR_load_crypto_strings();
	OpenSSL_add_all_ciphers();
	OpenSSL_add_all_digests();
}

int
OPENSSL_init_crypto(uint64_t opts, const void *settings)
{
	static pthread_once_t once = PTHREAD_ONCE_INIT;

	if (pthread_equal(pthread_self(), crypto_init_thread))
		return 1; /* don't recurse */

	if (pthread_once(&once, OPENSSL_init_crypto_internal) != 0)
		return 0;

	if ((opts & OPENSSL_INIT_NO_LOAD_CONFIG) &&
	    (OpenSSL_no_config() == 0))
		return 0;

	if ((opts & OPENSSL_INIT_LOAD_CONFIG) &&
	    (OpenSSL_config(NULL) == 0))
		return 0;

	return 1;
}
Changes to jni/libressl/crypto/cversion.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: cversion.c,v 1.15 2014/07/11 11:42:28 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: cversion.c,v 1.17 2018/02/17 06:56:12 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
80
81
82
83
84
85
86


























}

unsigned long
SSLeay(void)
{
	return (SSLEAY_VERSION_NUMBER);
}

































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
}

unsigned long
SSLeay(void)
{
	return (SSLEAY_VERSION_NUMBER);
}

const char *
OpenSSL_version(int t)
{
	switch (t) {
	case OPENSSL_VERSION:
		return OPENSSL_VERSION_TEXT;
	case OPENSSL_BUILT_ON:
		return("built on: date not available");
	case OPENSSL_CFLAGS:
		return("compiler: information not available");
	case OPENSSL_PLATFORM:
		return("platform: information not available");
	case OPENSSL_DIR:
		return "OPENSSLDIR: \"" OPENSSLDIR "\"";
	case OPENSSL_ENGINES_DIR:
		return "ENGINESDIR: N/A";
	}
	return("not available");
}

unsigned long
OpenSSL_version_num(void)
{
	return SSLeay();
}
Changes to jni/libressl/crypto/dh/dh_lib.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: dh_lib.c,v 1.22 2017/01/29 17:49:22 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 * 
|







1
2
3
4
5
6
7
8
/* $OpenBSD: dh_lib.c,v 1.30 2018/02/22 16:41:04 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 * 
52
53
54
55
56
57
58

59
60
61
62
63
64
65
 * 
 * The licence and distribution terms for any publically available version or
 * derivative of this code cannot be changed.  i.e. this code cannot simply be
 * copied and put under another distribution licence
 * [including the GNU Public Licence.]
 */


#include <stdio.h>

#include <openssl/opensslconf.h>

#include <openssl/bn.h>
#include <openssl/dh.h>
#include <openssl/err.h>







>







52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
 * 
 * The licence and distribution terms for any publically available version or
 * derivative of this code cannot be changed.  i.e. this code cannot simply be
 * copied and put under another distribution licence
 * [including the GNU Public Licence.]
 */

#include <limits.h>
#include <stdio.h>

#include <openssl/opensslconf.h>

#include <openssl/bn.h>
#include <openssl/dh.h>
#include <openssl/err.h>
235
236
237
238
239
240
241





































































































}

int
DH_size(const DH *dh)
{
	return BN_num_bytes(dh->p);
}












































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
}

int
DH_size(const DH *dh)
{
	return BN_num_bytes(dh->p);
}

int
DH_bits(const DH *dh)
{
	return BN_num_bits(dh->p);
}

ENGINE *
DH_get0_engine(DH *dh)
{
	return dh->engine;
}

void
DH_get0_pqg(const DH *dh, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g)
{
	if (p != NULL)
		*p = dh->p;
	if (q != NULL)
		*q = dh->q;
	if (g != NULL)
		*g = dh->g;
}

int
DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g)
{
	if ((dh->p == NULL && p == NULL) || (dh->g == NULL && g == NULL))
		return 0;

	if (p != NULL) {
		BN_free(dh->p);
		dh->p = p;
	}
	if (q != NULL) {
		BN_free(dh->q);
		dh->q = q;
	}
	if (g != NULL) {
		BN_free(dh->g);
		dh->g = g;
	}

	return 1;
}

void
DH_get0_key(const DH *dh, const BIGNUM **pub_key, const BIGNUM **priv_key)
{
	if (pub_key != NULL)
		*pub_key = dh->pub_key;
	if (priv_key != NULL)
		*priv_key = dh->priv_key;
}

int
DH_set0_key(DH *dh, BIGNUM *pub_key, BIGNUM *priv_key)
{
	if ((dh->pub_key == NULL && pub_key == NULL) ||
	    (dh->priv_key == NULL && priv_key == NULL))
		return 0;

	if (pub_key != NULL) {
		BN_free(dh->pub_key);
		dh->pub_key = pub_key;
	}
	if (priv_key != NULL) {
		BN_free(dh->priv_key);
		dh->priv_key = priv_key;
	}

	return 1;
}

void
DH_clear_flags(DH *dh, int flags)
{
	dh->flags &= ~flags;
}

int
DH_test_flags(const DH *dh, int flags)
{
	return dh->flags & flags;
}

void
DH_set_flags(DH *dh, int flags)
{
	dh->flags |= flags;
}

int
DH_set_length(DH *dh, long length)
{
	if (length < 0 || length > INT_MAX)
		return 0;

	dh->length = length;
	return 1;
}
Changes to jni/libressl/crypto/dsa/dsa_asn1.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: dsa_asn1.c,v 1.20 2017/05/02 03:59:44 deraadt Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
 * project 2000.
 */
/* ====================================================================
 * Copyright (c) 2000-2005 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
/* $OpenBSD: dsa_asn1.c,v 1.21 2018/02/20 17:48:35 tb Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
 * project 2000.
 */
/* ====================================================================
 * Copyright (c) 2000-2005 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
128
129
130
131
132
133
134























135
136
137
138
139
140
141
}

int
i2d_DSA_SIG(const DSA_SIG *a, unsigned char **out)
{
	return ASN1_item_i2d((ASN1_VALUE *)a, out, &DSA_SIG_it);
}
























/* Override the default free and new methods */
static int
dsa_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, void *exarg)
{
	if (operation == ASN1_OP_NEW_PRE) {
		*pval = (ASN1_VALUE *)DSA_new();







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
}

int
i2d_DSA_SIG(const DSA_SIG *a, unsigned char **out)
{
	return ASN1_item_i2d((ASN1_VALUE *)a, out, &DSA_SIG_it);
}

void
DSA_SIG_get0(const DSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps)
{
	if (pr != NULL)
		*pr = sig->r;
	if (ps != NULL)
		*ps = sig->s;
}

int
DSA_SIG_set0(DSA_SIG *sig, BIGNUM *r, BIGNUM *s)
{
	if (r == NULL || s == NULL)
		return 0;

	BN_clear_free(sig->r);
	sig->r = r;
	BN_clear_free(sig->s);
	sig->s = s;

	return 1;
}

/* Override the default free and new methods */
static int
dsa_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, void *exarg)
{
	if (operation == ASN1_OP_NEW_PRE) {
		*pval = (ASN1_VALUE *)DSA_new();
Changes to jni/libressl/crypto/dsa/dsa_lib.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: dsa_lib.c,v 1.23 2017/01/29 17:49:22 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 * 
|







1
2
3
4
5
6
7
8
/* $OpenBSD: dsa_lib.c,v 1.28 2018/02/20 17:52:27 tb Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 * 
299
300
301
302
303
304
305





















































































	return ret;

err:
	DH_free(ret);
	return NULL;
}
#endif




























































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
	return ret;

err:
	DH_free(ret);
	return NULL;
}
#endif

void
DSA_get0_pqg(const DSA *d, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g)
{
	if (p != NULL)
		*p = d->p;
	if (q != NULL)
		*q = d->q;
	if (g != NULL)
		*g = d->g;
}

int
DSA_set0_pqg(DSA *d, BIGNUM *p, BIGNUM *q, BIGNUM *g)
{
	if ((d->p == NULL && p == NULL) || (d->q == NULL && q == NULL) ||
	    (d->g == NULL && g == NULL))
		return 0;

	if (p != NULL) {
		BN_free(d->p);
		d->p = p;
	}
	if (q != NULL) {
		BN_free(d->q);
		d->q = q;
	}
	if (g != NULL) {
		BN_free(d->g);
		d->g = g;
	}

	return 1;
}

void
DSA_get0_key(const DSA *d, const BIGNUM **pub_key, const BIGNUM **priv_key)
{
	if (pub_key != NULL)
		*pub_key = d->pub_key;
	if (priv_key != NULL)
		*priv_key = d->priv_key;
}

int
DSA_set0_key(DSA *d, BIGNUM *pub_key, BIGNUM *priv_key)
{
	if (d->pub_key == NULL && pub_key == NULL)
		return 0;

	if (pub_key != NULL) {
		BN_free(d->pub_key);
		d->pub_key = pub_key;
	}
	if (priv_key != NULL) {
		BN_free(d->priv_key);
		d->priv_key = priv_key;
	}

	return 1;
}

void
DSA_clear_flags(DSA *d, int flags)
{
	d->flags &= ~flags;
}

int
DSA_test_flags(const DSA *d, int flags)
{
	return d->flags & flags;
}

void
DSA_set_flags(DSA *d, int flags)
{
	d->flags |= flags;
}

ENGINE *
DSA_get0_engine(DSA *d)
{
	return d->engine;
}
Added jni/libressl/crypto/dsa/dsa_meth.c.




























































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
/*	$OpenBSD: dsa_meth.c,v 1.1 2018/03/17 15:19:12 tb Exp $	*/
/*
 * Copyright (c) 2018 Theo Buehler <tb@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

#include <stdlib.h>
#include <string.h>

#include <openssl/dsa.h>
#include <openssl/err.h>

DSA_METHOD *
DSA_meth_new(const char *name, int flags)
{
	DSA_METHOD *meth;

	if ((meth = calloc(1, sizeof(*meth))) == NULL)
		return NULL;
	if ((meth->name = strdup(name)) == NULL) {
		free(meth);
		return NULL;
	}
	meth->flags = flags;

	return meth;
}

void
DSA_meth_free(DSA_METHOD *meth)
{
	if (meth != NULL) {
		free((char *)meth->name);
		free(meth);
	}
}

DSA_METHOD *
DSA_meth_dup(const DSA_METHOD *meth)
{
	DSA_METHOD *copy;

	if ((copy = calloc(1, sizeof(*copy))) == NULL)
		return NULL;
	memcpy(copy, meth, sizeof(*copy));
	if ((copy->name = strdup(meth->name)) == NULL) {
		free(copy);
		return NULL;
	}
	
	return copy;
}

int
DSA_meth_set_sign(DSA_METHOD *meth,
    DSA_SIG *(*sign)(const unsigned char *, int, DSA *))
{
	meth->dsa_do_sign = sign;
	return 1;
}

int
DSA_meth_set_finish(DSA_METHOD *meth, int (*finish)(DSA *))
{
	meth->finish = finish;
	return 1;
}
Changes to jni/libressl/crypto/ec/ec_ameth.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: ec_ameth.c,v 1.18 2017/01/29 17:49:23 beck Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
 * project 2006.
 */
/* ====================================================================
 * Copyright (c) 2006 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
/* $OpenBSD: ec_ameth.c,v 1.19 2018/03/12 13:14:21 inoguchi Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
 * project 2006.
 */
/* ====================================================================
 * Copyright (c) 2006 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
429
430
431
432
433
434
435

436
437
438
439
440
441
442

443
444
445
446
447
448
449
	ctx = BN_CTX_new();
	if (ctx == NULL) {
		reason = ERR_R_MALLOC_FAILURE;
		goto err;
	}
	if (ktype > 0) {
		public_key = EC_KEY_get0_public_key(x);

		if ((pub_key = EC_POINT_point2bn(group, public_key,
			    EC_KEY_get_conv_form(x), NULL, ctx)) == NULL) {
			reason = ERR_R_EC_LIB;
			goto err;
		}
		if (pub_key)
			buf_len = (size_t) BN_num_bytes(pub_key);

	}
	if (ktype == 2) {
		priv_key = EC_KEY_get0_private_key(x);
		if (priv_key && (i = (size_t) BN_num_bytes(priv_key)) > buf_len)
			buf_len = i;
	} else
		priv_key = NULL;







>
|

|
|
|
|
|
>







429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
	ctx = BN_CTX_new();
	if (ctx == NULL) {
		reason = ERR_R_MALLOC_FAILURE;
		goto err;
	}
	if (ktype > 0) {
		public_key = EC_KEY_get0_public_key(x);
		if (public_key != NULL) {
			if ((pub_key = EC_POINT_point2bn(group, public_key,
			    EC_KEY_get_conv_form(x), NULL, ctx)) == NULL) {
				reason = ERR_R_EC_LIB;
				goto err;
			}
			if (pub_key)
				buf_len = (size_t) BN_num_bytes(pub_key);
		}
	}
	if (ktype == 2) {
		priv_key = EC_KEY_get0_private_key(x);
		if (priv_key && (i = (size_t) BN_num_bytes(priv_key)) > buf_len)
			buf_len = i;
	} else
		priv_key = NULL;
Changes to jni/libressl/crypto/ec/ec_asn1.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: ec_asn1.c,v 1.24 2017/05/26 16:32:14 jsing Exp $ */
/*
 * Written by Nils Larsch for the OpenSSL project.
 */
/* ====================================================================
 * Copyright (c) 2000-2003 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
/* $OpenBSD: ec_asn1.c,v 1.25 2018/03/12 13:14:21 inoguchi Exp $ */
/*
 * Written by Nils Larsch for the OpenSSL project.
 */
/* ====================================================================
 * Copyright (c) 2000-2003 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
1375
1376
1377
1378
1379
1380
1381








1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407








1408
1409
1410
1411
1412
1413
1414
			ECerror(ERR_R_BN_LIB);
			goto err;
		}
	} else {
		ECerror(EC_R_MISSING_PRIVATE_KEY);
		goto err;
	}









	if (priv_key->publicKey) {
		const unsigned char *pub_oct;
		size_t pub_oct_len;

		EC_POINT_clear_free(ret->pub_key);
		ret->pub_key = EC_POINT_new(ret->group);
		if (ret->pub_key == NULL) {
			ECerror(ERR_R_EC_LIB);
			goto err;
		}

		pub_oct = ASN1_STRING_data(priv_key->publicKey);
		pub_oct_len = ASN1_STRING_length(priv_key->publicKey);
		if (pub_oct == NULL || pub_oct_len <= 0) {
			ECerror(EC_R_BUFFER_TOO_SMALL);
			goto err;
		}

		/* save the point conversion form */
		ret->conv_form = (point_conversion_form_t) (pub_oct[0] & ~0x01);
		if (!EC_POINT_oct2point(ret->group, ret->pub_key,
			pub_oct, pub_oct_len, NULL)) {
			ECerror(ERR_R_EC_LIB);
			goto err;
		}








	}

	EC_PRIVATEKEY_free(priv_key);
	if (a != NULL)
		*a = ret;
	return (ret);








>
>
>
>
>
>
>
>





<
<
<
<
<
<
<














>
>
>
>
>
>
>
>







1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394







1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
			ECerror(ERR_R_BN_LIB);
			goto err;
		}
	} else {
		ECerror(EC_R_MISSING_PRIVATE_KEY);
		goto err;
	}

	if (ret->pub_key)
		EC_POINT_clear_free(ret->pub_key);
	ret->pub_key = EC_POINT_new(ret->group);
	if (ret->pub_key == NULL) {
		ECerror(ERR_R_EC_LIB);
		goto err;
	}

	if (priv_key->publicKey) {
		const unsigned char *pub_oct;
		size_t pub_oct_len;








		pub_oct = ASN1_STRING_data(priv_key->publicKey);
		pub_oct_len = ASN1_STRING_length(priv_key->publicKey);
		if (pub_oct == NULL || pub_oct_len <= 0) {
			ECerror(EC_R_BUFFER_TOO_SMALL);
			goto err;
		}

		/* save the point conversion form */
		ret->conv_form = (point_conversion_form_t) (pub_oct[0] & ~0x01);
		if (!EC_POINT_oct2point(ret->group, ret->pub_key,
			pub_oct, pub_oct_len, NULL)) {
			ECerror(ERR_R_EC_LIB);
			goto err;
		}
	} else {
		if (!EC_POINT_mul(ret->group, ret->pub_key, ret->priv_key,
			NULL, NULL, NULL)) {
			ECerror(ERR_R_EC_LIB);
			goto err;
		}
		/* Remember the original private-key-only encoding. */
		ret->enc_flag |= EC_PKEY_NO_PUBKEY;
	}

	EC_PRIVATEKEY_free(priv_key);
	if (a != NULL)
		*a = ret;
	return (ret);

1425
1426
1427
1428
1429
1430
1431
1432

1433
1434
1435
1436
1437
1438
1439
i2d_ECPrivateKey(EC_KEY * a, unsigned char **out)
{
	int ret = 0, ok = 0;
	unsigned char *buffer = NULL;
	size_t buf_len = 0, tmp_len;
	EC_PRIVATEKEY *priv_key = NULL;

	if (a == NULL || a->group == NULL || a->priv_key == NULL) {

		ECerror(ERR_R_PASSED_NULL_PARAMETER);
		goto err;
	}
	if ((priv_key = EC_PRIVATEKEY_new()) == NULL) {
		ECerror(ERR_R_MALLOC_FAILURE);
		goto err;
	}







|
>







1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
i2d_ECPrivateKey(EC_KEY * a, unsigned char **out)
{
	int ret = 0, ok = 0;
	unsigned char *buffer = NULL;
	size_t buf_len = 0, tmp_len;
	EC_PRIVATEKEY *priv_key = NULL;

	if (a == NULL || a->group == NULL || a->priv_key == NULL ||
	    (!(a->enc_flag & EC_PKEY_NO_PUBKEY) && a->pub_key == NULL)) {
		ECerror(ERR_R_PASSED_NULL_PARAMETER);
		goto err;
	}
	if ((priv_key = EC_PRIVATEKEY_new()) == NULL) {
		ECerror(ERR_R_MALLOC_FAILURE);
		goto err;
	}
Changes to jni/libressl/crypto/ec/ec_curve.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: ec_curve.c,v 1.15 2017/01/29 17:49:23 beck Exp $ */
/*
 * Written by Nils Larsch for the OpenSSL project.
 */
/* ====================================================================
 * Copyright (c) 1998-2010 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
/* $OpenBSD: ec_curve.c,v 1.16 2018/03/16 12:31:09 mpi Exp $ */
/*
 * Written by Nils Larsch for the OpenSSL project.
 */
/* ====================================================================
 * Copyright (c) 1998-2010 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
		0x00, 0xF4, 0x4B, 0x4A, 0xF1, 0xEC, 0xC2, 0x63, 0x0E, 0x08,	/* y */
		0x78, 0x5C, 0xEB, 0xCC, 0x15,
		0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xBF,	/* order */
		0x91, 0xAF, 0x6D, 0xEA, 0x73
	}
};

/* IPSec curves */
/* NOTE: The of curves over a extension field of non prime degree
 * is not recommended (Weil-descent).
 * As the group order is not a prime this curve is not suitable
 * for ECDSA.
 */
static const struct {
	EC_CURVE_DATA h;







|







2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
		0x00, 0xF4, 0x4B, 0x4A, 0xF1, 0xEC, 0xC2, 0x63, 0x0E, 0x08,	/* y */
		0x78, 0x5C, 0xEB, 0xCC, 0x15,
		0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xBF,	/* order */
		0x91, 0xAF, 0x6D, 0xEA, 0x73
	}
};

/* IPsec curves */
/* NOTE: The of curves over a extension field of non prime degree
 * is not recommended (Weil-descent).
 * As the group order is not a prime this curve is not suitable
 * for ECDSA.
 */
static const struct {
	EC_CURVE_DATA h;
Changes to jni/libressl/crypto/ecdsa/ecs_asn1.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: ecs_asn1.c,v 1.8 2015/10/16 15:15:39 jsing Exp $ */
/* ====================================================================
 * Copyright (c) 2000-2002 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: ecs_asn1.c,v 1.9 2018/03/17 15:24:44 tb Exp $ */
/* ====================================================================
 * Copyright (c) 2000-2002 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
109
110
111
112
113
114
115






















}

void
ECDSA_SIG_free(ECDSA_SIG *a)
{
	ASN1_item_free((ASN1_VALUE *)a, &ECDSA_SIG_it);
}





























>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
}

void
ECDSA_SIG_free(ECDSA_SIG *a)
{
	ASN1_item_free((ASN1_VALUE *)a, &ECDSA_SIG_it);
}

void
ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps)
{
	if (pr != NULL)
		*pr = sig->r;
	if (ps != NULL)
		*ps = sig->s;
}

int
ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s)
{
	if (r == NULL || s == NULL)
		return 0;

	BN_clear_free(sig->r);
	BN_clear_free(sig->s);
	sig->r = r;
	sig->s = s;
	return 1;
}
Changes to jni/libressl/crypto/engine/eng_all.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: eng_all.c,v 1.29 2015/07/19 22:34:27 doug Exp $ */
/* Written by Richard Levitte <richard@levitte.org> for the OpenSSL
 * project 2000.
 */
/* ====================================================================
 * Copyright (c) 2000-2001 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
/* $OpenBSD: eng_all.c,v 1.30 2018/03/17 16:20:01 beck Exp $ */
/* Written by Richard Levitte <richard@levitte.org> for the OpenSSL
 * project 2000.
 */
/* ====================================================================
 * Copyright (c) 2000-2001 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
51
52
53
54
55
56
57


58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78











 * ====================================================================
 *
 * This product includes cryptographic software written by Eric Young
 * (eay@cryptsoft.com).  This product includes software written by Tim
 * Hudson (tjh@cryptsoft.com).
 *
 */



#include <openssl/opensslconf.h>

#include "cryptlib.h"
#include "eng_int.h"

void
ENGINE_load_builtin_engines(void)
{
	/* Some ENGINEs need this */
	OPENSSL_cpuid_setup();

#ifndef OPENSSL_NO_STATIC_ENGINE
#ifndef OPENSSL_NO_HW
#ifndef OPENSSL_NO_HW_PADLOCK
	ENGINE_load_padlock();
#endif
#endif
#endif
	ENGINE_register_all_complete();
}


















>
>







|

<
<
<









>
>
>
>
>
>
>
>
>
>
>
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68



69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
 * ====================================================================
 *
 * This product includes cryptographic software written by Eric Young
 * (eay@cryptsoft.com).  This product includes software written by Tim
 * Hudson (tjh@cryptsoft.com).
 *
 */

#include <pthread.h>

#include <openssl/opensslconf.h>

#include "cryptlib.h"
#include "eng_int.h"

void
ENGINE_load_builtin_engines_internal(void)
{



#ifndef OPENSSL_NO_STATIC_ENGINE
#ifndef OPENSSL_NO_HW
#ifndef OPENSSL_NO_HW_PADLOCK
	ENGINE_load_padlock();
#endif
#endif
#endif
	ENGINE_register_all_complete();
}

void
ENGINE_load_builtin_engines(void)
{
	static pthread_once_t once = PTHREAD_ONCE_INIT;

	/* Prayer and clean living lets you ignore errors, OpenSSL style */
	(void) OPENSSL_init_crypto(0, NULL);

	(void) pthread_once(&once, ENGINE_load_builtin_engines_internal);
}
Changes to jni/libressl/crypto/engine/eng_lib.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: eng_lib.c,v 1.12 2017/01/29 17:49:23 beck Exp $ */
/* Written by Geoff Thorpe (geoff@geoffthorpe.net) for the OpenSSL
 * project 2000.
 */
/* ====================================================================
 * Copyright (c) 1999-2001 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
/* $OpenBSD: eng_lib.c,v 1.13 2018/03/17 16:20:01 beck Exp $ */
/* Written by Geoff Thorpe (geoff@geoffthorpe.net) for the OpenSSL
 * project 2000.
 */
/* ====================================================================
 * Copyright (c) 1999-2001 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
65
66
67
68
69
70
71



72
73
74
75
76
77
78

/* The "new"/"free" stuff first */

ENGINE *
ENGINE_new(void)
{
	ENGINE *ret;




	ret = malloc(sizeof(ENGINE));
	if (ret == NULL) {
		ENGINEerror(ERR_R_MALLOC_FAILURE);
		return NULL;
	}
	memset(ret, 0, sizeof(ENGINE));







>
>
>







65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81

/* The "new"/"free" stuff first */

ENGINE *
ENGINE_new(void)
{
	ENGINE *ret;

	if (!OPENSSL_init_crypto(0, NULL))
		return NULL;

	ret = malloc(sizeof(ENGINE));
	if (ret == NULL) {
		ENGINEerror(ERR_R_MALLOC_FAILURE);
		return NULL;
	}
	memset(ret, 0, sizeof(ENGINE));
Changes to jni/libressl/crypto/err/err.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: err.c,v 1.45 2017/02/20 23:21:19 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: err.c,v 1.46 2018/03/17 16:20:01 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
105
106
107
108
109
110
111

112
113
114
115
116
117
118
 *
 * This product includes cryptographic software written by Eric Young
 * (eay@cryptsoft.com).  This product includes software written by Tim
 * Hudson (tjh@cryptsoft.com).
 *
 */


#include <stdarg.h>
#include <stdio.h>
#include <string.h>

#include <openssl/opensslconf.h>

#include <openssl/bio.h>







>







105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
 *
 * This product includes cryptographic software written by Eric Young
 * (eay@cryptsoft.com).  This product includes software written by Tim
 * Hudson (tjh@cryptsoft.com).
 *
 */

#include <pthread.h>
#include <stdarg.h>
#include <stdio.h>
#include <string.h>

#include <openssl/opensslconf.h>

#include <openssl/bio.h>
277
278
279
280
281
282
283


284
285
286
287
288
289
290
 * "err_defaults" functions. This way, a linked module can completely defer all
 * ERR state operation (together with requisite locking) to the implementations
 * and state in the loading application. */
static LHASH_OF(ERR_STRING_DATA) *int_error_hash = NULL;
static LHASH_OF(ERR_STATE) *int_thread_hash = NULL;
static int int_thread_hash_references = 0;
static int int_err_library_number = ERR_LIB_USER;



/* Internal function that checks whether "err_fns" is set and if not, sets it to
 * the defaults. */
static void
err_fns_check(void)
{
	if (err_fns)







>
>







278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
 * "err_defaults" functions. This way, a linked module can completely defer all
 * ERR state operation (together with requisite locking) to the implementations
 * and state in the loading application. */
static LHASH_OF(ERR_STRING_DATA) *int_error_hash = NULL;
static LHASH_OF(ERR_STATE) *int_thread_hash = NULL;
static int int_thread_hash_references = 0;
static int int_err_library_number = ERR_LIB_USER;

static pthread_t err_init_thread;

/* Internal function that checks whether "err_fns" is set and if not, sets it to
 * the defaults. */
static void
err_fns_check(void)
{
	if (err_fns)
646
647
648
649
650
651
652
653
654

655
656
657
658
659
660
661
662
663
664















665
666
667
668
669
670
671
	for (i = 0; i < ERR_NUM_ERRORS; i++) {
		err_clear_data(s, i);
	}
	free(s);
}

void
ERR_load_ERR_strings(void)
{

	err_fns_check();
#ifndef OPENSSL_NO_ERR
	err_load_strings(0, ERR_str_libraries);
	err_load_strings(0, ERR_str_reasons);
	err_load_strings(ERR_LIB_SYS, ERR_str_functs);
	build_SYS_str_reasons();
	err_load_strings(ERR_LIB_SYS, SYS_str_reasons);
#endif
}
















static void
err_load_strings(int lib, ERR_STRING_DATA *str)
{
	while (str->error) {
		if (lib)
			str->error |= ERR_PACK(lib, 0, 0);
		ERRFN(err_set_item)(str);







|

>










>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
	for (i = 0; i < ERR_NUM_ERRORS; i++) {
		err_clear_data(s, i);
	}
	free(s);
}

void
ERR_load_ERR_strings_internal(void)
{
	err_init_thread = pthread_self();
	err_fns_check();
#ifndef OPENSSL_NO_ERR
	err_load_strings(0, ERR_str_libraries);
	err_load_strings(0, ERR_str_reasons);
	err_load_strings(ERR_LIB_SYS, ERR_str_functs);
	build_SYS_str_reasons();
	err_load_strings(ERR_LIB_SYS, SYS_str_reasons);
#endif
}


void
ERR_load_ERR_strings(void)
{
	static pthread_once_t once = PTHREAD_ONCE_INIT;

	if (pthread_equal(pthread_self(), err_init_thread))
		return; /* don't recurse */

	/* Prayer and clean living lets you ignore errors, OpenSSL style */
	(void) OPENSSL_init_crypto(0, NULL);

	(void) pthread_once(&once, ERR_load_ERR_strings_internal);
}

static void
err_load_strings(int lib, ERR_STRING_DATA *str)
{
	while (str->error) {
		if (lib)
			str->error |= ERR_PACK(lib, 0, 0);
		ERRFN(err_set_item)(str);
679
680
681
682
683
684
685



686
687
688
689
690
691
692
693
694
695
696



697
698
699
700
701
702
703
	ERR_load_ERR_strings();
	err_load_strings(lib, str);
}

void
ERR_unload_strings(int lib, ERR_STRING_DATA *str)
{



	while (str->error) {
		if (lib)
			str->error |= ERR_PACK(lib, 0, 0);
		ERRFN(err_del_item)(str);
		str++;
	}
}

void
ERR_free_strings(void)
{



	err_fns_check();
	ERRFN(err_del)();
}

/********************************************************/

void







>
>
>











>
>
>







698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
	ERR_load_ERR_strings();
	err_load_strings(lib, str);
}

void
ERR_unload_strings(int lib, ERR_STRING_DATA *str)
{
	/* Prayer and clean living lets you ignore errors, OpenSSL style */
	(void) OPENSSL_init_crypto(0, NULL);

	while (str->error) {
		if (lib)
			str->error |= ERR_PACK(lib, 0, 0);
		ERRFN(err_del_item)(str);
		str++;
	}
}

void
ERR_free_strings(void)
{
	/* Prayer and clean living lets you ignore errors, OpenSSL style */
	(void) OPENSSL_init_crypto(0, NULL);

	err_fns_check();
	ERRFN(err_del)();
}

/********************************************************/

void
948
949
950
951
952
953
954



955
956
957
958
959
960
961
}

const char *
ERR_lib_error_string(unsigned long e)
{
	ERR_STRING_DATA d, *p;
	unsigned long l;




	err_fns_check();
	l = ERR_GET_LIB(e);
	d.error = ERR_PACK(l, 0, 0);
	p = ERRFN(err_get_item)(&d);
	return ((p == NULL) ? NULL : p->string);
}







>
>
>







973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
}

const char *
ERR_lib_error_string(unsigned long e)
{
	ERR_STRING_DATA d, *p;
	unsigned long l;

	if (!OPENSSL_init_crypto(0, NULL))
		return NULL;

	err_fns_check();
	l = ERR_GET_LIB(e);
	d.error = ERR_PACK(l, 0, 0);
	p = ERRFN(err_get_item)(&d);
	return ((p == NULL) ? NULL : p->string);
}
Changes to jni/libressl/crypto/err/err_all.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: err_all.c,v 1.23 2016/10/19 16:49:11 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: err_all.c,v 1.24 2018/03/17 16:20:01 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
52
53
54
55
56
57
58

59
60
61
62
63
64
65
 *
 * The licence and distribution terms for any publically available version or
 * derivative of this code cannot be changed.  i.e. this code cannot simply be
 * copied and put under another distribution licence
 * [including the GNU Public Licence.]
 */


#include <stdio.h>

#include <openssl/opensslconf.h>

#include <openssl/asn1.h>
#include <openssl/bio.h>
#include <openssl/bn.h>







>







52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
 *
 * The licence and distribution terms for any publically available version or
 * derivative of this code cannot be changed.  i.e. this code cannot simply be
 * copied and put under another distribution licence
 * [including the GNU Public Licence.]
 */

#include <pthread.h>
#include <stdio.h>

#include <openssl/opensslconf.h>

#include <openssl/asn1.h>
#include <openssl/bio.h>
#include <openssl/bn.h>
99
100
101
102
103
104
105


106
107
108
109
110
111
112
113
114
115
116
117
#ifndef OPENSSL_NO_RSA
#include <openssl/rsa.h>
#endif
#ifndef OPENSSL_NO_GOST
#include <openssl/gost.h>
#endif



void
ERR_load_crypto_strings(void)
{
#ifndef OPENSSL_NO_ERR
	ERR_load_ERR_strings(); /* include error strings for SYSerr */
	ERR_load_BN_strings();
#ifndef OPENSSL_NO_RSA
	ERR_load_RSA_strings();
#endif
#ifndef OPENSSL_NO_DH
	ERR_load_DH_strings();
#endif







>
>
|
|


|







100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#ifndef OPENSSL_NO_RSA
#include <openssl/rsa.h>
#endif
#ifndef OPENSSL_NO_GOST
#include <openssl/gost.h>
#endif

void ERR_load_ERR_strings_internal(void);

static void
ERR_load_crypto_strings_internal(void)
{
#ifndef OPENSSL_NO_ERR
	ERR_load_ERR_strings_internal(); /* include error strings for SYSerr */
	ERR_load_BN_strings();
#ifndef OPENSSL_NO_RSA
	ERR_load_RSA_strings();
#endif
#ifndef OPENSSL_NO_DH
	ERR_load_DH_strings();
#endif
149
150
151
152
153
154
155







	ERR_load_OCSP_strings();
	ERR_load_UI_strings();
#ifndef OPENSSL_NO_GOST
	ERR_load_GOST_strings();
#endif
#endif
}














>
>
>
>
>
>
>
152
153
154
155
156
157
158
159
160
161
162
163
164
165
	ERR_load_OCSP_strings();
	ERR_load_UI_strings();
#ifndef OPENSSL_NO_GOST
	ERR_load_GOST_strings();
#endif
#endif
}

void
ERR_load_crypto_strings(void)
{
	static pthread_once_t loaded = PTHREAD_ONCE_INIT;
	(void) pthread_once(&loaded, ERR_load_crypto_strings_internal);
}
Changes to jni/libressl/crypto/evp/c_all.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: c_all.c,v 1.21 2017/03/01 13:53:58 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: c_all.c,v 1.22 2018/03/17 16:20:01 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
53
54
55
56
57
58
59

60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
 * The licence and distribution terms for any publically available version or
 * derivative of this code cannot be changed.  i.e. this code cannot simply be
 * copied and put under another distribution licence
 * [including the GNU Public Licence.]
 */

#include <stdio.h>


#include <openssl/opensslconf.h>

#include <openssl/conf.h>
#include <openssl/evp.h>
#include <openssl/objects.h>

#include "cryptlib.h"

void
OpenSSL_add_all_ciphers(void)
{
#ifndef OPENSSL_NO_DES
	EVP_add_cipher(EVP_des_cfb());
	EVP_add_cipher(EVP_des_cfb1());
	EVP_add_cipher(EVP_des_cfb8());
	EVP_add_cipher(EVP_des_ede_cfb());
	EVP_add_cipher(EVP_des_ede3_cfb());







>









|
|







53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
 * The licence and distribution terms for any publically available version or
 * derivative of this code cannot be changed.  i.e. this code cannot simply be
 * copied and put under another distribution licence
 * [including the GNU Public Licence.]
 */

#include <stdio.h>
#include <pthread.h>

#include <openssl/opensslconf.h>

#include <openssl/conf.h>
#include <openssl/evp.h>
#include <openssl/objects.h>

#include "cryptlib.h"

static void
OpenSSL_add_all_ciphers_internal(void)
{
#ifndef OPENSSL_NO_DES
	EVP_add_cipher(EVP_des_cfb());
	EVP_add_cipher(EVP_des_cfb1());
	EVP_add_cipher(EVP_des_cfb8());
	EVP_add_cipher(EVP_des_ede_cfb());
	EVP_add_cipher(EVP_des_ede3_cfb());
222
223
224
225
226
227
228







229
230
231
232
233
234
235
236
	EVP_add_cipher(EVP_gost2814789_ecb());
	EVP_add_cipher(EVP_gost2814789_cfb64());
	EVP_add_cipher(EVP_gost2814789_cnt());
#endif
}

void







OpenSSL_add_all_digests(void)
{
#ifndef OPENSSL_NO_MD4
	EVP_add_digest(EVP_md4());
#endif

#ifndef OPENSSL_NO_MD5
	EVP_add_digest(EVP_md5());







>
>
>
>
>
>
>
|







223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
	EVP_add_cipher(EVP_gost2814789_ecb());
	EVP_add_cipher(EVP_gost2814789_cfb64());
	EVP_add_cipher(EVP_gost2814789_cnt());
#endif
}

void
OpenSSL_add_all_ciphers(void)
{
	static pthread_once_t add_all_ciphers_once = PTHREAD_ONCE_INIT;
	(void) pthread_once(&add_all_ciphers_once, OpenSSL_add_all_ciphers_internal);
}

static void
OpenSSL_add_all_digests_internal(void)
{
#ifndef OPENSSL_NO_MD4
	EVP_add_digest(EVP_md4());
#endif

#ifndef OPENSSL_NO_MD5
	EVP_add_digest(EVP_md5());
278
279
280
281
282
283
284







285
286
287
288
289
290
291
	EVP_add_digest(EVP_sha384());
	EVP_add_digest(EVP_sha512());
#endif
#ifndef OPENSSL_NO_WHIRLPOOL
	EVP_add_digest(EVP_whirlpool());
#endif
}








void
OPENSSL_add_all_algorithms_noconf(void)
{
	OPENSSL_cpuid_setup();
	OpenSSL_add_all_ciphers();
	OpenSSL_add_all_digests();







>
>
>
>
>
>
>







286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
	EVP_add_digest(EVP_sha384());
	EVP_add_digest(EVP_sha512());
#endif
#ifndef OPENSSL_NO_WHIRLPOOL
	EVP_add_digest(EVP_whirlpool());
#endif
}

void
OpenSSL_add_all_digests(void)
{
	static pthread_once_t add_all_digests_once = PTHREAD_ONCE_INIT;
	(void) pthread_once(&add_all_digests_once, OpenSSL_add_all_digests_internal);
}

void
OPENSSL_add_all_algorithms_noconf(void)
{
	OPENSSL_cpuid_setup();
	OpenSSL_add_all_ciphers();
	OpenSSL_add_all_digests();
Changes to jni/libressl/crypto/evp/digest.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: digest.c,v 1.28 2017/05/02 03:59:44 deraadt Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: digest.c,v 1.29 2018/02/17 14:55:31 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
#include <openssl/evp.h>
#include <openssl/objects.h>

#ifndef OPENSSL_NO_ENGINE
#include <openssl/engine.h>
#endif

void
EVP_MD_CTX_init(EVP_MD_CTX *ctx)
{
	memset(ctx, 0, sizeof *ctx);
}

EVP_MD_CTX *
EVP_MD_CTX_create(void)
{
	return calloc(1, sizeof(EVP_MD_CTX));
}

int
EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type)
{
	EVP_MD_CTX_init(ctx);
	return EVP_DigestInit_ex(ctx, type, NULL);
}








<
<
<
<
<
<
<
<
<
<
<
<







118
119
120
121
122
123
124












125
126
127
128
129
130
131
#include <openssl/evp.h>
#include <openssl/objects.h>

#ifndef OPENSSL_NO_ENGINE
#include <openssl/engine.h>
#endif













int
EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type)
{
	EVP_MD_CTX_init(ctx);
	return EVP_DigestInit_ex(ctx, type, NULL);
}

334
335
336
337
338
339
340
341






342
343
344
345


346

347
348























349
350
351
352
353
354

355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
	ret = EVP_DigestInit_ex(&ctx, type, impl) &&
	    EVP_DigestUpdate(&ctx, data, count) &&
	    EVP_DigestFinal_ex(&ctx, md, size);
	EVP_MD_CTX_cleanup(&ctx);

	return ret;
}







void
EVP_MD_CTX_destroy(EVP_MD_CTX *ctx)
{
	if (ctx) {


		EVP_MD_CTX_cleanup(ctx);

		free(ctx);
	}























}

/* This call frees resources associated with the context */
int
EVP_MD_CTX_cleanup(EVP_MD_CTX *ctx)
{

	/* Don't assume ctx->md_data was cleaned in EVP_Digest_Final,
	 * because sometimes only copies of the context are ever finalised.
	 */
	if (ctx->digest && ctx->digest->cleanup &&
	    !EVP_MD_CTX_test_flags(ctx, EVP_MD_CTX_FLAG_CLEANED))
		ctx->digest->cleanup(ctx);
	if (ctx->digest && ctx->digest->ctx_size && ctx->md_data &&
	    !EVP_MD_CTX_test_flags(ctx, EVP_MD_CTX_FLAG_REUSE))
		freezero(ctx->md_data, ctx->digest->ctx_size);
	EVP_PKEY_CTX_free(ctx->pctx);
#ifndef OPENSSL_NO_ENGINE
	if (ctx->engine)
		/* The EVP_MD we used belongs to an ENGINE, release the
		 * functional reference we held for this reason. */
		ENGINE_finish(ctx->engine);
#endif
	memset(ctx, 0, sizeof *ctx);

	return 1;
}

int
EVP_MD_CTX_ctrl(EVP_MD_CTX *ctx, int type, int arg, void *ptr)
{








>
>
>
>
>
>

|

|
>
>
|
>
|
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>






>
|















|







322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
	ret = EVP_DigestInit_ex(&ctx, type, impl) &&
	    EVP_DigestUpdate(&ctx, data, count) &&
	    EVP_DigestFinal_ex(&ctx, md, size);
	EVP_MD_CTX_cleanup(&ctx);

	return ret;
}

EVP_MD_CTX *
EVP_MD_CTX_new(void)
{
	return calloc(1, sizeof(EVP_MD_CTX));
}

void
EVP_MD_CTX_free(EVP_MD_CTX *ctx)
{
	if (ctx == NULL)
		return;

	EVP_MD_CTX_cleanup(ctx);

	free(ctx);
}

void
EVP_MD_CTX_init(EVP_MD_CTX *ctx)
{
	memset(ctx, 0, sizeof(*ctx));
}

int
EVP_MD_CTX_reset(EVP_MD_CTX *ctx)
{
	return EVP_MD_CTX_cleanup(ctx);
}

EVP_MD_CTX *
EVP_MD_CTX_create(void)
{
	return EVP_MD_CTX_new();
}

void
EVP_MD_CTX_destroy(EVP_MD_CTX *ctx)
{
	EVP_MD_CTX_free(ctx);
}

/* This call frees resources associated with the context */
int
EVP_MD_CTX_cleanup(EVP_MD_CTX *ctx)
{
	/*
	 * Don't assume ctx->md_data was cleaned in EVP_Digest_Final,
	 * because sometimes only copies of the context are ever finalised.
	 */
	if (ctx->digest && ctx->digest->cleanup &&
	    !EVP_MD_CTX_test_flags(ctx, EVP_MD_CTX_FLAG_CLEANED))
		ctx->digest->cleanup(ctx);
	if (ctx->digest && ctx->digest->ctx_size && ctx->md_data &&
	    !EVP_MD_CTX_test_flags(ctx, EVP_MD_CTX_FLAG_REUSE))
		freezero(ctx->md_data, ctx->digest->ctx_size);
	EVP_PKEY_CTX_free(ctx->pctx);
#ifndef OPENSSL_NO_ENGINE
	if (ctx->engine)
		/* The EVP_MD we used belongs to an ENGINE, release the
		 * functional reference we held for this reason. */
		ENGINE_finish(ctx->engine);
#endif
	memset(ctx, 0, sizeof(*ctx));

	return 1;
}

int
EVP_MD_CTX_ctrl(EVP_MD_CTX *ctx, int type, int arg, void *ptr)
{
Changes to jni/libressl/crypto/evp/evp_enc.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: evp_enc.c,v 1.36 2017/01/29 17:49:23 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: evp_enc.c,v 1.38 2018/02/17 16:54:08 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#include <openssl/engine.h>
#endif

#include "evp_locl.h"

#define M_do_cipher(ctx, out, in, inl) ctx->cipher->do_cipher(ctx, out, in, inl)

void
EVP_CIPHER_CTX_init(EVP_CIPHER_CTX *ctx)
{
	memset(ctx, 0, sizeof(EVP_CIPHER_CTX));
}

EVP_CIPHER_CTX *
EVP_CIPHER_CTX_new(void)
{
	return calloc(1, sizeof(EVP_CIPHER_CTX));
}

int
EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,
    const unsigned char *key, const unsigned char *iv, int enc)
{
	if (cipher)
		EVP_CIPHER_CTX_init(ctx);
	return EVP_CipherInit_ex(ctx, cipher, NULL, key, iv, enc);







<
<
<
<
<
<
<
<
<
<
<
<







71
72
73
74
75
76
77












78
79
80
81
82
83
84
#include <openssl/engine.h>
#endif

#include "evp_locl.h"

#define M_do_cipher(ctx, out, in, inl) ctx->cipher->do_cipher(ctx, out, in, inl)













int
EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,
    const unsigned char *key, const unsigned char *iv, int enc)
{
	if (cipher)
		EVP_CIPHER_CTX_init(ctx);
	return EVP_CipherInit_ex(ctx, cipher, NULL, key, iv, enc);
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
	if (ctx->encrypt)
		return EVP_EncryptFinal_ex(ctx, out, outl);
	else
		return EVP_DecryptFinal_ex(ctx, out, outl);
}

__warn_references(EVP_CipherFinal,
    "warning: EVP_CipherFinal is often misused, please use EVP_CipherFinal_ex and EVP_CIPHER_CTX_cleanup");

int
EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl)
{
	int ret;
	if (ctx->encrypt)
		ret = EVP_EncryptFinal_ex(ctx, out, outl);







|







242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
	if (ctx->encrypt)
		return EVP_EncryptFinal_ex(ctx, out, outl);
	else
		return EVP_DecryptFinal_ex(ctx, out, outl);
}

__warn_references(EVP_CipherFinal,
    "EVP_CipherFinal is often misused, please use EVP_CipherFinal_ex and EVP_CIPHER_CTX_cleanup");

int
EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl)
{
	int ret;
	if (ctx->encrypt)
		ret = EVP_EncryptFinal_ex(ctx, out, outl);
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
	if (i != 0)
		memcpy(ctx->buf, &(in[inl]), i);
	ctx->buf_len = i;
	return 1;
}

__warn_references(EVP_EncryptFinal,
    "warning: EVP_EncryptFinal is often misused, please use EVP_EncryptFinal_ex and EVP_CIPHER_CTX_cleanup");

int
EVP_EncryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl)
{
	int ret;

	ret = EVP_EncryptFinal_ex(ctx, out, outl);







|







352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
	if (i != 0)
		memcpy(ctx->buf, &(in[inl]), i);
	ctx->buf_len = i;
	return 1;
}

__warn_references(EVP_EncryptFinal,
    "EVP_EncryptFinal is often misused, please use EVP_EncryptFinal_ex and EVP_CIPHER_CTX_cleanup");

int
EVP_EncryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl)
{
	int ret;

	ret = EVP_EncryptFinal_ex(ctx, out, outl);
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
	if (fix_len)
		*outl += b;

	return 1;
}

__warn_references(EVP_DecryptFinal,
    "warning: EVP_DecryptFinal is often misused, please use EVP_DecryptFinal_ex and EVP_CIPHER_CTX_cleanup");

int
EVP_DecryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl)
{
	int ret;

	ret = EVP_DecryptFinal_ex(ctx, out, outl);







|







467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
	if (fix_len)
		*outl += b;

	return 1;
}

__warn_references(EVP_DecryptFinal,
    "EVP_DecryptFinal is often misused, please use EVP_DecryptFinal_ex and EVP_CIPHER_CTX_cleanup");

int
EVP_DecryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl)
{
	int ret;

	ret = EVP_DecryptFinal_ex(ctx, out, outl);
543
544
545
546
547
548
549






550
551
552
553
554


555

556
557











558
559
560
561
562
563
564
		for (i = 0; i < n; i++)
			out[i] = ctx->final[i];
		*outl = n;
	} else
		*outl = 0;
	return (1);
}







void
EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *ctx)
{
	if (ctx) {


		EVP_CIPHER_CTX_cleanup(ctx);

		free(ctx);
	}











}

int
EVP_CIPHER_CTX_cleanup(EVP_CIPHER_CTX *c)
{
	if (c->cipher != NULL) {
		if (c->cipher->cleanup && !c->cipher->cleanup(c))







>
>
>
>
>
>




|
>
>
|
>
|
|
>
>
>
>
>
>
>
>
>
>
>







531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
		for (i = 0; i < n; i++)
			out[i] = ctx->final[i];
		*outl = n;
	} else
		*outl = 0;
	return (1);
}

EVP_CIPHER_CTX *
EVP_CIPHER_CTX_new(void)
{
	return calloc(1, sizeof(EVP_CIPHER_CTX));
}

void
EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *ctx)
{
	if (ctx == NULL)
		return;

	EVP_CIPHER_CTX_cleanup(ctx);

	free(ctx);
}

void
EVP_CIPHER_CTX_init(EVP_CIPHER_CTX *ctx)
{
	memset(ctx, 0, sizeof(EVP_CIPHER_CTX));
}

int
EVP_CIPHER_CTX_reset(EVP_CIPHER_CTX *a)
{
	return EVP_CIPHER_CTX_cleanup(a);
}

int
EVP_CIPHER_CTX_cleanup(EVP_CIPHER_CTX *c)
{
	if (c->cipher != NULL) {
		if (c->cipher->cleanup && !c->cipher->cleanup(c))
Changes to jni/libressl/crypto/evp/names.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: names.c,v 1.13 2017/04/29 21:48:44 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: names.c,v 1.14 2018/03/17 16:20:01 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
108
109
110
111
112
113
114



115
116
117
118
119
120
121
122
123



124
125
126
127
128
129
130
	return (r);
}

const EVP_CIPHER *
EVP_get_cipherbyname(const char *name)
{
	const EVP_CIPHER *cp;




	cp = (const EVP_CIPHER *)OBJ_NAME_get(name, OBJ_NAME_TYPE_CIPHER_METH);
	return (cp);
}

const EVP_MD *
EVP_get_digestbyname(const char *name)
{
	const EVP_MD *cp;




	cp = (const EVP_MD *)OBJ_NAME_get(name, OBJ_NAME_TYPE_MD_METH);
	return (cp);
}

void
EVP_cleanup(void)







>
>
>









>
>
>







108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
	return (r);
}

const EVP_CIPHER *
EVP_get_cipherbyname(const char *name)
{
	const EVP_CIPHER *cp;

	if (!OPENSSL_init_crypto(0, NULL))
		return NULL;

	cp = (const EVP_CIPHER *)OBJ_NAME_get(name, OBJ_NAME_TYPE_CIPHER_METH);
	return (cp);
}

const EVP_MD *
EVP_get_digestbyname(const char *name)
{
	const EVP_MD *cp;

	if (!OPENSSL_init_crypto(0, NULL))
		return NULL;

	cp = (const EVP_MD *)OBJ_NAME_get(name, OBJ_NAME_TYPE_MD_METH);
	return (cp);
}

void
EVP_cleanup(void)
163
164
165
166
167
168
169



170
171
172
173
174
175
176
177
178
179



180
181
182
183
184
185
186

void
EVP_CIPHER_do_all(void (*fn)(const EVP_CIPHER *ciph, const char *from,
    const char *to, void *x), void *arg)
{
	struct doall_cipher dc;




	dc.fn = fn;
	dc.arg = arg;
	OBJ_NAME_do_all(OBJ_NAME_TYPE_CIPHER_METH, do_all_cipher_fn, &dc);
}

void
EVP_CIPHER_do_all_sorted(void (*fn)(const EVP_CIPHER *ciph, const char *from,
    const char *to, void *x), void *arg)
{
	struct doall_cipher dc;




	dc.fn = fn;
	dc.arg = arg;
	OBJ_NAME_do_all_sorted(OBJ_NAME_TYPE_CIPHER_METH,
	    do_all_cipher_fn, &dc);
}








>
>
>










>
>
>







169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198

void
EVP_CIPHER_do_all(void (*fn)(const EVP_CIPHER *ciph, const char *from,
    const char *to, void *x), void *arg)
{
	struct doall_cipher dc;

	/* Prayer and clean living lets you ignore errors, OpenSSL style */
	(void) OPENSSL_init_crypto(0, NULL);

	dc.fn = fn;
	dc.arg = arg;
	OBJ_NAME_do_all(OBJ_NAME_TYPE_CIPHER_METH, do_all_cipher_fn, &dc);
}

void
EVP_CIPHER_do_all_sorted(void (*fn)(const EVP_CIPHER *ciph, const char *from,
    const char *to, void *x), void *arg)
{
	struct doall_cipher dc;

	/* Prayer and clean living lets you ignore errors, OpenSSL style */
	(void) OPENSSL_init_crypto(0, NULL);

	dc.fn = fn;
	dc.arg = arg;
	OBJ_NAME_do_all_sorted(OBJ_NAME_TYPE_CIPHER_METH,
	    do_all_cipher_fn, &dc);
}

203
204
205
206
207
208
209



210
211
212
213
214
215
216
217
218
219



220
221
222
223
224

void
EVP_MD_do_all(void (*fn)(const EVP_MD *md, const char *from, const char *to,
    void *x), void *arg)
{
	struct doall_md dc;




	dc.fn = fn;
	dc.arg = arg;
	OBJ_NAME_do_all(OBJ_NAME_TYPE_MD_METH, do_all_md_fn, &dc);
}

void
EVP_MD_do_all_sorted(void (*fn)(const EVP_MD *md,
    const char *from, const char *to, void *x), void *arg)
{
	struct doall_md dc;




	dc.fn = fn;
	dc.arg = arg;
	OBJ_NAME_do_all_sorted(OBJ_NAME_TYPE_MD_METH, do_all_md_fn, &dc);
}







>
>
>










>
>
>





215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242

void
EVP_MD_do_all(void (*fn)(const EVP_MD *md, const char *from, const char *to,
    void *x), void *arg)
{
	struct doall_md dc;

	/* Prayer and clean living lets you ignore errors, OpenSSL style */
	(void) OPENSSL_init_crypto(0, NULL);

	dc.fn = fn;
	dc.arg = arg;
	OBJ_NAME_do_all(OBJ_NAME_TYPE_MD_METH, do_all_md_fn, &dc);
}

void
EVP_MD_do_all_sorted(void (*fn)(const EVP_MD *md,
    const char *from, const char *to, void *x), void *arg)
{
	struct doall_md dc;

	/* Prayer and clean living lets you ignore errors, OpenSSL style */
	(void) OPENSSL_init_crypto(0, NULL);

	dc.fn = fn;
	dc.arg = arg;
	OBJ_NAME_do_all_sorted(OBJ_NAME_TYPE_MD_METH, do_all_md_fn, &dc);
}
Changes to jni/libressl/crypto/ex_data.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: ex_data.c,v 1.19 2017/01/29 17:49:22 beck Exp $ */

/*
 * Overhaul notes;
 *
 * This code is now *mostly* thread-safe. It is now easier to understand in what
 * ways it is safe and in what ways it is not, which is an improvement. Firstly,
 * all per-class stacks and index-counters for ex_data are stored in the same
|







1
2
3
4
5
6
7
8
/* $OpenBSD: ex_data.c,v 1.20 2018/03/17 16:20:01 beck Exp $ */

/*
 * Overhaul notes;
 *
 * This code is now *mostly* thread-safe. It is now easier to understand in what
 * ways it is safe and in what ways it is not, which is an improvement. Firstly,
 * all per-class stacks and index-counters for ex_data are stored in the same
308
309
310
311
312
313
314


315
316
317
318
319
320
321
 * given class. Handles locking. */
static EX_CLASS_ITEM *
def_get_class(int class_index)
{
	EX_CLASS_ITEM d, *p, *gen;
	EX_DATA_CHECK(return NULL;)
	d.class_index = class_index;


	CRYPTO_w_lock(CRYPTO_LOCK_EX_DATA);
	p = lh_EX_CLASS_ITEM_retrieve(ex_data, &d);
	if (!p) {
		gen = malloc(sizeof(EX_CLASS_ITEM));
		if (gen) {
			gen->class_index = class_index;
			gen->meth_num = 0;







>
>







308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
 * given class. Handles locking. */
static EX_CLASS_ITEM *
def_get_class(int class_index)
{
	EX_CLASS_ITEM d, *p, *gen;
	EX_DATA_CHECK(return NULL;)
	d.class_index = class_index;
	if (!OPENSSL_init_crypto(0, NULL))
		return NULL;
	CRYPTO_w_lock(CRYPTO_LOCK_EX_DATA);
	p = lh_EX_CLASS_ITEM_retrieve(ex_data, &d);
	if (!p) {
		gen = malloc(sizeof(EX_CLASS_ITEM));
		if (gen) {
			gen->class_index = class_index;
			gen->meth_num = 0;
496
497
498
499
500
501
502

503
504
505
506
507
508
509
static void
int_free_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad)
{
	int mx, i;
	EX_CLASS_ITEM *item;
	void *ptr;
	CRYPTO_EX_DATA_FUNCS **storage = NULL;

	if ((item = def_get_class(class_index)) == NULL)
		return;
	CRYPTO_r_lock(CRYPTO_LOCK_EX_DATA);
	mx = sk_CRYPTO_EX_DATA_FUNCS_num(item->meth);
	if (mx > 0) {
		storage = reallocarray(NULL, mx, sizeof(CRYPTO_EX_DATA_FUNCS*));
		if (!storage)







>







498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
static void
int_free_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad)
{
	int mx, i;
	EX_CLASS_ITEM *item;
	void *ptr;
	CRYPTO_EX_DATA_FUNCS **storage = NULL;

	if ((item = def_get_class(class_index)) == NULL)
		return;
	CRYPTO_r_lock(CRYPTO_LOCK_EX_DATA);
	mx = sk_CRYPTO_EX_DATA_FUNCS_num(item->meth);
	if (mx > 0) {
		storage = reallocarray(NULL, mx, sizeof(CRYPTO_EX_DATA_FUNCS*));
		if (!storage)
Changes to jni/libressl/crypto/hmac/hmac.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: hmac.c,v 1.24 2017/03/03 10:39:07 inoguchi Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: hmac.c,v 1.25 2018/02/17 14:53:58 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
166
167
168
169
170
171
172
































173
174
175
176
177
178
179
		goto err;
	if (!EVP_DigestFinal_ex(&ctx->md_ctx, md, len))
		goto err;
	return 1;
err:
	return 0;
}

































void
HMAC_CTX_init(HMAC_CTX *ctx)
{
	EVP_MD_CTX_init(&ctx->i_ctx);
	EVP_MD_CTX_init(&ctx->o_ctx);
	EVP_MD_CTX_init(&ctx->md_ctx);







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
		goto err;
	if (!EVP_DigestFinal_ex(&ctx->md_ctx, md, len))
		goto err;
	return 1;
err:
	return 0;
}

HMAC_CTX *
HMAC_CTX_new(void)
{
	HMAC_CTX *ctx;

	if ((ctx = calloc(1, sizeof(*ctx))) == NULL)
		return NULL;

	HMAC_CTX_init(ctx);

	return ctx;
}

void
HMAC_CTX_free(HMAC_CTX *ctx)
{
	if (ctx == NULL)
		return;

	HMAC_CTX_cleanup(ctx);

	free(ctx);
}

int
HMAC_CTX_reset(HMAC_CTX *ctx)
{
	HMAC_CTX_cleanup(ctx);
	HMAC_CTX_init(ctx);
	return 1;
}

void
HMAC_CTX_init(HMAC_CTX *ctx)
{
	EVP_MD_CTX_init(&ctx->i_ctx);
	EVP_MD_CTX_init(&ctx->o_ctx);
	EVP_MD_CTX_init(&ctx->md_ctx);
201
202
203
204
205
206
207














208
209
210
211
212
213
214
HMAC_CTX_cleanup(HMAC_CTX *ctx)
{
	EVP_MD_CTX_cleanup(&ctx->i_ctx);
	EVP_MD_CTX_cleanup(&ctx->o_ctx);
	EVP_MD_CTX_cleanup(&ctx->md_ctx);
	explicit_bzero(ctx, sizeof(*ctx));
}















unsigned char *
HMAC(const EVP_MD *evp_md, const void *key, int key_len, const unsigned char *d,
    size_t n, unsigned char *md, unsigned int *md_len)
{
	HMAC_CTX c;
	static unsigned char m[EVP_MAX_MD_SIZE];







>
>
>
>
>
>
>
>
>
>
>
>
>
>







233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
HMAC_CTX_cleanup(HMAC_CTX *ctx)
{
	EVP_MD_CTX_cleanup(&ctx->i_ctx);
	EVP_MD_CTX_cleanup(&ctx->o_ctx);
	EVP_MD_CTX_cleanup(&ctx->md_ctx);
	explicit_bzero(ctx, sizeof(*ctx));
}

void
HMAC_CTX_set_flags(HMAC_CTX *ctx, unsigned long flags)
{
	EVP_MD_CTX_set_flags(&ctx->i_ctx, flags);
	EVP_MD_CTX_set_flags(&ctx->o_ctx, flags);
	EVP_MD_CTX_set_flags(&ctx->md_ctx, flags);
}

const EVP_MD *
HMAC_CTX_get_md(const HMAC_CTX *ctx)
{
	return ctx->md;
}

unsigned char *
HMAC(const EVP_MD *evp_md, const void *key, int key_len, const unsigned char *d,
    size_t n, unsigned char *md, unsigned int *md_len)
{
	HMAC_CTX c;
	static unsigned char m[EVP_MAX_MD_SIZE];
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
		goto err;
	HMAC_CTX_cleanup(&c);
	return md;
err:
	HMAC_CTX_cleanup(&c);
	return NULL;
}

void
HMAC_CTX_set_flags(HMAC_CTX *ctx, unsigned long flags)
{
	EVP_MD_CTX_set_flags(&ctx->i_ctx, flags);
	EVP_MD_CTX_set_flags(&ctx->o_ctx, flags);
	EVP_MD_CTX_set_flags(&ctx->md_ctx, flags);
}







<
<
<
<
<
<
<
<
270
271
272
273
274
275
276








		goto err;
	HMAC_CTX_cleanup(&c);
	return md;
err:
	HMAC_CTX_cleanup(&c);
	return NULL;
}








Changes to jni/libressl/crypto/md5/md5-elf-x86_64.S.
661
662
663
664
665
666
667
668
669
670
671
672
	movq	(%rsp),%r15
	movq	8(%rsp),%r14
	movq	16(%rsp),%r12
	movq	24(%rsp),%rbx
	movq	32(%rsp),%rbp
	addq	$40,%rsp
.Lepilogue:
	.byte	0xf3,0xc3
.size	md5_block_asm_data_order,.-md5_block_asm_data_order
#if defined(HAVE_GNU_STACK)
.section .note.GNU-stack,"",%progbits
#endif







|




661
662
663
664
665
666
667
668
669
670
671
672
	movq	(%rsp),%r15
	movq	8(%rsp),%r14
	movq	16(%rsp),%r12
	movq	24(%rsp),%rbx
	movq	32(%rsp),%rbp
	addq	$40,%rsp
.Lepilogue:
	retq
.size	md5_block_asm_data_order,.-md5_block_asm_data_order
#if defined(HAVE_GNU_STACK)
.section .note.GNU-stack,"",%progbits
#endif
Changes to jni/libressl/crypto/md5/md5-macosx-x86_64.S.
661
662
663
664
665
666
667
668
669
	movq	(%rsp),%r15
	movq	8(%rsp),%r14
	movq	16(%rsp),%r12
	movq	24(%rsp),%rbx
	movq	32(%rsp),%rbp
	addq	$40,%rsp
L$epilogue:
	.byte	0xf3,0xc3








|

661
662
663
664
665
666
667
668
669
	movq	(%rsp),%r15
	movq	8(%rsp),%r14
	movq	16(%rsp),%r12
	movq	24(%rsp),%rbx
	movq	32(%rsp),%rbp
	addq	$40,%rsp
L$epilogue:
	retq

Changes to jni/libressl/crypto/modes/gcm128.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: gcm128.c,v 1.20 2017/09/03 13:07:34 inoguchi Exp $ */
/* ====================================================================
 * Copyright (c) 2010 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: gcm128.c,v 1.22 2018/01/24 23:03:37 kettenis Exp $ */
/* ====================================================================
 * Copyright (c) 2010 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
void gcm_ghash_4bit_mmx(u64 Xi[2],const u128 Htable[16],const u8 *inp,size_t len);

void gcm_gmult_4bit_x86(u64 Xi[2],const u128 Htable[16]);
void gcm_ghash_4bit_x86(u64 Xi[2],const u128 Htable[16],const u8 *inp,size_t len);
#  endif
# elif defined(__arm__) || defined(__arm)
#  include "arm_arch.h"
#  if __ARM_ARCH__>=7
#   define GHASH_ASM_ARM
#   define GCM_FUNCREF_4BIT
void gcm_gmult_neon(u64 Xi[2],const u128 Htable[16]);
void gcm_ghash_neon(u64 Xi[2],const u128 Htable[16],const u8 *inp,size_t len);
#  endif
# endif
#endif







|







657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
void gcm_ghash_4bit_mmx(u64 Xi[2],const u128 Htable[16],const u8 *inp,size_t len);

void gcm_gmult_4bit_x86(u64 Xi[2],const u128 Htable[16]);
void gcm_ghash_4bit_x86(u64 Xi[2],const u128 Htable[16],const u8 *inp,size_t len);
#  endif
# elif defined(__arm__) || defined(__arm)
#  include "arm_arch.h"
#  if __ARM_ARCH__>=7 && !defined(__STRICT_ALIGNMENT)
#   define GHASH_ASM_ARM
#   define GCM_FUNCREF_4BIT
void gcm_gmult_neon(u64 Xi[2],const u128 Htable[16]);
void gcm_ghash_neon(u64 Xi[2],const u128 Htable[16],const u8 *inp,size_t len);
#  endif
# endif
#endif
1511
1512
1513
1514
1515
1516
1517

1518
1519
1520
1521
1522
1523
1524

1525
1526
1527
1528
1529
1530
1531
		GCM_MUL(ctx,Xi);

#if BYTE_ORDER == LITTLE_ENDIAN
#ifdef BSWAP8
	alen = BSWAP8(alen);
	clen = BSWAP8(clen);
#else

	u8 *p = ctx->len.c;

	ctx->len.u[0] = alen;
	ctx->len.u[1] = clen;

	alen = (u64)GETU32(p)  <<32|GETU32(p+4);
	clen = (u64)GETU32(p+8)<<32|GETU32(p+12);

#endif
#endif

	ctx->Xi.u[0] ^= alen;
	ctx->Xi.u[1] ^= clen;
	GCM_MUL(ctx,Xi);








>
|

|
|

|
|
>







1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
		GCM_MUL(ctx,Xi);

#if BYTE_ORDER == LITTLE_ENDIAN
#ifdef BSWAP8
	alen = BSWAP8(alen);
	clen = BSWAP8(clen);
#else
	{
		u8 *p = ctx->len.c;

		ctx->len.u[0] = alen;
		ctx->len.u[1] = clen;

		alen = (u64)GETU32(p)  <<32|GETU32(p+4);
		clen = (u64)GETU32(p+8)<<32|GETU32(p+12);
	}
#endif
#endif

	ctx->Xi.u[0] ^= alen;
	ctx->Xi.u[1] ^= clen;
	GCM_MUL(ctx,Xi);

Changes to jni/libressl/crypto/modes/ghash-elf-x86_64.S.
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
	bswapq	%r9
	movq	%r8,8(%rdi)
	movq	%r9,(%rdi)

	movq	16(%rsp),%rbx
	leaq	24(%rsp),%rsp
.Lgmult_epilogue:
	.byte	0xf3,0xc3
.size	gcm_gmult_4bit,.-gcm_gmult_4bit
.globl	gcm_ghash_4bit
.type	gcm_ghash_4bit,@function
.align	16
gcm_ghash_4bit:
	pushq	%rbx
	pushq	%rbp







|







83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
	bswapq	%r9
	movq	%r8,8(%rdi)
	movq	%r9,(%rdi)

	movq	16(%rsp),%rbx
	leaq	24(%rsp),%rsp
.Lgmult_epilogue:
	retq
.size	gcm_gmult_4bit,.-gcm_gmult_4bit
.globl	gcm_ghash_4bit
.type	gcm_ghash_4bit,@function
.align	16
gcm_ghash_4bit:
	pushq	%rbx
	pushq	%rbp
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
.Lghash_epilogue:
	.byte	0xf3,0xc3
.size	gcm_ghash_4bit,.-gcm_ghash_4bit
.globl	gcm_init_clmul
.type	gcm_init_clmul,@function
.align	16
gcm_init_clmul:
	movdqu	(%rsi),%xmm2
	pshufd	$78,%xmm2,%xmm2







|







649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
.Lghash_epilogue:
	retq
.size	gcm_ghash_4bit,.-gcm_ghash_4bit
.globl	gcm_init_clmul
.type	gcm_init_clmul,@function
.align	16
gcm_init_clmul:
	movdqu	(%rsi),%xmm2
	pshufd	$78,%xmm2,%xmm2
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
	psrlq	$1,%xmm0
	pxor	%xmm4,%xmm0
	pxor	%xmm1,%xmm4
	psrlq	$1,%xmm0
	pxor	%xmm4,%xmm0
	movdqu	%xmm2,(%rdi)
	movdqu	%xmm0,16(%rdi)
	.byte	0xf3,0xc3
.size	gcm_init_clmul,.-gcm_init_clmul
.globl	gcm_gmult_clmul
.type	gcm_gmult_clmul,@function
.align	16
gcm_gmult_clmul:
	movdqu	(%rdi),%xmm0
	movdqa	.Lbswap_mask(%rip),%xmm5







|







714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
	psrlq	$1,%xmm0
	pxor	%xmm4,%xmm0
	pxor	%xmm1,%xmm4
	psrlq	$1,%xmm0
	pxor	%xmm4,%xmm0
	movdqu	%xmm2,(%rdi)
	movdqu	%xmm0,16(%rdi)
	retq
.size	gcm_init_clmul,.-gcm_init_clmul
.globl	gcm_gmult_clmul
.type	gcm_gmult_clmul,@function
.align	16
gcm_gmult_clmul:
	movdqu	(%rdi),%xmm0
	movdqa	.Lbswap_mask(%rip),%xmm5
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
	psrlq	$1,%xmm0
	pxor	%xmm4,%xmm0
	pxor	%xmm1,%xmm4
	psrlq	$1,%xmm0
	pxor	%xmm4,%xmm0
.byte	102,15,56,0,197
	movdqu	%xmm0,(%rdi)
	.byte	0xf3,0xc3
.size	gcm_gmult_clmul,.-gcm_gmult_clmul
.globl	gcm_ghash_clmul
.type	gcm_ghash_clmul,@function
.align	16
gcm_ghash_clmul:
	movdqa	.Lbswap_mask(%rip),%xmm5








|







764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
	psrlq	$1,%xmm0
	pxor	%xmm4,%xmm0
	pxor	%xmm1,%xmm4
	psrlq	$1,%xmm0
	pxor	%xmm4,%xmm0
.byte	102,15,56,0,197
	movdqu	%xmm0,(%rdi)
	retq
.size	gcm_gmult_clmul,.-gcm_gmult_clmul
.globl	gcm_ghash_clmul
.type	gcm_ghash_clmul,@function
.align	16
gcm_ghash_clmul:
	movdqa	.Lbswap_mask(%rip),%xmm5

969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
	pxor	%xmm4,%xmm0
	pxor	%xmm1,%xmm4
	psrlq	$1,%xmm0
	pxor	%xmm4,%xmm0
.Ldone:
.byte	102,15,56,0,197
	movdqu	%xmm0,(%rdi)
	.byte	0xf3,0xc3
.LSEH_end_gcm_ghash_clmul:
.size	gcm_ghash_clmul,.-gcm_ghash_clmul
.align	64
.Lbswap_mask:
.byte	15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
.L0x1c2_polynomial:
.byte	1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc2







|







969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
	pxor	%xmm4,%xmm0
	pxor	%xmm1,%xmm4
	psrlq	$1,%xmm0
	pxor	%xmm4,%xmm0
.Ldone:
.byte	102,15,56,0,197
	movdqu	%xmm0,(%rdi)
	retq
.LSEH_end_gcm_ghash_clmul:
.size	gcm_ghash_clmul,.-gcm_ghash_clmul
.align	64
.Lbswap_mask:
.byte	15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
.L0x1c2_polynomial:
.byte	1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc2
Changes to jni/libressl/crypto/modes/ghash-macosx-x86_64.S.
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
	bswapq	%r9
	movq	%r8,8(%rdi)
	movq	%r9,(%rdi)

	movq	16(%rsp),%rbx
	leaq	24(%rsp),%rsp
L$gmult_epilogue:
	.byte	0xf3,0xc3

.globl	_gcm_ghash_4bit

.p2align	4
_gcm_ghash_4bit:
	pushq	%rbx
	pushq	%rbp







|







83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
	bswapq	%r9
	movq	%r8,8(%rdi)
	movq	%r9,(%rdi)

	movq	16(%rsp),%rbx
	leaq	24(%rsp),%rsp
L$gmult_epilogue:
	retq

.globl	_gcm_ghash_4bit

.p2align	4
_gcm_ghash_4bit:
	pushq	%rbx
	pushq	%rbp
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
L$ghash_epilogue:
	.byte	0xf3,0xc3

.globl	_gcm_init_clmul

.p2align	4
_gcm_init_clmul:
	movdqu	(%rsi),%xmm2
	pshufd	$78,%xmm2,%xmm2







|







649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
L$ghash_epilogue:
	retq

.globl	_gcm_init_clmul

.p2align	4
_gcm_init_clmul:
	movdqu	(%rsi),%xmm2
	pshufd	$78,%xmm2,%xmm2
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
	psrlq	$1,%xmm0
	pxor	%xmm4,%xmm0
	pxor	%xmm1,%xmm4
	psrlq	$1,%xmm0
	pxor	%xmm4,%xmm0
	movdqu	%xmm2,(%rdi)
	movdqu	%xmm0,16(%rdi)
	.byte	0xf3,0xc3

.globl	_gcm_gmult_clmul

.p2align	4
_gcm_gmult_clmul:
	movdqu	(%rdi),%xmm0
	movdqa	L$bswap_mask(%rip),%xmm5







|







714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
	psrlq	$1,%xmm0
	pxor	%xmm4,%xmm0
	pxor	%xmm1,%xmm4
	psrlq	$1,%xmm0
	pxor	%xmm4,%xmm0
	movdqu	%xmm2,(%rdi)
	movdqu	%xmm0,16(%rdi)
	retq

.globl	_gcm_gmult_clmul

.p2align	4
_gcm_gmult_clmul:
	movdqu	(%rdi),%xmm0
	movdqa	L$bswap_mask(%rip),%xmm5
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
	psrlq	$1,%xmm0
	pxor	%xmm4,%xmm0
	pxor	%xmm1,%xmm4
	psrlq	$1,%xmm0
	pxor	%xmm4,%xmm0
.byte	102,15,56,0,197
	movdqu	%xmm0,(%rdi)
	.byte	0xf3,0xc3

.globl	_gcm_ghash_clmul

.p2align	4
_gcm_ghash_clmul:
	movdqa	L$bswap_mask(%rip),%xmm5








|







764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
	psrlq	$1,%xmm0
	pxor	%xmm4,%xmm0
	pxor	%xmm1,%xmm4
	psrlq	$1,%xmm0
	pxor	%xmm4,%xmm0
.byte	102,15,56,0,197
	movdqu	%xmm0,(%rdi)
	retq

.globl	_gcm_ghash_clmul

.p2align	4
_gcm_ghash_clmul:
	movdqa	L$bswap_mask(%rip),%xmm5

969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
	pxor	%xmm4,%xmm0
	pxor	%xmm1,%xmm4
	psrlq	$1,%xmm0
	pxor	%xmm4,%xmm0
L$done:
.byte	102,15,56,0,197
	movdqu	%xmm0,(%rdi)
	.byte	0xf3,0xc3
L$SEH_end_gcm_ghash_clmul:

.p2align	6
L$bswap_mask:
.byte	15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
L$0x1c2_polynomial:
.byte	1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc2







|







969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
	pxor	%xmm4,%xmm0
	pxor	%xmm1,%xmm4
	psrlq	$1,%xmm0
	pxor	%xmm4,%xmm0
L$done:
.byte	102,15,56,0,197
	movdqu	%xmm0,(%rdi)
	retq
L$SEH_end_gcm_ghash_clmul:

.p2align	6
L$bswap_mask:
.byte	15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
L$0x1c2_polynomial:
.byte	1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc2
Changes to jni/libressl/crypto/objects/obj_dat.h.
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
 * 
 * The licence and distribution terms for any publically available version or
 * derivative of this code cannot be changed.  i.e. this code cannot simply be
 * copied and put under another distribution licence
 * [including the GNU Public Licence.]
 */

#define NUM_NID 959
#define NUM_SN 952
#define NUM_LN 952
#define NUM_OBJ 893

static const unsigned char lvalues[6250]={
0x2A,0x86,0x48,0x86,0xF7,0x0D,               /* [  0] OBJ_rsadsi */
0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,          /* [  6] OBJ_pkcs */
0x2A,0x86,0x48,0x86,0xF7,0x0D,0x02,0x02,     /* [ 13] OBJ_md2 */
0x2A,0x86,0x48,0x86,0xF7,0x0D,0x02,0x05,     /* [ 21] OBJ_md5 */







|
|
|







58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
 * 
 * The licence and distribution terms for any publically available version or
 * derivative of this code cannot be changed.  i.e. this code cannot simply be
 * copied and put under another distribution licence
 * [including the GNU Public Licence.]
 */

#define NUM_NID 968
#define NUM_SN 961
#define NUM_LN 961
#define NUM_OBJ 893

static const unsigned char lvalues[6250]={
0x2A,0x86,0x48,0x86,0xF7,0x0D,               /* [  0] OBJ_rsadsi */
0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,          /* [  6] OBJ_pkcs */
0x2A,0x86,0x48,0x86,0xF7,0x0D,0x02,0x02,     /* [ 13] OBJ_md2 */
0x2A,0x86,0x48,0x86,0xF7,0x0D,0x02,0x05,     /* [ 21] OBJ_md5 */
2500
2501
2502
2503
2504
2505
2506









2507
2508
2509
2510
2511
2512
2513
{"Ed448ph","Ed448ph",NID_Ed448ph,3,&(lvalues[6213]),0},
{"jurisdictionLocalityName","jurisdictionLocalityName",
	NID_jurisdictionLocalityName,11,&(lvalues[6216]),0},
{"jurisdictionStateOrProvinceName","jurisdictionStateOrProvinceName",
	NID_jurisdictionStateOrProvinceName,11,&(lvalues[6227]),0},
{"jurisdictionCountryName","jurisdictionCountryName",
	NID_jurisdictionCountryName,11,&(lvalues[6238]),0},









};

static const unsigned int sn_objs[NUM_SN]={
364,	/* "AD_DVCS" */
419,	/* "AES-128-CBC" */
916,	/* "AES-128-CBC-HMAC-SHA1" */
421,	/* "AES-128-CFB" */







>
>
>
>
>
>
>
>
>







2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
{"Ed448ph","Ed448ph",NID_Ed448ph,3,&(lvalues[6213]),0},
{"jurisdictionLocalityName","jurisdictionLocalityName",
	NID_jurisdictionLocalityName,11,&(lvalues[6216]),0},
{"jurisdictionStateOrProvinceName","jurisdictionStateOrProvinceName",
	NID_jurisdictionStateOrProvinceName,11,&(lvalues[6227]),0},
{"jurisdictionCountryName","jurisdictionCountryName",
	NID_jurisdictionCountryName,11,&(lvalues[6238]),0},
{"KxRSA","kx-rsa",NID_kx_rsa,0,NULL,0},
{"KxECDHE","kx-ecdhe",NID_kx_ecdhe,0,NULL,0},
{"KxDHE","kx-dhe",NID_kx_dhe,0,NULL,0},
{"KxGOST","kx-gost",NID_kx_gost,0,NULL,0},
{"AuthRSA","auth-rsa",NID_auth_rsa,0,NULL,0},
{"AuthECDSA","auth-ecdsa",NID_auth_ecdsa,0,NULL,0},
{"AuthGOST01","auth-gost01",NID_auth_gost01,0,NULL,0},
{"AuthNULL","auth-null",NID_auth_null,0,NULL,0},
{"ChaCha20-Poly1305","chacha20-poly1305",NID_chacha20_poly1305,0,NULL,0},
};

static const unsigned int sn_objs[NUM_SN]={
364,	/* "AD_DVCS" */
419,	/* "AES-128-CBC" */
916,	/* "AES-128-CBC-HMAC-SHA1" */
421,	/* "AES-128-CFB" */
2530
2531
2532
2533
2534
2535
2536




2537
2538
2539
2540
2541
2542
2543
429,	/* "AES-256-CFB" */
652,	/* "AES-256-CFB1" */
655,	/* "AES-256-CFB8" */
906,	/* "AES-256-CTR" */
426,	/* "AES-256-ECB" */
428,	/* "AES-256-OFB" */
914,	/* "AES-256-XTS" */




91,	/* "BF-CBC" */
93,	/* "BF-CFB" */
92,	/* "BF-ECB" */
94,	/* "BF-OFB" */
14,	/* "C" */
751,	/* "CAMELLIA-128-CBC" */
757,	/* "CAMELLIA-128-CFB" */







>
>
>
>







2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
429,	/* "AES-256-CFB" */
652,	/* "AES-256-CFB1" */
655,	/* "AES-256-CFB8" */
906,	/* "AES-256-CTR" */
426,	/* "AES-256-ECB" */
428,	/* "AES-256-OFB" */
914,	/* "AES-256-XTS" */
964,	/* "AuthECDSA" */
965,	/* "AuthGOST01" */
966,	/* "AuthNULL" */
963,	/* "AuthRSA" */
91,	/* "BF-CBC" */
93,	/* "BF-CFB" */
92,	/* "BF-ECB" */
94,	/* "BF-OFB" */
14,	/* "C" */
751,	/* "CAMELLIA-128-CBC" */
757,	/* "CAMELLIA-128-CFB" */
2562
2563
2564
2565
2566
2567
2568

2569
2570
2571
2572
2573
2574
2575
109,	/* "CAST5-ECB" */
111,	/* "CAST5-OFB" */
894,	/* "CMAC" */
13,	/* "CN" */
141,	/* "CRLReason" */
417,	/* "CSPName" */
937,	/* "ChaCha" */

367,	/* "CrlID" */
391,	/* "DC" */
31,	/* "DES-CBC" */
643,	/* "DES-CDMF" */
30,	/* "DES-CFB" */
656,	/* "DES-CFB1" */
657,	/* "DES-CFB8" */







>







2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
109,	/* "CAST5-ECB" */
111,	/* "CAST5-OFB" */
894,	/* "CMAC" */
13,	/* "CN" */
141,	/* "CRLReason" */
417,	/* "CSPName" */
937,	/* "ChaCha" */
967,	/* "ChaCha20-Poly1305" */
367,	/* "CrlID" */
391,	/* "DC" */
31,	/* "DES-CBC" */
643,	/* "DES-CDMF" */
30,	/* "DES-CFB" */
656,	/* "DES-CFB1" */
657,	/* "DES-CFB8" */
2608
2609
2610
2611
2612
2613
2614




2615
2616
2617
2618
2619
2620
2621
36,	/* "IDEA-ECB" */
46,	/* "IDEA-OFB" */
181,	/* "ISO" */
183,	/* "ISO-US" */
645,	/* "ITU-T" */
646,	/* "JOINT-ISO-ITU-T" */
773,	/* "KISA" */




15,	/* "L" */
856,	/* "LocalKeySet" */
 3,	/* "MD2" */
257,	/* "MD4" */
 4,	/* "MD5" */
114,	/* "MD5-SHA1" */
95,	/* "MDC2" */







>
>
>
>







2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
36,	/* "IDEA-ECB" */
46,	/* "IDEA-OFB" */
181,	/* "ISO" */
183,	/* "ISO-US" */
645,	/* "ITU-T" */
646,	/* "JOINT-ISO-ITU-T" */
773,	/* "KISA" */
961,	/* "KxDHE" */
960,	/* "KxECDHE" */
962,	/* "KxGOST" */
959,	/* "KxRSA" */
15,	/* "L" */
856,	/* "LocalKeySet" */
 3,	/* "MD2" */
257,	/* "MD4" */
 4,	/* "MD5" */
114,	/* "MD5-SHA1" */
95,	/* "MDC2" */
3650
3651
3652
3653
3654
3655
3656




3657
3658
3659
3660
3661
3662
3663
901,	/* "aes-256-gcm" */
428,	/* "aes-256-ofb" */
914,	/* "aes-256-xts" */
376,	/* "algorithm" */
484,	/* "associatedDomain" */
485,	/* "associatedName" */
501,	/* "audio" */




882,	/* "authorityRevocationList" */
91,	/* "bf-cbc" */
93,	/* "bf-cfb" */
92,	/* "bf-ecb" */
94,	/* "bf-ofb" */
921,	/* "brainpool" */
922,	/* "brainpoolP160r1" */







>
>
>
>







3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
901,	/* "aes-256-gcm" */
428,	/* "aes-256-ofb" */
914,	/* "aes-256-xts" */
376,	/* "algorithm" */
484,	/* "associatedDomain" */
485,	/* "associatedName" */
501,	/* "audio" */
964,	/* "auth-ecdsa" */
965,	/* "auth-gost01" */
966,	/* "auth-null" */
963,	/* "auth-rsa" */
882,	/* "authorityRevocationList" */
91,	/* "bf-cbc" */
93,	/* "bf-cfb" */
92,	/* "bf-ecb" */
94,	/* "bf-ofb" */
921,	/* "brainpool" */
922,	/* "brainpoolP160r1" */
3722
3723
3724
3725
3726
3727
3728

3729
3730
3731
3732
3733
3734
3735
109,	/* "cast5-ecb" */
111,	/* "cast5-ofb" */
152,	/* "certBag" */
677,	/* "certicom-arc" */
517,	/* "certificate extensions" */
883,	/* "certificateRevocationList" */
937,	/* "chacha" */

54,	/* "challengePassword" */
407,	/* "characteristic-two-field" */
395,	/* "clearance" */
633,	/* "cleartext track 2" */
894,	/* "cmac" */
13,	/* "commonName" */
513,	/* "content types" */







>







3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
109,	/* "cast5-ecb" */
111,	/* "cast5-ofb" */
152,	/* "certBag" */
677,	/* "certicom-arc" */
517,	/* "certificate extensions" */
883,	/* "certificateRevocationList" */
937,	/* "chacha" */
967,	/* "chacha20-poly1305" */
54,	/* "challengePassword" */
407,	/* "characteristic-two-field" */
395,	/* "clearance" */
633,	/* "cleartext track 2" */
894,	/* "cmac" */
13,	/* "commonName" */
513,	/* "content types" */
4060
4061
4062
4063
4064
4065
4066




4067
4068
4069
4070
4071
4072
4073
492,	/* "janetMailbox" */
646,	/* "joint-iso-itu-t" */
958,	/* "jurisdictionCountryName" */
956,	/* "jurisdictionLocalityName" */
957,	/* "jurisdictionStateOrProvinceName" */
150,	/* "keyBag" */
773,	/* "kisa" */




477,	/* "lastModifiedBy" */
476,	/* "lastModifiedTime" */
157,	/* "localKeyID" */
15,	/* "localityName" */
480,	/* "mXRecord" */
493,	/* "mailPreferenceOption" */
467,	/* "manager" */







>
>
>
>







4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
492,	/* "janetMailbox" */
646,	/* "joint-iso-itu-t" */
958,	/* "jurisdictionCountryName" */
956,	/* "jurisdictionLocalityName" */
957,	/* "jurisdictionStateOrProvinceName" */
150,	/* "keyBag" */
773,	/* "kisa" */
961,	/* "kx-dhe" */
960,	/* "kx-ecdhe" */
962,	/* "kx-gost" */
959,	/* "kx-rsa" */
477,	/* "lastModifiedBy" */
476,	/* "lastModifiedTime" */
157,	/* "localKeyID" */
15,	/* "localityName" */
480,	/* "mXRecord" */
493,	/* "mailPreferenceOption" */
467,	/* "manager" */
Changes to jni/libressl/crypto/ocsp/ocsp_cl.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: ocsp_cl.c,v 1.14 2017/01/29 17:49:23 beck Exp $ */
/* Written by Tom Titchener <Tom_Titchener@groove.net> for the OpenSSL
 * project. */

/* History:
   This file was transfered to Richard Levitte from CertCo by Kathy
   Weinhold in mid-spring 2000 to be included in OpenSSL or released
   as a patch kit. */
|







1
2
3
4
5
6
7
8
/* $OpenBSD: ocsp_cl.c,v 1.15 2018/03/17 14:44:34 jsing Exp $ */
/* Written by Tom Titchener <Tom_Titchener@groove.net> for the OpenSSL
 * project. */

/* History:
   This file was transfered to Richard Levitte from CertCo by Kathy
   Weinhold in mid-spring 2000 to be included in OpenSSL or released
   as a patch kit. */
386
387
388
389
390
391
392






	if (ASN1_time_tm_cmp(&tm_next, &tm_this) < 0) {
		OCSPerror(OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE);
		return 0;
	}

	return 1;
}













>
>
>
>
>
>
386
387
388
389
390
391
392
393
394
395
396
397
398
	if (ASN1_time_tm_cmp(&tm_next, &tm_this) < 0) {
		OCSPerror(OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE);
		return 0;
	}

	return 1;
}

const OCSP_CERTID *
OCSP_SINGLERESP_get0_id(const OCSP_SINGLERESP *single)
{
	return single->certId;
}
Changes to jni/libressl/crypto/rc4/rc4-elf-x86_64.S.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "x86_arch.h"
.text	

.hidden	OPENSSL_ia32cap_P

.globl	RC4
.type	RC4,@function
.align	16
RC4:	orq	%rsi,%rsi
	jne	.Lentry
	.byte	0xf3,0xc3
.Lentry:
	pushq	%rbx
	pushq	%r12
	pushq	%r13
.Lprologue:
	movq	%rsi,%r11
	movq	%rdx,%r12










|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "x86_arch.h"
.text	

.hidden	OPENSSL_ia32cap_P

.globl	RC4
.type	RC4,@function
.align	16
RC4:	orq	%rsi,%rsi
	jne	.Lentry
	retq
.Lentry:
	pushq	%rbx
	pushq	%r12
	pushq	%r13
.Lprologue:
	movq	%rsi,%r11
	movq	%rdx,%r12
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
	movl	%ecx,-4(%rdi)

	movq	(%rsp),%r13
	movq	8(%rsp),%r12
	movq	16(%rsp),%rbx
	addq	$24,%rsp
.Lepilogue:
	.byte	0xf3,0xc3
.size	RC4,.-RC4
.globl	RC4_set_key
.type	RC4_set_key,@function
.align	16
RC4_set_key:
	leaq	8(%rdi),%rdi
	leaq	(%rdx,%rsi,1),%rdx







|







513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
	movl	%ecx,-4(%rdi)

	movq	(%rsp),%r13
	movq	8(%rsp),%r12
	movq	16(%rsp),%rbx
	addq	$24,%rsp
.Lepilogue:
	retq
.size	RC4,.-RC4
.globl	RC4_set_key
.type	RC4_set_key,@function
.align	16
RC4_set_key:
	leaq	8(%rdi),%rdi
	leaq	(%rdx,%rsi,1),%rdx
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
	movl	$-1,256(%rdi)

.align	16
.Lexit_key:
	xorl	%eax,%eax
	movl	%eax,-8(%rdi)
	movl	%eax,-4(%rdi)
	.byte	0xf3,0xc3
.size	RC4_set_key,.-RC4_set_key

.globl	RC4_options
.type	RC4_options,@function
.align	16
RC4_options:
	leaq	.Lopts(%rip),%rax
	movl	OPENSSL_ia32cap_P(%rip),%edx
	btl	$IA32CAP_BIT0_INTELP4,%edx
	jc	.L8xchar
	btl	$IA32CAP_BIT0_INTEL,%edx
	jnc	.Ldone
	addq	$25,%rax
	.byte	0xf3,0xc3
.L8xchar:
	addq	$12,%rax
.Ldone:
	.byte	0xf3,0xc3
.align	64
.Lopts:
.byte	114,99,52,40,56,120,44,105,110,116,41,0
.byte	114,99,52,40,56,120,44,99,104,97,114,41,0
.byte	114,99,52,40,49,54,120,44,105,110,116,41,0
.byte	82,67,52,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.align	64
.size	RC4_options,.-RC4_options
#if defined(HAVE_GNU_STACK)
.section .note.GNU-stack,"",%progbits
#endif







|













|



|











584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
	movl	$-1,256(%rdi)

.align	16
.Lexit_key:
	xorl	%eax,%eax
	movl	%eax,-8(%rdi)
	movl	%eax,-4(%rdi)
	retq
.size	RC4_set_key,.-RC4_set_key

.globl	RC4_options
.type	RC4_options,@function
.align	16
RC4_options:
	leaq	.Lopts(%rip),%rax
	movl	OPENSSL_ia32cap_P(%rip),%edx
	btl	$IA32CAP_BIT0_INTELP4,%edx
	jc	.L8xchar
	btl	$IA32CAP_BIT0_INTEL,%edx
	jnc	.Ldone
	addq	$25,%rax
	retq
.L8xchar:
	addq	$12,%rax
.Ldone:
	retq
.align	64
.Lopts:
.byte	114,99,52,40,56,120,44,105,110,116,41,0
.byte	114,99,52,40,56,120,44,99,104,97,114,41,0
.byte	114,99,52,40,49,54,120,44,105,110,116,41,0
.byte	82,67,52,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.align	64
.size	RC4_options,.-RC4_options
#if defined(HAVE_GNU_STACK)
.section .note.GNU-stack,"",%progbits
#endif
Changes to jni/libressl/crypto/rc4/rc4-macosx-x86_64.S.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "x86_arch.h"
.text	

.private_extern	_OPENSSL_ia32cap_P

.globl	_RC4

.p2align	4
_RC4:	orq	%rsi,%rsi
	jne	L$entry
	.byte	0xf3,0xc3
L$entry:
	pushq	%rbx
	pushq	%r12
	pushq	%r13
L$prologue:
	movq	%rsi,%r11
	movq	%rdx,%r12










|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "x86_arch.h"
.text	

.private_extern	_OPENSSL_ia32cap_P

.globl	_RC4

.p2align	4
_RC4:	orq	%rsi,%rsi
	jne	L$entry
	retq
L$entry:
	pushq	%rbx
	pushq	%r12
	pushq	%r13
L$prologue:
	movq	%rsi,%r11
	movq	%rdx,%r12
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
	movl	%ecx,-4(%rdi)

	movq	(%rsp),%r13
	movq	8(%rsp),%r12
	movq	16(%rsp),%rbx
	addq	$24,%rsp
L$epilogue:
	.byte	0xf3,0xc3

.globl	_RC4_set_key

.p2align	4
_RC4_set_key:
	leaq	8(%rdi),%rdi
	leaq	(%rdx,%rsi,1),%rdx







|







513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
	movl	%ecx,-4(%rdi)

	movq	(%rsp),%r13
	movq	8(%rsp),%r12
	movq	16(%rsp),%rbx
	addq	$24,%rsp
L$epilogue:
	retq

.globl	_RC4_set_key

.p2align	4
_RC4_set_key:
	leaq	8(%rdi),%rdi
	leaq	(%rdx,%rsi,1),%rdx
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
	movl	$-1,256(%rdi)

.p2align	4
L$exit_key:
	xorl	%eax,%eax
	movl	%eax,-8(%rdi)
	movl	%eax,-4(%rdi)
	.byte	0xf3,0xc3


.globl	_RC4_options

.p2align	4
_RC4_options:
	leaq	L$opts(%rip),%rax
	movl	_OPENSSL_ia32cap_P(%rip),%edx
	btl	$IA32CAP_BIT0_INTELP4,%edx
	jc	L$8xchar
	btl	$IA32CAP_BIT0_INTEL,%edx
	jnc	L$done
	addq	$25,%rax
	.byte	0xf3,0xc3
L$8xchar:
	addq	$12,%rax
L$done:
	.byte	0xf3,0xc3
.p2align	6
L$opts:
.byte	114,99,52,40,56,120,44,105,110,116,41,0
.byte	114,99,52,40,56,120,44,99,104,97,114,41,0
.byte	114,99,52,40,49,54,120,44,105,110,116,41,0
.byte	82,67,52,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.p2align	6








|













|



|








584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
	movl	$-1,256(%rdi)

.p2align	4
L$exit_key:
	xorl	%eax,%eax
	movl	%eax,-8(%rdi)
	movl	%eax,-4(%rdi)
	retq


.globl	_RC4_options

.p2align	4
_RC4_options:
	leaq	L$opts(%rip),%rax
	movl	_OPENSSL_ia32cap_P(%rip),%edx
	btl	$IA32CAP_BIT0_INTELP4,%edx
	jc	L$8xchar
	btl	$IA32CAP_BIT0_INTEL,%edx
	jnc	L$done
	addq	$25,%rax
	retq
L$8xchar:
	addq	$12,%rax
L$done:
	retq
.p2align	6
L$opts:
.byte	114,99,52,40,56,120,44,105,110,116,41,0
.byte	114,99,52,40,56,120,44,99,104,97,114,41,0
.byte	114,99,52,40,49,54,120,44,105,110,116,41,0
.byte	82,67,52,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.p2align	6

Changes to jni/libressl/crypto/rc4/rc4-md5-elf-x86_64.S.
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
	movq	56(%rsp),%r13
	movq	64(%rsp),%r12
	movq	72(%rsp),%rbp
	movq	80(%rsp),%rbx
	leaq	88(%rsp),%rsp
.Lepilogue:
.Labort:
	.byte	0xf3,0xc3
.size	rc4_md5_enc,.-rc4_md5_enc
#if defined(HAVE_GNU_STACK)
.section .note.GNU-stack,"",%progbits
#endif







|




1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
	movq	56(%rsp),%r13
	movq	64(%rsp),%r12
	movq	72(%rsp),%rbp
	movq	80(%rsp),%rbx
	leaq	88(%rsp),%rsp
.Lepilogue:
.Labort:
	retq
.size	rc4_md5_enc,.-rc4_md5_enc
#if defined(HAVE_GNU_STACK)
.section .note.GNU-stack,"",%progbits
#endif
Changes to jni/libressl/crypto/rc4/rc4-md5-macosx-x86_64.S.
1252
1253
1254
1255
1256
1257
1258
1259
1260
	movq	56(%rsp),%r13
	movq	64(%rsp),%r12
	movq	72(%rsp),%rbp
	movq	80(%rsp),%rbx
	leaq	88(%rsp),%rsp
L$epilogue:
L$abort:
	.byte	0xf3,0xc3








|

1252
1253
1254
1255
1256
1257
1258
1259
1260
	movq	56(%rsp),%r13
	movq	64(%rsp),%r12
	movq	72(%rsp),%rbp
	movq	80(%rsp),%rbx
	leaq	88(%rsp),%rsp
L$epilogue:
L$abort:
	retq

Changes to jni/libressl/crypto/rsa/rsa_crpt.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: rsa_crpt.c,v 1.18 2017/01/29 17:49:23 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: rsa_crpt.c,v 1.19 2018/02/18 12:52:13 tb Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
67
68
69
70
71
72
73






74
75
76
77
78
79
80
#include <openssl/rsa.h>

#include "bn_lcl.h"

#ifndef OPENSSL_NO_ENGINE
#include <openssl/engine.h>
#endif







int
RSA_size(const RSA *r)
{
	return BN_num_bytes(r->n);
}








>
>
>
>
>
>







67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include <openssl/rsa.h>

#include "bn_lcl.h"

#ifndef OPENSSL_NO_ENGINE
#include <openssl/engine.h>
#endif

int
RSA_bits(const RSA *r)
{
	return BN_num_bits(r->n);
}

int
RSA_size(const RSA *r)
{
	return BN_num_bytes(r->n);
}

Changes to jni/libressl/crypto/rsa/rsa_lib.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: rsa_lib.c,v 1.31 2017/01/29 17:49:23 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: rsa_lib.c,v 1.36 2018/02/20 17:42:32 tb Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
252
253
254
255
256
257
258


















































































































}

void *
RSA_get_ex_data(const RSA *r, int idx)
{
	return CRYPTO_get_ex_data(&r->ex_data, idx);
}

























































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
}

void *
RSA_get_ex_data(const RSA *r, int idx)
{
	return CRYPTO_get_ex_data(&r->ex_data, idx);
}

void
RSA_get0_key(const RSA *r, const BIGNUM **n, const BIGNUM **e, const BIGNUM **d)
{
	if (n != NULL)
		*n = r->n;
	if (e != NULL)
		*e = r->e;
	if (d != NULL)
		*d = r->d;
}

int
RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d)
{
	if ((r->n == NULL && n == NULL) || (r->e == NULL && e == NULL))
		return 0;

	if (n != NULL) {
		BN_free(r->n);
		r->n = n;
	}
	if (e != NULL) {
		BN_free(r->e);
		r->e = e;
	}
	if (d != NULL) {
		BN_free(r->d);
		r->d = d;
	}

	return 1;
}

void
RSA_get0_crt_params(const RSA *r, const BIGNUM **dmp1, const BIGNUM **dmq1,
    const BIGNUM **iqmp)
{
	if (dmp1 != NULL)
		*dmp1 = r->dmp1;
	if (dmq1 != NULL)
		*dmq1 = r->dmq1;
	if (iqmp != NULL)
		*iqmp = r->iqmp;
}

int
RSA_set0_crt_params(RSA *r, BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM *iqmp)
{
	if ((r->dmp1 == NULL && dmp1 == NULL) ||
	    (r->dmq1 == NULL && dmq1 == NULL) ||
	    (r->iqmp == NULL && iqmp == NULL))
	       	return 0;

	if (dmp1 != NULL) {
		BN_free(r->dmp1);
		r->dmp1 = dmp1;
	}
	if (dmq1 != NULL) {
		BN_free(r->dmq1);
		r->dmq1 = dmq1;
	}
	if (iqmp != NULL) {
		BN_free(r->iqmp);
		r->iqmp = iqmp;
	}

	return 1;
}

void
RSA_get0_factors(const RSA *r, const BIGNUM **p, const BIGNUM **q)
{
	if (p != NULL)
		*p = r->p;
	if (q != NULL)
		*q = r->q;
}

int
RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q)
{
	if ((r->p == NULL && p == NULL) || (r->q == NULL && q == NULL))
		return 0;

	if (p != NULL) {
		BN_free(r->p);
		r->p = p;
	}
	if (q != NULL) {
		BN_free(r->q);
		r->q = q;
	}

	return 1;
}

void
RSA_clear_flags(RSA *r, int flags)
{
	r->flags &= ~flags;
}

int
RSA_test_flags(const RSA *r, int flags)
{
	return r->flags & flags;
}

void
RSA_set_flags(RSA *r, int flags)
{
	r->flags |= flags;
}
Added jni/libressl/crypto/rsa/rsa_meth.c.












































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
/*	$OpenBSD: rsa_meth.c,v 1.1 2018/03/17 15:12:56 tb Exp $	*/
/*
 * Copyright (c) 2018 Theo Buehler <tb@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

#include <stdlib.h>
#include <string.h>

#include <openssl/err.h>
#include <openssl/rsa.h>

RSA_METHOD *
RSA_meth_new(const char *name, int flags)
{
	RSA_METHOD *meth;

	if ((meth = calloc(1, sizeof(*meth))) == NULL)
		return NULL;
	if ((meth->name = strdup(name)) == NULL) {
		free(meth);
		return NULL;
	}
	meth->flags = flags;

	return meth;
}

void
RSA_meth_free(RSA_METHOD *meth)
{
	if (meth != NULL) {
		free((char *)meth->name);
		free(meth);
	}
}

RSA_METHOD *
RSA_meth_dup(const RSA_METHOD *meth)
{
	RSA_METHOD *copy;

	if ((copy = calloc(1, sizeof(*copy))) == NULL)
		return NULL;
	memcpy(copy, meth, sizeof(*copy));
	if ((copy->name = strdup(meth->name)) == NULL) {
		free(copy);
		return NULL;
	}

	return copy;
}

int
RSA_meth_set_priv_enc(RSA_METHOD *meth, int (*priv_enc)(int flen,
    const unsigned char *from, unsigned char *to, RSA *rsa, int padding))
{
	meth->rsa_priv_enc = priv_enc;
	return 1;
}

int
RSA_meth_set_priv_dec(RSA_METHOD *meth, int (*priv_dec)(int flen,
    const unsigned char *from, unsigned char *to, RSA *rsa, int padding))
{
	meth->rsa_priv_dec = priv_dec;
	return 1;
}

int
RSA_meth_set_finish(RSA_METHOD *meth, int (*finish)(RSA *rsa))
{
	meth->finish = finish;
	return 1;
}
Changes to jni/libressl/crypto/sha/sha1-elf-x86_64.S.
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
	movq	64(%rsp),%rsi
	movq	(%rsi),%r13
	movq	8(%rsi),%r12
	movq	16(%rsi),%rbp
	movq	24(%rsi),%rbx
	leaq	32(%rsi),%rsp
.Lepilogue:
	.byte	0xf3,0xc3
.size	sha1_block_data_order,.-sha1_block_data_order
.type	sha1_block_data_order_ssse3,@function
.align	16
sha1_block_data_order_ssse3:
_ssse3_shortcut:
	pushq	%rbx
	pushq	%rbp







|







1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
	movq	64(%rsp),%rsi
	movq	(%rsi),%r13
	movq	8(%rsi),%r12
	movq	16(%rsi),%rbp
	movq	24(%rsi),%rbx
	leaq	32(%rsi),%rsp
.Lepilogue:
	retq
.size	sha1_block_data_order,.-sha1_block_data_order
.type	sha1_block_data_order_ssse3,@function
.align	16
sha1_block_data_order_ssse3:
_ssse3_shortcut:
	pushq	%rbx
	pushq	%rbp
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
	movl	%ebp,16(%r8)
	leaq	64(%rsp),%rsi
	movq	0(%rsi),%r12
	movq	8(%rsi),%rbp
	movq	16(%rsi),%rbx
	leaq	24(%rsi),%rsp
.Lepilogue_ssse3:
	.byte	0xf3,0xc3
.size	sha1_block_data_order_ssse3,.-sha1_block_data_order_ssse3
.align	64
K_XX_XX:
.long	0x5a827999,0x5a827999,0x5a827999,0x5a827999	
.long	0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1	
.long	0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc	
.long	0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6	
.long	0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f	
.byte	83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.align	64
#if defined(HAVE_GNU_STACK)
.section .note.GNU-stack,"",%progbits
#endif







|













2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
	movl	%ebp,16(%r8)
	leaq	64(%rsp),%rsi
	movq	0(%rsi),%r12
	movq	8(%rsi),%rbp
	movq	16(%rsi),%rbx
	leaq	24(%rsi),%rsp
.Lepilogue_ssse3:
	retq
.size	sha1_block_data_order_ssse3,.-sha1_block_data_order_ssse3
.align	64
K_XX_XX:
.long	0x5a827999,0x5a827999,0x5a827999,0x5a827999	
.long	0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1	
.long	0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc	
.long	0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6	
.long	0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f	
.byte	83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.align	64
#if defined(HAVE_GNU_STACK)
.section .note.GNU-stack,"",%progbits
#endif
Changes to jni/libressl/crypto/sha/sha1-macosx-x86_64.S.
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
	movq	64(%rsp),%rsi
	movq	(%rsi),%r13
	movq	8(%rsi),%r12
	movq	16(%rsi),%rbp
	movq	24(%rsi),%rbx
	leaq	32(%rsi),%rsp
L$epilogue:
	.byte	0xf3,0xc3


.p2align	4
sha1_block_data_order_ssse3:
_ssse3_shortcut:
	pushq	%rbx
	pushq	%rbp







|







1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
	movq	64(%rsp),%rsi
	movq	(%rsi),%r13
	movq	8(%rsi),%r12
	movq	16(%rsi),%rbp
	movq	24(%rsi),%rbx
	leaq	32(%rsi),%rsp
L$epilogue:
	retq


.p2align	4
sha1_block_data_order_ssse3:
_ssse3_shortcut:
	pushq	%rbx
	pushq	%rbp
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
	movl	%ebp,16(%r8)
	leaq	64(%rsp),%rsi
	movq	0(%rsi),%r12
	movq	8(%rsi),%rbp
	movq	16(%rsi),%rbx
	leaq	24(%rsi),%rsp
L$epilogue_ssse3:
	.byte	0xf3,0xc3

.p2align	6
K_XX_XX:
.long	0x5a827999,0x5a827999,0x5a827999,0x5a827999	
.long	0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1	
.long	0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc	
.long	0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6	
.long	0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f	
.byte	83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.p2align	6







|










2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
	movl	%ebp,16(%r8)
	leaq	64(%rsp),%rsi
	movq	0(%rsi),%r12
	movq	8(%rsi),%rbp
	movq	16(%rsi),%rbx
	leaq	24(%rsi),%rsp
L$epilogue_ssse3:
	retq

.p2align	6
K_XX_XX:
.long	0x5a827999,0x5a827999,0x5a827999,0x5a827999	
.long	0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1	
.long	0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc	
.long	0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6	
.long	0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f	
.byte	83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.p2align	6
Changes to jni/libressl/crypto/sha/sha256-elf-x86_64.S.
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
.Lepilogue:
	.byte	0xf3,0xc3
.size	sha256_block_data_order,.-sha256_block_data_order
.align	64
.type	K256,@object
K256:
.long	0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
.long	0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
.long	0xd807aa98,0x12835b01,0x243185be,0x550c7dc3







|







1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
.Lepilogue:
	retq
.size	sha256_block_data_order,.-sha256_block_data_order
.align	64
.type	K256,@object
K256:
.long	0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
.long	0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
.long	0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
Changes to jni/libressl/crypto/sha/sha256-macosx-x86_64.S.
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
L$epilogue:
	.byte	0xf3,0xc3

.p2align	6

K256:
.long	0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
.long	0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
.long	0xd807aa98,0x12835b01,0x243185be,0x550c7dc3







|







1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
L$epilogue:
	retq

.p2align	6

K256:
.long	0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
.long	0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
.long	0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
Changes to jni/libressl/crypto/sha/sha512-elf-x86_64.S.
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
.Lepilogue:
	.byte	0xf3,0xc3
.size	sha512_block_data_order,.-sha512_block_data_order
.align	64
.type	K512,@object
K512:
.quad	0x428a2f98d728ae22,0x7137449123ef65cd
.quad	0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
.quad	0x3956c25bf348b538,0x59f111f1b605d019







|







1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
.Lepilogue:
	retq
.size	sha512_block_data_order,.-sha512_block_data_order
.align	64
.type	K512,@object
K512:
.quad	0x428a2f98d728ae22,0x7137449123ef65cd
.quad	0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
.quad	0x3956c25bf348b538,0x59f111f1b605d019
Changes to jni/libressl/crypto/sha/sha512-macosx-x86_64.S.
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
L$epilogue:
	.byte	0xf3,0xc3

.p2align	6

K512:
.quad	0x428a2f98d728ae22,0x7137449123ef65cd
.quad	0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
.quad	0x3956c25bf348b538,0x59f111f1b605d019







|







1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
L$epilogue:
	retq

.p2align	6

K512:
.quad	0x428a2f98d728ae22,0x7137449123ef65cd
.quad	0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
.quad	0x3956c25bf348b538,0x59f111f1b605d019
Changes to jni/libressl/crypto/whrlpool/wp-elf-x86_64.S.
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
.Lepilogue:
	.byte	0xf3,0xc3
.size	whirlpool_block,.-whirlpool_block

.align	64
.type	.Ltable,@object
.Ltable:
.byte	24,24,96,24,192,120,48,216,24,24,96,24,192,120,48,216
.byte	35,35,140,35,5,175,70,38,35,35,140,35,5,175,70,38







|







581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
.Lepilogue:
	retq
.size	whirlpool_block,.-whirlpool_block

.align	64
.type	.Ltable,@object
.Ltable:
.byte	24,24,96,24,192,120,48,216,24,24,96,24,192,120,48,216
.byte	35,35,140,35,5,175,70,38,35,35,140,35,5,175,70,38
Changes to jni/libressl/crypto/whrlpool/wp-macosx-x86_64.S.
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
L$epilogue:
	.byte	0xf3,0xc3


.p2align	6

L$table:
.byte	24,24,96,24,192,120,48,216,24,24,96,24,192,120,48,216
.byte	35,35,140,35,5,175,70,38,35,35,140,35,5,175,70,38







|







581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
	movq	8(%rsi),%r14
	movq	16(%rsi),%r13
	movq	24(%rsi),%r12
	movq	32(%rsi),%rbp
	movq	40(%rsi),%rbx
	leaq	48(%rsi),%rsp
L$epilogue:
	retq


.p2align	6

L$table:
.byte	24,24,96,24,192,120,48,216,24,24,96,24,192,120,48,216
.byte	35,35,140,35,5,175,70,38,35,35,140,35,5,175,70,38
Changes to jni/libressl/crypto/x509/x509_cmp.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: x509_cmp.c,v 1.27 2017/01/29 17:49:23 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: x509_cmp.c,v 1.30 2018/03/17 14:57:23 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
317
318
319
320
321
322
323
324
325
326
327








328
329
330
331
332
333
334
	}
	return (NULL);
}

EVP_PKEY *
X509_get_pubkey(X509 *x)
{
	if ((x == NULL) || (x->cert_info == NULL))
		return (NULL);
	return (X509_PUBKEY_get(x->cert_info->key));
}









ASN1_BIT_STRING *
X509_get0_pubkey_bitstr(const X509 *x)
{
	if (!x)
		return NULL;
	return x->cert_info->key->public_key;







|



>
>
>
>
>
>
>
>







317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
	}
	return (NULL);
}

EVP_PKEY *
X509_get_pubkey(X509 *x)
{
	if (x == NULL || x->cert_info == NULL)
		return (NULL);
	return (X509_PUBKEY_get(x->cert_info->key));
}

EVP_PKEY *
X509_get0_pubkey(X509 *x)
{
	if (x == NULL || x->cert_info == NULL)
		return (NULL);
	return (X509_PUBKEY_get0(x->cert_info->key));
}

ASN1_BIT_STRING *
X509_get0_pubkey_bitstr(const X509 *x)
{
	if (!x)
		return NULL;
	return x->cert_info->key->public_key;
360
361
362
363
364
365
366


















		X509error(X509_R_UNKNOWN_KEY_TYPE);
	}
	EVP_PKEY_free(xk);
	if (ret > 0)
		return 1;
	return 0;
}

























>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
		X509error(X509_R_UNKNOWN_KEY_TYPE);
	}
	EVP_PKEY_free(xk);
	if (ret > 0)
		return 1;
	return 0;
}

/*
 * Not strictly speaking an "up_ref" as a STACK doesn't have a reference
 * count but it has the same effect by duping the STACK and upping the ref of
 * each X509 structure.
 */
STACK_OF(X509) *
X509_chain_up_ref(STACK_OF(X509) *chain)
{
	STACK_OF(X509) *ret;
	size_t i;

	ret = sk_X509_dup(chain);
	for (i = 0; i < sk_X509_num(ret); i++)
		X509_up_ref(sk_X509_value(ret, i));

	return ret;
}
Changes to jni/libressl/crypto/x509/x509_lu.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: x509_lu.c,v 1.23 2017/01/29 17:49:23 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: x509_lu.c,v 1.28 2018/03/17 15:43:32 tb Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
263
264
265
266
267
268
269







270
271
272
273
274
275
276
	sk_X509_LOOKUP_free(sk);
	sk_X509_OBJECT_pop_free(vfy->objs, X509_OBJECT_free);

	CRYPTO_free_ex_data(CRYPTO_EX_INDEX_X509_STORE, vfy, &vfy->ex_data);
	X509_VERIFY_PARAM_free(vfy->param);
	free(vfy);
}








X509_LOOKUP *
X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m)
{
	int i;
	STACK_OF(X509_LOOKUP) *sk;
	X509_LOOKUP *lu;







>
>
>
>
>
>
>







263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
	sk_X509_LOOKUP_free(sk);
	sk_X509_OBJECT_pop_free(vfy->objs, X509_OBJECT_free);

	CRYPTO_free_ex_data(CRYPTO_EX_INDEX_X509_STORE, vfy, &vfy->ex_data);
	X509_VERIFY_PARAM_free(vfy->param);
	free(vfy);
}

int
X509_STORE_up_ref(X509_STORE *x)
{
	int refs = CRYPTO_add(&x->references, 1, CRYPTO_LOCK_X509_STORE);
	return (refs > 1) ? 1 : 0;
}

X509_LOOKUP *
X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m)
{
	int i;
	STACK_OF(X509_LOOKUP) *sk;
	X509_LOOKUP *lu;
446
447
448
449
450
451
452






453
454
455
456
457
458
459
		CRYPTO_add(&a->data.x509->references, 1, CRYPTO_LOCK_X509);
		break;
	case X509_LU_CRL:
		CRYPTO_add(&a->data.crl->references, 1, CRYPTO_LOCK_X509_CRL);
		break;
	}
}







void
X509_OBJECT_free_contents(X509_OBJECT *a)
{
	switch (a->type) {
	case X509_LU_X509:
		X509_free(a->data.x509);







>
>
>
>
>
>







453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
		CRYPTO_add(&a->data.x509->references, 1, CRYPTO_LOCK_X509);
		break;
	case X509_LU_CRL:
		CRYPTO_add(&a->data.crl->references, 1, CRYPTO_LOCK_X509_CRL);
		break;
	}
}

int
X509_OBJECT_get_type(const X509_OBJECT *a)
{
	return a->type;
}

void
X509_OBJECT_free_contents(X509_OBJECT *a)
{
	switch (a->type) {
	case X509_LU_X509:
		X509_free(a->data.x509);
521
522
523
524
525
526
527
















528
529
530
531
532
533
534
	int idx;

	idx = X509_OBJECT_idx_by_subject(h, type, name);
	if (idx == -1)
		return NULL;
	return sk_X509_OBJECT_value(h, idx);
}

















STACK_OF(X509) *
X509_STORE_get1_certs(X509_STORE_CTX *ctx, X509_NAME *nm)
{
	int i, idx, cnt;
	STACK_OF(X509) *sk;
	X509 *x;







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
	int idx;

	idx = X509_OBJECT_idx_by_subject(h, type, name);
	if (idx == -1)
		return NULL;
	return sk_X509_OBJECT_value(h, idx);
}

X509 *
X509_OBJECT_get0_X509(const X509_OBJECT *xo)
{
	if (xo != NULL && xo->type == X509_LU_X509)
		return xo->data.x509;
	return NULL;
}

X509_CRL *
X509_OBJECT_get0_X509_CRL(X509_OBJECT *xo)
{
	if (xo != NULL && xo->type == X509_LU_CRL)
		return xo->data.crl;
	return NULL;
}

STACK_OF(X509) *
X509_STORE_get1_certs(X509_STORE_CTX *ctx, X509_NAME *nm)
{
	int i, idx, cnt;
	STACK_OF(X509) *sk;
	X509 *x;
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
				return obj;
		} else
			return obj;
	}
	return NULL;
}


/* Try to get issuer certificate from store. Due to limitations
 * of the API this can only retrieve a single certificate matching
 * a given subject name. However it will fill the cache with all
 * matching certificates, so we can examine the cache for all
 * matches.
 *
 * Return values are:







<







674
675
676
677
678
679
680

681
682
683
684
685
686
687
				return obj;
		} else
			return obj;
	}
	return NULL;
}


/* Try to get issuer certificate from store. Due to limitations
 * of the API this can only retrieve a single certificate matching
 * a given subject name. However it will fill the cache with all
 * matching certificates, so we can examine the cache for all
 * matches.
 *
 * Return values are:
721
722
723
724
725
726
727


















728
729
730
731
732
733
734
		}
	}
	CRYPTO_w_unlock(CRYPTO_LOCK_X509_STORE);
	if (*issuer)
		CRYPTO_add(&(*issuer)->references, 1, CRYPTO_LOCK_X509);
	return ret;
}



















int
X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags)
{
	return X509_VERIFY_PARAM_set_flags(ctx->param, flags);
}








>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
		}
	}
	CRYPTO_w_unlock(CRYPTO_LOCK_X509_STORE);
	if (*issuer)
		CRYPTO_add(&(*issuer)->references, 1, CRYPTO_LOCK_X509);
	return ret;
}

STACK_OF(X509_OBJECT) *
X509_STORE_get0_objects(X509_STORE *xs)
{
	return xs->objs;
}

void *
X509_STORE_get_ex_data(X509_STORE *xs, int idx)
{
	return CRYPTO_get_ex_data(&xs->ex_data, idx);
}

int
X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data)
{
	return CRYPTO_set_ex_data(&xs->ex_data, idx, data);
}

int
X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags)
{
	return X509_VERIFY_PARAM_set_flags(ctx->param, flags);
}

752
753
754
755
756
757
758






759
760
761
762
763
764
765
}

int
X509_STORE_set1_param(X509_STORE *ctx, X509_VERIFY_PARAM *param)
{
	return X509_VERIFY_PARAM_set1(ctx->param, param);
}







void
X509_STORE_set_verify_cb(X509_STORE *ctx,
    int (*verify_cb)(int, X509_STORE_CTX *))
{
	ctx->verify_cb = verify_cb;
}







>
>
>
>
>
>







798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
}

int
X509_STORE_set1_param(X509_STORE *ctx, X509_VERIFY_PARAM *param)
{
	return X509_VERIFY_PARAM_set1(ctx->param, param);
}

X509_VERIFY_PARAM *
X509_STORE_get0_param(X509_STORE *ctx)
{
	return ctx->param;
}

void
X509_STORE_set_verify_cb(X509_STORE *ctx,
    int (*verify_cb)(int, X509_STORE_CTX *))
{
	ctx->verify_cb = verify_cb;
}
Changes to jni/libressl/crypto/x509/x509_set.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: x509_set.c,v 1.12 2015/09/30 17:49:59 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: x509_set.c,v 1.16 2018/02/22 17:09:28 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
58
59
60
61
62
63
64












65
66
67
68
69
70
71

#include <stdio.h>

#include <openssl/asn1.h>
#include <openssl/evp.h>
#include <openssl/objects.h>
#include <openssl/x509.h>













int
X509_set_version(X509 *x, long version)
{
	if (x == NULL)
		return (0);
	if (x->cert_info->version == NULL) {







>
>
>
>
>
>
>
>
>
>
>
>







58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83

#include <stdio.h>

#include <openssl/asn1.h>
#include <openssl/evp.h>
#include <openssl/objects.h>
#include <openssl/x509.h>

const STACK_OF(X509_EXTENSION) *
X509_get0_extensions(const X509 *x)
{
	return x->cert_info->extensions;
}

const X509_ALGOR *
X509_get0_tbs_sigalg(const X509 *x)
{
	return x->cert_info->signature;
}

int
X509_set_version(X509 *x, long version)
{
	if (x == NULL)
		return (0);
	if (x->cert_info->version == NULL) {
100
101
102
103
104
105
106
107
108
109
110














111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128




















129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146






147
148
149
150
151
152
153
154
		return (0);
	return (X509_NAME_set(&x->cert_info->issuer, name));
}

int
X509_set_subject_name(X509 *x, X509_NAME *name)
{
	if ((x == NULL) || (x->cert_info == NULL))
		return (0);
	return (X509_NAME_set(&x->cert_info->subject, name));
}















int
X509_set_notBefore(X509 *x, const ASN1_TIME *tm)
{
	ASN1_TIME *in;

	if ((x == NULL) || (x->cert_info->validity == NULL))
		return (0);
	in = x->cert_info->validity->notBefore;
	if (in != tm) {
		in = ASN1_STRING_dup(tm);
		if (in != NULL) {
			ASN1_TIME_free(x->cert_info->validity->notBefore);
			x->cert_info->validity->notBefore = in;
		}
	}
	return (in != NULL);
}





















int
X509_set_notAfter(X509 *x, const ASN1_TIME *tm)
{
	ASN1_TIME *in;

	if ((x == NULL) || (x->cert_info->validity == NULL))
		return (0);
	in = x->cert_info->validity->notAfter;
	if (in != tm) {
		in = ASN1_STRING_dup(tm);
		if (in != NULL) {
			ASN1_TIME_free(x->cert_info->validity->notAfter);
			x->cert_info->validity->notAfter = in;
		}
	}
	return (in != NULL);
}







int
X509_set_pubkey(X509 *x, EVP_PKEY *pkey)
{
	if ((x == NULL) || (x->cert_info == NULL))
		return (0);
	return (X509_PUBKEY_set(&(x->cert_info->key), pkey));
}







|



>
>
>
>
>
>
>
>
>
>
>
>
>
>






|











>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>






|











>
>
>
>
>
>








112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
		return (0);
	return (X509_NAME_set(&x->cert_info->issuer, name));
}

int
X509_set_subject_name(X509 *x, X509_NAME *name)
{
	if (x == NULL || x->cert_info == NULL)
		return (0);
	return (X509_NAME_set(&x->cert_info->subject, name));
}

const ASN1_TIME *
X509_get0_notBefore(const X509 *x)
{
	return X509_getm_notBefore(x);
}

ASN1_TIME *
X509_getm_notBefore(const X509 *x)
{
	if (x == NULL || x->cert_info == NULL || x->cert_info->validity == NULL)
		return (NULL);
	return x->cert_info->validity->notBefore;
}

int
X509_set_notBefore(X509 *x, const ASN1_TIME *tm)
{
	ASN1_TIME *in;

	if (x == NULL || x->cert_info->validity == NULL)
		return (0);
	in = x->cert_info->validity->notBefore;
	if (in != tm) {
		in = ASN1_STRING_dup(tm);
		if (in != NULL) {
			ASN1_TIME_free(x->cert_info->validity->notBefore);
			x->cert_info->validity->notBefore = in;
		}
	}
	return (in != NULL);
}

int
X509_set1_notBefore(X509 *x, const ASN1_TIME *tm)
{
	return X509_set_notBefore(x, tm);
}

const ASN1_TIME *
X509_get0_notAfter(const X509 *x)
{
	return X509_getm_notAfter(x);
}

ASN1_TIME *
X509_getm_notAfter(const X509 *x)
{
	if (x == NULL || x->cert_info == NULL || x->cert_info->validity == NULL)
		return (NULL);
	return x->cert_info->validity->notAfter;
}

int
X509_set_notAfter(X509 *x, const ASN1_TIME *tm)
{
	ASN1_TIME *in;

	if (x == NULL || x->cert_info->validity == NULL)
		return (0);
	in = x->cert_info->validity->notAfter;
	if (in != tm) {
		in = ASN1_STRING_dup(tm);
		if (in != NULL) {
			ASN1_TIME_free(x->cert_info->validity->notAfter);
			x->cert_info->validity->notAfter = in;
		}
	}
	return (in != NULL);
}

int
X509_set1_notAfter(X509 *x, const ASN1_TIME *tm)
{
	return X509_set_notAfter(x, tm);
}

int
X509_set_pubkey(X509 *x, EVP_PKEY *pkey)
{
	if ((x == NULL) || (x->cert_info == NULL))
		return (0);
	return (X509_PUBKEY_set(&(x->cert_info->key), pkey));
}
Changes to jni/libressl/crypto/x509/x509_vfy.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: x509_vfy.c,v 1.66 2017/08/27 01:39:26 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: x509_vfy.c,v 1.68 2018/02/22 17:11:30 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
2019
2020
2021
2022
2023
2024
2025

2026
2027
2028
2029
2030







2031
2032
2033
2034
2035
2036
2037
2038

X509 *
X509_STORE_CTX_get_current_cert(X509_STORE_CTX *ctx)
{
	return ctx->current_cert;
}


STACK_OF(X509) *X509_STORE_CTX_get_chain(X509_STORE_CTX *ctx)
{
	return ctx->chain;
}








STACK_OF(X509) *X509_STORE_CTX_get1_chain(X509_STORE_CTX *ctx)
{
	int i;
	X509 *x;
	STACK_OF(X509) *chain;

	if (!ctx->chain || !(chain = sk_X509_dup(ctx->chain)))
		return NULL;







>
|




>
>
>
>
>
>
>
|







2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046

X509 *
X509_STORE_CTX_get_current_cert(X509_STORE_CTX *ctx)
{
	return ctx->current_cert;
}

STACK_OF(X509) *
X509_STORE_CTX_get_chain(X509_STORE_CTX *ctx)
{
	return ctx->chain;
}

STACK_OF(X509) *
X509_STORE_CTX_get0_chain(X509_STORE_CTX *xs)
{
	return xs->chain;
}

STACK_OF(X509) *
X509_STORE_CTX_get1_chain(X509_STORE_CTX *ctx)
{
	int i;
	X509 *x;
	STACK_OF(X509) *chain;

	if (!ctx->chain || !(chain = sk_X509_dup(ctx->chain)))
		return NULL;
2056
2057
2058
2059
2060
2061
2062






2063
2064
2065
2066
2067
2068
2069
}

X509_STORE_CTX *
X509_STORE_CTX_get0_parent_ctx(X509_STORE_CTX *ctx)
{
	return ctx->parent;
}







void
X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *x)
{
	ctx->cert = x;
}








>
>
>
>
>
>







2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
}

X509_STORE_CTX *
X509_STORE_CTX_get0_parent_ctx(X509_STORE_CTX *ctx)
{
	return ctx->parent;
}

X509_STORE *
X509_STORE_CTX_get0_store(X509_STORE_CTX *xs)
{
	return xs->ctx;
}

void
X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *x)
{
	ctx->cert = x;
}

2296
2297
2298
2299
2300
2301
2302






2303
2304
2305
2306
2307
2308
2309

void
X509_STORE_CTX_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk)
{
	ctx->other_ctx = sk;
	ctx->get_issuer = get_issuer_sk;
}







void
X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx)
{
	if (ctx->cleanup)
		ctx->cleanup(ctx);
	if (ctx->param != NULL) {







>
>
>
>
>
>







2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329

void
X509_STORE_CTX_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk)
{
	ctx->other_ctx = sk;
	ctx->get_issuer = get_issuer_sk;
}

void
X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk)
{
	X509_STORE_CTX_trusted_stack(ctx, sk);
}

void
X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx)
{
	if (ctx->cleanup)
		ctx->cleanup(ctx);
	if (ctx->param != NULL) {
2344
2345
2346
2347
2348
2349
2350


















2351
2352
2353
2354
2355
2356
2357

void
X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx,
    int (*verify_cb)(int, X509_STORE_CTX *))
{
	ctx->verify_cb = verify_cb;
}



















X509_POLICY_TREE *
X509_STORE_CTX_get0_policy_tree(X509_STORE_CTX *ctx)
{
	return ctx->tree;
}








>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395

void
X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx,
    int (*verify_cb)(int, X509_STORE_CTX *))
{
	ctx->verify_cb = verify_cb;
}

X509 *
X509_STORE_CTX_get0_cert(X509_STORE_CTX *ctx)
{
	return ctx->cert;
}

STACK_OF(X509) *
X509_STORE_CTX_get0_untrusted(X509_STORE_CTX *ctx)
{
	return ctx->untrusted;
}

void
X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk)
{
	ctx->untrusted = sk;
}

X509_POLICY_TREE *
X509_STORE_CTX_get0_policy_tree(X509_STORE_CTX *ctx)
{
	return ctx->tree;
}

Changes to jni/libressl/crypto/x509/x509_vpm.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: x509_vpm.c,v 1.15 2016/12/21 15:15:45 jsing Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
 * project 2004.
 */
/* ====================================================================
 * Copyright (c) 2004 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
/* $OpenBSD: x509_vpm.c,v 1.17 2018/03/22 15:54:46 beck Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
 * project 2004.
 */
/* ====================================================================
 * Copyright (c) 2004 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
97
98
99
100
101
102
103

104
105
106
107
108
109
110
111
112
113
114
115
static void *
sk_deep_copy(void *sk_void, void *copy_func_void, void *free_func_void)
{
	_STACK *sk = sk_void;
	void *(*copy_func)(void *) = copy_func_void;
	void (*free_func)(void *) = free_func_void;
	_STACK *ret = sk_dup(sk);


	if (ret == NULL)
		return NULL;

	size_t i;
	for (i = 0; i < ret->num; i++) {
		if (ret->data[i] == NULL)
			continue;
		ret->data[i] = copy_func(ret->data[i]);
		if (ret->data[i] == NULL) {
			size_t j;
			for (j = 0; j < i; j++) {







>




<







97
98
99
100
101
102
103
104
105
106
107
108

109
110
111
112
113
114
115
static void *
sk_deep_copy(void *sk_void, void *copy_func_void, void *free_func_void)
{
	_STACK *sk = sk_void;
	void *(*copy_func)(void *) = copy_func_void;
	void (*free_func)(void *) = free_func_void;
	_STACK *ret = sk_dup(sk);
	size_t i;

	if (ret == NULL)
		return NULL;


	for (i = 0; i < ret->num; i++) {
		if (ret->data[i] == NULL)
			continue;
		ret->data[i] = copy_func(ret->data[i]);
		if (ret->data[i] == NULL) {
			size_t j;
			for (j = 0; j < i; j++) {
126
127
128
129
130
131
132


133
134
135
136
137
138
139

static int
int_x509_param_set_hosts(X509_VERIFY_PARAM_ID *id, int mode,
    const char *name, size_t namelen)
{
	char *copy;



	/*
	 * Refuse names with embedded NUL bytes.
	 * XXX: Do we need to push an error onto the error stack?
	 */
	if (name && memchr(name, '\0', namelen))
		return 0;








>
>







126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141

static int
int_x509_param_set_hosts(X509_VERIFY_PARAM_ID *id, int mode,
    const char *name, size_t namelen)
{
	char *copy;

	if (name != NULL && namelen == 0)
		namelen = strlen(name);
	/*
	 * Refuse names with embedded NUL bytes.
	 * XXX: Do we need to push an error onto the error stack?
	 */
	if (name && memchr(name, '\0', namelen))
		return 0;

Changes to jni/libressl/crypto/x509/x509cset.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: x509cset.c,v 1.11 2015/09/30 17:49:59 jsing Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
 * project 2001.
 */
/* ====================================================================
 * Copyright (c) 2001 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
/* $OpenBSD: x509cset.c,v 1.14 2018/02/22 17:01:44 jsing Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
 * project 2001.
 */
/* ====================================================================
 * Copyright (c) 2001 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
58
59
60
61
62
63
64







65
66
67
68
69
70
71

#include <stdio.h>

#include <openssl/asn1.h>
#include <openssl/evp.h>
#include <openssl/objects.h>
#include <openssl/x509.h>








int
X509_CRL_set_version(X509_CRL *x, long version)
{
	if (x == NULL)
		return (0);
	if (x->crl->version == NULL) {







>
>
>
>
>
>
>







58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78

#include <stdio.h>

#include <openssl/asn1.h>
#include <openssl/evp.h>
#include <openssl/objects.h>
#include <openssl/x509.h>

int
X509_CRL_up_ref(X509_CRL *x)   
{
	int refs = CRYPTO_add(&x->references, 1, CRYPTO_LOCK_X509_CRL);
	return (refs > 1) ? 1 : 0;
}

int
X509_CRL_set_version(X509_CRL *x, long version)
{
	if (x == NULL)
		return (0);
	if (x->crl->version == NULL) {
96
97
98
99
100
101
102






103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120






121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137


















138
139
140
141
142
143
144
		if (in != NULL) {
			ASN1_TIME_free(x->crl->lastUpdate);
			x->crl->lastUpdate = in;
		}
	}
	return (in != NULL);
}







int
X509_CRL_set_nextUpdate(X509_CRL *x, const ASN1_TIME *tm)
{
	ASN1_TIME *in;

	if (x == NULL)
		return (0);
	in = x->crl->nextUpdate;
	if (in != tm) {
		in = ASN1_STRING_dup(tm);
		if (in != NULL) {
			ASN1_TIME_free(x->crl->nextUpdate);
			x->crl->nextUpdate = in;
		}
	}
	return (in != NULL);
}







int
X509_CRL_sort(X509_CRL *c)
{
	int i;
	X509_REVOKED *r;

	/* sort the data so it will be written in serial
	 * number order */
	sk_X509_REVOKED_sort(c->crl->revoked);
	for (i = 0; i < sk_X509_REVOKED_num(c->crl->revoked); i++) {
		r = sk_X509_REVOKED_value(c->crl->revoked, i);
		r->sequence = i;
	}
	c->crl->enc.modified = 1;
	return 1;
}



















int
X509_REVOKED_set_revocationDate(X509_REVOKED *x, ASN1_TIME *tm)
{
	ASN1_TIME *in;

	if (x == NULL)







>
>
>
>
>
>


















>
>
>
>
>
>

















>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
		if (in != NULL) {
			ASN1_TIME_free(x->crl->lastUpdate);
			x->crl->lastUpdate = in;
		}
	}
	return (in != NULL);
}

int
X509_CRL_set1_lastUpdate(X509_CRL *x, const ASN1_TIME *tm)
{
	return X509_CRL_set_lastUpdate(x, tm);
}

int
X509_CRL_set_nextUpdate(X509_CRL *x, const ASN1_TIME *tm)
{
	ASN1_TIME *in;

	if (x == NULL)
		return (0);
	in = x->crl->nextUpdate;
	if (in != tm) {
		in = ASN1_STRING_dup(tm);
		if (in != NULL) {
			ASN1_TIME_free(x->crl->nextUpdate);
			x->crl->nextUpdate = in;
		}
	}
	return (in != NULL);
}

int
X509_CRL_set1_nextUpdate(X509_CRL *x, const ASN1_TIME *tm)
{
	return X509_CRL_set_nextUpdate(x, tm);
}

int
X509_CRL_sort(X509_CRL *c)
{
	int i;
	X509_REVOKED *r;

	/* sort the data so it will be written in serial
	 * number order */
	sk_X509_REVOKED_sort(c->crl->revoked);
	for (i = 0; i < sk_X509_REVOKED_num(c->crl->revoked); i++) {
		r = sk_X509_REVOKED_value(c->crl->revoked, i);
		r->sequence = i;
	}
	c->crl->enc.modified = 1;
	return 1;
}

const STACK_OF(X509_EXTENSION) *
X509_REVOKED_get0_extensions(const X509_REVOKED *x)
{
	return x->extensions;
}

const ASN1_TIME *
X509_REVOKED_get0_revocationDate(const X509_REVOKED *x)
{
	return x->revocationDate;
}

const ASN1_INTEGER *
X509_REVOKED_get0_serialNumber(const X509_REVOKED *x)
{
	return x->serialNumber;
}

int
X509_REVOKED_set_revocationDate(X509_REVOKED *x, ASN1_TIME *tm)
{
	ASN1_TIME *in;

	if (x == NULL)
Changes to jni/libressl/crypto/x509/x509name.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: x509name.c,v 1.14 2017/01/29 17:49:23 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: x509name.c,v 1.15 2018/03/17 15:28:27 tb Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
401
402
403
404
405
406
407






ASN1_STRING *
X509_NAME_ENTRY_get_data(X509_NAME_ENTRY *ne)
{
	if (ne == NULL)
		return (NULL);
	return (ne->value);
}













>
>
>
>
>
>
401
402
403
404
405
406
407
408
409
410
411
412
413
ASN1_STRING *
X509_NAME_ENTRY_get_data(X509_NAME_ENTRY *ne)
{
	if (ne == NULL)
		return (NULL);
	return (ne->value);
}

int
X509_NAME_ENTRY_set(const X509_NAME_ENTRY *ne)
{
	return (ne->set);
}
Changes to jni/libressl/crypto/x509v3/v3_utl.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: v3_utl.c,v 1.26 2017/01/29 17:49:23 beck Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
 * project.
 */
/* ====================================================================
 * Copyright (c) 1999-2003 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
/* $OpenBSD: v3_utl.c,v 1.27 2018/03/20 16:16:59 jsing Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
 * project.
 */
/* ====================================================================
 * Copyright (c) 1999-2003 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
1011
1012
1013
1014
1015
1016
1017


1018
1019
1020
1021
1022
1023
1024
1025
1026
1027


1028
1029
1030
1031
1032
1033
1034
1035
}

int X509_check_host(X509 *x, const char *chk, size_t chklen,
    unsigned int flags, char **peername)
{
	if (chk == NULL)
		return -2;


	if (memchr(chk, '\0', chklen))
		return -2;
	return do_x509_check(x, chk, chklen, flags, GEN_DNS, peername);
}

int X509_check_email(X509 *x, const char *chk, size_t chklen,
    unsigned int flags)
{
	if (chk == NULL)
		return -2;


	if (memchr(chk, '\0', chklen))
		return -2;
	return do_x509_check(x, chk, chklen, flags, GEN_EMAIL, NULL);
}

int X509_check_ip(X509 *x, const unsigned char *chk, size_t chklen,
    unsigned int flags)
{







>
>
|









>
>
|







1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
}

int X509_check_host(X509 *x, const char *chk, size_t chklen,
    unsigned int flags, char **peername)
{
	if (chk == NULL)
		return -2;
	if (chklen == 0)
		chklen = strlen(chk);
	else if (memchr(chk, '\0', chklen))
		return -2;
	return do_x509_check(x, chk, chklen, flags, GEN_DNS, peername);
}

int X509_check_email(X509 *x, const char *chk, size_t chklen,
    unsigned int flags)
{
	if (chk == NULL)
		return -2;
	if (chklen == 0)
		chklen = strlen(chk);
	else if (memchr(chk, '\0', chklen))
		return -2;
	return do_x509_check(x, chk, chklen, flags, GEN_EMAIL, NULL);
}

int X509_check_ip(X509 *x, const unsigned char *chk, size_t chklen,
    unsigned int flags)
{
Changes to jni/libressl/include/Makefile.am.
8
9
10
11
12
13
14

15
16
17
18
19
20
21
noinst_HEADERS += compat/dirent.h
noinst_HEADERS += compat/dirent_msvc.h
noinst_HEADERS += compat/err.h
noinst_HEADERS += compat/fcntl.h
noinst_HEADERS += compat/limits.h
noinst_HEADERS += compat/netdb.h
noinst_HEADERS += compat/poll.h

noinst_HEADERS += compat/readpassphrase.h
noinst_HEADERS += compat/resolv.h
noinst_HEADERS += compat/stdio.h
noinst_HEADERS += compat/stdlib.h
noinst_HEADERS += compat/string.h
noinst_HEADERS += compat/time.h
noinst_HEADERS += compat/unistd.h







>







8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
noinst_HEADERS += compat/dirent.h
noinst_HEADERS += compat/dirent_msvc.h
noinst_HEADERS += compat/err.h
noinst_HEADERS += compat/fcntl.h
noinst_HEADERS += compat/limits.h
noinst_HEADERS += compat/netdb.h
noinst_HEADERS += compat/poll.h
noinst_HEADERS += compat/pthread.h
noinst_HEADERS += compat/readpassphrase.h
noinst_HEADERS += compat/resolv.h
noinst_HEADERS += compat/stdio.h
noinst_HEADERS += compat/stdlib.h
noinst_HEADERS += compat/string.h
noinst_HEADERS += compat/time.h
noinst_HEADERS += compat/unistd.h
Changes to jni/libressl/include/Makefile.in.
343
344
345
346
347
348
349
350
351
352

353
354
355
356
357
358
359
360
361
362
363
364
AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/include/compat \
	-DLIBRESSL_INTERNAL -D__BEGIN_HIDDEN_DECLS= \
	-D__END_HIDDEN_DECLS=
EXTRA_DIST = CMakeLists.txt
SUBDIRS = openssl
noinst_HEADERS = pqueue.h compat/dirent.h compat/dirent_msvc.h \
	compat/err.h compat/fcntl.h compat/limits.h compat/netdb.h \
	compat/poll.h compat/readpassphrase.h compat/resolv.h \
	compat/stdio.h compat/stdlib.h compat/string.h compat/time.h \
	compat/unistd.h compat/win32netcompat.h compat/arpa/inet.h \

	compat/arpa/nameser.h compat/machine/endian.h \
	compat/netinet/in.h compat/netinet/ip.h compat/netinet/tcp.h \
	compat/sys/ioctl.h compat/sys/mman.h compat/sys/param.h \
	compat/sys/select.h compat/sys/socket.h compat/sys/stat.h \
	compat/sys/time.h compat/sys/types.h compat/sys/uio.h
include_HEADERS = tls.h
all: all-recursive

.SUFFIXES:
$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(top_srcdir)/Makefile.am.common $(am__configure_deps)
	@for dep in $?; do \
	  case '$(am__configure_deps)' in \







|
|
|
>
|
|
|
|
|







343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/include/compat \
	-DLIBRESSL_INTERNAL -D__BEGIN_HIDDEN_DECLS= \
	-D__END_HIDDEN_DECLS=
EXTRA_DIST = CMakeLists.txt
SUBDIRS = openssl
noinst_HEADERS = pqueue.h compat/dirent.h compat/dirent_msvc.h \
	compat/err.h compat/fcntl.h compat/limits.h compat/netdb.h \
	compat/poll.h compat/pthread.h compat/readpassphrase.h \
	compat/resolv.h compat/stdio.h compat/stdlib.h compat/string.h \
	compat/time.h compat/unistd.h compat/win32netcompat.h \
	compat/arpa/inet.h compat/arpa/nameser.h \
	compat/machine/endian.h compat/netinet/in.h \
	compat/netinet/ip.h compat/netinet/tcp.h compat/sys/ioctl.h \
	compat/sys/mman.h compat/sys/param.h compat/sys/select.h \
	compat/sys/socket.h compat/sys/stat.h compat/sys/time.h \
	compat/sys/types.h compat/sys/uio.h
include_HEADERS = tls.h
all: all-recursive

.SUFFIXES:
$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(top_srcdir)/Makefile.am.common $(am__configure_deps)
	@for dep in $?; do \
	  case '$(am__configure_deps)' in \
Changes to jni/libressl/include/compat/arpa/inet.h.
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <win32netcompat.h>

#ifndef AI_ADDRCONFIG
#define AI_ADDRCONFIG               0x00000400
#endif

#endif

#ifndef HAVE_INET_NTOP
const char * inet_ntop(int af, const void *src, char *dst, socklen_t size);
#endif

#ifndef HAVE_INET_PTON
int inet_pton(int af, const char * src, void * dst);
#endif







<
<
<
<
<
<
<
<
9
10
11
12
13
14
15








#include <win32netcompat.h>

#ifndef AI_ADDRCONFIG
#define AI_ADDRCONFIG               0x00000400
#endif

#endif








Changes to jni/libressl/include/compat/err.h.
30
31
32
33
34
35
36

37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54

55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72

73
74
75
76
77
78
79
80
81
82
83
84

85
86
87
88
89
	va_list ap;

	va_start(ap, fmt);
	if (fmt != NULL) {
		vfprintf(stderr, fmt, ap);
		fprintf(stderr, ": ");
	}

	fprintf(stderr, "%s\n", strerror(sverrno));
	exit(eval);
	va_end(ap);
}

#if defined(_MSC_VER)
__declspec(noreturn)
#else
__attribute__((noreturn))
#endif
static inline void
errx(int eval, const char *fmt, ...)
{
	va_list ap;

	va_start(ap, fmt);
	if (fmt != NULL)
		vfprintf(stderr, fmt, ap);

	fprintf(stderr, "\n");
	exit(eval);
	va_end(ap);
}

static inline void
warn(const char *fmt, ...)
{
	int sverrno = errno;
	va_list ap;

	va_start(ap, fmt);
	if (fmt != NULL) {
		vfprintf(stderr, fmt, ap);
		fprintf(stderr, ": ");
	}
	fprintf(stderr, "%s\n", strerror(sverrno));
	va_end(ap);

}

static inline void
warnx(const char *fmt, ...)
{
	va_list ap;

	va_start(ap, fmt);
	if (fmt != NULL)
		vfprintf(stderr, fmt, ap);
	fprintf(stderr, "\n");
	va_end(ap);

}

#endif

#endif







>


<















>


<













<

>










<

>





30
31
32
33
34
35
36
37
38
39

40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57

58
59
60
61
62
63
64
65
66
67
68
69
70

71
72
73
74
75
76
77
78
79
80
81
82

83
84
85
86
87
88
89
	va_list ap;

	va_start(ap, fmt);
	if (fmt != NULL) {
		vfprintf(stderr, fmt, ap);
		fprintf(stderr, ": ");
	}
	va_end(ap);
	fprintf(stderr, "%s\n", strerror(sverrno));
	exit(eval);

}

#if defined(_MSC_VER)
__declspec(noreturn)
#else
__attribute__((noreturn))
#endif
static inline void
errx(int eval, const char *fmt, ...)
{
	va_list ap;

	va_start(ap, fmt);
	if (fmt != NULL)
		vfprintf(stderr, fmt, ap);
	va_end(ap);
	fprintf(stderr, "\n");
	exit(eval);

}

static inline void
warn(const char *fmt, ...)
{
	int sverrno = errno;
	va_list ap;

	va_start(ap, fmt);
	if (fmt != NULL) {
		vfprintf(stderr, fmt, ap);
		fprintf(stderr, ": ");
	}

	va_end(ap);
	fprintf(stderr, "%s\n", strerror(sverrno));
}

static inline void
warnx(const char *fmt, ...)
{
	va_list ap;

	va_start(ap, fmt);
	if (fmt != NULL)
		vfprintf(stderr, fmt, ap);

	va_end(ap);
	fprintf(stderr, "\n");
}

#endif

#endif
Added jni/libressl/include/compat/pthread.h.










































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
/*
 * Public domain
 * pthread.h compatibility shim
 */

#ifdef _WIN32

#include <windows.h>

/*
 * Static once initialization values.
 */
#if (_WIN32_WINNT < 0x0600)
#define PTHREAD_ONCE_INIT   { 0, 0 }
#else
#define PTHREAD_ONCE_INIT   { INIT_ONCE_STATIC_INIT }
#endif

/*
 * Once definitions.
 */
struct pthread_once {
#if (_WIN32_WINNT < 0x0600)
	LONG il;
	int init;
#else
	INIT_ONCE once;
#endif
};
typedef struct pthread_once pthread_once_t;

#if (_WIN32_WINNT >= 0x0600)
static inline BOOL CALLBACK
_pthread_once_win32_cb(PINIT_ONCE once, PVOID param, PVOID *context)
{
	void (*cb) (void) = param;
	cb();
	return TRUE;
}
#endif

static inline int
pthread_once(pthread_once_t *once, void (*cb) (void))
{
#if (_WIN32_WINNT < 0x0600)
	while (!once->init) {
		if (InterlockedIncrement(&once->il) == 1) {
			cb();
			once->init = 1;
		} else {
			Sleep(1);
		}
	}
	return 0;	
#else
	BOOL rc = InitOnceExecuteOnce(&once->once, _pthread_once_win32_cb, cb, NULL);
	if (rc == 0)
		return -1;
	else
		return 0;
#endif
}

struct pthread {
	HANDLE handle;
};
typedef struct pthread pthread_t;

static inline pthread_t
pthread_self(void)
{
	pthread_t self;
	self.handle = GetCurrentThread();
	return self;
}

static inline int
pthread_equal(pthread_t t1, pthread_t t2)
{
	return t1.handle == t2.handle;
}

#else
#include_next <pthread.h>
#endif
Changes to jni/libressl/include/compat/sys/stat.h.
1
2
3
4
5
6
7
8
9
10
11
12






13
14
15



16
17
18
19
20
21
22
/*
 * Public domain
 * sys/stat.h compatibility shim
 */

#ifndef LIBCRYPTOCOMPAT_SYS_STAT_H
#define LIBCRYPTOCOMPAT_SYS_STAT_H

#ifndef _MSC_VER
#include_next <sys/stat.h>

/* for old MinGW */






#ifndef S_IRGRP
#define S_IRGRP         0
#endif



#ifndef S_IROTH
#define S_IROTH         0
#endif

#else

#include <windows.h>












>
>
>
>
>
>



>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/*
 * Public domain
 * sys/stat.h compatibility shim
 */

#ifndef LIBCRYPTOCOMPAT_SYS_STAT_H
#define LIBCRYPTOCOMPAT_SYS_STAT_H

#ifndef _MSC_VER
#include_next <sys/stat.h>

/* for old MinGW */
#ifndef S_IRWXU
#define S_IRWXU         0
#endif
#ifndef S_IRWXG
#define S_IRWXG         0
#endif
#ifndef S_IRGRP
#define S_IRGRP         0
#endif
#ifndef S_IRWXO
#define S_IRWXO         0
#endif
#ifndef S_IROTH
#define S_IROTH         0
#endif

#else

#include <windows.h>
61
62
63
64
65
66
67

68
69
70

71
72
73

74
75
76
77
78
79
80
#   define S_IFLNK   0                          /* Link */
#endif
#if !defined(S_IFSOCK)
#   define S_IFSOCK  0                          /* Socket */
#endif

#if defined(_MSC_VER)

#   define S_IRUSR  S_IREAD                     /* Read user */
#   define S_IWUSR  S_IWRITE                    /* Write user */
#   define S_IXUSR  0                           /* Execute user */

#   define S_IRGRP  0                           /* Read group */
#   define S_IWGRP  0                           /* Write group */
#   define S_IXGRP  0                           /* Execute group */

#   define S_IROTH  0                           /* Read others */
#   define S_IWOTH  0                           /* Write others */
#   define S_IXOTH  0                           /* Execute others */
#endif

/* File type flags for d_type */
#define DT_UNKNOWN  0







>



>



>







70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#   define S_IFLNK   0                          /* Link */
#endif
#if !defined(S_IFSOCK)
#   define S_IFSOCK  0                          /* Socket */
#endif

#if defined(_MSC_VER)
#   define S_IRWXU  0                           /* RWX user */
#   define S_IRUSR  S_IREAD                     /* Read user */
#   define S_IWUSR  S_IWRITE                    /* Write user */
#   define S_IXUSR  0                           /* Execute user */
#   define S_IRWXG  0                           /* RWX group */
#   define S_IRGRP  0                           /* Read group */
#   define S_IWGRP  0                           /* Write group */
#   define S_IXGRP  0                           /* Execute group */
#   define S_IRWXO  0                           /* RWX others */
#   define S_IROTH  0                           /* Read others */
#   define S_IWOTH  0                           /* Write others */
#   define S_IXOTH  0                           /* Execute others */
#endif

/* File type flags for d_type */
#define DT_UNKNOWN  0
Changes to jni/libressl/include/compat/sys/time.h.
8
9
10
11
12
13
14












15
16

#ifdef _MSC_VER
#include <winsock2.h>
int gettimeofday(struct timeval *tp, void *tzp);
#else
#include_next <sys/time.h>
#endif













#endif







>
>
>
>
>
>
>
>
>
>
>
>


8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

#ifdef _MSC_VER
#include <winsock2.h>
int gettimeofday(struct timeval *tp, void *tzp);
#else
#include_next <sys/time.h>
#endif

#ifndef timersub
#define timersub(tvp, uvp, vvp)                                         \
	do {                                                            \
		(vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec;          \
		(vvp)->tv_usec = (tvp)->tv_usec - (uvp)->tv_usec;       \
		if ((vvp)->tv_usec < 0) {                               \
			(vvp)->tv_sec--;                                \
			(vvp)->tv_usec += 1000000;                      \
		}                                                       \
	} while (0)
#endif

#endif
Changes to jni/libressl/include/compat/sys/types.h.
17
18
19
20
21
22
23

24
25
26
27
28
29
30


31
32
33
34
35
36
37
#define LIBCRYPTOCOMPAT_SYS_TYPES_H

#include <stdint.h>

#ifdef __MINGW32__
#include <_bsd_types.h>
typedef uint32_t        in_addr_t;

#endif

#ifdef _MSC_VER
typedef unsigned char   u_char;
typedef unsigned short  u_short;
typedef unsigned int    u_int;
typedef uint32_t        in_addr_t;



#include <basetsd.h>
typedef SSIZE_T ssize_t;

#ifndef SSIZE_MAX
#ifdef _WIN64
#define SSIZE_MAX _I64_MAX







>







>
>







17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#define LIBCRYPTOCOMPAT_SYS_TYPES_H

#include <stdint.h>

#ifdef __MINGW32__
#include <_bsd_types.h>
typedef uint32_t        in_addr_t;
typedef uint32_t        uid_t;
#endif

#ifdef _MSC_VER
typedef unsigned char   u_char;
typedef unsigned short  u_short;
typedef unsigned int    u_int;
typedef uint32_t        in_addr_t;
typedef uint32_t        mode_t;
typedef uint32_t        uid_t;

#include <basetsd.h>
typedef SSIZE_T ssize_t;

#ifndef SSIZE_MAX
#ifdef _WIN64
#define SSIZE_MAX _I64_MAX
Changes to jni/libressl/include/compat/time.h.
9
10
11
12
13
14
15



16
17
18
19
20
21
22



























23
#else
#include <../include/time.h>
#endif
#else
#include_next <time.h>
#endif




#ifdef _WIN32
struct tm *__gmtime_r(const time_t * t, struct tm * tm);
#define gmtime_r(tp, tm) __gmtime_r(tp, tm)
#endif

#ifndef HAVE_TIMEGM
time_t timegm(struct tm *tm);



























#endif







>
>
>







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#else
#include <../include/time.h>
#endif
#else
#include_next <time.h>
#endif

#ifndef LIBCRYPTOCOMPAT_TIME_H
#define LIBCRYPTOCOMPAT_TIME_H

#ifdef _WIN32
struct tm *__gmtime_r(const time_t * t, struct tm * tm);
#define gmtime_r(tp, tm) __gmtime_r(tp, tm)
#endif

#ifndef HAVE_TIMEGM
time_t timegm(struct tm *tm);
#endif

#ifndef CLOCK_MONOTONIC
#define CLOCK_MONOTONIC CLOCK_REALTIME
#endif

#ifndef CLOCK_REALTIME
#define CLOCK_REALTIME 0
#endif

#ifndef HAVE_CLOCK_GETTIME
typedef int clockid_t;
int clock_gettime(clockid_t clock_id, struct timespec *tp);
#endif

#ifndef timespecsub
#define timespecsub(tsp, usp, vsp)                                      \
        do {                                                            \
                (vsp)->tv_sec = (tsp)->tv_sec - (usp)->tv_sec;          \
                (vsp)->tv_nsec = (tsp)->tv_nsec - (usp)->tv_nsec;       \
                if ((vsp)->tv_nsec < 0) {                               \
                        (vsp)->tv_sec--;                                \
                        (vsp)->tv_nsec += 1000000000L;                  \
                }                                                       \
        } while (0)
#endif

#endif
Changes to jni/libressl/include/compat/unistd.h.
1
2
3
4
5
6
7
8
9

10








11
12
13
14
15
16
17
18
19
20
21
22
23
24




25
26
27
28





29
30
31
32
33
34
35
/*
 * Public domain
 * unistd.h compatibility shim
 */

#ifndef LIBCRYPTOCOMPAT_UNISTD_H
#define LIBCRYPTOCOMPAT_UNISTD_H

#ifndef _MSC_VER

#include_next <unistd.h>








#else

#include <stdlib.h>
#include <io.h>
#include <process.h>

#define STDOUT_FILENO   1
#define STDERR_FILENO   2

#define R_OK    4
#define W_OK    2
#define X_OK    0
#define F_OK    0





#define access _access

unsigned int sleep(unsigned int seconds);






#endif

#ifndef HAVE_GETENTROPY
int getentropy(void *buf, size_t buflen);
#else
/*
 * Solaris 11.3 adds getentropy(2), but defines the function in sys/random.h









>

>
>
>
>
>
>
>
>














>
>
>
>




>
>
>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/*
 * Public domain
 * unistd.h compatibility shim
 */

#ifndef LIBCRYPTOCOMPAT_UNISTD_H
#define LIBCRYPTOCOMPAT_UNISTD_H

#ifndef _MSC_VER

#include_next <unistd.h>

#ifdef __MINGW32__
int ftruncate(int fd, off_t length);
uid_t getuid(void);
ssize_t pread(int d, void *buf, size_t nbytes, off_t offset);
ssize_t pwrite(int d, const void *buf, size_t nbytes, off_t offset);
#endif

#else

#include <stdlib.h>
#include <io.h>
#include <process.h>

#define STDOUT_FILENO   1
#define STDERR_FILENO   2

#define R_OK    4
#define W_OK    2
#define X_OK    0
#define F_OK    0

#define SEEK_SET        0
#define SEEK_CUR        1
#define SEEK_END        2

#define access _access

unsigned int sleep(unsigned int seconds);

int ftruncate(int fd, off_t length);
uid_t getuid(void);
ssize_t pread(int d, void *buf, size_t nbytes, off_t offset);
ssize_t pwrite(int d, const void *buf, size_t nbytes, off_t offset);

#endif

#ifndef HAVE_GETENTROPY
int getentropy(void *buf, size_t buflen);
#else
/*
 * Solaris 11.3 adds getentropy(2), but defines the function in sys/random.h
Changes to jni/libressl/include/openssl/asn1.h.
1
2
3
4
5
6
7
8
/* $OpenBSD: asn1.h,v 1.43 2017/05/06 17:12:59 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: asn1.h,v 1.44 2018/02/14 16:46:04 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
780
781
782
783
784
785
786
787

788
789
790
791
792
793
794
  /* Since this is used to store all sorts of things, via macros, for now, make
     its data void * */
int ASN1_STRING_set(ASN1_STRING *str, const void *data, int len);
void ASN1_STRING_set0(ASN1_STRING *str, void *data, int len);
int ASN1_STRING_length(const ASN1_STRING *x);
void ASN1_STRING_length_set(ASN1_STRING *x, int n);
int ASN1_STRING_type(ASN1_STRING *x);
unsigned char * ASN1_STRING_data(ASN1_STRING *x);


ASN1_BIT_STRING *ASN1_BIT_STRING_new(void);
void ASN1_BIT_STRING_free(ASN1_BIT_STRING *a);
ASN1_BIT_STRING *d2i_ASN1_BIT_STRING(ASN1_BIT_STRING **a, const unsigned char **in, long len);
int i2d_ASN1_BIT_STRING(ASN1_BIT_STRING *a, unsigned char **out);
extern const ASN1_ITEM ASN1_BIT_STRING_it;
int i2c_ASN1_BIT_STRING(ASN1_BIT_STRING *a, unsigned char **pp);







|
>







780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
  /* Since this is used to store all sorts of things, via macros, for now, make
     its data void * */
int ASN1_STRING_set(ASN1_STRING *str, const void *data, int len);
void ASN1_STRING_set0(ASN1_STRING *str, void *data, int len);
int ASN1_STRING_length(const ASN1_STRING *x);
void ASN1_STRING_length_set(ASN1_STRING *x, int n);
int ASN1_STRING_type(ASN1_STRING *x);
unsigned char *ASN1_STRING_data(ASN1_STRING *x);
const unsigned char *ASN1_STRING_get0_data(const ASN1_STRING *x);

ASN1_BIT_STRING *ASN1_BIT_STRING_new(void);
void ASN1_BIT_STRING_free(ASN1_BIT_STRING *a);
ASN1_BIT_STRING *d2i_ASN1_BIT_STRING(ASN1_BIT_STRING **a, const unsigned char **in, long len);
int i2d_ASN1_BIT_STRING(ASN1_BIT_STRING *a, unsigned char **out);
extern const ASN1_ITEM ASN1_BIT_STRING_it;
int i2c_ASN1_BIT_STRING(ASN1_BIT_STRING *a, unsigned char **pp);
Changes to jni/libressl/include/openssl/bio.h.
1
2
3
4
5
6
7
8
/* $OpenBSD: bio.h,v 1.30 2017/04/06 18:25:38 deraadt Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 * 
|







1
2
3
4
5
6
7
8
/* $OpenBSD: bio.h,v 1.40 2018/03/17 15:05:55 tb Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 * 
99
100
101
102
103
104
105






106
107
108
109
110
111
112
#define BIO_TYPE_ASN1 		(22|0x0200)		/* filter */
#define BIO_TYPE_COMP 		(23|0x0200)		/* filter */

#define BIO_TYPE_DESCRIPTOR	0x0100	/* socket, fd, connect or accept */
#define BIO_TYPE_FILTER		0x0200
#define BIO_TYPE_SOURCE_SINK	0x0400







/* BIO_FILENAME_READ|BIO_CLOSE to open or close on free.
 * BIO_set_fp(in,stdin,BIO_NOCLOSE); */
#define BIO_NOCLOSE		0x00
#define BIO_CLOSE		0x01

/* These are used in the following macros and are passed to
 * BIO_ctrl() */







>
>
>
>
>
>







99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#define BIO_TYPE_ASN1 		(22|0x0200)		/* filter */
#define BIO_TYPE_COMP 		(23|0x0200)		/* filter */

#define BIO_TYPE_DESCRIPTOR	0x0100	/* socket, fd, connect or accept */
#define BIO_TYPE_FILTER		0x0200
#define BIO_TYPE_SOURCE_SINK	0x0400

/*
 * BIO_TYPE_START is the first user-allocated BIO type. No pre-defined type,
 * flag bits aside, may exceed this value.
 */
#define BIO_TYPE_START 128

/* BIO_FILENAME_READ|BIO_CLOSE to open or close on free.
 * BIO_set_fp(in,stdin,BIO_NOCLOSE); */
#define BIO_NOCLOSE		0x00
#define BIO_CLOSE		0x01

/* These are used in the following macros and are passed to
 * BIO_ctrl() */
260
261
262
263
264
265
266

267
268
269
270
271
272
273
char *BIO_get_callback_arg(const BIO *b);
void BIO_set_callback_arg(BIO *b, char *arg);

const char * BIO_method_name(const BIO *b);
int BIO_method_type(const BIO *b);

typedef void bio_info_cb(struct bio_st *, int, const char *, int, long, long);


typedef struct bio_method_st {
	int type;
	const char *name;
	int (*bwrite)(BIO *, const char *, int);
	int (*bread)(BIO *, char *, int);
	int (*bputs)(BIO *, const char *);







>







266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
char *BIO_get_callback_arg(const BIO *b);
void BIO_set_callback_arg(BIO *b, char *arg);

const char * BIO_method_name(const BIO *b);
int BIO_method_type(const BIO *b);

typedef void bio_info_cb(struct bio_st *, int, const char *, int, long, long);
typedef int BIO_info_cb(BIO *, int, int);

typedef struct bio_method_st {
	int type;
	const char *name;
	int (*bwrite)(BIO *, const char *, int);
	int (*bread)(BIO *, char *, int);
	int (*bputs)(BIO *, const char *);
323
324
325
326
327
328
329





















330
331
332
333
334
335
336
	int obuf_len;	/* how many bytes are in it */
	int obuf_off;	/* write/read offset */
} BIO_F_BUFFER_CTX;

/* Prefix and suffix callback in ASN1 BIO */
typedef int asn1_ps_func(BIO *b, unsigned char **pbuf, int *plen, void *parg);























/* connect BIO stuff */
#define BIO_CONN_S_BEFORE		1
#define BIO_CONN_S_GET_IP		2
#define BIO_CONN_S_GET_PORT		3
#define BIO_CONN_S_CREATE_SOCKET	4
#define BIO_CONN_S_CONNECT		5







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
	int obuf_len;	/* how many bytes are in it */
	int obuf_off;	/* write/read offset */
} BIO_F_BUFFER_CTX;

/* Prefix and suffix callback in ASN1 BIO */
typedef int asn1_ps_func(BIO *b, unsigned char **pbuf, int *plen, void *parg);

/* BIO_METHOD accessors */
BIO_METHOD *BIO_meth_new(int type, const char *name);
void BIO_meth_free(BIO_METHOD *biom);
int (*BIO_meth_get_write(BIO_METHOD *biom))(BIO *, const char *, int);
int BIO_meth_set_write(BIO_METHOD *biom,
    int (*write)(BIO *, const char *, int));
int (*BIO_meth_get_read(BIO_METHOD *biom))(BIO *, char *, int);
int BIO_meth_set_read(BIO_METHOD *biom, int (*read)(BIO *, char *, int));
int (*BIO_meth_get_puts(BIO_METHOD *biom))(BIO *, const char *);
int BIO_meth_set_puts(BIO_METHOD *biom, int (*puts)(BIO *, const char *));
int (*BIO_meth_get_gets(BIO_METHOD *biom))(BIO *, char *, int);
int BIO_meth_set_gets(BIO_METHOD *biom, int (*gets)(BIO *, char *, int));
long (*BIO_meth_get_ctrl(BIO_METHOD *biom))(BIO *, int, long, void *);
int BIO_meth_set_ctrl(BIO_METHOD *biom, long (*ctrl)(BIO *, int, long, void *));
int (*BIO_meth_get_create(BIO_METHOD *biom))(BIO *);
int BIO_meth_set_create(BIO_METHOD *biom, int (*create)(BIO *));
int (*BIO_meth_get_destroy(BIO_METHOD *biom))(BIO *);
int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy)(BIO *));
long (*BIO_meth_get_callback_ctrl(BIO_METHOD *biom))(BIO *, int, BIO_info_cb *);
int BIO_meth_set_callback_ctrl(BIO_METHOD *biom,
    long (*callback_ctrl)(BIO *, int, BIO_info_cb *));

/* connect BIO stuff */
#define BIO_CONN_S_BEFORE		1
#define BIO_CONN_S_GET_IP		2
#define BIO_CONN_S_GET_PORT		3
#define BIO_CONN_S_CREATE_SOCKET	4
#define BIO_CONN_S_CONNECT		5
564
565
566
567
568
569
570

571
572
573
574
575
576
577






578
579
580
581
582
583
584
int
BIO_asn1_set_suffix(BIO *b, asn1_ps_func *suffix,
asn1_ps_func *suffix_free);
int
BIO_asn1_get_suffix(BIO *b, asn1_ps_func **psuffix,
asn1_ps_func **psuffix_free);


BIO_METHOD *BIO_s_file(void );
BIO *BIO_new_file(const char *filename, const char *mode);
BIO *BIO_new_fp(FILE *stream, int close_flag);
# define BIO_s_file_internal	BIO_s_file
BIO *	BIO_new(BIO_METHOD *type);
int	BIO_set(BIO *a, BIO_METHOD *type);
int	BIO_free(BIO *a);






void	BIO_vfree(BIO *a);
int	BIO_read(BIO *b, void *data, int len)
		__attribute__((__bounded__(__buffer__,2,3)));
int	BIO_gets(BIO *bp, char *buf, int size)
		__attribute__((__bounded__ (__string__,2,3)));
int	BIO_write(BIO *b, const void *data, int len)
		__attribute__((__bounded__(__buffer__,2,3)));







>







>
>
>
>
>
>







592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
int
BIO_asn1_set_suffix(BIO *b, asn1_ps_func *suffix,
asn1_ps_func *suffix_free);
int
BIO_asn1_get_suffix(BIO *b, asn1_ps_func **psuffix,
asn1_ps_func **psuffix_free);

int BIO_get_new_index(void);
BIO_METHOD *BIO_s_file(void );
BIO *BIO_new_file(const char *filename, const char *mode);
BIO *BIO_new_fp(FILE *stream, int close_flag);
# define BIO_s_file_internal	BIO_s_file
BIO *	BIO_new(BIO_METHOD *type);
int	BIO_set(BIO *a, BIO_METHOD *type);
int	BIO_free(BIO *a);
int	BIO_up_ref(BIO *bio);
void 	*BIO_get_data(BIO *a);
void 	BIO_set_data(BIO *a, void *ptr);
void 	BIO_set_init(BIO *a, int init);
int	BIO_get_shutdown(BIO *a);
void	BIO_set_shutdown(BIO *a, int shut);
void	BIO_vfree(BIO *a);
int	BIO_read(BIO *b, void *data, int len)
		__attribute__((__bounded__(__buffer__,2,3)));
int	BIO_gets(BIO *bp, char *buf, int size)
		__attribute__((__bounded__ (__string__,2,3)));
int	BIO_write(BIO *b, const void *data, int len)
		__attribute__((__bounded__(__buffer__,2,3)));
Changes to jni/libressl/include/openssl/bn.h.
1
2
3
4
5
6
7
8
/* $OpenBSD: bn.h,v 1.36 2017/01/25 06:15:44 beck Exp $ */
/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: bn.h,v 1.38 2018/02/20 17:13:14 jsing Exp $ */
/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
281
282
283
284
285
286
287





288
289
290
291
292
293
294
	union {
		/* if(ver==1) - handles old style callbacks */
		void (*cb_1)(int, int, void *);
		/* if(ver==2) - new callback style */
		int (*cb_2)(int, int, BN_GENCB *);
	} cb;
};





/* Wrapper function to make using BN_GENCB easier,  */
int BN_GENCB_call(BN_GENCB *cb, int a, int b);
/* Macro to populate a BN_GENCB structure with an "old"-style callback */
#define BN_GENCB_set_old(gencb, callback, cb_arg) { \
		BN_GENCB *tmp_gencb = (gencb); \
		tmp_gencb->ver = 1; \
		tmp_gencb->arg = (cb_arg); \







>
>
>
>
>







281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
	union {
		/* if(ver==1) - handles old style callbacks */
		void (*cb_1)(int, int, void *);
		/* if(ver==2) - new callback style */
		int (*cb_2)(int, int, BN_GENCB *);
	} cb;
};

BN_GENCB *BN_GENCB_new(void);
void BN_GENCB_free(BN_GENCB *cb);
void *BN_GENCB_get_arg(BN_GENCB *cb);

/* Wrapper function to make using BN_GENCB easier,  */
int BN_GENCB_call(BN_GENCB *cb, int a, int b);
/* Macro to populate a BN_GENCB structure with an "old"-style callback */
#define BN_GENCB_set_old(gencb, callback, cb_arg) { \
		BN_GENCB *tmp_gencb = (gencb); \
		tmp_gencb->ver = 1; \
		tmp_gencb->arg = (cb_arg); \
624
625
626
627
628
629
630


631
632
633
634
635
636
637
638






639
640
641
642
643
644
645
const BIGNUM *BN_get0_nist_prime_256(void);
const BIGNUM *BN_get0_nist_prime_384(void);
const BIGNUM *BN_get0_nist_prime_521(void);

/* Primes from RFC 2409 */
BIGNUM *get_rfc2409_prime_768(BIGNUM *bn);
BIGNUM *get_rfc2409_prime_1024(BIGNUM *bn);



/* Primes from RFC 3526 */
BIGNUM *get_rfc3526_prime_1536(BIGNUM *bn);
BIGNUM *get_rfc3526_prime_2048(BIGNUM *bn);
BIGNUM *get_rfc3526_prime_3072(BIGNUM *bn);
BIGNUM *get_rfc3526_prime_4096(BIGNUM *bn);
BIGNUM *get_rfc3526_prime_6144(BIGNUM *bn);
BIGNUM *get_rfc3526_prime_8192(BIGNUM *bn);







/* BEGIN ERROR CODES */
/* The following lines are auto generated by the script mkerr.pl. Any changes
 * made after this point may be overwritten when the script is next run.
 */
void ERR_load_BN_strings(void);








>
>








>
>
>
>
>
>







629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
const BIGNUM *BN_get0_nist_prime_256(void);
const BIGNUM *BN_get0_nist_prime_384(void);
const BIGNUM *BN_get0_nist_prime_521(void);

/* Primes from RFC 2409 */
BIGNUM *get_rfc2409_prime_768(BIGNUM *bn);
BIGNUM *get_rfc2409_prime_1024(BIGNUM *bn);
BIGNUM *BN_get_rfc2409_prime_768(BIGNUM *bn);
BIGNUM *BN_get_rfc2409_prime_1024(BIGNUM *bn);

/* Primes from RFC 3526 */
BIGNUM *get_rfc3526_prime_1536(BIGNUM *bn);
BIGNUM *get_rfc3526_prime_2048(BIGNUM *bn);
BIGNUM *get_rfc3526_prime_3072(BIGNUM *bn);
BIGNUM *get_rfc3526_prime_4096(BIGNUM *bn);
BIGNUM *get_rfc3526_prime_6144(BIGNUM *bn);
BIGNUM *get_rfc3526_prime_8192(BIGNUM *bn);
BIGNUM *BN_get_rfc3526_prime_1536(BIGNUM *bn);
BIGNUM *BN_get_rfc3526_prime_2048(BIGNUM *bn);
BIGNUM *BN_get_rfc3526_prime_3072(BIGNUM *bn);
BIGNUM *BN_get_rfc3526_prime_4096(BIGNUM *bn);
BIGNUM *BN_get_rfc3526_prime_6144(BIGNUM *bn);
BIGNUM *BN_get_rfc3526_prime_8192(BIGNUM *bn);

/* BEGIN ERROR CODES */
/* The following lines are auto generated by the script mkerr.pl. Any changes
 * made after this point may be overwritten when the script is next run.
 */
void ERR_load_BN_strings(void);

Changes to jni/libressl/include/openssl/crypto.h.
1
2
3
4
5
6
7
8
/* $OpenBSD: crypto.h,v 1.41 2017/04/29 21:48:43 jsing Exp $ */
/* ====================================================================
 * Copyright (c) 1998-2006 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: crypto.h,v 1.45 2018/03/19 03:35:38 beck Exp $ */
/* ====================================================================
 * Copyright (c) 1998-2006 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
326
327
328
329
330
331
332








333
334
335
336
337
338
339
#define OPENSSL_freeFunc	CRYPTO_free
#define OPENSSL_free(addr)	CRYPTO_free(addr)

#define OPENSSL_malloc_locked(num) \
	CRYPTO_malloc_locked((int)num,__FILE__,__LINE__)
#define OPENSSL_free_locked(addr) CRYPTO_free_locked(addr)










const char *SSLeay_version(int type);
unsigned long SSLeay(void);

/* An opaque type representing an implementation of "ex_data" support */
typedef struct st_CRYPTO_EX_DATA_IMPL	CRYPTO_EX_DATA_IMPL;
/* Return an opaque pointer to the current "ex_data" implementation */







>
>
>
>
>
>
>
>







326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
#define OPENSSL_freeFunc	CRYPTO_free
#define OPENSSL_free(addr)	CRYPTO_free(addr)

#define OPENSSL_malloc_locked(num) \
	CRYPTO_malloc_locked((int)num,__FILE__,__LINE__)
#define OPENSSL_free_locked(addr) CRYPTO_free_locked(addr)

const char *OpenSSL_version(int type);
#define OPENSSL_VERSION		0
#define OPENSSL_CFLAGS		1
#define OPENSSL_BUILT_ON	2
#define OPENSSL_PLATFORM	3
#define OPENSSL_DIR		4
#define OPENSSL_ENGINES_DIR	5
unsigned long OpenSSL_version_num(void);

const char *SSLeay_version(int type);
unsigned long SSLeay(void);

/* An opaque type representing an implementation of "ex_data" support */
typedef struct st_CRYPTO_EX_DATA_IMPL	CRYPTO_EX_DATA_IMPL;
/* Return an opaque pointer to the current "ex_data" implementation */
530
531
532
533
534
535
536


































537
538
539
540
#define CRYPTO_F_INT_FREE_EX_DATA			 107
#define CRYPTO_F_INT_NEW_EX_DATA			 108

/* Reason codes. */
#define CRYPTO_R_FIPS_MODE_NOT_SUPPORTED		 101
#define CRYPTO_R_NO_DYNLOCK_CREATE_CALLBACK		 100



































#ifdef  __cplusplus
}
#endif
#endif







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>




538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
#define CRYPTO_F_INT_FREE_EX_DATA			 107
#define CRYPTO_F_INT_NEW_EX_DATA			 108

/* Reason codes. */
#define CRYPTO_R_FIPS_MODE_NOT_SUPPORTED		 101
#define CRYPTO_R_NO_DYNLOCK_CREATE_CALLBACK		 100

/*
 * OpenSSL compatible OPENSSL_INIT options.
 */

#define OPENSSL_INIT_NO_LOAD_CONFIG		0x00000001L
#define OPENSSL_INIT_LOAD_CONFIG		0x00000002L

/* LibreSSL specific */
#define _OPENSSL_INIT_FLAG_NOOP			0x80000000L

/*
 * These are provided for compatibiliy, but have no effect
 * on how LibreSSL is initialized.
 */
#define OPENSSL_INIT_NO_LOAD_CRYPTO_STRINGS	_OPENSSL_INIT_FLAG_NOOP
#define OPENSSL_INIT_LOAD_CRYPTO_STRINGS	_OPENSSL_INIT_FLAG_NOOP
#define OPENSSL_INIT_ADD_ALL_CIPHERS		_OPENSSL_INIT_FLAG_NOOP
#define OPENSSL_INIT_ADD_ALL_DIGESTS		_OPENSSL_INIT_FLAG_NOOP
#define OPENSSL_INIT_NO_ADD_ALL_CIPHERS		_OPENSSL_INIT_FLAG_NOOP
#define OPENSSL_INIT_NO_ADD_ALL_DIGESTS		_OPENSSL_INIT_FLAG_NOOP
#define OPENSSL_INIT_ASYNC			_OPENSSL_INIT_FLAG_NOOP
#define OPENSSL_INIT_ENGINE_RDRAND		_OPENSSL_INIT_FLAG_NOOP
#define OPENSSL_INIT_ENGINE_DYNAMIC		_OPENSSL_INIT_FLAG_NOOP
#define OPENSSL_INIT_ENGINE_OPENSSL		_OPENSSL_INIT_FLAG_NOOP
#define OPENSSL_INIT_ENGINE_CRYPTODEV		_OPENSSL_INIT_FLAG_NOOP
#define OPENSSL_INIT_ENGINE_CAPI		_OPENSSL_INIT_FLAG_NOOP
#define OPENSSL_INIT_ENGINE_PADLOCK		_OPENSSL_INIT_FLAG_NOOP
#define OPENSSL_INIT_ENGINE_AFALG		_OPENSSL_INIT_FLAG_NOOP
#define OPENSSL_INIT_reserved_internal		_OPENSSL_INIT_FLAG_NOOP
#define OPENSSL_INIT_ATFORK			_OPENSSL_INIT_FLAG_NOOP
#define OPENSSL_INIT_ENGINE_ALL_BUILTIN		_OPENSSL_INIT_FLAG_NOOP

int OPENSSL_init_crypto(uint64_t opts, const void *settings);

#ifdef  __cplusplus
}
#endif
#endif
Changes to jni/libressl/include/openssl/dh.h.
1
2
3
4
5
6
7
8
/* $OpenBSD: dh.h,v 1.18 2016/11/04 18:35:30 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 * 
|







1
2
3
4
5
6
7
8
/* $OpenBSD: dh.h,v 1.25 2018/02/22 16:41:04 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 * 
179
180
181
182
183
184
185

186
187
188
189
190











191
192
193
194
195
196
197
int DH_set_method(DH *dh, const DH_METHOD *meth);
DH *DH_new_method(ENGINE *engine);

DH *	DH_new(void);
void	DH_free(DH *dh);
int	DH_up_ref(DH *dh);
int	DH_size(const DH *dh);

int DH_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func,
	     CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func);
int DH_set_ex_data(DH *d, int idx, void *arg);
void *DH_get_ex_data(DH *d, int idx);












/* Deprecated version */
#ifndef OPENSSL_NO_DEPRECATED
DH *	DH_generate_parameters(int prime_len,int generator,
		void (*callback)(int,int,void *),void *cb_arg);
#endif /* !defined(OPENSSL_NO_DEPRECATED) */

/* New version */







>





>
>
>
>
>
>
>
>
>
>
>







179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
int DH_set_method(DH *dh, const DH_METHOD *meth);
DH *DH_new_method(ENGINE *engine);

DH *	DH_new(void);
void	DH_free(DH *dh);
int	DH_up_ref(DH *dh);
int	DH_size(const DH *dh);
int	DH_bits(const DH *dh);
int DH_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func,
	     CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func);
int DH_set_ex_data(DH *d, int idx, void *arg);
void *DH_get_ex_data(DH *d, int idx);

ENGINE *DH_get0_engine(DH *d);
void DH_get0_pqg(const DH *dh, const BIGNUM **p, const BIGNUM **q,
    const BIGNUM **g);
int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g);
void DH_get0_key(const DH *dh, const BIGNUM **pub_key, const BIGNUM **priv_key);
int DH_set0_key(DH *dh, BIGNUM *pub_key, BIGNUM *priv_key);
void DH_clear_flags(DH *dh, int flags);
int DH_test_flags(const DH *dh, int flags);
void DH_set_flags(DH *dh, int flags);
int DH_set_length(DH *dh, long length);

/* Deprecated version */
#ifndef OPENSSL_NO_DEPRECATED
DH *	DH_generate_parameters(int prime_len,int generator,
		void (*callback)(int,int,void *),void *cb_arg);
#endif /* !defined(OPENSSL_NO_DEPRECATED) */

/* New version */
Changes to jni/libressl/include/openssl/dsa.h.
1
2
3
4
5
6
7
8
/* $OpenBSD: dsa.h,v 1.22 2016/11/04 18:35:30 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 * 
|







1
2
3
4
5
6
7
8
/* $OpenBSD: dsa.h,v 1.30 2018/03/17 15:19:12 tb Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 * 
179
180
181
182
183
184
185


186
187
188
189
190
191
192
int i2d_DSAparams_fp(FILE *fp, DSA *a);

DSA *DSAparams_dup(DSA *x);
DSA_SIG * DSA_SIG_new(void);
void	DSA_SIG_free(DSA_SIG *a);
int	i2d_DSA_SIG(const DSA_SIG *a, unsigned char **pp);
DSA_SIG * d2i_DSA_SIG(DSA_SIG **v, const unsigned char **pp, long length);



DSA_SIG * DSA_do_sign(const unsigned char *dgst,int dlen,DSA *dsa);
int	DSA_do_verify(const unsigned char *dgst,int dgst_len,
		      DSA_SIG *sig,DSA *dsa);

const DSA_METHOD *DSA_OpenSSL(void);








>
>







179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
int i2d_DSAparams_fp(FILE *fp, DSA *a);

DSA *DSAparams_dup(DSA *x);
DSA_SIG * DSA_SIG_new(void);
void	DSA_SIG_free(DSA_SIG *a);
int	i2d_DSA_SIG(const DSA_SIG *a, unsigned char **pp);
DSA_SIG * d2i_DSA_SIG(DSA_SIG **v, const unsigned char **pp, long length);
void	DSA_SIG_get0(const DSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps);
int	DSA_SIG_set0(DSA_SIG *sig, BIGNUM *r, BIGNUM *s);

DSA_SIG * DSA_do_sign(const unsigned char *dgst,int dlen,DSA *dsa);
int	DSA_do_verify(const unsigned char *dgst,int dgst_len,
		      DSA_SIG *sig,DSA *dsa);

const DSA_METHOD *DSA_OpenSSL(void);

252
253
254
255
256
257
258

















259
260
261
262
263
264
265
	BN_is_prime(n, DSS_prime_checks, callback, NULL, cb_arg)

#ifndef OPENSSL_NO_DH
/* Convert DSA structure (key or just parameters) into DH structure
 * (be careful to avoid small subgroup attacks when using this!) */
DH *DSA_dup_DH(const DSA *r);
#endif


















#define EVP_PKEY_CTX_set_dsa_paramgen_bits(ctx, nbits) \
	EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DSA, EVP_PKEY_OP_PARAMGEN, \
				EVP_PKEY_CTRL_DSA_PARAMGEN_BITS, nbits, NULL)

#define	EVP_PKEY_CTRL_DSA_PARAMGEN_BITS		(EVP_PKEY_ALG_CTRL + 1)
#define	EVP_PKEY_CTRL_DSA_PARAMGEN_Q_BITS	(EVP_PKEY_ALG_CTRL + 2)







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
	BN_is_prime(n, DSS_prime_checks, callback, NULL, cb_arg)

#ifndef OPENSSL_NO_DH
/* Convert DSA structure (key or just parameters) into DH structure
 * (be careful to avoid small subgroup attacks when using this!) */
DH *DSA_dup_DH(const DSA *r);
#endif

void DSA_get0_pqg(const DSA *d, const BIGNUM **p, const BIGNUM **q,
    const BIGNUM **g);
int DSA_set0_pqg(DSA *d, BIGNUM *p, BIGNUM *q, BIGNUM *g);
void DSA_get0_key(const DSA *d, const BIGNUM **pub_key, const BIGNUM **priv_key);
int DSA_set0_key(DSA *d, BIGNUM *pub_key, BIGNUM *priv_key);
void DSA_clear_flags(DSA *d, int flags);
int DSA_test_flags(const DSA *d, int flags);
void DSA_set_flags(DSA *d, int flags);
ENGINE *DSA_get0_engine(DSA *d);

DSA_METHOD *DSA_meth_new(const char *name, int flags);
void DSA_meth_free(DSA_METHOD *meth);
DSA_METHOD *DSA_meth_dup(const DSA_METHOD *meth);
int DSA_meth_set_sign(DSA_METHOD *meth,
    DSA_SIG *(*sign)(const unsigned char *, int, DSA *));
int DSA_meth_set_finish(DSA_METHOD *meth, int (*finish)(DSA *));

#define EVP_PKEY_CTX_set_dsa_paramgen_bits(ctx, nbits) \
	EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DSA, EVP_PKEY_OP_PARAMGEN, \
				EVP_PKEY_CTRL_DSA_PARAMGEN_BITS, nbits, NULL)

#define	EVP_PKEY_CTRL_DSA_PARAMGEN_BITS		(EVP_PKEY_ALG_CTRL + 1)
#define	EVP_PKEY_CTRL_DSA_PARAMGEN_Q_BITS	(EVP_PKEY_ALG_CTRL + 2)
Changes to jni/libressl/include/openssl/ecdsa.h.
1
2
3
4
5
6
7
8
/* $OpenBSD: ecdsa.h,v 1.4 2015/02/08 13:35:06 jsing Exp $ */
/**
 * \file   crypto/ecdsa/ecdsa.h Include file for the OpenSSL ECDSA functions
 * \author Written by Nils Larsch for the OpenSSL project
 */
/* ====================================================================
 * Copyright (c) 2000-2005 The OpenSSL Project.  All rights reserved.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: ecdsa.h,v 1.5 2018/03/17 15:24:44 tb Exp $ */
/**
 * \file   crypto/ecdsa/ecdsa.h Include file for the OpenSSL ECDSA functions
 * \author Written by Nils Larsch for the OpenSSL project
 */
/* ====================================================================
 * Copyright (c) 2000-2005 The OpenSSL Project.  All rights reserved.
 *
129
130
131
132
133
134
135














136
137
138
139
140
141
142
 *  \param  sig  pointer to ECDSA_SIG pointer (may be NULL)
 *  \param  pp   memory buffer with the DER encoded signature
 *  \param  len  length of the buffer
 *  \return pointer to the decoded ECDSA_SIG structure (or NULL)
 */
ECDSA_SIG *d2i_ECDSA_SIG(ECDSA_SIG **sig, const unsigned char **pp, long len);















/** Computes the ECDSA signature of the given hash value using
 *  the supplied private key and returns the created signature.
 *  \param  dgst      pointer to the hash value
 *  \param  dgst_len  length of the hash value
 *  \param  eckey     EC_KEY object containing a private EC key
 *  \return pointer to a ECDSA_SIG structure or NULL if an error occurred
 */







>
>
>
>
>
>
>
>
>
>
>
>
>
>







129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
 *  \param  sig  pointer to ECDSA_SIG pointer (may be NULL)
 *  \param  pp   memory buffer with the DER encoded signature
 *  \param  len  length of the buffer
 *  \return pointer to the decoded ECDSA_SIG structure (or NULL)
 */
ECDSA_SIG *d2i_ECDSA_SIG(ECDSA_SIG **sig, const unsigned char **pp, long len);

/** Accessor for r and s fields of ECDSA_SIG
 *  \param  sig  pointer to ECDSA_SIG pointer
 *  \param  pr   pointer to BIGNUM pointer for r (may be NULL)
 *  \param  ps   pointer to BIGNUM pointer for s (may be NULL)
 */
void ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps);

/** Setter for r and s fields of ECDSA_SIG
 *  \param  sig  pointer to ECDSA_SIG pointer
 *  \param  r    pointer to BIGNUM for r (may be NULL)
 *  \param  s    pointer to BIGNUM for s (may be NULL)
 */
int ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s);

/** Computes the ECDSA signature of the given hash value using
 *  the supplied private key and returns the created signature.
 *  \param  dgst      pointer to the hash value
 *  \param  dgst_len  length of the hash value
 *  \param  eckey     EC_KEY object containing a private EC key
 *  \return pointer to a ECDSA_SIG structure or NULL if an error occurred
 */
Changes to jni/libressl/include/openssl/evp.h.
1
2
3
4
5
6
7
8
/* $OpenBSD: evp.h,v 1.53 2017/08/28 17:48:02 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: evp.h,v 1.58 2018/02/20 18:05:28 tb Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
531
532
533
534
535
536
537


538
539
540
541

542
543
544
545
546

547
548
549
550
551
552
553
#define EVP_add_digest_alias(n,alias) \
	OBJ_NAME_add((alias),OBJ_NAME_TYPE_MD_METH|OBJ_NAME_ALIAS,(n))
#define EVP_delete_cipher_alias(alias) \
	OBJ_NAME_remove(alias,OBJ_NAME_TYPE_CIPHER_METH|OBJ_NAME_ALIAS);
#define EVP_delete_digest_alias(alias) \
	OBJ_NAME_remove(alias,OBJ_NAME_TYPE_MD_METH|OBJ_NAME_ALIAS);



void EVP_MD_CTX_init(EVP_MD_CTX *ctx);
int EVP_MD_CTX_cleanup(EVP_MD_CTX *ctx);
EVP_MD_CTX *EVP_MD_CTX_create(void);
void EVP_MD_CTX_destroy(EVP_MD_CTX *ctx);

int EVP_MD_CTX_copy_ex(EVP_MD_CTX *out, const EVP_MD_CTX *in);
void EVP_MD_CTX_set_flags(EVP_MD_CTX *ctx, int flags);
void EVP_MD_CTX_clear_flags(EVP_MD_CTX *ctx, int flags);
int EVP_MD_CTX_ctrl(EVP_MD_CTX *ctx, int type, int arg, void *ptr);
int EVP_MD_CTX_test_flags(const EVP_MD_CTX *ctx, int flags);

int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl);
int EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *d, size_t cnt);
int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s);
int EVP_Digest(const void *data, size_t count, unsigned char *md,
    unsigned int *size, const EVP_MD *type, ENGINE *impl);

int EVP_MD_CTX_copy(EVP_MD_CTX *out, const EVP_MD_CTX *in);







>
>

|


>





>







531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
#define EVP_add_digest_alias(n,alias) \
	OBJ_NAME_add((alias),OBJ_NAME_TYPE_MD_METH|OBJ_NAME_ALIAS,(n))
#define EVP_delete_cipher_alias(alias) \
	OBJ_NAME_remove(alias,OBJ_NAME_TYPE_CIPHER_METH|OBJ_NAME_ALIAS);
#define EVP_delete_digest_alias(alias) \
	OBJ_NAME_remove(alias,OBJ_NAME_TYPE_MD_METH|OBJ_NAME_ALIAS);

EVP_MD_CTX *EVP_MD_CTX_new(void);
void EVP_MD_CTX_free(EVP_MD_CTX *ctx);
void EVP_MD_CTX_init(EVP_MD_CTX *ctx);
int EVP_MD_CTX_reset(EVP_MD_CTX *ctx);
EVP_MD_CTX *EVP_MD_CTX_create(void);
void EVP_MD_CTX_destroy(EVP_MD_CTX *ctx);
int EVP_MD_CTX_cleanup(EVP_MD_CTX *ctx);
int EVP_MD_CTX_copy_ex(EVP_MD_CTX *out, const EVP_MD_CTX *in);
void EVP_MD_CTX_set_flags(EVP_MD_CTX *ctx, int flags);
void EVP_MD_CTX_clear_flags(EVP_MD_CTX *ctx, int flags);
int EVP_MD_CTX_ctrl(EVP_MD_CTX *ctx, int type, int arg, void *ptr);
int EVP_MD_CTX_test_flags(const EVP_MD_CTX *ctx, int flags);

int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl);
int EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *d, size_t cnt);
int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s);
int EVP_Digest(const void *data, size_t count, unsigned char *md,
    unsigned int *size, const EVP_MD *type, ENGINE *impl);

int EVP_MD_CTX_copy(EVP_MD_CTX *out, const EVP_MD_CTX *in);
636
637
638
639
640
641
642

643
644
645
646
647
648
649
int EVP_DecodeFinal(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl);
int EVP_DecodeBlock(unsigned char *t, const unsigned char *f, int n);

void EVP_CIPHER_CTX_init(EVP_CIPHER_CTX *a);
int EVP_CIPHER_CTX_cleanup(EVP_CIPHER_CTX *a);
EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(void);
void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *a);

int EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *x, int keylen);
int EVP_CIPHER_CTX_set_padding(EVP_CIPHER_CTX *c, int pad);
int EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr);
int EVP_CIPHER_CTX_rand_key(EVP_CIPHER_CTX *ctx, unsigned char *key);

#ifndef OPENSSL_NO_BIO
BIO_METHOD *BIO_f_md(void);







>







640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
int EVP_DecodeFinal(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl);
int EVP_DecodeBlock(unsigned char *t, const unsigned char *f, int n);

void EVP_CIPHER_CTX_init(EVP_CIPHER_CTX *a);
int EVP_CIPHER_CTX_cleanup(EVP_CIPHER_CTX *a);
EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(void);
void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *a);
int EVP_CIPHER_CTX_reset(EVP_CIPHER_CTX *a);
int EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *x, int keylen);
int EVP_CIPHER_CTX_set_padding(EVP_CIPHER_CTX *c, int pad);
int EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr);
int EVP_CIPHER_CTX_rand_key(EVP_CIPHER_CTX *ctx, unsigned char *key);

#ifndef OPENSSL_NO_BIO
BIO_METHOD *BIO_f_md(void);
866
867
868
869
870
871
872
873
874

875
876
877
878
879

880
881
882
883
884

885
886
887
888
889

890
891
892
893
894
895
896

897
898
899
900
901
902
903
int EVP_PKEY_set_type(EVP_PKEY *pkey, int type);
int EVP_PKEY_set_type_str(EVP_PKEY *pkey, const char *str, int len);
int EVP_PKEY_assign(EVP_PKEY *pkey, int type, void *key);
void *EVP_PKEY_get0(EVP_PKEY *pkey);

#ifndef OPENSSL_NO_RSA
struct rsa_st;
int EVP_PKEY_set1_RSA(EVP_PKEY *pkey, struct rsa_st *key);
struct rsa_st *EVP_PKEY_get1_RSA(EVP_PKEY *pkey);

#endif
#ifndef OPENSSL_NO_DSA
struct dsa_st;
int EVP_PKEY_set1_DSA(EVP_PKEY *pkey, struct dsa_st *key);
struct dsa_st *EVP_PKEY_get1_DSA(EVP_PKEY *pkey);

#endif
#ifndef OPENSSL_NO_DH
struct dh_st;
int EVP_PKEY_set1_DH(EVP_PKEY *pkey, struct dh_st *key);
struct dh_st *EVP_PKEY_get1_DH(EVP_PKEY *pkey);

#endif
#ifndef OPENSSL_NO_EC
struct ec_key_st;
int EVP_PKEY_set1_EC_KEY(EVP_PKEY *pkey, struct ec_key_st *key);
struct ec_key_st *EVP_PKEY_get1_EC_KEY(EVP_PKEY *pkey);

#endif
#ifndef OPENSSL_NO_GOST
struct gost_key_st;
#endif

EVP_PKEY *EVP_PKEY_new(void);
void EVP_PKEY_free(EVP_PKEY *pkey);


EVP_PKEY *d2i_PublicKey(int type, EVP_PKEY **a, const unsigned char **pp,
    long length);
int i2d_PublicKey(EVP_PKEY *a, unsigned char **pp);

EVP_PKEY *d2i_PrivateKey(int type, EVP_PKEY **a, const unsigned char **pp,
    long length);







|

>



|

>



|

>



|

>







>







871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
int EVP_PKEY_set_type(EVP_PKEY *pkey, int type);
int EVP_PKEY_set_type_str(EVP_PKEY *pkey, const char *str, int len);
int EVP_PKEY_assign(EVP_PKEY *pkey, int type, void *key);
void *EVP_PKEY_get0(EVP_PKEY *pkey);

#ifndef OPENSSL_NO_RSA
struct rsa_st;
struct rsa_st *EVP_PKEY_get0_RSA(EVP_PKEY *pkey);
struct rsa_st *EVP_PKEY_get1_RSA(EVP_PKEY *pkey);
int EVP_PKEY_set1_RSA(EVP_PKEY *pkey, struct rsa_st *key);
#endif
#ifndef OPENSSL_NO_DSA
struct dsa_st;
struct dsa_st *EVP_PKEY_get0_DSA(EVP_PKEY *pkey);
struct dsa_st *EVP_PKEY_get1_DSA(EVP_PKEY *pkey);
int EVP_PKEY_set1_DSA(EVP_PKEY *pkey, struct dsa_st *key);
#endif
#ifndef OPENSSL_NO_DH
struct dh_st;
struct dh_st *EVP_PKEY_get0_DH(EVP_PKEY *pkey);
struct dh_st *EVP_PKEY_get1_DH(EVP_PKEY *pkey);
int EVP_PKEY_set1_DH(EVP_PKEY *pkey, struct dh_st *key);
#endif
#ifndef OPENSSL_NO_EC
struct ec_key_st;
struct ec_key_st *EVP_PKEY_get0_EC_KEY(EVP_PKEY *pkey);
struct ec_key_st *EVP_PKEY_get1_EC_KEY(EVP_PKEY *pkey);
int EVP_PKEY_set1_EC_KEY(EVP_PKEY *pkey, struct ec_key_st *key);
#endif
#ifndef OPENSSL_NO_GOST
struct gost_key_st;
#endif

EVP_PKEY *EVP_PKEY_new(void);
void EVP_PKEY_free(EVP_PKEY *pkey);
int EVP_PKEY_up_ref(EVP_PKEY *pkey);

EVP_PKEY *d2i_PublicKey(int type, EVP_PKEY **a, const unsigned char **pp,
    long length);
int i2d_PublicKey(EVP_PKEY *a, unsigned char **pp);

EVP_PKEY *d2i_PrivateKey(int type, EVP_PKEY **a, const unsigned char **pp,
    long length);
Changes to jni/libressl/include/openssl/hmac.h.
1
2
3
4
5
6
7
8
/* $OpenBSD: hmac.h,v 1.12 2014/06/21 13:39:46 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: hmac.h,v 1.13 2018/02/17 14:53:59 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
79
80
81
82
83
84
85
86

87

88
89
90
91
92
93
94
95
96
97
98
99
100
101
102

103
104
105
106
107
108
	EVP_MD_CTX o_ctx;
	unsigned int key_length;
	unsigned char key[HMAC_MAX_MD_CBLOCK];
} HMAC_CTX;

#define HMAC_size(e)	(EVP_MD_size((e)->md))



void HMAC_CTX_init(HMAC_CTX *ctx);

void HMAC_CTX_cleanup(HMAC_CTX *ctx);

#define HMAC_cleanup(ctx) HMAC_CTX_cleanup(ctx) /* deprecated */

int HMAC_Init(HMAC_CTX *ctx, const void *key, int len,
    const EVP_MD *md); /* deprecated */
int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len, const EVP_MD *md,
    ENGINE *impl);
int HMAC_Update(HMAC_CTX *ctx, const unsigned char *data, size_t len);
int HMAC_Final(HMAC_CTX *ctx, unsigned char *md, unsigned int *len);
unsigned char *HMAC(const EVP_MD *evp_md, const void *key, int key_len,
    const unsigned char *d, size_t n, unsigned char *md, unsigned int *md_len);
int HMAC_CTX_copy(HMAC_CTX *dctx, HMAC_CTX *sctx);

void HMAC_CTX_set_flags(HMAC_CTX *ctx, unsigned long flags);


#ifdef  __cplusplus
}
#endif

#endif







|
>

>















>






79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
	EVP_MD_CTX o_ctx;
	unsigned int key_length;
	unsigned char key[HMAC_MAX_MD_CBLOCK];
} HMAC_CTX;

#define HMAC_size(e)	(EVP_MD_size((e)->md))

HMAC_CTX *HMAC_CTX_new(void);
void HMAC_CTX_free(HMAC_CTX *ctx);
void HMAC_CTX_init(HMAC_CTX *ctx);
int HMAC_CTX_reset(HMAC_CTX *ctx);
void HMAC_CTX_cleanup(HMAC_CTX *ctx);

#define HMAC_cleanup(ctx) HMAC_CTX_cleanup(ctx) /* deprecated */

int HMAC_Init(HMAC_CTX *ctx, const void *key, int len,
    const EVP_MD *md); /* deprecated */
int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len, const EVP_MD *md,
    ENGINE *impl);
int HMAC_Update(HMAC_CTX *ctx, const unsigned char *data, size_t len);
int HMAC_Final(HMAC_CTX *ctx, unsigned char *md, unsigned int *len);
unsigned char *HMAC(const EVP_MD *evp_md, const void *key, int key_len,
    const unsigned char *d, size_t n, unsigned char *md, unsigned int *md_len);
int HMAC_CTX_copy(HMAC_CTX *dctx, HMAC_CTX *sctx);

void HMAC_CTX_set_flags(HMAC_CTX *ctx, unsigned long flags);
const EVP_MD *HMAC_CTX_get_md(const HMAC_CTX *ctx);

#ifdef  __cplusplus
}
#endif

#endif
Changes to jni/libressl/include/openssl/obj_mac.h.
4111
4112
4113
4114
4115
4116
4117




4118
4119
4120
4121
4122
4123
4124
#define SN_FRP256v1		"FRP256v1"
#define NID_FRP256v1		936
#define OBJ_FRP256v1		1L,2L,250L,1L,223L,101L,256L,1L

#define SN_chacha20		"ChaCha"
#define LN_chacha20		"chacha"
#define NID_chacha20		937





#define SN_gost89_ecb		"gost89-ecb"
#define NID_gost89_ecb		938

#define SN_gost89_cbc		"gost89-cbc"
#define NID_gost89_cbc		939








>
>
>
>







4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
#define SN_FRP256v1		"FRP256v1"
#define NID_FRP256v1		936
#define OBJ_FRP256v1		1L,2L,250L,1L,223L,101L,256L,1L

#define SN_chacha20		"ChaCha"
#define LN_chacha20		"chacha"
#define NID_chacha20		937

#define SN_chacha20_poly1305		"ChaCha20-Poly1305"
#define LN_chacha20_poly1305		"chacha20-poly1305"
#define NID_chacha20_poly1305		967

#define SN_gost89_ecb		"gost89-ecb"
#define NID_gost89_ecb		938

#define SN_gost89_cbc		"gost89-cbc"
#define NID_gost89_cbc		939

4187
4188
4189
4190
4191
4192
4193
4194
































#define SN_Ed25519ph		"Ed25519ph"
#define NID_Ed25519ph		954
#define OBJ_Ed25519ph		1L,3L,101L,114L

#define SN_Ed448ph		"Ed448ph"
#define NID_Ed448ph		955
#define OBJ_Ed448ph		1L,3L,101L,115L









































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
#define SN_Ed25519ph		"Ed25519ph"
#define NID_Ed25519ph		954
#define OBJ_Ed25519ph		1L,3L,101L,114L

#define SN_Ed448ph		"Ed448ph"
#define NID_Ed448ph		955
#define OBJ_Ed448ph		1L,3L,101L,115L

#define SN_kx_rsa		"KxRSA"
#define LN_kx_rsa		"kx-rsa"
#define NID_kx_rsa		959

#define SN_kx_ecdhe		"KxECDHE"
#define LN_kx_ecdhe		"kx-ecdhe"
#define NID_kx_ecdhe		960

#define SN_kx_dhe		"KxDHE"
#define LN_kx_dhe		"kx-dhe"
#define NID_kx_dhe		961

#define SN_kx_gost		"KxGOST"
#define LN_kx_gost		"kx-gost"
#define NID_kx_gost		962

#define SN_auth_rsa		"AuthRSA"
#define LN_auth_rsa		"auth-rsa"
#define NID_auth_rsa		963

#define SN_auth_ecdsa		"AuthECDSA"
#define LN_auth_ecdsa		"auth-ecdsa"
#define NID_auth_ecdsa		964

#define SN_auth_gost01		"AuthGOST01"
#define LN_auth_gost01		"auth-gost01"
#define NID_auth_gost01		965

#define SN_auth_null		"AuthNULL"
#define LN_auth_null		"auth-null"
#define NID_auth_null		966

Changes to jni/libressl/include/openssl/ocsp.h.
1
2
3
4
5
6
7
8
/* $OpenBSD: ocsp.h,v 1.11 2016/12/30 16:19:04 jsing Exp $ */
/* Written by Tom Titchener <Tom_Titchener@groove.net> for the OpenSSL
 * project. */

/* History:
   This file was transfered to Richard Levitte from CertCo by Kathy
   Weinhold in mid-spring 2000 to be included in OpenSSL or released
   as a patch kit. */
|







1
2
3
4
5
6
7
8
/* $OpenBSD: ocsp.h,v 1.12 2018/03/17 14:44:34 jsing Exp $ */
/* Written by Tom Titchener <Tom_Titchener@groove.net> for the OpenSSL
 * project. */

/* History:
   This file was transfered to Richard Levitte from CertCo by Kathy
   Weinhold in mid-spring 2000 to be included in OpenSSL or released
   as a patch kit. */
507
508
509
510
511
512
513

514
515
516
517
518
519
520
X509_EXTENSION *OCSP_SINGLERESP_delete_ext(OCSP_SINGLERESP *x, int loc);
void *OCSP_SINGLERESP_get1_ext_d2i(OCSP_SINGLERESP *x, int nid, int *crit,
	    int *idx);
int	OCSP_SINGLERESP_add1_ext_i2d(OCSP_SINGLERESP *x, int nid, void *value,
	    int crit, unsigned long flags);
int	OCSP_SINGLERESP_add_ext(OCSP_SINGLERESP *x, X509_EXTENSION *ex,
	    int loc);


OCSP_SINGLERESP *OCSP_SINGLERESP_new(void);
void OCSP_SINGLERESP_free(OCSP_SINGLERESP *a);
OCSP_SINGLERESP *d2i_OCSP_SINGLERESP(OCSP_SINGLERESP **a, const unsigned char **in, long len);
int i2d_OCSP_SINGLERESP(OCSP_SINGLERESP *a, unsigned char **out);
extern const ASN1_ITEM OCSP_SINGLERESP_it;
OCSP_CERTSTATUS *OCSP_CERTSTATUS_new(void);







>







507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
X509_EXTENSION *OCSP_SINGLERESP_delete_ext(OCSP_SINGLERESP *x, int loc);
void *OCSP_SINGLERESP_get1_ext_d2i(OCSP_SINGLERESP *x, int nid, int *crit,
	    int *idx);
int	OCSP_SINGLERESP_add1_ext_i2d(OCSP_SINGLERESP *x, int nid, void *value,
	    int crit, unsigned long flags);
int	OCSP_SINGLERESP_add_ext(OCSP_SINGLERESP *x, X509_EXTENSION *ex,
	    int loc);
const OCSP_CERTID *OCSP_SINGLERESP_get0_id(const OCSP_SINGLERESP *x);

OCSP_SINGLERESP *OCSP_SINGLERESP_new(void);
void OCSP_SINGLERESP_free(OCSP_SINGLERESP *a);
OCSP_SINGLERESP *d2i_OCSP_SINGLERESP(OCSP_SINGLERESP **a, const unsigned char **in, long len);
int i2d_OCSP_SINGLERESP(OCSP_SINGLERESP *a, unsigned char **out);
extern const ASN1_ITEM OCSP_SINGLERESP_it;
OCSP_CERTSTATUS *OCSP_CERTSTATUS_new(void);
Changes to jni/libressl/include/openssl/opensslv.h.
1
2
3
4
5
6

7
8
9
10
11
12
13
14
/* $OpenBSD: opensslv.h,v 1.43.4.1 2017/12/11 10:50:37 bcook Exp $ */
#ifndef HEADER_OPENSSLV_H
#define HEADER_OPENSSLV_H

/* These will change with each release of LibreSSL-portable */
#define LIBRESSL_VERSION_NUMBER	0x2060400fL

#define LIBRESSL_VERSION_TEXT	"LibreSSL 2.6.4"

/* These will never change */
#define OPENSSL_VERSION_NUMBER	0x20000000L
#define OPENSSL_VERSION_TEXT	LIBRESSL_VERSION_TEXT
#define OPENSSL_VERSION_PTEXT	" part of " OPENSSL_VERSION_TEXT

#define SHLIB_VERSION_HISTORY ""
|




|
>
|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/* $OpenBSD: opensslv.h,v 1.46 2018/03/24 13:51:27 bcook Exp $ */
#ifndef HEADER_OPENSSLV_H
#define HEADER_OPENSSLV_H

/* These will change with each release of LibreSSL-portable */
#define LIBRESSL_VERSION_NUMBER 0x2070200fL
/*                                    ^ Patch starts here   */
#define LIBRESSL_VERSION_TEXT   "LibreSSL 2.7.2"

/* These will never change */
#define OPENSSL_VERSION_NUMBER	0x20000000L
#define OPENSSL_VERSION_TEXT	LIBRESSL_VERSION_TEXT
#define OPENSSL_VERSION_PTEXT	" part of " OPENSSL_VERSION_TEXT

#define SHLIB_VERSION_HISTORY ""
Changes to jni/libressl/include/openssl/rsa.h.
1
2
3
4
5
6
7
8
/* $OpenBSD: rsa.h,v 1.31 2017/08/30 16:07:35 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: rsa.h,v 1.38 2018/03/17 15:12:56 tb Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
252
253
254
255
256
257
258

259
260
261
262
263
264
265
#define RSA_PKCS1_PADDING_SIZE	11

#define RSA_set_app_data(s,arg)         RSA_set_ex_data(s,0,arg)
#define RSA_get_app_data(s)             RSA_get_ex_data(s,0)

RSA *RSA_new(void);
RSA *RSA_new_method(ENGINE *engine);

int RSA_size(const RSA *rsa);

/* Deprecated version */
#ifndef OPENSSL_NO_DEPRECATED
RSA *RSA_generate_key(int bits, unsigned long e,
    void (*callback)(int, int, void *), void *cb_arg);
#endif /* !defined(OPENSSL_NO_DEPRECATED) */







>







252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
#define RSA_PKCS1_PADDING_SIZE	11

#define RSA_set_app_data(s,arg)         RSA_set_ex_data(s,0,arg)
#define RSA_get_app_data(s)             RSA_get_ex_data(s,0)

RSA *RSA_new(void);
RSA *RSA_new_method(ENGINE *engine);
int RSA_bits(const RSA *rsa);
int RSA_size(const RSA *rsa);

/* Deprecated version */
#ifndef OPENSSL_NO_DEPRECATED
RSA *RSA_generate_key(int bits, unsigned long e,
    void (*callback)(int, int, void *), void *cb_arg);
#endif /* !defined(OPENSSL_NO_DEPRECATED) */
391
392
393
394
395
396
397












398
399
400
401
402
403
404
    int sLen);

int RSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func,
    CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func);
int RSA_set_ex_data(RSA *r, int idx, void *arg);
void *RSA_get_ex_data(const RSA *r, int idx);













RSA *RSAPublicKey_dup(RSA *rsa);
RSA *RSAPrivateKey_dup(RSA *rsa);

/* If this flag is set the RSA method is FIPS compliant and can be used
 * in FIPS mode. This is set in the validated module method. If an
 * application sets this flag in its own methods it is its responsibility
 * to ensure the result is compliant.







>
>
>
>
>
>
>
>
>
>
>
>







392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
    int sLen);

int RSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func,
    CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func);
int RSA_set_ex_data(RSA *r, int idx, void *arg);
void *RSA_get_ex_data(const RSA *r, int idx);

void RSA_get0_key(const RSA *r, const BIGNUM **n, const BIGNUM **e,
    const BIGNUM **d);
int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d);
void RSA_get0_crt_params(const RSA *r, const BIGNUM **dmp1, const BIGNUM **dmq1,
    const BIGNUM **iqmp);
int RSA_set0_crt_params(RSA *r, BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM *iqmp);
void RSA_get0_factors(const RSA *r, const BIGNUM **p, const BIGNUM **q);
int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q);
void RSA_clear_flags(RSA *r, int flags);
int RSA_test_flags(const RSA *r, int flags);
void RSA_set_flags(RSA *r, int flags);

RSA *RSAPublicKey_dup(RSA *rsa);
RSA *RSAPrivateKey_dup(RSA *rsa);

/* If this flag is set the RSA method is FIPS compliant and can be used
 * in FIPS mode. This is set in the validated module method. If an
 * application sets this flag in its own methods it is its responsibility
 * to ensure the result is compliant.
413
414
415
416
417
418
419









420
421
422
423
424
425
426

#define RSA_FLAG_NON_FIPS_ALLOW			0x0400
/* Application has decided PRNG is good enough to generate a key: don't
 * check.
 */
#define RSA_FLAG_CHECKED			0x0800










/* BEGIN ERROR CODES */
/* The following lines are auto generated by the script mkerr.pl. Any changes
 * made after this point may be overwritten when the script is next run.
 */
void ERR_load_RSA_strings(void);

/* Error codes for the RSA functions. */







>
>
>
>
>
>
>
>
>







426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448

#define RSA_FLAG_NON_FIPS_ALLOW			0x0400
/* Application has decided PRNG is good enough to generate a key: don't
 * check.
 */
#define RSA_FLAG_CHECKED			0x0800

RSA_METHOD *RSA_meth_new(const char *name, int flags);
void RSA_meth_free(RSA_METHOD *meth);
RSA_METHOD *RSA_meth_dup(const RSA_METHOD *meth);
int RSA_meth_set_priv_enc(RSA_METHOD *meth, int (*priv_enc)(int flen,
    const unsigned char *from, unsigned char *to, RSA *rsa, int padding));
int RSA_meth_set_priv_dec(RSA_METHOD *meth, int (*priv_dec)(int flen,
    const unsigned char *from, unsigned char *to, RSA *rsa, int padding));
int RSA_meth_set_finish(RSA_METHOD *meth, int (*finish)(RSA *rsa));

/* BEGIN ERROR CODES */
/* The following lines are auto generated by the script mkerr.pl. Any changes
 * made after this point may be overwritten when the script is next run.
 */
void ERR_load_RSA_strings(void);

/* Error codes for the RSA functions. */
Changes to jni/libressl/include/openssl/ssl.h.
1
2
3
4
5
6
7
8
/* $OpenBSD: ssl.h,v 1.134 2017/08/30 16:24:21 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: ssl.h,v 1.154 2018/03/20 15:28:12 tb Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
1076
1077
1078
1079
1080
1081
1082

1083

1084
1085
1086
1087
1088
1089
1090
#define SSL_CTRL_SET_TLSEXT_SERVERNAME_CB	53
#define SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG	54
#define SSL_CTRL_SET_TLSEXT_HOSTNAME		55
#define SSL_CTRL_SET_TLSEXT_DEBUG_CB		56
#define SSL_CTRL_SET_TLSEXT_DEBUG_ARG		57
#define SSL_CTRL_GET_TLSEXT_TICKET_KEYS		58
#define SSL_CTRL_SET_TLSEXT_TICKET_KEYS		59

#define SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB	63

#define SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG	64
#define SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE	65
#define SSL_CTRL_GET_TLSEXT_STATUS_REQ_EXTS	66
#define SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS	67
#define SSL_CTRL_GET_TLSEXT_STATUS_REQ_IDS	68
#define SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS	69
#define SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP	70







>

>







1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
#define SSL_CTRL_SET_TLSEXT_SERVERNAME_CB	53
#define SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG	54
#define SSL_CTRL_SET_TLSEXT_HOSTNAME		55
#define SSL_CTRL_SET_TLSEXT_DEBUG_CB		56
#define SSL_CTRL_SET_TLSEXT_DEBUG_ARG		57
#define SSL_CTRL_GET_TLSEXT_TICKET_KEYS		58
#define SSL_CTRL_SET_TLSEXT_TICKET_KEYS		59
#define SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB	128
#define SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB	63
#define SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB_ARG	129
#define SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG	64
#define SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE	65
#define SSL_CTRL_GET_TLSEXT_STATUS_REQ_EXTS	66
#define SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS	67
#define SSL_CTRL_GET_TLSEXT_STATUS_REQ_IDS	68
#define SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS	69
#define SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP	70
1119
1120
1121
1122
1123
1124
1125


1126
1127
1128
1129
1130
1131
1132

#define SSL_CTRL_GET_SERVER_TMP_KEY		109

#define SSL_CTRL_SET_DH_AUTO			118

#define SSL_CTRL_SET_MIN_PROTO_VERSION			123
#define SSL_CTRL_SET_MAX_PROTO_VERSION			124



#define DTLSv1_get_timeout(ssl, arg) \
	SSL_ctrl(ssl,DTLS_CTRL_GET_TIMEOUT,0, (void *)arg)
#define DTLSv1_handle_timeout(ssl) \
	SSL_ctrl(ssl,DTLS_CTRL_HANDLE_TIMEOUT,0, NULL)
#define DTLSv1_listen(ssl, peer) \
	SSL_ctrl(ssl,DTLS_CTRL_LISTEN,0, (void *)peer)







>
>







1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136

#define SSL_CTRL_GET_SERVER_TMP_KEY		109

#define SSL_CTRL_SET_DH_AUTO			118

#define SSL_CTRL_SET_MIN_PROTO_VERSION			123
#define SSL_CTRL_SET_MAX_PROTO_VERSION			124
#define SSL_CTRL_GET_MIN_PROTO_VERSION			130
#define SSL_CTRL_GET_MAX_PROTO_VERSION			131

#define DTLSv1_get_timeout(ssl, arg) \
	SSL_ctrl(ssl,DTLS_CTRL_GET_TIMEOUT,0, (void *)arg)
#define DTLSv1_handle_timeout(ssl) \
	SSL_ctrl(ssl,DTLS_CTRL_HANDLE_TIMEOUT,0, NULL)
#define DTLSv1_listen(ssl, peer) \
	SSL_ctrl(ssl,DTLS_CTRL_LISTEN,0, (void *)peer)
1168
1169
1170
1171
1172
1173
1174


1175
1176
1177


1178
1179
1180
1181
1182
1183
1184

int SSL_CTX_set1_groups(SSL_CTX *ctx, const int *groups, size_t groups_len);
int SSL_CTX_set1_groups_list(SSL_CTX *ctx, const char *groups);

int SSL_set1_groups(SSL *ssl, const int *groups, size_t groups_len);
int SSL_set1_groups_list(SSL *ssl, const char *groups);



int SSL_CTX_set_min_proto_version(SSL_CTX *ctx, uint16_t version);
int SSL_CTX_set_max_proto_version(SSL_CTX *ctx, uint16_t version);



int SSL_set_min_proto_version(SSL *ssl, uint16_t version);
int SSL_set_max_proto_version(SSL *ssl, uint16_t version);

#ifndef LIBRESSL_INTERNAL
#define SSL_CTRL_SET_CURVES			SSL_CTRL_SET_GROUPS
#define SSL_CTRL_SET_CURVES_LIST		SSL_CTRL_SET_GROUPS_LIST








>
>



>
>







1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192

int SSL_CTX_set1_groups(SSL_CTX *ctx, const int *groups, size_t groups_len);
int SSL_CTX_set1_groups_list(SSL_CTX *ctx, const char *groups);

int SSL_set1_groups(SSL *ssl, const int *groups, size_t groups_len);
int SSL_set1_groups_list(SSL *ssl, const char *groups);

int SSL_CTX_get_min_proto_version(SSL_CTX *ctx);
int SSL_CTX_get_max_proto_version(SSL_CTX *ctx);
int SSL_CTX_set_min_proto_version(SSL_CTX *ctx, uint16_t version);
int SSL_CTX_set_max_proto_version(SSL_CTX *ctx, uint16_t version);

int SSL_get_min_proto_version(SSL *ssl);
int SSL_get_max_proto_version(SSL *ssl);
int SSL_set_min_proto_version(SSL *ssl, uint16_t version);
int SSL_set_max_proto_version(SSL *ssl, uint16_t version);

#ifndef LIBRESSL_INTERNAL
#define SSL_CTRL_SET_CURVES			SSL_CTRL_SET_GROUPS
#define SSL_CTRL_SET_CURVES_LIST		SSL_CTRL_SET_GROUPS_LIST

1193
1194
1195
1196
1197
1198
1199



















1200
1201
1202
1203
1204
1205
1206
1207

1208
1209
1210

1211
1212
1213
1214

1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227





1228
1229
1230
1231
1232
1233
1234
#define SSL_CTX_get_extra_chain_certs(ctx,px509) \
	SSL_CTX_ctrl(ctx,SSL_CTRL_GET_EXTRA_CHAIN_CERTS,0,px509)
#define SSL_CTX_clear_extra_chain_certs(ctx) \
	SSL_CTX_ctrl(ctx,SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS,0,NULL)

#define SSL_get_server_tmp_key(s, pk) \
	SSL_ctrl(s,SSL_CTRL_GET_SERVER_TMP_KEY,0,pk)




















BIO_METHOD *BIO_f_ssl(void);
BIO *BIO_new_ssl(SSL_CTX *ctx, int client);
BIO *BIO_new_ssl_connect(SSL_CTX *ctx);
BIO *BIO_new_buffer_ssl_connect(SSL_CTX *ctx);
int BIO_ssl_copy_session_id(BIO *to, BIO *from);
void BIO_ssl_shutdown(BIO *ssl_bio);


int	SSL_CTX_set_cipher_list(SSL_CTX *, const char *str);
SSL_CTX *SSL_CTX_new(const SSL_METHOD *meth);
void	SSL_CTX_free(SSL_CTX *);

long SSL_CTX_set_timeout(SSL_CTX *ctx, long t);
long SSL_CTX_get_timeout(const SSL_CTX *ctx);
X509_STORE *SSL_CTX_get_cert_store(const SSL_CTX *);
void SSL_CTX_set_cert_store(SSL_CTX *, X509_STORE *);

int SSL_want(const SSL *s);
int	SSL_clear(SSL *s);

void	SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm);

const SSL_CIPHER *SSL_get_current_cipher(const SSL *s);
const SSL_CIPHER *SSL_CIPHER_get_by_id(unsigned int id);
const SSL_CIPHER *SSL_CIPHER_get_by_value(uint16_t value);
int	SSL_CIPHER_get_bits(const SSL_CIPHER *c, int *alg_bits);
char *	SSL_CIPHER_get_version(const SSL_CIPHER *c);
const char *	SSL_CIPHER_get_name(const SSL_CIPHER *c);
unsigned long 	SSL_CIPHER_get_id(const SSL_CIPHER *c);
uint16_t SSL_CIPHER_get_value(const SSL_CIPHER *c);






int	SSL_get_fd(const SSL *s);
int	SSL_get_rfd(const SSL *s);
int	SSL_get_wfd(const SSL *s);
const char  * SSL_get_cipher_list(const SSL *s, int n);
char *	SSL_get_shared_ciphers(const SSL *s, char *buf, int len);
int	SSL_get_read_ahead(const SSL * s);







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>








>



>




>













>
>
>
>
>







1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
#define SSL_CTX_get_extra_chain_certs(ctx,px509) \
	SSL_CTX_ctrl(ctx,SSL_CTRL_GET_EXTRA_CHAIN_CERTS,0,px509)
#define SSL_CTX_clear_extra_chain_certs(ctx) \
	SSL_CTX_ctrl(ctx,SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS,0,NULL)

#define SSL_get_server_tmp_key(s, pk) \
	SSL_ctrl(s,SSL_CTRL_GET_SERVER_TMP_KEY,0,pk)

#ifndef LIBRESSL_INTERNAL
/*
 * Also provide those functions as macros for compatibility with
 * existing users.
 */
#define SSL_CTX_set1_groups		SSL_CTX_set1_groups
#define SSL_CTX_set1_groups_list	SSL_CTX_set1_groups_list
#define SSL_set1_groups			SSL_set1_groups
#define SSL_set1_groups_list		SSL_set1_groups_list
#define SSL_CTX_get_min_proto_version	SSL_CTX_get_min_proto_version
#define SSL_CTX_get_max_proto_version	SSL_CTX_get_max_proto_version
#define SSL_CTX_set_min_proto_version	SSL_CTX_set_min_proto_version
#define SSL_CTX_set_max_proto_version	SSL_CTX_set_max_proto_version
#define SSL_get_min_proto_version	SSL_get_min_proto_version
#define SSL_get_max_proto_version	SSL_get_max_proto_version
#define SSL_set_min_proto_version	SSL_set_min_proto_version
#define SSL_set_max_proto_version	SSL_set_max_proto_version
#endif

BIO_METHOD *BIO_f_ssl(void);
BIO *BIO_new_ssl(SSL_CTX *ctx, int client);
BIO *BIO_new_ssl_connect(SSL_CTX *ctx);
BIO *BIO_new_buffer_ssl_connect(SSL_CTX *ctx);
int BIO_ssl_copy_session_id(BIO *to, BIO *from);
void BIO_ssl_shutdown(BIO *ssl_bio);

STACK_OF(SSL_CIPHER) *SSL_CTX_get_ciphers(const SSL_CTX *ctx);
int	SSL_CTX_set_cipher_list(SSL_CTX *, const char *str);
SSL_CTX *SSL_CTX_new(const SSL_METHOD *meth);
void	SSL_CTX_free(SSL_CTX *);
int SSL_CTX_up_ref(SSL_CTX *ctx);
long SSL_CTX_set_timeout(SSL_CTX *ctx, long t);
long SSL_CTX_get_timeout(const SSL_CTX *ctx);
X509_STORE *SSL_CTX_get_cert_store(const SSL_CTX *);
void SSL_CTX_set_cert_store(SSL_CTX *, X509_STORE *);
X509 *SSL_CTX_get0_certificate(const SSL_CTX *ctx);
int SSL_want(const SSL *s);
int	SSL_clear(SSL *s);

void	SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm);

const SSL_CIPHER *SSL_get_current_cipher(const SSL *s);
const SSL_CIPHER *SSL_CIPHER_get_by_id(unsigned int id);
const SSL_CIPHER *SSL_CIPHER_get_by_value(uint16_t value);
int	SSL_CIPHER_get_bits(const SSL_CIPHER *c, int *alg_bits);
char *	SSL_CIPHER_get_version(const SSL_CIPHER *c);
const char *	SSL_CIPHER_get_name(const SSL_CIPHER *c);
unsigned long 	SSL_CIPHER_get_id(const SSL_CIPHER *c);
uint16_t SSL_CIPHER_get_value(const SSL_CIPHER *c);
int SSL_CIPHER_get_cipher_nid(const SSL_CIPHER *c);
int SSL_CIPHER_get_digest_nid(const SSL_CIPHER *c);
int SSL_CIPHER_get_kx_nid(const SSL_CIPHER *c);
int SSL_CIPHER_get_auth_nid(const SSL_CIPHER *c);
int SSL_CIPHER_is_aead(const SSL_CIPHER *c);

int	SSL_get_fd(const SSL *s);
int	SSL_get_rfd(const SSL *s);
int	SSL_get_wfd(const SSL *s);
const char  * SSL_get_cipher_list(const SSL *s, int n);
char *	SSL_get_shared_ciphers(const SSL *s, char *buf, int len);
int	SSL_get_read_ahead(const SSL * s);
1269
1270
1271
1272
1273
1274
1275



1276
1277
1278
1279
1280
1281


1282
1283
1284
1285


1286
1287




1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
	    const char *dir);

void	SSL_load_error_strings(void );
const char *SSL_state_string(const SSL *s);
const char *SSL_rstate_string(const SSL *s);
const char *SSL_state_string_long(const SSL *s);
const char *SSL_rstate_string_long(const SSL *s);



long	SSL_SESSION_get_time(const SSL_SESSION *s);
long	SSL_SESSION_set_time(SSL_SESSION *s, long t);
long	SSL_SESSION_get_timeout(const SSL_SESSION *s);
long	SSL_SESSION_set_timeout(SSL_SESSION *s, long t);
void	SSL_copy_session_id(SSL *to, const SSL *from);
X509	*SSL_SESSION_get0_peer(SSL_SESSION *s);


int	SSL_SESSION_set1_id_context(SSL_SESSION *s,
	    const unsigned char *sid_ctx, unsigned int sid_ctx_len);

SSL_SESSION *SSL_SESSION_new(void);


const unsigned char *SSL_SESSION_get_id(const SSL_SESSION *s,
	    unsigned int *len);




unsigned int SSL_SESSION_get_compress_id(const SSL_SESSION *s);
int	SSL_SESSION_print_fp(FILE *fp, const SSL_SESSION *ses);
int	SSL_SESSION_print(BIO *fp, const SSL_SESSION *ses);
void	SSL_SESSION_free(SSL_SESSION *ses);
int	i2d_SSL_SESSION(SSL_SESSION *in, unsigned char **pp);
int	SSL_set_session(SSL *to, SSL_SESSION *session);
int	SSL_CTX_add_session(SSL_CTX *s, SSL_SESSION *c);
int	SSL_CTX_remove_session(SSL_CTX *, SSL_SESSION *c);
int	SSL_CTX_set_generate_session_id(SSL_CTX *, GEN_SESSION_CB);
int	SSL_set_generate_session_id(SSL *, GEN_SESSION_CB);
int	SSL_has_matching_session_id(const SSL *ssl, const unsigned char *id,







>
>
>






>
>




>
>
|

>
>
>
>
|


<







1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336

1337
1338
1339
1340
1341
1342
1343
	    const char *dir);

void	SSL_load_error_strings(void );
const char *SSL_state_string(const SSL *s);
const char *SSL_rstate_string(const SSL *s);
const char *SSL_state_string_long(const SSL *s);
const char *SSL_rstate_string_long(const SSL *s);
size_t	SSL_SESSION_get_master_key(const SSL_SESSION *ss,
	    unsigned char *out, size_t max_out);
int	SSL_SESSION_get_protocol_version(const SSL_SESSION *s);
long	SSL_SESSION_get_time(const SSL_SESSION *s);
long	SSL_SESSION_set_time(SSL_SESSION *s, long t);
long	SSL_SESSION_get_timeout(const SSL_SESSION *s);
long	SSL_SESSION_set_timeout(SSL_SESSION *s, long t);
void	SSL_copy_session_id(SSL *to, const SSL *from);
X509	*SSL_SESSION_get0_peer(SSL_SESSION *s);
int	SSL_SESSION_set1_id(SSL_SESSION *s, const unsigned char *sid,
	    unsigned int sid_len);
int	SSL_SESSION_set1_id_context(SSL_SESSION *s,
	    const unsigned char *sid_ctx, unsigned int sid_ctx_len);

SSL_SESSION *SSL_SESSION_new(void);
void	SSL_SESSION_free(SSL_SESSION *ses);
int	SSL_SESSION_up_ref(SSL_SESSION *ss);
const unsigned char *SSL_SESSION_get_id(const SSL_SESSION *ss,
	    unsigned int *len);
const unsigned char *SSL_SESSION_get0_id_context(const SSL_SESSION *ss,
	    unsigned int *len);
unsigned long SSL_SESSION_get_ticket_lifetime_hint(const SSL_SESSION *s);
int	SSL_SESSION_has_ticket(const SSL_SESSION *s);
unsigned int SSL_SESSION_get_compress_id(const SSL_SESSION *ss);
int	SSL_SESSION_print_fp(FILE *fp, const SSL_SESSION *ses);
int	SSL_SESSION_print(BIO *fp, const SSL_SESSION *ses);

int	i2d_SSL_SESSION(SSL_SESSION *in, unsigned char **pp);
int	SSL_set_session(SSL *to, SSL_SESSION *session);
int	SSL_CTX_add_session(SSL_CTX *s, SSL_SESSION *c);
int	SSL_CTX_remove_session(SSL_CTX *, SSL_SESSION *c);
int	SSL_CTX_set_generate_session_id(SSL_CTX *, GEN_SESSION_CB);
int	SSL_set_generate_session_id(SSL *, GEN_SESSION_CB);
int	SSL_has_matching_session_id(const SSL *ssl, const unsigned char *id,
1316
1317
1318
1319
1320
1321
1322

1323

1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338

1339

1340
1341
1342
1343

1344
1345

1346
1347
1348
1349
1350
1351
1352
int SSL_CTX_use_RSAPrivateKey(SSL_CTX *ctx, RSA *rsa);
int SSL_CTX_use_RSAPrivateKey_ASN1(SSL_CTX *ctx, const unsigned char *d, long len);
int SSL_CTX_use_PrivateKey(SSL_CTX *ctx, EVP_PKEY *pkey);
int SSL_CTX_use_PrivateKey_ASN1(int pk, SSL_CTX *ctx, const unsigned char *d, long len);
int SSL_CTX_use_certificate(SSL_CTX *ctx, X509 *x);
int SSL_CTX_use_certificate_ASN1(SSL_CTX *ctx, int len, const unsigned char *d);


void SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx, pem_password_cb *cb);

void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx, void *u);

int SSL_CTX_check_private_key(const SSL_CTX *ctx);
int SSL_check_private_key(const SSL *ctx);

int SSL_CTX_set_session_id_context(SSL_CTX *ctx, const unsigned char *sid_ctx, unsigned int sid_ctx_len);

SSL *SSL_new(SSL_CTX *ctx);
int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, unsigned int sid_ctx_len);

int SSL_CTX_set_purpose(SSL_CTX *s, int purpose);
int SSL_set_purpose(SSL *s, int purpose);
int SSL_CTX_set_trust(SSL_CTX *s, int trust);
int SSL_set_trust(SSL *s, int trust);


int SSL_CTX_set1_param(SSL_CTX *ctx, X509_VERIFY_PARAM *vpm);

int SSL_set1_param(SSL *ssl, X509_VERIFY_PARAM *vpm);


void	SSL_free(SSL *ssl);

int 	SSL_accept(SSL *ssl);
int 	SSL_connect(SSL *ssl);

int 	SSL_read(SSL *ssl, void *buf, int num);
int 	SSL_peek(SSL *ssl, void *buf, int num);
int 	SSL_write(SSL *ssl, const void *buf, int num);
long	SSL_ctrl(SSL *ssl, int cmd, long larg, void *parg);
long	SSL_callback_ctrl(SSL *, int, void (*)(void));
long	SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg);
long	SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void));







>

>







<







>

>


|

>


>







1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377

1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
int SSL_CTX_use_RSAPrivateKey(SSL_CTX *ctx, RSA *rsa);
int SSL_CTX_use_RSAPrivateKey_ASN1(SSL_CTX *ctx, const unsigned char *d, long len);
int SSL_CTX_use_PrivateKey(SSL_CTX *ctx, EVP_PKEY *pkey);
int SSL_CTX_use_PrivateKey_ASN1(int pk, SSL_CTX *ctx, const unsigned char *d, long len);
int SSL_CTX_use_certificate(SSL_CTX *ctx, X509 *x);
int SSL_CTX_use_certificate_ASN1(SSL_CTX *ctx, int len, const unsigned char *d);

pem_password_cb *SSL_CTX_get_default_passwd_cb(SSL_CTX *ctx);
void SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx, pem_password_cb *cb);
void *SSL_CTX_get_default_passwd_cb_userdata(SSL_CTX *ctx);
void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx, void *u);

int SSL_CTX_check_private_key(const SSL_CTX *ctx);
int SSL_check_private_key(const SSL *ctx);

int SSL_CTX_set_session_id_context(SSL_CTX *ctx, const unsigned char *sid_ctx, unsigned int sid_ctx_len);


int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, unsigned int sid_ctx_len);

int SSL_CTX_set_purpose(SSL_CTX *s, int purpose);
int SSL_set_purpose(SSL *s, int purpose);
int SSL_CTX_set_trust(SSL_CTX *s, int trust);
int SSL_set_trust(SSL *s, int trust);

X509_VERIFY_PARAM *SSL_CTX_get0_param(SSL_CTX *ctx);
int SSL_CTX_set1_param(SSL_CTX *ctx, X509_VERIFY_PARAM *vpm);
X509_VERIFY_PARAM *SSL_get0_param(SSL *ssl);
int SSL_set1_param(SSL *ssl, X509_VERIFY_PARAM *vpm);

SSL *SSL_new(SSL_CTX *ctx);
void	SSL_free(SSL *ssl);
int	SSL_up_ref(SSL *ssl);
int 	SSL_accept(SSL *ssl);
int 	SSL_connect(SSL *ssl);
int	SSL_is_server(const SSL *s);
int 	SSL_read(SSL *ssl, void *buf, int num);
int 	SSL_peek(SSL *ssl, void *buf, int num);
int 	SSL_write(SSL *ssl, const void *buf, int num);
long	SSL_ctrl(SSL *ssl, int cmd, long larg, void *parg);
long	SSL_callback_ctrl(SSL *, int, void (*)(void));
long	SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg);
long	SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void));
1500
1501
1502
1503
1504
1505
1506



1507
1508
1509
1510
1511
1512
1513
    DH *(*dh)(SSL *ssl, int is_export, int keylength));
void SSL_set_tmp_dh_callback(SSL *ssl,
    DH *(*dh)(SSL *ssl, int is_export, int keylength));
void SSL_CTX_set_tmp_ecdh_callback(SSL_CTX *ctx,
    EC_KEY *(*ecdh)(SSL *ssl, int is_export, int keylength));
void SSL_set_tmp_ecdh_callback(SSL *ssl,
    EC_KEY *(*ecdh)(SSL *ssl, int is_export, int keylength));




const void *SSL_get_current_compression(SSL *s);
const void *SSL_get_current_expansion(SSL *s);

const char *SSL_COMP_get_name(const void *comp);
void *SSL_COMP_get_compression_methods(void);
int SSL_COMP_add_compression_method(int id, void *cm);







>
>
>







1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
    DH *(*dh)(SSL *ssl, int is_export, int keylength));
void SSL_set_tmp_dh_callback(SSL *ssl,
    DH *(*dh)(SSL *ssl, int is_export, int keylength));
void SSL_CTX_set_tmp_ecdh_callback(SSL_CTX *ctx,
    EC_KEY *(*ecdh)(SSL *ssl, int is_export, int keylength));
void SSL_set_tmp_ecdh_callback(SSL *ssl,
    EC_KEY *(*ecdh)(SSL *ssl, int is_export, int keylength));

size_t SSL_get_client_random(const SSL *s, unsigned char *out, size_t max_out);
size_t SSL_get_server_random(const SSL *s, unsigned char *out, size_t max_out);

const void *SSL_get_current_compression(SSL *s);
const void *SSL_get_current_expansion(SSL *s);

const char *SSL_COMP_get_name(const void *comp);
void *SSL_COMP_get_compression_methods(void);
int SSL_COMP_add_compression_method(int id, void *cm);
1984
1985
1986
1987
1988
1989
1990

1991
1992
1993
1994
1995
1996
1997
#define SSL_R_SSL_HANDSHAKE_FAILURE			 229
#define SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS		 230
#define SSL_R_SSL_SESSION_ID_CALLBACK_FAILED		 301
#define SSL_R_SSL_SESSION_ID_CONFLICT			 302
#define SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG		 273
#define SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH		 303
#define SSL_R_SSL_SESSION_ID_IS_DIFFERENT		 231

#define SSL_R_TLSV1_ALERT_ACCESS_DENIED			 1049
#define SSL_R_TLSV1_ALERT_DECODE_ERROR			 1050
#define SSL_R_TLSV1_ALERT_DECRYPTION_FAILED		 1021
#define SSL_R_TLSV1_ALERT_DECRYPT_ERROR			 1051
#define SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION		 1060
#define SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK	 1086
#define SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY		 1071







>







2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
#define SSL_R_SSL_HANDSHAKE_FAILURE			 229
#define SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS		 230
#define SSL_R_SSL_SESSION_ID_CALLBACK_FAILED		 301
#define SSL_R_SSL_SESSION_ID_CONFLICT			 302
#define SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG		 273
#define SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH		 303
#define SSL_R_SSL_SESSION_ID_IS_DIFFERENT		 231
#define SSL_R_SSL_SESSION_ID_TOO_LONG			 408
#define SSL_R_TLSV1_ALERT_ACCESS_DENIED			 1049
#define SSL_R_TLSV1_ALERT_DECODE_ERROR			 1050
#define SSL_R_TLSV1_ALERT_DECRYPTION_FAILED		 1021
#define SSL_R_TLSV1_ALERT_DECRYPT_ERROR			 1051
#define SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION		 1060
#define SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK	 1086
#define SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY		 1071
2057
2058
2059
2060
2061
2062
2063













2064
2065
2066
2067
#define SSL_R_WRONG_SIGNATURE_TYPE			 370
#define SSL_R_WRONG_SSL_VERSION				 266
#define SSL_R_WRONG_VERSION_NUMBER			 267
#define SSL_R_X509_LIB					 268
#define SSL_R_X509_VERIFICATION_SETUP_PROBLEMS		 269
#define SSL_R_PEER_BEHAVING_BADLY			 666














#ifdef  __cplusplus
}
#endif
#endif







>
>
>
>
>
>
>
>
>
>
>
>
>




2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
#define SSL_R_WRONG_SIGNATURE_TYPE			 370
#define SSL_R_WRONG_SSL_VERSION				 266
#define SSL_R_WRONG_VERSION_NUMBER			 267
#define SSL_R_X509_LIB					 268
#define SSL_R_X509_VERIFICATION_SETUP_PROBLEMS		 269
#define SSL_R_PEER_BEHAVING_BADLY			 666

/*
 * OpenSSL compatible OPENSSL_INIT options
 */

/*
 * These are provided for compatibiliy, but have no effect
 * on how LibreSSL is initialized.
 */
#define OPENSSL_INIT_LOAD_SSL_STRINGS	_OPENSSL_INIT_FLAG_NOOP
#define OPENSSL_INIT_SSL_DEFAULT	_OPENSSL_INIT_FLAG_NOOP

int OPENSSL_init_ssl(uint64_t opts, const void *settings);

#ifdef  __cplusplus
}
#endif
#endif
Changes to jni/libressl/include/openssl/tls1.h.
1
2
3
4
5
6
7
8
/* $OpenBSD: tls1.h,v 1.31 2017/08/28 17:36:58 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: tls1.h,v 1.32 2018/02/17 15:08:21 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
350
351
352
353
354
355
356


357
358
359


360
361
362
363
364
365
366
367
368
SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG,0, (void *)arg)

#define SSL_CTX_get_tlsext_ticket_keys(ctx, keys, keylen) \
	SSL_CTX_ctrl((ctx),SSL_CTRL_GET_TLSEXT_TICKET_KEYS,(keylen),(keys))
#define SSL_CTX_set_tlsext_ticket_keys(ctx, keys, keylen) \
	SSL_CTX_ctrl((ctx),SSL_CTRL_SET_TLSEXT_TICKET_KEYS,(keylen),(keys))



#define SSL_CTX_set_tlsext_status_cb(ssl, cb) \
SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB,(void (*)(void))cb)



#define SSL_CTX_set_tlsext_status_arg(ssl, arg) \
SSL_CTX_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG,0, (void *)arg)

#define SSL_CTX_set_tlsext_ticket_key_cb(ssl, cb) \
SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb)

/* PSK ciphersuites from RFC 4279. */
#define TLS1_CK_PSK_WITH_RC4_128_SHA                    0x0300008A
#define TLS1_CK_PSK_WITH_3DES_EDE_CBC_SHA               0x0300008B







>
>



>
>

|







350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG,0, (void *)arg)

#define SSL_CTX_get_tlsext_ticket_keys(ctx, keys, keylen) \
	SSL_CTX_ctrl((ctx),SSL_CTRL_GET_TLSEXT_TICKET_KEYS,(keylen),(keys))
#define SSL_CTX_set_tlsext_ticket_keys(ctx, keys, keylen) \
	SSL_CTX_ctrl((ctx),SSL_CTRL_SET_TLSEXT_TICKET_KEYS,(keylen),(keys))

#define SSL_CTX_get_tlsext_status_cb(ssl, cb) \
SSL_CTX_callback_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB,(void (*)(void))cb)
#define SSL_CTX_set_tlsext_status_cb(ssl, cb) \
SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB,(void (*)(void))cb)

#define SSL_CTX_get_tlsext_status_arg(ssl, arg) \
SSL_CTX_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB_ARG,0,(void *)arg)
#define SSL_CTX_set_tlsext_status_arg(ssl, arg) \
SSL_CTX_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG,0,(void *)arg)

#define SSL_CTX_set_tlsext_ticket_key_cb(ssl, cb) \
SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb)

/* PSK ciphersuites from RFC 4279. */
#define TLS1_CK_PSK_WITH_RC4_128_SHA                    0x0300008A
#define TLS1_CK_PSK_WITH_3DES_EDE_CBC_SHA               0x0300008B
Changes to jni/libressl/include/openssl/x509.h.
1
2
3
4
5
6
7
8
/* $OpenBSD: x509.h,v 1.26 2016/12/27 16:05:57 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 * 
|







1
2
3
4
5
6
7
8
/* $OpenBSD: x509.h,v 1.44 2018/03/17 15:28:27 tb Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 * 
614
615
616
617
618
619
620














621
622
623
624
625
626
627
#define		X509_get_signature_type(x) EVP_PKEY_type(OBJ_obj2nid((x)->sig_alg->algorithm))

#define		X509_CRL_get_version(x) ASN1_INTEGER_get((x)->crl->version)
#define 	X509_CRL_get_lastUpdate(x) ((x)->crl->lastUpdate)
#define 	X509_CRL_get_nextUpdate(x) ((x)->crl->nextUpdate)
#define		X509_CRL_get_issuer(x) ((x)->crl->issuer)
#define		X509_CRL_get_REVOKED(x) ((x)->crl->revoked)















void X509_CRL_set_default_method(const X509_CRL_METHOD *meth);
X509_CRL_METHOD *X509_CRL_METHOD_new(
	int (*crl_init)(X509_CRL *crl),
	int (*crl_free)(X509_CRL *crl),
	int (*crl_lookup)(X509_CRL *crl, X509_REVOKED **ret,
				ASN1_INTEGER *ser, X509_NAME *issuer),







>
>
>
>
>
>
>
>
>
>
>
>
>
>







614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
#define		X509_get_signature_type(x) EVP_PKEY_type(OBJ_obj2nid((x)->sig_alg->algorithm))

#define		X509_CRL_get_version(x) ASN1_INTEGER_get((x)->crl->version)
#define 	X509_CRL_get_lastUpdate(x) ((x)->crl->lastUpdate)
#define 	X509_CRL_get_nextUpdate(x) ((x)->crl->nextUpdate)
#define		X509_CRL_get_issuer(x) ((x)->crl->issuer)
#define		X509_CRL_get_REVOKED(x) ((x)->crl->revoked)

int X509_CRL_up_ref(X509_CRL *x);
int X509_CRL_get_signature_nid(const X509_CRL *crl);

const STACK_OF(X509_EXTENSION) *X509_CRL_get0_extensions(const X509_CRL *crl);
const ASN1_TIME *X509_CRL_get0_lastUpdate(const X509_CRL *crl);
const ASN1_TIME *X509_CRL_get0_nextUpdate(const X509_CRL *crl);
void X509_CRL_get0_signature(const X509_CRL *crl, const ASN1_BIT_STRING **psig,
    const X509_ALGOR **palg);

int X509_REQ_get_signature_nid(const X509_REQ *req);

void X509_REQ_get0_signature(const X509_REQ *req, const ASN1_BIT_STRING **psig,
    const X509_ALGOR **palg);

void X509_CRL_set_default_method(const X509_CRL_METHOD *meth);
X509_CRL_METHOD *X509_CRL_METHOD_new(
	int (*crl_init)(X509_CRL *crl),
	int (*crl_free)(X509_CRL *crl),
	int (*crl_lookup)(X509_CRL *crl, X509_REVOKED **ret,
				ASN1_INTEGER *ser, X509_NAME *issuer),
759
760
761
762
763
764
765

766
767
768
769
770
771
772
int X509_ALGOR_set0(X509_ALGOR *alg, ASN1_OBJECT *aobj, int ptype, void *pval);
void X509_ALGOR_get0(ASN1_OBJECT **paobj, int *pptype, void **ppval,
						X509_ALGOR *algor);
void X509_ALGOR_set_md(X509_ALGOR *alg, const EVP_MD *md);
int X509_ALGOR_cmp(const X509_ALGOR *a, const X509_ALGOR *b);

X509_NAME *X509_NAME_dup(X509_NAME *xn);

X509_NAME_ENTRY *X509_NAME_ENTRY_dup(X509_NAME_ENTRY *ne);

int		X509_cmp_time(const ASN1_TIME *s, time_t *t);
int		X509_cmp_current_time(const ASN1_TIME *s);
ASN1_TIME *	X509_time_adj(ASN1_TIME *s, long adj, time_t *t);
ASN1_TIME *	X509_time_adj_ex(ASN1_TIME *s,
				int offset_day, long offset_sec, time_t *t);







>







773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
int X509_ALGOR_set0(X509_ALGOR *alg, ASN1_OBJECT *aobj, int ptype, void *pval);
void X509_ALGOR_get0(ASN1_OBJECT **paobj, int *pptype, void **ppval,
						X509_ALGOR *algor);
void X509_ALGOR_set_md(X509_ALGOR *alg, const EVP_MD *md);
int X509_ALGOR_cmp(const X509_ALGOR *a, const X509_ALGOR *b);

X509_NAME *X509_NAME_dup(X509_NAME *xn);
int X509_NAME_get0_der(X509_NAME *nm, const unsigned char **pder, size_t *pderlen);
X509_NAME_ENTRY *X509_NAME_ENTRY_dup(X509_NAME_ENTRY *ne);

int		X509_cmp_time(const ASN1_TIME *s, time_t *t);
int		X509_cmp_current_time(const ASN1_TIME *s);
ASN1_TIME *	X509_time_adj(ASN1_TIME *s, long adj, time_t *t);
ASN1_TIME *	X509_time_adj_ex(ASN1_TIME *s,
				int offset_day, long offset_sec, time_t *t);
800
801
802
803
804
805
806

807
808
809
810
811
812
813
void X509_PUBKEY_free(X509_PUBKEY *a);
X509_PUBKEY *d2i_X509_PUBKEY(X509_PUBKEY **a, const unsigned char **in, long len);
int i2d_X509_PUBKEY(X509_PUBKEY *a, unsigned char **out);
extern const ASN1_ITEM X509_PUBKEY_it;

int		X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey);
EVP_PKEY *	X509_PUBKEY_get(X509_PUBKEY *key);

int		X509_get_pubkey_parameters(EVP_PKEY *pkey,
					   STACK_OF(X509) *chain);
int		i2d_PUBKEY(EVP_PKEY *a,unsigned char **pp);
EVP_PKEY *	d2i_PUBKEY(EVP_PKEY **a,const unsigned char **pp,
			long length);
#ifndef OPENSSL_NO_RSA
int		i2d_RSA_PUBKEY(RSA *a,unsigned char **pp);







>







815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
void X509_PUBKEY_free(X509_PUBKEY *a);
X509_PUBKEY *d2i_X509_PUBKEY(X509_PUBKEY **a, const unsigned char **in, long len);
int i2d_X509_PUBKEY(X509_PUBKEY *a, unsigned char **out);
extern const ASN1_ITEM X509_PUBKEY_it;

int		X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey);
EVP_PKEY *	X509_PUBKEY_get(X509_PUBKEY *key);
EVP_PKEY *	X509_PUBKEY_get0(X509_PUBKEY *key);
int		X509_get_pubkey_parameters(EVP_PKEY *pkey,
					   STACK_OF(X509) *chain);
int		i2d_PUBKEY(EVP_PKEY *a,unsigned char **pp);
EVP_PKEY *	d2i_PUBKEY(EVP_PKEY **a,const unsigned char **pp,
			long length);
#ifndef OPENSSL_NO_RSA
int		i2d_RSA_PUBKEY(RSA *a,unsigned char **pp);
896
897
898
899
900
901
902



903
904
905
906
907
908
909
910
911
912
913
914
915
916

917
918
919

920
921
922
923
924

925
926
927
928
929
930
931

int X509_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func,
	     CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func);
int X509_set_ex_data(X509 *r, int idx, void *arg);
void *X509_get_ex_data(X509 *r, int idx);
int		i2d_X509_AUX(X509 *a,unsigned char **pp);
X509 *		d2i_X509_AUX(X509 **a,const unsigned char **pp,long length);




int X509_alias_set1(X509 *x, unsigned char *name, int len);
int X509_keyid_set1(X509 *x, unsigned char *id, int len);
unsigned char * X509_alias_get0(X509 *x, int *len);
unsigned char * X509_keyid_get0(X509 *x, int *len);
int (*X509_TRUST_set_default(int (*trust)(int , X509 *, int)))(int, X509 *, int);
int X509_TRUST_set(int *t, int trust);
int X509_add1_trust_object(X509 *x, ASN1_OBJECT *obj);
int X509_add1_reject_object(X509 *x, ASN1_OBJECT *obj);
void X509_trust_clear(X509 *x);
void X509_reject_clear(X509 *x);

X509_REVOKED *X509_REVOKED_new(void);
void X509_REVOKED_free(X509_REVOKED *a);

X509_REVOKED *d2i_X509_REVOKED(X509_REVOKED **a, const unsigned char **in, long len);
int i2d_X509_REVOKED(X509_REVOKED *a, unsigned char **out);
extern const ASN1_ITEM X509_REVOKED_it;

X509_CRL_INFO *X509_CRL_INFO_new(void);
void X509_CRL_INFO_free(X509_CRL_INFO *a);
X509_CRL_INFO *d2i_X509_CRL_INFO(X509_CRL_INFO **a, const unsigned char **in, long len);
int i2d_X509_CRL_INFO(X509_CRL_INFO *a, unsigned char **out);
extern const ASN1_ITEM X509_CRL_INFO_it;

X509_CRL *X509_CRL_new(void);
void X509_CRL_free(X509_CRL *a);
X509_CRL *d2i_X509_CRL(X509_CRL **a, const unsigned char **in, long len);
int i2d_X509_CRL(X509_CRL *a, unsigned char **out);
extern const ASN1_ITEM X509_CRL_it;

int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev);







>
>
>














>



>





>







912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953

int X509_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func,
	     CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func);
int X509_set_ex_data(X509 *r, int idx, void *arg);
void *X509_get_ex_data(X509 *r, int idx);
int		i2d_X509_AUX(X509 *a,unsigned char **pp);
X509 *		d2i_X509_AUX(X509 **a,const unsigned char **pp,long length);
void X509_get0_signature(const ASN1_BIT_STRING **psig,
    const X509_ALGOR **palg, const X509 *x);
int X509_get_signature_nid(const X509 *x);

int X509_alias_set1(X509 *x, unsigned char *name, int len);
int X509_keyid_set1(X509 *x, unsigned char *id, int len);
unsigned char * X509_alias_get0(X509 *x, int *len);
unsigned char * X509_keyid_get0(X509 *x, int *len);
int (*X509_TRUST_set_default(int (*trust)(int , X509 *, int)))(int, X509 *, int);
int X509_TRUST_set(int *t, int trust);
int X509_add1_trust_object(X509 *x, ASN1_OBJECT *obj);
int X509_add1_reject_object(X509 *x, ASN1_OBJECT *obj);
void X509_trust_clear(X509 *x);
void X509_reject_clear(X509 *x);

X509_REVOKED *X509_REVOKED_new(void);
void X509_REVOKED_free(X509_REVOKED *a);
X509_REVOKED *X509_REVOKED_dup(X509_REVOKED *a);
X509_REVOKED *d2i_X509_REVOKED(X509_REVOKED **a, const unsigned char **in, long len);
int i2d_X509_REVOKED(X509_REVOKED *a, unsigned char **out);
extern const ASN1_ITEM X509_REVOKED_it;

X509_CRL_INFO *X509_CRL_INFO_new(void);
void X509_CRL_INFO_free(X509_CRL_INFO *a);
X509_CRL_INFO *d2i_X509_CRL_INFO(X509_CRL_INFO **a, const unsigned char **in, long len);
int i2d_X509_CRL_INFO(X509_CRL_INFO *a, unsigned char **out);
extern const ASN1_ITEM X509_CRL_INFO_it;

X509_CRL *X509_CRL_new(void);
void X509_CRL_free(X509_CRL *a);
X509_CRL *d2i_X509_CRL(X509_CRL **a, const unsigned char **in, long len);
int i2d_X509_CRL(X509_CRL *a, unsigned char **out);
extern const ASN1_ITEM X509_CRL_it;

int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev);
967
968
969
970
971
972
973


974
975
976
977
978
979
980
981

982





983
984

985
986
987
988
989
990
991
992
	ASN1_BIT_STRING *signature,
	void *data, EVP_PKEY *pkey, const EVP_MD *type);
int ASN1_item_sign_ctx(const ASN1_ITEM *it,
		X509_ALGOR *algor1, X509_ALGOR *algor2,
	     	ASN1_BIT_STRING *signature, void *asn, EVP_MD_CTX *ctx);
#endif



int 		X509_set_version(X509 *x,long version);
int 		X509_set_serialNumber(X509 *x, ASN1_INTEGER *serial);
ASN1_INTEGER *	X509_get_serialNumber(X509 *x);
int 		X509_set_issuer_name(X509 *x, X509_NAME *name);
X509_NAME *	X509_get_issuer_name(X509 *a);
int 		X509_set_subject_name(X509 *x, X509_NAME *name);
X509_NAME *	X509_get_subject_name(X509 *a);
int 		X509_set_notBefore(X509 *x, const ASN1_TIME *tm);

int 		X509_set_notAfter(X509 *x, const ASN1_TIME *tm);





int 		X509_set_pubkey(X509 *x, EVP_PKEY *pkey);
EVP_PKEY *	X509_get_pubkey(X509 *x);

ASN1_BIT_STRING * X509_get0_pubkey_bitstr(const X509 *x);
int		X509_certificate_type(X509 *x,EVP_PKEY *pubkey /* optional */);

int		X509_REQ_set_version(X509_REQ *x,long version);
int		X509_REQ_set_subject_name(X509_REQ *req,X509_NAME *name);
int		X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey);
EVP_PKEY *	X509_REQ_get_pubkey(X509_REQ *req);
int		X509_REQ_extension_nid(int nid);







>
>
|







>

>
>
>
>
>


>
|







989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
	ASN1_BIT_STRING *signature,
	void *data, EVP_PKEY *pkey, const EVP_MD *type);
int ASN1_item_sign_ctx(const ASN1_ITEM *it,
		X509_ALGOR *algor1, X509_ALGOR *algor2,
	     	ASN1_BIT_STRING *signature, void *asn, EVP_MD_CTX *ctx);
#endif

const STACK_OF(X509_EXTENSION) *X509_get0_extensions(const X509 *x);
const X509_ALGOR *X509_get0_tbs_sigalg(const X509 *x);
int 		X509_set_version(X509 *x, long version);
int 		X509_set_serialNumber(X509 *x, ASN1_INTEGER *serial);
ASN1_INTEGER *	X509_get_serialNumber(X509 *x);
int 		X509_set_issuer_name(X509 *x, X509_NAME *name);
X509_NAME *	X509_get_issuer_name(X509 *a);
int 		X509_set_subject_name(X509 *x, X509_NAME *name);
X509_NAME *	X509_get_subject_name(X509 *a);
int 		X509_set_notBefore(X509 *x, const ASN1_TIME *tm);
int 		X509_set1_notBefore(X509 *x, const ASN1_TIME *tm);
int 		X509_set_notAfter(X509 *x, const ASN1_TIME *tm);
int 		X509_set1_notAfter(X509 *x, const ASN1_TIME *tm);
const ASN1_TIME *X509_get0_notBefore(const X509 *x);
ASN1_TIME *X509_getm_notBefore(const X509 *x);
const ASN1_TIME *X509_get0_notAfter(const X509 *x);
ASN1_TIME *X509_getm_notAfter(const X509 *x);
int 		X509_set_pubkey(X509 *x, EVP_PKEY *pkey);
EVP_PKEY *	X509_get_pubkey(X509 *x);
EVP_PKEY *	X509_get0_pubkey(X509 *x);
ASN1_BIT_STRING *X509_get0_pubkey_bitstr(const X509 *x);
int		X509_certificate_type(X509 *x,EVP_PKEY *pubkey /* optional */);

int		X509_REQ_set_version(X509_REQ *x,long version);
int		X509_REQ_set_subject_name(X509_REQ *req,X509_NAME *name);
int		X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey);
EVP_PKEY *	X509_REQ_get_pubkey(X509_REQ *req);
int		X509_REQ_extension_nid(int nid);
1013
1014
1015
1016
1017
1018
1019

1020

1021
1022


1023
1024

1025
1026
1027
1028
1029
1030
1031
int X509_REQ_add1_attr_by_txt(X509_REQ *req,
			const char *attrname, int type,
			const unsigned char *bytes, int len);

int X509_CRL_set_version(X509_CRL *x, long version);
int X509_CRL_set_issuer_name(X509_CRL *x, X509_NAME *name);
int X509_CRL_set_lastUpdate(X509_CRL *x, const ASN1_TIME *tm);

int X509_CRL_set_nextUpdate(X509_CRL *x, const ASN1_TIME *tm);

int X509_CRL_sort(X509_CRL *crl);



int X509_REVOKED_set_serialNumber(X509_REVOKED *x, ASN1_INTEGER *serial);
int X509_REVOKED_set_revocationDate(X509_REVOKED *r, ASN1_TIME *tm);


int		X509_REQ_check_private_key(X509_REQ *x509,EVP_PKEY *pkey);

int		X509_check_private_key(X509 *x509,EVP_PKEY *pkey);

int		X509_issuer_and_serial_cmp(const X509 *a, const X509 *b);
unsigned long	X509_issuer_and_serial_hash(X509 *a);







>

>


>
>
|

>







1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
int X509_REQ_add1_attr_by_txt(X509_REQ *req,
			const char *attrname, int type,
			const unsigned char *bytes, int len);

int X509_CRL_set_version(X509_CRL *x, long version);
int X509_CRL_set_issuer_name(X509_CRL *x, X509_NAME *name);
int X509_CRL_set_lastUpdate(X509_CRL *x, const ASN1_TIME *tm);
int X509_CRL_set1_lastUpdate(X509_CRL *x, const ASN1_TIME *tm);
int X509_CRL_set_nextUpdate(X509_CRL *x, const ASN1_TIME *tm);
int X509_CRL_set1_nextUpdate(X509_CRL *x, const ASN1_TIME *tm);
int X509_CRL_sort(X509_CRL *crl);

const STACK_OF(X509_EXTENSION) *X509_REVOKED_get0_extensions(const X509_REVOKED *x);
const ASN1_TIME *X509_REVOKED_get0_revocationDate(const X509_REVOKED *x);
const ASN1_INTEGER *X509_REVOKED_get0_serialNumber(const X509_REVOKED *x);
int X509_REVOKED_set_revocationDate(X509_REVOKED *r, ASN1_TIME *tm);
int X509_REVOKED_set_serialNumber(X509_REVOKED *x, ASN1_INTEGER *serial);

int		X509_REQ_check_private_key(X509_REQ *x509,EVP_PKEY *pkey);

int		X509_check_private_key(X509 *x509,EVP_PKEY *pkey);

int		X509_issuer_and_serial_cmp(const X509 *a, const X509 *b);
unsigned long	X509_issuer_and_serial_hash(X509 *a);
1096
1097
1098
1099
1100
1101
1102

1103
1104
1105
1106
1107
1108
1109
			int len);
int 		X509_NAME_ENTRY_set_object(X509_NAME_ENTRY *ne,
			ASN1_OBJECT *obj);
int 		X509_NAME_ENTRY_set_data(X509_NAME_ENTRY *ne, int type,
			const unsigned char *bytes, int len);
ASN1_OBJECT *	X509_NAME_ENTRY_get_object(X509_NAME_ENTRY *ne);
ASN1_STRING *	X509_NAME_ENTRY_get_data(X509_NAME_ENTRY *ne);


int		X509v3_get_ext_count(const STACK_OF(X509_EXTENSION) *x);
int		X509v3_get_ext_by_NID(const STACK_OF(X509_EXTENSION) *x,
				      int nid, int lastpos);
int		X509v3_get_ext_by_OBJ(const STACK_OF(X509_EXTENSION) *x,
				      ASN1_OBJECT *obj,int lastpos);
int		X509v3_get_ext_by_critical(const STACK_OF(X509_EXTENSION) *x,







>







1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
			int len);
int 		X509_NAME_ENTRY_set_object(X509_NAME_ENTRY *ne,
			ASN1_OBJECT *obj);
int 		X509_NAME_ENTRY_set_data(X509_NAME_ENTRY *ne, int type,
			const unsigned char *bytes, int len);
ASN1_OBJECT *	X509_NAME_ENTRY_get_object(X509_NAME_ENTRY *ne);
ASN1_STRING *	X509_NAME_ENTRY_get_data(X509_NAME_ENTRY *ne);
int		X509_NAME_ENTRY_set(const X509_NAME_ENTRY *ne);

int		X509v3_get_ext_count(const STACK_OF(X509_EXTENSION) *x);
int		X509v3_get_ext_by_NID(const STACK_OF(X509_EXTENSION) *x,
				      int nid, int lastpos);
int		X509v3_get_ext_by_OBJ(const STACK_OF(X509_EXTENSION) *x,
				      ASN1_OBJECT *obj,int lastpos);
int		X509v3_get_ext_by_critical(const STACK_OF(X509_EXTENSION) *x,
1284
1285
1286
1287
1288
1289
1290

1291
1292
1293
1294
1295
1296
1297
					char *name, int arg1, void *arg2);
void X509_TRUST_cleanup(void);
int X509_TRUST_get_flags(X509_TRUST *xp);
char *X509_TRUST_get0_name(X509_TRUST *xp);
int X509_TRUST_get_trust(X509_TRUST *xp);

int X509_up_ref(X509 *x);


/* BEGIN ERROR CODES */
/* The following lines are auto generated by the script mkerr.pl. Any changes
 * made after this point may be overwritten when the script is next run.
 */
void ERR_load_X509_strings(void);








>







1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
					char *name, int arg1, void *arg2);
void X509_TRUST_cleanup(void);
int X509_TRUST_get_flags(X509_TRUST *xp);
char *X509_TRUST_get0_name(X509_TRUST *xp);
int X509_TRUST_get_trust(X509_TRUST *xp);

int X509_up_ref(X509 *x);
STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain);

/* BEGIN ERROR CODES */
/* The following lines are auto generated by the script mkerr.pl. Any changes
 * made after this point may be overwritten when the script is next run.
 */
void ERR_load_X509_strings(void);

Changes to jni/libressl/include/openssl/x509_vfy.h.
1
2
3
4
5
6
7
8
/* $OpenBSD: x509_vfy.h,v 1.18 2016/12/21 15:15:45 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 * 
|







1
2
3
4
5
6
7
8
/* $OpenBSD: x509_vfy.h,v 1.27 2018/03/20 15:26:22 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 * 
421
422
423
424
425
426
427

428



429
430
431
432
433








434
435
436
437

438
439
440
441
442
443
444
445
446
447
448





449

450
451
452
453
454
455
456
				| X509_V_FLAG_INHIBIT_MAP)

int X509_OBJECT_idx_by_subject(STACK_OF(X509_OBJECT) *h, int type,
	     X509_NAME *name);
X509_OBJECT *X509_OBJECT_retrieve_by_subject(STACK_OF(X509_OBJECT) *h,int type,X509_NAME *name);
X509_OBJECT *X509_OBJECT_retrieve_match(STACK_OF(X509_OBJECT) *h, X509_OBJECT *x);
void X509_OBJECT_up_ref_count(X509_OBJECT *a);

void X509_OBJECT_free_contents(X509_OBJECT *a);



X509_STORE *X509_STORE_new(void );
void X509_STORE_free(X509_STORE *v);

STACK_OF(X509)* X509_STORE_get1_certs(X509_STORE_CTX *st, X509_NAME *nm);
STACK_OF(X509_CRL)* X509_STORE_get1_crls(X509_STORE_CTX *st, X509_NAME *nm);








int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags);
int X509_STORE_set_purpose(X509_STORE *ctx, int purpose);
int X509_STORE_set_trust(X509_STORE *ctx, int trust);
int X509_STORE_set1_param(X509_STORE *ctx, X509_VERIFY_PARAM *pm);


void X509_STORE_set_verify_cb(X509_STORE *ctx,
				  int (*verify_cb)(int, X509_STORE_CTX *));

X509_STORE_CTX *X509_STORE_CTX_new(void);

int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x);

void X509_STORE_CTX_free(X509_STORE_CTX *ctx);
int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store,
			 X509 *x509, STACK_OF(X509) *chain);





void X509_STORE_CTX_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk);

void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx);

X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m);

X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void);
X509_LOOKUP_METHOD *X509_LOOKUP_file(void);
X509_LOOKUP_METHOD *X509_LOOKUP_mem(void);







>

>
>
>
|

|


>
>
>
>
>
>
>
>




>











>
>
>
>
>

>







421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
				| X509_V_FLAG_INHIBIT_MAP)

int X509_OBJECT_idx_by_subject(STACK_OF(X509_OBJECT) *h, int type,
	     X509_NAME *name);
X509_OBJECT *X509_OBJECT_retrieve_by_subject(STACK_OF(X509_OBJECT) *h,int type,X509_NAME *name);
X509_OBJECT *X509_OBJECT_retrieve_match(STACK_OF(X509_OBJECT) *h, X509_OBJECT *x);
void X509_OBJECT_up_ref_count(X509_OBJECT *a);
int X509_OBJECT_get_type(const X509_OBJECT *a);
void X509_OBJECT_free_contents(X509_OBJECT *a);
X509 *X509_OBJECT_get0_X509(const X509_OBJECT *xo);
X509_CRL *X509_OBJECT_get0_X509_CRL(X509_OBJECT *xo);

X509_STORE *X509_STORE_new(void);
void X509_STORE_free(X509_STORE *v);
int X509_STORE_up_ref(X509_STORE *x);
STACK_OF(X509)* X509_STORE_get1_certs(X509_STORE_CTX *st, X509_NAME *nm);
STACK_OF(X509_CRL)* X509_STORE_get1_crls(X509_STORE_CTX *st, X509_NAME *nm);
STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(X509_STORE *xs);
void *X509_STORE_get_ex_data(X509_STORE *xs, int idx);
int X509_STORE_set_ex_data(X509_STORE *xs, int idx, void *data);

#define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \
	CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, (l), (p), \
		(newf), (dupf), (freef))

int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags);
int X509_STORE_set_purpose(X509_STORE *ctx, int purpose);
int X509_STORE_set_trust(X509_STORE *ctx, int trust);
int X509_STORE_set1_param(X509_STORE *ctx, X509_VERIFY_PARAM *pm);
X509_VERIFY_PARAM *X509_STORE_get0_param(X509_STORE *ctx);

void X509_STORE_set_verify_cb(X509_STORE *ctx,
				  int (*verify_cb)(int, X509_STORE_CTX *));

X509_STORE_CTX *X509_STORE_CTX_new(void);

int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x);

void X509_STORE_CTX_free(X509_STORE_CTX *ctx);
int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store,
			 X509 *x509, STACK_OF(X509) *chain);
X509 *X509_STORE_CTX_get0_cert(X509_STORE_CTX *ctx);
STACK_OF(X509) *X509_STORE_CTX_get0_chain(X509_STORE_CTX *xs);
X509_STORE *X509_STORE_CTX_get0_store(X509_STORE_CTX *xs);
STACK_OF(X509) *X509_STORE_CTX_get0_untrusted(X509_STORE_CTX *ctx);
void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk);
void X509_STORE_CTX_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk);
void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk);
void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx);

X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m);

X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void);
X509_LOOKUP_METHOD *X509_LOOKUP_file(void);
X509_LOOKUP_METHOD *X509_LOOKUP_mem(void);
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose,
				int purpose, int trust);
void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags);
void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags,
								time_t t);
void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx,
				  int (*verify_cb)(int, X509_STORE_CTX *));
  
X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(X509_STORE_CTX *ctx);
int X509_STORE_CTX_get_explicit_policy(X509_STORE_CTX *ctx);

X509_VERIFY_PARAM *X509_STORE_CTX_get0_param(X509_STORE_CTX *ctx);
void X509_STORE_CTX_set0_param(X509_STORE_CTX *ctx, X509_VERIFY_PARAM *param);
int X509_STORE_CTX_set_default(X509_STORE_CTX *ctx, const char *name);








|







527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose,
				int purpose, int trust);
void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags);
void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags,
								time_t t);
void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx,
				  int (*verify_cb)(int, X509_STORE_CTX *));
 
X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(X509_STORE_CTX *ctx);
int X509_STORE_CTX_get_explicit_policy(X509_STORE_CTX *ctx);

X509_VERIFY_PARAM *X509_STORE_CTX_get0_param(X509_STORE_CTX *ctx);
void X509_STORE_CTX_set0_param(X509_STORE_CTX *ctx, X509_VERIFY_PARAM *param);
int X509_STORE_CTX_set_default(X509_STORE_CTX *ctx, const char *name);

538
539
540
541
542
543
544















545
546
547
548
549
550
551
void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth);
void X509_VERIFY_PARAM_set_time(X509_VERIFY_PARAM *param, time_t t);
int X509_VERIFY_PARAM_add0_policy(X509_VERIFY_PARAM *param,
						ASN1_OBJECT *policy);
int X509_VERIFY_PARAM_set1_policies(X509_VERIFY_PARAM *param, 
					STACK_OF(ASN1_OBJECT) *policies);
int X509_VERIFY_PARAM_get_depth(const X509_VERIFY_PARAM *param);
















int X509_VERIFY_PARAM_add0_table(X509_VERIFY_PARAM *param);
const X509_VERIFY_PARAM *X509_VERIFY_PARAM_lookup(const char *name);
void X509_VERIFY_PARAM_table_cleanup(void);

int X509_policy_check(X509_POLICY_TREE **ptree, int *pexplicit_policy,
			STACK_OF(X509) *certs,







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth);
void X509_VERIFY_PARAM_set_time(X509_VERIFY_PARAM *param, time_t t);
int X509_VERIFY_PARAM_add0_policy(X509_VERIFY_PARAM *param,
						ASN1_OBJECT *policy);
int X509_VERIFY_PARAM_set1_policies(X509_VERIFY_PARAM *param, 
					STACK_OF(ASN1_OBJECT) *policies);
int X509_VERIFY_PARAM_get_depth(const X509_VERIFY_PARAM *param);
int X509_VERIFY_PARAM_set1_host(X509_VERIFY_PARAM *param, const char *name,
    size_t namelen);
int X509_VERIFY_PARAM_add1_host(X509_VERIFY_PARAM *param, const char *name,
    size_t namelen);
void X509_VERIFY_PARAM_set_hostflags(X509_VERIFY_PARAM *param,
    unsigned int flags);
char *X509_VERIFY_PARAM_get0_peername(X509_VERIFY_PARAM *param);
int X509_VERIFY_PARAM_set1_email(X509_VERIFY_PARAM *param,  const char *email,
    size_t emaillen);
int X509_VERIFY_PARAM_set1_ip(X509_VERIFY_PARAM *param, const unsigned char *ip,
    size_t iplen);
int X509_VERIFY_PARAM_set1_ip_asc(X509_VERIFY_PARAM *param, const char *ipasc);
const char *X509_VERIFY_PARAM_get0_name(const X509_VERIFY_PARAM *param);
const X509_VERIFY_PARAM *X509_VERIFY_PARAM_get0(int id);
int X509_VERIFY_PARAM_get_count(void);

int X509_VERIFY_PARAM_add0_table(X509_VERIFY_PARAM *param);
const X509_VERIFY_PARAM *X509_VERIFY_PARAM_lookup(const char *name);
void X509_VERIFY_PARAM_table_cleanup(void);

int X509_policy_check(X509_POLICY_TREE **ptree, int *pexplicit_policy,
			STACK_OF(X509) *certs,
Changes to jni/libressl/include/tls.h.
1
2
3
4
5
6
7
8
/* $OpenBSD: tls.h,v 1.51 2017/08/10 18:18:30 jsing Exp $ */
/*
 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: tls.h,v 1.53 2018/02/10 04:58:08 jsing Exp $ */
/*
 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#endif

#include <sys/types.h>

#include <stddef.h>
#include <stdint.h>

#define TLS_API	20170126

#define TLS_PROTOCOL_TLSv1_0	(1 << 1)
#define TLS_PROTOCOL_TLSv1_1	(1 << 2)
#define TLS_PROTOCOL_TLSv1_2	(1 << 3)
#define TLS_PROTOCOL_TLSv1 \
	(TLS_PROTOCOL_TLSv1_0|TLS_PROTOCOL_TLSv1_1|TLS_PROTOCOL_TLSv1_2)








|







30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#endif

#include <sys/types.h>

#include <stddef.h>
#include <stdint.h>

#define TLS_API	20180210

#define TLS_PROTOCOL_TLSv1_0	(1 << 1)
#define TLS_PROTOCOL_TLSv1_1	(1 << 2)
#define TLS_PROTOCOL_TLSv1_2	(1 << 3)
#define TLS_PROTOCOL_TLSv1 \
	(TLS_PROTOCOL_TLSv1_0|TLS_PROTOCOL_TLSv1_1|TLS_PROTOCOL_TLSv1_2)

131
132
133
134
135
136
137

138
139
140
141
142
143
144
    size_t _cert_len, const uint8_t *_key, size_t _key_len,
    const uint8_t *_staple, size_t staple_len);
int tls_config_set_ocsp_staple_mem(struct tls_config *_config,
    const uint8_t *_staple, size_t _len);
int tls_config_set_ocsp_staple_file(struct tls_config *_config,
    const char *_staple_file);
int tls_config_set_protocols(struct tls_config *_config, uint32_t _protocols);

int tls_config_set_verify_depth(struct tls_config *_config, int _verify_depth);

void tls_config_prefer_ciphers_client(struct tls_config *_config);
void tls_config_prefer_ciphers_server(struct tls_config *_config);

void tls_config_insecure_noverifycert(struct tls_config *_config);
void tls_config_insecure_noverifyname(struct tls_config *_config);







>







131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
    size_t _cert_len, const uint8_t *_key, size_t _key_len,
    const uint8_t *_staple, size_t staple_len);
int tls_config_set_ocsp_staple_mem(struct tls_config *_config,
    const uint8_t *_staple, size_t _len);
int tls_config_set_ocsp_staple_file(struct tls_config *_config,
    const char *_staple_file);
int tls_config_set_protocols(struct tls_config *_config, uint32_t _protocols);
int tls_config_set_session_fd(struct tls_config *_config, int _session_fd);
int tls_config_set_verify_depth(struct tls_config *_config, int _verify_depth);

void tls_config_prefer_ciphers_client(struct tls_config *_config);
void tls_config_prefer_ciphers_server(struct tls_config *_config);

void tls_config_insecure_noverifycert(struct tls_config *_config);
void tls_config_insecure_noverifyname(struct tls_config *_config);
191
192
193
194
195
196
197

198
199
200
201
202
203
204
time_t	tls_peer_cert_notbefore(struct tls *_ctx);
time_t	tls_peer_cert_notafter(struct tls *_ctx);
const uint8_t *tls_peer_cert_chain_pem(struct tls *_ctx, size_t *_len);

const char *tls_conn_alpn_selected(struct tls *_ctx);
const char *tls_conn_cipher(struct tls *_ctx);
const char *tls_conn_servername(struct tls *_ctx);

const char *tls_conn_version(struct tls *_ctx);

uint8_t *tls_load_file(const char *_file, size_t *_len, char *_password);
void tls_unload_file(uint8_t *_buf, size_t len);

int tls_ocsp_process_response(struct tls *_ctx, const unsigned char *_response,
    size_t _size);







>







192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
time_t	tls_peer_cert_notbefore(struct tls *_ctx);
time_t	tls_peer_cert_notafter(struct tls *_ctx);
const uint8_t *tls_peer_cert_chain_pem(struct tls *_ctx, size_t *_len);

const char *tls_conn_alpn_selected(struct tls *_ctx);
const char *tls_conn_cipher(struct tls *_ctx);
const char *tls_conn_servername(struct tls *_ctx);
int tls_conn_session_resumed(struct tls *_ctx);
const char *tls_conn_version(struct tls *_ctx);

uint8_t *tls_load_file(const char *_file, size_t *_len, char *_password);
void tls_unload_file(uint8_t *_buf, size_t len);

int tls_ocsp_process_response(struct tls *_ctx, const unsigned char *_response,
    size_t _size);
Changes to jni/libressl/m4/check-libc.m4.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
AC_DEFUN([CHECK_LIBC_COMPAT], [
# Check for libc headers
AC_CHECK_HEADERS([err.h readpassphrase.h])
# Check for general libc functions
AC_CHECK_FUNCS([asprintf freezero inet_ntop inet_pton memmem])
AC_CHECK_FUNCS([readpassphrase reallocarray recallocarray])
AC_CHECK_FUNCS([strlcat strlcpy strndup strnlen strsep strtonum])
AC_CHECK_FUNCS([timegm _mkgmtime])
AC_CACHE_CHECK([for getpagesize], ac_cv_func_getpagesize, [
	AC_LINK_IFELSE([AC_LANG_PROGRAM([[
// Since Android NDK v16 getpagesize is defined as inline inside unistd.h
#ifdef __ANDROID__
#	include <unistd.h>
#endif
		]], [[
	getpagesize();
]])],
	[ ac_cv_func_getpagesize="yes" ],
	[ ac_cv_func_getpagesize="no"
	])
])
AM_CONDITIONAL([HAVE_ASPRINTF], [test "x$ac_cv_func_asprintf" = xyes])
AM_CONDITIONAL([HAVE_FREEZERO], [test "x$ac_cv_func_freezero" = xyes])
AM_CONDITIONAL([HAVE_GETPAGESIZE], [test "x$ac_cv_func_getpagesize" = xyes])
AM_CONDITIONAL([HAVE_INET_NTOP], [test "x$ac_cv_func_inet_ntop" = xyes])
AM_CONDITIONAL([HAVE_INET_PTON], [test "x$ac_cv_func_inet_pton" = xyes])
AM_CONDITIONAL([HAVE_MEMMEM], [test "x$ac_cv_func_memmem" = xyes])
AM_CONDITIONAL([HAVE_READPASSPHRASE], [test "x$ac_cv_func_readpassphrase" = xyes])
AM_CONDITIONAL([HAVE_REALLOCARRAY], [test "x$ac_cv_func_reallocarray" = xyes])
AM_CONDITIONAL([HAVE_RECALLOCARRAY], [test "x$ac_cv_func_recallocarray" = xyes])
AM_CONDITIONAL([HAVE_STRLCAT], [test "x$ac_cv_func_strlcat" = xyes])
AM_CONDITIONAL([HAVE_STRLCPY], [test "x$ac_cv_func_strlcpy" = xyes])
AM_CONDITIONAL([HAVE_STRNDUP], [test "x$ac_cv_func_strndup" = xyes])




|



















<
<







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24


25
26
27
28
29
30
31
AC_DEFUN([CHECK_LIBC_COMPAT], [
# Check for libc headers
AC_CHECK_HEADERS([err.h readpassphrase.h])
# Check for general libc functions
AC_CHECK_FUNCS([asprintf freezero memmem])
AC_CHECK_FUNCS([readpassphrase reallocarray recallocarray])
AC_CHECK_FUNCS([strlcat strlcpy strndup strnlen strsep strtonum])
AC_CHECK_FUNCS([timegm _mkgmtime])
AC_CACHE_CHECK([for getpagesize], ac_cv_func_getpagesize, [
	AC_LINK_IFELSE([AC_LANG_PROGRAM([[
// Since Android NDK v16 getpagesize is defined as inline inside unistd.h
#ifdef __ANDROID__
#	include <unistd.h>
#endif
		]], [[
	getpagesize();
]])],
	[ ac_cv_func_getpagesize="yes" ],
	[ ac_cv_func_getpagesize="no"
	])
])
AM_CONDITIONAL([HAVE_ASPRINTF], [test "x$ac_cv_func_asprintf" = xyes])
AM_CONDITIONAL([HAVE_FREEZERO], [test "x$ac_cv_func_freezero" = xyes])
AM_CONDITIONAL([HAVE_GETPAGESIZE], [test "x$ac_cv_func_getpagesize" = xyes])


AM_CONDITIONAL([HAVE_MEMMEM], [test "x$ac_cv_func_memmem" = xyes])
AM_CONDITIONAL([HAVE_READPASSPHRASE], [test "x$ac_cv_func_readpassphrase" = xyes])
AM_CONDITIONAL([HAVE_REALLOCARRAY], [test "x$ac_cv_func_reallocarray" = xyes])
AM_CONDITIONAL([HAVE_RECALLOCARRAY], [test "x$ac_cv_func_recallocarray" = xyes])
AM_CONDITIONAL([HAVE_STRLCAT], [test "x$ac_cv_func_strlcat" = xyes])
AM_CONDITIONAL([HAVE_STRLCPY], [test "x$ac_cv_func_strlcpy" = xyes])
AM_CONDITIONAL([HAVE_STRNDUP], [test "x$ac_cv_func_strndup" = xyes])
124
125
126
127
128
129
130
131
132
133
134
135




136
137
138
139
140
141
142

# Override arc4random_buf implementations with known issues
AM_CONDITIONAL([HAVE_ARC4RANDOM_BUF],
	[test "x$USE_BUILTIN_ARC4RANDOM" != xyes \
	   -a "x$ac_cv_func_arc4random_buf" = xyes])

# Check for getentropy fallback dependencies
AC_CHECK_FUNC([getauxval])
AC_SEARCH_LIBS([clock_gettime],[rt posix4])
AC_CHECK_FUNC([clock_gettime])
AC_SEARCH_LIBS([dl_iterate_phdr],[dl])
AC_CHECK_FUNC([dl_iterate_phdr])




])

AC_DEFUN([CHECK_VA_COPY], [
AC_CACHE_CHECK([whether va_copy exists], ac_cv_have_va_copy, [
	AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#include <stdarg.h>
va_list x,y;







|
<
<

|
>
>
>
>







122
123
124
125
126
127
128
129


130
131
132
133
134
135
136
137
138
139
140
141
142

# Override arc4random_buf implementations with known issues
AM_CONDITIONAL([HAVE_ARC4RANDOM_BUF],
	[test "x$USE_BUILTIN_ARC4RANDOM" != xyes \
	   -a "x$ac_cv_func_arc4random_buf" = xyes])

# Check for getentropy fallback dependencies
AC_CHECK_FUNCS([getauxval])


AC_SEARCH_LIBS([dl_iterate_phdr],[dl])
AC_CHECK_FUNCS([dl_iterate_phdr])

AC_SEARCH_LIBS([clock_gettime],[rt posix4])
AC_CHECK_FUNCS([clock_gettime])
AM_CONDITIONAL([HAVE_CLOCK_GETTIME], [test "x$ac_cv_func_clock_gettime" = xyes])
])

AC_DEFUN([CHECK_VA_COPY], [
AC_CACHE_CHECK([whether va_copy exists], ac_cv_have_va_copy, [
	AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#include <stdarg.h>
va_list x,y;
Changes to jni/libressl/m4/check-os-options.m4.
76
77
78
79
80
81
82

83
84
85
86
87
88
89
		CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=600 -D__STRICT_ALIGNMENT"
		AC_SUBST([PLATFORM_LDADD], ['-lpthread'])
		;;
	*linux*)
		HOST_OS=linux
		HOST_ABI=elf
		CPPFLAGS="$CPPFLAGS -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_SOURCE -D_GNU_SOURCE"

		;;
	*netbsd*)
		HOST_OS=netbsd
		HOST_ABI=elf
		AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <sys/param.h>
#if __NetBSD_Version__ < 700000001







>







76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
		CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=600 -D__STRICT_ALIGNMENT"
		AC_SUBST([PLATFORM_LDADD], ['-lpthread'])
		;;
	*linux*)
		HOST_OS=linux
		HOST_ABI=elf
		CPPFLAGS="$CPPFLAGS -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_SOURCE -D_GNU_SOURCE"
		AC_SUBST([PLATFORM_LDADD], ['-lpthread'])
		;;
	*netbsd*)
		HOST_OS=netbsd
		HOST_ABI=elf
		AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <sys/param.h>
#if __NetBSD_Version__ < 700000001
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
		AC_DEFINE([HAVE_ATTRIBUTE__BOUNDED__], [1], [OpenBSD gcc has bounded])
		;;
	*mingw*)
		HOST_OS=win
		BUILD_NC=no
		CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE -D_POSIX -D_POSIX_SOURCE -D__USE_MINGW_ANSI_STDIO"
		CPPFLAGS="$CPPFLAGS -D_REENTRANT -D_POSIX_THREAD_SAFE_FUNCTIONS"
		CPPFLAGS="$CPPFLAGS -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0501"
		CPPFLAGS="$CPPFLAGS -DOPENSSL_NO_SPEED"
		AC_SUBST([PLATFORM_LDADD], ['-lws2_32'])
		;;
	*solaris*)
		HOST_OS=solaris
		HOST_ABI=elf
		CFLAGS="$CFLAGS -m64"
		CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__ -D_XOPEN_SOURCE=600 -DBSD_COMP"
		AC_SUBST([PLATFORM_LDADD], ['-lnsl -lsocket'])
		;;
	*) ;;
esac

AC_ARG_ENABLE([nc],







|






<







102
103
104
105
106
107
108
109
110
111
112
113
114
115

116
117
118
119
120
121
122
		AC_DEFINE([HAVE_ATTRIBUTE__BOUNDED__], [1], [OpenBSD gcc has bounded])
		;;
	*mingw*)
		HOST_OS=win
		BUILD_NC=no
		CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE -D_POSIX -D_POSIX_SOURCE -D__USE_MINGW_ANSI_STDIO"
		CPPFLAGS="$CPPFLAGS -D_REENTRANT -D_POSIX_THREAD_SAFE_FUNCTIONS"
		CPPFLAGS="$CPPFLAGS -DWIN32_LEAN_AND_MEAN"
		CPPFLAGS="$CPPFLAGS -DOPENSSL_NO_SPEED"
		AC_SUBST([PLATFORM_LDADD], ['-lws2_32'])
		;;
	*solaris*)
		HOST_OS=solaris
		HOST_ABI=elf

		CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__ -D_XOPEN_SOURCE=600 -DBSD_COMP"
		AC_SUBST([PLATFORM_LDADD], ['-lnsl -lsocket'])
		;;
	*) ;;
esac

AC_ARG_ENABLE([nc],
Changes to jni/libressl/man/ACCESS_DESCRIPTION_new.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: ACCESS_DESCRIPTION_new.3,v 1.3 2016/12/28 18:31:33 jmc Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 28 2016 $
.Dt ACCESS_DESCRIPTION_NEW 3
.Os
.Sh NAME
.Nm ACCESS_DESCRIPTION_new ,
.Nm ACCESS_DESCRIPTION_free ,
.Nm AUTHORITY_INFO_ACCESS_new ,
.Nm AUTHORITY_INFO_ACCESS_free
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: ACCESS_DESCRIPTION_new.3,v 1.4 2018/03/22 16:06:33 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt ACCESS_DESCRIPTION_NEW 3
.Os
.Sh NAME
.Nm ACCESS_DESCRIPTION_new ,
.Nm ACCESS_DESCRIPTION_free ,
.Nm AUTHORITY_INFO_ACCESS_new ,
.Nm AUTHORITY_INFO_ACCESS_free
136
137
138
139
140
141
142








.Pp
Regarding OCSP and TSP, see:
.Pp
RFC 6960: X.509 Internet Public Key Infrastructure Online Certificate
Status Protocol
.Pp
RFC 3161: Internet X.509 Public Key Infrastructure Time-Stamp Protocol















>
>
>
>
>
>
>
>
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
.Pp
Regarding OCSP and TSP, see:
.Pp
RFC 6960: X.509 Internet Public Key Infrastructure Online Certificate
Status Protocol
.Pp
RFC 3161: Internet X.509 Public Key Infrastructure Time-Stamp Protocol
.Sh HISTORY
.Fn ACCESS_DESCRIPTION_new ,
.Fn ACCESS_DESCRIPTION_free ,
.Fn AUTHORITY_INFO_ACCESS_new ,
and
.Fn AUTHORITY_INFO_ACCESS_free
first appeared in OpenSSL 0.9.5 and have been available since
.Ox 2.7 .
Changes to jni/libressl/man/ASN1_OBJECT_new.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: ASN1_OBJECT_new.3,v 1.8 2017/01/04 05:14:51 schwarze Exp $
.\"	OpenSSL 99d63d4 Mar 19 12:28:58 2016 -0400
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2017 Ingo Schwarze <schwarze@openbsd.org>
.\"
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: ASN1_OBJECT_new.3,v 1.9 2018/03/20 18:35:13 schwarze Exp $
.\"	OpenSSL 99d63d4 Mar 19 12:28:58 2016 -0400
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2017 Ingo Schwarze <schwarze@openbsd.org>
.\"
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: January 4 2017 $
.Dt ASN1_OBJECT_NEW 3
.Os
.Sh NAME
.Nm ASN1_OBJECT_new ,
.Nm ASN1_OBJECT_free
.Nd ASN.1 object identifiers
.Sh SYNOPSIS







|







61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 20 2018 $
.Dt ASN1_OBJECT_NEW 3
.Os
.Sh NAME
.Nm ASN1_OBJECT_new ,
.Nm ASN1_OBJECT_free
.Nd ASN.1 object identifiers
.Sh SYNOPSIS
133
134
135
136
137
138
139
140

.Sh SEE ALSO
.Xr d2i_ASN1_OBJECT 3 ,
.Xr OBJ_nid2obj 3
.Sh HISTORY
.Fn ASN1_OBJECT_new
and
.Fn ASN1_OBJECT_free
are available in all versions of SSLeay and OpenSSL.








|
>
133
134
135
136
137
138
139
140
141
.Sh SEE ALSO
.Xr d2i_ASN1_OBJECT 3 ,
.Xr OBJ_nid2obj 3
.Sh HISTORY
.Fn ASN1_OBJECT_new
and
.Fn ASN1_OBJECT_free
appeared in SSLeay 0.8.1b or earlier and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/ASN1_STRING_TABLE_add.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
.\"	$OpenBSD: ASN1_STRING_TABLE_add.3,v 1.2 2017/08/20 18:06:42 jmc Exp $
.\"	OpenSSL ASN1_STRING_TABLE_add.pod 7b608d08 Jul 27 01:18:50 2017 +0800
.\"
.\" Copyright (c) 2017 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: August 20 2017 $
.Dt ASN1_STRING_TABLE_ADD 3
.Os
.Sh NAME
.Nm ASN1_STRING_TABLE_add ,
.Nm ASN1_STRING_TABLE_get ,
.Nm ASN1_STRING_TABLE_cleanup
.Nd maintain the global ASN.1 string table
|
















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
.\"	$OpenBSD: ASN1_STRING_TABLE_add.3,v 1.3 2018/03/22 16:06:33 schwarze Exp $
.\"	OpenSSL ASN1_STRING_TABLE_add.pod 7b608d08 Jul 27 01:18:50 2017 +0800
.\"
.\" Copyright (c) 2017 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt ASN1_STRING_TABLE_ADD 3
.Os
.Sh NAME
.Nm ASN1_STRING_TABLE_add ,
.Nm ASN1_STRING_TABLE_get ,
.Nm ASN1_STRING_TABLE_cleanup
.Nd maintain the global ASN.1 string table
84
85
86
87
88
89
90







91
92
structure or
.Dv NULL
if nothing is found.
.Sh SEE ALSO
.Xr ASN1_OBJECT_new 3 ,
.Xr ERR_get_error 3 ,
.Xr OBJ_nid2obj 3







.Sh BUGS
Most aspects of the semantics considerably differ from OpenSSL.







>
>
>
>
>
>
>


84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
structure or
.Dv NULL
if nothing is found.
.Sh SEE ALSO
.Xr ASN1_OBJECT_new 3 ,
.Xr ERR_get_error 3 ,
.Xr OBJ_nid2obj 3
.Sh HISTORY
.Fn ASN1_STRING_TABLE_add ,
.Fn ASN1_STRING_TABLE_get ,
and
.Fn ASN1_STRING_TABLE_cleanup
first appeared in OpenSSL 0.9.5 and have been available since
.Ox 2.7 .
.Sh BUGS
Most aspects of the semantics considerably differ from OpenSSL.
Changes to jni/libressl/man/ASN1_STRING_length.3.
1
2
3

















4
5
6
7
8
9
10
11
12
.\"	$OpenBSD: ASN1_STRING_length.3,v 1.6 2016/12/25 22:15:10 schwarze Exp $
.\"	OpenSSL 99d63d46 Tue Jun 21 07:03:34 2016 -0400
.\"

















.\" This file was written by Dr. Stephen Henson.
.\" Copyright (c) 2002, 2006, 2013, 2015, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
|
|

>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" $OpenBSD: ASN1_STRING_length.3,v 1.13 2018/03/23 23:18:17 schwarze Exp $
.\" full merge up to: OpenSSL 61f805c1 Jan 16 01:01:46 2018 +0800
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2018 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" The original file was written by Dr. Stephen Henson.
.\" Copyright (c) 2002, 2006, 2013, 2015, 2016, 2017 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
45
46
47
48
49
50
51
52
53
54
55
56
57
58

59
60
61
62
63
64
65
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 25 2016 $
.Dt ASN1_STRING_LENGTH 3
.Os
.Sh NAME
.Nm ASN1_STRING_cmp ,
.Nm ASN1_STRING_data ,
.Nm ASN1_STRING_dup ,

.Nm ASN1_STRING_length ,
.Nm ASN1_STRING_length_set ,
.Nm ASN1_STRING_set ,
.Nm ASN1_STRING_to_UTF8 ,
.Nm ASN1_STRING_type
.Nd ASN1_STRING utility functions
.Sh SYNOPSIS







|






>







62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt ASN1_STRING_LENGTH 3
.Os
.Sh NAME
.Nm ASN1_STRING_cmp ,
.Nm ASN1_STRING_data ,
.Nm ASN1_STRING_dup ,
.Nm ASN1_STRING_get0_data ,
.Nm ASN1_STRING_length ,
.Nm ASN1_STRING_length_set ,
.Nm ASN1_STRING_set ,
.Nm ASN1_STRING_to_UTF8 ,
.Nm ASN1_STRING_type
.Nd ASN1_STRING utility functions
.Sh SYNOPSIS
73
74
75
76
77
78
79




80
81
82
83
84
85
86
.Fo ASN1_STRING_data
.Fa "ASN1_STRING *x"
.Fc
.Ft ASN1_STRING *
.Fo ASN1_STRING_dup
.Fa "ASN1_STRING *a"
.Fc




.Ft int
.Fo ASN1_STRING_length
.Fa "ASN1_STRING *x"
.Fc
.Ft void
.Fo ASN1_STRING_length_set
.Fa "ASN1_STRING *x"







>
>
>
>







91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
.Fo ASN1_STRING_data
.Fa "ASN1_STRING *x"
.Fc
.Ft ASN1_STRING *
.Fo ASN1_STRING_dup
.Fa "ASN1_STRING *a"
.Fc
.Ft const unsigned char *
.Fo ASN1_STRING_get0_data
.Fa "const ASN1_STRING *x"
.Fc
.Ft int
.Fo ASN1_STRING_length
.Fa "ASN1_STRING *x"
.Fc
.Ft void
.Fo ASN1_STRING_length_set
.Fa "ASN1_STRING *x"
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119


120
121
122
123
124
125
126
127





128
129
130

131
132
133
134
135
136
137
138
139
140
141
142
143
144


145
146
147
148
149
150
151
152











153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
.Fc
.Sh DESCRIPTION
These functions manipulate
.Vt ASN1_STRING
structures.
.Pp
.Fn ASN1_STRING_cmp
compares
.Fa a
and
.Fa b
and returns 0 if the two are identical.
The string types and the content are compared.
.Pp
.Fn ASN1_STRING_data
returns an internal pointer to the data of
.Fa x .


Since this is an internal pointer, it should
.Em not
be freed or modified in any way.
.Pp
.Fn ASN1_STRING_dup
returns a copy of the structure
.Fa a .
.Pp





.Fn ASN1_STRING_length
returns the length of the content of
.Fa x .

.Pp
.Fn ASN1_STRING_length_set
sets the length attribute of
.Fa x
to
.Fa len .
It may put
.Fa x
into an inconsistent internal state.
.Pp
.Fn ASN1_STRING_set
sets the data of the string
.Fa str
to the buffer


.Fa data
of length
.Fa len .
The supplied data is copied.
If
.Fa len
is -1 then the length is determined by
.Fn strlen data .











.Pp
.Fn ASN1_STRING_to_UTF8
converts the string
.Fa in
to UTF8 format.
The converted data is copied into a newly allocated buffer
.Fa out .
The length of
.Fa out
is returned or a negative error code.
The buffer
.Fa out
should be freed using
.Xr free 3 .
.Pp
.Fn ASN1_STRING_type
returns the type of
.Fa x ,
using standard constants such as
.Dv V_ASN1_OCTET_STRING .
.Pp
Almost all ASN.1 types in OpenSSL are represented as
.Vt ASN1_STRING
structures.
Other types such as
.Vt ASN1_OCTET_STRING
are simply typedefed to
.Vt ASN1_STRING
and the functions call the







|


|
<
<


|
|
>
>
|
|
|


|


>
>
>
>
>

|
|
>











|

|
>
>

|
|
<


|
|
>
>
>
>
>
>
>
>
>
>
>




|

|
<
<
<

|





|
<
<

|







125
126
127
128
129
130
131
132
133
134
135


136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177

178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199



200
201
202
203
204
205
206
207


208
209
210
211
212
213
214
215
216
.Fc
.Sh DESCRIPTION
These functions manipulate
.Vt ASN1_STRING
structures.
.Pp
.Fn ASN1_STRING_cmp
compares the type, the length, and the content of
.Fa a
and
.Fa b .


.Pp
.Fn ASN1_STRING_data
is similar to
.Fn ASN1_STRING_get0_data
except that the returned value is not constant.
This function is deprecated.
Applications should use
.Fn ASN1_STRING_get0_data
instead.
.Pp
.Fn ASN1_STRING_dup
copies
.Fa a .
.Pp
.Fn ASN1_STRING_get0_data
returns an internal pointer to the data of
.Fa x .
It should not be freed or modified in any way.
.Pp
.Fn ASN1_STRING_length
returns the length attribute of
.Fa x ,
measured in bytes.
.Pp
.Fn ASN1_STRING_length_set
sets the length attribute of
.Fa x
to
.Fa len .
It may put
.Fa x
into an inconsistent internal state.
.Pp
.Fn ASN1_STRING_set
sets the length attribute of
.Fa str
to
.Fa len
and copies that number of bytes from
.Fa data
into
.Fa str .

If
.Fa len
is -1, then
.Fn strlen data
is used instead of
.Fa len .
If
.Fa data
is
.Dv NULL ,
the content of
.Fa str
remains uninitialized; that is not considered an error unless
.Fa len
is negative.
.Pp
.Fn ASN1_STRING_to_UTF8
converts the string
.Fa in
to UTF-8 format.
The converted data is copied into a newly allocated buffer
.Pf * Fa out .



The buffer
.Pf * Fa out
should be freed using
.Xr free 3 .
.Pp
.Fn ASN1_STRING_type
returns the type of
.Fa x .


.Pp
Almost all ASN.1 types are represented as
.Vt ASN1_STRING
structures.
Other types such as
.Vt ASN1_OCTET_STRING
are simply typedefed to
.Vt ASN1_STRING
and the functions call the
194
195
196
197
198
199
200


201
202
203
204
205
206
207
208
209
210
211
212
213
214






































215
216
























.Vt ASN1_INTEGER
or
.Vt ASN1_ENUMERATED
types: the relevant INTEGER or ENUMERATED utility functions should
be used instead.
.Pp
In general it cannot be assumed that the data returned by


.Fn ASN1_STRING_data
is NUL terminated, and it may contain embedded NUL characters.
The actual format of the data will depend on the actual string type itself:
for example for an
.Vt IA5String
the data will be ASCII, for a
.Vt BMPString
two bytes per character in big endian format, and a
.Vt UTF8String
will be in UTF8 format.
.Pp
Similar care should be take to ensure the data is in the correct format
when calling
.Fn ASN1_STRING_set .






































.Sh SEE ALSO
.Xr ERR_get_error 3































>
>


|


|



|

|


>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>


>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
.Vt ASN1_INTEGER
or
.Vt ASN1_ENUMERATED
types: the relevant INTEGER or ENUMERATED utility functions should
be used instead.
.Pp
In general it cannot be assumed that the data returned by
.Fn ASN1_STRING_get0_data
and
.Fn ASN1_STRING_data
is NUL terminated, and it may contain embedded NUL characters.
The format of the data depends on the string type:
for example for an
.Vt IA5String
the data contains ASCII characters, a
.Vt BMPString
two bytes per character in big endian format, and a
.Vt UTF8String
UTF-8 characters.
.Pp
Similar care should be taken to ensure the data is in the correct format
when calling
.Fn ASN1_STRING_set .
.Sh RETURN VALUES
.Fn ASN1_STRING_cmp
returns 0 if the type, the length, and the content of
.Fa a
and
.Fa b
agree, or a non-zero value otherwise.
In contrast to
.Xr strcmp 3 ,
the sign of the return value does not indicate lexicographical ordering.
.Pp
.Fn ASN1_STRING_data
and
.Fn ASN1_STRING_get0_data
return an internal pointer to the data of
.Fa x .
.Pp
.Fn ASN1_STRING_dup
returns a pointer to a newly allocated
.Vt ASN1_STRING
structure or
.Dv NULL
if an error occurred.
.Pp
.Fn ASN1_STRING_length
returns a number of bytes.
.Pp
.Fn ASN1_STRING_set
returns 1 on success or 0 on failure.
.Pp
.Fn ASN1_STRING_to_UTF8
returns the number of bytes in the output buffer
.Pf * Fa out ,
or a negative number if an error occurred.
.Pp
.Fn ASN1_STRING_type
returns an integer constant, for example
.Dv V_ASN1_OCTET_STRING .
.Sh SEE ALSO
.Xr ERR_get_error 3
.Sh HISTORY
.Fn ASN1_STRING_cmp ,
.Fn ASN1_STRING_data ,
.Fn ASN1_STRING_dup ,
.Fn ASN1_STRING_set ,
and
.Fn ASN1_STRING_type
appeared in SSLeay 0.8.1b or earlier.
.Fn ASN1_STRING_length
first appeared in SSLeay 0.9.0.
All these functions have been available since
.Ox 2.4 .
.Pp
.Fn ASN1_STRING_length_set
first appeared in OpenSSL 0.9.5 and has been available since
.Ox 2.7 .
.Pp
.Fn ASN1_STRING_to_UTF8
first appeared in OpenSSL 0.9.6 and has been available since
.Ox 2.9 .
.Pp
.Fn ASN1_STRING_get0_data
first appeared in OpenSSL 1.1.0 and has been available since
.Ox 6.3 .
Changes to jni/libressl/man/ASN1_STRING_new.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
.\"	$OpenBSD: ASN1_STRING_new.3,v 1.10 2017/01/07 23:15:37 schwarze Exp $
.\"	OpenSSL 99d63d46 Tue Mar 24 07:52:24 2015 -0400
.\"
.\" Copyright (c) 2017 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: January 7 2017 $
.Dt ASN1_STRING_NEW 3
.Os
.Sh NAME
.Nm ASN1_STRING_new ,
.Nm ASN1_STRING_type_new ,
.Nm ASN1_STRING_free ,
.Nm ASN1_OCTET_STRING_new ,
|
















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
.\"	$OpenBSD: ASN1_STRING_new.3,v 1.14 2018/03/21 17:57:48 schwarze Exp $
.\"	OpenSSL 99d63d46 Tue Mar 24 07:52:24 2015 -0400
.\"
.\" Copyright (c) 2017 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt ASN1_STRING_NEW 3
.Os
.Sh NAME
.Nm ASN1_STRING_new ,
.Nm ASN1_STRING_type_new ,
.Nm ASN1_STRING_free ,
.Nm ASN1_OCTET_STRING_new ,
202
203
204
205
206
207
208





















































209
210
211
212
213
214
215
.Dv NULL
if an error occurs.
.Sh SEE ALSO
.Xr ASN1_time_parse 3 ,
.Xr ASN1_TIME_set 3 ,
.Xr d2i_ASN1_OCTET_STRING 3 ,
.Xr ERR_get_error 3





















































.Sh BUGS
.Vt ASN1_OCTET_STRING ,
.Vt ASN1_BIT_STRING ,
.Vt ASN1_INTEGER ,
.Vt ASN1_ENUMERATED ,
.Vt ASN1_UTF8STRING ,
.Vt ASN1_IA5STRING ,







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
.Dv NULL
if an error occurs.
.Sh SEE ALSO
.Xr ASN1_time_parse 3 ,
.Xr ASN1_TIME_set 3 ,
.Xr d2i_ASN1_OCTET_STRING 3 ,
.Xr ERR_get_error 3
.Sh HISTORY
.Fn ASN1_STRING_new ,
.Fn ASN1_STRING_type_new ,
.Fn ASN1_STRING_free ,
.Fn ASN1_OCTET_STRING_new ,
.Fn ASN1_OCTET_STRING_free ,
.Fn ASN1_BIT_STRING_new ,
.Fn ASN1_BIT_STRING_free ,
.Fn ASN1_INTEGER_new ,
.Fn ASN1_INTEGER_free ,
.Fn ASN1_IA5STRING_new ,
.Fn ASN1_IA5STRING_free ,
.Fn ASN1_UNIVERSALSTRING_new ,
.Fn ASN1_UNIVERSALSTRING_free ,
.Fn ASN1_GENERALSTRING_new ,
.Fn ASN1_GENERALSTRING_free ,
.Fn ASN1_T61STRING_new ,
.Fn ASN1_T61STRING_free ,
.Fn ASN1_PRINTABLESTRING_new ,
.Fn ASN1_PRINTABLESTRING_free ,
.Fn ASN1_PRINTABLE_new ,
.Fn ASN1_PRINTABLE_free ,
.Fn ASN1_UTCTIME_new ,
and
.Fn ASN1_UTCTIME_free
appeared in SSLeay 0.8.1b or earlier.
.Fn ASN1_BMPSTRING_new ,
.Fn ASN1_BMPSTRING_free ,
.Fn ASN1_GENERALIZEDTIME_new ,
and
.Fn ASN1_GENERALIZEDTIME_free
first appeared in SSLeay 0.9.0.
All these functions have been available since
.Ox 2.4 .
.Pp
.Fn ASN1_ENUMERATED_new ,
.Fn ASN1_ENUMERATED_free ,
.Fn ASN1_TIME_new ,
and
.Fn ASN1_TIME_free
first appeared in OpenSSL 0.9.2b.
.Fn ASN1_UTF8STRING_new ,
.Fn ASN1_UTF8STRING_free ,
.Fn ASN1_VISIBLESTRING_new ,
.Fn ASN1_VISIBLESTRING_free ,
.Fn DIRECTORYSTRING_new ,
.Fn DIRECTORYSTRING_free ,
.Fn DISPLAYTEXT_new ,
and
.Fn DISPLAYTEXT_free
first appeared in OpenSSL 0.9.3.
These functions have been available since
.Ox 2.6 .
.Sh BUGS
.Vt ASN1_OCTET_STRING ,
.Vt ASN1_BIT_STRING ,
.Vt ASN1_INTEGER ,
.Vt ASN1_ENUMERATED ,
.Vt ASN1_UTF8STRING ,
.Vt ASN1_IA5STRING ,
Changes to jni/libressl/man/ASN1_STRING_print_ex.3.
1
2
3

4
5
6
7
8
9
10
.\"	$OpenBSD: ASN1_STRING_print_ex.3,v 1.8 2017/08/20 15:44:22 schwarze Exp $
.\"	OpenSSL ASN1_STRING_print_ex.pod a95d7574 Jul 2 12:16:38 2017 -0400
.\"	OpenSSL ASN1_STRING_print_ex.pod bb9ad09e Jun 6 00:43:05 2016 -0400

.\"
.\" This file was written by Dr. Stephen Henson.
.\" Copyright (c) 2002, 2004, 2007, 2013, 2016, 2017 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|
<
|
>







1

2
3
4
5
6
7
8
9
10
.\" $OpenBSD: ASN1_STRING_print_ex.3,v 1.12 2018/03/22 17:11:04 schwarze Exp $

.\" full merge up to: OpenSSL bb9ad09e Jun 6 00:43:05 2016 -0400
.\" selective merge up to: OpenSSL 61f805c1 Jan 16 01:01:46 2018 +0800
.\"
.\" This file was written by Dr. Stephen Henson.
.\" Copyright (c) 2002, 2004, 2007, 2013, 2016, 2017 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: August 20 2017 $
.Dt ASN1_STRING_PRINT_EX 3
.Os
.Sh NAME
.Nm ASN1_STRING_print_ex ,
.Nm ASN1_STRING_print_ex_fp ,
.Nm ASN1_STRING_print ,
.Nm ASN1_tag2str







|







46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt ASN1_STRING_PRINT_EX 3
.Os
.Sh NAME
.Nm ASN1_STRING_print_ex ,
.Nm ASN1_STRING_print_ex_fp ,
.Nm ASN1_STRING_print ,
.Nm ASN1_tag2str
204
205
206
207
208
209
210











211
212














It is equivalent to
.Dv ASN1_STRFLGS_ESC_2253 |
.Dv ASN1_STRFLGS_ESC_CTRL |
.Dv ASN1_STRFLGS_ESC_MSB |
.Dv ASN1_STRFLGS_UTF8_CONVERT |
.Dv ASN1_STRFLGS_DUMP_UNKNOWN |
.Dv ASN1_STRFLGS_DUMP_DER .











.Sh SEE ALSO
.Xr X509_NAME_print_ex 3





















>
>
>
>
>
>
>
>
>
>
>


>
>
>
>
>
>
>
>
>
>
>
>
>
>
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
It is equivalent to
.Dv ASN1_STRFLGS_ESC_2253 |
.Dv ASN1_STRFLGS_ESC_CTRL |
.Dv ASN1_STRFLGS_ESC_MSB |
.Dv ASN1_STRFLGS_UTF8_CONVERT |
.Dv ASN1_STRFLGS_DUMP_UNKNOWN |
.Dv ASN1_STRFLGS_DUMP_DER .
.Sh RETURN VALUES
.Fn ASN1_STRING_print_ex
and
.Fn ASN1_STRING_print_ex_fp
return the number of characters written or \-1 if an error occurred.
.Pp
.Fn ASN1_STRING_print
returns 1 on success or 0 on error.
.Pp
.Fn ASN1_tag2str
returns a static string.
.Sh SEE ALSO
.Xr X509_NAME_print_ex 3
.Sh HISTORY
.Fn ASN1_STRING_print
appeared in SSLeay 0.8.1b or earlier and has been available since
.Ox 2.4 .
.Pp
.Fn ASN1_tag2str
first appeared in OpenSSL 0.9.5 and has been available since
.Ox 2.7 .
.Pp
.Fn ASN1_STRING_print_ex
and
.Fn ASN1_STRING_print_ex_fp
first appeared in OpenSSL 0.9.6 and have been available since
.Ox 2.9 .
Changes to jni/libressl/man/ASN1_TIME_set.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: ASN1_TIME_set.3,v 1.3 2017/08/20 17:16:40 schwarze Exp $
.\"	OpenSSL ASN1_TIME_set.pod cf37aaa3 Aug 4 11:24:03 2017 +1000
.\"	OpenSSL ASN1_TIME_set.pod e9b77246 Jan 20 19:58:49 2017 +0100
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>
.\" and Todd Short <tshort@akamai.com>.
.\" Copyright (c) 2015, 2017 The OpenSSL Project.  All rights reserved.
.\"
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: ASN1_TIME_set.3,v 1.10 2018/03/23 23:18:17 schwarze Exp $
.\"	OpenSSL ASN1_TIME_set.pod cf37aaa3 Aug 4 11:24:03 2017 +1000
.\"	OpenSSL ASN1_TIME_set.pod e9b77246 Jan 20 19:58:49 2017 +0100
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>
.\" and Todd Short <tshort@akamai.com>.
.\" Copyright (c) 2015, 2017 The OpenSSL Project.  All rights reserved.
.\"
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: August 20 2017 $
.Dt ASN1_TIME_SET 3
.Os
.Sh NAME
.Nm ASN1_TIME_set ,
.Nm ASN1_UTCTIME_set ,
.Nm ASN1_GENERALIZEDTIME_set ,
.Nm ASN1_TIME_adj ,







|







46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt ASN1_TIME_SET 3
.Os
.Sh NAME
.Nm ASN1_TIME_set ,
.Nm ASN1_UTCTIME_set ,
.Nm ASN1_GENERALIZEDTIME_set ,
.Nm ASN1_TIME_adj ,
392
393
394
395
396
397
398














399




















400

401
402
403
404
405
406
407
tm = ASN1_TIME_adj(NULL, t, 0, 60 * 60);
b = BIO_new_fp(stdout, BIO_NOCLOSE);
ASN1_TIME_print(b, tm);
ASN1_STRING_free(tm);
BIO_free(b);
.Ed
.Sh HISTORY














.Fn ASN1_TIME_cmp_time_t




















first appeared in OpenSSL 1.1.1.

.Sh CAVEATS
Some applications add offset times directly to a
.Vt time_t
value and pass the results to
.Fn ASN1_TIME_set
(or equivalent).
This can cause problems as the







>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
>







392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
tm = ASN1_TIME_adj(NULL, t, 0, 60 * 60);
b = BIO_new_fp(stdout, BIO_NOCLOSE);
ASN1_TIME_print(b, tm);
ASN1_STRING_free(tm);
BIO_free(b);
.Ed
.Sh HISTORY
.Fn ASN1_UTCTIME_set ,
.Fn ASN1_UTCTIME_check ,
and
.Fn ASN1_UTCTIME_print
appeared in SSLeay 0.8.1b or earlier.
.Fn ASN1_UTCTIME_set_string
first appeared in SSLeay 0.9.0.
All these functions have been available since
.Ox 2.4 .
.Pp
.Fn ASN1_TIME_set ,
.Fn ASN1_GENERALIZEDTIME_set ,
.Fn ASN1_GENERALIZEDTIME_set_string ,
.Fn ASN1_GENERALIZEDTIME_check ,
.Fn ASN1_TIME_print ,
and
.Fn ASN1_GENERALIZEDTIME_print
first appeared in OpenSSL 0.9.2b and have been available since
.Ox 2.6 .
.Pp
.Fn ASN1_UTCTIME_cmp_time_t
first appeared in OpenSSL 0.9.6 and has been available since
.Ox 2.9 .
.Pp
.Fn ASN1_TIME_check
and
.Fn ASN1_TIME_to_generalizedtime
first appeared in OpenSSL 0.9.7 and have been available since
.Ox 3.2 .
.Pp
.Fn ASN1_TIME_adj ,
.Fn ASN1_UTCTIME_adj ,
.Fn ASN1_GENERALIZEDTIME_adj ,
and
.Fn ASN1_TIME_set_string
first appeared in OpenSSL 1.0.0 and have been available since
.Ox 4.9 .
.Sh CAVEATS
Some applications add offset times directly to a
.Vt time_t
value and pass the results to
.Fn ASN1_TIME_set
(or equivalent).
This can cause problems as the
Changes to jni/libressl/man/ASN1_TYPE_get.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: ASN1_TYPE_get.3,v 1.3 2017/01/03 20:15:47 schwarze Exp $
.\"	OpenSSL 99d63d46 Mon Jun 6 00:43:05 2016 -0400
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2017 Ingo Schwarze <schwarze@openbsd.org>
.\"
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: ASN1_TYPE_get.3,v 1.6 2018/03/23 02:20:16 schwarze Exp $
.\"	OpenSSL 99d63d46 Mon Jun 6 00:43:05 2016 -0400
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2017 Ingo Schwarze <schwarze@openbsd.org>
.\"
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: January 3 2017 $
.Dt ASN1_TYPE_GET 3
.Os
.Sh NAME
.Nm ASN1_TYPE_new ,
.Nm ASN1_TYPE_free ,
.Nm ASN1_TYPE_get ,
.Nm ASN1_TYPE_set ,







|







61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt ASN1_TYPE_GET 3
.Os
.Sh NAME
.Nm ASN1_TYPE_new ,
.Nm ASN1_TYPE_free ,
.Nm ASN1_TYPE_get ,
.Nm ASN1_TYPE_set ,
274
275
276
277
278
279
280
















.Fn ASN1_TYPE_cmp
returns 0 for a match or non-zero for a mismatch.
.Sh SEE ALSO
.Xr ASN1_item_free 3 ,
.Xr ASN1_STRING_dup 3 ,
.Xr d2i_ASN1_TYPE 3 ,
.Xr OBJ_dup 3























>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
.Fn ASN1_TYPE_cmp
returns 0 for a match or non-zero for a mismatch.
.Sh SEE ALSO
.Xr ASN1_item_free 3 ,
.Xr ASN1_STRING_dup 3 ,
.Xr d2i_ASN1_TYPE 3 ,
.Xr OBJ_dup 3
.Sh HISTORY
.Fn ASN1_TYPE_new ,
.Fn ASN1_TYPE_free ,
.Fn ASN1_TYPE_get ,
and
.Fn ASN1_TYPE_set
appeared in SSLeay 0.8.1b or earlier and have been available since
.Ox 2.4 .
.Pp
.Fn ASN1_TYPE_set1
first appeared in OpenSSL 0.9.8h and has been available since
.Ox 4.5 .
.Pp
.Fn ASN1_TYPE_cmp
first appeared in OpenSSL 0.9.8zd and has been available since
.Ox 4.9 .
Changes to jni/libressl/man/ASN1_generate_nconf.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: ASN1_generate_nconf.3,v 1.9 2016/12/25 22:15:10 schwarze Exp $
.\"	OpenSSL 05ea606a Fri May 20 20:52:46 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson.
.\" Copyright (c) 2002, 2003, 2006-2009, 2013-2015 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: ASN1_generate_nconf.3,v 1.10 2018/03/23 00:09:11 schwarze Exp $
.\"	OpenSSL 05ea606a Fri May 20 20:52:46 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson.
.\" Copyright (c) 2002, 2003, 2006-2009, 2013-2015 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 25 2016 $
.Dt ASN1_GENERATE_NCONF 3
.Os
.Sh NAME
.Nm ASN1_generate_nconf ,
.Nm ASN1_generate_v3
.Nd ASN.1 generation functions
.Sh SYNOPSIS







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt ASN1_GENERATE_NCONF 3
.Os
.Sh NAME
.Nm ASN1_generate_nconf ,
.Nm ASN1_generate_v3
.Nd ASN.1 generation functions
.Sh SYNOPSIS
385
386
387
388
389
390
391
392

.Sh SEE ALSO
.Xr ERR_get_error 3 ,
.Xr x509v3.cnf 5
.Sh HISTORY
.Fn ASN1_generate_nconf
and
.Fn ASN1_generate_v3
were added to OpenSSL 0.9.8.








|
>
385
386
387
388
389
390
391
392
393
.Sh SEE ALSO
.Xr ERR_get_error 3 ,
.Xr x509v3.cnf 5
.Sh HISTORY
.Fn ASN1_generate_nconf
and
.Fn ASN1_generate_v3
first appeared in OpenSSL 0.9.8 and have been available since
.Ox 4.5 .
Changes to jni/libressl/man/ASN1_item_d2i.3.
1
2
3
4
5
6
7
8
.\"     $OpenBSD: ASN1_item_d2i.3,v 1.4 2017/01/03 23:56:50 schwarze Exp $
.\"     OpenSSL doc/man3/d2i_X509.pod b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
|







1
2
3
4
5
6
7
8
.\"     $OpenBSD: ASN1_item_d2i.3,v 1.7 2018/03/23 04:34:23 schwarze Exp $
.\"     OpenSSL doc/man3/d2i_X509.pod b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: January 3 2017 $
.Dt ASN1_ITEM_D2I 3
.Os
.Sh NAME
.Nm ASN1_item_d2i ,
.Nm ASN1_item_d2i_bio ,
.Nm ASN1_item_d2i_fp ,
.Nm d2i_ASN1_TYPE ,







|







61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt ASN1_ITEM_D2I 3
.Os
.Sh NAME
.Nm ASN1_item_d2i ,
.Nm ASN1_item_d2i_bio ,
.Nm ASN1_item_d2i_fp ,
.Nm d2i_ASN1_TYPE ,
359
360
361
362
363
364
365





















366
367
368
369
370
371
372

if (d2i_X509(&x, &p, len) == NULL)
	/* error */
.Ed
.Sh SEE ALSO
.Xr ASN1_item_new 3 ,
.Xr ASN1_TYPE_new 3





















.Sh CAVEATS
If the type described by
.Fa it
fails to match the true type of
.Fa val_in
or
.Pf * Fa val_out ,







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393

if (d2i_X509(&x, &p, len) == NULL)
	/* error */
.Ed
.Sh SEE ALSO
.Xr ASN1_item_new 3 ,
.Xr ASN1_TYPE_new 3
.Sh HISTORY
.Fn d2i_ASN1_TYPE
and
.Fn i2d_ASN1_TYPE
appeared in SSLeay 0.8.1b or earlier and have been available since
.Ox 2.4 .
.Pp
.Fn ASN1_item_d2i ,
.Fn ASN1_item_d2i_bio ,
.Fn ASN1_item_d2i_fp ,
.Fn ASN1_item_i2d ,
.Fn ASN1_item_i2d_bio ,
.Fn ASN1_item_i2d_fp ,
and
.Fn ASN1_item_dup
first appeared in OpenSSL 0.9.7 and have been available since
.Ox 3.2 .
.Pp
.Fn ASN1_item_print
first appeared in OpenSSL 1.0.0 and has been available since
.Ox 4.9 .
.Sh CAVEATS
If the type described by
.Fa it
fails to match the true type of
.Fa val_in
or
.Pf * Fa val_out ,
Changes to jni/libressl/man/ASN1_item_new.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"     $OpenBSD: ASN1_item_new.3,v 1.2 2017/01/03 20:15:47 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: January 3 2017 $
.Dt ASN1_ITEM_NEW 3
.Os
.Sh NAME
.Nm ASN1_item_new ,
.Nm ASN1_item_free
.Nd generic ASN.1 value constructor and destructor
.Sh SYNOPSIS
|

|













|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"     $OpenBSD: ASN1_item_new.3,v 1.4 2018/03/22 21:08:22 schwarze Exp $
.\"
.\" Copyright (c) 2016, 2018 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt ASN1_ITEM_NEW 3
.Os
.Sh NAME
.Nm ASN1_item_new ,
.Nm ASN1_item_free
.Nd generic ASN.1 value constructor and destructor
.Sh SYNOPSIS
34
35
36
37
38
39
40



41






42
43
44
45
46
47
48
49
.Fc
.Sh DESCRIPTION
.Fn ASN1_item_new
allocates and initializes an empty ASN.1 value
of the type described by the global static object
.Fa it .
.Pp



.Fn ASN1_item_free






frees an ASN.1 value of the type described by
.Fa it .
If the true type of
.Fa val_in
fails to match the specified
.Fa it ,
buffer overflows and segmentation faults are likely to occur.
It is not possible to recover the type of an







>
>
>

>
>
>
>
>
>
|







34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.Fc
.Sh DESCRIPTION
.Fn ASN1_item_new
allocates and initializes an empty ASN.1 value
of the type described by the global static object
.Fa it .
.Pp
If the item type described by
.Fa it
is reference counted,
.Fn ASN1_item_free
decrements the reference count of
.Fa val_in .
Otherwise, or if the reference count reaches 0,
.Fn ASN1_item_free
frees
.Fa val_in ,
assuming that it is of the type described by
.Fa it .
If the true type of
.Fa val_in
fails to match the specified
.Fa it ,
buffer overflows and segmentation faults are likely to occur.
It is not possible to recover the type of an
94
95
96
97
98
99
100






101
102
103
104
105
.Dv NULL
if an error occurs.
.Sh SEE ALSO
.Xr ASN1_item_d2i 3 ,
.Xr ASN1_TYPE_new 3 ,
.Xr d2i_ASN1_NULL 3 ,
.Xr OBJ_nid2obj 3






.Sh BUGS
The
.Vt ASN1_VALUE
type compromises type safety and invites programming mistakes that
will typically have severe consequences.







>
>
>
>
>
>





103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
.Dv NULL
if an error occurs.
.Sh SEE ALSO
.Xr ASN1_item_d2i 3 ,
.Xr ASN1_TYPE_new 3 ,
.Xr d2i_ASN1_NULL 3 ,
.Xr OBJ_nid2obj 3
.Sh HISTORY
.Fn ASN1_item_new
and
.Fn ASN1_item_free
first appeared in OpenSSL 0.9.7 and have been available since
.Ox 3.2 .
.Sh BUGS
The
.Vt ASN1_VALUE
type compromises type safety and invites programming mistakes that
will typically have severe consequences.
Changes to jni/libressl/man/ASN1_time_parse.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\" $OpenBSD: ASN1_time_parse.3,v 1.5 2017/05/06 18:07:46 jmc Exp $
.\"
.\" Copyright (c) 2016 Bob Beck <beck@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: May 6 2017 $
.Dt ASN1_TIME_PARSE 3
.Os
.Sh NAME
.Nm ASN1_time_parse ,
.Nm ASN1_time_tm_cmp ,
.Nm ASN1_TIME_set_tm
.Nd LibreSSL utilities for ASN.1 time types
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\" $OpenBSD: ASN1_time_parse.3,v 1.7 2018/03/23 23:18:17 schwarze Exp $
.\"
.\" Copyright (c) 2016 Bob Beck <beck@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt ASN1_TIME_PARSE 3
.Os
.Sh NAME
.Nm ASN1_time_parse ,
.Nm ASN1_time_tm_cmp ,
.Nm ASN1_TIME_set_tm
.Nd LibreSSL utilities for ASN.1 time types
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
The function
.Fn ASN1_TIME_set_tm
sets the
.Vt ASN1_TIME
structure
.Fa s
to the time represented by the
.Vt strict tm
value pointed to by
.Fa tm .
If
.Fa s
is
.Dv NULL ,
a new







|







69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
The function
.Fn ASN1_TIME_set_tm
sets the
.Vt ASN1_TIME
structure
.Fa s
to the time represented by the
.Vt struct tm
value pointed to by
.Fa tm .
If
.Fa s
is
.Dv NULL ,
a new
121
122
123
124
125
126
127










.Pp
.Fn ASN1_TIME_set_tm
returns a pointer to an
.Vt ASN1_TIME
structure or
.Dv NULL
if an error occurred.

















>
>
>
>
>
>
>
>
>
>
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
.Pp
.Fn ASN1_TIME_set_tm
returns a pointer to an
.Vt ASN1_TIME
structure or
.Dv NULL
if an error occurred.
.Sh HISTORY
.Fn ASN1_time_parse
and
.Fn ASN1_time_tm_cmp
first appeared in
.Ox 6.1
and
.Fn ASN1_TIME_set_tm
in
.Ox 6.2 .
Changes to jni/libressl/man/AUTHORITY_KEYID_new.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: AUTHORITY_KEYID_new.3,v 1.2 2016/12/25 22:15:10 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 25 2016 $
.Dt AUTHORITY_KEYID_NEW 3
.Os
.Sh NAME
.Nm AUTHORITY_KEYID_new ,
.Nm AUTHORITY_KEYID_free
.Nd X.509 authority key identifier extension
.Sh SYNOPSIS
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: AUTHORITY_KEYID_new.3,v 1.3 2018/03/21 16:09:51 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt AUTHORITY_KEYID_NEW 3
.Os
.Sh NAME
.Nm AUTHORITY_KEYID_new ,
.Nm AUTHORITY_KEYID_free
.Nd X.509 authority key identifier extension
.Sh SYNOPSIS
60
61
62
63
64
65
66






Certificate Revocation List (CRL) Profile:
.Bl -dash -compact
.It
section 4.2.1.1: Certificate Extensions: Authority Key Identifier
.It
section 5.2.1: CRL Extensions: Authority Key Identifier
.El













>
>
>
>
>
>
60
61
62
63
64
65
66
67
68
69
70
71
72
Certificate Revocation List (CRL) Profile:
.Bl -dash -compact
.It
section 4.2.1.1: Certificate Extensions: Authority Key Identifier
.It
section 5.2.1: CRL Extensions: Authority Key Identifier
.El
.Sh HISTORY
.Fn AUTHORITY_KEYID_new
and
.Fn AUTHORITY_KEYID_free
first appeared in OpenSSL 0.9.2b and have been available since
.Ox 2.6 .
Changes to jni/libressl/man/BASIC_CONSTRAINTS_new.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: BASIC_CONSTRAINTS_new.3,v 1.2 2016/12/25 22:15:10 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 25 2016 $
.Dt BASIC_CONSTRAINTS_NEW 3
.Os
.Sh NAME
.Nm BASIC_CONSTRAINTS_new ,
.Nm BASIC_CONSTRAINTS_free
.Nd X.509 extension to mark CA certificates
.Sh SYNOPSIS
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: BASIC_CONSTRAINTS_new.3,v 1.3 2018/03/21 16:09:51 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt BASIC_CONSTRAINTS_NEW 3
.Os
.Sh NAME
.Nm BASIC_CONSTRAINTS_new ,
.Nm BASIC_CONSTRAINTS_free
.Nd X.509 extension to mark CA certificates
.Sh SYNOPSIS
74
75
76
77
78
79
80






Certificate Revocation List (CRL) Profile:
.Bl -dash -compact
.It
section 4.2.1.9: Basic Constraints
.It
section 6.1: Basic Path Validation
.El













>
>
>
>
>
>
74
75
76
77
78
79
80
81
82
83
84
85
86
Certificate Revocation List (CRL) Profile:
.Bl -dash -compact
.It
section 4.2.1.9: Basic Constraints
.It
section 6.1: Basic Path Validation
.El
.Sh HISTORY
.Fn BASIC_CONSTRAINTS_new
and
.Fn BASIC_CONSTRAINTS_free
first appeared in OpenSSL 0.9.2b and have been available since
.Ox 2.6 .
Changes to jni/libressl/man/BF_set_key.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: BF_set_key.3,v 1.5 2016/11/11 01:20:53 schwarze Exp $
.\"	OpenSSL 99d63d46 Jul 19 09:27:53 2016 -0400
.\"
.\" This file was written by Richard Levitte <levitte@openssl.org>.
.\" Copyright (c) 2000, 2002, 2005, 2014, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: BF_set_key.3,v 1.7 2018/03/21 05:49:43 schwarze Exp $
.\"	OpenSSL 99d63d46 Jul 19 09:27:53 2016 -0400
.\"
.\" This file was written by Richard Levitte <levitte@openssl.org>.
.\" Copyright (c) 2000, 2002, 2005, 2014, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 11 2016 $
.Dt BF_SET_KEY 3
.Os
.Sh NAME
.Nm BF_set_key ,
.Nm BF_encrypt ,
.Nm BF_decrypt ,
.Nm BF_ecb_encrypt ,







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt BF_SET_KEY 3
.Os
.Sh NAME
.Nm BF_set_key ,
.Nm BF_encrypt ,
.Nm BF_decrypt ,
.Nm BF_ecb_encrypt ,
254
255
256
257
258
259
260



261

These functions should not be used unless implementing `modes' of Blowfish.
The alternative is to use
.Fn BF_ecb_encrypt .
Be aware that these functions take each 32-bit chunk in host-byte order,
which is little-endian on little-endian platforms
and big-endian on big-endian ones.
.Sh HISTORY



The Blowfish functions are available in all versions of SSLeay and OpenSSL.








>
>
>
|
>
254
255
256
257
258
259
260
261
262
263
264
265
These functions should not be used unless implementing `modes' of Blowfish.
The alternative is to use
.Fn BF_ecb_encrypt .
Be aware that these functions take each 32-bit chunk in host-byte order,
which is little-endian on little-endian platforms
and big-endian on big-endian ones.
.Sh HISTORY
This Blowfish implementation first appeared in SSLeay 0.6.6.
.Fn BF_decrypt
first appeared in SSLeay 0.9.0.
All these functions have been available since
.Ox 2.4 .
Changes to jni/libressl/man/BIO_ctrl.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: BIO_ctrl.3,v 1.7 2017/08/01 14:57:03 schwarze Exp $
.\"	OpenSSL b055fceb Thu Oct 20 09:56:18 2016 +0100
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: BIO_ctrl.3,v 1.13 2018/03/22 16:06:33 schwarze Exp $
.\"	OpenSSL b055fceb Thu Oct 20 09:56:18 2016 +0100
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: August 1 2017 $
.Dt BIO_CTRL 3
.Os
.Sh NAME
.Nm BIO_ctrl ,
.Nm BIO_callback_ctrl ,
.Nm BIO_ptr_ctrl ,
.Nm BIO_int_ctrl ,







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt BIO_CTRL 3
.Os
.Sh NAME
.Nm BIO_ctrl ,
.Nm BIO_callback_ctrl ,
.Nm BIO_ptr_ctrl ,
.Nm BIO_int_ctrl ,
304
305
306
307
308
309
310

311


































312
313
314
315
316
317
318
but this may still succeed if the chain ends
in a FILE or file descriptor BIO.
.Pp
Source/sink BIOs return an 0 if they do not recognize the
.Fn BIO_ctrl
operation.
.Sh SEE ALSO

.Xr BIO_new 3


































.Sh BUGS
Some of the return values are ambiguous and care should be taken.
In particular a return value of 0 can be returned if an operation
is not supported, if an error occurred, if EOF has not been reached
and in the case of
.Fn BIO_seek
on a file BIO for a successful operation.







>

>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
but this may still succeed if the chain ends
in a FILE or file descriptor BIO.
.Pp
Source/sink BIOs return an 0 if they do not recognize the
.Fn BIO_ctrl
operation.
.Sh SEE ALSO
.Xr BIO_meth_new 3 ,
.Xr BIO_new 3
.Sh HISTORY
.Fn BIO_ctrl ,
.Fn BIO_reset ,
.Fn BIO_flush ,
.Fn BIO_eof ,
.Fn BIO_set_close ,
.Fn BIO_get_close ,
.Fn BIO_pending ,
and
.Fn BIO_wpending
appeared in SSLeay 0.8.1b or earlier.
.Fn BIO_ptr_ctrl ,
.Fn BIO_int_ctrl ,
.Fn BIO_get_info_callback
and
.Fn BIO_set_info_callback
first appeared in SSLeay 0.9.0.
All these functions have been available since
.Ox 2.4 .
.Pp
.Fn BIO_seek
and
.Fn BIO_tell
first appeared in SSLeay 0.9.1.
.Fn BIO_ctrl_pending
and
.Fn BIO_ctrl_wpending
first appeared in OpenSSL 0.9.4.
These functions have been available since
.Ox 2.6 .
.Pp
.Fn BIO_callback_ctrl
first appeared in OpenSSL 0.9.5 and has been available since
.Ox 2.7 .
.Sh BUGS
Some of the return values are ambiguous and care should be taken.
In particular a return value of 0 can be returned if an operation
is not supported, if an error occurred, if EOF has not been reached
and in the case of
.Fn BIO_seek
on a file BIO for a successful operation.
Changes to jni/libressl/man/BIO_f_base64.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: BIO_f_base64.3,v 1.7 2017/01/06 03:45:57 schwarze Exp $
.\"	OpenSSL fc1d88f0 Wed Jul 2 22:42:40 2014 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2003, 2005, 2014 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: BIO_f_base64.3,v 1.8 2018/03/20 23:56:07 schwarze Exp $
.\"	OpenSSL fc1d88f0 Wed Jul 2 22:42:40 2014 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2003, 2005, 2014 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: January 6 2017 $
.Dt BIO_F_BASE64 3
.Os
.Sh NAME
.Nm BIO_f_base64
.Nd base64 BIO filter
.Sh SYNOPSIS
.In openssl/bio.h







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 20 2018 $
.Dt BIO_F_BASE64 3
.Os
.Sh NAME
.Nm BIO_f_base64
.Nd base64 BIO filter
.Sh SYNOPSIS
.In openssl/bio.h
118
119
120
121
122
123
124




125
126
127
128
129
130
	BIO_write(bio_out, inbuf, inlen);

BIO_flush(bio_out);
BIO_free_all(b64);
.Ed
.Sh SEE ALSO
.Xr BIO_new 3




.Sh BUGS
The ambiguity of EOF in base64-encoded data can cause additional
data following the base64-encoded block to be misinterpreted.
.Pp
There should be some way of specifying a test that the BIO can perform
to reliably determine EOF (for example a MIME boundary).







>
>
>
>






118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
	BIO_write(bio_out, inbuf, inlen);

BIO_flush(bio_out);
BIO_free_all(b64);
.Ed
.Sh SEE ALSO
.Xr BIO_new 3
.Sh HISTORY
.Fn BIO_f_base64
appeared in SSLeay 0.8.1b or earlier and has been available since
.Ox 2.4 .
.Sh BUGS
The ambiguity of EOF in base64-encoded data can cause additional
data following the base64-encoded block to be misinterpreted.
.Pp
There should be some way of specifying a test that the BIO can perform
to reliably determine EOF (for example a MIME boundary).
Changes to jni/libressl/man/BIO_f_buffer.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: BIO_f_buffer.3,v 1.6 2016/12/06 12:24:33 schwarze Exp $
.\"	OpenSSL 9b86974e Mar 19 12:32:14 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2010, 2015, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: BIO_f_buffer.3,v 1.8 2018/03/21 06:09:37 schwarze Exp $
.\"	OpenSSL 9b86974e Mar 19 12:32:14 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2010, 2015, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 6 2016 $
.Dt BIO_F_BUFFER 3
.Os
.Sh NAME
.Nm BIO_f_buffer ,
.Nm BIO_get_buffer_num_lines ,
.Nm BIO_set_read_buffer_size ,
.Nm BIO_set_write_buffer_size ,







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt BIO_F_BUFFER 3
.Os
.Sh NAME
.Nm BIO_f_buffer ,
.Nm BIO_get_buffer_num_lines ,
.Nm BIO_set_read_buffer_size ,
.Nm BIO_set_write_buffer_size ,
176
177
178
179
180
181
182












returns 1 if the data was set correctly or 0 if there was an error.
.Sh SEE ALSO
.Xr BIO_ctrl 3 ,
.Xr BIO_flush 3 ,
.Xr BIO_new 3 ,
.Xr BIO_pop 3 ,
.Xr BIO_reset 3



















>
>
>
>
>
>
>
>
>
>
>
>
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
returns 1 if the data was set correctly or 0 if there was an error.
.Sh SEE ALSO
.Xr BIO_ctrl 3 ,
.Xr BIO_flush 3 ,
.Xr BIO_new 3 ,
.Xr BIO_pop 3 ,
.Xr BIO_reset 3
.Sh HISTORY
.Fn BIO_f_buffer ,
.Fn BIO_get_buffer_num_lines ,
.Fn BIO_set_read_buffer_size ,
.Fn BIO_set_write_buffer_size ,
and
.Fn BIO_set_buffer_size
appeared in SSLeay 0.8.1b or earlier.
.Fn BIO_set_buffer_read_data
first appeared in SSLeay 0.9.0.
All these functions have been available since
.Ox 2.4 .
Changes to jni/libressl/man/BIO_f_cipher.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: BIO_f_cipher.3,v 1.6 2016/12/06 14:45:08 schwarze Exp $
.\"	OpenSSL 186bb907 Apr 13 11:05:13 2015 -0700
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2003, 2015, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: BIO_f_cipher.3,v 1.8 2018/03/21 09:03:49 schwarze Exp $
.\"	OpenSSL 186bb907 Apr 13 11:05:13 2015 -0700
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2003, 2015, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 6 2016 $
.Dt BIO_F_CIPHER 3
.Os
.Sh NAME
.Nm BIO_f_cipher ,
.Nm BIO_set_cipher ,
.Nm BIO_get_cipher_status ,
.Nm BIO_get_cipher_ctx







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt BIO_F_CIPHER 3
.Os
.Sh NAME
.Nm BIO_f_cipher ,
.Nm BIO_set_cipher ,
.Nm BIO_get_cipher_status ,
.Nm BIO_get_cipher_ctx
158
159
160
161
162
163
164











.Fn BIO_get_cipher_status
returns 1 for a successful decrypt and 0 for failure.
.Pp
.Fn BIO_get_cipher_ctx
currently always returns 1.
.Sh SEE ALSO
.Xr BIO_new 3


















>
>
>
>
>
>
>
>
>
>
>
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
.Fn BIO_get_cipher_status
returns 1 for a successful decrypt and 0 for failure.
.Pp
.Fn BIO_get_cipher_ctx
currently always returns 1.
.Sh SEE ALSO
.Xr BIO_new 3
.Sh HISTORY
.Fn BIO_f_cipher ,
.Fn BIO_set_cipher ,
and
.Fn BIO_get_cipher_status
appeared in SSLeay 0.8.1b or earlier and have been available since
.Ox 2.4 .
.Pp
.Fn BIO_get_cipher_ctx
first appeared in SSLeay 0.9.1 and has been available since
.Ox 2.6 .
Changes to jni/libressl/man/BIO_f_md.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: BIO_f_md.3,v 1.7 2017/01/07 08:46:13 jmc Exp $
.\"	OpenSSL a528d4f0 Oct 27 13:40:11 2015 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2006, 2009, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: BIO_f_md.3,v 1.8 2018/03/20 23:56:07 schwarze Exp $
.\"	OpenSSL a528d4f0 Oct 27 13:40:11 2015 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2006, 2009, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: January 7 2017 $
.Dt BIO_F_MD 3
.Os
.Sh NAME
.Nm BIO_f_md ,
.Nm BIO_set_md ,
.Nm BIO_get_md ,
.Nm BIO_get_md_ctx







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 20 2018 $
.Dt BIO_F_MD 3
.Os
.Sh NAME
.Nm BIO_f_md ,
.Nm BIO_set_md ,
.Nm BIO_get_md ,
.Nm BIO_get_md_ctx
242
243
244
245
246
247
248








249
250
251
252
253
254
255
	mdtmp = BIO_next(mdtmp);
} while(mdtmp);
BIO_free_all(bio);
.Ed
.Sh SEE ALSO
.Xr BIO_new 3
.Sh HISTORY








Before OpenSSL 1.0.0, the call to
.Fn BIO_get_md_ctx
would only work if the
.Vt BIO
had been initialized, for example by calling
.Fn BIO_set_md .
.Sh BUGS







>
>
>
>
>
>
>
>







242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
	mdtmp = BIO_next(mdtmp);
} while(mdtmp);
BIO_free_all(bio);
.Ed
.Sh SEE ALSO
.Xr BIO_new 3
.Sh HISTORY
.Fn BIO_f_md ,
.Fn BIO_set_md ,
.Fn BIO_get_md ,
and
.Fn BIO_get_md_ctx
appeared in SSLeay 0.8.1b or earlier and have been available since
.Ox 2.4 .
.Pp
Before OpenSSL 1.0.0, the call to
.Fn BIO_get_md_ctx
would only work if the
.Vt BIO
had been initialized, for example by calling
.Fn BIO_set_md .
.Sh BUGS
Changes to jni/libressl/man/BIO_f_null.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: BIO_f_null.3,v 1.6 2016/12/06 14:45:08 schwarze Exp $
.\"	OpenSSL e117a890 Sep 14 12:14:41 2000 +0000
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: BIO_f_null.3,v 1.7 2018/03/20 19:33:16 schwarze Exp $
.\"	OpenSSL e117a890 Sep 14 12:14:41 2000 +0000
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 6 2016 $
.Dt BIO_F_NULL 3
.Os
.Sh NAME
.Nm BIO_f_null
.Nd null filter
.Sh SYNOPSIS
.In openssl/bio.h







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 20 2018 $
.Dt BIO_F_NULL 3
.Os
.Sh NAME
.Nm BIO_f_null
.Nd null filter
.Sh SYNOPSIS
.In openssl/bio.h
70
71
72
73
74
75
76




in the chain: this means that a BIO chain containing a null filter BIO
behaves just as though the BIO was not there.
.Sh RETURN VALUES
.Fn BIO_f_null
returns the null filter BIO method.
.Sh SEE ALSO
.Xr BIO_new 3











>
>
>
>
70
71
72
73
74
75
76
77
78
79
80
in the chain: this means that a BIO chain containing a null filter BIO
behaves just as though the BIO was not there.
.Sh RETURN VALUES
.Fn BIO_f_null
returns the null filter BIO method.
.Sh SEE ALSO
.Xr BIO_new 3
.Sh HISTORY
.Fn BIO_f_null
appeared in SSLeay 0.8.1b or earlier and has been available since
.Ox 2.4 .
Changes to jni/libressl/man/BIO_f_ssl.3.
1
2
3

4
5
6
7
8
9
10
.\"	$OpenBSD: BIO_f_ssl.3,v 1.5 2017/08/20 17:35:18 schwarze Exp $
.\"	OpenSSL BIO_f_ssl.pod e90fc053 Jul 15 09:39:45 2017 -0400
.\"	OpenSSL BIO_f_ssl.pod f672aee4 Feb 9 11:52:40 2016 -0500

.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2003, 2009, 2014-2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|
<
|
>







1

2
3
4
5
6
7
8
9
10
.\" $OpenBSD: BIO_f_ssl.3,v 1.8 2018/03/21 08:06:34 schwarze Exp $

.\" full merge up to: OpenSSL f672aee4 Feb 9 11:52:40 2016 -0500
.\" selective merge up to: OpenSSL 61f805c1 Jan 16 01:01:46 2018 +0800
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2003, 2009, 2014-2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: August 20 2017 $
.Dt BIO_F_SSL 3
.Os
.Sh NAME
.Nm BIO_f_ssl ,
.Nm BIO_set_ssl ,
.Nm BIO_get_ssl ,
.Nm BIO_set_ssl_mode ,







|







46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt BIO_F_SSL 3
.Os
.Sh NAME
.Nm BIO_f_ssl ,
.Nm BIO_set_ssl ,
.Nm BIO_get_ssl ,
.Nm BIO_set_ssl_mode ,
349
350
351
352
353
354
355




356
















357









358
359
360
361
362
363
364
.Fn BIO_set_ssl_renegotiate_bytes ,
.Fn BIO_set_ssl_renegotiate_timeout ,
.Fn BIO_get_num_renegotiates ,
and
.Fn BIO_do_handshake
are implemented as macros.
.Sh RETURN VALUES




.\" XXX
















This section is incomplete.









.Sh EXAMPLES
This SSL/TLS client example attempts to retrieve a page from an SSL/TLS web
server.
The I/O routines are identical to those of the unencrypted example in
.Xr BIO_s_connect 3 .
.Bd -literal
BIO *sbio, *out;







>
>
>
>
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
>
>
>
>
>
>
>
>
>







349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
.Fn BIO_set_ssl_renegotiate_bytes ,
.Fn BIO_set_ssl_renegotiate_timeout ,
.Fn BIO_get_num_renegotiates ,
and
.Fn BIO_do_handshake
are implemented as macros.
.Sh RETURN VALUES
.Fn BIO_f_ssl
returns a pointer to a static
.Vt BIO_METHOD
structure.
.Pp
.Fn BIO_set_ssl ,
.Fn BIO_get_ssl ,
.Fn BIO_set_ssl_mode ,
.Fn BIO_set_ssl_renegotiate_bytes ,
.Fn BIO_set_ssl_renegotiate_timeout ,
and
.Fn BIO_get_num_renegotiates
return 1 on success or a value less than or equal to 0
if an error occurred.
.Pp
.Fn BIO_new_ssl ,
.Fn BIO_new_ssl_connect ,
and
.Fn BIO_new_buffer_ssl_connect
returns a pointer to a newly allocated
.Vt BIO
chain or
.Dv NULL
if an error occurred.
.Pp
.Fn BIO_ssl_copy_session_id
returns 1 on success or 0 on error.
.Pp
.Fn BIO_do_handshake
returns 1 if the connection was established successfully
or a value less than or equal to 0 otherwise.
.Sh EXAMPLES
This SSL/TLS client example attempts to retrieve a page from an SSL/TLS web
server.
The I/O routines are identical to those of the unencrypted example in
.Xr BIO_s_connect 3 .
.Bd -literal
BIO *sbio, *out;
533
534
535
536
537
538
539




















540
541
542
543
544
545
546

/* Since there is a buffering BIO present we had better flush it */
BIO_flush(sbio);

BIO_free_all(sbio);
.Ed
.Sh HISTORY




















In OpenSSL versions before 1.0.0 the
.Xr BIO_pop 3
call was handled incorrectly:
the I/O BIO reference count was incorrectly incremented (instead of
decremented) and dissociated with the
.Vt SSL
.Vt BIO







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595

/* Since there is a buffering BIO present we had better flush it */
BIO_flush(sbio);

BIO_free_all(sbio);
.Ed
.Sh HISTORY
.Fn BIO_f_ssl ,
.Fn BIO_set_ssl ,
.Fn BIO_get_ssl ,
.Fn BIO_set_ssl_mode ,
.Fn BIO_new_ssl ,
.Fn BIO_ssl_copy_session_id ,
.Fn BIO_ssl_shutdown ,
and
.Fn BIO_do_handshake
appeared before SSLeay 0.8.
.Fn BIO_set_ssl_renegotiate_bytes ,
.Fn BIO_get_num_renegotiates ,
.Fn BIO_set_ssl_renegotiate_timeout ,
.Fn BIO_new_ssl_connect ,
and
.Fn BIO_new_buffer_ssl_connect
first appeared in SSLeay 0.9.0.
All these functions have been available since
.Ox 2.4 .
.Pp
In OpenSSL versions before 1.0.0 the
.Xr BIO_pop 3
call was handled incorrectly:
the I/O BIO reference count was incorrectly incremented (instead of
decremented) and dissociated with the
.Vt SSL
.Vt BIO
Changes to jni/libressl/man/BIO_find_type.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: BIO_find_type.3,v 1.6 2016/12/06 14:45:08 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2013, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: BIO_find_type.3,v 1.8 2018/03/22 17:11:04 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2013, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 6 2016 $
.Dt BIO_FIND_TYPE 3
.Os
.Sh NAME
.Nm BIO_find_type ,
.Nm BIO_next ,
.Nm BIO_method_type
.Nd BIO chain traversal







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt BIO_FIND_TYPE 3
.Os
.Sh NAME
.Nm BIO_find_type ,
.Nm BIO_next ,
.Nm BIO_method_type
.Nd BIO chain traversal
151
152
153
154
155
156
157










158
159
160
161
162
163
164
	...

	btmp = BIO_next(btmp);
} while(btmp);
.Ed
.Sh SEE ALSO
.Xr BIO_new 3










.Sh BUGS
.Fn BIO_find_type
in OpenSSL 0.9.5a and earlier could not be safely passed a
.Dv NULL
pointer for the
.Fa b
argument.







>
>
>
>
>
>
>
>
>
>







151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
	...

	btmp = BIO_next(btmp);
} while(btmp);
.Ed
.Sh SEE ALSO
.Xr BIO_new 3
.Sh HISTORY
.Fn BIO_find_type
and
.Fn BIO_method_type
appeared in SSLeay 0.8.1b or earlier and have been available since
.Ox 2.4 .
.Pp
.Fn BIO_next
first appeared in OpenSSL 0.9.6 and has been available since
.Ox 2.9 .
.Sh BUGS
.Fn BIO_find_type
in OpenSSL 0.9.5a and earlier could not be safely passed a
.Dv NULL
pointer for the
.Fa b
argument.
Added jni/libressl/man/BIO_get_data.3.
































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
.\" $OpenBSD: BIO_get_data.3,v 1.3 2018/03/23 23:18:17 schwarze Exp $
.\" selective merge up to: OpenSSL e90fc053 Jul 15 09:39:45 2017 -0400
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2018 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" The original file was written by Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\"
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in
.\"    the documentation and/or other materials provided with the
.\"    distribution.
.\"
.\" 3. All advertising materials mentioning features or use of this
.\"    software must display the following acknowledgment:
.\"    "This product includes software developed by the OpenSSL Project
.\"    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
.\"
.\" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
.\"    endorse or promote products derived from this software without
.\"    prior written permission. For written permission, please contact
.\"    openssl-core@openssl.org.
.\"
.\" 5. Products derived from this software may not be called "OpenSSL"
.\"    nor may "OpenSSL" appear in their names without prior written
.\"    permission of the OpenSSL Project.
.\"
.\" 6. Redistributions of any form whatsoever must retain the following
.\"    acknowledgment:
.\"    "This product includes software developed by the OpenSSL Project
.\"    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
.\" EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
.\" ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt BIO_GET_DATA 3
.Os
.Sh NAME
.Nm BIO_set_data ,
.Nm BIO_get_data ,
.Nm BIO_set_init ,
.Nm BIO_set_shutdown ,
.Nm BIO_get_shutdown
.Nd manage BIO state information
.Sh SYNOPSIS
.In openssl/bio.h
.Ft void
.Fo BIO_set_data
.Fa "BIO *a"
.Fa "void *ptr"
.Fc
.Ft void *
.Fo BIO_get_data
.Fa "BIO *a"
.Fc
.Ft void
.Fo BIO_set_init
.Fa "BIO *a"
.Fa "int init"
.Fc
.Ft void
.Fo BIO_set_shutdown
.Fa "BIO *a"
.Fa "int shutdown"
.Fc
.Ft int
.Fo BIO_get_shutdown
.Fa "BIO *a"
.Fc
.Sh DESCRIPTION
These functions are mainly useful when implementing a custom BIO.
.Pp
The
.Fn BIO_set_data
function associates the custom data pointed to by
.Fa ptr
with the
.Fa "BIO a" .
This data can subsequently be retrieved via a call to
.Fn BIO_get_data .
This can be used by custom BIOs for storing implementation specific
information.
.Pp
The
.Fn BIO_set_init
function sets the
.Fa init
flag in
.Fa a
to the specified value.
A non-zero value indicates that initialisation is complete,
whilst zero indicates that it is not.
Often initialisation will complete
during initial construction of the BIO.
For some BIOs however, initialisation may not be complete until
additional steps have been taken, for example through calling custom
ctrls.
.Pp
The
.Fn BIO_set_shutdown
and
.Fn BIO_get_shutdown
functions are low-level interfaces to forcefully set and get the
.Fa shutdown
flag of
.Fa a ,
circumventing type-dependent sanity checks,
exclusively intended for implementing a new BIO type.
The
.Fa shutdown
argument must be either
.Dv BIO_CLOSE
or
.Dv BIO_NOCLOSE .
When merely using a
.Vt BIO
object, call
.Xr BIO_set_close 3
and
.Xr BIO_get_close 3
instead.
.Sh RETURN VALUES
.Fn BIO_get_data
returns a pointer to the implementation specific custom data associated
with
.Fa a ,
or
.Dv NULL
if none is set.
.Pp
.Fn BIO_get_shutdown
returns the value previously set with
.Fn BIO_set_shutdown
or with
.Xr BIO_set_close 3 .
.Sh SEE ALSO
.Xr BIO_meth_new 3 ,
.Xr BIO_new 3 ,
.Xr BIO_set_close 3
.Sh HISTORY
These functions first appeared in OpenSSL 1.1.0
and have been available since
.Ox 6.3 .
Changes to jni/libressl/man/BIO_get_ex_new_index.3.
1
2

3
4
5
6
7
8
9
.\"	$OpenBSD: BIO_get_ex_new_index.3,v 1.3 2017/01/06 20:35:23 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100

.\"
.\" This file was written by Rich Salz <rsalz@akamai.com>.
.\" Copyright (c) 2015, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
|
|
>







1
2
3
4
5
6
7
8
9
10
.\" $OpenBSD: BIO_get_ex_new_index.3,v 1.8 2018/03/23 00:09:11 schwarze Exp $
.\" full merge up to: OpenSSL a970b14f Jul 31 18:58:40 2017 -0400
.\" selective merge up to: OpenSSL 61f805c1 Jan 16 01:01:46 2018 +0800
.\"
.\" This file was written by Rich Salz <rsalz@akamai.com>.
.\" Copyright (c) 2015, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: January 6 2017 $
.Dt BIO_GET_EX_NEW_INDEX 3
.Os
.Sh NAME
.Nm BIO_get_ex_new_index ,
.Nm BIO_set_ex_data ,
.Nm BIO_get_ex_data ,
.Nm ENGINE_get_ex_new_index ,







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt BIO_GET_EX_NEW_INDEX 3
.Os
.Sh NAME
.Nm BIO_get_ex_new_index ,
.Nm BIO_set_ex_data ,
.Nm BIO_get_ex_data ,
.Nm ENGINE_get_ex_new_index ,
115
116
117
118
119
120
121











122
123
124































.Pp
.Fn TYPE_get_ex_data
is a function that calls
.Xr CRYPTO_get_ex_data 3
with an offset into the opaque exdata part of the
.Vt TYPE
object.











.Sh SEE ALSO
.Xr CRYPTO_get_ex_new_index 3 ,
.Xr RSA_get_ex_new_index 3






































>
>
>
>
>
>
>
>
>
>
>



>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
.Pp
.Fn TYPE_get_ex_data
is a function that calls
.Xr CRYPTO_get_ex_data 3
with an offset into the opaque exdata part of the
.Vt TYPE
object.
.Sh RETURN VALUES
.Fn TYPE_get_new_ex_index
returns a new index on success or \-1 on error.
.Pp
.Fn TYPE_set_ex_data
returns 1 on success or 0 on error.
.Pp
.Fn TYPE_get_ex_data
returns the application data or
.Dv NULL
if an error occurred.
.Sh SEE ALSO
.Xr CRYPTO_get_ex_new_index 3 ,
.Xr RSA_get_ex_new_index 3
.Sh HISTORY
.Fn BIO_get_ex_new_index ,
.Fn BIO_set_ex_data ,
and
.Fn BIO_get_ex_data
first appeared in SSLeay 0.9.0 and have been available since
.Ox 2.4 .
.Pp
.Fn X509_get_ex_new_index ,
.Fn X509_set_ex_data ,
and
.Fn X509_get_ex_data
first appeared in OpenSSL 0.9.5 and have been available since
.Ox 2.7 .
.Pp
.Fn UI_get_ex_new_index ,
.Fn UI_set_ex_data ,
and
.Fn UI_get_ex_data
first appeared in OpenSSL 0.9.7 and have been available since
.Ox 3.2 .
.Pp
.Fn ECDH_get_ex_new_index ,
.Fn ECDH_set_ex_data ,
.Fn ECDH_get_ex_data ,
.Fn ECDSA_get_ex_new_index ,
.Fn ECDSA_set_ex_data ,
and
.Fn ECDSA_get_ex_data
first appeared in OpenSSL 0.9.8 and have been available since
.Ox 4.5 .
Added jni/libressl/man/BIO_meth_new.3.






























































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
.\" $OpenBSD: BIO_meth_new.3,v 1.4 2018/03/23 23:18:17 schwarze Exp $
.\" full merge up to: OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\" selective merge up to: OpenSSL 61f805c1 Jan 16 01:01:46 2018 +0800
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2018 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" The original file was written by Matt Caswell <matt@openssl.org>
.\" Copyright (c) 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\"
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in
.\"    the documentation and/or other materials provided with the
.\"    distribution.
.\"
.\" 3. All advertising materials mentioning features or use of this
.\"    software must display the following acknowledgment:
.\"    "This product includes software developed by the OpenSSL Project
.\"    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
.\"
.\" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
.\"    endorse or promote products derived from this software without
.\"    prior written permission. For written permission, please contact
.\"    openssl-core@openssl.org.
.\"
.\" 5. Products derived from this software may not be called "OpenSSL"
.\"    nor may "OpenSSL" appear in their names without prior written
.\"    permission of the OpenSSL Project.
.\"
.\" 6. Redistributions of any form whatsoever must retain the following
.\"    acknowledgment:
.\"    "This product includes software developed by the OpenSSL Project
.\"    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
.\" EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
.\" ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt BIO_METH_NEW 3
.Os
.Sh NAME
.Nm BIO_get_new_index ,
.Nm BIO_meth_new ,
.Nm BIO_meth_free ,
.Nm BIO_meth_get_write ,
.Nm BIO_meth_set_write ,
.Nm BIO_meth_get_read ,
.Nm BIO_meth_set_read ,
.Nm BIO_meth_get_puts ,
.Nm BIO_meth_set_puts ,
.Nm BIO_meth_get_gets ,
.Nm BIO_meth_set_gets ,
.Nm BIO_meth_get_ctrl ,
.Nm BIO_meth_set_ctrl ,
.Nm BIO_meth_get_create ,
.Nm BIO_meth_set_create ,
.Nm BIO_meth_get_destroy ,
.Nm BIO_meth_set_destroy ,
.Nm BIO_meth_get_callback_ctrl ,
.Nm BIO_meth_set_callback_ctrl
.Nd manipulate BIO_METHOD structures
.Sh SYNOPSIS
.In openssl/bio.h
.Ft int
.Fn BIO_get_new_index void
.Ft BIO_METHOD *
.Fo BIO_meth_new
.Fa "int type"
.Fa "const char *name"
.Fc
.Ft void
.Fo BIO_meth_free
.Fa "BIO_METHOD *biom"
.Fc
.Ft int
.Fn "(*BIO_meth_get_write(BIO_METHOD *biom))" "BIO *" "const char *" int
.Ft int
.Fo BIO_meth_set_write
.Fa "BIO_METHOD *biom"
.Fa "int (*write)(BIO *, const char *, int)"
.Fc
.Ft int
.Fn "(*BIO_meth_get_read(BIO_METHOD *biom))" "BIO *" "char *" int
.Ft int
.Fo BIO_meth_set_read
.Fa "BIO_METHOD *biom"
.Fa "int (*read)(BIO *, char *, int)"
.Fc
.Ft int
.Fn "(*BIO_meth_get_puts(BIO_METHOD *biom))" "BIO *" "const char *"
.Ft int
.Fo BIO_meth_set_puts
.Fa "BIO_METHOD *biom"
.Fa "int (*puts)(BIO *, const char *)"
.Fc
.Ft int
.Fn "(*BIO_meth_get_gets(BIO_METHOD *biom))" "BIO *" "char *" int
.Ft int
.Fo BIO_meth_set_gets
.Fa "BIO_METHOD *biom"
.Fa "int (*gets)(BIO *, char *, int)"
.Fc
.Ft long
.Fn "(*BIO_meth_get_ctrl(BIO_METHOD *biom))" "BIO *" int long "void *"
.Ft int
.Fo BIO_meth_set_ctrl
.Fa "BIO_METHOD *biom"
.Fa "long (*ctrl)(BIO *, int, long, void *)"
.Fc
.Ft int
.Fn "(*BIO_meth_get_create(BIO_METHOD *biom))" "BIO *"
.Ft int
.Fo BIO_meth_set_create
.Fa "BIO_METHOD *biom"
.Fa "int (*create)(BIO *)"
.Fc
.Ft int
.Fn "(*BIO_meth_get_destroy(BIO_METHOD *biom))" "BIO *"
.Ft int
.Fo BIO_meth_set_destroy
.Fa "BIO_METHOD *biom"
.Fa "int (*destroy)(BIO *)"
.Fc
.Ft long
.Fo "(*BIO_meth_get_callback_ctrl(BIO_METHOD *biom))"
.Fa "BIO *"
.Fa int
.Fa "BIO_info_cb *"
.Fc
.Ft int
.Fo BIO_meth_set_callback_ctrl
.Fa "BIO_METHOD *biom"
.Fa "long (*callback_ctrl)(BIO *, int, BIO_info_cb *)"
.Fc
.Sh DESCRIPTION
The
.Vt BIO_METHOD
structure stores function pointers implementing a
.Vt BIO
type.
See
.Xr BIO_new 3
for more information about
.Vt BIO
objects.
.Pp
.Fn BIO_meth_new
creates a new
.Vt BIO_METHOD
structure.
It requires a unique integer
.Fa type ;
use
.Fn BIO_get_new_index
to get the value for
.Fa type .
Currently, the user can only create up to 127 different BIO types, and
.Fa type
is limited to the range 129\(en255.
The
.Fa name
pointer is stored in the structure and will not be freed by
.Fn BIO_meth_free .
.Pp
The standard BIO types are listed in
.In openssl/bio.h .
Some examples include
.Dv BIO_TYPE_BUFFER
and
.Dv BIO_TYPE_CIPHER .
The
.Fa type
of filter BIOs should have the
.Dv BIO_TYPE_FILTER
bit set.
Source/sink BIOs should have the
.Dv BIO_TYPE_SOURCE_SINK
bit set.
File descriptor based BIOs (e.g. socket, fd, connect, accept etc.\&)
should additionally have the
.Dv BIO_TYPE_DESCRIPTOR
bit set.
See
.Xr BIO_find_type 3
for more information.
.Pp
.Fn BIO_meth_free
is an alias for
.Xr free 3 .
.Pp
.Fn BIO_meth_get_write ,
.Fn BIO_meth_set_write ,
.Fn BIO_meth_get_read ,
and
.Fn BIO_meth_set_read
get and set the functions
.Fa write
and
.Fa read
used for writing and reading arbitrary length data to and from the
.Vt BIO .
These functions are called from
.Xr BIO_write 3
and
.Xr BIO_read 3 ,
respectively.
The parameters and return values of
.Fa write
and
.Fa read
have the same meaning as for
.Xr BIO_write 3
and
.Xr BIO_read 3 .
.Pp
.Fn BIO_meth_get_puts
and
.Fn BIO_meth_set_puts
get and set the function
.Fa puts
used for writing a NUL-terminated string to the
.Vt BIO .
This function is called from
.Xr BIO_puts 3 .
The parameters and the return value of
.Fa puts
have the same meaning as for
.Xr BIO_puts 3 .
.Pp
.Fn BIO_meth_get_gets
and
.Fn BIO_meth_set_gets
get and set the function
.Fa gets
used for reading a line of data from the
.Vt BIO .
This function is called from
.Xr BIO_gets 3 .
The parameters and the return value of
.Fa gets
have the same meaning as for
.Xr BIO_gets 3 .
.Pp
.Fn BIO_meth_get_ctrl
and
.Fn BIO_meth_set_ctrl
get and set the function
.Fa ctrl
used for processing control messages in the
.Vt BIO .
This function is called from
.Xr BIO_ctrl 3 .
The parameters and return value of
.Fa ctrl
have the same meaning as for
.Xr BIO_ctrl 3 .
.Pp
.Fn BIO_meth_get_create
and
.Fn BIO_meth_set_create
get and set a function
.Fa create
used while initializing a new instance of the
.Vt BIO .
This function is called from
.Xr BIO_new 3 .
The
.Xr BIO_new 3
function allocates the memory for the new
.Vt BIO ,
and a pointer to this newly allocated structure is passed
as the parameter to
.Fa create .
.Pp
.Fn BIO_meth_get_destroy
and
.Fn BIO_meth_set_destroy
get and set a function
.Fa destroy
used while destroying an instance of a
.Vt BIO .
This function is called from
.Xr BIO_free 3 .
A pointer to the
.Vt BIO
to be destroyed is passed as the parameter.
The
.Fa destroy
function is intended to perform clean-up specific to the
.Vt BIO
.Fa type .
The memory for the
.Vt BIO
itself must not be freed by this function.
.Pp
.Fn BIO_meth_get_callback_ctrl
and
.Fn BIO_meth_set_callback_ctrl
get and set the function
.Fa callback_ctrl
used for processing callback control messages in the
.Vt BIO .
This function is called from
.Xr BIO_callback_ctrl 3 .
The parameters and return value of
.Fa callback_ctrl
have the same meaning as for
.Xr BIO_callback_ctrl 3 .
.Sh RETURN VALUES
.Fn BIO_get_new_index
returns the new BIO type value or \-1 if an error occurs.
.Pp
.Fn BIO_meth_new
returns the new
.Vt BIO_METHOD
structure or
.Dv NULL
if an error occurs.
.Pp
The
.Fn BIO_meth_set_*
functions return 1 on success or 0 on error.
Currently, they cannot fail.
.Pp
The
.Fn BIO_meth_get_*
functions return function pointers.
.Sh SEE ALSO
.Xr BIO_ctrl 3 ,
.Xr BIO_find_type 3 ,
.Xr BIO_new 3 ,
.Xr BIO_read 3
.Sh HISTORY
These functions first appeared in OpenSSL 1.1.0
and have been available since
.Ox 6.3 .
Changes to jni/libressl/man/BIO_new.3.
1

2
3


4
5
6
7
8
9
10
.\"	$OpenBSD: BIO_new.3,v 1.8 2017/03/25 17:15:59 schwarze Exp $

.\"	OpenSSL doc/man3/BIO_new.pod ca3a82c3 Mar 25 11:31:18 2015 -0400
.\"	OpenSSL doc/man7/bio.pod a9c85cea Nov 11 09:33:55 2016 +0100


.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2015, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
|
>
|
|
>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
.\" $OpenBSD: BIO_new.3,v 1.14 2018/03/23 23:18:17 schwarze Exp $
.\" full merge up to:
.\" OpenSSL man3/BIO_new.pod fb46be03 Feb 26 11:51:31 2016 +0000
.\" OpenSSL man7/bio.pod 631c37be Dec 12 16:56:50 2017 +0100
.\" partial merge up to:
.\" OpenSSL man3/BIO_new.pod e9b77246 Jan 20 19:58:49 2017 +0100
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2015, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
45
46
47
48
49
50
51
52
53
54
55
56

57
58
59
60
61
62
63
64
65
66
67




68
69
70
71
72
73
74
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 25 2017 $
.Dt BIO_NEW 3
.Os
.Sh NAME
.Nm BIO_new ,

.Nm BIO_set ,
.Nm BIO_free ,
.Nm BIO_vfree ,
.Nm BIO_free_all
.Nd construct and destruct I/O abstraction objects
.Sh SYNOPSIS
.In openssl/bio.h
.Ft BIO *
.Fo BIO_new
.Fa "BIO_METHOD *type"
.Fc




.Ft int
.Fo BIO_set
.Fa "BIO *a"
.Fa "BIO_METHOD *type"
.Fc
.Ft int
.Fo BIO_free







|




>











>
>
>
>







48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt BIO_NEW 3
.Os
.Sh NAME
.Nm BIO_new ,
.Nm BIO_up_ref ,
.Nm BIO_set ,
.Nm BIO_free ,
.Nm BIO_vfree ,
.Nm BIO_free_all
.Nd construct and destruct I/O abstraction objects
.Sh SYNOPSIS
.In openssl/bio.h
.Ft BIO *
.Fo BIO_new
.Fa "BIO_METHOD *type"
.Fc
.Ft int
.Fo BIO_up_ref
.Fa "BIO *a"
.Fc
.Ft int
.Fo BIO_set
.Fa "BIO *a"
.Fa "BIO_METHOD *type"
.Fc
.Ft int
.Fo BIO_free
91
92
93
94
95
96
97
98

99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126





127



128







129
130
131
132





133
134
135
136
137
138
139
140
141
142
143
144
145
146





147










148
149
150
151
152
153
154
SSL connections, unencrypted network connections, and file I/O.
.Pp
The
.Fn BIO_new
function constructs a new
.Vt BIO
using the method
.Fa type .

There are two groups of BIO types, source/sink BIOs and filter BIOs.
.Pp
Source/sink BIOs provide input or consume output.
Examples include socket BIOs and file BIOs.
.Pp
Filter BIOs take data from one BIO and pass it through to another,
or to the application, forming a chain of BIOs.
The data may be left unmodified (for example by a message digest BIO)
or translated (for example by an encryption BIO).
The effect of a filter BIO may change according to the I/O operation
it is performing: for example an encryption BIO will encrypt data
if it is written to and decrypt data if it is read from.
.Pp
Some BIOs (such as memory BIOs) can be used immediately after calling
.Fn BIO_new .
Others (such as file BIOs) need some additional initialization, and
utility functions exists to construct and initialize such BIOs.
.Pp
Normally the
.Fa type
argument is supplied by a function which returns a pointer to a
.Vt BIO_METHOD .
There is a naming convention for such functions:
the methods for source/sink BIOs are called
.Fn BIO_s_*
and those for filter BIOs
.Fn BIO_f_* .
.Pp





.Fn BIO_set



sets the method of an already existing BIO.







.Pp
.Fn BIO_free
and
.Fn BIO_vfree





destruct a single BIO, which may also have some effect on the
underlying I/O structure, for example it may close the file being
referred to under certain circumstances.
If
.Fa a
is a
.Dv NULL
pointer, no action occurs.
If
.Fn BIO_free
is called on a BIO chain, it will only destruct one BIO,
resulting in a memory leak.
.Pp
.Fn BIO_free_all





destructs an entire BIO chain.










It does not halt if an error occurs
destructing an individual BIO in the chain.
If
.Fa a
is a
.Dv NULL
pointer, no action occurs.







|
>










|
|
















>
>
>
>
>

>
>
>
|
>
>
>
>
>
>
>




>
>
>
>
>
|









|



>
>
>
>
>
|
>
>
>
>
>
>
>
>
>
>







99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
SSL connections, unencrypted network connections, and file I/O.
.Pp
The
.Fn BIO_new
function constructs a new
.Vt BIO
using the method
.Fa type
and sets its reference count to 1.
There are two groups of BIO types, source/sink BIOs and filter BIOs.
.Pp
Source/sink BIOs provide input or consume output.
Examples include socket BIOs and file BIOs.
.Pp
Filter BIOs take data from one BIO and pass it through to another,
or to the application, forming a chain of BIOs.
The data may be left unmodified (for example by a message digest BIO)
or translated (for example by an encryption BIO).
The effect of a filter BIO may change according to the I/O operation
it is performing: for example an encryption BIO encrypts data
if it is written to and decrypts data if it is read from.
.Pp
Some BIOs (such as memory BIOs) can be used immediately after calling
.Fn BIO_new .
Others (such as file BIOs) need some additional initialization, and
utility functions exists to construct and initialize such BIOs.
.Pp
Normally the
.Fa type
argument is supplied by a function which returns a pointer to a
.Vt BIO_METHOD .
There is a naming convention for such functions:
the methods for source/sink BIOs are called
.Fn BIO_s_*
and those for filter BIOs
.Fn BIO_f_* .
.Pp
.Fn BIO_up_ref
increments the reference count of
.Fa a
by 1.
.Pp
.Fn BIO_set
is a deprecated function to initialize an unused
.Vt BIO
structure located in static memory or on the stack,
to set its method to
.Fa type ,
and to set its reference count to 1.
It must not be called on
.Vt BIO
objects created with
.Fn BIO_new ,
nor on objects that were already used.
.Pp
.Fn BIO_free
and
.Fn BIO_vfree
decrement the reference count of
.Fa a
by 1, and if the refenece count reaches 0, they destruct the single
.Vt BIO
.Fa a ,
which may also have some effect on the
underlying I/O structure, for example it may close the file being
referred to under certain circumstances.
If
.Fa a
is a
.Dv NULL
pointer, no action occurs.
If
.Fn BIO_free
is called on a BIO chain, it destructs at most one BIO,
resulting in a memory leak.
.Pp
.Fn BIO_free_all
calls
.Fn BIO_free
on
.Fa a
and on all following
.Vt BIO
objects in the chain.
As soon as the reference count of a
.Vt BIO
is still non-zero after calling
.Fn BIO_free
on it, the function
.Fn BIO_free_all
returns right away and refrains from freeing the remaining
.Vt BIO
objects in the chain.
It does not halt if an error occurs
destructing an individual BIO in the chain.
If
.Fa a
is a
.Dv NULL
pointer, no action occurs.
170
171
172
173
174
175
176

177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194

195
196
197
198
199
200
201
202
203
204
205
206
207



















.Fn BIO_new
returns a newly constructed
.Vt BIO
object or
.Dv NULL
on failure.
.Pp

.Fn BIO_set
and
.Fn BIO_free
return 1 for success or 0 for failure.
.Sh EXAMPLES
Create a memory BIO:
.Pp
.Dl BIO *mem = BIO_new(BIO_s_mem());
.Sh SEE ALSO
.Xr BIO_ctrl 3 ,
.Xr BIO_f_base64 3 ,
.Xr BIO_f_buffer 3 ,
.Xr BIO_f_cipher 3 ,
.Xr BIO_f_md 3 ,
.Xr BIO_f_null 3 ,
.Xr BIO_f_ssl 3 ,
.Xr BIO_find_type 3 ,
.Xr BIO_get_ex_new_index 3 ,

.Xr BIO_printf 3 ,
.Xr BIO_push 3 ,
.Xr BIO_read 3 ,
.Xr BIO_s_accept 3 ,
.Xr BIO_s_bio 3 ,
.Xr BIO_s_connect 3 ,
.Xr BIO_s_fd 3 ,
.Xr BIO_s_file 3 ,
.Xr BIO_s_mem 3 ,
.Xr BIO_s_null 3 ,
.Xr BIO_s_socket 3 ,
.Xr BIO_set_callback 3 ,
.Xr BIO_should_retry 3


























>
|

















>













>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
.Fn BIO_new
returns a newly constructed
.Vt BIO
object or
.Dv NULL
on failure.
.Pp
.Fn BIO_up_ref ,
.Fn BIO_set ,
and
.Fn BIO_free
return 1 for success or 0 for failure.
.Sh EXAMPLES
Create a memory BIO:
.Pp
.Dl BIO *mem = BIO_new(BIO_s_mem());
.Sh SEE ALSO
.Xr BIO_ctrl 3 ,
.Xr BIO_f_base64 3 ,
.Xr BIO_f_buffer 3 ,
.Xr BIO_f_cipher 3 ,
.Xr BIO_f_md 3 ,
.Xr BIO_f_null 3 ,
.Xr BIO_f_ssl 3 ,
.Xr BIO_find_type 3 ,
.Xr BIO_get_ex_new_index 3 ,
.Xr BIO_meth_new 3 ,
.Xr BIO_printf 3 ,
.Xr BIO_push 3 ,
.Xr BIO_read 3 ,
.Xr BIO_s_accept 3 ,
.Xr BIO_s_bio 3 ,
.Xr BIO_s_connect 3 ,
.Xr BIO_s_fd 3 ,
.Xr BIO_s_file 3 ,
.Xr BIO_s_mem 3 ,
.Xr BIO_s_null 3 ,
.Xr BIO_s_socket 3 ,
.Xr BIO_set_callback 3 ,
.Xr BIO_should_retry 3
.Sh HISTORY
.Fn BIO_new
and
.Fn BIO_free
first appeared in SSLeay 0.6.0.
.Fn BIO_set
and
.Fn BIO_free_all
appeared in SSLeay 0.8.1b or earlier.
All these functions have been available since
.Ox 2.4 .
.Pp
.Fn BIO_vfree
first appeared in OpenSSL 0.9.6 and has been available since
.Ox 2.9 .
.Pp
.Fn BIO_up_ref
first appeared in OpenSSL 1.1.0 and has been available since
.Ox 6.3 .
Changes to jni/libressl/man/BIO_printf.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
.\"	$OpenBSD: BIO_printf.3,v 1.1 2017/03/25 17:15:59 schwarze Exp $
.\"	OpenSSL 2ca2e917 Mon Mar 20 16:25:22 2017 -0400
.\"
.\" Copyright (c) 2017 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 25 2017 $
.Dt BIO_PRINTF 3
.Os
.Sh NAME
.Nm BIO_printf ,
.Nm BIO_vprintf ,
.Nm BIO_snprintf ,
.Nm BIO_vsnprintf
|
















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
.\"	$OpenBSD: BIO_printf.3,v 1.3 2018/03/22 17:11:04 schwarze Exp $
.\"	OpenSSL 2ca2e917 Mon Mar 20 16:25:22 2017 -0400
.\"
.\" Copyright (c) 2017 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt BIO_PRINTF 3
.Os
.Sh NAME
.Nm BIO_printf ,
.Nm BIO_vprintf ,
.Nm BIO_snprintf ,
.Nm BIO_vsnprintf
80
81
82
83
84
85
86











and
.Fn BIO_vsnprintf
also return -1 if
.Fa n
is too small to hold the complete output.
.Sh SEE ALSO
.Xr BIO_new 3


















>
>
>
>
>
>
>
>
>
>
>
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
and
.Fn BIO_vsnprintf
also return -1 if
.Fa n
is too small to hold the complete output.
.Sh SEE ALSO
.Xr BIO_new 3
.Sh HISTORY
.Fn BIO_printf
first appeared in SSLeay 0.6.5 and has been available since
.Ox 2.4 .
.Pp
.Fn BIO_vprintf ,
.Fn BIO_snprintf ,
and
.Fn BIO_vsnprintf
first appeared in OpenSSL 0.9.6 and have been available since
.Ox 2.9 .
Changes to jni/libressl/man/BIO_push.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: BIO_push.3,v 1.5 2016/12/06 12:54:19 schwarze Exp $
.\"	OpenSSL doc/man3/BIO_push.pod 76ed5a42 Jun 29 13:38:55 2014 +0100
.\"	OpenSSL doc/man7/bio.pod a9c85cea Nov 11 09:33:55 2016 +0100
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2014 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: BIO_push.3,v 1.6 2018/03/20 19:33:16 schwarze Exp $
.\"	OpenSSL doc/man3/BIO_push.pod 76ed5a42 Jun 29 13:38:55 2014 +0100
.\"	OpenSSL doc/man7/bio.pod a9c85cea Nov 11 09:33:55 2016 +0100
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2014 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 6 2016 $
.Dt BIO_PUSH 3
.Os
.Sh NAME
.Nm BIO_push ,
.Nm BIO_pop
.Nd add and remove BIOs from a chain
.Sh SYNOPSIS







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 20 2018 $
.Dt BIO_PUSH 3
.Os
.Sh NAME
.Nm BIO_push ,
.Nm BIO_pop
.Nd add and remove BIOs from a chain
.Sh SYNOPSIS
172
173
174
175
176
177
178






data can be written to
.Sy md1
as before.
.Sh SEE ALSO
.Xr BIO_find_type 3 ,
.Xr BIO_new 3 ,
.Xr BIO_read 3













>
>
>
>
>
>
172
173
174
175
176
177
178
179
180
181
182
183
184
data can be written to
.Sy md1
as before.
.Sh SEE ALSO
.Xr BIO_find_type 3 ,
.Xr BIO_new 3 ,
.Xr BIO_read 3
.Sh HISTORY
.Fn BIO_push
and
.Fn BIO_pop
appeared in SSLeay 0.8.1b or earlier and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/BIO_read.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: BIO_read.3,v 1.5 2016/12/06 14:45:08 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: BIO_read.3,v 1.7 2018/03/20 19:33:16 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 6 2016 $
.Dt BIO_READ 3
.Os
.Sh NAME
.Nm BIO_read ,
.Nm BIO_gets ,
.Nm BIO_write ,
.Nm BIO_puts







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 20 2018 $
.Dt BIO_READ 3
.Os
.Sh NAME
.Nm BIO_read ,
.Nm BIO_gets ,
.Nm BIO_write ,
.Nm BIO_puts
161
162
163
164
165
166
167

168
169








.Fn BIO_gets .
.Pp
A 0 or -1 return is not necessarily an indication of an error.
In particular when the source/sink is non-blocking or of a certain type
it may merely be an indication that no data is currently available and that
the application should retry the operation later.
.Sh SEE ALSO

.Xr BIO_new 3 ,
.Xr BIO_should_retry 3















>


>
>
>
>
>
>
>
>
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
.Fn BIO_gets .
.Pp
A 0 or -1 return is not necessarily an indication of an error.
In particular when the source/sink is non-blocking or of a certain type
it may merely be an indication that no data is currently available and that
the application should retry the operation later.
.Sh SEE ALSO
.Xr BIO_meth_new 3 ,
.Xr BIO_new 3 ,
.Xr BIO_should_retry 3
.Sh HISTORY
.Fn BIO_read ,
.Fn BIO_gets ,
.Fn BIO_write ,
and
.Fn BIO_puts
appeared in SSLeay 0.8.1b or earlier and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/BIO_s_accept.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: BIO_s_accept.3,v 1.5 2016/12/06 14:45:08 schwarze Exp $
.\"	OpenSSL c03726ca Thu Aug 27 12:28:08 2015 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2014, 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: BIO_s_accept.3,v 1.8 2018/03/21 09:03:49 schwarze Exp $
.\"	OpenSSL c03726ca Thu Aug 27 12:28:08 2015 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2014, 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 6 2016 $
.Dt BIO_S_ACCEPT 3
.Os
.Sh NAME
.Nm BIO_s_accept ,
.Nm BIO_set_accept_port ,
.Nm BIO_get_accept_port ,
.Nm BIO_new_accept ,







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt BIO_S_ACCEPT 3
.Os
.Sh NAME
.Nm BIO_s_accept ,
.Nm BIO_set_accept_port ,
.Nm BIO_get_accept_port ,
.Nm BIO_new_accept ,
350
351
352
353
354
355
356




















/* Close the two established connections */
BIO_free(cbio);
BIO_free(cbio2);
.Ed
.Sh SEE ALSO
.Xr BIO_new 3


























>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375

/* Close the two established connections */
BIO_free(cbio);
BIO_free(cbio2);
.Ed
.Sh SEE ALSO
.Xr BIO_new 3
.Sh HISTORY
.Fn BIO_s_accept ,
.Fn BIO_set_accept_port ,
.Fn BIO_new_accept ,
.Fn BIO_set_nbio_accept ,
.Fn BIO_set_accept_bios ,
and
.Fn BIO_do_accept
appeared in SSLeay 0.8.1b or earlier.
.Fn BIO_get_accept_port
first appeared in SSLeay 0.9.0.
All these functions have been available since
.Ox 2.4 .
.Pp
.Fn BIO_set_bind_mode
and
.Fn BIO_get_bind_mode
first appeared in SSLeay 0.9.1 and have been available since
.Ox 2.6 .
Changes to jni/libressl/man/BIO_s_bio.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: BIO_s_bio.3,v 1.9 2017/01/06 02:29:18 schwarze Exp $
.\"	OpenSSL c03726ca Aug 27 12:28:08 2015 -0400
.\"
.\" This file was written by
.\" Lutz Jaenicke <Lutz.Jaenicke@aet.TU-Cottbus.DE>,
.\" Dr. Stephen Henson <steve@openssl.org>,
.\" Bodo Moeller <bodo@openssl.org>,
.\" and Richard Levitte <levitte@openssl.org>.
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: BIO_s_bio.3,v 1.12 2018/03/22 17:11:04 schwarze Exp $
.\"	OpenSSL c03726ca Aug 27 12:28:08 2015 -0400
.\"
.\" This file was written by
.\" Lutz Jaenicke <Lutz.Jaenicke@aet.TU-Cottbus.DE>,
.\" Dr. Stephen Henson <steve@openssl.org>,
.\" Bodo Moeller <bodo@openssl.org>,
.\" and Richard Levitte <levitte@openssl.org>.
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: January 6 2017 $
.Dt BIO_S_BIO 3
.Os
.Sh NAME
.Nm BIO_s_bio ,
.Nm BIO_make_bio_pair ,
.Nm BIO_destroy_bio_pair ,
.Nm BIO_shutdown_wr ,







|







49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt BIO_S_BIO 3
.Os
.Sh NAME
.Nm BIO_s_bio ,
.Nm BIO_make_bio_pair ,
.Nm BIO_destroy_bio_pair ,
.Nm BIO_shutdown_wr ,
356
357
358
359
360
361
362






















363
364
365
366
367
368
369
370
SSL operations can successfully be continued.
.Sh SEE ALSO
.Xr BIO_new 3 ,
.Xr BIO_read 3 ,
.Xr BIO_should_retry 3 ,
.Xr ssl 3 ,
.Xr SSL_set_bio 3






















.Sh CAVEATS
As the data is buffered, SSL operations may return with an
.Dv ERROR_SSL_WANT_READ
condition, but there is still data in the write buffer.
An application must not rely on the error value of the SSL operation
but must assure that the write buffer is always flushed first.
Otherwise a deadlock may occur as the peer might be waiting
for the data before being able to continue.







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>








356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
SSL operations can successfully be continued.
.Sh SEE ALSO
.Xr BIO_new 3 ,
.Xr BIO_read 3 ,
.Xr BIO_should_retry 3 ,
.Xr ssl 3 ,
.Xr SSL_set_bio 3
.Sh HISTORY
.Fn BIO_s_bio ,
.Fn BIO_make_bio_pair ,
.Fn BIO_destroy_bio_pair ,
.Fn BIO_set_write_buf_size ,
.Fn BIO_get_write_buf_size ,
.Fn BIO_new_bio_pair ,
.Fn BIO_get_write_guarantee ,
.Fn BIO_ctrl_get_write_guarantee ,
.Fn BIO_get_read_request ,
and
.Fn BIO_ctrl_reset_read_request
first appeared in OpenSSL 0.9.4 and have been available since
.Ox 2.6 .
.Pp
.Fn BIO_ctrl_reset_read_request
first appeared in OpenSSL 0.9.5 and has been available since
.Ox 2.7 .
.Pp
.Fn BIO_shutdown_wr
first appeared in OpenSSL 0.9.6 and has been available since
.Ox 2.9 .
.Sh CAVEATS
As the data is buffered, SSL operations may return with an
.Dv ERROR_SSL_WANT_READ
condition, but there is still data in the write buffer.
An application must not rely on the error value of the SSL operation
but must assure that the write buffer is always flushed first.
Otherwise a deadlock may occur as the peer might be waiting
for the data before being able to continue.
Changes to jni/libressl/man/BIO_s_connect.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: BIO_s_connect.3,v 1.6 2016/12/20 23:14:37 beck Exp $
.\"	OpenSSL 186bb907 Apr 13 11:05:13 2015 -0700
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: BIO_s_connect.3,v 1.8 2018/03/21 06:09:37 schwarze Exp $
.\"	OpenSSL 186bb907 Apr 13 11:05:13 2015 -0700
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 20 2016 $
.Dt BIO_S_CONNECT 3
.Os
.Sh NAME
.Nm BIO_s_connect ,
.Nm BIO_new_connect ,
.Nm BIO_set_conn_hostname ,
.Nm BIO_set_conn_port ,







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt BIO_S_CONNECT 3
.Os
.Sh NAME
.Nm BIO_s_connect ,
.Nm BIO_new_connect ,
.Nm BIO_set_conn_hostname ,
.Nm BIO_set_conn_port ,
365
366
367
368
369
370
371



















	BIO_write(out, tmpbuf, len);
}
BIO_free(cbio);
BIO_free(out);
.Ed
.Sh SEE ALSO
.Xr BIO_new 3


























>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
	BIO_write(out, tmpbuf, len);
}
BIO_free(cbio);
BIO_free(out);
.Ed
.Sh SEE ALSO
.Xr BIO_new 3
.Sh HISTORY
.Fn BIO_s_connect ,
.Fn BIO_new_connect ,
.Fn BIO_set_nbio ,
and
.Fn BIO_do_connect
appeared in SSLeay 0.8.1b or earlier.
.Fn BIO_set_conn_hostname ,
.Fn BIO_set_conn_port ,
.Fn BIO_set_conn_ip ,
.Fn BIO_set_conn_int_port ,
.Fn BIO_get_conn_hostname ,
.Fn BIO_get_conn_port ,
.Fn BIO_get_conn_ip ,
and
.Fn BIO_get_conn_int_port
first appeared in SSLeay 0.9.0.
All these functions have been available since
.Ox 2.4 .
Changes to jni/libressl/man/BIO_s_fd.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: BIO_s_fd.3,v 1.6 2016/12/06 14:45:08 schwarze Exp $
.\"	OpenSSL 9b86974e Aug 17 15:21:33 2015 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: BIO_s_fd.3,v 1.7 2018/03/20 19:33:16 schwarze Exp $
.\"	OpenSSL 9b86974e Aug 17 15:21:33 2015 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 6 2016 $
.Dt BIO_S_FD 3
.Os
.Sh NAME
.Nm BIO_s_fd ,
.Nm BIO_set_fd ,
.Nm BIO_get_fd ,
.Nm BIO_new_fd







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 20 2018 $
.Dt BIO_S_FD 3
.Os
.Sh NAME
.Nm BIO_s_fd ,
.Nm BIO_set_fd ,
.Nm BIO_get_fd ,
.Nm BIO_new_fd
190
191
192
193
194
195
196




BIO_free(out);
.Ed
.Sh SEE ALSO
.Xr BIO_new 3 ,
.Xr BIO_read 3 ,
.Xr BIO_s_socket 3 ,
.Xr BIO_seek 3











>
>
>
>
190
191
192
193
194
195
196
197
198
199
200
BIO_free(out);
.Ed
.Sh SEE ALSO
.Xr BIO_new 3 ,
.Xr BIO_read 3 ,
.Xr BIO_s_socket 3 ,
.Xr BIO_seek 3
.Sh HISTORY
These functions appeared in SSLeay 0.8.1b or earlier
and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/BIO_s_file.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: BIO_s_file.3,v 1.5 2016/12/06 14:45:08 schwarze Exp $
.\"	OpenSSL 9b86974e Aug 17 15:21:33 2015 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2010 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: BIO_s_file.3,v 1.8 2018/03/21 09:03:49 schwarze Exp $
.\"	OpenSSL 9b86974e Aug 17 15:21:33 2015 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2010 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 6 2016 $
.Dt BIO_S_FILE 3
.Os
.Sh NAME
.Nm BIO_s_file ,
.Nm BIO_new_file ,
.Nm BIO_new_fp ,
.Nm BIO_set_fp ,







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt BIO_S_FILE 3
.Os
.Sh NAME
.Nm BIO_s_file ,
.Nm BIO_new_file ,
.Nm BIO_new_fp ,
.Nm BIO_set_fp ,
281
282
283
284
285
286
287



















288
289
290
291
292
293
294
295
296
297
298
299
BIO_printf(out, "Hello World\en");
BIO_free(out);
.Ed
.Sh SEE ALSO
.Xr BIO_new 3 ,
.Xr BIO_read 3 ,
.Xr BIO_seek 3



















.Sh BUGS
.Xr BIO_reset 3
and
.Xr BIO_seek 3
are implemented using
.Xr fseek 3
on the underlying stream.
The return value for
.Xr fseek 3
is 0 for success or -1 if an error occurred.
This differs from other types of BIO which will typically return
1 for success and a non-positive value if an error occurred.







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>












281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
BIO_printf(out, "Hello World\en");
BIO_free(out);
.Ed
.Sh SEE ALSO
.Xr BIO_new 3 ,
.Xr BIO_read 3 ,
.Xr BIO_seek 3
.Sh HISTORY
.Fn BIO_s_file
and
.Fn BIO_set_fp
first appeared in SSLeay 0.6.0.
.Fn BIO_new_file ,
.Fn BIO_new_fp ,
.Fn BIO_get_fp ,
.Fn BIO_read_filename ,
.Fn BIO_write_filename ,
and
.Fn BIO_append_filename
appeared in SSLeay 0.8.1b or earlier.
All these functions have been available since
.Ox 2.4 .
.Pp
.Fn BIO_rw_filename
first appeared in SSLeay 0.9.1 and has been available since
.Ox 2.6 .
.Sh BUGS
.Xr BIO_reset 3
and
.Xr BIO_seek 3
are implemented using
.Xr fseek 3
on the underlying stream.
The return value for
.Xr fseek 3
is 0 for success or -1 if an error occurred.
This differs from other types of BIO which will typically return
1 for success and a non-positive value if an error occurred.
Changes to jni/libressl/man/BIO_s_mem.3.
1
2

3
4
5
6
7
8
9
.\"	$OpenBSD: BIO_s_mem.3,v 1.5 2016/12/06 14:45:08 schwarze Exp $
.\"	OpenSSL 8711efb4 Mon Apr 20 11:33:12 2009 +0000

.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
|
|
>







1
2
3
4
5
6
7
8
9
10
.\" $OpenBSD: BIO_s_mem.3,v 1.9 2018/03/22 16:06:33 schwarze Exp $
.\" full merge up to: OpenSSL 8711efb4 Mon Apr 20 11:33:12 2009 +0000
.\" selective merge up to: OpenSSL 61f805c1 Jan 16 01:01:46 2018 +0800
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 6 2016 $
.Dt BIO_S_MEM 3
.Os
.Sh NAME
.Nm BIO_s_mem ,
.Nm BIO_set_mem_eof_return ,
.Nm BIO_get_mem_data ,
.Nm BIO_set_mem_buf ,







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt BIO_S_MEM 3
.Os
.Sh NAME
.Nm BIO_s_mem ,
.Nm BIO_set_mem_eof_return ,
.Nm BIO_get_mem_data ,
.Nm BIO_set_mem_buf ,
202
203
204
205
206
207
208

















209
210
211
212
213
214
215
Every read from a read/write memory BIO will remove the data just read
with an internal copy operation.
If a BIO contains a lot of data and it is read in small chunks,
the operation can be very slow.
The use of a read only memory BIO avoids this problem.
If the BIO must be read/write then adding a buffering BIO
to the chain will speed up the process.

















.Sh EXAMPLES
Create a memory BIO and write some data to it:
.Bd -literal -offset indent
BIO *mem = BIO_new(BIO_s_mem());
BIO_puts(mem, "Hello World\en");
.Ed
.Pp







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
Every read from a read/write memory BIO will remove the data just read
with an internal copy operation.
If a BIO contains a lot of data and it is read in small chunks,
the operation can be very slow.
The use of a read only memory BIO avoids this problem.
If the BIO must be read/write then adding a buffering BIO
to the chain will speed up the process.
.Sh RETURN VALUES
.Fn BIO_s_mem
returns a pointer to a static object.
.Pp
.Fn BIO_set_mem_eof_return ,
.Fn BIO_get_mem_data ,
.Fn BIO_set_mem_buf ,
and
.Fn BIO_get_mem_ptr
return 1 on success or a value less than or equal to 0 if an error occurred.
.Pp
.Fn BIO_new_mem_buf
returns a newly allocated
.Vt BIO
object on success or
.Dv NULL
on error.
.Sh EXAMPLES
Create a memory BIO and write some data to it:
.Bd -literal -offset indent
BIO *mem = BIO_new(BIO_s_mem());
BIO_puts(mem, "Hello World\en");
.Ed
.Pp
228
229
230
231
232
233
234

















235
236
237
238
239
240
241
242
BIO_get_mem_ptr(mem, &bptr);
/* Make sure BIO_free() leaves BUF_MEM alone. */
BIO_set_close(mem, BIO_NOCLOSE);
BIO_free(mem);
.Ed
.Sh SEE ALSO
.Xr BIO_new 3

















.Sh BUGS
There should be an option to set the maximum size of a memory BIO.
.Pp
There should be a way to "rewind" a read/write BIO without destroying
its contents.
.Pp
The copying operation should not occur after every small read
of a large BIO to improve efficiency.







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>








246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
BIO_get_mem_ptr(mem, &bptr);
/* Make sure BIO_free() leaves BUF_MEM alone. */
BIO_set_close(mem, BIO_NOCLOSE);
BIO_free(mem);
.Ed
.Sh SEE ALSO
.Xr BIO_new 3
.Sh HISTORY
.Fn BIO_s_mem ,
.Fn BIO_set_mem_buf ,
and
.Fn BIO_get_mem_ptr
appeared in SSLeay 0.8.1b or earlier and have been available since
.Ox 2.4 .
.Pp
.Fn BIO_set_mem_eof_return
and
.Fn BIO_get_mem_data
first appeared in SSLeay 0.9.1 and have been available since
.Ox 2.6 .
.Pp
.Fn BIO_new_mem_buf
first appeared in OpenSSL 0.9.5 and has been available since
.Ox 2.7 .
.Sh BUGS
There should be an option to set the maximum size of a memory BIO.
.Pp
There should be a way to "rewind" a read/write BIO without destroying
its contents.
.Pp
The copying operation should not occur after every small read
of a large BIO to improve efficiency.
Changes to jni/libressl/man/BIO_s_null.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: BIO_s_null.3,v 1.5 2016/12/06 14:45:08 schwarze Exp $
.\"	OpenSSL e117a890 Sep 14 12:14:41 2000 +0000
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: BIO_s_null.3,v 1.6 2018/03/20 19:33:16 schwarze Exp $
.\"	OpenSSL e117a890 Sep 14 12:14:41 2000 +0000
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 6 2016 $
.Dt BIO_S_NULL 3
.Os
.Sh NAME
.Nm BIO_s_null
.Nd null data sink
.Sh SYNOPSIS
.In openssl/bio.h







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 20 2018 $
.Dt BIO_S_NULL 3
.Os
.Sh NAME
.Nm BIO_s_null
.Nd null data sink
.Sh SYNOPSIS
.In openssl/bio.h
78
79
80
81
82
83
84




Since a BIO chain must normally include a source/sink BIO,
this can be achieved by adding a null sink BIO to the end of the chain.
.Sh RETURN VALUES
.Fn BIO_s_null
returns the null sink BIO method.
.Sh SEE ALSO
.Xr BIO_new 3











>
>
>
>
78
79
80
81
82
83
84
85
86
87
88
Since a BIO chain must normally include a source/sink BIO,
this can be achieved by adding a null sink BIO to the end of the chain.
.Sh RETURN VALUES
.Fn BIO_s_null
returns the null sink BIO method.
.Sh SEE ALSO
.Xr BIO_new 3
.Sh HISTORY
.Fn BIO_s_null
appeared in SSLeay 0.8.1b or earlier and has been available since
.Ox 2.4 .
Changes to jni/libressl/man/BIO_s_socket.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: BIO_s_socket.3,v 1.6 2016/12/06 14:45:08 schwarze Exp $
.\"	OpenSSL bbdc9c98 Oct 19 22:02:21 2000 +0000
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: BIO_s_socket.3,v 1.7 2018/03/20 19:33:16 schwarze Exp $
.\"	OpenSSL bbdc9c98 Oct 19 22:02:21 2000 +0000
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 6 2016 $
.Dt BIO_S_SOCKET 3
.Os
.Sh NAME
.Nm BIO_s_socket ,
.Nm BIO_new_socket
.Nd socket BIO
.Sh SYNOPSIS







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 20 2018 $
.Dt BIO_S_SOCKET 3
.Os
.Sh NAME
.Nm BIO_s_socket ,
.Nm BIO_new_socket
.Nd socket BIO
.Sh SYNOPSIS
103
104
105
106
107
108
109






.Fn BIO_new_socket
returns the newly allocated BIO or
.Dv NULL
if an error occurred.
.Sh SEE ALSO
.Xr BIO_get_fd 3 ,
.Xr BIO_new 3













>
>
>
>
>
>
103
104
105
106
107
108
109
110
111
112
113
114
115
.Fn BIO_new_socket
returns the newly allocated BIO or
.Dv NULL
if an error occurred.
.Sh SEE ALSO
.Xr BIO_get_fd 3 ,
.Xr BIO_new 3
.Sh HISTORY
.Fn BIO_s_socket
and
.Fn BIO_new_socket
appeared in SSLeay 0.8.1b or earlier and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/BIO_set_callback.3.
1
2

3

















4
5
6
7
8
9
10
11
12
.\"	$OpenBSD: BIO_set_callback.3,v 1.5 2016/12/06 14:45:08 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400

.\"

















.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
|
|
>

>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" $OpenBSD: BIO_set_callback.3,v 1.7 2018/03/20 19:33:16 schwarze Exp $
.\" full merge up to: OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\" selective merge up to: OpenSSL 61f805c1 Jan 16 01:01:46 2018 +0800
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2018 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" The original file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2016, 2017 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 6 2016 $
.Dt BIO_SET_CALLBACK 3
.Os
.Sh NAME
.Nm BIO_set_callback ,
.Nm BIO_get_callback ,
.Nm BIO_set_callback_arg ,
.Nm BIO_get_callback_arg ,







|







62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 20 2018 $
.Dt BIO_SET_CALLBACK 3
.Os
.Sh NAME
.Nm BIO_set_callback ,
.Nm BIO_get_callback ,
.Nm BIO_set_callback_arg ,
.Nm BIO_get_callback_arg ,
137
138
139
140
141
142
143






144


145
146
147



148
149



150
151



152
153
154
155
156
157
158
159
160
161
162
163
164
.Fa argi
and
.Fa argl
depends on the value of
.Fa oper
(i.e. the operation being performed).
.Pp






.Fa ret


is the return value that would be returned to the application
if no callback were present.
The actual value returned is the return value of the callback itself.



In the case of callbacks called before the actual BIO operation,
1 is placed in



.Fa ret .
If the return value is not positive, it will be immediately returned to



the application and the BIO operation will not be performed.
.Pp
The callback should normally simply return
.Fa ret
when it has finished processing, unless it specifically wishes
to modify the value returned to the application.
.Ss Callback operations
.Bl -tag -width Ds
.It Fn BIO_free b
.Fn callback b BIO_CB_FREE NULL 0L 0L 1L
is called before the free operation.
.It Fn BIO_read b out outl
.Fn callback b BIO_CB_READ out outl 0L 1L







>
>
>
>
>
>

>
>
|
|
|
>
>
>
|
|
>
>
>
|
|
>
>
>
|



|
|







155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
.Fa argi
and
.Fa argl
depends on the value of
.Fa oper
(i.e. the operation being performed).
.Pp
When
.Fa oper
does not include
.Dv BIO_CB_RETURN ,
i.e. when the callback is invoked before an operation,
the value passed into the callback via
.Fa ret
is always 1.
In this case, if the callback returns a negative value, the library
aborts the requested operation and instead returns the negative
return value from the callback to the application.
If the callback returns a non-negative value, that return value is
ignored by the library, and the operation is performed normally.
.Pp
When
.Fa oper
includes
.Dv BIO_CB_RETURN ,
i.e. when the callback is invoked after an operation,
the value passed into the callback via
.Fa ret
is the return value that the operation would return to the application
if no callback were present.
When a callback is present, the operation only passes this value
to the callback and instead of it returns the return value of the
callback to the application.
.Pp
The callback should normally simply return
.Fa ret
when it has finished processing, unless it specifically wishes to
abort the operation or to modify the value returned to the application.
.Ss Callback operations
.Bl -tag -width Ds
.It Fn BIO_free b
.Fn callback b BIO_CB_FREE NULL 0L 0L 1L
is called before the free operation.
.It Fn BIO_read b out outl
.Fn callback b BIO_CB_READ out outl 0L 1L
182
183
184
185
186
187
188



























189
190
191
192
193
194
195
196




after.
.It Fn BIO_ctrl b oper larg parg
.Fn callback b BIO_CB_CTRL parg oper larg 1L
is called before the call and
.Fn callback b BIO_CB_CTRL|BIO_CB_RETURN parg oper larg ret
after.
.El



























.Sh EXAMPLES
The
.Fn BIO_debug_callback
function is a good example.
Its source is in the file
.Pa crypto/bio/bio_cb.c .
.Sh SEE ALSO
.Xr BIO_new 3











>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>








>
>
>
>
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
after.
.It Fn BIO_ctrl b oper larg parg
.Fn callback b BIO_CB_CTRL parg oper larg 1L
is called before the call and
.Fn callback b BIO_CB_CTRL|BIO_CB_RETURN parg oper larg ret
after.
.El
.Sh RETURN VALUES
.Fn BIO_get_callback
returns a pointer to the function
.Fa cb
previously installed with
.Fn BIO_set_callback ,
or
.Dv NULL
if no callback was installed.
.Pp
.Fn BIO_get_callback_arg
returns a pointer to the
.Fa arg
previously set with
.Fn BIO_set_callback_arg ,
or
.Dv NULL
if no such argument was set.
.Pp
.Fn BIO_debug_callback
returns
.Fa ret
if the bit
.Dv BIO_CB_RETURN
is set in
.Fa cmd ,
or 1 otherwise.
.Sh EXAMPLES
The
.Fn BIO_debug_callback
function is a good example.
Its source is in the file
.Pa crypto/bio/bio_cb.c .
.Sh SEE ALSO
.Xr BIO_new 3
.Sh HISTORY
These functions appeared in SSLeay 0.8.1b or earlier
and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/BIO_should_retry.3.
1
2

3
4
5
6
7
8
9
.\"	$OpenBSD: BIO_should_retry.3,v 1.5 2016/12/06 14:45:08 schwarze Exp $
.\"	OpenSSL 60e24554 Apr 6 14:45:18 2010 +0000

.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2010, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
|
|
>







1
2
3
4
5
6
7
8
9
10
.\" $OpenBSD: BIO_should_retry.3,v 1.7 2018/03/20 19:33:16 schwarze Exp $
.\" full merge up to: OpenSSL 60e24554 Apr 6 14:45:18 2010 +0000
.\" selective merge up to: OpenSSL 61f805c1 Jan 16 01:01:46 2018 +0800
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2010, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 6 2016 $
.Dt BIO_SHOULD_RETRY 3
.Os
.Sh NAME
.Nm BIO_should_retry ,
.Nm BIO_should_read ,
.Nm BIO_should_write ,
.Nm BIO_should_io_special ,
.Nm BIO_retry_type ,
.Nm BIO_should_retry ,
.Nm BIO_get_retry_BIO ,
.Nm BIO_get_retry_reason







|



<







45
46
47
48
49
50
51
52
53
54
55

56
57
58
59
60
61
62
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 20 2018 $
.Dt BIO_SHOULD_RETRY 3
.Os
.Sh NAME

.Nm BIO_should_read ,
.Nm BIO_should_write ,
.Nm BIO_should_io_special ,
.Nm BIO_retry_type ,
.Nm BIO_should_retry ,
.Nm BIO_get_retry_BIO ,
.Nm BIO_get_retry_reason
210
211
212
213
214
215
216




217
218
219
220
221
This is often not desirable: one solution is to use non-blocking I/O
and use a timeout on the
.Xr select 2
(or equivalent) call.
.Sh SEE ALSO
.Xr BIO_new 3 ,
.Xr BIO_read 3




.Sh BUGS
The OpenSSL ASN.1 functions cannot gracefully deal with non-blocking I/O:
they cannot retry after a partial read or write.
This is usually worked around by only passing the relevant data to ASN.1
functions when the entire structure can be read or written.







>
>
>
>





210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
This is often not desirable: one solution is to use non-blocking I/O
and use a timeout on the
.Xr select 2
(or equivalent) call.
.Sh SEE ALSO
.Xr BIO_new 3 ,
.Xr BIO_read 3
.Sh HISTORY
These functions appeared in SSLeay 0.8.1b or earlier
and have been available since
.Ox 2.4 .
.Sh BUGS
The OpenSSL ASN.1 functions cannot gracefully deal with non-blocking I/O:
they cannot retry after a partial read or write.
This is usually worked around by only passing the relevant data to ASN.1
functions when the entire structure can be read or written.
Changes to jni/libressl/man/BN_BLINDING_new.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: BN_BLINDING_new.3,v 1.6 2016/12/10 21:13:25 schwarze Exp $
.\"	OpenSSL a528d4f0 Oct 27 13:40:11 2015 -0400
.\"
.\" This file was written by Nils Larsch <nils@openssl.org>.
.\" Copyright (c) 2005, 2008, 2013, 2015 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: BN_BLINDING_new.3,v 1.10 2018/03/23 23:18:17 schwarze Exp $
.\"	OpenSSL a528d4f0 Oct 27 13:40:11 2015 -0400
.\"
.\" This file was written by Nils Larsch <nils@openssl.org>.
.\" Copyright (c) 2005, 2008, 2013, 2015 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 10 2016 $
.Dt BN_BLINDING_NEW 3
.Os
.Sh NAME
.Nm BN_BLINDING_new ,
.Nm BN_BLINDING_free ,
.Nm BN_BLINDING_update ,
.Nm BN_BLINDING_convert ,







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt BN_BLINDING_NEW 3
.Os
.Sh NAME
.Nm BN_BLINDING_new ,
.Nm BN_BLINDING_free ,
.Nm BN_BLINDING_update ,
.Nm BN_BLINDING_convert ,
300
301
302
303
304
305
306
307
308
309

310
311


312
313
314
315
316
317
318
319
320
321





322
323
.Vt BN_BLINDING
parameters or
.Dv NULL
on error.
.Sh SEE ALSO
.Xr BN_new 3
.Sh HISTORY
.Fn BN_BLINDING_thread_id
was first introduced in OpenSSL 1.0.0, and it deprecates
.Fn BN_BLINDING_set_thread_id

and
.Fn BN_BLINDING_get_thread_id .


.Pp
.Fn BN_BLINDING_convert_ex ,
.Fn BN_BLINDIND_invert_ex ,
.Fn BN_BLINDING_get_thread_id ,
.Fn BN_BLINDING_set_thread_id ,
.Fn BN_BLINDING_set_flags ,
.Fn BN_BLINDING_get_flags
and
.Fn BN_BLINDING_create_param
were first introduced in OpenSSL 0.9.8.





.Sh AUTHORS
.An Nils Larsch Aq Mt nils@openssl.org







|
|
|
>

|
>
>





|
|


|
>
>
>
>
>


300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
.Vt BN_BLINDING
parameters or
.Dv NULL
on error.
.Sh SEE ALSO
.Xr BN_new 3
.Sh HISTORY
.Fn BN_BLINDING_new ,
.Fn BN_BLINDING_free ,
.Fn BN_BLINDING_update ,
.Fn BN_BLINDING_convert ,
and
.Fn BN_BLINDING_invert
first appeared in SSLeay 0.9.0 and have been available since
.Ox 2.4 .
.Pp
.Fn BN_BLINDING_convert_ex ,
.Fn BN_BLINDIND_invert_ex ,
.Fn BN_BLINDING_get_thread_id ,
.Fn BN_BLINDING_set_thread_id ,
.Fn BN_BLINDING_get_flags ,
.Fn BN_BLINDING_set_flags ,
and
.Fn BN_BLINDING_create_param
first appeared in OpenSSL 0.9.8 and have been available since
.Ox 4.5 .
.Pp
.Fn BN_BLINDING_thread_id
first appeared in OpenSSL 1.0.0 and has been available since
.Ox 4.9 .
.Sh AUTHORS
.An Nils Larsch Aq Mt nils@openssl.org
Changes to jni/libressl/man/BN_CTX_new.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: BN_CTX_new.3,v 1.5 2016/12/10 21:13:25 schwarze Exp $
.\"	OpenSSL aafbe1cc Jun 12 23:42:08 2013 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2013 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: BN_CTX_new.3,v 1.7 2018/03/21 09:03:49 schwarze Exp $
.\"	OpenSSL aafbe1cc Jun 12 23:42:08 2013 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2013 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 10 2016 $
.Dt BN_CTX_NEW 3
.Os
.Sh NAME
.Nm BN_CTX_new ,
.Nm BN_CTX_free ,
.Nm BN_CTX_init
.Nd allocate and free BN_CTX structures







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt BN_CTX_NEW 3
.Os
.Sh NAME
.Nm BN_CTX_new ,
.Nm BN_CTX_free ,
.Nm BN_CTX_init
.Nd allocate and free BN_CTX structures
132
133
134
135
136
137
138
139


140
141

.Xr BN_CTX_start 3 ,
.Xr BN_new 3 ,
.Xr ERR_get_error 3
.Sh HISTORY
.Fn BN_CTX_new
and
.Fn BN_CTX_free
are available in all versions of SSLeay and OpenSSL.


.Fn BN_CTX_init
was added in SSLeay 0.9.1b.








|
>
>

|
>
132
133
134
135
136
137
138
139
140
141
142
143
144
.Xr BN_CTX_start 3 ,
.Xr BN_new 3 ,
.Xr ERR_get_error 3
.Sh HISTORY
.Fn BN_CTX_new
and
.Fn BN_CTX_free
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp
.Fn BN_CTX_init
first appeared in SSLeay 0.9.1 and has been available since
.Ox 2.6 .
Changes to jni/libressl/man/BN_CTX_start.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: BN_CTX_start.3,v 1.6 2016/12/10 21:13:25 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: BN_CTX_start.3,v 1.7 2018/03/22 16:06:33 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 10 2016 $
.Dt BN_CTX_START 3
.Os
.Sh NAME
.Nm BN_CTX_start ,
.Nm BN_CTX_get ,
.Nm BN_CTX_end
.Nd use temporary BIGNUM variables







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt BN_CTX_START 3
.Os
.Sh NAME
.Nm BN_CTX_start ,
.Nm BN_CTX_get ,
.Nm BN_CTX_end
.Nd use temporary BIGNUM variables
124
125
126
127
128
129
130
131

.Xr BN_CTX_new 3 ,
.Xr BN_new 3
.Sh HISTORY
.Fn BN_CTX_start ,
.Fn BN_CTX_get ,
and
.Fn BN_CTX_end
were added in OpenSSL 0.9.5.








|
>
124
125
126
127
128
129
130
131
132
.Xr BN_CTX_new 3 ,
.Xr BN_new 3
.Sh HISTORY
.Fn BN_CTX_start ,
.Fn BN_CTX_get ,
and
.Fn BN_CTX_end
first appeared in OpenSSL 0.9.5 and have been available since
.Ox 2.7 .
Changes to jni/libressl/man/BN_add.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: BN_add.3,v 1.7 2017/01/30 01:29:31 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>
.\" and Bodo Moeller <bodo@openssl.org>.
.\" Copyright (c) 2000, 2001, 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: BN_add.3,v 1.11 2018/03/22 21:08:22 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>
.\" and Bodo Moeller <bodo@openssl.org>.
.\" Copyright (c) 2000, 2001, 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: January 30 2017 $
.Dt BN_ADD 3
.Os
.Sh NAME
.Nm BN_add ,
.Nm BN_sub ,
.Nm BN_mul ,
.Nm BN_sqr ,







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt BN_ADD 3
.Os
.Sh NAME
.Nm BN_add ,
.Nm BN_sub ,
.Nm BN_mul ,
.Nm BN_sqr ,
385
386
387
388
389
390
391

392
393
394
395
396
397
398



399


400
401
402
403
404
405
406
407
408
409
410
411
412

.Xr BN_new 3 ,
.Xr BN_set_bit 3 ,
.Xr BN_set_flags 3 ,
.Xr BN_set_negative 3
.Sh HISTORY
.Fn BN_add ,
.Fn BN_sub ,

.Fn BN_sqr ,
.Fn BN_div ,
.Fn BN_mod ,
.Fn BN_mod_mul ,
.Fn BN_mod_exp ,
and
.Fn BN_gcd



are available in all versions of SSLeay and OpenSSL.


The
.Fa ctx
argument to
.Fn BN_mul
was added in SSLeay 0.9.1b.
.Fn BN_exp
appeared in SSLeay 0.9.0.
.Fn BN_nnmod ,
.Fn BN_mod_add ,
.Fn BN_mod_sub ,
and
.Fn BN_mod_sqr
were added in OpenSSL 0.9.7.








>







>
>
>
|
>
>




|
|
|





|
>
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
.Xr BN_new 3 ,
.Xr BN_set_bit 3 ,
.Xr BN_set_flags 3 ,
.Xr BN_set_negative 3
.Sh HISTORY
.Fn BN_add ,
.Fn BN_sub ,
.Fn BN_mul ,
.Fn BN_sqr ,
.Fn BN_div ,
.Fn BN_mod ,
.Fn BN_mod_mul ,
.Fn BN_mod_exp ,
and
.Fn BN_gcd
appeared before SSLeay 0.8.
.Fn BN_exp
first appeared in SSLeay 0.9.0.
All these functions have been available since
.Ox 2.4 .
.Pp
The
.Fa ctx
argument to
.Fn BN_mul
was added in SSLeay 0.9.1 and
.Ox 2.6 .
.Pp
.Fn BN_nnmod ,
.Fn BN_mod_add ,
.Fn BN_mod_sub ,
and
.Fn BN_mod_sqr
first appeared in OpenSSL 0.9.7 and have been available since
.Ox 3.2 .
Changes to jni/libressl/man/BN_add_word.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: BN_add_word.3,v 1.5 2016/12/10 21:13:25 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2005 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: BN_add_word.3,v 1.7 2018/03/21 06:26:31 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2005 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 10 2016 $
.Dt BN_ADD_WORD 3
.Os
.Sh NAME
.Nm BN_add_word ,
.Nm BN_sub_word ,
.Nm BN_mul_word ,
.Nm BN_div_word ,







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt BN_ADD_WORD 3
.Os
.Sh NAME
.Nm BN_add_word ,
.Nm BN_sub_word ,
.Nm BN_mul_word ,
.Nm BN_div_word ,
154
155
156
157
158
159
160
161
162
163
164
165
166
167


168
169
170
171
172
173
.Xr BN_add 3 ,
.Xr BN_new 3 ,
.Xr ERR_get_error 3
.Sh HISTORY
.Fn BN_add_word
and
.Fn BN_mod_word
are available in all versions of SSLeay and OpenSSL.
.Fn BN_div_word
was added in SSLeay 0.8, and
.Fn BN_sub_word
and
.Fn BN_mul_word
in SSLeay 0.9.0.


.Pp
Before 0.9.8a, the return value for
.Fn BN_div_word
and
.Fn BN_mod_word
in case of an error was 0.







|

|



|
>
>






154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
.Xr BN_add 3 ,
.Xr BN_new 3 ,
.Xr ERR_get_error 3
.Sh HISTORY
.Fn BN_add_word
and
.Fn BN_mod_word
appeared before SSLeay 0.8.
.Fn BN_div_word
first appeared in SSLeay 0.8.
.Fn BN_sub_word
and
.Fn BN_mul_word
first appeared in SSLeay 0.9.0.
All these functions have been available since
.Ox 2.4 .
.Pp
Before 0.9.8a, the return value for
.Fn BN_div_word
and
.Fn BN_mod_word
in case of an error was 0.
Changes to jni/libressl/man/BN_bn2bin.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: BN_bn2bin.3,v 1.6 2017/01/25 16:12:45 schwarze Exp $
.\"	OpenSSL a528d4f0 Oct 27 13:40:11 2015 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2002, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: BN_bn2bin.3,v 1.10 2018/03/23 23:18:17 schwarze Exp $
.\"	OpenSSL a528d4f0 Oct 27 13:40:11 2015 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2002, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: January 25 2017 $
.Dt BN_BN2BIN 3
.Os
.Sh NAME
.Nm BN_bn2bin ,
.Nm BN_bin2bn ,
.Nm BN_bn2hex ,
.Nm BN_bn2dec ,







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt BN_BN2BIN 3
.Os
.Sh NAME
.Nm BN_bn2bin ,
.Nm BN_bin2bn ,
.Nm BN_bn2hex ,
.Nm BN_bn2dec ,
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316






.Xr BN_new 3 ,
.Xr BN_num_bytes 3 ,
.Xr BN_zero 3 ,
.Xr ERR_get_error 3
.Sh HISTORY
.Fn BN_bn2bin ,
.Fn BN_bin2bn ,
.Fn BN_print_fp ,
and
.Fn BN_print
are available in all versions of SSLeay and OpenSSL.
.Pp
.Fn BN_bn2hex ,
.Fn BN_bn2dec ,
.Fn BN_hex2bn ,
.Fn BN_dec2bn ,
.Fn BN_bn2mpi ,
and
.Fn BN_mpi2bn
were added in SSLeay 0.9.0.













|

|
|
<







|
>
>
>
>
>
>
297
298
299
300
301
302
303
304
305
306
307

308
309
310
311
312
313
314
315
316
317
318
319
320
321
.Xr BN_new 3 ,
.Xr BN_num_bytes 3 ,
.Xr BN_zero 3 ,
.Xr ERR_get_error 3
.Sh HISTORY
.Fn BN_bn2bin ,
.Fn BN_bin2bn ,
.Fn BN_print ,
and
.Fn BN_print_fp
appeared before SSLeay 0.8.

.Fn BN_bn2hex ,
.Fn BN_bn2dec ,
.Fn BN_hex2bn ,
.Fn BN_dec2bn ,
.Fn BN_bn2mpi ,
and
.Fn BN_mpi2bn
first appeared in SSLeay 0.9.0.
All these functions have been available since
.Ox 2.4 .
.Pp
.Fn BN_asc2bin
first appeared in OpenSSL 1.0.0 and has been available since
.Ox 4.9 .
Changes to jni/libressl/man/BN_cmp.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: BN_cmp.3,v 1.4 2016/12/10 21:13:25 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: BN_cmp.3,v 1.5 2018/03/20 20:26:23 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 10 2016 $
.Dt BN_CMP 3
.Os
.Sh NAME
.Nm BN_cmp ,
.Nm BN_ucmp ,
.Nm BN_is_zero ,
.Nm BN_is_one ,







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 20 2018 $
.Dt BN_CMP 3
.Os
.Sh NAME
.Nm BN_cmp ,
.Nm BN_ucmp ,
.Nm BN_is_zero ,
.Nm BN_is_one ,
137
138
139
140
141
142
143
144
145
146
147
148
149


return 1 if the condition is true, 0 otherwise.
.Sh SEE ALSO
.Xr BN_new 3
.Sh HISTORY
.Fn BN_cmp ,
.Fn BN_ucmp ,
.Fn BN_is_zero ,
.Fn BN_is_one
and
.Fn BN_is_word
are available in all versions of SSLeay and OpenSSL.
.Fn BN_is_odd
was added in SSLeay 0.8.









|


|

|
>
>
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
return 1 if the condition is true, 0 otherwise.
.Sh SEE ALSO
.Xr BN_new 3
.Sh HISTORY
.Fn BN_cmp ,
.Fn BN_ucmp ,
.Fn BN_is_zero ,
.Fn BN_is_one ,
and
.Fn BN_is_word
appeared before SSLeay 0.8.
.Fn BN_is_odd
first appeared in SSLeay 0.8.
All these functions have been available since
.Ox 2.4 .
Changes to jni/libressl/man/BN_copy.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: BN_copy.3,v 1.6 2017/01/30 01:29:31 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>
.\" and Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2000, 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: BN_copy.3,v 1.8 2018/03/22 22:07:12 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>
.\" and Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2000, 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: January 30 2017 $
.Dt BN_COPY 3
.Os
.Sh NAME
.Nm BN_copy ,
.Nm BN_dup ,
.Nm BN_with_flags
.Nd copy BIGNUMs







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt BN_COPY 3
.Os
.Sh NAME
.Nm BN_copy ,
.Nm BN_dup ,
.Nm BN_with_flags
.Nd copy BIGNUMs
152
153
154
155
156
157
158




159

.Sh SEE ALSO
.Xr BN_new 3 ,
.Xr BN_set_flags 3
.Sh HISTORY
.Fn BN_copy
and
.Fn BN_dup




are available in all versions of SSLeay and OpenSSL.








>
>
>
>
|
>
152
153
154
155
156
157
158
159
160
161
162
163
164
.Sh SEE ALSO
.Xr BN_new 3 ,
.Xr BN_set_flags 3
.Sh HISTORY
.Fn BN_copy
and
.Fn BN_dup
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp
.Fn BN_with_flags
first appeared in OpenSSL 0.9.7h and has been available since
.Ox 4.0 .
Changes to jni/libressl/man/BN_generate_prime.3.
1
2
3
4
5
6
7
8
9
.\"	$OpenBSD: BN_generate_prime.3,v 1.6 2017/01/07 05:06:22 schwarze Exp $
.\"	OpenSSL 2afb29b4 Aug 14 16:47:13 2014 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>
.\" Bodo Moeller <bodo@openssl.org>, and Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2000, 2003, 2013, 2014 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|
|







1
2
3
4
5
6
7
8
9
.\" $OpenBSD: BN_generate_prime.3,v 1.13 2018/03/23 23:18:17 schwarze Exp $
.\" full merge up to: OpenSSL b3696a55 Sep 2 09:35:50 2017 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>
.\" Bodo Moeller <bodo@openssl.org>, and Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2000, 2003, 2013, 2014 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60


61
62

63
64
65
66
67
68
69
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: January 7 2017 $
.Dt BN_GENERATE_PRIME 3
.Os
.Sh NAME
.Nm BN_generate_prime_ex ,
.Nm BN_is_prime_ex ,
.Nm BN_is_prime_fasttest_ex ,
.Nm BN_GENCB_call ,


.Nm BN_GENCB_set_old ,
.Nm BN_GENCB_set ,

.Nm BN_generate_prime ,
.Nm BN_is_prime ,
.Nm BN_is_prime_fasttest
.Nd generate primes and test for primality
.Sh SYNOPSIS
.In openssl/bn.h
.Ft int







|







>
>


>







46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt BN_GENERATE_PRIME 3
.Os
.Sh NAME
.Nm BN_generate_prime_ex ,
.Nm BN_is_prime_ex ,
.Nm BN_is_prime_fasttest_ex ,
.Nm BN_GENCB_call ,
.Nm BN_GENCB_new ,
.Nm BN_GENCB_free ,
.Nm BN_GENCB_set_old ,
.Nm BN_GENCB_set ,
.Nm BN_GENCB_get_arg ,
.Nm BN_generate_prime ,
.Nm BN_is_prime ,
.Nm BN_is_prime_fasttest
.Nd generate primes and test for primality
.Sh SYNOPSIS
.In openssl/bn.h
.Ft int
92
93
94
95
96
97
98






99
100
101
102
103
104
105
106
107
108
109
110




111
112
113
114
115
116
117
.Fc
.Ft int
.Fo BN_GENCB_call
.Fa "BN_GENCB *cb"
.Fa "int a"
.Fa "int b"
.Fc






.Ft void
.Fo BN_GENCB_set_old
.Fa "BN_GENCB *gencb"
.Fa "void (*callback)(int, int, void *)"
.Fa "void *cb_arg"
.Fc
.Ft void
.Fo BN_GENCB_set
.Fa "BN_GENCB *gencb"
.Fa "int (*callback)(int, int, BN_GENCB *)"
.Fa "void *cb_arg"
.Fc




.Pp
Deprecated:
.Pp
.Ft BIGNUM *
.Fo BN_generate_prime
.Fa "BIGNUM *ret"
.Fa "int num"







>
>
>
>
>
>












>
>
>
>







95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
.Fc
.Ft int
.Fo BN_GENCB_call
.Fa "BN_GENCB *cb"
.Fa "int a"
.Fa "int b"
.Fc
.Ft BN_GENCB *
.Fn BN_GENCB_new void
.Ft void
.Fo BN_GENCB_free
.Fa "BN_GENCB *cb"
.Fc
.Ft void
.Fo BN_GENCB_set_old
.Fa "BN_GENCB *gencb"
.Fa "void (*callback)(int, int, void *)"
.Fa "void *cb_arg"
.Fc
.Ft void
.Fo BN_GENCB_set
.Fa "BN_GENCB *gencb"
.Fa "int (*callback)(int, int, BN_GENCB *)"
.Fa "void *cb_arg"
.Fc
.Ft void *
.Fo BN_GENCB_get_arg
.Fa "BN_GENCB *cb"
.Fc
.Pp
Deprecated:
.Pp
.Ft BIGNUM *
.Fo BN_generate_prime
.Fa "BIGNUM *ret"
.Fa "int num"
256
257
258
259
260
261
262







263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292









293
294
295
296
297
298
299
as arguments.
There are two types of
.Vt BN_GENCB
structures that are supported: "new" style and "old" style.
New programs should prefer the "new" style, whilst the "old" style is
provided for backwards compatibility purposes.
.Pp







For "new" style callbacks a
.Vt BN_GENCB
structure should be initialised with a call to the macro
.Fn BN_GENCB_set ,
where
.Fa gencb
is a
.Vt BN_GENCB * ,
.Fa callback
is of type
.Vt int (*callback)(int, int, BN_GENCB *)
and
.Fa cb_arg
is a
.Vt void * .
"Old" style callbacks are the same except they are initialised with a
call to the macro
.Fn BN_GENCB_set_old
and
.Fa callback
is of type
.Vt void (*callback)(int, int, void *) .
.Pp
A callback is invoked through a call to
.Fn BN_GENCB_call .
This will check the type of the callback and will invoke
.Fn callback a b gencb
for new style callbacks or
.Fn callback a b cb_arg
for old style.









.Pp
.Fn BN_generate_prime
(deprecated) works in the same way as
.Fn BN_generate_prime_ex
but expects an old style callback function directly in the
.Fa callback
parameter, and an argument to pass to it in the







>
>
>
>
>
>
>


|













|













>
>
>
>
>
>
>
>
>







269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
as arguments.
There are two types of
.Vt BN_GENCB
structures that are supported: "new" style and "old" style.
New programs should prefer the "new" style, whilst the "old" style is
provided for backwards compatibility purposes.
.Pp
A
.Vt BN_GENCB
structure should be created through a call to
.Fn BN_GENCB_new
and freed through a call to
.Fn BN_GENCB_free .
.Pp
For "new" style callbacks a
.Vt BN_GENCB
structure should be initialised with a call to
.Fn BN_GENCB_set ,
where
.Fa gencb
is a
.Vt BN_GENCB * ,
.Fa callback
is of type
.Vt int (*callback)(int, int, BN_GENCB *)
and
.Fa cb_arg
is a
.Vt void * .
"Old" style callbacks are the same except they are initialised with a
call to
.Fn BN_GENCB_set_old
and
.Fa callback
is of type
.Vt void (*callback)(int, int, void *) .
.Pp
A callback is invoked through a call to
.Fn BN_GENCB_call .
This will check the type of the callback and will invoke
.Fn callback a b gencb
for new style callbacks or
.Fn callback a b cb_arg
for old style.
.Pp
It is possible to obtain the argument associated with a
.Vt BN_GENCB
structure (set via a call to
.Fn BN_GENCB_set
or
.Fn BN_GENCB_set_old )
using
.Fn BN_GENCB_get_arg .
.Pp
.Fn BN_generate_prime
(deprecated) works in the same way as
.Fn BN_generate_prime_ex
but expects an old style callback function directly in the
.Fa callback
parameter, and an argument to pass to it in the
321
322
323
324
325
326
327












328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343


344



345
346
347
348
349


350
351


















.Pf 0.25^ Fa nchecks ,
and -1 on error.
.Pp
.Fn BN_generate_prime
returns the prime number on success,
.Dv NULL
otherwise.












.Pp
Callback functions should return 1 on success or 0 on error.
.Pp
The error codes can be obtained by
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr BN_new 3 ,
.Xr ERR_get_error 3 ,
.Xr RAND_bytes 3
.Sh HISTORY
The
.Fa cb_arg
arguments to
.Fn BN_generate_prime
and to
.Fn BN_is_prime


were added in SSLeay 0.9.0.



The
.Fa ret
argument to
.Fn BN_generate_prime
was added in SSLeay 0.9.1.


.Fn BN_is_prime_fasttest
was added in OpenSSL 0.9.5.

























>
>
>
>
>
>
>
>
>
>
>
>










<
<
<

|

>
>
|
>
>
>




|
>
>

|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378



379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
.Pf 0.25^ Fa nchecks ,
and -1 on error.
.Pp
.Fn BN_generate_prime
returns the prime number on success,
.Dv NULL
otherwise.
.Pp
.Fn BN_GENCB_new
returns a pointer to a
.Vt BN_GENCB
structure on success, or
.Dv NULL
otherwise.
.Pp
.Fn BN_GENCB_get_arg
returns the argument previously associated with a
.Vt BN_GENCB
structure.
.Pp
Callback functions should return 1 on success or 0 on error.
.Pp
The error codes can be obtained by
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr BN_new 3 ,
.Xr ERR_get_error 3 ,
.Xr RAND_bytes 3
.Sh HISTORY



.Fn BN_generate_prime
and
.Fn BN_is_prime
appeared before SSLeay 0.8 and had their
.Fa cb_arg
argument added in SSLeay 0.9.0.
These two functions have been available since
.Ox 2.4 .
.Pp
The
.Fa ret
argument to
.Fn BN_generate_prime
was added in SSLeay 0.9.1 and
.Ox 2.6 .
.Pp
.Fn BN_is_prime_fasttest
first appeared in OpenSSL 0.9.5 and has been available since
.Ox 2.7 .
.Pp
.Fn BN_generate_prime_ex ,
.Fn BN_is_prime_ex ,
.Fn BN_is_prime_fasttest_ex ,
.Fn BN_GENCB_call ,
.Fn BN_GENCB_set_old ,
and
.Fn BN_GENCB_set
first appeared in OpenSSL 0.9.8 and have been available since
.Ox 4.5 .
.Pp
.Fn BN_GENCB_new ,
.Fn BN_GENCB_free ,
and
.Fn BN_GENCB_get_arg
first appeared in OpenSSL 1.1.0 and have been available since
.Ox 6.3 .
Changes to jni/libressl/man/BN_get0_nist_prime_521.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: BN_get0_nist_prime_521.3,v 1.4 2016/12/11 10:00:30 jmc Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Rich Salz <rsalz@openssl.org>.
.\" Copyright (c) 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: BN_get0_nist_prime_521.3,v 1.5 2018/03/23 00:09:11 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Rich Salz <rsalz@openssl.org>.
.\" Copyright (c) 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 11 2016 $
.Dt BN_GET0_NIST_PRIME_521 3
.Os
.Sh NAME
.Nm BN_get0_nist_prime_192 ,
.Nm BN_get0_nist_prime_224 ,
.Nm BN_get0_nist_prime_256 ,
.Nm BN_get0_nist_prime_384 ,







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt BN_GET0_NIST_PRIME_521 3
.Os
.Sh NAME
.Nm BN_get0_nist_prime_192 ,
.Nm BN_get0_nist_prime_224 ,
.Nm BN_get0_nist_prime_256 ,
.Nm BN_get0_nist_prime_384 ,
79
80
81
82
83
84
85




and
.Fn BN_get0_nist_prime_521
functions return a
.Vt BIGNUM
for the specific NIST prime curve (e.g. P-256).
.Sh SEE ALSO
.Xr BN_new 3











>
>
>
>
79
80
81
82
83
84
85
86
87
88
89
and
.Fn BN_get0_nist_prime_521
functions return a
.Vt BIGNUM
for the specific NIST prime curve (e.g. P-256).
.Sh SEE ALSO
.Xr BN_new 3
.Sh HISTORY
These functions first appeared in OpenSSL 0.9.8
and have been available since
.Ox 4.5 .
Changes to jni/libressl/man/BN_mod_inverse.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: BN_mod_inverse.3,v 1.6 2017/01/30 01:29:31 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: BN_mod_inverse.3,v 1.8 2018/03/21 09:03:49 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: January 30 2017 $
.Dt BN_MOD_INVERSE 3
.Os
.Sh NAME
.Nm BN_mod_inverse
.Nd compute inverse modulo n
.Sh SYNOPSIS
.In openssl/bn.h







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt BN_MOD_INVERSE 3
.Os
.Sh NAME
.Nm BN_mod_inverse
.Nd compute inverse modulo n
.Sh SYNOPSIS
.In openssl/bn.h
102
103
104
105
106
107
108
109






.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr BN_add 3 ,
.Xr BN_new 3 ,
.Xr BN_set_flags 3
.Sh HISTORY
.Fn BN_mod_inverse
is available in all versions of SSLeay and OpenSSL.













|
>
>
>
>
>
>
102
103
104
105
106
107
108
109
110
111
112
113
114
115
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr BN_add 3 ,
.Xr BN_new 3 ,
.Xr BN_set_flags 3
.Sh HISTORY
.Fn BN_mod_inverse
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
.Pp
The
.Fa r
argument was added in SSLeay 0.9.1 and
.Ox 2.6 .
Changes to jni/libressl/man/BN_mod_mul_montgomery.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: BN_mod_mul_montgomery.3,v 1.7 2017/01/30 07:51:27 jmc Exp $
.\"	OpenSSL 6859cf74 Sep 25 13:33:28 2002 +0000
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: BN_mod_mul_montgomery.3,v 1.10 2018/03/23 23:18:17 schwarze Exp $
.\"	OpenSSL 6859cf74 Sep 25 13:33:28 2002 +0000
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: January 30 2017 $
.Dt BN_MOD_MUL_MONTGOMERY 3
.Os
.Sh NAME
.Nm BN_MONT_CTX_new ,
.Nm BN_MONT_CTX_init ,
.Nm BN_MONT_CTX_free ,
.Nm BN_MONT_CTX_set ,







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt BN_MOD_MUL_MONTGOMERY 3
.Os
.Sh NAME
.Nm BN_MONT_CTX_new ,
.Nm BN_MONT_CTX_init ,
.Nm BN_MONT_CTX_free ,
.Nm BN_MONT_CTX_set ,
218
219
220
221
222
223
224
225
226
227
228

229
230
231
232
233

234
235
236
237
238
239
240
.Xr BN_CTX_new 3 ,
.Xr BN_new 3
.Sh HISTORY
.Fn BN_MONT_CTX_new ,
.Fn BN_MONT_CTX_free ,
.Fn BN_MONT_CTX_set ,
.Fn BN_mod_mul_montgomery ,
.Fn BN_from_montgomery
and
.Fn BN_to_montgomery
are available in all versions of SSLeay and OpenSSL.

.Pp
.Fn BN_MONT_CTX_init
and
.Fn BN_MONT_CTX_copy
were added in SSLeay 0.9.1b.

.Sh CAVEATS
.Fn BN_MONT_CTX_init
must not be called on a context that was used previously, or
memory used by the embedded
.Vt BIGNUM
structures is leaked immediately.
Besides, it must not be called on a context created with







|


|
>




|
>







218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
.Xr BN_CTX_new 3 ,
.Xr BN_new 3
.Sh HISTORY
.Fn BN_MONT_CTX_new ,
.Fn BN_MONT_CTX_free ,
.Fn BN_MONT_CTX_set ,
.Fn BN_mod_mul_montgomery ,
.Fn BN_from_montgomery ,
and
.Fn BN_to_montgomery
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp
.Fn BN_MONT_CTX_init
and
.Fn BN_MONT_CTX_copy
first appeared in SSLeay 0.9.1 and have been available since
.Ox 2.6 .
.Sh CAVEATS
.Fn BN_MONT_CTX_init
must not be called on a context that was used previously, or
memory used by the embedded
.Vt BIGNUM
structures is leaked immediately.
Besides, it must not be called on a context created with
Changes to jni/libressl/man/BN_mod_mul_reciprocal.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: BN_mod_mul_reciprocal.3,v 1.7 2017/01/30 07:51:27 jmc Exp $
.\"	OpenSSL 6859cf74 Sep 25 13:33:28 2002 +0000
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: BN_mod_mul_reciprocal.3,v 1.9 2018/03/21 09:03:49 schwarze Exp $
.\"	OpenSSL 6859cf74 Sep 25 13:33:28 2002 +0000
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: January 30 2017 $
.Dt BN_MOD_MUL_RECIPROCAL 3
.Os
.Sh NAME
.Nm BN_mod_mul_reciprocal ,
.Nm BN_RECP_CTX_new ,
.Nm BN_RECP_CTX_init ,
.Nm BN_RECP_CTX_free ,







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt BN_MOD_MUL_RECIPROCAL 3
.Os
.Sh NAME
.Nm BN_mod_mul_reciprocal ,
.Nm BN_RECP_CTX_new ,
.Nm BN_RECP_CTX_init ,
.Nm BN_RECP_CTX_free ,
186
187
188
189
190
191
192




193
194
195
196
197
198
199









200
201
202
203
204
205
206
The error codes can be obtained by
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr BN_add 3 ,
.Xr BN_CTX_new 3 ,
.Xr BN_new 3
.Sh HISTORY




.Vt BN_RECP_CTX
was added in SSLeay 0.9.0.
Before that, a function
.Fn BN_reciprocal
was used instead, and the
.Fn BN_mod_mul_reciprocal
arguments were different.









.Sh CAVEATS
.Fn BN_RECP_CTX_init
must not be called on a context that was used previously, or
memory used by the embedded
.Vt BIGNUM
structures is leaked immediately.
Besides, it must not be called on a context created with







>
>
>
>







>
>
>
>
>
>
>
>
>







186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
The error codes can be obtained by
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr BN_add 3 ,
.Xr BN_CTX_new 3 ,
.Xr BN_new 3
.Sh HISTORY
.Fn BN_mod_mul_reciprocal
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
.Pp
.Vt BN_RECP_CTX
was added in SSLeay 0.9.0.
Before that, a function
.Fn BN_reciprocal
was used instead, and the
.Fn BN_mod_mul_reciprocal
arguments were different.
.Pp
.Fn BN_RECP_CTX_new ,
.Fn BN_RECP_CTX_init ,
.Fn BN_RECP_CTX_free ,
.Fn BN_RECP_CTX_set ,
and
.Fn BN_div_recp
first appeared in SSLeay 0.9.1 and have been available since
.Ox 2.6 .
.Sh CAVEATS
.Fn BN_RECP_CTX_init
must not be called on a context that was used previously, or
memory used by the embedded
.Vt BIGNUM
structures is leaked immediately.
Besides, it must not be called on a context created with
Changes to jni/libressl/man/BN_new.3.
1
2

3
4
5
6
7
8
9
10
.\"	$OpenBSD: BN_new.3,v 1.9 2017/01/30 07:51:27 jmc Exp $
.\"	OpenSSL doc/man3/BN_new.pod 2457c19d Mar 6 08:43:36 2004 +0000

.\"	OpenSSL doc/man7/bn.pod 05ea606a May 20 20:52:46 2016 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2004 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
|
|
>
|







1
2
3
4
5
6
7
8
9
10
11
.\" $OpenBSD: BN_new.3,v 1.12 2018/03/21 09:03:49 schwarze Exp $
.\" full merge up to: OpenSSL man3/BN_new 2457c19d Mar 6 08:43:36 2004 +0000
.\" selective merge up to: man3/BN_new 681acb31 Sep 29 13:10:34 2017 +0200
.\" full merge up to: OpenSSL man7/bn 05ea606a May 20 20:52:46 2016 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2004 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: January 30 2017 $
.Dt BN_NEW 3
.Os
.Sh NAME
.Nm BN_new ,
.Nm BN_init ,
.Nm BN_clear ,
.Nm BN_free ,







|







46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt BN_NEW 3
.Os
.Sh NAME
.Nm BN_new ,
.Nm BN_init ,
.Nm BN_clear ,
.Nm BN_free ,
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
It is used to hold a single large integer.
This type should be considered opaque and fields should not be modified
or accessed directly.
.Pp
.Fn BN_new
allocates and initializes a
.Vt BIGNUM
structure.
.Pp
.Fn BN_init
initializes an existing uninitialized
.Vt BIGNUM .
It is deprecated and dangerous: see
.Sx CAVEATS .
.Pp







|







98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
It is used to hold a single large integer.
This type should be considered opaque and fields should not be modified
or accessed directly.
.Pp
.Fn BN_new
allocates and initializes a
.Vt BIGNUM
structure, in particular setting the value to zero.
.Pp
.Fn BN_init
initializes an existing uninitialized
.Vt BIGNUM .
It is deprecated and dangerous: see
.Sx CAVEATS .
.Pp
161
162
163
164
165
166
167
168


169
170

171
172
173
174
175
176
177
.Xr BN_zero 3
.Sh HISTORY
.Fn BN_new ,
.Fn BN_clear ,
.Fn BN_free ,
and
.Fn BN_clear_free
are available in all versions of SSLeay and OpenSSL.


.Fn BN_init
was added in SSLeay 0.9.1b.

.Sh CAVEATS
.Fn BN_init
must not be called on a
.Vt BIGNUM
that was used and contains an actual number, or the memory
used for storing the number is leaked immediately.
Besides, it must not be called on a number allocated with







|
>
>

|
>







162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
.Xr BN_zero 3
.Sh HISTORY
.Fn BN_new ,
.Fn BN_clear ,
.Fn BN_free ,
and
.Fn BN_clear_free
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp
.Fn BN_init
first appeared in SSLeay 0.9.1 and has been available since
.Ox 2.6 .
.Sh CAVEATS
.Fn BN_init
must not be called on a
.Vt BIGNUM
that was used and contains an actual number, or the memory
used for storing the number is leaked immediately.
Besides, it must not be called on a number allocated with
Changes to jni/libressl/man/BN_num_bytes.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: BN_num_bytes.3,v 1.5 2016/12/10 21:13:25 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>
.\" and Richard Levitte <levitte@openssl.org>.
.\" Copyright (c) 2000, 2004 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: BN_num_bytes.3,v 1.6 2018/03/20 20:26:23 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>
.\" and Richard Levitte <levitte@openssl.org>.
.\" Copyright (c) 2000, 2004 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 10 2016 $
.Dt BN_NUM_BYTES 3
.Os
.Sh NAME
.Nm BN_num_bytes ,
.Nm BN_num_bits ,
.Nm BN_num_bits_word
.Nd get BIGNUM size







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 20 2018 $
.Dt BN_NUM_BYTES 3
.Os
.Sh NAME
.Nm BN_num_bytes ,
.Nm BN_num_bits ,
.Nm BN_num_bits_word
.Nd get BIGNUM size
116
117
118
119
120
121
122
123
124
125
126
127
The size.
.Sh SEE ALSO
.Xr BN_new 3 ,
.Xr DH_size 3 ,
.Xr DSA_size 3 ,
.Xr RSA_size 3
.Sh HISTORY
.Fn BN_num_bytes ,
.Fn BN_num_bits ,
and
.Fn BN_num_bits_word
are available in all versions of SSLeay and OpenSSL.







|
|
<
<
<
116
117
118
119
120
121
122
123
124



The size.
.Sh SEE ALSO
.Xr BN_new 3 ,
.Xr DH_size 3 ,
.Xr DSA_size 3 ,
.Xr RSA_size 3
.Sh HISTORY
These functions appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .



Changes to jni/libressl/man/BN_rand.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: BN_rand.3,v 1.6 2016/12/10 21:13:25 schwarze Exp $
.\"	OpenSSL 05ea606a May 20 20:52:46 2016 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2001, 2002, 2013, 2015 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: BN_rand.3,v 1.10 2018/03/22 17:38:08 schwarze Exp $
.\"	OpenSSL 05ea606a May 20 20:52:46 2016 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2001, 2002, 2013, 2015 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 10 2016 $
.Dt BN_RAND 3
.Os
.Sh NAME
.Nm BN_rand ,
.Nm BN_pseudo_rand ,
.Nm BN_rand_range ,
.Nm BN_pseudo_rand_range







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt BN_RAND 3
.Os
.Sh NAME
.Nm BN_rand ,
.Nm BN_pseudo_rand ,
.Nm BN_rand_range ,
.Nm BN_pseudo_rand_range
135
136
137
138
139
140
141
142


143
144


145
146
147
148
149


150
151

.Sh SEE ALSO
.Xr BN_new 3 ,
.Xr ERR_get_error 3 ,
.Xr RAND_add 3 ,
.Xr RAND_bytes 3
.Sh HISTORY
.Fn BN_rand
is available in all versions of SSLeay and OpenSSL.


.Fn BN_pseudo_rand
was added in OpenSSL 0.9.5.


The
.Fa top
== -1 case and the function
.Fn BN_rand_range
were added in OpenSSL 0.9.6a.


.Fn BN_pseudo_rand_range
was added in OpenSSL 0.9.6c.








|
>
>

|
>
>




|
>
>

|
>
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
.Sh SEE ALSO
.Xr BN_new 3 ,
.Xr ERR_get_error 3 ,
.Xr RAND_add 3 ,
.Xr RAND_bytes 3
.Sh HISTORY
.Fn BN_rand
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
.Pp
.Fn BN_pseudo_rand
first appeared in OpenSSL 0.9.5 and has been available since
.Ox 2.7 .
.Pp
The
.Fa top
== -1 case and the function
.Fn BN_rand_range
first appeared in OpenSSL 0.9.6a and have been available since
.Ox 3.0 .
.Pp
.Fn BN_pseudo_rand_range
first appeared in OpenSSL 0.9.6c and have been available since
.Ox 3.2 .
Changes to jni/libressl/man/BN_set_bit.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: BN_set_bit.3,v 1.5 2016/12/10 21:13:25 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: BN_set_bit.3,v 1.6 2018/03/20 20:26:23 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 10 2016 $
.Dt BN_SET_BIT 3
.Os
.Sh NAME
.Nm BN_set_bit ,
.Nm BN_clear_bit ,
.Nm BN_is_bit_set ,
.Nm BN_mask_bits ,







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 20 2018 $
.Dt BN_SET_BIT 3
.Os
.Sh NAME
.Nm BN_set_bit ,
.Nm BN_clear_bit ,
.Nm BN_is_bit_set ,
.Nm BN_mask_bits ,
208
209
210
211
212
213
214
215

.Fn BN_is_bit_set ,
.Fn BN_mask_bits ,
.Fn BN_lshift ,
.Fn BN_lshift1 ,
.Fn BN_rshift ,
and
.Fn BN_rshift1
are available in all versions of SSLeay and OpenSSL.








|
>
208
209
210
211
212
213
214
215
216
.Fn BN_is_bit_set ,
.Fn BN_mask_bits ,
.Fn BN_lshift ,
.Fn BN_lshift1 ,
.Fn BN_rshift ,
and
.Fn BN_rshift1
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/BN_set_flags.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: BN_set_flags.3,v 1.1 2017/01/30 01:29:31 schwarze Exp $
.\"
.\" Copyright (c) 2017 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: January 30 2017 $
.Dt BN_SET_FLAGS 3
.Os
.Sh NAME
.Nm BN_set_flags ,
.Nm BN_get_flags
.Nd enable and inspect flags on BIGNUM objects
.Sh SYNOPSIS
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: BN_set_flags.3,v 1.2 2018/03/21 09:03:49 schwarze Exp $
.\"
.\" Copyright (c) 2017 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt BN_SET_FLAGS 3
.Os
.Sh NAME
.Nm BN_set_flags ,
.Nm BN_get_flags
.Nd enable and inspect flags on BIGNUM objects
.Sh SYNOPSIS
134
135
136
137
138
139
140






141
142
143
144
.Fn BN_get_flags
returns zero or more of the above constants, OR'ed together.
.Sh SEE ALSO
.Xr BN_mod_exp 3 ,
.Xr BN_mod_inverse 3 ,
.Xr BN_new 3 ,
.Xr BN_with_flags 3






.Sh CAVEATS
No public interface exists to clear a flag once it is set.
So think twice before using
.Fn BN_set_flags .







>
>
>
>
>
>




134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
.Fn BN_get_flags
returns zero or more of the above constants, OR'ed together.
.Sh SEE ALSO
.Xr BN_mod_exp 3 ,
.Xr BN_mod_inverse 3 ,
.Xr BN_new 3 ,
.Xr BN_with_flags 3
.Sh HISTORY
.Fn BN_set_flags
and
.Fn BN_get_flags
first appeared in SSLeay 0.9.1 and have been available since
.Ox 2.6 .
.Sh CAVEATS
No public interface exists to clear a flag once it is set.
So think twice before using
.Fn BN_set_flags .
Changes to jni/libressl/man/BN_set_negative.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: BN_set_negative.3,v 1.3 2016/12/10 21:13:25 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 10 2016 $
.Dt BN_SET_NEGATIVE 3
.Os
.Sh NAME
.Nm BN_set_negative ,
.Nm BN_is_negative
.Nd change and inspect the sign of a BIGNUM
.Sh SYNOPSIS
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: BN_set_negative.3,v 1.4 2018/03/23 00:09:11 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt BN_SET_NEGATIVE 3
.Os
.Sh NAME
.Nm BN_set_negative ,
.Nm BN_is_negative
.Nd change and inspect the sign of a BIGNUM
.Sh SYNOPSIS
51
52
53
54
55
56
57






.Fa b
is negative or 0 otherwise.
.Sh SEE ALSO
.Xr BN_add 3 ,
.Xr BN_new 3 ,
.Xr BN_set_bit 3 ,
.Xr BN_zero 3













>
>
>
>
>
>
51
52
53
54
55
56
57
58
59
60
61
62
63
.Fa b
is negative or 0 otherwise.
.Sh SEE ALSO
.Xr BN_add 3 ,
.Xr BN_new 3 ,
.Xr BN_set_bit 3 ,
.Xr BN_zero 3
.Sh HISTORY
.Fn BN_set_negative
and
.Fn BN_is_negative
first appeared in OpenSSL 0.9.8 and have been available since
.Ox 4.5 .
Changes to jni/libressl/man/BN_swap.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: BN_swap.3,v 1.4 2016/12/10 21:13:25 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Bodo Moeller <bodo@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: BN_swap.3,v 1.5 2018/03/22 21:08:22 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Bodo Moeller <bodo@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 10 2016 $
.Dt BN_SWAP 3
.Os
.Sh NAME
.Nm BN_swap
.Nd exchange BIGNUMs
.Sh SYNOPSIS
.In openssl/bn.h







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt BN_SWAP 3
.Os
.Sh NAME
.Nm BN_swap
.Nd exchange BIGNUMs
.Sh SYNOPSIS
.In openssl/bn.h
66
67
68
69
70
71
72

73

exchanges the values of
.Fa a
and
.Fa b .
.Sh SEE ALSO
.Xr BN_new 3
.Sh HISTORY

BN_swap was added in OpenSSL 0.9.7.








>
|
>
66
67
68
69
70
71
72
73
74
75
exchanges the values of
.Fa a
and
.Fa b .
.Sh SEE ALSO
.Xr BN_new 3
.Sh HISTORY
.Fn BN_swap
first appeared in OpenSSL 0.9.7 and has been available since
.Ox 3.2 .
Changes to jni/libressl/man/BN_zero.3.
1
2

3
4
5

6
7
8
9
10
11
12
.\"	$OpenBSD: BN_zero.3,v 1.6 2016/12/10 21:13:25 schwarze Exp $
.\"	OpenSSL a528d4f0 Oct 27 13:40:11 2015 -0400

.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2001, 2002 The OpenSSL Project.  All rights reserved.

.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
|
|
>


|
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
.\" $OpenBSD: BN_zero.3,v 1.8 2018/03/20 20:26:23 schwarze Exp $
.\" full merge up to: OpenSSL a528d4f0 Oct 27 13:40:11 2015 -0400
.\" selective merge up to: OpenSSL b713c4ff Jan 22 14:41:09 2018 -0500
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2001, 2002, 2018 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 10 2016 $
.Dt BN_ZERO 3
.Os
.Sh NAME
.Nm BN_zero ,
.Nm BN_one ,
.Nm BN_value_one ,
.Nm BN_set_word ,







|







46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 20 2018 $
.Dt BN_ZERO 3
.Os
.Sh NAME
.Nm BN_zero ,
.Nm BN_one ,
.Nm BN_value_one ,
.Nm BN_set_word ,
71
72
73
74
75
76
77
78
79
80
81
82
83
84




85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140


141
142
143
144
145
146
147
148
149
150
151
152
153





.Ft const BIGNUM *
.Fo BN_value_one
.Fa void
.Fc
.Ft int
.Fo BN_set_word
.Fa "BIGNUM *a"
.Fa "unsigned long w"
.Fc
.Ft unsigned long
.Fo BN_get_word
.Fa "BIGNUM *a"
.Fc
.Sh DESCRIPTION




.Fn BN_zero ,
.Fn BN_one ,
and
.Fn BN_set_word
set
.Fa a
to the values 0, 1 and
.Fa w
respectively.
.Fn BN_zero
and
.Fn BN_one
are macros.
.Pp
.Fn BN_value_one
returns a
.Vt BIGNUM
constant of value 1.
This constant is useful for use in comparisons and assignment.
.Pp
.Fn BN_get_word
returns
.Fa a
if it can be represented as an
.Vt unsigned long .
.Sh RETURN VALUES
.Fn BN_get_word
returns the value
.Fa a ,
or 0xffffffffL if
.Fa a
cannot be represented as an
.Vt unsigned long .
.Pp
.Fn BN_zero ,
.Fn BN_one ,
and
.Fn BN_set_word
return 1 on success, 0 otherwise.
.Fn BN_value_one
returns the constant.
.Sh SEE ALSO
.Xr BN_bn2bin 3 ,
.Xr BN_new 3 ,
.Xr BN_set_bit 3 ,
.Xr BN_set_negative 3
.Sh HISTORY
.Fn BN_zero ,
.Fn BN_one ,
and
.Fn BN_set_word
are available in all versions of SSLeay and OpenSSL.
.Fn BN_value_one
and
.Fn BN_get_word
were added in SSLeay 0.8.


.Pp
.Fn BN_value_one
was changed to return a true
.Vt const BIGNUM *
in OpenSSL 0.9.7.
.Sh BUGS
Someone might change the constant.
.Pp
If a
.Vt BIGNUM
is equal to 0xffffffffL; it can be represented as an
.Vt unsigned long
but this value is also returned on error.












|

|




>
>
>
>


















|
<
<
<
<
<
<




|

|
|


















|



|
>
>








|

|
|
|
>
>
>
>
>
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109






110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
.Ft const BIGNUM *
.Fo BN_value_one
.Fa void
.Fc
.Ft int
.Fo BN_set_word
.Fa "BIGNUM *a"
.Fa "BN_ULONG w"
.Fc
.Ft BN_ULONG
.Fo BN_get_word
.Fa "BIGNUM *a"
.Fc
.Sh DESCRIPTION
.Vt BN_ULONG
is a macro that expands to an unsigned integral type optimized
for the most efficient implementation on the local platform.
.Pp
.Fn BN_zero ,
.Fn BN_one ,
and
.Fn BN_set_word
set
.Fa a
to the values 0, 1 and
.Fa w
respectively.
.Fn BN_zero
and
.Fn BN_one
are macros.
.Pp
.Fn BN_value_one
returns a
.Vt BIGNUM
constant of value 1.
This constant is useful for comparisons and assignments.






.Sh RETURN VALUES
.Fn BN_get_word
returns the value
.Fa a ,
or a number with all bits set if
.Fa a
cannot be represented as a
.Vt BN_ULONG .
.Pp
.Fn BN_zero ,
.Fn BN_one ,
and
.Fn BN_set_word
return 1 on success, 0 otherwise.
.Fn BN_value_one
returns the constant.
.Sh SEE ALSO
.Xr BN_bn2bin 3 ,
.Xr BN_new 3 ,
.Xr BN_set_bit 3 ,
.Xr BN_set_negative 3
.Sh HISTORY
.Fn BN_zero ,
.Fn BN_one ,
and
.Fn BN_set_word
appeared before SSLeay 0.8.
.Fn BN_value_one
and
.Fn BN_get_word
first appeared in SSLeay 0.8.
All these functions have been available since
.Ox 2.4 .
.Pp
.Fn BN_value_one
was changed to return a true
.Vt const BIGNUM *
in OpenSSL 0.9.7.
.Sh BUGS
Someone might change the constant.
.Pp
If the value of a
.Vt BIGNUM
is equal to a
.Vt BN_ULONG
with all bits set, the return value of
.Fn BN_get_word
collides with return value used to indicate errors.
.Pp
.Vt BN_ULONG
should probably be a typedef rather than a macro.
Changes to jni/libressl/man/BUF_MEM_new.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: BUF_MEM_new.3,v 1.11 2017/05/08 04:16:05 jsing Exp $
.\"	OpenSSL doc/crypto/buffer.pod 18edda0f Sep 20 03:28:54 2000 +0000
.\"	not merged: 74924dcb, 58e3457a, 21b0fa91, 7644a9ae
.\"	OpenSSL doc/crypto/BUF_MEM_new.pod 53934822 Jun 9 16:39:19 2016 -0400
.\"	not merged: c952780c, 91da5e77
.\"	OpenSSL doc/man3/BUF_MEM_new.pod 498180de Dec 12 15:35:09 2016 +0300
.\"
.\" This file was written by Ralf S. Engelschall <rse@openssl.org>.
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: BUF_MEM_new.3,v 1.14 2018/03/23 04:34:23 schwarze Exp $
.\"	OpenSSL doc/crypto/buffer.pod 18edda0f Sep 20 03:28:54 2000 +0000
.\"	not merged: 74924dcb, 58e3457a, 21b0fa91, 7644a9ae
.\"	OpenSSL doc/crypto/BUF_MEM_new.pod 53934822 Jun 9 16:39:19 2016 -0400
.\"	not merged: c952780c, 91da5e77
.\"	OpenSSL doc/man3/BUF_MEM_new.pod 498180de Dec 12 15:35:09 2016 +0300
.\"
.\" This file was written by Ralf S. Engelschall <rse@openssl.org>.
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: May 8 2017 $
.Dt BUF_MEM_NEW 3
.Os
.Sh NAME
.Nm BUF_MEM_new ,
.Nm BUF_MEM_free ,
.Nm BUF_MEM_grow ,
.Nm BUF_MEM_grow_clean ,







|







48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt BUF_MEM_NEW 3
.Os
.Sh NAME
.Nm BUF_MEM_new ,
.Nm BUF_MEM_free ,
.Nm BUF_MEM_grow ,
.Nm BUF_MEM_grow_clean ,
183
184
185
186
187
188
189
190
191
192
193
194
195










.Fn BUF_MEM_grow_clean
return zero on error or the new size (i.e.\&
.Fa len ) .
.Sh SEE ALSO
.Xr BIO_new 3
.Sh HISTORY
.Fn BUF_MEM_new ,
.Fn BUF_MEM_free
and
.Fn BUF_MEM_grow
are available in all versions of SSLeay and OpenSSL.
.Fn BUF_strdup
was added in SSLeay 0.8.

















|


|

|
>
>
>
>
>
>
>
>
>
>
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
.Fn BUF_MEM_grow_clean
return zero on error or the new size (i.e.\&
.Fa len ) .
.Sh SEE ALSO
.Xr BIO_new 3
.Sh HISTORY
.Fn BUF_MEM_new ,
.Fn BUF_MEM_free ,
and
.Fn BUF_MEM_grow
appeared before SSLeay 0.8.
.Fn BUF_strdup
first appeared in SSLeay 0.8.
All these functions  have been available since
.Ox 2.4 .
.Pp
.Fn BUF_MEM_grow_clean
first appeared in OpenSSL 0.9.7 and has been available since
.Ox 3.2 .
.Pp
.Fn BUF_reverse
first appeared in OpenSSL 1.0.0 and has been available since
.Ox 4.9 .
Changes to jni/libressl/man/CONF_modules_free.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: CONF_modules_free.3,v 1.4 2016/11/20 19:45:17 schwarze Exp $
.\"	OpenSSL a528d4f0 Oct 27 13:40:11 2015 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2004, 2006 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: CONF_modules_free.3,v 1.5 2018/03/22 21:08:22 schwarze Exp $
.\"	OpenSSL a528d4f0 Oct 27 13:40:11 2015 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2004, 2006 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 20 2016 $
.Dt CONF_MODULES_FREE 3
.Os
.Sh NAME
.Nm CONF_modules_free ,
.Nm CONF_modules_finish ,
.Nm CONF_modules_unload
.Nd OpenSSL configuration cleanup functions







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt CONF_MODULES_FREE 3
.Os
.Sh NAME
.Nm CONF_modules_free ,
.Nm CONF_modules_finish ,
.Nm CONF_modules_unload
.Nd OpenSSL configuration cleanup functions
92
93
94
95
96
97
98
99
100
101
102

.Fa all
is 1, all modules, including builtin modules, will be unloaded.
.Sh SEE ALSO
.Xr CONF_modules_load_file 3 ,
.Xr OPENSSL_config 3
.Sh HISTORY
.Fn CONF_modules_free ,
.Fn CONF_modules_unload ,
and
.Fn CONF_modules_finish
first appeared in OpenSSL 0.9.7.








|

|
|
>
92
93
94
95
96
97
98
99
100
101
102
103
.Fa all
is 1, all modules, including builtin modules, will be unloaded.
.Sh SEE ALSO
.Xr CONF_modules_load_file 3 ,
.Xr OPENSSL_config 3
.Sh HISTORY
.Fn CONF_modules_free ,
.Fn CONF_modules_finish ,
and
.Fn CONF_modules_unload
first appeared in OpenSSL 0.9.7 and have been available since
.Ox 3.2 .
Changes to jni/libressl/man/CONF_modules_load_file.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: CONF_modules_load_file.3,v 1.5 2016/12/11 18:06:09 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: CONF_modules_load_file.3,v 1.7 2018/03/22 21:08:22 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 11 2016 $
.Dt CONF_MODULES_LOAD_FILE 3
.Os
.Sh NAME
.Nm CONF_modules_load_file ,
.Nm CONF_modules_load
.Nd OpenSSL configuration functions
.Sh SYNOPSIS







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt CONF_MODULES_LOAD_FILE 3
.Os
.Sh NAME
.Nm CONF_modules_load_file ,
.Nm CONF_modules_load
.Nd OpenSSL configuration functions
.Sh SYNOPSIS
215
216
217
218
219
220
221
222

223
224
225
226
227

	fclose(fp);
	NCONF_free(cnf);
}
.Ed
.Sh SEE ALSO
.Xr CONF_modules_free 3 ,
.Xr ERR 3 ,
.Xr OPENSSL_config 3

.Sh HISTORY
.Fn CONF_modules_load_file
and
.Fn CONF_modules_load
first appeared in OpenSSL 0.9.7.








|
>




|
>
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
	fclose(fp);
	NCONF_free(cnf);
}
.Ed
.Sh SEE ALSO
.Xr CONF_modules_free 3 ,
.Xr ERR 3 ,
.Xr OPENSSL_config 3 ,
.Xr OPENSSL_init_crypto 3
.Sh HISTORY
.Fn CONF_modules_load_file
and
.Fn CONF_modules_load
first appeared in OpenSSL 0.9.7 and have been available since
.Ox 3.2 .
Changes to jni/libressl/man/CRYPTO_get_mem_functions.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: CRYPTO_get_mem_functions.3,v 1.3 2017/08/20 19:45:19 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: August 20 2017 $
.Dt CRYPTO_GET_MEM_FUNCTIONS 3
.Os
.Sh NAME
.Nm CRYPTO_get_mem_functions ,
.Nm CRYPTO_set_mem_functions ,
.Nm CRYPTO_mem_ctrl ,
.Nm CRYPTO_mem_leaks ,
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: CRYPTO_get_mem_functions.3,v 1.4 2018/03/20 21:27:32 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 20 2018 $
.Dt CRYPTO_GET_MEM_FUNCTIONS 3
.Os
.Sh NAME
.Nm CRYPTO_get_mem_functions ,
.Nm CRYPTO_set_mem_functions ,
.Nm CRYPTO_mem_ctrl ,
.Nm CRYPTO_mem_leaks ,
86
87
88
89
90
91
92




.Sh RETURN VALUES
.Fn CRYPTO_set_mem_functions
always returns 0.
.Pp
.Fn CRYPTO_mem_ctrl
always returns
.Dv CRYPTO_MEM_CHECK_OFF .











>
>
>
>
86
87
88
89
90
91
92
93
94
95
96
.Sh RETURN VALUES
.Fn CRYPTO_set_mem_functions
always returns 0.
.Pp
.Fn CRYPTO_mem_ctrl
always returns
.Dv CRYPTO_MEM_CHECK_OFF .
.Sh HISTORY
These functions appeared in SSLeay 0.8.1b or earlier
and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/CRYPTO_set_ex_data.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: CRYPTO_set_ex_data.3,v 1.7 2017/01/06 20:35:23 schwarze Exp $
.\"	OpenSSL CRYPTO_get_ex_new_index.pod 35cb565a Nov 19 15:49:30 2015 -0500
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2006 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: CRYPTO_set_ex_data.3,v 1.9 2018/03/22 16:06:33 schwarze Exp $
.\"	OpenSSL CRYPTO_get_ex_new_index.pod 35cb565a Nov 19 15:49:30 2015 -0500
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2006 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: January 6 2017 $
.Dt CRYPTO_SET_EX_DATA 3
.Os
.Sh NAME
.Nm CRYPTO_EX_new ,
.Nm CRYPTO_EX_free ,
.Nm CRYPTO_EX_dup ,
.Nm CRYPTO_get_ex_new_index ,







|







94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt CRYPTO_SET_EX_DATA 3
.Os
.Sh NAME
.Nm CRYPTO_EX_new ,
.Nm CRYPTO_EX_free ,
.Nm CRYPTO_EX_dup ,
.Nm CRYPTO_get_ex_new_index ,
387
388
389
390
391
392
393

394


395







396
397

.Sh SEE ALSO
.Xr BIO_get_ex_new_index 3 ,
.Xr DH_get_ex_new_index 3 ,
.Xr DSA_get_ex_new_index 3 ,
.Xr RSA_get_ex_new_index 3 ,
.Xr X509_STORE_CTX_get_ex_new_index 3
.Sh HISTORY

.Fn CRYPTO_set_ex_data


and







.Fn CRYPTO_get_ex_data
have been available since SSLeay 0.9.0.








>
|
>
>

>
>
>
>
>
>
>
|
|
>
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
.Sh SEE ALSO
.Xr BIO_get_ex_new_index 3 ,
.Xr DH_get_ex_new_index 3 ,
.Xr DSA_get_ex_new_index 3 ,
.Xr RSA_get_ex_new_index 3 ,
.Xr X509_STORE_CTX_get_ex_new_index 3
.Sh HISTORY
.Fn CRYPTO_get_ex_new_index ,
.Fn CRYPTO_set_ex_data ,
.Fn CRYPTO_get_ex_data ,
.Fn CRYPTO_free_ex_data ,
and
.Fn CRYPTO_new_ex_data
first appeared in SSLeay 0.9.0 and have been available since
.Ox 2.4 .
.Pp
.Fn CRYPTO_EX_new ,
.Fn CRYPTO_EX_free ,
and
.Fn CRYPTO_EX_dup
first appeared in OpenSSL 0.9.5 and have been available since
.Ox 2.7 .
Changes to jni/libressl/man/CRYPTO_set_locking_callback.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: CRYPTO_set_locking_callback.3,v 1.5 2016/11/23 16:28:23 schwarze Exp $
.\"	OpenSSL doc/crypto/threads.pod fb552ac6 Sep 30 23:43:01 2009 +0000
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>,
.\" Richard Levitte <levitte@openssl.org>, Bodo Moeller <bodo@openssl.org>,
.\" and Geoff Thorpe <geoff@openssl.org>.
.\" Copyright (c) 2000, 2001, 2005, 2006, 2008, 2009 The OpenSSL Project.
.\" All rights reserved.
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: CRYPTO_set_locking_callback.3,v 1.9 2018/03/23 04:34:23 schwarze Exp $
.\"	OpenSSL doc/crypto/threads.pod fb552ac6 Sep 30 23:43:01 2009 +0000
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>,
.\" Richard Levitte <levitte@openssl.org>, Bodo Moeller <bodo@openssl.org>,
.\" and Geoff Thorpe <geoff@openssl.org>.
.\" Copyright (c) 2000, 2001, 2005, 2006, 2008, 2009 The OpenSSL Project.
.\" All rights reserved.
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 23 2016 $
.Dt CRYPTO_SET_LOCKING_CALLBACK 3
.Os
.Sh NAME
.Nm CRYPTO_THREADID_set_numeric ,
.Nm CRYPTO_THREADID_set_pointer ,
.Nm CRYPTO_THREADID_set_callback ,
.Nm CRYPTO_THREADID_get_callback ,







|







47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt CRYPTO_SET_LOCKING_CALLBACK 3
.Os
.Sh NAME
.Nm CRYPTO_THREADID_set_numeric ,
.Nm CRYPTO_THREADID_set_pointer ,
.Nm CRYPTO_THREADID_set_callback ,
.Nm CRYPTO_THREADID_get_callback ,
360
361
362
363
364
365
366
367







368


369
370








371






372
373
374
375
376
377
378
379
380


The other functions return no values.
.Sh EXAMPLES
.Pa crypto/threads/mttest.c
shows examples of the callback functions on Solaris, Irix and Win32.
.Sh SEE ALSO
.Xr crypto 3
.Sh HISTORY
.Fn CRYPTO_set_locking_callback







is available in all versions of SSLeay and OpenSSL.


.Fn CRYPTO_num_locks
was added in OpenSSL 0.9.4.








All functions dealing with dynamic locks were added in OpenSSL 0.9.5b-dev.






.Vt CRYPTO_THREADID
and associated functions were introduced in OpenSSL 1.0.0 to replace
(actually, deprecate) the previous
.Fn CRYPTO_set_id_callback ,
.Fn CRYPTO_get_id_callback ,
and
.Fn CRYPTO_thread_id
functions which assumed thread IDs to always be represented by
.Vt unsigned long .









|
>
>
>
>
>
>
>
|
>
>

|
>
>
>
>
>
>
>
>
|
>
>
>
>
>
>
|
<
<
|
|

|
<
<
>
>
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395


396
397
398
399


400
401
The other functions return no values.
.Sh EXAMPLES
.Pa crypto/threads/mttest.c
shows examples of the callback functions on Solaris, Irix and Win32.
.Sh SEE ALSO
.Xr crypto 3
.Sh HISTORY
.Fn CRYPTO_set_locking_callback ,
.Fn CRYPTO_lock ,
.Fn CRYPTO_w_lock ,
.Fn CRYPTO_w_unlock ,
.Fn CRYPTO_r_lock ,
.Fn CRYPTO_r_unlock ,
and
.Fn CRYPTO_add
appeared in SSLeay 0.8.1b or earlier and have been available since
.Ox 2.4 .
.Pp
.Fn CRYPTO_num_locks
first appeared in OpenSSL 0.9.4 and have been available since
.Ox 2.6 .
.Pp
.Fn CRYPTO_set_dynlock_create_callback ,
.Fn CRYPTO_set_dynlock_lock_callback ,
.Fn CRYPTO_set_dynlock_destroy_callback ,
.Fn CRYPTO_get_new_dynlockid ,
and
.Fn CRYPTO_destroy_dynlockid
first appeared in OpenSSL 0.9.6 and have been available since
.Ox 2.9 .
.Pp
.Fn CRYPTO_THREADID_set_numeric ,
.Fn CRYPTO_THREADID_set_pointer ,
.Fn CRYPTO_THREADID_set_callback ,
.Fn CRYPTO_THREADID_get_callback ,
.Fn CRYPTO_THREADID_current ,


.Fn CRYPTO_THREADID_cmp ,
.Fn CRYPTO_THREADID_cpy ,
and
.Fn CRYPTO_THREADID_hash


first appeared in OpenSSL 1.0.0 and have been available since
.Ox 4.9 .
Changes to jni/libressl/man/DES_set_key.3.
1

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
.\"	$OpenBSD: DES_set_key.3,v 1.7 2017/02/09 03:43:05 dtucker Exp $

.\"	OpenSSL c7497f34 Aug 14 10:50:26 2014 -0400
.\"
.\" --------------------------------------------------------------------------
.\" Major patches to this file were contributed by
.\" Ulf Moeller <ulf@openssl.org>, Ben Laurie <ben@openssl.org>,
.\" and Richard Levitte <levitte@openssl.org>.
.\" --------------------------------------------------------------------------
.\" Copyright (c) 2000, 2001 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
|
>
|






|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
.\" $OpenBSD: DES_set_key.3,v 1.11 2018/03/22 21:08:22 schwarze Exp $
.\" full merge up to:
.\" OpenSSL man3/DES_random_key 61f805c1 Jan 16 01:01:46 2018 +0800
.\"
.\" --------------------------------------------------------------------------
.\" Major patches to this file were contributed by
.\" Ulf Moeller <ulf@openssl.org>, Ben Laurie <ben@openssl.org>,
.\" and Richard Levitte <levitte@openssl.org>.
.\" --------------------------------------------------------------------------
.\" Copyright (c) 2000, 2001, 2017 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
.\" SUCH DAMAGE.
.\"
.\" The licence and distribution terms for any publically available version or
.\" derivative of this code cannot be changed.  i.e. this code cannot simply be
.\" copied and put under another distribution licence
.\" [including the GNU Public Licence.]
.\"
.Dd $Mdocdate: February 9 2017 $
.Dt DES_SET_KEY 3
.Os
.Sh NAME
.Nm DES_random_key ,
.Nm DES_set_key ,
.Nm DES_key_sched ,
.Nm DES_set_key_checked ,







|







111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
.\" SUCH DAMAGE.
.\"
.\" The licence and distribution terms for any publically available version or
.\" derivative of this code cannot be changed.  i.e. this code cannot simply be
.\" copied and put under another distribution licence
.\" [including the GNU Public Licence.]
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt DES_SET_KEY 3
.Os
.Sh NAME
.Nm DES_random_key ,
.Nm DES_set_key ,
.Nm DES_key_sched ,
.Nm DES_set_key_checked ,
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
use a function that does not depend on a global variable.
.Pp
.Fn DES_set_odd_parity
sets the parity of the passed
.Fa key
to odd.
.Pp
.Fn DES_is_weak_key
returns 1 if the passed key is a weak key or 0 if it is ok.
.Pp
The following routines mostly operate on an input and output stream of
.Vt DES_cblock Ns s .
.Pp
.Fn DES_ecb_encrypt
is the basic DES encryption routine that encrypts or decrypts a single
8-byte
.Vt DES_cblock







<
<
<







453
454
455
456
457
458
459



460
461
462
463
464
465
466
use a function that does not depend on a global variable.
.Pp
.Fn DES_set_odd_parity
sets the parity of the passed
.Fa key
to odd.
.Pp



The following routines mostly operate on an input and output stream of
.Vt DES_cblock Ns s .
.Pp
.Fn DES_ecb_encrypt
is the basic DES encryption routine that encrypts or decrypts a single
8-byte
.Vt DES_cblock
662
663
664
665
666
667
668
669

670
671
672
673



674
675
676
677
678
679
680
681
.Pp
The following are DES-based transformations:
.Pp
.Fn DES_fcrypt
is a fast version of the Unix
.Xr crypt 3
function.
This version takes only a small amount of space relative to other

fast crypt implementations.
This is different to the normal crypt in that the third parameter is the
buffer that the return value is written into.
It needs to be at least 14 bytes long.



This function is thread safe, unlike the normal crypt.
.Pp
.Fn DES_crypt
is a faster replacement for the normal system
.Xr crypt 3 .
This function calls
.Fn DES_fcrypt
with a static array passed as the third parameter.







|
>
|
|
|

>
>
>
|







660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
.Pp
The following are DES-based transformations:
.Pp
.Fn DES_fcrypt
is a fast version of the Unix
.Xr crypt 3
function.
The
.Fa salt
must be two ASCII characters.
This version is different from the normal crypt in that the third
parameter is the buffer that the return value is written into.
It needs to be at least 14 bytes long.
The fourteenth byte is set to NUL.
This version takes only a small amount of space relative to other
fast crypt implementations.
It is thread safe, unlike the normal crypt.
.Pp
.Fn DES_crypt
is a faster replacement for the normal system
.Xr crypt 3 .
This function calls
.Fn DES_fcrypt
with a static array passed as the third parameter.
742
743
744
745
746
747
748

























749
750
751
752
753
754
755
756
757
758
759
760
761
762
763


































764

765
766
767


768

769
770
771
772
773
774


775
776
777
778
779
780
781
782
783
784
785
786
787
788
.Fn DES_enc_read .
If set to
.Dv DES_PCBC_MODE
(the default), DES_pcbc_encrypt is used.
If set to
.Dv DES_CBC_MODE
DES_cbc_encrypt is used.

























.Sh SEE ALSO
.Xr crypt 3 ,
.Xr RAND_bytes 3
.Pp
The
.Xr evp 3
library provides higher-level encryption functions.
.Sh STANDARDS
ANSI X3.106
.Pp
The DES library was initially written to be source code compatible
with the MIT Kerberos library.
.Sh HISTORY
In OpenSSL 0.9.7, all des_ functions were renamed to DES_ to avoid
clashes with older versions of libdes.


































.Pp

.Fn DES_set_key_checked
and
.Fn DES_set_key_unchecked


were added in OpenSSL 0.9.5.

.Pp
.Fn des_generate_random_block ,
.Fn des_init_random_number_generator ,
.Fn des_new_random_key ,
.Fn des_set_random_generator_seed ,
.Fn des_set_sequence_number ,


and
.Fn des_rand_data 3
are used in newer versions of Kerberos but are not implemented here.
.Pp
.Fn DES_random_key
generated cryptographically weak random data in SSLeay and in OpenSSL
prior version 0.9.5, as well as in the original MIT library.
.Sh AUTHORS
.An Eric Young Aq Mt eay@cryptsoft.com
.Sh CAVEATS
Single-key DES is insecure due to its short key size.
ECB mode is not suitable for most applications.
.Sh BUGS
DES_cbc_encrypt does not modify







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>













<
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

>



>
>
|
>

<
<
<
<
<
>
>
|
|
|
<
|
<
|







744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788

789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833





834
835
836
837
838

839

840
841
842
843
844
845
846
847
.Fn DES_enc_read .
If set to
.Dv DES_PCBC_MODE
(the default), DES_pcbc_encrypt is used.
If set to
.Dv DES_CBC_MODE
DES_cbc_encrypt is used.
.Sh RETURN VALUES
.Fn DES_set_key ,
.Fn DES_key_sched ,
and
.Fn DES_set_key_checked
return 0 on success or a negative value on error.
.Pp
.Fn DES_is_weak_key
returns 1 if the passed key is a weak key or 0 if it is ok.
.Pp
.Fn DES_cbc_cksum
and
.Fn DES_quad_cksum
return a 4-byte integer representing the last 4 bytes of the checksum
of the input.
.Pp
.Fn DES_fcrypt
returns a pointer to the caller-provided buffer
.Fa ret ,
and
.Fn DES_crypt
returns a pointer to a static buffer.
Both are allowed to return
.Dv NULL
to indicate failure, but currently, they cannot fail.
.Sh SEE ALSO
.Xr crypt 3 ,
.Xr RAND_bytes 3
.Pp
The
.Xr evp 3
library provides higher-level encryption functions.
.Sh STANDARDS
ANSI X3.106
.Pp
The DES library was initially written to be source code compatible
with the MIT Kerberos library.
.Sh HISTORY

Versions of
.Fn DES_random_key ,
.Fn DES_set_key ,
.Fn DES_key_sched ,
.Fn DES_set_odd_parity ,
.Fn DES_is_weak_key ,
.Fn DES_ecb_encrypt ,
.Fn DES_ecb2_encrypt ,
.Fn DES_ecb3_encrypt ,
.Fn DES_ncbc_encrypt ,
.Fn DES_cfb_encrypt ,
.Fn DES_ofb_encrypt ,
.Fn DES_pcbc_encrypt ,
.Fn DES_cfb64_encrypt ,
.Fn DES_ofb64_encrypt ,
.Fn DES_xcbc_encrypt ,
.Fn DES_ede2_cbc_encrypt ,
.Fn DES_ede2_cfb64_encrypt ,
.Fn DES_ede2_ofb64_encrypt ,
.Fn DES_ede3_cbc_encrypt ,
.Fn DES_ede3_cfb64_encrypt ,
.Fn DES_ede3_ofb64_encrypt ,
.Fn DES_cbc_cksum ,
.Fn DES_quad_cksum ,
.Fn DES_string_to_key ,
.Fn DES_string_to_2keys ,
.Fn DES_fcrypt ,
.Fn DES_crypt ,
.Fn DES_enc_read ,
and
.Fn DES_enc_write
with lower case names starting with
.Sy des_
appeared in SSLeay 0.8.1b or earlier and have been available since
.Ox 2.4 .
.Pp
Versions of
.Fn DES_set_key_checked
and
.Fn DES_set_key_unchecked
with lower case names starting with
.Sy des_
first appeared in OpenSSL 0.9.5 and have been available since
.Ox 2.7 .
.Pp





In OpenSSL 0.9.7 and
.Ox 3.2 ,
all
.Sy des_
functions were renamed to

.Sy DES_

to avoid clashes with older versions of libdes.
.Sh AUTHORS
.An Eric Young Aq Mt eay@cryptsoft.com
.Sh CAVEATS
Single-key DES is insecure due to its short key size.
ECB mode is not suitable for most applications.
.Sh BUGS
DES_cbc_encrypt does not modify
Changes to jni/libressl/man/DH_generate_key.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: DH_generate_key.3,v 1.6 2016/12/10 22:22:59 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: DH_generate_key.3,v 1.8 2018/03/20 22:22:10 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 10 2016 $
.Dt DH_GENERATE_KEY 3
.Os
.Sh NAME
.Nm DH_generate_key ,
.Nm DH_compute_key
.Nd perform Diffie-Hellman key exchange
.Sh SYNOPSIS







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 20 2018 $
.Dt DH_GENERATE_KEY 3
.Os
.Sh NAME
.Nm DH_generate_key ,
.Nm DH_compute_key
.Nd perform Diffie-Hellman key exchange
.Sh SYNOPSIS
106
107
108
109
110
111
112

113
114
115
116
117
118
119
120
121

.Pp
.Fn DH_compute_key
returns the size of the shared secret on success, or -1 on error.
.Pp
The error codes can be obtained by
.Xr ERR_get_error 3 .
.Sh SEE ALSO

.Xr DH_new 3 ,
.Xr DH_size 3 ,
.Xr ERR_get_error 3 ,
.Xr RAND_bytes 3
.Sh HISTORY
.Fn DH_generate_key
and
.Fn DH_compute_key
are available in all versions of SSLeay and OpenSSL.








>








|
>
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
.Pp
.Fn DH_compute_key
returns the size of the shared secret on success, or -1 on error.
.Pp
The error codes can be obtained by
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr DH_get0_key 3 ,
.Xr DH_new 3 ,
.Xr DH_size 3 ,
.Xr ERR_get_error 3 ,
.Xr RAND_bytes 3
.Sh HISTORY
.Fn DH_generate_key
and
.Fn DH_compute_key
appeared in SSLeay 0.8.1b or earlier and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/DH_generate_parameters.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: DH_generate_parameters.3,v 1.7 2017/06/10 13:10:52 schwarze Exp $
.\"	OpenSSL 05ea606a May 20 20:52:46 2016 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: DH_generate_parameters.3,v 1.10 2018/03/23 23:18:17 schwarze Exp $
.\"	OpenSSL 05ea606a May 20 20:52:46 2016 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: June 10 2017 $
.Dt DH_GENERATE_PARAMETERS 3
.Os
.Sh NAME
.Nm DH_generate_parameters_ex ,
.Nm DH_check ,
.Nm DH_generate_parameters
.Nd generate and check Diffie-Hellman parameters







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt DH_GENERATE_PARAMETERS 3
.Os
.Sh NAME
.Nm DH_generate_parameters_ex ,
.Nm DH_check ,
.Nm DH_generate_parameters
.Nd generate and check Diffie-Hellman parameters
142
143
144
145
146
147
148

149
150
151
152
153


154


155
156
157
158
159
160
161
162
163
164




165
166
167
168
169
170
171
structure, or
.Dv NULL
if the parameter generation fails.
.Pp
The error codes can be obtained by
.Xr ERR_get_error 3 .
.Sh SEE ALSO

.Xr DH_new 3 ,
.Xr ERR_get_error 3 ,
.Xr RAND_bytes 3
.Sh HISTORY
.Fn DH_check


is available in all versions of SSLeay and OpenSSL.


The
.Fa cb_arg
argument to
.Fn DH_generate_parameters
was added in SSLeay 0.9.0.
.Pp
In versions before OpenSSL 0.9.5,
.Dv DH_CHECK_P_NOT_STRONG_PRIME
is used instead of
.Dv DH_CHECK_P_NOT_SAFE_PRIME .




.Sh CAVEATS
.Fn DH_generate_parameters_ex
and
.Fn DH_generate_parameters
may run for several hours before finding a suitable prime.
.Pp
The parameters generated by







>





>
>
|
>
>










>
>
>
>







142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
structure, or
.Dv NULL
if the parameter generation fails.
.Pp
The error codes can be obtained by
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr DH_get0_pqg 3 ,
.Xr DH_new 3 ,
.Xr ERR_get_error 3 ,
.Xr RAND_bytes 3
.Sh HISTORY
.Fn DH_check
and
.Fn DH_generate_parameters
appeared in SSLeay 0.8.1b or earlier and have been available since
.Ox 2.4 .
.Pp
The
.Fa cb_arg
argument to
.Fn DH_generate_parameters
was added in SSLeay 0.9.0.
.Pp
In versions before OpenSSL 0.9.5,
.Dv DH_CHECK_P_NOT_STRONG_PRIME
is used instead of
.Dv DH_CHECK_P_NOT_SAFE_PRIME .
.Pp
.Fn DH_generate_parameters_ex
first appeared in OpenSSL 0.9.8 and has been available since
.Ox 4.5 .
.Sh CAVEATS
.Fn DH_generate_parameters_ex
and
.Fn DH_generate_parameters
may run for several hours before finding a suitable prime.
.Pp
The parameters generated by
Added jni/libressl/man/DH_get0_pqg.3.




































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
.\" $OpenBSD: DH_get0_pqg.3,v 1.4 2018/03/23 23:18:17 schwarze Exp $
.\" selective merge up to: OpenSSL 7966101e Sep 18 11:58:24 2017 -0400
.\"
.\" This file was written by Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\"
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in
.\"    the documentation and/or other materials provided with the
.\"    distribution.
.\"
.\" 3. All advertising materials mentioning features or use of this
.\"    software must display the following acknowledgment:
.\"    "This product includes software developed by the OpenSSL Project
.\"    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
.\"
.\" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
.\"    endorse or promote products derived from this software without
.\"    prior written permission. For written permission, please contact
.\"    openssl-core@openssl.org.
.\"
.\" 5. Products derived from this software may not be called "OpenSSL"
.\"    nor may "OpenSSL" appear in their names without prior written
.\"    permission of the OpenSSL Project.
.\"
.\" 6. Redistributions of any form whatsoever must retain the following
.\"    acknowledgment:
.\"    "This product includes software developed by the OpenSSL Project
.\"    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
.\" EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
.\" ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt DH_GET0_PQG 3
.Os
.Sh NAME
.Nm DH_get0_pqg ,
.Nm DH_set0_pqg ,
.Nm DH_get0_key ,
.Nm DH_set0_key ,
.Nm DH_clear_flags ,
.Nm DH_test_flags ,
.Nm DH_set_flags ,
.Nm DH_get0_engine ,
.Nm DH_set_length
.Nd get data from and set data in a DH object
.Sh SYNOPSIS
.In openssl/dh.h
.Ft void
.Fo DH_get0_pqg
.Fa "const DH *dh"
.Fa "const BIGNUM **p"
.Fa "const BIGNUM **q"
.Fa "const BIGNUM **g"
.Fc
.Ft int
.Fo DH_set0_pqg
.Fa "DH *dh"
.Fa "BIGNUM *p"
.Fa "BIGNUM *q"
.Fa "BIGNUM *g"
.Fc
.Ft void
.Fo DH_get0_key
.Fa "const DH *dh"
.Fa "const BIGNUM **pub_key"
.Fa "const BIGNUM **priv_key"
.Fc
.Ft int
.Fo DH_set0_key
.Fa "DH *dh"
.Fa "BIGNUM *pub_key"
.Fa "BIGNUM *priv_key"
.Fc
.Ft void
.Fo DH_clear_flags
.Fa "DH *dh"
.Fa "int flags"
.Fc
.Ft int
.Fo DH_test_flags
.Fa "const DH *dh"
.Fa "int flags"
.Fc
.Ft void
.Fo DH_set_flags
.Fa "DH *dh"
.Fa "int flags"
.Fc
.Ft ENGINE *
.Fo DH_get0_engine
.Fa "DH *d"
.Fc
.Ft int
.Fo DH_set_length
.Fa "DH *dh"
.Fa "long length"
.Fc
.Sh DESCRIPTION
A
.Vt DH
object contains the parameters
.Fa p ,
.Fa g ,
and optionally
.Fa q .
It also contains a public key
.Fa pub_key
and an optional private key
.Fa priv_key .
.Pp
The
.Fa p ,
.Fa q ,
and
.Fa g
parameters can be obtained by calling
.Fn DH_get0_pqg .
If the parameters have not yet been set, then
.Pf * Fa p ,
.Pf * Fa q ,
and
.Pf * Fa g
are set to
.Dv NULL .
Otherwise, they are set to pointers to the internal representations
of the values that should not be freed by the application.
.Pp
The
.Fa p ,
.Fa q ,
and
.Fa g
values can be set by calling
.Fn DH_set0_pqg .
Calling this function transfers the memory management of the values to
.Fa dh ,
and therefore they should not be freed by the caller.
The
.Fa q
argument may be
.Dv NULL .
.Pp
The
.Fn DH_get0_key
function stores pointers to the internal representations
of the public key in
.Pf * Fa pub_key
and to the private key in
.Pf * Fa priv_key .
Either may be
.Dv NULL
if it has not yet been set.
If the private key has been set, then the public key must be.
.Pp
The public and private key values can be set using
.Fn DH_set0_key .
Either parameter may be
.Dv NULL ,
which means the corresponding
.Vt DH
field is left untouched.
This function transfers the memory management of the key values to
.Fa dh ,
and therefore they should not be freed by the caller.
.Pp
Values retrieved with
.Fn DH_get0_pqg
and
.Fn DH_get0_key
are owned by the
.Vt DH
object and may therefore not be passed to
.Fn DH_set0_pqg
or
.Fn DH_set0_key .
If needed, duplicate the received values using
.Xr BN_dup 3
and pass the duplicates.
.Pp
.Fn DH_clear_flags
clears the specified
.Fa flags
in
.Fa dh .
.Fn DH_test_flags
tests the
.Fa flags
in
.Fa dh .
.Fn DH_set_flags
sets the
.Fa flags
in
.Fa dh ;
any flags already set remain set.
For all three functions, multiple flags can be passed in one call,
OR'ed together bitwise.
.Pp
.Fn DH_set_length
sets the optional length attribute of
.Fa dh ,
indicating the length of the secret exponent (private key) in bits.
If the length attribute is non-zero, it is used, otherwise it is ignored.
.Sh RETURN VALUES
.Fn DH_set0_pqg ,
.Fn DH_set0_key ,
and
.Fn DH_set_length
return 1 on success or 0 on failure.
.Pp
.Fn DH_test_flags
return those of the given
.Fa flags
currently set in
.Fa dh
or 0 if none of the given
.Fa flags
are set.
.Pp
.Fn DH_get0_engine
returns a pointer to the
.Vt ENGINE
used by the
.Vt DH
object
.Fa dh ,
or
.Dv NULL
if no engine was set for this object.
.Sh SEE ALSO
.Xr DH_generate_key 3 ,
.Xr DH_generate_parameters 3 ,
.Xr DH_new 3 ,
.Xr DH_size 3 ,
.Xr DHparams_print 3
.Sh HISTORY
These functions first appeared in OpenSSL 1.1.0
and have been available since
.Ox 6.3 .
Changes to jni/libressl/man/DH_get_ex_new_index.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: DH_get_ex_new_index.3,v 1.4 2016/12/10 22:22:59 schwarze Exp $
.\"	OpenSSL a528d4f0 Oct 27 13:40:11 2015 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: DH_get_ex_new_index.3,v 1.5 2018/03/23 23:18:17 schwarze Exp $
.\"	OpenSSL a528d4f0 Oct 27 13:40:11 2015 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 10 2016 $
.Dt DH_GET_EX_NEW_INDEX 3
.Os
.Sh NAME
.Nm DH_get_ex_new_index ,
.Nm DH_set_ex_data ,
.Nm DH_get_ex_data
.Nd add application specific data to DH structures







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt DH_GET_EX_NEW_INDEX 3
.Os
.Sh NAME
.Nm DH_get_ex_new_index ,
.Nm DH_set_ex_data ,
.Nm DH_get_ex_data
.Nd add application specific data to DH structures
90
91
92
93
94
95
96
97


.Xr DH_new 3 ,
.Xr RSA_get_ex_new_index 3
.Sh HISTORY
.Fn DH_get_ex_new_index ,
.Fn DH_set_ex_data ,
and
.Fn DH_get_ex_data
are available since OpenSSL 0.9.5.









|
>
>
90
91
92
93
94
95
96
97
98
99
.Xr DH_new 3 ,
.Xr RSA_get_ex_new_index 3
.Sh HISTORY
.Fn DH_get_ex_new_index ,
.Fn DH_set_ex_data ,
and
.Fn DH_get_ex_data
first appeared in OpenSSL 0.9.5
and have been available since
.Ox 2.7 .
Changes to jni/libressl/man/DH_new.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: DH_new.3,v 1.4 2016/12/10 22:30:54 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: DH_new.3,v 1.6 2018/03/20 22:22:10 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 10 2016 $
.Dt DH_NEW 3
.Os
.Sh NAME
.Nm DH_new ,
.Nm DH_free
.Nd allocate and free DH objects
.Sh SYNOPSIS







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 20 2018 $
.Dt DH_NEW 3
.Os
.Sh NAME
.Nm DH_new ,
.Nm DH_free
.Nd allocate and free DH objects
.Sh SYNOPSIS
90
91
92
93
94
95
96

97
98
99
100
101
102

103
104
105
106
107

.Xr ERR_get_error 3 .
Otherwise it returns a pointer to the newly allocated structure.
.Sh SEE ALSO
.Xr BN_new 3 ,
.Xr d2i_DHparams 3 ,
.Xr DH_generate_key 3 ,
.Xr DH_generate_parameters 3 ,

.Xr DH_get_ex_new_index 3 ,
.Xr DH_set_method 3 ,
.Xr DH_size 3 ,
.Xr DHparams_print 3 ,
.Xr DSA_dup_DH 3 ,
.Xr ERR_get_error 3

.Sh HISTORY
.Fn DH_new
and
.Fn DH_free
are available in all versions of SSLeay and OpenSSL.








>





|
>




|
>
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
.Xr ERR_get_error 3 .
Otherwise it returns a pointer to the newly allocated structure.
.Sh SEE ALSO
.Xr BN_new 3 ,
.Xr d2i_DHparams 3 ,
.Xr DH_generate_key 3 ,
.Xr DH_generate_parameters 3 ,
.Xr DH_get0_pqg 3 ,
.Xr DH_get_ex_new_index 3 ,
.Xr DH_set_method 3 ,
.Xr DH_size 3 ,
.Xr DHparams_print 3 ,
.Xr DSA_dup_DH 3 ,
.Xr ERR_get_error 3 ,
.Xr EVP_PKEY_set1_DH 3
.Sh HISTORY
.Fn DH_new
and
.Fn DH_free
appeared in SSLeay 0.8.1b or earlier and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/DH_set_method.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: DH_set_method.3,v 1.5 2016/12/10 22:22:59 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2002, 2007 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: DH_set_method.3,v 1.6 2018/03/22 16:06:33 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2002, 2007 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 10 2016 $
.Dt DH_SET_METHOD 3
.Os
.Sh NAME
.Nm DH_set_default_method ,
.Nm DH_get_default_method ,
.Nm DH_set_method ,
.Nm DH_new_method ,







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt DH_SET_METHOD 3
.Os
.Sh NAME
.Nm DH_set_default_method ,
.Nm DH_get_default_method ,
.Nm DH_set_method ,
.Nm DH_new_method ,
223
224
225
226
227
228
229
230

231
232
233
234
235
236
237
.Sh HISTORY
.Fn DH_set_default_method ,
.Fn DH_get_default_method ,
.Fn DH_set_method ,
.Fn DH_new_method
and
.Fn DH_OpenSSL
were added in OpenSSL 0.9.4.

.Sh CAVEATS
As of version 0.9.7,
.Vt DH_METHOD
implementations are grouped together with other algorithmic APIs
(e.g. RSA_METHOD, EVP_CIPHER) in
.Vt ENGINE
modules.







|
>







223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
.Sh HISTORY
.Fn DH_set_default_method ,
.Fn DH_get_default_method ,
.Fn DH_set_method ,
.Fn DH_new_method
and
.Fn DH_OpenSSL
first appeared in OpenSSL 0.9.5 and have been available since
.Ox 2.7 .
.Sh CAVEATS
As of version 0.9.7,
.Vt DH_METHOD
implementations are grouped together with other algorithmic APIs
(e.g. RSA_METHOD, EVP_CIPHER) in
.Vt ENGINE
modules.
Changes to jni/libressl/man/DH_size.3.
1
2
3
4

5
6
7
8
9
10
11
12
.\"	$OpenBSD: DH_size.3,v 1.4 2016/12/10 22:22:59 schwarze Exp $
.\"	OpenSSL 4d524e10 Feb 24 11:55:57 2000 +0000
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.

.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
|
|

|
>
|







1
2
3
4
5
6
7
8
9
10
11
12
13
.\" $OpenBSD: DH_size.3,v 1.8 2018/03/23 23:18:17 schwarze Exp $
.\" full merge up to: OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>
.\" and Kurt Roeckx <kurt@roeckx.be>.
.\" Copyright (c) 2000, 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
44
45
46
47
48
49
50
51
52
53
54
55

56
57
58
59
60
61
62




63

64
65
66
67
68



69
70
71
72
73
74
75
76
77
78

79
80
81




82

.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 10 2016 $
.Dt DH_SIZE 3
.Os
.Sh NAME
.Nm DH_size

.Nd get Diffie-Hellman prime size
.Sh SYNOPSIS
.In openssl/dh.h
.Ft int
.Fo DH_size
.Fa "DH *dh"
.Fc




.Sh DESCRIPTION

This function returns the Diffie-Hellman size in bytes.
It can be used to determine how much memory must be allocated for the
shared secret computed by
.Xr DH_compute_key 3 .
.Pp



.Fa dh
and
.Fa dh->p
must not be
.Dv NULL .
.Sh RETURN VALUES
The size in bytes.
.Sh SEE ALSO
.Xr BN_num_bytes 3 ,
.Xr DH_generate_key 3 ,

.Xr DH_new 3
.Sh HISTORY
.Fn DH_size




is available in all versions of SSLeay and OpenSSL.








|



|
>





|

>
>
>
>

>
|




>
>
>





<
<



>



>
>
>
>
|
>
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83


84
85
86
87
88
89
90
91
92
93
94
95
96
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt DH_SIZE 3
.Os
.Sh NAME
.Nm DH_size ,
.Nm DH_bits
.Nd get Diffie-Hellman prime size
.Sh SYNOPSIS
.In openssl/dh.h
.Ft int
.Fo DH_size
.Fa "const DH *dh"
.Fc
.Ft int
.Fo DH_bits
.Fa "const DH *dh"
.Fc
.Sh DESCRIPTION
.Fn DH_size
returns the Diffie-Hellman prime size in bytes.
It can be used to determine how much memory must be allocated for the
shared secret computed by
.Xr DH_compute_key 3 .
.Pp
.Fn DH_bits
returns the number of significant bits in the key.
.Pp
.Fa dh
and
.Fa dh->p
must not be
.Dv NULL .


.Sh SEE ALSO
.Xr BN_num_bytes 3 ,
.Xr DH_generate_key 3 ,
.Xr DH_get0_key 3 ,
.Xr DH_new 3
.Sh HISTORY
.Fn DH_size
appeared in SSLeay 0.8.1b or earlier and has been available since
.Ox 2.4 .
.Pp
.Fn DH_bits
first appeared in OpenSSL 1.1.0 and has been available since
.Ox 6.3 .
Changes to jni/libressl/man/DIST_POINT_new.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: DIST_POINT_new.3,v 1.2 2016/12/25 22:15:10 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 25 2016 $
.Dt DIST_POINT_NEW 3
.Os
.Sh NAME
.Nm DIST_POINT_new ,
.Nm DIST_POINT_free ,
.Nm CRL_DIST_POINTS_new ,
.Nm CRL_DIST_POINTS_free ,
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: DIST_POINT_new.3,v 1.4 2018/03/23 04:34:23 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt DIST_POINT_NEW 3
.Os
.Sh NAME
.Nm DIST_POINT_new ,
.Nm DIST_POINT_free ,
.Nm CRL_DIST_POINTS_new ,
.Nm CRL_DIST_POINTS_free ,
131
132
133
134
135
136
137
















Certificate Revocation List (CRL) Profile:
.Bl -dash -compact
.It
section 4.2.1.13: CRL Distribution Points
.It
section 5.2.5: Issuing Distribution Point
.El























>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
Certificate Revocation List (CRL) Profile:
.Bl -dash -compact
.It
section 4.2.1.13: CRL Distribution Points
.It
section 5.2.5: Issuing Distribution Point
.El
.Sh HISTORY
.Fn DIST_POINT_new ,
.Fn DIST_POINT_free ,
.Fn CRL_DIST_POINTS_new ,
.Fn CRL_DIST_POINTS_free ,
.Fn DIST_POINT_NAME_new ,
and
.Fn DIST_POINT_NAME_free
first appeared in OpenSSL 0.9.3 and have been available since
.Ox 2.6 .
.Pp
.Fn ISSUING_DIST_POINT_new
and
.Fn ISSUING_DIST_POINT_free
first appeared in OpenSSL 1.0.0 and have been available since
.Ox 4.9 .
Changes to jni/libressl/man/DSA_SIG_new.3.
1
2
3
4


5
6
7
8
9
10
11
12
.\"	$OpenBSD: DSA_SIG_new.3,v 1.4 2016/12/10 22:47:49 schwarze Exp $
.\"	OpenSSL a528d4f0 Oct 27 13:40:11 2015 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.


.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
|
|

|
>
>
|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
.\" $OpenBSD: DSA_SIG_new.3,v 1.7 2018/03/23 23:18:17 schwarze Exp $
.\" full merge up to: OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>,
.\" Dr. Stephen Henson <steve@openssl.org>, and
.\" TJ Saunders <tj@castaglia.org>.
.\" Copyright (c) 2000, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
44
45
46
47
48
49
50
51
52
53
54
55
56


57
58
59
60
61
62
63
64












65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81


















82
83
84
85
86
87
88
89



90
91
92
93
94
95
96
97
98







.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 10 2016 $
.Dt DSA_SIG_NEW 3
.Os
.Sh NAME
.Nm DSA_SIG_new ,
.Nm DSA_SIG_free


.Nd allocate and free DSA signature objects
.Sh SYNOPSIS
.In openssl/dsa.h
.Ft DSA_SIG *
.Fn DSA_SIG_new void
.Ft void
.Fo DSA_SIG_free
.Fa "DSA_SIG *a"












.Fc
.Sh DESCRIPTION
.Fn DSA_SIG_new
allocates and initializes a
.Vt DSA_SIG
structure.
.Pp
.Fn DSA_SIG_free
frees the
.Vt DSA_SIG
structure and its components.
The values are erased before the memory is returned to the system.
If
.Fa a
is a
.Dv NULL
pointer, no action occurs.


















.Sh RETURN VALUES
If the allocation fails,
.Fn DSA_SIG_new
returns
.Dv NULL
and sets an error code that can be obtained by
.Xr ERR_get_error 3 .
Otherwise it returns a pointer to the newly allocated structure.



.Sh SEE ALSO
.Xr DSA_do_sign 3 ,
.Xr DSA_new 3 ,
.Xr ERR_get_error 3
.Sh HISTORY
.Fn DSA_SIG_new
and
.Fn DSA_SIG_free
were added in OpenSSL 0.9.3.














|




|
>
>
|






|
>
>
>
>
>
>
>
>
>
>
>
>



|









|



>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>








>
>
>








|
>
>
>
>
>
>
>
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt DSA_SIG_NEW 3
.Os
.Sh NAME
.Nm DSA_SIG_new ,
.Nm DSA_SIG_free ,
.Nm DSA_SIG_get0 ,
.Nm DSA_SIG_set0
.Nd manipulate DSA signature objects
.Sh SYNOPSIS
.In openssl/dsa.h
.Ft DSA_SIG *
.Fn DSA_SIG_new void
.Ft void
.Fo DSA_SIG_free
.Fa "DSA_SIG *sig"
.Fc
.Ft void
.Fo DSA_SIG_get0
.Fa "const DSA_SIG *sig"
.Fa "const BIGNUM **r"
.Fa "const BIGNUM **s"
.Fc
.Ft int
.Fo DSA_SIG_set0
.Fa "DSA_SIG *sig"
.Fa "BIGNUM *r"
.Fa "BIGNUM *s"
.Fc
.Sh DESCRIPTION
.Fn DSA_SIG_new
allocates an empty
.Vt DSA_SIG
structure.
.Pp
.Fn DSA_SIG_free
frees the
.Vt DSA_SIG
structure and its components.
The values are erased before the memory is returned to the system.
If
.Fa sig
is a
.Dv NULL
pointer, no action occurs.
.Pp
.Fn DSA_SIG_get0
retrieves internal pointers to the
.Fa r
and
.Fa s
values contained in
.Fa sig .
.Pp
The
.Fa r
and
.Fa s
values can be set by calling
.Fn DSA_SIG_set0 .
Calling this function transfers the memory management of the values to
.Fa sig ,
and therefore they should not be freed by the caller.
.Sh RETURN VALUES
If the allocation fails,
.Fn DSA_SIG_new
returns
.Dv NULL
and sets an error code that can be obtained by
.Xr ERR_get_error 3 .
Otherwise it returns a pointer to the newly allocated structure.
.Pp
.Fn DSA_SIG_set0
returns 1 on success or 0 on failure.
.Sh SEE ALSO
.Xr DSA_do_sign 3 ,
.Xr DSA_new 3 ,
.Xr ERR_get_error 3
.Sh HISTORY
.Fn DSA_SIG_new
and
.Fn DSA_SIG_free
first appeared in OpenSSL 0.9.3 and have been available since
.Ox 2.6 .
.Pp
.Fn DSA_SIG_get0
and
.Fn DSA_SIG_set0
first appeared in OpenSSL 1.1.0 and have been available since
.Ox 6.3 .
Changes to jni/libressl/man/DSA_do_sign.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: DSA_do_sign.3,v 1.5 2016/12/10 22:47:49 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: DSA_do_sign.3,v 1.8 2018/03/21 17:57:48 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 10 2016 $
.Dt DSA_DO_SIGN 3
.Os
.Sh NAME
.Nm DSA_do_sign ,
.Nm DSA_do_verify
.Nd raw DSA signature operations
.Sh SYNOPSIS







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt DSA_DO_SIGN 3
.Os
.Sh NAME
.Nm DSA_do_sign ,
.Nm DSA_do_verify
.Nd raw DSA signature operations
.Sh SYNOPSIS
102
103
104
105
106
107
108


109
110
111
112
113
114
115
116
117
118

on error.
.Fn DSA_do_verify
returns 1 for a valid signature, 0 for an incorrect signature,
and -1 on error.
The error codes can be obtained by
.Xr ERR_get_error 3 .
.Sh SEE ALSO


.Xr DSA_new 3 ,
.Xr DSA_SIG_new 3 ,
.Xr DSA_sign 3 ,
.Xr ERR_get_error 3 ,
.Xr RAND_bytes 3
.Sh HISTORY
.Fn DSA_do_sign
and
.Fn DSA_do_verify
were added in OpenSSL 0.9.3.








>
>









|
>
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
on error.
.Fn DSA_do_verify
returns 1 for a valid signature, 0 for an incorrect signature,
and -1 on error.
The error codes can be obtained by
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr DSA_get0_key 3 ,
.Xr DSA_meth_set_sign 3 ,
.Xr DSA_new 3 ,
.Xr DSA_SIG_new 3 ,
.Xr DSA_sign 3 ,
.Xr ERR_get_error 3 ,
.Xr RAND_bytes 3
.Sh HISTORY
.Fn DSA_do_sign
and
.Fn DSA_do_verify
first appeared in OpenSSL 0.9.3 and have been available since
.Ox 2.6 .
Changes to jni/libressl/man/DSA_dup_DH.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: DSA_dup_DH.3,v 1.5 2016/12/10 22:47:49 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2002 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: DSA_dup_DH.3,v 1.7 2018/03/21 21:18:08 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2002 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 10 2016 $
.Dt DSA_DUP_DH 3
.Os
.Sh NAME
.Nm DSA_dup_DH
.Nd create a DH structure out of DSA structure
.Sh SYNOPSIS
.In openssl/dsa.h







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt DSA_DUP_DH 3
.Os
.Sh NAME
.Nm DSA_dup_DH
.Nd create a DH structure out of DSA structure
.Sh SYNOPSIS
.In openssl/dsa.h
78
79
80
81
82
83
84

85
86
87
88
89

90
91
structure or
.Dv NULL
on error.
The error codes can be obtained by
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr DH_new 3 ,

.Xr DSA_new 3 ,
.Xr ERR_get_error 3
.Sh HISTORY
.Fn DSA_dup_DH
was added in OpenSSL 0.9.4.

.Sh CAVEATS
Be careful to avoid small subgroup attacks when using this.







>




|
>


78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
structure or
.Dv NULL
on error.
The error codes can be obtained by
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr DH_new 3 ,
.Xr DSA_get0_pqg 3 ,
.Xr DSA_new 3 ,
.Xr ERR_get_error 3
.Sh HISTORY
.Fn DSA_dup_DH
first appeared in OpenSSL 0.9.4 and has been available since
.Ox 2.6 .
.Sh CAVEATS
Be careful to avoid small subgroup attacks when using this.
Changes to jni/libressl/man/DSA_generate_key.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: DSA_generate_key.3,v 1.5 2016/12/10 22:47:49 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: DSA_generate_key.3,v 1.7 2018/03/20 22:37:32 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 10 2016 $
.Dt DSA_GENERATE_KEY 3
.Os
.Sh NAME
.Nm DSA_generate_key
.Nd generate DSA key pair
.Sh SYNOPSIS
.In openssl/dsa.h







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 20 2018 $
.Dt DSA_GENERATE_KEY 3
.Os
.Sh NAME
.Nm DSA_generate_key
.Nd generate DSA key pair
.Sh SYNOPSIS
.In openssl/dsa.h
72
73
74
75
76
77
78

79
80
81
82
83
84

.Sh RETURN VALUES
.Fn DSA_generate_key
returns 1 on success or 0 otherwise.
The error codes can be obtained by
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr DSA_generate_parameters 3 ,

.Xr DSA_new 3 ,
.Xr ERR_get_error 3 ,
.Xr RAND_bytes 3
.Sh HISTORY
.Fn DSA_generate_key
is available since SSLeay 0.8.








>





|
>
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
.Sh RETURN VALUES
.Fn DSA_generate_key
returns 1 on success or 0 otherwise.
The error codes can be obtained by
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr DSA_generate_parameters 3 ,
.Xr DSA_get0_key 3 ,
.Xr DSA_new 3 ,
.Xr ERR_get_error 3 ,
.Xr RAND_bytes 3
.Sh HISTORY
.Fn DSA_generate_key
first appeared in SSLeay 0.8 and has been available since
.Ox 2.4 .
Changes to jni/libressl/man/DSA_generate_parameters.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: DSA_generate_parameters.3,v 1.5 2016/12/10 22:47:49 schwarze Exp $
.\"	OpenSSL 9b86974e Aug 7 22:14:47 2015 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>,
.\" Bodo Moeller <bodo@openssl.org>, and Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2000, 2013 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: DSA_generate_parameters.3,v 1.9 2018/03/23 00:09:11 schwarze Exp $
.\"	OpenSSL 9b86974e Aug 7 22:14:47 2015 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>,
.\" Bodo Moeller <bodo@openssl.org>, and Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2000, 2013 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 10 2016 $
.Dt DSA_GENERATE_PARAMETERS 3
.Os
.Sh NAME
.Nm DSA_generate_parameters_ex ,
.Nm DSA_generate_parameters
.Nd generate DSA parameters
.Sh SYNOPSIS







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt DSA_GENERATE_PARAMETERS 3
.Os
.Sh NAME
.Nm DSA_generate_parameters_ex ,
.Nm DSA_generate_parameters
.Nd generate DSA parameters
.Sh SYNOPSIS
194
195
196
197
198
199
200

201
202
203
204
205
206
207
208
209



210
211
212
213
214
215
216
217
218
219




220
221
.Dv NULL
if the parameter generation fails.
.Pp
The error codes can be obtained by
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr BN_generate_prime 3 ,

.Xr DSA_new 3 ,
.Xr ERR_get_error 3 ,
.Xr RAND_bytes 3
.Sh HISTORY
.Fn DSA_generate_parameters
appeared in SSLeay 0.8.
The
.Fa cb_arg
argument was added in SSLeay 0.9.0.



In versions up to OpenSSL 0.9.4,
.Fn callback 1 ...\&
was called in the inner loop of the Miller-Rabin test whenever it
reached the squaring step (the parameters to
.Fn callback
did not reveal how many witnesses had been tested); since OpenSSL 0.9.5,
.Fn callback 1 ...\&
is called as in
.Xr BN_is_prime 3 ,
i.e. once for each witness.




.Sh BUGS
Seed lengths > 20 are not supported.







>





|
<

|
>
>
>










>
>
>
>


194
195
196
197
198
199
200
201
202
203
204
205
206
207

208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
.Dv NULL
if the parameter generation fails.
.Pp
The error codes can be obtained by
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr BN_generate_prime 3 ,
.Xr DSA_get0_pqg 3 ,
.Xr DSA_new 3 ,
.Xr ERR_get_error 3 ,
.Xr RAND_bytes 3
.Sh HISTORY
.Fn DSA_generate_parameters
first appeared in SSLeay 0.8 and had its

.Fa cb_arg
argument added in SSLeay 0.9.0.
It has been available since
.Ox 2.4 .
.Pp
In versions up to OpenSSL 0.9.4,
.Fn callback 1 ...\&
was called in the inner loop of the Miller-Rabin test whenever it
reached the squaring step (the parameters to
.Fn callback
did not reveal how many witnesses had been tested); since OpenSSL 0.9.5,
.Fn callback 1 ...\&
is called as in
.Xr BN_is_prime 3 ,
i.e. once for each witness.
.Pp
.Fn DSA_generate_parameters_ex
first appeared in OpenSSL 0.9.8 and has been available since
.Ox 4.5 .
.Sh BUGS
Seed lengths > 20 are not supported.
Added jni/libressl/man/DSA_get0_pqg.3.
























































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
.\" $OpenBSD: DSA_get0_pqg.3,v 1.4 2018/03/23 23:18:17 schwarze Exp $
.\" full merge up to: OpenSSL e90fc053 Jul 15 09:39:45 2017 -0400
.\"
.\" This file was written by Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\"
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in
.\"    the documentation and/or other materials provided with the
.\"    distribution.
.\"
.\" 3. All advertising materials mentioning features or use of this
.\"    software must display the following acknowledgment:
.\"    "This product includes software developed by the OpenSSL Project
.\"    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
.\"
.\" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
.\"    endorse or promote products derived from this software without
.\"    prior written permission. For written permission, please contact
.\"    openssl-core@openssl.org.
.\"
.\" 5. Products derived from this software may not be called "OpenSSL"
.\"    nor may "OpenSSL" appear in their names without prior written
.\"    permission of the OpenSSL Project.
.\"
.\" 6. Redistributions of any form whatsoever must retain the following
.\"    acknowledgment:
.\"    "This product includes software developed by the OpenSSL Project
.\"    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
.\" EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
.\" ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt DSA_GET0_PQG 3
.Os
.Sh NAME
.Nm DSA_get0_pqg ,
.Nm DSA_set0_pqg ,
.Nm DSA_get0_key ,
.Nm DSA_set0_key ,
.Nm DSA_clear_flags ,
.Nm DSA_test_flags ,
.Nm DSA_set_flags ,
.Nm DSA_get0_engine
.Nd get data from and set data in a DSA object
.Sh SYNOPSIS
.In openssl/dsa.h
.Ft void
.Fo DSA_get0_pqg
.Fa "const DSA *d"
.Fa "const BIGNUM **p"
.Fa "const BIGNUM **q"
.Fa "const BIGNUM **g"
.Fc
.Ft int
.Fo DSA_set0_pqg
.Fa "DSA *d"
.Fa "BIGNUM *p"
.Fa "BIGNUM *q"
.Fa "BIGNUM *g"
.Fc
.Ft void
.Fo DSA_get0_key
.Fa "const DSA *d"
.Fa "const BIGNUM **pub_key"
.Fa "const BIGNUM **priv_key"
.Fc
.Ft int
.Fo DSA_set0_key
.Fa "DSA *d"
.Fa "BIGNUM *pub_key"
.Fa "BIGNUM *priv_key"
.Fc
.Ft void
.Fo DSA_clear_flags
.Fa "DSA *d"
.Fa "int flags"
.Fc
.Ft int
.Fo DSA_test_flags
.Fa "const DSA *d"
.Fa "int flags"
.Fc
.Ft void
.Fo DSA_set_flags
.Fa "DSA *d"
.Fa "int flags"
.Fc
.Ft ENGINE *
.Fo DSA_get0_engine
.Fa "DSA *d"
.Fc
.Sh DESCRIPTION
A
.Vt DSA
object contains the parameters
.Fa p ,
.Fa q ,
and
.Fa g .
It also contains a public key
.Fa pub_key
and an optional private key
.Fa priv_key .
.Pp
The
.Fa p ,
.Fa q ,
and
.Fa g
parameters can be obtained by calling
.Fn DSA_get0_pqg .
If the parameters have not yet been set, then
.Pf * Fa p ,
.Pf * Fa q ,
and
.Pf * Fa g
are set to
.Dv NULL .
Otherwise, they are set to pointers to the internal representations
of the values that should not be freed by the application.
.Pp
The
.Fa p ,
.Fa q ,
and
.Fa g
values can be set by calling
.Fn DSA_set0_pqg .
Calling this function transfers the memory management of the values to
.Fa d ,
and therefore they should not be freed by the caller.
.Pp
The
.Fn DSA_get0_key
function stores pointers to the internal representations
of the public key in
.Pf * Fa pub_key
and to the private key in
.Pf * Fa priv_key .
Either may be
.Dv NULL
if it has not yet been set.
If the private key has been set, then the public key must be.
.Pp
The public and private key values can be set using
.Fn DSA_set0_key .
The public key must be
.Pf non- Dv NULL
the first time this function is called on a given
.Vt DSA
object.
The private key may be
.Dv NULL .
On subsequent calls, either may be
.Dv NULL ,
which means the corresponding
.Vt DSA
field is left untouched.
.Fn DSA_set0_key
transfers the memory management of the key values to
.Fa d ,
and therefore they should not be freed by the caller.
.Pp
Values retrieved with
.Fn DSA_get0_pqg
and
.Fn DSA_get0_key
are owned by the
.Vt DSA
object and may therefore not be passed to
.Fn DSA_set0_pqg
or
.Fn DSA_set0_key .
If needed, duplicate the received values using
.Xr BN_dup 3
and pass the duplicates.
.Pp
.Fn DSA_clear_flags
clears the specified
.Fa flags
in
.Fa d .
.Fn DSA_test_flags
tests the
.Fa flags
in
.Fa d .
.Fn DSA_set_flags
sets the
.Fa flags
in
.Fa d ;
any flags already set remain set.
For all three functions, multiple flags can be passed in one call,
OR'ed together bitwise.
.Sh RETURN VALUES
.Fn DSA_set0_pqg
and
.Fn DSA_set0_key
return 1 on success or 0 on failure.
.Pp
.Fn DSA_test_flags
returns those of the given
.Fa flags
currently set in
.Fa d
or 0 if none of the given
.Fa flags
are set.
.Pp
.Fn DSA_get0_engine
returns a pointer to the
.Vt ENGINE
used by the
.Vt DSA
object
Fa d ,
or
.Dv NULL
if no engine was set for this object.
.Sh SEE ALSO
.Xr DSA_do_sign 3 ,
.Xr DSA_dup_DH 3 ,
.Xr DSA_generate_key 3 ,
.Xr DSA_generate_parameters 3 ,
.Xr DSA_new 3 ,
.Xr DSA_print 3 ,
.Xr DSA_sign 3 ,
.Xr DSA_size 3
.Sh HISTORY
These functions first appeared in OpenSSL 1.1.0
and have been available since
.Ox 6.3 .
Changes to jni/libressl/man/DSA_get_ex_new_index.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: DSA_get_ex_new_index.3,v 1.4 2016/12/10 22:47:49 schwarze Exp $
.\"	OpenSSL a528d4f0 Oct 27 13:40:11 2015 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2009 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: DSA_get_ex_new_index.3,v 1.5 2018/03/22 16:06:33 schwarze Exp $
.\"	OpenSSL a528d4f0 Oct 27 13:40:11 2015 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2009 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 10 2016 $
.Dt DSA_GET_EX_NEW_INDEX 3
.Os
.Sh NAME
.Nm DSA_get_ex_new_index ,
.Nm DSA_set_ex_data ,
.Nm DSA_get_ex_data
.Nd add application specific data to DSA structures







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt DSA_GET_EX_NEW_INDEX 3
.Os
.Sh NAME
.Nm DSA_get_ex_new_index ,
.Nm DSA_set_ex_data ,
.Nm DSA_get_ex_data
.Nd add application specific data to DSA structures
90
91
92
93
94
95
96
97

.Xr DSA_new 3 ,
.Xr RSA_get_ex_new_index 3
.Sh HISTORY
.Fn DSA_get_ex_new_index ,
.Fn DSA_set_ex_data ,
and
.Fn DSA_get_ex_data
are available since OpenSSL 0.9.5.








|
>
90
91
92
93
94
95
96
97
98
.Xr DSA_new 3 ,
.Xr RSA_get_ex_new_index 3
.Sh HISTORY
.Fn DSA_get_ex_new_index ,
.Fn DSA_set_ex_data ,
and
.Fn DSA_get_ex_data
first appeared in OpenSSL 0.9.5 and have been available since
.Ox 2.7 .
Added jni/libressl/man/DSA_meth_new.3.














































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
.\" $OpenBSD: DSA_meth_new.3,v 1.1 2018/03/18 13:06:36 schwarze Exp $
.\" selective merge up to: OpenSSL a970b14f Jul 31 18:58:40 2017 -0400
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2018 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" The original file was written by Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\"
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in
.\"    the documentation and/or other materials provided with the
.\"    distribution.
.\"
.\" 3. All advertising materials mentioning features or use of this
.\"    software must display the following acknowledgment:
.\"    "This product includes software developed by the OpenSSL Project
.\"    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
.\"
.\" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
.\"    endorse or promote products derived from this software without
.\"    prior written permission. For written permission, please contact
.\"    openssl-core@openssl.org.
.\"
.\" 5. Products derived from this software may not be called "OpenSSL"
.\"    nor may "OpenSSL" appear in their names without prior written
.\"    permission of the OpenSSL Project.
.\"
.\" 6. Redistributions of any form whatsoever must retain the following
.\"    acknowledgment:
.\"    "This product includes software developed by the OpenSSL Project
.\"    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
.\" EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
.\" ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 18 2018 $
.Dt DSA_METH_NEW 3
.Os
.Sh NAME
.Nm DSA_meth_new ,
.Nm DSA_meth_free ,
.Nm DSA_meth_dup ,
.Nm DSA_meth_set_sign ,
.Nm DSA_meth_set_finish
.Nd build up DSA methods
.Sh SYNOPSIS
.In openssl/dsa.h
.Ft DSA_METHOD *
.Fo DSA_meth_new
.Fa "const char *name"
.Fa "int flags"
.Fc
.Ft void
.Fo DSA_meth_free
.Fa "DSA_METHOD *meth"
.Fc
.Ft DSA_METHOD *
.Fo DSA_meth_dup
.Fa "const DSA_METHOD *meth"
.Fc
.Ft int
.Fo DSA_meth_set_sign
.Fa "DSA_METHOD *meth"
.Fa "DSA_SIG *(*sign)(const unsigned char *, int, DSA *)"
.Fc
.Ft int
.Fo DSA_meth_set_finish
.Fa "DSA_METHOD *meth"
.Fa "int (*finish)(DSA *)"
.Fc
.Sh DESCRIPTION
The
.Vt DSA_METHOD
structure holds function pinters for custom DSA implementations.
.Pp
.Fn DSA_meth_new
creates a new
.Vt DSA_METHOD
structure.
A copy of the NUL-terminated
.Fa name
is stored in the new
.Vt DSA_METHOD
object.
Any new
.Vt DSA
object constructed from this
.Vt DSA_METHOD
will have the given
.Fa flags
set by default.
.Pp
.Fn DSA_meth_dup
creates a deep copy of
.Fa meth .
This might be useful for creating a new
.Vt DSA_METHOD
based on an existing one, but with some differences.
.Pp
.Fn DSA_meth_free
destroys
.Fa meth
and frees any memory associated with it.
.Pp
.Fn DSA_meth_set_sign
sets the function used for creating a DSA signature.
This function will be called from
.Xr DSA_do_sign 3
and indirectly from
.Xr DSA_sign 3 .
The parameters of
.Fa sign
have the same meaning as for
.Xr DSA_do_sign 3 .
.Pp
.Fn DSA_meth_set_finish
sets an optional function for destroying a
.Vt DSA
object.
Unless
.Fa finish
is
.Dv NULL ,
it will be called from
.Xr DSA_free 3 .
It takes the same argument
and is intended to do DSA implementation specific cleanup.
The memory used by the
.Vt DSA
object itself should not be freed by the
.Fa finish
function.
.Sh RETURN VALUES
.Fn DSA_meth_new
and
.Fn DSA_meth_dup
return the newly allocated DSA_METHOD object or NULL on failure.
.Pp
All
.Fn DSA_meth_set_*
functions return 1 on success or 0 on failure.
.Sh SEE ALSO
.Xr DSA_do_sign 3 ,
.Xr DSA_new 3 ,
.Xr DSA_set_method 3 ,
.Xr DSA_SIG_new 3 ,
.Xr DSA_sign 3
.Sh HISTORY
These functions first appeared in OpenSSL 1.1.0
and have been available since
.Ox 6.3 .
Changes to jni/libressl/man/DSA_new.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: DSA_new.3,v 1.5 2016/12/11 09:57:57 jmc Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2002 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: DSA_new.3,v 1.8 2018/03/20 22:37:32 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2002 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 11 2016 $
.Dt DSA_NEW 3
.Os
.Sh NAME
.Nm DSA_new ,
.Nm DSA_free
.Nd allocate and free DSA objects
.Sh SYNOPSIS







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 20 2018 $
.Dt DSA_NEW 3
.Os
.Sh NAME
.Nm DSA_new ,
.Nm DSA_free
.Nd allocate and free DSA objects
.Sh SYNOPSIS
95
96
97
98
99
100
101

102

103
104
105
106
107
108
109

110
111
112
113
114
115
116
117
118

.Xr BN_new 3 ,
.Xr d2i_DSAPublicKey 3 ,
.Xr DH_new 3 ,
.Xr DSA_do_sign 3 ,
.Xr DSA_dup_DH 3 ,
.Xr DSA_generate_key 3 ,
.Xr DSA_generate_parameters 3 ,

.Xr DSA_get_ex_new_index 3 ,

.Xr DSA_print 3 ,
.Xr DSA_set_method 3 ,
.Xr DSA_SIG_new 3 ,
.Xr DSA_sign 3 ,
.Xr DSA_size 3 ,
.Xr engine 3 ,
.Xr ERR_get_error 3 ,

.Xr RSA_new 3
.Sh STANDARDS
US Federal Information Processing Standard FIPS 186 (Digital Signature
Standard, DSS), ANSI X9.30
.Sh HISTORY
.Fn DSA_new
and
.Fn DSA_free
are available in all versions of SSLeay and OpenSSL.








>

>







>








|
>
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
.Xr BN_new 3 ,
.Xr d2i_DSAPublicKey 3 ,
.Xr DH_new 3 ,
.Xr DSA_do_sign 3 ,
.Xr DSA_dup_DH 3 ,
.Xr DSA_generate_key 3 ,
.Xr DSA_generate_parameters 3 ,
.Xr DSA_get0_pqg 3 ,
.Xr DSA_get_ex_new_index 3 ,
.Xr DSA_meth_new 3 ,
.Xr DSA_print 3 ,
.Xr DSA_set_method 3 ,
.Xr DSA_SIG_new 3 ,
.Xr DSA_sign 3 ,
.Xr DSA_size 3 ,
.Xr engine 3 ,
.Xr ERR_get_error 3 ,
.Xr EVP_PKEY_set1_DSA 3 ,
.Xr RSA_new 3
.Sh STANDARDS
US Federal Information Processing Standard FIPS 186 (Digital Signature
Standard, DSS), ANSI X9.30
.Sh HISTORY
.Fn DSA_new
and
.Fn DSA_free
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/DSA_set_method.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: DSA_set_method.3,v 1.6 2016/12/10 22:47:49 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2002, 2007 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: DSA_set_method.3,v 1.8 2018/03/22 16:06:33 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2002, 2007 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 10 2016 $
.Dt DSA_SET_METHOD 3
.Os
.Sh NAME
.Nm DSA_set_default_method ,
.Nm DSA_get_default_method ,
.Nm DSA_set_method ,
.Nm DSA_new_method ,







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt DSA_SET_METHOD 3
.Os
.Sh NAME
.Nm DSA_set_default_method ,
.Nm DSA_get_default_method ,
.Nm DSA_set_method ,
.Nm DSA_new_method ,
219
220
221
222
223
224
225

226
227
228
229
230
231
232
233
234

235
236
237
238
239
240
241
returns
.Dv NULL
and sets an error code that can be obtained by
.Xr ERR_get_error 3
if the allocation fails.
Otherwise it returns a pointer to the newly allocated structure.
.Sh SEE ALSO

.Xr DSA_new 3
.Sh HISTORY
.Fn DSA_set_default_method ,
.Fn DSA_get_default_method ,
.Fn DSA_set_method ,
.Fn DSA_new_method ,
and
.Fn DSA_OpenSSL
were added in OpenSSL 0.9.4.

.Sh CAVEATS
As of version 0.9.7, DSA_METHOD implementations are grouped together
with other algorithmic APIs (e.g. RSA_METHOD, EVP_CIPHER) in
.Vt ENGINE
modules.
If a default
.Vt ENGINE







>








|
>







219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
returns
.Dv NULL
and sets an error code that can be obtained by
.Xr ERR_get_error 3
if the allocation fails.
Otherwise it returns a pointer to the newly allocated structure.
.Sh SEE ALSO
.Xr DSA_meth_new 3 ,
.Xr DSA_new 3
.Sh HISTORY
.Fn DSA_set_default_method ,
.Fn DSA_get_default_method ,
.Fn DSA_set_method ,
.Fn DSA_new_method ,
and
.Fn DSA_OpenSSL
first appeared in OpenSSL 0.9.5 and have been available since
.Ox 2.7 .
.Sh CAVEATS
As of version 0.9.7, DSA_METHOD implementations are grouped together
with other algorithmic APIs (e.g. RSA_METHOD, EVP_CIPHER) in
.Vt ENGINE
modules.
If a default
.Vt ENGINE
Changes to jni/libressl/man/DSA_sign.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: DSA_sign.3,v 1.5 2016/12/10 22:47:49 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: DSA_sign.3,v 1.7 2018/03/20 22:37:32 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 10 2016 $
.Dt DSA_SIGN 3
.Os
.Sh NAME
.Nm DSA_sign ,
.Nm DSA_sign_setup ,
.Nm DSA_verify
.Nd DSA signatures







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 20 2018 $
.Dt DSA_SIGN 3
.Os
.Sh NAME
.Nm DSA_sign ,
.Nm DSA_sign_setup ,
.Nm DSA_verify
.Nd DSA signatures
153
154
155
156
157
158
159

160
161
162
163
164
165
166
167
168
169
170
171
172


.Fn DSA_verify
returns 1 for a valid signature, 0 for an incorrect signature,
and -1 on error.
The error codes can be obtained by
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr DSA_do_sign 3 ,

.Xr DSA_new 3 ,
.Xr ERR_get_error 3 ,
.Xr RAND_bytes 3
.Sh STANDARDS
US Federal Information Processing Standard FIPS 186 (Digital Signature
Standard, DSS), ANSI X9.30
.Sh HISTORY
.Fn DSA_sign
and
.Fn DSA_verify
are available in all versions of SSLeay.
.Fn DSA_sign_setup
was added in SSLeay 0.8.









>










|

|
>
>
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
.Fn DSA_verify
returns 1 for a valid signature, 0 for an incorrect signature,
and -1 on error.
The error codes can be obtained by
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr DSA_do_sign 3 ,
.Xr DSA_get0_key 3 ,
.Xr DSA_new 3 ,
.Xr ERR_get_error 3 ,
.Xr RAND_bytes 3
.Sh STANDARDS
US Federal Information Processing Standard FIPS 186 (Digital Signature
Standard, DSS), ANSI X9.30
.Sh HISTORY
.Fn DSA_sign
and
.Fn DSA_verify
appeared before SSLeay 0.8.
.Fn DSA_sign_setup
first appeared in SSLeay 0.8.
All these functions have been available since
.Ox 2.4 .
Changes to jni/libressl/man/DSA_size.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: DSA_size.3,v 1.4 2016/12/10 22:47:49 schwarze Exp $
.\"	OpenSSL 05ea606a May 20 20:52:46 2016 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2002 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: DSA_size.3,v 1.6 2018/03/20 22:37:32 schwarze Exp $
.\"	OpenSSL 05ea606a May 20 20:52:46 2016 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2002 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 10 2016 $
.Dt DSA_SIZE 3
.Os
.Sh NAME
.Nm DSA_size
.Nd get DSA signature size
.Sh SYNOPSIS
.In openssl/dsa.h







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 20 2018 $
.Dt DSA_SIZE 3
.Os
.Sh NAME
.Nm DSA_size
.Nd get DSA signature size
.Sh SYNOPSIS
.In openssl/dsa.h
68
69
70
71
72
73
74

75
76
77
78
79

.Pp
.Fa dsa->q
must not be
.Dv NULL .
.Sh RETURN VALUES
The size in bytes.
.Sh SEE ALSO

.Xr DSA_new 3 ,
.Xr DSA_sign 3
.Sh HISTORY
.Fn DSA_size
is available in all versions of SSLeay and OpenSSL.








>




|
>
68
69
70
71
72
73
74
75
76
77
78
79
80
81
.Pp
.Fa dsa->q
must not be
.Dv NULL .
.Sh RETURN VALUES
The size in bytes.
.Sh SEE ALSO
.Xr DSA_get0_pqg 3 ,
.Xr DSA_new 3 ,
.Xr DSA_sign 3
.Sh HISTORY
.Fn DSA_size
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
Changes to jni/libressl/man/DTLSv1_listen.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: DTLSv1_listen.3,v 1.2 2016/12/06 12:24:33 schwarze Exp $
.\"	OpenSSL 7795475f Dec 18 13:18:31 2015 -0500
.\"
.\" This file was written by Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: DTLSv1_listen.3,v 1.3 2018/03/23 02:21:08 schwarze Exp $
.\"	OpenSSL 7795475f Dec 18 13:18:31 2015 -0500
.\"
.\" This file was written by Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 6 2016 $
.Dt DTLSV1_LISTEN 3
.Os
.Sh NAME
.Nm DTLSv1_listen
.Nd listen for incoming DTLS connections
.Sh SYNOPSIS
.In openssl/ssl.h







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt DTLSV1_LISTEN 3
.Os
.Sh NAME
.Nm DTLSv1_listen
.Nd listen for incoming DTLS connections
.Sh SYNOPSIS
.In openssl/ssl.h
179
180
181
182
183
184
185
186

.Sh SEE ALSO
.Xr BIO_new 3 ,
.Xr ssl 3 ,
.Xr SSL_accept 3 ,
.Xr SSL_get_error 3
.Sh HISTORY
.Fn DTLSv1_listen
was added in OpenSSL 0.9.8.








|
>
179
180
181
182
183
184
185
186
187
.Sh SEE ALSO
.Xr BIO_new 3 ,
.Xr ssl 3 ,
.Xr SSL_accept 3 ,
.Xr SSL_get_error 3
.Sh HISTORY
.Fn DTLSv1_listen
first appeared in OpenSSL 0.9.8m and have been available since
.Ox 4.9 .
Changes to jni/libressl/man/ECDSA_SIG_new.3.
1
2
3
4
5
6
7
8
9
10
11
12
.\"	$OpenBSD: ECDSA_SIG_new.3,v 1.8 2017/01/06 20:35:23 schwarze Exp $
.\"	OpenSSL e6390aca Jul 21 10:06:03 2015 -0400
.\"
.\" This file was written by Nils Larsch <nils@openssl.org>.
.\" Copyright (c) 2004, 2005, 2012, 2013 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
|
|


|







1
2
3
4
5
6
7
8
9
10
11
12
.\" $OpenBSD: ECDSA_SIG_new.3,v 1.11 2018/03/23 23:18:17 schwarze Exp $
.\" full merge up to: OpenSSL e9b77246 Jan 20 19:58:49 2017 +0100
.\"
.\" This file was written by Nils Larsch <nils@openssl.org>.
.\" Copyright (c) 2004, 2005, 2013, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
45
46
47
48
49
50
51
52
53
54
55
56
57


58
59
60
61
62
63
64
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: January 6 2017 $
.Dt ECDSA_SIG_NEW 3
.Os
.Sh NAME
.Nm ECDSA_SIG_new ,
.Nm ECDSA_SIG_free ,


.Nm i2d_ECDSA_SIG ,
.Nm d2i_ECDSA_SIG ,
.Nm ECDSA_size ,
.Nm ECDSA_sign_setup ,
.Nm ECDSA_sign ,
.Nm ECDSA_sign_ex ,
.Nm ECDSA_verify ,







|





>
>







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt ECDSA_SIG_NEW 3
.Os
.Sh NAME
.Nm ECDSA_SIG_new ,
.Nm ECDSA_SIG_free ,
.Nm ECDSA_SIG_get0 ,
.Nm ECDSA_SIG_set0 ,
.Nm i2d_ECDSA_SIG ,
.Nm d2i_ECDSA_SIG ,
.Nm ECDSA_size ,
.Nm ECDSA_sign_setup ,
.Nm ECDSA_sign ,
.Nm ECDSA_sign_ex ,
.Nm ECDSA_verify ,
76
77
78
79
80
81
82












83
84
85
86
87
88
89
.Fo ECDSA_SIG_new
.Fa void
.Fc
.Ft void
.Fo ECDSA_SIG_free
.Fa "ECDSA_SIG *sig"
.Fc












.Ft int
.Fo i2d_ECDSA_SIG
.Fa "const ECDSA_SIG *sig"
.Fa "unsigned char **pp"
.Fc
.Ft ECDSA_SIG*
.Fo d2i_ECDSA_SIG







>
>
>
>
>
>
>
>
>
>
>
>







78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
.Fo ECDSA_SIG_new
.Fa void
.Fc
.Ft void
.Fo ECDSA_SIG_free
.Fa "ECDSA_SIG *sig"
.Fc
.Ft void
.Fo ECDSA_SIG_get0
.Fa "const ECDSA_SIG *sig"
.Fa "const BIGNUM **r"
.Fa "const BIGNUM **s"
.Fc
.Ft int
.Fo ECDSA_SIG_set0
.Fa "ECDSA_SIG *sig"
.Fa "BIGNUM *r"
.Fa "BIGNUM *s"
.Fc
.Ft int
.Fo i2d_ECDSA_SIG
.Fa "const ECDSA_SIG *sig"
.Fa "unsigned char **pp"
.Fc
.Ft ECDSA_SIG*
.Fo d2i_ECDSA_SIG
206
207
208
209
210
211
212




















213
214
215
216
217
218
219
.Pp
.Fn ECDSA_SIG_free
frees the
.Vt ECDSA_SIG
structure
.Fa sig .
.Pp




















.Fn i2d_ECDSA_SIG
creates the DER encoding of the ECDSA signature
.Fa sig
and writes the encoded signature to
.Fa *pp
(note: if
.Fa pp







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
.Pp
.Fn ECDSA_SIG_free
frees the
.Vt ECDSA_SIG
structure
.Fa sig .
.Pp
.Fn ECDSA_SIG_get0
retrieves internal pointers the
.Fa r
and
.Fa s
values contained in
.Fa sig .
.Pp
.Fn ECDSA_SIG_set0
sets the
.Fa r
and
.Fa s
values in
.Fa sig .
Calling this function transfers the memory management of the values to
.Fa sig .
Therefore, the values that have been passed in
should not be freed by the caller.
.Pp
.Fn i2d_ECDSA_SIG
creates the DER encoding of the ECDSA signature
.Fa sig
and writes the encoded signature to
.Fa *pp
(note: if
.Fa pp
341
342
343
344
345
346
347

348
349
350
351
352
353
354
.Fa dgst_len
using the public key
.Fa eckey .
.Sh RETURN VALUES
.Fn ECDSA_size
returns the maximum length signature or 0 on error.
.Pp

.Fn ECDSA_sign ,
.Fn ECDSA_sign_ex ,
and
.Fn ECDSA_sign_setup
return 1 if successful or 0 on error.
.Pp
.Fn ECDSA_do_sign







>







375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
.Fa dgst_len
using the public key
.Fa eckey .
.Sh RETURN VALUES
.Fn ECDSA_size
returns the maximum length signature or 0 on error.
.Pp
.Fn ECDSA_SIG_set0 ,
.Fn ECDSA_sign ,
.Fn ECDSA_sign_ex ,
and
.Fn ECDSA_sign_setup
return 1 if successful or 0 on error.
.Pp
.Fn ECDSA_do_sign
444
445
446
447
448
449
450

















451







452
453
454
.Xr EVP_DigestSignInit 3 ,
.Xr EVP_DigestVerifyInit 3 ,
.Xr RSA_new 3
.Sh STANDARDS
ANSI X9.62, US Federal Information Processing Standard FIPS 186-2
(Digital Signature Standard, DSS)
.Sh HISTORY

















The ECDSA implementation was first introduced in OpenSSL 0.9.8.







.Sh AUTHORS
.An Nils Larsch
for the OpenSSL project.







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
>
>
>
>
>
>
>



479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
.Xr EVP_DigestSignInit 3 ,
.Xr EVP_DigestVerifyInit 3 ,
.Xr RSA_new 3
.Sh STANDARDS
ANSI X9.62, US Federal Information Processing Standard FIPS 186-2
(Digital Signature Standard, DSS)
.Sh HISTORY
.Fn ECDSA_SIG_new ,
.Fn ECDSA_SIG_free ,
.Fn i2d_ECDSA_SIG ,
.Fn d2i_ECDSA_SIG ,
.Fn ECDSA_size ,
.Fn ECDSA_sign_setup ,
.Fn ECDSA_sign ,
.Fn ECDSA_sign_ex ,
.Fn ECDSA_verify ,
.Fn ECDSA_do_sign ,
.Fn ECDSA_do_sign_ex ,
.Fn ECDSA_do_verify ,
.Fn ECDSA_OpenSSL ,
.Fn ECDSA_get_default_method ,
.Fn ECDSA_set_default_method ,
and
.Fn ECDSA_set_method
first appeared in OpenSSL 0.9.8 and have been available since
.Ox 4.5 .
.Pp
.Fn ECDSA_SIG_get0
and
.Fn ECDSA_SIG_set0
first appeared in OpenSSL 1.1.0 and have been available since
.Ox 6.3 .
.Sh AUTHORS
.An Nils Larsch
for the OpenSSL project.
Changes to jni/libressl/man/EC_GFp_simple_method.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: EC_GFp_simple_method.3,v 1.6 2016/12/11 14:22:43 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2013 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: EC_GFp_simple_method.3,v 1.9 2018/03/23 05:48:56 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2013 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 11 2016 $
.Dt EC_GFP_SIMPLE_METHOD 3
.Os
.Sh NAME
.Nm EC_GFp_simple_method ,
.Nm EC_GFp_mont_method ,
.Nm EC_GFp_nist_method ,
.Nm EC_GFp_nistp224_method ,







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt EC_GFP_SIMPLE_METHOD 3
.Os
.Sh NAME
.Nm EC_GFp_simple_method ,
.Nm EC_GFp_mont_method ,
.Nm EC_GFp_nist_method ,
.Nm EC_GFp_nistp224_method ,
155
156
157
158
159
160
161




















.Xr BN_mod_mul_montgomery 3 ,
.Xr d2i_ECPKParameters 3 ,
.Xr EC_GROUP_copy 3 ,
.Xr EC_GROUP_new 3 ,
.Xr EC_KEY_new 3 ,
.Xr EC_POINT_add 3 ,
.Xr EC_POINT_new 3



























>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
.Xr BN_mod_mul_montgomery 3 ,
.Xr d2i_ECPKParameters 3 ,
.Xr EC_GROUP_copy 3 ,
.Xr EC_GROUP_new 3 ,
.Xr EC_KEY_new 3 ,
.Xr EC_POINT_add 3 ,
.Xr EC_POINT_new 3
.Sh HISTORY
.Fn EC_GFp_simple_method
and
.Fn EC_GFp_mont_method
first appeared in OpenSSL 0.9.7 and have been available since
.Ox 3.2 .
.Pp
.Fn EC_GFp_nist_method ,
.Fn EC_GF2m_simple_method ,
and
.Fn EC_METHOD_get_field_type
first appeared in OpenSSL 0.9.8 and have been available since
.Ox 4.5 .
.Pp
.Fn EC_GFp_nistp224_method ,
.Fn EC_GFp_nistp256_method ,
and
.Fn EC_GFp_nistp521_method
first appeared in OpenSSL 1.0.1 and have been available since
.Ox 5.3 .
Changes to jni/libressl/man/EC_GROUP_copy.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: EC_GROUP_copy.3,v 1.7 2016/12/11 14:22:43 schwarze Exp $
.\"	OpenSSL aafbe1cc Jun 12 23:42:08 2013 +0100
.\"
.\" This file was written by Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2013, 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: EC_GROUP_copy.3,v 1.10 2018/03/23 23:18:17 schwarze Exp $
.\"	OpenSSL aafbe1cc Jun 12 23:42:08 2013 +0100
.\"
.\" This file was written by Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2013, 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 11 2016 $
.Dt EC_GROUP_COPY 3
.Os
.Sh NAME
.Nm EC_GROUP_copy ,
.Nm EC_GROUP_dup ,
.Nm EC_GROUP_method_of ,
.Nm EC_GROUP_set_generator ,







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt EC_GROUP_COPY 3
.Os
.Sh NAME
.Nm EC_GROUP_copy ,
.Nm EC_GROUP_dup ,
.Nm EC_GROUP_method_of ,
.Nm EC_GROUP_set_generator ,
481
482
483
484
485
486
487































.Sh SEE ALSO
.Xr d2i_ECPKParameters 3 ,
.Xr EC_GFp_simple_method 3 ,
.Xr EC_GROUP_new 3 ,
.Xr EC_KEY_new 3 ,
.Xr EC_POINT_add 3 ,
.Xr EC_POINT_new 3






































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
.Sh SEE ALSO
.Xr d2i_ECPKParameters 3 ,
.Xr EC_GFp_simple_method 3 ,
.Xr EC_GROUP_new 3 ,
.Xr EC_KEY_new 3 ,
.Xr EC_POINT_add 3 ,
.Xr EC_POINT_new 3
.Sh HISTORY
.Fn EC_GROUP_copy ,
.Fn EC_GROUP_method_of ,
.Fn EC_GROUP_set_generator ,
.Fn EC_GROUP_get0_generator ,
.Fn EC_GROUP_get_order ,
and
.Fn EC_GROUP_get_cofactor
first appeared in OpenSSL 0.9.7 and have been available since
.Ox 3.2 .
.Pp
.Fn EC_GROUP_dup ,
.Fn EC_GROUP_set_curve_name ,
.Fn EC_GROUP_get_curve_name ,
.Fn EC_GROUP_set_asn1_flag ,
.Fn EC_GROUP_get_asn1_flag ,
.Fn EC_GROUP_set_point_conversion_form ,
.Fn EC_GROUP_get_point_conversion_form ,
.Fn EC_GROUP_get0_seed ,
.Fn EC_GROUP_get_seed_len ,
.Fn EC_GROUP_set_seed ,
.Fn EC_GROUP_get_degree ,
.Fn EC_GROUP_check ,
.Fn EC_GROUP_check_discriminant ,
.Fn EC_GROUP_cmp ,
.Fn EC_GROUP_get_basis_type ,
.Fn EC_GROUP_get_trinomial_basis ,
and
.Fn EC_GROUP_get_pentanomial_basis
first appeared in OpenSSL 0.9.8 and has been available since
.Ox 4.5 .
Changes to jni/libressl/man/EC_GROUP_new.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: EC_GROUP_new.3,v 1.6 2016/12/11 14:22:43 schwarze Exp $
.\"	OpenSSL 9b86974e Mon Aug 17 15:21:33 2015 -0400
.\"
.\" This file was written by Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2013 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: EC_GROUP_new.3,v 1.8 2018/03/23 00:09:11 schwarze Exp $
.\"	OpenSSL 9b86974e Mon Aug 17 15:21:33 2015 -0400
.\"
.\" This file was written by Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2013 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 11 2016 $
.Dt EC_GROUP_NEW 3
.Os
.Sh NAME
.Nm EC_GROUP_new ,
.Nm EC_GROUP_free ,
.Nm EC_GROUP_clear_free ,
.Nm EC_GROUP_new_curve_GFp ,







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt EC_GROUP_NEW 3
.Os
.Sh NAME
.Nm EC_GROUP_new ,
.Nm EC_GROUP_free ,
.Nm EC_GROUP_clear_free ,
.Nm EC_GROUP_new_curve_GFp ,
302
303
304
305
306
307
308



















.Xr d2i_ECPKParameters 3 ,
.Xr EC_GFp_simple_method 3 ,
.Xr EC_GROUP_copy 3 ,
.Xr EC_KEY_new 3 ,
.Xr EC_POINT_add 3 ,
.Xr EC_POINT_new 3 ,
.Xr ECDSA_SIG_new 3


























>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
.Xr d2i_ECPKParameters 3 ,
.Xr EC_GFp_simple_method 3 ,
.Xr EC_GROUP_copy 3 ,
.Xr EC_KEY_new 3 ,
.Xr EC_POINT_add 3 ,
.Xr EC_POINT_new 3 ,
.Xr ECDSA_SIG_new 3
.Sh HISTORY
.Fn EC_GROUP_new ,
.Fn EC_GROUP_free ,
.Fn EC_GROUP_clear_free ,
.Fn EC_GROUP_new_curve_GFp ,
.Fn EC_GROUP_set_curve_GFp ,
and
.Fn EC_GROUP_get_curve_GFp
first appeared in OpenSSL 0.9.7 and have been available since
.Ox 3.2 .
.Pp
.Fn EC_GROUP_new_curve_GF2m ,
.Fn EC_GROUP_new_by_curve_name ,
.Fn EC_GROUP_set_curve_GF2m ,
.Fn EC_GROUP_get_curve_GF2m ,
and
.Fn EC_get_builtin_curves
first appeared in OpenSSL 0.9.8 and have been available since
.Ox 4.5 .
Changes to jni/libressl/man/EC_KEY_new.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: EC_KEY_new.3,v 1.8 2016/12/11 14:22:43 schwarze Exp $
.\"	OpenSSL d900a015 Oct 8 14:40:42 2015 +0200
.\"
.\" This file was written by Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2013, 2014 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: EC_KEY_new.3,v 1.13 2018/03/23 23:18:17 schwarze Exp $
.\"	OpenSSL d900a015 Oct 8 14:40:42 2015 +0200
.\"
.\" This file was written by Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2013, 2014 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 11 2016 $
.Dt EC_KEY_NEW 3
.Os
.Sh NAME
.Nm EC_KEY_new ,
.Nm EC_KEY_get_flags ,
.Nm EC_KEY_set_flags ,
.Nm EC_KEY_clear_flags ,







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt EC_KEY_NEW 3
.Os
.Sh NAME
.Nm EC_KEY_new ,
.Nm EC_KEY_get_flags ,
.Nm EC_KEY_set_flags ,
.Nm EC_KEY_clear_flags ,
520
521
522
523
524
525
526
527





































.Sh SEE ALSO
.Xr d2i_ECPKParameters 3 ,
.Xr EC_GFp_simple_method 3 ,
.Xr EC_GROUP_copy 3 ,
.Xr EC_GROUP_new 3 ,
.Xr EC_POINT_add 3 ,
.Xr EC_POINT_new 3 ,
.Xr ECDSA_SIG_new 3












































|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
.Sh SEE ALSO
.Xr d2i_ECPKParameters 3 ,
.Xr EC_GFp_simple_method 3 ,
.Xr EC_GROUP_copy 3 ,
.Xr EC_GROUP_new 3 ,
.Xr EC_POINT_add 3 ,
.Xr EC_POINT_new 3 ,
.Xr ECDSA_SIG_new 3 ,
.Xr EVP_PKEY_set1_EC_KEY 3
.Sh HISTORY
.Fn EC_KEY_new ,
.Fn EC_KEY_new_by_curve_name ,
.Fn EC_KEY_free ,
.Fn EC_KEY_copy ,
.Fn EC_KEY_dup ,
.Fn EC_KEY_up_ref ,
.Fn EC_KEY_get0_group ,
.Fn EC_KEY_set_group ,
.Fn EC_KEY_get0_private_key ,
.Fn EC_KEY_set_private_key ,
.Fn EC_KEY_get0_public_key ,
.Fn EC_KEY_set_public_key ,
.Fn EC_KEY_get_enc_flags ,
.Fn EC_KEY_set_enc_flags ,
.Fn EC_KEY_get_conv_form ,
.Fn EC_KEY_set_conv_form ,
.Fn EC_KEY_get_key_method_data ,
.Fn EC_KEY_insert_key_method_data ,
.Fn EC_KEY_set_asn1_flag ,
.Fn EC_KEY_precompute_mult ,
.Fn EC_KEY_generate_key ,
.Fn EC_KEY_check_key ,
.Fn EC_KEY_print ,
and
.Fn EC_KEY_print_fp
first appeared in OpenSSL 0.9.8 and have been available since
.Ox 4.5 .
.Pp
.Fn EC_KEY_get_flags ,
.Fn EC_KEY_set_flags ,
.Fn EC_KEY_clear_flags ,
and
.Fn EC_KEY_set_public_key_affine_coordinates
first appeared in OpenSSL 1.0.1 and have been available since
.Ox 5.3 .
Changes to jni/libressl/man/EC_POINT_add.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: EC_POINT_add.3,v 1.6 2016/12/11 14:22:43 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2013 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: EC_POINT_add.3,v 1.8 2018/03/23 00:09:11 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2013 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 11 2016 $
.Dt EC_POINT_ADD 3
.Os
.Sh NAME
.Nm EC_POINT_add ,
.Nm EC_POINT_dbl ,
.Nm EC_POINT_invert ,
.Nm EC_POINT_is_at_infinity ,







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt EC_POINT_ADD 3
.Os
.Sh NAME
.Nm EC_POINT_add ,
.Nm EC_POINT_dbl ,
.Nm EC_POINT_invert ,
.Nm EC_POINT_is_at_infinity ,
267
268
269
270
271
272
273



















.Sh SEE ALSO
.Xr d2i_ECPKParameters 3 ,
.Xr EC_GFp_simple_method 3 ,
.Xr EC_GROUP_copy 3 ,
.Xr EC_GROUP_new 3 ,
.Xr EC_KEY_new 3 ,
.Xr EC_POINT_new 3


























>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
.Sh SEE ALSO
.Xr d2i_ECPKParameters 3 ,
.Xr EC_GFp_simple_method 3 ,
.Xr EC_GROUP_copy 3 ,
.Xr EC_GROUP_new 3 ,
.Xr EC_KEY_new 3 ,
.Xr EC_POINT_new 3
.Sh HISTORY
.Fn EC_POINT_add ,
.Fn EC_POINT_dbl ,
.Fn EC_POINT_invert ,
.Fn EC_POINT_is_at_infinity ,
.Fn EC_POINT_is_on_curve ,
.Fn EC_POINT_cmp ,
.Fn EC_POINT_make_affine ,
.Fn EC_POINTs_make_affine ,
.Fn EC_POINTs_mul ,
.Fn EC_POINT_mul ,
and
.Fn EC_GROUP_precompute_mult
first appeared in OpenSSL 0.9.7 and have been available since
.Ox 3.2 .
.Pp
.Fn EC_GROUP_have_precompute_mult
first appeared in OpenSSL 0.9.8 and has been available since
.Ox 4.5 .
Changes to jni/libressl/man/EC_POINT_new.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: EC_POINT_new.3,v 1.6 2016/12/11 14:22:43 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2013, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: EC_POINT_new.3,v 1.8 2018/03/23 00:09:11 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2013, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 11 2016 $
.Dt EC_POINT_NEW 3
.Os
.Sh NAME
.Nm EC_POINT_new ,
.Nm EC_POINT_free ,
.Nm EC_POINT_clear_free ,
.Nm EC_POINT_copy ,







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt EC_POINT_NEW 3
.Os
.Sh NAME
.Nm EC_POINT_new ,
.Nm EC_POINT_free ,
.Nm EC_POINT_clear_free ,
.Nm EC_POINT_copy ,
466
467
468
469
470
471
472





























.Sh SEE ALSO
.Xr d2i_ECPKParameters 3 ,
.Xr EC_GFp_simple_method 3 ,
.Xr EC_GROUP_copy 3 ,
.Xr EC_GROUP_new 3 ,
.Xr EC_KEY_new 3 ,
.Xr EC_POINT_add 3




































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
.Sh SEE ALSO
.Xr d2i_ECPKParameters 3 ,
.Xr EC_GFp_simple_method 3 ,
.Xr EC_GROUP_copy 3 ,
.Xr EC_GROUP_new 3 ,
.Xr EC_KEY_new 3 ,
.Xr EC_POINT_add 3
.Sh HISTORY
.Fn EC_POINT_new ,
.Fn EC_POINT_free ,
.Fn EC_POINT_clear_free ,
.Fn EC_POINT_copy ,
.Fn EC_POINT_method_of ,
.Fn EC_POINT_set_to_infinity ,
.Fn EC_POINT_set_affine_coordinates_GFp ,
.Fn EC_POINT_get_affine_coordinates_GFp ,
.Fn EC_POINT_set_Jprojective_coordinates_GFp ,
.Fn EC_POINT_get_Jprojective_coordinates_GFp ,
.Fn EC_POINT_set_compressed_coordinates_GFp ,
.Fn EC_POINT_point2oct ,
and
.Fn EC_POINT_oct2point
first appeared in OpenSSL 0.9.7 and have been available since
.Ox 3.2 .
.Pp
.Fn EC_POINT_dup ,
.Fn EC_POINT_set_affine_coordinates_GF2m ,
.Fn EC_POINT_get_affine_coordinates_GF2m ,
.Fn EC_POINT_set_compressed_coordinates_GF2m ,
.Fn EC_POINT_point2bn ,
.Fn EC_POINT_bn2point ,
.Fn EC_POINT_point2hex ,
and
.Fn EC_POINT_hex2point
first appeared in OpenSSL 0.9.8 and have been available since
.Ox 4.5 .
Changes to jni/libressl/man/ERR_GET_LIB.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: ERR_GET_LIB.3,v 1.5 2016/12/16 08:53:30 schwarze Exp $
.\"	OpenSSL doc/man3/ERR_GET_LIB.pod 3dfda1a6 Dec 12 11:14:40 2016 -0500
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: ERR_GET_LIB.3,v 1.6 2018/03/20 22:56:38 schwarze Exp $
.\"	OpenSSL doc/man3/ERR_GET_LIB.pod 3dfda1a6 Dec 12 11:14:40 2016 -0500
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 16 2016 $
.Dt ERR_GET_LIB 3
.Os
.Sh NAME
.Nm ERR_GET_LIB ,
.Nm ERR_GET_FUNC ,
.Nm ERR_GET_REASON ,
.Nm ERR_FATAL_ERROR







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 20 2018 $
.Dt ERR_GET_LIB 3
.Os
.Sh NAME
.Nm ERR_GET_LIB ,
.Nm ERR_GET_FUNC ,
.Nm ERR_GET_REASON ,
.Nm ERR_FATAL_ERROR
115
116
117
118
119
120
121

122
123
124

returns non-zero if the error is fatal or 0 otherwise.
.Sh SEE ALSO
.Xr ERR 3 ,
.Xr ERR_get_error 3
.Sh HISTORY
.Fn ERR_GET_LIB ,
.Fn ERR_GET_FUNC ,

and
.Fn ERR_GET_REASON
are available in all versions of SSLeay and OpenSSL.








>

|
|
>
115
116
117
118
119
120
121
122
123
124
125
126
returns non-zero if the error is fatal or 0 otherwise.
.Sh SEE ALSO
.Xr ERR 3 ,
.Xr ERR_get_error 3
.Sh HISTORY
.Fn ERR_GET_LIB ,
.Fn ERR_GET_FUNC ,
.Fn ERR_GET_REASON ,
and
.Fn ERR_FATAL_ERROR
appeared in SSLeay 0.8.1b or earlier and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/ERR_clear_error.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: ERR_clear_error.3,v 1.3 2016/11/23 17:58:42 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: ERR_clear_error.3,v 1.4 2018/03/20 22:56:38 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69

.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 23 2016 $
.Dt ERR_CLEAR_ERROR 3
.Os
.Sh NAME
.Nm ERR_clear_error
.Nd clear the OpenSSL error queue
.Sh SYNOPSIS
.In openssl/err.h
.Ft void
.Fn ERR_clear_error void
.Sh DESCRIPTION
.Fn ERR_clear_error
empties the current thread's error queue.
.Sh SEE ALSO
.Xr ERR 3 ,
.Xr ERR_get_error 3
.Sh HISTORY
.Fn ERR_clear_error
is available in all versions of SSLeay and OpenSSL.








|

















|
>
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 20 2018 $
.Dt ERR_CLEAR_ERROR 3
.Os
.Sh NAME
.Nm ERR_clear_error
.Nd clear the OpenSSL error queue
.Sh SYNOPSIS
.In openssl/err.h
.Ft void
.Fn ERR_clear_error void
.Sh DESCRIPTION
.Fn ERR_clear_error
empties the current thread's error queue.
.Sh SEE ALSO
.Xr ERR 3 ,
.Xr ERR_get_error 3
.Sh HISTORY
.Fn ERR_clear_error
appeared in SSLeay 0.8.1b or earlier and has been available since
.Ox 2.4 .
Changes to jni/libressl/man/ERR_error_string.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: ERR_error_string.3,v 1.4 2016/11/23 17:55:31 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2004 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: ERR_error_string.3,v 1.6 2018/03/23 23:18:17 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2004 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 23 2016 $
.Dt ERR_ERROR_STRING 3
.Os
.Sh NAME
.Nm ERR_error_string ,
.Nm ERR_error_string_n ,
.Nm ERR_lib_error_string ,
.Nm ERR_func_error_string ,







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt ERR_ERROR_STRING 3
.Os
.Sh NAME
.Nm ERR_error_string ,
.Nm ERR_error_string_n ,
.Nm ERR_lib_error_string ,
.Nm ERR_func_error_string ,
159
160
161
162
163
164
165
166




167


168
169

.Sh SEE ALSO
.Xr ERR 3 ,
.Xr ERR_get_error 3 ,
.Xr ERR_load_crypto_strings 3 ,
.Xr ERR_print_errors 3 ,
.Xr SSL_load_error_strings 3
.Sh HISTORY
.Fn ERR_error_string




is available in all versions of SSLeay and OpenSSL.


.Fn ERR_error_string_n
was added in OpenSSL 0.9.6.








|
>
>
>
>
|
>
>

|
>
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
.Sh SEE ALSO
.Xr ERR 3 ,
.Xr ERR_get_error 3 ,
.Xr ERR_load_crypto_strings 3 ,
.Xr ERR_print_errors 3 ,
.Xr SSL_load_error_strings 3
.Sh HISTORY
.Fn ERR_error_string ,
.Fn ERR_lib_error_string ,
.Fn ERR_func_error_string ,
and
.Fn ERR_reason_error_string
appeared in SSLeay 0.8.1b or earlier and have been available since
.Ox 2.4 .
.Pp
.Fn ERR_error_string_n
first appeared in OpenSSL 0.9.6 and has been available since
.Ox 2.9 .
Changes to jni/libressl/man/ERR_get_error.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: ERR_get_error.3,v 1.4 2016/11/23 17:59:29 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2002, 2014 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: ERR_get_error.3,v 1.7 2018/03/22 21:08:22 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2002, 2014 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 23 2016 $
.Dt ERR_GET_ERROR 3
.Os
.Sh NAME
.Nm ERR_get_error ,
.Nm ERR_peek_error ,
.Nm ERR_peek_last_error ,
.Nm ERR_get_error_line ,







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt ERR_GET_ERROR 3
.Os
.Sh NAME
.Nm ERR_get_error ,
.Nm ERR_peek_error ,
.Nm ERR_peek_last_error ,
.Nm ERR_get_error_line ,
169
170
171
172
173
174
175
176
177
178
179
180



181
182
183
184
185

.Xr ERR_GET_LIB 3
.Sh HISTORY
.Fn ERR_get_error ,
.Fn ERR_peek_error ,
.Fn ERR_get_error_line ,
and
.Fn ERR_peek_error_line
are available in all versions of SSLeay and OpenSSL.
.Fn ERR_get_error_line_data
and
.Fn ERR_peek_error_line_data
were added in SSLeay 0.9.0.



.Fn ERR_peek_last_error ,
.Fn ERR_peek_last_error_line ,
and
.Fn ERR_peek_last_error_line_data
were added in OpenSSL 0.9.7.








|



|
>
>
>




|
>
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
.Xr ERR_GET_LIB 3
.Sh HISTORY
.Fn ERR_get_error ,
.Fn ERR_peek_error ,
.Fn ERR_get_error_line ,
and
.Fn ERR_peek_error_line
appeared in SSLeay 0.8.1b or earlier.
.Fn ERR_get_error_line_data
and
.Fn ERR_peek_error_line_data
first appeared in SSLeay 0.9.0.
All these functions have been available since
.Ox 2.4 .
.Pp
.Fn ERR_peek_last_error ,
.Fn ERR_peek_last_error_line ,
and
.Fn ERR_peek_last_error_line_data
first appeared in OpenSSL 0.9.7 and have been available since
.Ox 3.2 .
Changes to jni/libressl/man/ERR_load_crypto_strings.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: ERR_load_crypto_strings.3,v 1.5 2017/01/26 04:37:08 schwarze Exp $
.\"	OpenSSL a528d4f0 Oct 27 13:40:11 2015 -0400
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2017 Ingo Schwarze <schwarze@openbsd.org>
.\"
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: ERR_load_crypto_strings.3,v 1.6 2018/03/20 20:26:23 schwarze Exp $
.\"	OpenSSL a528d4f0 Oct 27 13:40:11 2015 -0400
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2017 Ingo Schwarze <schwarze@openbsd.org>
.\"
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: January 26 2017 $
.Dt ERR_LOAD_CRYPTO_STRINGS 3
.Os
.Sh NAME
.Nm ERR_load_crypto_strings ,
.Nm ERR_free_strings ,
.Nm ERR_load_BN_strings ,
.Nm SSL_load_error_strings







|







61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 20 2018 $
.Dt ERR_LOAD_CRYPTO_STRINGS 3
.Os
.Sh NAME
.Nm ERR_load_crypto_strings ,
.Nm ERR_free_strings ,
.Nm ERR_load_BN_strings ,
.Nm SSL_load_error_strings
116
117
118
119
120
121
122
123

124
125
126

127
128
129
130
131
132
133
134
.Fn ERR_free_strings
frees all previously loaded error strings.
.Sh SEE ALSO
.Xr ERR 3 ,
.Xr ERR_error_string 3
.Sh HISTORY
.Fn ERR_load_crypto_strings ,
.Fn SSL_load_error_strings ,

and
.Fn ERR_free_strings
are available in all versions of SSLeay and OpenSSL.

.Sh BUGS
Even though the error strings are already compiled into the object
code of the library as static strings, these functions store them
again using dynamically allocated memory on the heap.
That may fail if insufficient memory is available,
but these functions do not report such errors.
Instead, they fail silently, possibly having registered none or only
a part of the strings requested.







|
>

|
|
>








116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
.Fn ERR_free_strings
frees all previously loaded error strings.
.Sh SEE ALSO
.Xr ERR 3 ,
.Xr ERR_error_string 3
.Sh HISTORY
.Fn ERR_load_crypto_strings ,
.Fn ERR_free_strings ,
.Fn ERR_load_BN_strings ,
and
.Fn SSL_load_error_strings
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Sh BUGS
Even though the error strings are already compiled into the object
code of the library as static strings, these functions store them
again using dynamically allocated memory on the heap.
That may fail if insufficient memory is available,
but these functions do not report such errors.
Instead, they fail silently, possibly having registered none or only
a part of the strings requested.
Changes to jni/libressl/man/ERR_load_strings.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: ERR_load_strings.3,v 1.4 2016/11/23 17:59:29 schwarze Exp $
.\"	OpenSSL 05ea606a May 20 20:52:46 2016 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: ERR_load_strings.3,v 1.6 2018/03/21 06:44:51 schwarze Exp $
.\"	OpenSSL 05ea606a May 20 20:52:46 2016 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 23 2016 $
.Dt ERR_LOAD_STRINGS 3
.Os
.Sh NAME
.Nm ERR_load_strings ,
.Nm ERR_PACK ,
.Nm ERR_get_next_error_library
.Nd load arbitrary OpenSSL error strings







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt ERR_LOAD_STRINGS 3
.Os
.Sh NAME
.Nm ERR_load_strings ,
.Nm ERR_PACK ,
.Nm ERR_get_next_error_library
.Nd load arbitrary OpenSSL error strings
103
104
105
106
107
108
109
110
111
112
113
114
115


.Fn ERR_PACK
returns the error code.
.Fn ERR_get_next_error_library
returns a new library number.
.Sh SEE ALSO
.Xr ERR 3
.Sh HISTORY
.Fn ERR_load_error_strings
and
.Fn ERR_PACK
are available in all versions of SSLeay and OpenSSL.
.Fn ERR_get_next_error_library
was added in SSLeay 0.9.0.









|


|

|
>
>
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
.Fn ERR_PACK
returns the error code.
.Fn ERR_get_next_error_library
returns a new library number.
.Sh SEE ALSO
.Xr ERR 3
.Sh HISTORY
.Fn ERR_load_strings
and
.Fn ERR_PACK
appeared in SSLeay 0.8.1b or earlier.
.Fn ERR_get_next_error_library
first appeared in SSLeay 0.9.0.
These functions have been available since
.Ox 2.4 .
Changes to jni/libressl/man/ERR_print_errors.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: ERR_print_errors.3,v 1.4 2016/11/23 17:56:36 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>,
.\" with additions by Rich Salz <rsalz@openssl.org>.
.\" Copyright (c) 2000, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: ERR_print_errors.3,v 1.6 2018/03/22 21:08:22 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>,
.\" with additions by Rich Salz <rsalz@openssl.org>.
.\" Copyright (c) 2000, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 23 2016 $
.Dt ERR_PRINT_ERRORS 3
.Os
.Sh NAME
.Nm ERR_print_errors ,
.Nm ERR_print_errors_fp ,
.Nm ERR_print_errors_cb
.Nd print OpenSSL error messages







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt ERR_PRINT_ERRORS 3
.Os
.Sh NAME
.Nm ERR_print_errors ,
.Nm ERR_print_errors_fp ,
.Nm ERR_print_errors_cb
.Nd print OpenSSL error messages
114
115
116
117
118
119
120




121

.Xr ERR_get_error 3 ,
.Xr ERR_load_crypto_strings 3 ,
.Xr SSL_load_error_strings 3
.Sh HISTORY
.Fn ERR_print_errors
and
.Fn ERR_print_errors_fp




are available in all versions of SSLeay and OpenSSL.








>
>
>
>
|
>
114
115
116
117
118
119
120
121
122
123
124
125
126
.Xr ERR_get_error 3 ,
.Xr ERR_load_crypto_strings 3 ,
.Xr SSL_load_error_strings 3
.Sh HISTORY
.Fn ERR_print_errors
and
.Fn ERR_print_errors_fp
appeared in SSLeay 0.8.1b or earlier and have been available since
.Ox 2.4 .
.Pp
.Fn ERR_print_errors_cb
first appeared in OpenSSL 0.9.7 and has been available since
.Ox 3.2 .
Changes to jni/libressl/man/ERR_put_error.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: ERR_put_error.3,v 1.5 2017/02/20 23:21:19 beck Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: ERR_put_error.3,v 1.8 2018/03/23 05:48:56 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: February 20 2017 $
.Dt ERR_PUT_ERROR 3
.Os
.Sh NAME
.Nm ERR_put_error ,
.Nm ERR_add_error_data ,
.Nm ERR_add_error_vdata
.Nd record an OpenSSL error







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt ERR_PUT_ERROR 3
.Os
.Sh NAME
.Nm ERR_put_error ,
.Nm ERR_add_error_data ,
.Nm ERR_add_error_vdata
.Nd record an OpenSSL error
143
144
145
146
147
148
149
150
151
152






macro.
.Sh SEE ALSO
.Xr ERR 3 ,
.Xr ERR_asprintf_error_data 3 ,
.Xr ERR_load_strings 3
.Sh HISTORY
.Fn ERR_put_error
is available in all versions of SSLeay and OpenSSL.
.Fn ERR_add_error_data
was added in SSLeay 0.9.0.













|

|
>
>
>
>
>
>
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
macro.
.Sh SEE ALSO
.Xr ERR 3 ,
.Xr ERR_asprintf_error_data 3 ,
.Xr ERR_load_strings 3
.Sh HISTORY
.Fn ERR_put_error
appeared in SSLeay 0.8.1b or earlier.
.Fn ERR_add_error_data
first appeared in SSLeay 0.9.0.
These functions have been available since
.Ox 2.4 .
.Pp
.Fn ERR_add_error_vdata
first appeared in OpenSSL 1.0.1 and has been available since
.Ox 5.3 .
Changes to jni/libressl/man/ERR_remove_state.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: ERR_remove_state.3,v 1.3 2016/11/23 17:59:29 schwarze Exp $
.\"	OpenSSL 9b86974e Aug 17 15:21:33 2015 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org> and
.\" Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2000, 2013 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: ERR_remove_state.3,v 1.5 2018/03/23 04:34:23 schwarze Exp $
.\"	OpenSSL 9b86974e Aug 17 15:21:33 2015 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org> and
.\" Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2000, 2013 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 23 2016 $
.Dt ERR_REMOVE_STATE 3
.Os
.Sh NAME
.Nm ERR_remove_thread_state ,
.Nm ERR_remove_state
.Nd free a thread's OpenSSL error queue
.Sh SYNOPSIS







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt ERR_REMOVE_STATE 3
.Os
.Sh NAME
.Nm ERR_remove_thread_state ,
.Nm ERR_remove_state
.Nd free a thread's OpenSSL error queue
.Sh SYNOPSIS
97
98
99
100
101
102
103
104


105


106
107
108
109
and
.Fn ERR_remove_state
return no value.
.Sh SEE ALSO
.Xr ERR 3
.Sh HISTORY
.Fn ERR_remove_state
is available in all versions of SSLeay and OpenSSL.


It was deprecated in OpenSSL 1.0.0 when


.Fn ERR_remove_thread_state
was introduced and thread IDs were introduced to identify threads
instead of
.Vt unsigned long .







|
>
>
|
>
>




97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
and
.Fn ERR_remove_state
return no value.
.Sh SEE ALSO
.Xr ERR 3
.Sh HISTORY
.Fn ERR_remove_state
appeared in SSLeay 0.8.1b or earlier and has been available since
.Ox 2.4 .
.Pp
It was deprecated in OpenSSL 1.0.0 and
.Ox 4.9
when
.Fn ERR_remove_thread_state
was introduced and thread IDs were introduced to identify threads
instead of
.Vt unsigned long .
Changes to jni/libressl/man/ERR_set_mark.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: ERR_set_mark.3,v 1.3 2016/11/23 17:59:29 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Richard Levitte <levitte@openssl.org>.
.\" Copyright (c) 2003 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: ERR_set_mark.3,v 1.4 2018/03/23 00:09:11 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Richard Levitte <levitte@openssl.org>.
.\" Copyright (c) 2003 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 23 2016 $
.Dt ERR_SET_MARK 3
.Os
.Sh NAME
.Nm ERR_set_mark ,
.Nm ERR_pop_to_mark
.Nd set marks and pop OpenSSL errors until mark
.Sh SYNOPSIS







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt ERR_SET_MARK 3
.Os
.Sh NAME
.Nm ERR_set_mark ,
.Nm ERR_pop_to_mark
.Nd set marks and pop OpenSSL errors until mark
.Sh SYNOPSIS
78
79
80
81
82
83
84
85

the stack became empty, otherwise 1.
.Sh SEE ALSO
.Xr ERR 3
.Sh HISTORY
.Fn ERR_set_mark
and
.Fn ERR_pop_to_mark
were added in OpenSSL 0.9.8.








|
>
78
79
80
81
82
83
84
85
86
the stack became empty, otherwise 1.
.Sh SEE ALSO
.Xr ERR 3
.Sh HISTORY
.Fn ERR_set_mark
and
.Fn ERR_pop_to_mark
first appeared in OpenSSL 0.9.8 and have been available since
.Ox 4.5 .
Changes to jni/libressl/man/ESS_SIGNING_CERT_new.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: ESS_SIGNING_CERT_new.3,v 1.3 2016/12/25 22:15:10 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 25 2016 $
.Dt ESS_SIGNING_CERT_NEW 3
.Os
.Sh NAME
.Nm ESS_SIGNING_CERT_new ,
.Nm ESS_SIGNING_CERT_free ,
.Nm ESS_CERT_ID_new ,
.Nm ESS_CERT_ID_free ,
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: ESS_SIGNING_CERT_new.3,v 1.4 2018/03/23 04:34:23 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt ESS_SIGNING_CERT_NEW 3
.Os
.Sh NAME
.Nm ESS_SIGNING_CERT_new ,
.Nm ESS_SIGNING_CERT_free ,
.Nm ESS_CERT_ID_new ,
.Nm ESS_CERT_ID_free ,
105
106
107
108
109
110
111




Enhanced Security Services (ESS) Update:
Adding CertID Algorithm Agility.
But the current implementation only supports the
Signing Certificate Attribute Definition Version 1
according to RFC 2634, not the
Signing Certificate Attribute Definition Version 2
according to RFC 5035.











>
>
>
>
105
106
107
108
109
110
111
112
113
114
115
Enhanced Security Services (ESS) Update:
Adding CertID Algorithm Agility.
But the current implementation only supports the
Signing Certificate Attribute Definition Version 1
according to RFC 2634, not the
Signing Certificate Attribute Definition Version 2
according to RFC 5035.
.Sh HISTORY
These functions first appeared in OpenSSL 1.0.0
and have been available since
.Ox 4.9 .
Changes to jni/libressl/man/EVP_BytesToKey.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: EVP_BytesToKey.3,v 1.5 2016/11/24 00:20:36 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2001, 2011, 2013, 2014, 2015 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: EVP_BytesToKey.3,v 1.6 2018/03/20 23:56:07 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2001, 2011, 2013, 2014, 2015 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 24 2016 $
.Dt EVP_BYTESTOKEY 3
.Os
.Sh NAME
.Nm EVP_BytesToKey
.Nd password based encryption routine
.Sh SYNOPSIS
.In openssl/evp.h







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 20 2018 $
.Dt EVP_BYTESTOKEY 3
.Os
.Sh NAME
.Nm EVP_BytesToKey
.Nd password based encryption routine
.Sh SYNOPSIS
.In openssl/evp.h
134
135
136
137
138
139
140




.Fn EVP_BytesToKey
returns the size of the derived key in bytes or 0 on error.
.Sh SEE ALSO
.Xr evp 3 ,
.Xr EVP_EncryptInit 3 ,
.Xr PKCS5_PBKDF2_HMAC 3 ,
.Xr RAND_bytes 3











>
>
>
>
134
135
136
137
138
139
140
141
142
143
144
.Fn EVP_BytesToKey
returns the size of the derived key in bytes or 0 on error.
.Sh SEE ALSO
.Xr evp 3 ,
.Xr EVP_EncryptInit 3 ,
.Xr PKCS5_PBKDF2_HMAC 3 ,
.Xr RAND_bytes 3
.Sh HISTORY
.Fn EVP_BytesToKey
appeared in SSLeay 0.8.1b or earlier and has been available since
.Ox 2.4 .
Changes to jni/libressl/man/EVP_DigestInit.3.
1
2
3

4
5

6
7
8
9
10
11
12
.\"	$OpenBSD: EVP_DigestInit.3,v 1.6 2017/03/25 17:54:04 schwarze Exp $
.\"	OpenSSL d2a56999 Sep 24 13:37:16 2016 +0200
.\"	OpenSSL 7f572e95 Dec 2 13:57:04 2015 +0000

.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.

.\" Copyright (c) 2000-2004, 2009, 2012-2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
|
<
|
>

|
>







1

2
3
4
5
6
7
8
9
10
11
12
13
.\" $OpenBSD: EVP_DigestInit.3,v 1.14 2018/03/23 23:18:17 schwarze Exp $

.\" full merge up to: OpenSSL 7f572e95 Dec 2 13:57:04 2015 +0000
.\" selective merge up to: OpenSSL a95d7574 Jul 2 12:16:38 2017 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>
.\" and Richard Levitte <levitte@openssl.org>.
.\" Copyright (c) 2000-2004, 2009, 2012-2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
46
47
48
49
50
51
52
53
54
55
56



57
58


59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95










96
97
98
99
100
101




102




103
104
105
106
107
108
109
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 25 2017 $
.Dt EVP_DIGESTINIT 3
.Os
.Sh NAME



.Nm EVP_MD_CTX_init ,
.Nm EVP_MD_CTX_create ,


.Nm EVP_MD_CTX_ctrl ,
.Nm EVP_DigestInit_ex ,
.Nm EVP_DigestUpdate ,
.Nm EVP_DigestFinal_ex ,
.Nm EVP_MD_CTX_cleanup ,
.Nm EVP_MD_CTX_destroy ,
.Nm EVP_MD_CTX_copy_ex ,
.Nm EVP_DigestInit ,
.Nm EVP_DigestFinal ,
.Nm EVP_MD_CTX_copy ,
.Nm EVP_MAX_MD_SIZE ,
.Nm EVP_MD_type ,
.Nm EVP_MD_pkey_type ,
.Nm EVP_MD_size ,
.Nm EVP_MD_block_size ,
.Nm EVP_MD_CTX_md ,
.Nm EVP_MD_CTX_size ,
.Nm EVP_MD_CTX_block_size ,
.Nm EVP_MD_CTX_type ,
.Nm EVP_md_null ,
.Nm EVP_md2 ,
.Nm EVP_md5 ,
.Nm EVP_md5_sha1 ,
.Nm EVP_sha1 ,
.Nm EVP_sha224 ,
.Nm EVP_sha256 ,
.Nm EVP_sha384 ,
.Nm EVP_sha512 ,
.Nm EVP_dss ,
.Nm EVP_dss1 ,
.Nm EVP_ripemd160 ,
.Nm EVP_get_digestbyname ,
.Nm EVP_get_digestbynid ,
.Nm EVP_get_digestbyobj
.Nd EVP digest routines
.Sh SYNOPSIS
.In openssl/evp.h










.Ft void
.Fo EVP_MD_CTX_init
.Fa "EVP_MD_CTX *ctx"
.Fc
.Ft EVP_MD_CTX *
.Fn EVP_MD_CTX_create void




.Ft void




.Fo EVP_MD_CTX_ctrl
.Fa "EVP_MD_CTX *ctx"
.Fa "int cmd"
.Fa "int p1"
.Fa "void* p2"
.Fc
.Ft int







|



>
>
>


>
>




<
<














<
















>
>
>
>
>
>
>
>
>
>






>
>
>
>

>
>
>
>







47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68


69
70
71
72
73
74
75
76
77
78
79
80
81
82

83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt EVP_DIGESTINIT 3
.Os
.Sh NAME
.Nm EVP_MD_CTX_new ,
.Nm EVP_MD_CTX_reset ,
.Nm EVP_MD_CTX_free ,
.Nm EVP_MD_CTX_init ,
.Nm EVP_MD_CTX_create ,
.Nm EVP_MD_CTX_cleanup ,
.Nm EVP_MD_CTX_destroy ,
.Nm EVP_MD_CTX_ctrl ,
.Nm EVP_DigestInit_ex ,
.Nm EVP_DigestUpdate ,
.Nm EVP_DigestFinal_ex ,


.Nm EVP_MD_CTX_copy_ex ,
.Nm EVP_DigestInit ,
.Nm EVP_DigestFinal ,
.Nm EVP_MD_CTX_copy ,
.Nm EVP_MAX_MD_SIZE ,
.Nm EVP_MD_type ,
.Nm EVP_MD_pkey_type ,
.Nm EVP_MD_size ,
.Nm EVP_MD_block_size ,
.Nm EVP_MD_CTX_md ,
.Nm EVP_MD_CTX_size ,
.Nm EVP_MD_CTX_block_size ,
.Nm EVP_MD_CTX_type ,
.Nm EVP_md_null ,

.Nm EVP_md5 ,
.Nm EVP_md5_sha1 ,
.Nm EVP_sha1 ,
.Nm EVP_sha224 ,
.Nm EVP_sha256 ,
.Nm EVP_sha384 ,
.Nm EVP_sha512 ,
.Nm EVP_dss ,
.Nm EVP_dss1 ,
.Nm EVP_ripemd160 ,
.Nm EVP_get_digestbyname ,
.Nm EVP_get_digestbynid ,
.Nm EVP_get_digestbyobj
.Nd EVP digest routines
.Sh SYNOPSIS
.In openssl/evp.h
.Ft EVP_MD_CTX *
.Fn EVP_MD_CTX_new void
.Ft int
.Fo EVP_MD_CTX_reset
.Fa "EVP_MD_CTX *ctx"
.Fc
.Ft void
.Fo EVP_MD_CTX_free
.Fa "EVP_MD_CTX *ctx"
.Fc
.Ft void
.Fo EVP_MD_CTX_init
.Fa "EVP_MD_CTX *ctx"
.Fc
.Ft EVP_MD_CTX *
.Fn EVP_MD_CTX_create void
.Ft int
.Fo EVP_MD_CTX_cleanup
.Fa "EVP_MD_CTX *ctx"
.Fc
.Ft void
.Fo EVP_MD_CTX_destroy
.Fa "EVP_MD_CTX *ctx"
.Fc
.Ft int
.Fo EVP_MD_CTX_ctrl
.Fa "EVP_MD_CTX *ctx"
.Fa "int cmd"
.Fa "int p1"
.Fa "void* p2"
.Fc
.Ft int
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
.Fc
.Ft int
.Fo EVP_DigestFinal_ex
.Fa "EVP_MD_CTX *ctx"
.Fa "unsigned char *md"
.Fa "unsigned int *s"
.Fc
.Ft int
.Fo EVP_MD_CTX_cleanup
.Fa "EVP_MD_CTX *ctx"
.Fc
.Ft void
.Fo EVP_MD_CTX_destroy
.Fa "EVP_MD_CTX *ctx"
.Fc
.Ft int
.Fo EVP_MD_CTX_copy_ex
.Fa "EVP_MD_CTX *out"
.Fa "const EVP_MD_CTX *in"
.Fc
.Ft int
.Fo EVP_DigestInit







<
<
<
<
<
<
<
<







141
142
143
144
145
146
147








148
149
150
151
152
153
154
.Fc
.Ft int
.Fo EVP_DigestFinal_ex
.Fa "EVP_MD_CTX *ctx"
.Fa "unsigned char *md"
.Fa "unsigned int *s"
.Fc








.Ft int
.Fo EVP_MD_CTX_copy_ex
.Fa "EVP_MD_CTX *out"
.Fa "const EVP_MD_CTX *in"
.Fc
.Ft int
.Fo EVP_DigestInit
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
.Ft int
.Fo EVP_MD_CTX_type
.Fa "const EVP_MD *ctx"
.Fc
.Ft const EVP_MD *
.Fn EVP_md_null void
.Ft const EVP_MD *
.Fn EVP_md2 void
.Ft const EVP_MD *
.Fn EVP_md5 void
.Ft const EVP_MD *
.Fn EVP_md5_sha1 void
.Ft const EVP_MD *
.Fn EVP_sha1 void
.Ft const EVP_MD *
.Fn EVP_sha224 void







<
<







198
199
200
201
202
203
204


205
206
207
208
209
210
211
.Ft int
.Fo EVP_MD_CTX_type
.Fa "const EVP_MD *ctx"
.Fc
.Ft const EVP_MD *
.Fn EVP_md_null void
.Ft const EVP_MD *


.Fn EVP_md5 void
.Ft const EVP_MD *
.Fn EVP_md5_sha1 void
.Ft const EVP_MD *
.Fn EVP_sha1 void
.Ft const EVP_MD *
.Fn EVP_sha224 void
219
220
221
222
223
224
225
226

227
228
229



230





231
232







233













234
235
236
237
238
239
240
241
242
243
244
245
246
247
248

249
250
251
252
253
254
255
256
257
258





259
260
261
262
263
264
265
.Fa "int type"
.Fc
.Ft const EVP_MD *
.Fo EVP_get_digestbyobj
.Fa "const ASN1_OBJECT *o"
.Fc
.Sh DESCRIPTION
The EVP digest routines are a high level interface to message digests.

.Pp
.Fn EVP_MD_CTX_init
initializes the digest context



.Fa ctx .





.Pp
.Fn EVP_MD_CTX_create







allocates, initializes, and returns a digest context.













.Pp
.Fn EVP_MD_CTX_ctrl
performs digest-specific control actions on the context
.Fa ctx .
.Pp
.Fn EVP_DigestInit_ex
sets up digest context
.Fa ctx
to use a digest
.Fa type
from
.Vt ENGINE
.Fa impl .
.Fa ctx
must be initialized before calling this function.

.Fa type
will typically be supplied by a function such as
.Fn EVP_sha1 .
If
.Fa impl
is
.Dv NULL ,
then the default implementation of digest
.Fa type
is used.





.Pp
.Fn EVP_DigestUpdate
hashes
.Fa cnt
bytes of data at
.Fa d
into the digest context







|
>

|
|
>
>
>
|
>
>
>
>
>

|
>
>
>
>
>
>
>
|
>
>
>
>
>
>
>
>
>
>
>
>
>






|






<
<
>










>
>
>
>
>







230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286


287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
.Fa "int type"
.Fc
.Ft const EVP_MD *
.Fo EVP_get_digestbyobj
.Fa "const ASN1_OBJECT *o"
.Fc
.Sh DESCRIPTION
The EVP digest routines are a high level interface to message digests
and should be used instead of the cipher-specific functions.
.Pp
.Fn EVP_MD_CTX_new
allocates a new, empty digest context.
.Pp
.Fn EVP_MD_CTX_reset
cleans up
.Fa ctx
and resets it to the state it had after
.Fn EVP_MD_CTX_new ,
such that it can be reused.
It is also suitable for digest contexts on the stack that were
used and are no longer needed.
.Pp
.Fn EVP_MD_CTX_free
cleans up
.Fa ctx
and frees the space allocated to it.
.Pp
.Fn EVP_MD_CTX_init
is a deprecated function to clear a digest context on the stack
before use.
Do not use it on a digest context returned from
.Fn EVP_MD_CTX_new
or one one that was already used.
.Pp
.Fn EVP_MD_CTX_create ,
.Fn EVP_MD_CTX_cleanup ,
and
.Fn EVP_MD_CTX_destroy
are deprecated aliases for
.Fn EVP_MD_CTX_new ,
.Fn EVP_MD_CTX_reset ,
and
.Fn EVP_MD_CTX_free ,
respectively.
.Pp
.Fn EVP_MD_CTX_ctrl
performs digest-specific control actions on the context
.Fa ctx .
.Pp
.Fn EVP_DigestInit_ex
sets up the digest context
.Fa ctx
to use a digest
.Fa type
from
.Vt ENGINE
.Fa impl .


The
.Fa type
will typically be supplied by a function such as
.Fn EVP_sha1 .
If
.Fa impl
is
.Dv NULL ,
then the default implementation of digest
.Fa type
is used.
If
.Fa ctx
points to an unused object on the stack, it must be initialized with
.Fn EVP_MD_CTX_init
before calling this function.
.Pp
.Fn EVP_DigestUpdate
hashes
.Fa cnt
bytes of data at
.Fa d
into the digest context
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312

313


314
315
316
317
318
319
320
321
322


323
324
325
326
327
328
329


330
331
332
333
334


335
336
337
338
339
340
341
342
343
.Fn EVP_DigestFinal_ex ,
no additional calls to
.Fn EVP_DigestUpdate
can be made, but
.Fn EVP_DigestInit_ex
can be called to initialize a new digest operation.
.Pp
.Fn EVP_MD_CTX_cleanup
cleans up the digest context
.Fa ctx .
It should be called after a digest context is no longer needed.
.Pp
.Fn EVP_MD_CTX_destroy
cleans up the digest context
.Fa ctx
and frees up the space allocated to it.
It should be called only on a context created using
.Fn EVP_MD_CTX_create .
.Pp
.Fn EVP_MD_CTX_copy_ex
can be used to copy the message digest state from
.Fa in
to
.Fa out .
This is useful if large amounts of data are to be hashed which only
differ in the last few bytes.

.Fa out


must be initialized before calling this function.
.Pp
.Fn EVP_DigestInit
behaves in the same way as
.Fn EVP_DigestInit_ex
except the passed context
.Fa ctx
does not have to be initialized, and it always uses the default digest
implementation.


.Pp
.Fn EVP_DigestFinal
is similar to
.Fn EVP_DigestFinal_ex
except the digest context
.Fa ctx
is automatically cleaned up.


.Pp
.Fn EVP_MD_CTX_copy
is similar to
.Fn EVP_MD_CTX_copy_ex
except the destination


.Fa out
does not have to be initialized.
.Pp
.Fn EVP_MD_size
and
.Fn EVP_MD_CTX_size
return the size of the message digest when passed an
.Vt EVP_MD
or an







<
<
<
<
<
<
<
<
<
<
<
<







>

>
>
|


|

<
<
|
|
>
>


|

|

|
>
>


|

|
>
>
|
<







331
332
333
334
335
336
337












338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353


354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374

375
376
377
378
379
380
381
.Fn EVP_DigestFinal_ex ,
no additional calls to
.Fn EVP_DigestUpdate
can be made, but
.Fn EVP_DigestInit_ex
can be called to initialize a new digest operation.
.Pp












.Fn EVP_MD_CTX_copy_ex
can be used to copy the message digest state from
.Fa in
to
.Fa out .
This is useful if large amounts of data are to be hashed which only
differ in the last few bytes.
If
.Fa out
points to an unused object on the stack, it must be initialized with
.Fn EVP_MD_CTX_init
before calling this function.
.Pp
.Fn EVP_DigestInit
is a deprecated function behaving like
.Fn EVP_DigestInit_ex


except that it always uses the default digest implementation
and that it requires
.Fn EVP_MD_CTX_reset
before it can be used on a context that was already used.
.Pp
.Fn EVP_DigestFinal
is a deprecated function behaving like
.Fn EVP_DigestFinal_ex
except that the digest context
.Fa ctx
is automatically cleaned up after use by calling
.Fn EVP_MD_CTX_reset
internally.
.Pp
.Fn EVP_MD_CTX_copy
is a deprecated function behaving like
.Fn EVP_MD_CTX_copy_ex
except that it requires
.Fn EVP_MD_CTX_reset
before a context that was already used can be passed as
.Fa out .

.Pp
.Fn EVP_MD_size
and
.Fn EVP_MD_CTX_size
return the size of the message digest when passed an
.Vt EVP_MD
or an
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
structure.
For example
.Fn EVP_MD_type EVP_sha1()
returns
.Dv NID_sha1 .
This function is normally used when setting ASN.1 OIDs.
.Pp
.Fn EVP_MD_CTX_md
returns the
.Vt EVP_MD
structure corresponding to the passed
.Vt EVP_MD_CTX .
.Pp
.Fn EVP_MD_pkey_type
returns the NID of the public key signing algorithm associated with this
digest.
For example
.Fn EVP_sha1
is associated with RSA so this will return
.Dv NID_sha1WithRSAEncryption .
Since digests and signature algorithms are no longer linked this
function is only retained for compatibility reasons.
.Pp
.Fn EVP_md2 ,
.Fn EVP_md5 ,
.Fn EVP_sha1 ,
.Fn EVP_sha224 ,
.Fn EVP_sha256 ,
.Fn EVP_sha384 ,
.Fn EVP_sha512 ,
and
.Fn EVP_ripemd160
return
.Vt EVP_MD
structures for the MD2, MD5, SHA1, SHA224, SHA256, SHA384, SHA512 and
RIPEMD160 digest algorithms respectively.
.Pp
.Fn EVP_md5_sha1
returns an
.Vt EVP_MD
structure that provides concatenated MD5 and SHA1 message digests.
.Pp







<
<
<
<
<
<










<










|







400
401
402
403
404
405
406






407
408
409
410
411
412
413
414
415
416

417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
structure.
For example
.Fn EVP_MD_type EVP_sha1()
returns
.Dv NID_sha1 .
This function is normally used when setting ASN.1 OIDs.
.Pp






.Fn EVP_MD_pkey_type
returns the NID of the public key signing algorithm associated with this
digest.
For example
.Fn EVP_sha1
is associated with RSA so this will return
.Dv NID_sha1WithRSAEncryption .
Since digests and signature algorithms are no longer linked this
function is only retained for compatibility reasons.
.Pp

.Fn EVP_md5 ,
.Fn EVP_sha1 ,
.Fn EVP_sha224 ,
.Fn EVP_sha256 ,
.Fn EVP_sha384 ,
.Fn EVP_sha512 ,
and
.Fn EVP_ripemd160
return
.Vt EVP_MD
structures for the MD5, SHA1, SHA224, SHA256, SHA384, SHA512 and
RIPEMD160 digest algorithms respectively.
.Pp
.Fn EVP_md5_sha1
returns an
.Vt EVP_MD
structure that provides concatenated MD5 and SHA1 message digests.
.Pp
461
462
463
464
465
466
467
468
469
470
471
472
473
474

475

476

477

478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493



494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513











514
515
516
517
518
519
520
521
.Fn EVP_DigestFinal_ex ,
and
.Fn EVP_MD_CTX_copy_ex
because they can efficiently reuse a digest context instead of
initializing and cleaning it up on each call and allow non-default
implementations of digests to be specified.
.Pp
In OpenSSL 0.9.7 and later if digest contexts are not cleaned up after
use memory leaks will occur.
.Pp
Stack allocation of
.Vt EVP_MD_CTX
structures is common, for example:
.Bd -literal -offset indent

EVP_MD_CTX mctx;

EVP_MD_CTX_init(&mctx);

.Ed

.Pp
This will cause binary compatibility issues if the size of
.Vt EVP_MD_CTX
structure changes (this will only happen with a major release of OpenSSL).
Applications wishing to avoid this should use
.Fn EVP_MD_CTX_create
instead:
.Bd -literal -offset indent
EVP_MD_CTX *mctx;
mctx = EVP_MD_CTX_create();
.Ed
.Sh RETURN VALUES
.Fn EVP_MD_CTX_ctrl ,
.Fn EVP_DigestInit_ex ,
.Fn EVP_DigestUpdate ,
.Fn EVP_DigestFinal_ex ,



and
.Fn EVP_MD_CTX_copy_ex
return 1 for success or 0 for failure.
.Pp
.Fn EVP_MD_type ,
.Fn EVP_MD_pkey_type ,
and
.Fn EVP_MD_type
return the NID of the corresponding OBJECT IDENTIFIER or
.Dv NID_undef
if none exists.
.Pp
.Fn EVP_MD_size ,
.Fn EVP_MD_block_size ,
.Fn EVP_MD_CTX_size ,
and
.Fn EVP_MD_CTX_block_size
return the digest or block size in bytes.
.Pp
.Fn EVP_md_null ,











.Fn EVP_md2 ,
.Fn EVP_md5 ,
.Fn EVP_md5_sha1 ,
.Fn EVP_sha1 ,
.Fn EVP_dss ,
.Fn EVP_dss1 ,
and
.Fn EVP_ripemd160







|
<
|
<
|
<
<
>
|
>
|
>
|
>

<
<
<
<
|
|
<
|
|
|
<




>
>
>

|





|











|
>
>
>
>
>
>
>
>
>
>
>
|







492
493
494
495
496
497
498
499

500

501


502
503
504
505
506
507
508
509




510
511

512
513
514

515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
.Fn EVP_DigestFinal_ex ,
and
.Fn EVP_MD_CTX_copy_ex
because they can efficiently reuse a digest context instead of
initializing and cleaning it up on each call and allow non-default
implementations of digests to be specified.
.Pp
If digest contexts are not cleaned up after use, memory leaks will occur.

.Sh RETURN VALUES

.Fn EVP_MD_CTX_new


and
.Fn EVP_MD_CTX_create
return the new
.Vt EVP_MD_CTX
object or
.Dv NULL
for failure.
.Pp




.Fn EVP_MD_CTX_reset
and

.Fn EVP_MD_CTX_cleanup
always return 1.
.Pp

.Fn EVP_MD_CTX_ctrl ,
.Fn EVP_DigestInit_ex ,
.Fn EVP_DigestUpdate ,
.Fn EVP_DigestFinal_ex ,
.Fn EVP_MD_CTX_copy_ex ,
.Fn EVP_DigestInit ,
.Fn EVP_DigestFinal ,
and
.Fn EVP_MD_CTX_copy
return 1 for success or 0 for failure.
.Pp
.Fn EVP_MD_type ,
.Fn EVP_MD_pkey_type ,
and
.Fn EVP_MD_CTX_type
return the NID of the corresponding OBJECT IDENTIFIER or
.Dv NID_undef
if none exists.
.Pp
.Fn EVP_MD_size ,
.Fn EVP_MD_block_size ,
.Fn EVP_MD_CTX_size ,
and
.Fn EVP_MD_CTX_block_size
return the digest or block size in bytes.
.Pp
.Fn EVP_MD_CTX_md
returns the
.Vt EVP_MD
object used by
.Fa ctx ,
or
.Dv NULL
if
.Fa ctx
is
.Dv NULL .
.Pp
.Fn EVP_md_null ,
.Fn EVP_md5 ,
.Fn EVP_md5_sha1 ,
.Fn EVP_sha1 ,
.Fn EVP_dss ,
.Fn EVP_dss1 ,
and
.Fn EVP_ripemd160
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575


576
577
578
579
580
581
582
583
584
585
586

587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602


603








604


















605
606
607





















608
609
610
611
612
613
614
615
616
617

	md = EVP_get_digestbyname(argv[1]);
	if (md == NULL) {
		printf("Unknown message digest %s\en", argv[1]);
		exit(1);
	}

	mdctx = EVP_MD_CTX_create();
	EVP_DigestInit_ex(mdctx, md, NULL);
	EVP_DigestUpdate(mdctx, mess1, strlen(mess1));
	EVP_DigestUpdate(mdctx, mess2, strlen(mess2));
	EVP_DigestFinal_ex(mdctx, md_value, &md_len);
	EVP_MD_CTX_destroy(mdctx);

	printf("Digest is: ");
	for(i = 0; i < md_len; i++)
		printf("%02x", md_value[i]);
	printf("\en");


}
.Ed
.Sh SEE ALSO
.Xr evp 3
.Sh HISTORY
.Fn EVP_DigestInit ,
.Fn EVP_DigestUpdate ,
and
.Fn EVP_DigestFinal
are available in all versions of SSLeay and OpenSSL.
.Pp

.Fn EVP_MD_CTX_init ,
.Fn EVP_MD_CTX_create ,
.Fn EVP_MD_CTX_copy_ex ,
.Fn EVP_MD_CTX_cleanup ,
.Fn EVP_MD_CTX_destroy ,
.Fn EVP_DigestInit_ex ,
and
.Fn EVP_DigestFinal_ex
were added in OpenSSL 0.9.7.
.Pp
.Fn EVP_md_null ,
.Fn EVP_md2 ,
.Fn EVP_md5 ,
.Fn EVP_sha1 ,
.Fn EVP_dss ,
.Fn EVP_dss1 ,


and








.Fn EVP_ripemd160


















were changed to return truly const
.Vt EVP_MD
pointers in OpenSSL 0.9.7.





















.Pp
The link between digests and signing algorithms was fixed in OpenSSL 1.0
and later, so now
.Fn EVP_sha1
can be used with RSA and DSA; there is no need to use
.Fn EVP_dss1
any more.
.Pp
OpenSSL 1.0 and later does not include the MD2 digest algorithm in the
default configuration due to its security weaknesses.







|




|





>
>







<
|
<
<
>
|
|
|
|
|
<
<
<
<
<

<




>
>

>
>
>
>
>
>
>
>

>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
|
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







<
<
<
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623

624


625
626
627
628
629
630





631

632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696




	md = EVP_get_digestbyname(argv[1]);
	if (md == NULL) {
		printf("Unknown message digest %s\en", argv[1]);
		exit(1);
	}

	mdctx = EVP_MD_CTX_new();
	EVP_DigestInit_ex(mdctx, md, NULL);
	EVP_DigestUpdate(mdctx, mess1, strlen(mess1));
	EVP_DigestUpdate(mdctx, mess2, strlen(mess2));
	EVP_DigestFinal_ex(mdctx, md_value, &md_len);
	EVP_MD_CTX_free(mdctx);

	printf("Digest is: ");
	for(i = 0; i < md_len; i++)
		printf("%02x", md_value[i]);
	printf("\en");

	return 0;
}
.Ed
.Sh SEE ALSO
.Xr evp 3
.Sh HISTORY
.Fn EVP_DigestInit ,
.Fn EVP_DigestUpdate ,

.Fn EVP_DigestFinal ,


.Dv EVP_MAX_MD_SIZE ,
.Fn EVP_MD_type ,
.Fn EVP_MD_pkey_type ,
.Fn EVP_MD_size ,
.Fn EVP_MD_CTX_size ,
.Fn EVP_MD_CTX_type ,





.Fn EVP_md_null ,

.Fn EVP_md5 ,
.Fn EVP_sha1 ,
.Fn EVP_dss ,
.Fn EVP_dss1 ,
.Fn EVP_get_digestbyname ,
.Fn EVP_get_digestbynid ,
and
.Fn EVP_get_digestbyobj
appeared in SSLeay 0.8.1b or earlier.
.Fn EVP_MD_block_size ,
.Fn EVP_MD_CTX_size ,
.Fn EVP_MD_CTX_block_size ,
.Fn EVP_rc4_40 ,
.Fn EVP_rc2_40_cbc ,
and
.Fn EVP_ripemd160
first appeared in SSLeay 0.9.0.
All these functions have been available since
.Ox 2.4 .
.Pp
.Fn EVP_MD_CTX_copy
first appeared in OpenSSL 0.9.2b and has been available since
.Ox 2.6 .
.Pp
.Fn EVP_MD_CTX_md
first appeared in OpenSSL 0.9.5 and has been available since
.Ox 2.7 .
.Pp
.Fn EVP_MD_CTX_init ,
.Fn EVP_MD_CTX_create ,
.Fn EVP_MD_CTX_cleanup ,
.Fn EVP_MD_CTX_destroy ,
.Fn EVP_DigestInit_ex ,
.Fn EVP_DigestFinal_ex ,
and
.Fn EVP_MD_CTX_copy_ex
first appeared in OpenSSL 0.9.7 and have been available since
.Ox 3.2 .
.Pp
.Fn EVP_sha224 ,
.Fn EVP_sha256 ,
.Fn EVP_sha384 ,
and
.Fn EVP_sha512
first appeared in OpenSSL 0.8.7h and have been available since
.Ox 4.0 .
.Pp
.Fn EVP_MD_CTX_ctrl
first appeared in OpenSSL 1.1.0 and has been available since
.Ox 5.7 .
.Pp
.Fn EVP_MD_CTX_new ,
.Fn EVP_MD_CTX_reset ,
.Fn EVP_MD_CTX_free ,
and
.Fn EVP_md5_sha1
first appeared in OpenSSL 1.1.0 and have been available since
.Ox 6.3 .
.Pp
The link between digests and signing algorithms was fixed in OpenSSL 1.0
and later, so now
.Fn EVP_sha1
can be used with RSA and DSA; there is no need to use
.Fn EVP_dss1
any more.



Changes to jni/libressl/man/EVP_DigestSignInit.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: EVP_DigestSignInit.3,v 1.3 2016/11/26 17:38:55 schwarze Exp $
.\"	OpenSSL 9b86974e Aug 17 15:21:33 2015 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2006, 2009, 2015, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: EVP_DigestSignInit.3,v 1.5 2018/03/23 04:34:23 schwarze Exp $
.\"	OpenSSL 9b86974e Aug 17 15:21:33 2015 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2006, 2009, 2015, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 26 2016 $
.Dt EVP_DIGESTSIGNINIT 3
.Os
.Sh NAME
.Nm EVP_DigestSignInit ,
.Nm EVP_DigestSignUpdate ,
.Nm EVP_DigestSignFinal
.Nd EVP signing functions







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt EVP_DIGESTSIGNINIT 3
.Os
.Sh NAME
.Nm EVP_DigestSignInit ,
.Nm EVP_DigestSignUpdate ,
.Nm EVP_DigestSignFinal
.Nd EVP signing functions
190
191
192
193
194
195
196
197

198
199
200
201
202
203

.Pp
The error codes can be obtained from
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr ERR 3 ,
.Xr evp 3 ,
.Xr EVP_DigestInit 3 ,
.Xr EVP_DigestVerifyInit 3

.Sh HISTORY
.Fn EVP_DigestSignInit ,
.Fn EVP_DigestSignUpdate ,
and
.Fn EVP_DigestSignFinal
were first added to OpenSSL 1.0.0.








|
>





|
>
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
.Pp
The error codes can be obtained from
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr ERR 3 ,
.Xr evp 3 ,
.Xr EVP_DigestInit 3 ,
.Xr EVP_DigestVerifyInit 3 ,
.Xr EVP_PKEY_meth_set_signctx 3
.Sh HISTORY
.Fn EVP_DigestSignInit ,
.Fn EVP_DigestSignUpdate ,
and
.Fn EVP_DigestSignFinal
first appeared in OpenSSL 1.0.0 and have been available since
.Ox 4.9 .
Changes to jni/libressl/man/EVP_DigestVerifyInit.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: EVP_DigestVerifyInit.3,v 1.3 2016/11/26 17:40:58 schwarze Exp $
.\"	OpenSSL fb552ac6 Sep 30 23:43:01 2009 +0000
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2006, 2009, 2014, 2015, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: EVP_DigestVerifyInit.3,v 1.5 2018/03/23 04:34:23 schwarze Exp $
.\"	OpenSSL fb552ac6 Sep 30 23:43:01 2009 +0000
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2006, 2009, 2014, 2015, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 26 2016 $
.Dt EVP_DIGESTVERIFYINIT 3
.Os
.Sh NAME
.Nm EVP_DigestVerifyInit ,
.Nm EVP_DigestVerifyUpdate ,
.Nm EVP_DigestVerifyFinal
.Nd EVP signature verification functions







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt EVP_DIGESTVERIFYINIT 3
.Os
.Sh NAME
.Nm EVP_DigestVerifyInit ,
.Nm EVP_DigestVerifyUpdate ,
.Nm EVP_DigestVerifyFinal
.Nd EVP signature verification functions
171
172
173
174
175
176
177
178

179
180
181
182
183
184

.Pp
The error codes can be obtained from
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr ERR 3 ,
.Xr evp 3 ,
.Xr EVP_DigestInit 3 ,
.Xr EVP_DigestSignInit 3

.Sh HISTORY
.Fn EVP_DigestVerifyInit ,
.Fn EVP_DigestVerifyUpdate ,
and
.Fn EVP_DigestVerifyFinal
were first added to OpenSSL 1.0.0.








|
>





|
>
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
.Pp
The error codes can be obtained from
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr ERR 3 ,
.Xr evp 3 ,
.Xr EVP_DigestInit 3 ,
.Xr EVP_DigestSignInit 3 ,
.Xr EVP_PKEY_meth_set_verifyctx 3
.Sh HISTORY
.Fn EVP_DigestVerifyInit ,
.Fn EVP_DigestVerifyUpdate ,
and
.Fn EVP_DigestVerifyFinal
first appeared in OpenSSL 1.0.0 and have been available since
.Ox 4.9 .
Changes to jni/libressl/man/EVP_EncodeInit.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: EVP_EncodeInit.3,v 1.2 2016/11/26 19:16:58 jmc Exp $
.\"	OpenSSL f430ba31 Jun 19 19:39:01 2016 +0200
.\"
.\" This file was written by Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: EVP_EncodeInit.3,v 1.3 2018/03/20 23:56:07 schwarze Exp $
.\"	OpenSSL f430ba31 Jun 19 19:39:01 2016 +0200
.\"
.\" This file was written by Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 26 2016 $
.Dt EVP_ENCODEINIT 3
.Os
.Sh NAME
.Nm EVP_EncodeInit ,
.Nm EVP_EncodeUpdate ,
.Nm EVP_EncodeFinal ,
.Nm EVP_EncodeBlock ,







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 20 2018 $
.Dt EVP_ENCODEINIT 3
.Os
.Sh NAME
.Nm EVP_EncodeInit ,
.Nm EVP_EncodeUpdate ,
.Nm EVP_EncodeFinal ,
.Nm EVP_EncodeBlock ,
289
290
291
292
293
294
295




.Fn EVP_DecodeFinal
returns -1 on error or 1 on success.
.Pp
.Fn EVP_DecodeBlock
returns the length of the data decoded or -1 on error.
.Sh SEE ALSO
.Xr evp 3











>
>
>
>
289
290
291
292
293
294
295
296
297
298
299
.Fn EVP_DecodeFinal
returns -1 on error or 1 on success.
.Pp
.Fn EVP_DecodeBlock
returns the length of the data decoded or -1 on error.
.Sh SEE ALSO
.Xr evp 3
.Sh HISTORY
These functions appeared in SSLeay 0.8.1b or earlier
and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/EVP_EncryptInit.3.
1
2
3

4
5

6
7
8
9
10
11
12
.\"	$OpenBSD: EVP_EncryptInit.3,v 1.6 2017/08/20 18:41:39 schwarze Exp $
.\"	OpenSSL EVP_EncryptInit.pod 519a5d1e Jun 27 17:38:25 2017 -0700
.\"	OpenSSL EVP_EncryptInit.pod 5211e094 Nov 11 14:39:11 2014 -0800

.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.

.\" Copyright (c) 2000-2002, 2005, 2012-2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
|
<
|
>

|
>







1

2
3
4
5
6
7
8
9
10
11
12
13
.\" $OpenBSD: EVP_EncryptInit.3,v 1.19 2018/03/23 23:18:17 schwarze Exp $

.\" full merge up to: OpenSSL 5211e094 Nov 11 14:39:11 2014 -0800
.\" selective merge up to: OpenSSL 5c5eb286 Dec 5 00:36:43 2017 +0100
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>
.\" and Richard Levitte <levitte@openssl.org>.
.\" Copyright (c) 2000-2002, 2005, 2012-2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
46
47
48
49
50
51
52
53
54
55
56
57


58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: August 20 2017 $
.Dt EVP_ENCRYPTINIT 3
.Os
.Sh NAME
.Nm EVP_CIPHER_CTX_new ,


.Nm EVP_CIPHER_CTX_init ,
.Nm EVP_CIPHER_CTX_free ,
.Nm EVP_EncryptInit_ex ,
.Nm EVP_EncryptUpdate ,
.Nm EVP_EncryptFinal_ex ,
.Nm EVP_DecryptInit_ex ,
.Nm EVP_DecryptUpdate ,
.Nm EVP_DecryptFinal_ex ,
.Nm EVP_CipherInit_ex ,
.Nm EVP_CipherUpdate ,
.Nm EVP_CipherFinal_ex ,
.Nm EVP_EncryptInit ,
.Nm EVP_EncryptFinal ,
.Nm EVP_DecryptInit ,
.Nm EVP_DecryptFinal ,
.Nm EVP_CipherInit ,
.Nm EVP_CipherFinal ,
.Nm EVP_CIPHER_CTX_set_padding ,
.Nm EVP_CIPHER_CTX_set_key_length ,
.Nm EVP_CIPHER_CTX_ctrl ,
.Nm EVP_CIPHER_CTX_cleanup ,
.Nm EVP_get_cipherbyname ,
.Nm EVP_get_cipherbynid ,
.Nm EVP_get_cipherbyobj ,
.Nm EVP_CIPHER_nid ,
.Nm EVP_CIPHER_block_size ,
.Nm EVP_CIPHER_key_length ,
.Nm EVP_CIPHER_iv_length ,







|




>
>




















|







47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt EVP_ENCRYPTINIT 3
.Os
.Sh NAME
.Nm EVP_CIPHER_CTX_new ,
.Nm EVP_CIPHER_CTX_reset ,
.Nm EVP_CIPHER_CTX_cleanup ,
.Nm EVP_CIPHER_CTX_init ,
.Nm EVP_CIPHER_CTX_free ,
.Nm EVP_EncryptInit_ex ,
.Nm EVP_EncryptUpdate ,
.Nm EVP_EncryptFinal_ex ,
.Nm EVP_DecryptInit_ex ,
.Nm EVP_DecryptUpdate ,
.Nm EVP_DecryptFinal_ex ,
.Nm EVP_CipherInit_ex ,
.Nm EVP_CipherUpdate ,
.Nm EVP_CipherFinal_ex ,
.Nm EVP_EncryptInit ,
.Nm EVP_EncryptFinal ,
.Nm EVP_DecryptInit ,
.Nm EVP_DecryptFinal ,
.Nm EVP_CipherInit ,
.Nm EVP_CipherFinal ,
.Nm EVP_CIPHER_CTX_set_padding ,
.Nm EVP_CIPHER_CTX_set_key_length ,
.Nm EVP_CIPHER_CTX_ctrl ,
.Nm EVP_CIPHER_CTX_rand_key ,
.Nm EVP_get_cipherbyname ,
.Nm EVP_get_cipherbynid ,
.Nm EVP_get_cipherbyobj ,
.Nm EVP_CIPHER_nid ,
.Nm EVP_CIPHER_block_size ,
.Nm EVP_CIPHER_key_length ,
.Nm EVP_CIPHER_iv_length ,
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165








166
167
168
169
170
171
172
.Nm EVP_aes_192_gcm ,
.Nm EVP_aes_256_gcm ,
.Nm EVP_aes_128_ccm ,
.Nm EVP_aes_192_ccm ,
.Nm EVP_aes_256_ccm ,
.Nm EVP_aes_128_cbc_hmac_sha1 ,
.Nm EVP_aes_256_cbc_hmac_sha1 ,
.Nm EVP_rc5_32_12_16_cbc ,
.Nm EVP_rc5_32_12_16_cfb ,
.Nm EVP_rc5_32_12_16_ecb ,
.Nm EVP_rc5_32_12_16_ofb ,
.Nm EVP_chacha20
.Nd EVP cipher routines
.Sh SYNOPSIS
.In openssl/evp.h
.Ft EVP_CIPHER_CTX *
.Fn EVP_CIPHER_CTX_new void








.Ft void
.Fo EVP_CIPHER_CTX_init
.Fa "EVP_CIPHER_CTX *ctx"
.Fc
.Ft void
.Fo EVP_CIPHER_CTX_free
.Fa "EVP_CIPHER_CTX *ctx"







<
<
<
<






>
>
>
>
>
>
>
>







152
153
154
155
156
157
158




159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
.Nm EVP_aes_192_gcm ,
.Nm EVP_aes_256_gcm ,
.Nm EVP_aes_128_ccm ,
.Nm EVP_aes_192_ccm ,
.Nm EVP_aes_256_ccm ,
.Nm EVP_aes_128_cbc_hmac_sha1 ,
.Nm EVP_aes_256_cbc_hmac_sha1 ,




.Nm EVP_chacha20
.Nd EVP cipher routines
.Sh SYNOPSIS
.In openssl/evp.h
.Ft EVP_CIPHER_CTX *
.Fn EVP_CIPHER_CTX_new void
.Ft int
.Fo EVP_CIPHER_CTX_reset
.Fa "EVP_CIPHER_CTX *ctx"
.Fc
.Ft int
.Fo EVP_CIPHER_CTX_cleanup
.Fa "EVP_CIPHER_CTX *ctx"
.Fc
.Ft void
.Fo EVP_CIPHER_CTX_init
.Fa "EVP_CIPHER_CTX *ctx"
.Fc
.Ft void
.Fo EVP_CIPHER_CTX_free
.Fa "EVP_CIPHER_CTX *ctx"
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
.Fa "unsigned char *iv"
.Fc
.Ft int
.Fo EVP_EncryptUpdate
.Fa "EVP_CIPHER_CTX *ctx"
.Fa "unsigned char *out"
.Fa "int *outl"
.Fa "unsigned char *in"
.Fa "int inl"
.Fc
.Ft int
.Fo EVP_EncryptFinal_ex
.Fa "EVP_CIPHER_CTX *ctx"
.Fa "unsigned char *out"
.Fa "int *outl"







|







187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
.Fa "unsigned char *iv"
.Fc
.Ft int
.Fo EVP_EncryptUpdate
.Fa "EVP_CIPHER_CTX *ctx"
.Fa "unsigned char *out"
.Fa "int *outl"
.Fa "const unsigned char *in"
.Fa "int inl"
.Fc
.Ft int
.Fo EVP_EncryptFinal_ex
.Fa "EVP_CIPHER_CTX *ctx"
.Fa "unsigned char *out"
.Fa "int *outl"
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
.Fa "unsigned char *iv"
.Fc
.Ft int
.Fo EVP_DecryptUpdate
.Fa "EVP_CIPHER_CTX *ctx"
.Fa "unsigned char *out"
.Fa "int *outl"
.Fa "unsigned char *in"
.Fa "int inl"
.Fc
.Ft int
.Fo EVP_DecryptFinal_ex
.Fa "EVP_CIPHER_CTX *ctx"
.Fa "unsigned char *outm"
.Fa "int *outl"







|







209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
.Fa "unsigned char *iv"
.Fc
.Ft int
.Fo EVP_DecryptUpdate
.Fa "EVP_CIPHER_CTX *ctx"
.Fa "unsigned char *out"
.Fa "int *outl"
.Fa "const unsigned char *in"
.Fa "int inl"
.Fc
.Ft int
.Fo EVP_DecryptFinal_ex
.Fa "EVP_CIPHER_CTX *ctx"
.Fa "unsigned char *outm"
.Fa "int *outl"
292
293
294
295
296
297
298
299
300

301
302
303
304
305
306
307
.Fo EVP_CIPHER_CTX_ctrl
.Fa "EVP_CIPHER_CTX *ctx"
.Fa "int type"
.Fa "int arg"
.Fa "void *ptr"
.Fc
.Ft int
.Fo EVP_CIPHER_CTX_cleanup
.Fa "EVP_CIPHER_CTX *ctx"

.Fc
.Ft const EVP_CIPHER *
.Fo EVP_get_cipherbyname
.Fa "const char *name"
.Fc
.Ft const EVP_CIPHER *
.Fo EVP_get_cipherbynid







|

>







299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
.Fo EVP_CIPHER_CTX_ctrl
.Fa "EVP_CIPHER_CTX *ctx"
.Fa "int type"
.Fa "int arg"
.Fa "void *ptr"
.Fc
.Ft int
.Fo EVP_CIPHER_CTX_rand_key
.Fa "EVP_CIPHER_CTX *ctx"
.Fa "unsigned char *key"
.Fc
.Ft const EVP_CIPHER *
.Fo EVP_get_cipherbyname
.Fa "const char *name"
.Fc
.Ft const EVP_CIPHER *
.Fo EVP_get_cipherbynid
391
392
393
394
395
396
397
398
399
400

401

402










403







404
405

406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424

425


426
427
428
429
430
431
432
433
.Fa "ASN1_TYPE *type"
.Fc
.Sh DESCRIPTION
The EVP cipher routines are a high level interface to certain symmetric
ciphers.
.Pp
.Fn EVP_CIPHER_CTX_new
creates a cipher context.
.Pp
.Fn EVP_CIPHER_CTX_init

initializes the cipher context

.Fa ctx .










.Pp







.Fn EVP_CIPHER_CTX_free
clears all information from a cipher context and frees up any

allocated memory associate with it, including
.Fa ctx
itself.
This function should be called after all operations using a cipher
are complete, so sensitive information does not remain in memory.
If
.Fa ctx
is a
.Dv NULL
pointer, no action occurs.
.Pp
.Fn EVP_EncryptInit_ex
sets up the cipher context
.Fa ctx
for encryption with cipher
.Fa type
from
.Vt ENGINE
.Fa impl .

.Fa ctx


must be initialized before calling this function.
.Fa type
is normally supplied by a function such as
.Fn EVP_aes_256_cbc .
If
.Fa impl
is
.Dv NULL ,







|

|
>
|
>
|
>
>
>
>
>
>
>
>
>
>

>
>
>
>
>
>
>

|
>
|


















>

>
>
|







399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
.Fa "ASN1_TYPE *type"
.Fc
.Sh DESCRIPTION
The EVP cipher routines are a high level interface to certain symmetric
ciphers.
.Pp
.Fn EVP_CIPHER_CTX_new
creates a new, empty cipher context.
.Pp
.Fn EVP_CIPHER_CTX_reset
clears all information from
.Fa ctx
and frees all allocated memory associated with it, except the
.Fa ctx
object itself, such that it can be reused for another series of calls to
.Fn EVP_CipherInit ,
.Fn EVP_CipherUpdate ,
and
.Fn EVP_CipherFinal .
It is also suitable for cipher contexts on the stack that were used
and are no longer needed.
.Fn EVP_CIPHER_CTX_cleanup
is a deprecated alias for
.Fn EVP_CIPHER_CTX_reset .
.Pp
.Fn EVP_CIPHER_CTX_init
is a deprecated function to clear a cipher context on the stack
before use.
Do not use it on a cipher context returned from
.Fn EVP_CIPHER_CTX_new
or one one that was already used.
.Pp
.Fn EVP_CIPHER_CTX_free
clears all information from
.Fa ctx
and frees all allocated memory associated with it, including
.Fa ctx
itself.
This function should be called after all operations using a cipher
are complete, so sensitive information does not remain in memory.
If
.Fa ctx
is a
.Dv NULL
pointer, no action occurs.
.Pp
.Fn EVP_EncryptInit_ex
sets up the cipher context
.Fa ctx
for encryption with cipher
.Fa type
from
.Vt ENGINE
.Fa impl .
If
.Fa ctx
points to an unused object on the stack, it must be initialized with
.Fn EVP_MD_CTX_init
before calling this function.
.Fa type
is normally supplied by a function such as
.Fn EVP_aes_256_cbc .
If
.Fa impl
is
.Dv NULL ,
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539



540
541
542
543
544
545
546
547
548
549
550
551
552
553


554
555
556
557
558
559
560
.Fa enc
parameter.
It should be set to 1 for encryption, 0 for decryption and -1 to leave
the value unchanged (the actual value of
.Fa enc
being supplied in a previous call).
.Pp
.Fn EVP_CIPHER_CTX_cleanup
clears all information from a cipher context and free up any allocated
memory associated with it.
It should be called after all operations using a cipher are complete so
sensitive information does not remain in memory.
.Pp
.Fn EVP_EncryptInit ,
.Fn EVP_DecryptInit ,
and
.Fn EVP_CipherInit
behave in a similar way to
.Fn EVP_EncryptInit_ex ,
.Fn EVP_DecryptInit_ex ,
and
.Fn EVP_CipherInit_ex
except the
.Fa ctx
parameter does not need to be initialized and they always use the
default cipher implementation.



.Pp
.Fn EVP_EncryptFinal ,
.Fn EVP_DecryptFinal ,
and
.Fn EVP_CipherFinal
are identical to
.Fn EVP_EncryptFinal_ex ,
.Fn EVP_DecryptFinal_ex ,
and
.Fn EVP_CipherFinal_ex .
In previous releases of OpenSSL, they also used to clean up the
.Fa ctx ,
but this is no longer done and
.Fn EVP_CIPHER_CTX_cleanup


must be called to free any context resources.
.Pp
.Fn EVP_get_cipherbyname ,
.Fn EVP_get_cipherbynid ,
and
.Fn EVP_get_cipherbyobj
return an







<
<
<
<
<
<




|




<
<
<
|
>
>
>













|
>
>







545
546
547
548
549
550
551






552
553
554
555
556
557
558
559
560



561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
.Fa enc
parameter.
It should be set to 1 for encryption, 0 for decryption and -1 to leave
the value unchanged (the actual value of
.Fa enc
being supplied in a previous call).
.Pp






.Fn EVP_EncryptInit ,
.Fn EVP_DecryptInit ,
and
.Fn EVP_CipherInit
are deprecated functions behaving like
.Fn EVP_EncryptInit_ex ,
.Fn EVP_DecryptInit_ex ,
and
.Fn EVP_CipherInit_ex



except that they always use the default cipher implementation
and that they require
.Fn EVP_CIPHER_CTX_reset
before they can be used on a context that was already used.
.Pp
.Fn EVP_EncryptFinal ,
.Fn EVP_DecryptFinal ,
and
.Fn EVP_CipherFinal
are identical to
.Fn EVP_EncryptFinal_ex ,
.Fn EVP_DecryptFinal_ex ,
and
.Fn EVP_CipherFinal_ex .
In previous releases of OpenSSL, they also used to clean up the
.Fa ctx ,
but this is no longer done and
.Fn EVP_CIPHER_CTX_reset
or
.Fn EVP_CIPHER_CTX_free
must be called to free any context resources.
.Pp
.Fn EVP_get_cipherbyname ,
.Fn EVP_get_cipherbynid ,
and
.Fn EVP_get_cipherbyobj
return an
657
658
659
660
661
662
663


664
665
666
667
668
669
670
671
672
.Fn EVP_CIPHER_mode
and
.Fn EVP_CIPHER_CTX_mode
return the block cipher mode:
.Dv EVP_CIPH_ECB_MODE ,
.Dv EVP_CIPH_CBC_MODE ,
.Dv EVP_CIPH_CFB_MODE ,


or
.Dv EVP_CIPH_OFB_MODE .
If the cipher is a stream cipher then
.Dv EVP_CIPH_STREAM_CIPHER
is returned.
.Pp
.Fn EVP_CIPHER_param_to_asn1
sets the ASN.1
.Vt AlgorithmIdentifier







>
>

|







684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
.Fn EVP_CIPHER_mode
and
.Fn EVP_CIPHER_CTX_mode
return the block cipher mode:
.Dv EVP_CIPH_ECB_MODE ,
.Dv EVP_CIPH_CBC_MODE ,
.Dv EVP_CIPH_CFB_MODE ,
.Dv EVP_CIPH_OFB_MODE ,
.Dv EVP_CIPH_CTR_MODE ,
or
.Dv EVP_CIPH_XTS_MODE .
If the cipher is a stream cipher then
.Dv EVP_CIPH_STREAM_CIPHER
is returned.
.Pp
.Fn EVP_CIPHER_param_to_asn1
sets the ASN.1
.Vt AlgorithmIdentifier
700
701
702
703
704
705
706
707







708




709
710
711
712
713
714
715
.Dv NULL .
It is possible for this function to fail if the cipher does not
have any ASN.1 support or the parameters cannot be set (for example
the RC2 effective key length is not supported).
.Pp
.Fn EVP_CIPHER_CTX_ctrl
allows various cipher specific parameters to be determined and set.
Currently only the RC2 effective key length and the number of rounds of







RC5 can be set.




.Pp
Where possible the EVP interface to symmetric ciphers should be
used in preference to the low level interfaces.
This is because the code then becomes transparent to the cipher used and
much more flexible.
.Pp
PKCS padding works by adding n padding bytes of value n to make the







|
>
>
>
>
>
>
>
|
>
>
>
>







729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
.Dv NULL .
It is possible for this function to fail if the cipher does not
have any ASN.1 support or the parameters cannot be set (for example
the RC2 effective key length is not supported).
.Pp
.Fn EVP_CIPHER_CTX_ctrl
allows various cipher specific parameters to be determined and set.
Currently only the RC2 effective key length can be set.
.Pp
.Fn EVP_CIPHER_CTX_rand_key
generates a random key of the appropriate length based on the cipher
context.
The
.Vt EVP_CIPHER
can provide its own random key generation routine to support keys
of a specific form.
The
.Fa key
argument must point to a buffer at least as big as the value returned by
.Fn EVP_CIPHER_CTX_key_length .
.Pp
Where possible the EVP interface to symmetric ciphers should be
used in preference to the low level interfaces.
This is because the code then becomes transparent to the cipher used and
much more flexible.
.Pp
PKCS padding works by adding n padding bytes of value n to make the
758
759
760
761
762
763
764


765
766
767
768
769
770
771
772
773
774
775



776
777


778


779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
.Fn EVP_CIPHER_CTX_new
returns a pointer to a newly created
.Vt EVP_CIPHER_CTX
for success or
.Dv NULL
for failure.
.Pp


.Fn EVP_EncryptInit_ex ,
.Fn EVP_EncryptUpdate ,
and
.Fn EVP_EncryptFinal_ex
return 1 for success and 0 for failure.
.Pp
.Fn EVP_DecryptInit_ex
and
.Fn EVP_DecryptUpdate
return 1 for success and 0 for failure.
.Fn EVP_DecryptFinal_ex



returns 0 if the decrypt failed or 1 for success.
.Pp


.Fn EVP_CipherInit_ex


and
.Fn EVP_CipherUpdate
return 1 for success and 0 for failure.
.Fn EVP_CipherFinal_ex
returns 0 for a decryption failure or 1 for success.
.Pp
.Fn EVP_CIPHER_CTX_cleanup
returns 1 for success and 0 for failure.
.Pp
.Fn EVP_get_cipherbyname ,
.Fn EVP_get_cipherbynid ,
and
.Fn EVP_get_cipherbyobj
return an
.Vt EVP_CIPHER







>
>


<
|
<
<
|
<
|
<
|
>
>
>
|
|
>
>
|
>
>

|
|
<
<

|
|







798
799
800
801
802
803
804
805
806
807
808

809


810

811

812
813
814
815
816
817
818
819
820
821
822
823
824
825


826
827
828
829
830
831
832
833
834
835
.Fn EVP_CIPHER_CTX_new
returns a pointer to a newly created
.Vt EVP_CIPHER_CTX
for success or
.Dv NULL
for failure.
.Pp
.Fn EVP_CIPHER_CTX_reset ,
.Fn EVP_CIPHER_CTX_cleanup ,
.Fn EVP_EncryptInit_ex ,
.Fn EVP_EncryptUpdate ,

.Fn EVP_EncryptFinal_ex ,


.Fn EVP_DecryptInit_ex ,

.Fn EVP_DecryptUpdate ,

.Fn EVP_DecryptFinal_ex ,
.Fn EVP_CipherInit_ex ,
.Fn EVP_CipherUpdate ,
.Fn EVP_CipherFinal_ex ,
.Fn EVP_EncryptInit ,
.Fn EVP_EncryptFinal ,
.Fn EVP_DecryptInit ,
.Fn EVP_DecryptFinal ,
.Fn EVP_CipherInit ,
.Fn EVP_CipherFinal ,
.Fn EVP_CIPHER_CTX_set_key_length ,
and
.Fn EVP_CIPHER_CTX_rand_key
return 1 for success or 0 for failure.


.Pp
.Fn EVP_CIPHER_CTX_set_padding
always returns 1.
.Pp
.Fn EVP_get_cipherbyname ,
.Fn EVP_get_cipherbynid ,
and
.Fn EVP_get_cipherbyobj
return an
.Vt EVP_CIPHER
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
return the block size.
.Pp
.Fn EVP_CIPHER_key_length
and
.Fn EVP_CIPHER_CTX_key_length
return the key length.
.Pp
.Fn EVP_CIPHER_CTX_set_padding
always returns 1.
.Pp
.Fn EVP_CIPHER_iv_length
and
.Fn EVP_CIPHER_CTX_iv_length
return the IV length or zero if the cipher does not use an IV.
.Pp
.Fn EVP_CIPHER_type
and







<
<
<







848
849
850
851
852
853
854



855
856
857
858
859
860
861
return the block size.
.Pp
.Fn EVP_CIPHER_key_length
and
.Fn EVP_CIPHER_CTX_key_length
return the key length.
.Pp



.Fn EVP_CIPHER_iv_length
and
.Fn EVP_CIPHER_CTX_iv_length
return the IV length or zero if the cipher does not use an IV.
.Pp
.Fn EVP_CIPHER_type
and
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
.Fn EVP_cast5_ecb ,
.Fn EVP_cast5_cfb ,
.Fn EVP_cast5_ofb
.Xc
CAST encryption algorithm in CBC, ECB, CFB and OFB modes respectively.
This is a variable key length cipher.
.It Xo
.Fn EVP_rc5_32_12_16_cbc ,
.Fn EVP_rc5_32_12_16_ecb ,
.Fn EVP_rc5_32_12_16_cfb ,
.Fn EVP_rc5_32_12_16_ofb
.Xc
RC5 encryption algorithm in CBC, ECB, CFB and OFB modes respectively.
This is a variable key length cipher with an additional "number of
rounds" parameter.
By default the key length is set to 128 bits and 12 rounds.
.It Xo
.Fn EVP_aes_128_gcm ,
.Fn EVP_aes_192_gcm ,
.Fn EVP_aes_256_gcm
.Xc
AES Galois Counter Mode (GCM) for 128, 192 and 256 bit keys respectively.
These ciphers require additional control operations to function
correctly: see the GCM mode section below for details.







<
<
<
<
<
<
<
<
<
<







976
977
978
979
980
981
982










983
984
985
986
987
988
989
.Fn EVP_cast5_ecb ,
.Fn EVP_cast5_cfb ,
.Fn EVP_cast5_ofb
.Xc
CAST encryption algorithm in CBC, ECB, CFB and OFB modes respectively.
This is a variable key length cipher.
.It Xo










.Fn EVP_aes_128_gcm ,
.Fn EVP_aes_192_gcm ,
.Fn EVP_aes_256_gcm
.Xc
AES Galois Counter Mode (GCM) for 128, 192 and 256 bit keys respectively.
These ciphers require additional control operations to function
correctly: see the GCM mode section below for details.
1076
1077
1078
1079
1080
1081
1082

1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
	 * another source.
	 */
	unsigned char key[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
	unsigned char iv[] = {1,2,3,4,5,6,7,8};
	const char intext[] = "Some Crypto Text";
	EVP_CIPHER_CTX *ctx;
	FILE *out;

	EVP_CIPHER_CTX_init(&ctx);
	EVP_EncryptInit_ex(&ctx, EVP_bf_cbc(), NULL, key, iv);

	if (!EVP_EncryptUpdate(&ctx, outbuf, &outlen, intext,
	    strlen(intext))) {
		/* Error */
		EVP_CIPHER_CTX_free(ctx);
		return 0;
	}
	/*
	 * Buffer passed to EVP_EncryptFinal() must be after data just
	 * encrypted to avoid overwriting it.
	 */
	if (!EVP_EncryptFinal_ex(&ctx, outbuf + outlen, &tmplen)) {
		/* Error */
		EVP_CIPHER_CTX_free(ctx);
		return 0;
	}
	outlen += tmplen;
	EVP_CIPHER_CTX_cleanup(&ctx);
	/*
	 * Need binary mode for fopen because encrypted data is
	 * binary data. Also cannot use strlen() on it because
	 * it won't be NUL terminated and may contain embedded
	 * NULs.
	 */
	out = fopen(outfile, "wb");







>
|
|

|









|





|







1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
	 * another source.
	 */
	unsigned char key[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
	unsigned char iv[] = {1,2,3,4,5,6,7,8};
	const char intext[] = "Some Crypto Text";
	EVP_CIPHER_CTX *ctx;
	FILE *out;

	ctx = EVP_CIPHER_CTX_new();
	EVP_EncryptInit_ex(ctx, EVP_bf_cbc(), NULL, key, iv);

	if (!EVP_EncryptUpdate(ctx, outbuf, &outlen, intext,
	    strlen(intext))) {
		/* Error */
		EVP_CIPHER_CTX_free(ctx);
		return 0;
	}
	/*
	 * Buffer passed to EVP_EncryptFinal() must be after data just
	 * encrypted to avoid overwriting it.
	 */
	if (!EVP_EncryptFinal_ex(ctx, outbuf + outlen, &tmplen)) {
		/* Error */
		EVP_CIPHER_CTX_free(ctx);
		return 0;
	}
	outlen += tmplen;
	EVP_CIPHER_CTX_free(ctx);
	/*
	 * Need binary mode for fopen because encrypted data is
	 * binary data. Also cannot use strlen() on it because
	 * it won't be NUL terminated and may contain embedded
	 * NULs.
	 */
	out = fopen(outfile, "wb");
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136


1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176





















































1177
























1178
1179
1180
1181
1182
1183
1184
1185




1186






1187
1188

1189






1190



1191




1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
.Xr openssl 1
utility with the command line:
.Bd -literal -offset indent
openssl bf -in cipher.bin -K 000102030405060708090A0B0C0D0E0F \e
           -iv 0102030405060708 -d
.Ed
.Pp
General encryption, decryption function example using FILE I/O and RC2
with an 80-bit key:
.Bd -literal
int
do_crypt(FILE *in, FILE *out, int do_encrypt)
{
	/* Allow enough space in output buffer for additional block */
	inbuf[1024], outbuf[1024 + EVP_MAX_BLOCK_LENGTH];
	int inlen, outlen;


	/*
	 * Bogus key and IV: we'd normally set these from
	 * another source.
	 */
	unsigned char key[] = "0123456789";
	unsigned char iv[] = "12345678";

	/* Don't set key or IV because we will modify the parameters */
	EVP_CIPHER_CTX_init(&ctx);
	EVP_CipherInit_ex(&ctx, EVP_rc2(), NULL, NULL, NULL, do_encrypt);
	EVP_CIPHER_CTX_set_key_length(&ctx, 10);
	/* We finished modifying parameters so now we can set key and IV */
	EVP_CipherInit_ex(&ctx, NULL, NULL, key, iv, do_encrypt);

	for(;;) {
		inlen = fread(inbuf, 1, 1024, in);
		if (inlen <= 0)
			break;
		if (!EVP_CipherUpdate(&ctx, outbuf, &outlen, inbuf,
		    inlen)) {
			/* Error */
			EVP_CIPHER_CTX_cleanup(&ctx);
			return 0;
		}
		fwrite(outbuf, 1, outlen, out);
	}
	if (!EVP_CipherFinal_ex(&ctx, outbuf, &outlen)) {
		/* Error */
		EVP_CIPHER_CTX_cleanup(&ctx);
		return 0;
	}
	fwrite(outbuf, 1, outlen, out);

	EVP_CIPHER_CTX_cleanup(&ctx);
	return 1;
}
.Ed
.Sh SEE ALSO
.Xr evp 3
.Sh HISTORY





















































.Fn EVP_CIPHER_CTX_init ,
























.Fn EVP_EncryptInit_ex ,
.Fn EVP_EncryptFinal_ex ,
.Fn EVP_DecryptInit_ex ,
.Fn EVP_DecryptFinal_ex ,
.Fn EVP_CipherInit_ex ,
.Fn EVP_CipherFinal_ex ,
and
.Fn EVP_CIPHER_CTX_set_padding




appeared in OpenSSL 0.9.7.






.Sh BUGS
For RC5 the number of rounds can currently only be set to 8, 12 or 16.

This is a limitation of the current RC5 code rather than the EVP






interface.



.Pp




.Dv EVP_MAX_KEY_LENGTH
and
.Dv EVP_MAX_IV_LENGTH
only refer to the internal ciphers with default key lengths.
If custom ciphers exceed these values the results are unpredictable.
This is because it has become standard practice to define a generic key
as a fixed unsigned char array containing
.Dv EVP_MAX_KEY_LENGTH
bytes.
.Pp
The ASN.1 code is incomplete (and sometimes inaccurate).
It has only been tested for certain common S/MIME ciphers
(RC2, DES, triple DES) in CBC mode.







|
|





|

>
>




|
|

<
|
|
<
|
|

|



|


|




|

|




|






>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>








>
>
>
>
|
>
>
>
>
>
>
|
<
>
|
>
>
>
>
>
>
|
>
>
>

>
>
>
>













1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175

1176
1177

1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304

1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
.Xr openssl 1
utility with the command line:
.Bd -literal -offset indent
openssl bf -in cipher.bin -K 000102030405060708090A0B0C0D0E0F \e
           -iv 0102030405060708 -d
.Ed
.Pp
General encryption, decryption function example using FILE I/O and AES128
with an 128-bit key:
.Bd -literal
int
do_crypt(FILE *in, FILE *out, int do_encrypt)
{
	/* Allow enough space in output buffer for additional block */
	unsigned char inbuf[1024], outbuf[1024 + EVP_MAX_BLOCK_LENGTH];
	int inlen, outlen;
	EVP_CIPHER_CTX *ctx;

	/*
	 * Bogus key and IV: we'd normally set these from
	 * another source.
	 */
	unsigned char key[] = "0123456789abcdeF";
	unsigned char iv[] = "1234567887654321";


	ctx = EVP_CIPHER_CTX_new();
	EVP_CipherInit_ex(ctx, EVP_aes_128_cbc(), NULL, NULL, NULL,

	    do_encrypt);
	EVP_CipherInit_ex(ctx, NULL, NULL, key, iv, do_encrypt);

	for (;;) {
		inlen = fread(inbuf, 1, 1024, in);
		if (inlen <= 0)
			break;
		if (!EVP_CipherUpdate(ctx, outbuf, &outlen, inbuf,
		    inlen)) {
			/* Error */
			EVP_CIPHER_CTX_free(ctx);
			return 0;
		}
		fwrite(outbuf, 1, outlen, out);
	}
	if (!EVP_CipherFinal_ex(ctx, outbuf, &outlen)) {
		/* Error */
		EVP_CIPHER_CTX_free(ctx);
		return 0;
	}
	fwrite(outbuf, 1, outlen, out);

	EVP_CIPHER_CTX_free(ctx);
	return 1;
}
.Ed
.Sh SEE ALSO
.Xr evp 3
.Sh HISTORY
.Fn EVP_CIPHER_CTX_cleanup ,
.Fn EVP_EncryptInit ,
.Fn EVP_EncryptUpdate ,
.Fn EVP_EncryptFinal ,
.Fn EVP_DecryptInit ,
.Fn EVP_DecryptUpdate ,
.Fn EVP_DecryptFinal ,
.Fn EVP_CipherInit ,
.Fn EVP_CipherUpdate ,
.Fn EVP_CipherFinal ,
.Fn EVP_get_cipherbyname ,
.Fn EVP_get_cipherbynid ,
.Fn EVP_get_cipherbyobj ,
.Fn EVP_CIPHER_nid ,
.Fn EVP_CIPHER_block_size ,
.Fn EVP_CIPHER_key_length ,
.Fn EVP_CIPHER_iv_length ,
.Fn EVP_CIPHER_CTX_cipher ,
.Fn EVP_CIPHER_CTX_nid ,
.Fn EVP_CIPHER_CTX_block_size ,
.Fn EVP_CIPHER_CTX_key_length ,
.Fn EVP_CIPHER_CTX_iv_length ,
.Fn EVP_CIPHER_CTX_get_app_data ,
.Fn EVP_CIPHER_CTX_set_app_data ,
.Fn EVP_enc_null ,
.Fn EVP_des_cbc ,
.Fn EVP_des_ecb ,
.Fn EVP_des_cfb ,
.Fn EVP_des_ofb ,
.Fn EVP_des_ede_cbc ,
.Fn EVP_des_ede ,
.Fn EVP_des_ede_ofb ,
.Fn EVP_des_ede_cfb ,
.Fn EVP_des_ede3_cbc ,
.Fn EVP_des_ede3 ,
.Fn EVP_des_ede3_ofb ,
.Fn EVP_des_ede3_cfb ,
.Fn EVP_desx_cbc ,
.Fn EVP_rc4 ,
.Fn EVP_idea_cbc ,
.Fn EVP_idea_ecb ,
.Fn EVP_idea_cfb ,
.Fn EVP_idea_ofb ,
.Fn EVP_rc2_cbc ,
.Fn EVP_rc2_ecb ,
.Fn EVP_rc2_cfb ,
.Fn EVP_rc2_ofb ,
.Fn EVP_bf_cbc ,
.Fn EVP_bf_ecb ,
.Fn EVP_bf_cfb ,
and
.Fn EVP_bf_ofb
appeared in SSLeay 0.8.1b or earlier.
.Fn EVP_CIPHER_CTX_init ,
.Fn EVP_CIPHER_param_to_asn1 ,
and
.Fn EVP_CIPHER_asn1_to_param
first appeared in SSLeay 0.9.0.
All these functions have been available since
.Ox 2.4 .
.Pp
.Fn EVP_rc2_64_cbc
first appeared in SSL_eay 0.9.1.
.Fn EVP_CIPHER_CTX_type
first appeared in OpenSSL 0.9.3.
These functions and have been available since
.Ox 2.6 .
.Pp
.Fn EVP_CIPHER_CTX_set_key_length ,
.Fn EVP_CIPHER_CTX_ctrl ,
.Fn EVP_CIPHER_flags ,
.Fn EVP_CIPHER_mode ,
.Fn EVP_CIPHER_CTX_flags ,
and
.Fn EVP_CIPHER_CTX_mode
first appeared in OpenSSL 0.9.6 and have been available since
.Ox 2.9 .
.Pp
.Fn EVP_EncryptInit_ex ,
.Fn EVP_EncryptFinal_ex ,
.Fn EVP_DecryptInit_ex ,
.Fn EVP_DecryptFinal_ex ,
.Fn EVP_CipherInit_ex ,
.Fn EVP_CipherFinal_ex ,
and
.Fn EVP_CIPHER_CTX_set_padding
first appeared in OpenSSL 0.9.7 and have been available since
.Ox 3.2 .
.Pp
.Fn EVP_CIPHER_CTX_rand_key
first appeared in OpenSSL 0.9.8.
.Fn EVP_CIPHER_CTX_new
and
.Fn EVP_CIPHER_CTX_free
first appeared in OpenSSL 0.9.8b.
These functions have been available since
.Ox 4.5 .
.Pp

.Fn EVP_rc4_hmac_md5 ,
.Fn EVP_aes_128_gcm ,
.Fn EVP_aes_192_gcm ,
.Fn EVP_aes_256_gcm ,
.Fn EVP_aes_128_ccm ,
.Fn EVP_aes_192_ccm ,
.Fn EVP_aes_256_ccm ,
.Fn EVP_aes_128_cbc_hmac_sha1 ,
and
.Fn EVP_aes_256_cbc_hmac_sha1
first appeared in OpenSSL 1.0.1 and have been available since
.Ox 5.3 .
.Pp
.Fn EVP_CIPHER_CTX_reset
first appeared in OpenSSL 1.1.0 and has been available since
.Ox 6.3 .
.Sh BUGS
.Dv EVP_MAX_KEY_LENGTH
and
.Dv EVP_MAX_IV_LENGTH
only refer to the internal ciphers with default key lengths.
If custom ciphers exceed these values the results are unpredictable.
This is because it has become standard practice to define a generic key
as a fixed unsigned char array containing
.Dv EVP_MAX_KEY_LENGTH
bytes.
.Pp
The ASN.1 code is incomplete (and sometimes inaccurate).
It has only been tested for certain common S/MIME ciphers
(RC2, DES, triple DES) in CBC mode.
Changes to jni/libressl/man/EVP_OpenInit.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: EVP_OpenInit.3,v 1.5 2016/11/26 20:55:26 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: EVP_OpenInit.3,v 1.6 2018/03/20 23:56:07 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 26 2016 $
.Dt EVP_OPENINIT 3
.Os
.Sh NAME
.Nm EVP_OpenInit ,
.Nm EVP_OpenUpdate ,
.Nm EVP_OpenFinal
.Nd EVP envelope decryption







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 20 2018 $
.Dt EVP_OPENINIT 3
.Os
.Sh NAME
.Nm EVP_OpenInit ,
.Nm EVP_OpenUpdate ,
.Nm EVP_OpenFinal
.Nd EVP envelope decryption
142
143
144
145
146
147
148







.Fn EVP_OpenFinal
returns 0 if the decrypt failed or 1 for success.
.Sh SEE ALSO
.Xr evp 3 ,
.Xr EVP_EncryptInit 3 ,
.Xr EVP_SealInit 3 ,
.Xr RAND_bytes 3














>
>
>
>
>
>
>
142
143
144
145
146
147
148
149
150
151
152
153
154
155
.Fn EVP_OpenFinal
returns 0 if the decrypt failed or 1 for success.
.Sh SEE ALSO
.Xr evp 3 ,
.Xr EVP_EncryptInit 3 ,
.Xr EVP_SealInit 3 ,
.Xr RAND_bytes 3
.Sh HISTORY
.Fn EVP_OpenInit ,
.Fn EVP_OpenUpdate ,
and
.Fn EVP_OpenFinal
appeared in SSLeay 0.8.1b or earlier and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/EVP_PKEY_CTX_ctrl.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: EVP_PKEY_CTX_ctrl.3,v 1.8 2017/08/28 17:41:59 jsing Exp $
.\"	OpenSSL EVP_PKEY_CTX_ctrl.pod 1722496f Jun 8 15:18:38 2017 -0400
.\"	OpenSSL EVP_PKEY_CTX_ctrl.pod e03af178 Dec 11 17:05:57 2014 -0500
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2006, 2009, 2013, 2014, 2015 The OpenSSL Project.
.\" All rights reserved.
.\"
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: EVP_PKEY_CTX_ctrl.3,v 1.11 2018/03/23 23:18:17 schwarze Exp $
.\"	OpenSSL EVP_PKEY_CTX_ctrl.pod 1722496f Jun 8 15:18:38 2017 -0400
.\"	OpenSSL EVP_PKEY_CTX_ctrl.pod e03af178 Dec 11 17:05:57 2014 -0500
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2006, 2009, 2013, 2014, 2015 The OpenSSL Project.
.\" All rights reserved.
.\"
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: August 28 2017 $
.Dt EVP_PKEY_CTX_CTRL 3
.Os
.Sh NAME
.Nm EVP_PKEY_CTX_ctrl ,
.Nm EVP_PKEY_CTX_ctrl_str ,
.Nm EVP_PKEY_CTX_set_signature_md ,
.Nm EVP_PKEY_CTX_set_rsa_padding ,







|







46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt EVP_PKEY_CTX_CTRL 3
.Os
.Sh NAME
.Nm EVP_PKEY_CTX_ctrl ,
.Nm EVP_PKEY_CTX_ctrl_str ,
.Nm EVP_PKEY_CTX_set_signature_md ,
.Nm EVP_PKEY_CTX_set_rsa_padding ,
280
281
282
283
284
285
286

287
288
289
290
291


.Sh SEE ALSO
.Xr EVP_PKEY_CTX_new 3 ,
.Xr EVP_PKEY_decrypt 3 ,
.Xr EVP_PKEY_derive 3 ,
.Xr EVP_PKEY_encrypt 3 ,
.Xr EVP_PKEY_get_default_digest_nid 3 ,
.Xr EVP_PKEY_keygen 3 ,

.Xr EVP_PKEY_sign 3 ,
.Xr EVP_PKEY_verify 3 ,
.Xr EVP_PKEY_verify_recover 3
.Sh HISTORY
These functions were first added to OpenSSL 1.0.0.









>




|
>
>
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
.Sh SEE ALSO
.Xr EVP_PKEY_CTX_new 3 ,
.Xr EVP_PKEY_decrypt 3 ,
.Xr EVP_PKEY_derive 3 ,
.Xr EVP_PKEY_encrypt 3 ,
.Xr EVP_PKEY_get_default_digest_nid 3 ,
.Xr EVP_PKEY_keygen 3 ,
.Xr EVP_PKEY_meth_set_ctrl 3 ,
.Xr EVP_PKEY_sign 3 ,
.Xr EVP_PKEY_verify 3 ,
.Xr EVP_PKEY_verify_recover 3
.Sh HISTORY
These functions first appeared in OpenSSL 1.0.0
and have been available since
.Ox 4.9 .
Changes to jni/libressl/man/EVP_PKEY_CTX_new.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: EVP_PKEY_CTX_new.3,v 1.5 2017/04/10 17:45:06 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2006, 2009, 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: EVP_PKEY_CTX_new.3,v 1.7 2018/03/23 04:34:23 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2006, 2009, 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: April 10 2017 $
.Dt EVP_PKEY_CTX_NEW 3
.Os
.Sh NAME
.Nm EVP_PKEY_CTX_new ,
.Nm EVP_PKEY_CTX_new_id ,
.Nm EVP_PKEY_CTX_dup ,
.Nm EVP_PKEY_CTX_free







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt EVP_PKEY_CTX_NEW 3
.Os
.Sh NAME
.Nm EVP_PKEY_CTX_new ,
.Nm EVP_PKEY_CTX_new_id ,
.Nm EVP_PKEY_CTX_dup ,
.Nm EVP_PKEY_CTX_free
119
120
121
122
123
124
125

126
127
128
129


130
131
132
133
134
135
136
137
138
139
.Fn EVP_PKEY_CTX_dup
return either the newly allocated
.Vt EVP_PKEY_CTX
structure or
.Dv NULL
if an error occurred.
.Sh SEE ALSO

.Xr EVP_PKEY_new 3 ,
.Xr X25519 3
.Sh HISTORY
These functions were first added to OpenSSL 1.0.0.


.Sh CAVEATS
The
.Vt EVP_PKEY_CTX
structure is an opaque public key algorithm context used by the OpenSSL
high level public key API.
Contexts
.Sy MUST NOT
be shared between threads.
It is not permissible to use the same context simultaneously in two
threads.







>



|
>
>










119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
.Fn EVP_PKEY_CTX_dup
return either the newly allocated
.Vt EVP_PKEY_CTX
structure or
.Dv NULL
if an error occurred.
.Sh SEE ALSO
.Xr EVP_PKEY_meth_set_init 3 ,
.Xr EVP_PKEY_new 3 ,
.Xr X25519 3
.Sh HISTORY
These functions first appeared in OpenSSL 1.0.0
and have been available since
.Ox 4.9 .
.Sh CAVEATS
The
.Vt EVP_PKEY_CTX
structure is an opaque public key algorithm context used by the OpenSSL
high level public key API.
Contexts
.Sy MUST NOT
be shared between threads.
It is not permissible to use the same context simultaneously in two
threads.
Added jni/libressl/man/EVP_PKEY_asn1_get_count.3.






































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
.\" $OpenBSD: EVP_PKEY_asn1_get_count.3,v 1.2 2018/03/23 04:34:23 schwarze Exp $
.\" full merge up to: OpenSSL 751148e2 Oct 27 00:11:11 2017 +0200
.\"
.\" This file was written by Richard Levitte <levitte@openssl.org>.
.\" Copyright (c) 2017 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\"
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in
.\"    the documentation and/or other materials provided with the
.\"    distribution.
.\"
.\" 3. All advertising materials mentioning features or use of this
.\"    software must display the following acknowledgment:
.\"    "This product includes software developed by the OpenSSL Project
.\"    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
.\"
.\" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
.\"    endorse or promote products derived from this software without
.\"    prior written permission. For written permission, please contact
.\"    openssl-core@openssl.org.
.\"
.\" 5. Products derived from this software may not be called "OpenSSL"
.\"    nor may "OpenSSL" appear in their names without prior written
.\"    permission of the OpenSSL Project.
.\"
.\" 6. Redistributions of any form whatsoever must retain the following
.\"    acknowledgment:
.\"    "This product includes software developed by the OpenSSL Project
.\"    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
.\" EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
.\" ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt EVP_PKEY_ASN1_GET_COUNT 3
.Os
.Sh NAME
.Nm EVP_PKEY_asn1_get_count ,
.Nm EVP_PKEY_asn1_get0 ,
.Nm EVP_PKEY_asn1_find ,
.Nm EVP_PKEY_asn1_find_str ,
.Nm EVP_PKEY_asn1_get0_info
.Nd enumerate public key ASN.1 methods
.Sh SYNOPSIS
.In openssl/evp.h
.Ft int
.Fn EVP_PKEY_asn1_get_count void
.Ft const EVP_PKEY_ASN1_METHOD *
.Fo EVP_PKEY_asn1_get0
.Fa "int idx"
.Fc
.Ft const EVP_PKEY_ASN1_METHOD *
.Fo EVP_PKEY_asn1_find
.Fa "ENGINE **pe"
.Fa "int type"
.Fc
.Ft const EVP_PKEY_ASN1_METHOD *
.Fo EVP_PKEY_asn1_find_str
.Fa "ENGINE **pe"
.Fa "const char *str"
.Fa "int len"
.Fc
.Ft int
.Fo EVP_PKEY_asn1_get0_info
.Fa "int *ppkey_id"
.Fa "int *pkey_base_id"
.Fa "int *ppkey_flags"
.Fa "const char **pinfo"
.Fa "const char **ppem_str"
.Fa "const EVP_PKEY_ASN1_METHOD *ameth"
.Fc
.Sh DESCRIPTION
.Fn EVP_PKEY_asn1_get_count
returns a count of the number of public key ASN.1 methods available.
It includes standard methods and any methods added by the application.
.Pp
.Fn EVP_PKEY_asn1_get0
returns the public key ASN.1 method
.Fa idx .
The value of
.Fa idx
must be in the range from zero to
.Fn EVP_PKEY_asn1_get_count
\- 1.
.Pp
.Fn EVP_PKEY_asn1_find
looks up the method with NID
.Fa type .
If
.Fa pe
is not
.Dv NULL ,
it first looks for an engine implementing a method for the NID
.Fa type .
If one is found,
.Pf * Fa pe
is set to that engine and the method from that engine is returned instead.
.Pp
.Fn EVP_PKEY_asn1_find_str
looks up the method with PEM type string
.Fa str .
Just like
.Fn EVP_PKEY_asn1_find ,
if
.Fa pe
is not
.Dv NULL ,
methods from engines are preferred.
.Pp
.Fn EVP_PKEY_asn1_get0_info
retrieves the public key ID, the base public key ID (both NIDs), any flags,
the method description and the PEM type string associated with the public
key ASN.1 method
.Sy *ameth .
.Pp
.Fn EVP_PKEY_asn1_get_count ,
.Fn EVP_PKEY_asn1_get0 ,
.Fn EVP_PKEY_asn1_find
and
.Fn EVP_PKEY_asn1_find_str
are not thread safe, but as long as all
.Vt EVP_PKEY_ASN1_METHOD
objects are added before the application gets threaded, using them is
safe.
See
.Xr EVP_PKEY_asn1_add0 3 .
.Sh RETURN VALUES
.Fn EVP_PKEY_asn1_get_count
returns the number of available public key methods.
.Pp
.Fn EVP_PKEY_asn1_get0
returns a public key method or
.Dv NULL
if
.Fa idx
is out of range.
.Pp
.Fn EVP_PKEY_asn1_get0_info
returns 1 on success or 0 on failure.
.Sh SEE ALSO
.Xr EVP_PKEY_asn1_add0 3 ,
.Xr EVP_PKEY_asn1_new 3
.Sh HISTORY
These functions first appeared in OpenSSL 1.0.0
and have been available since
.Ox 4.9 .
Added jni/libressl/man/EVP_PKEY_asn1_new.3.






















































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
.\" $OpenBSD: EVP_PKEY_asn1_new.3,v 1.2 2018/03/23 04:34:23 schwarze Exp $
.\" selective merge up to:
.\" OpenSSL man3/EVP_PKEY_ASN1_METHOD b0004708 Nov 1 00:45:24 2017 +0800
.\"
.\" This file was written by Richard Levitte <levitte@openssl.org>
.\" Copyright (c) 2017 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\"
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in
.\"    the documentation and/or other materials provided with the
.\"    distribution.
.\"
.\" 3. All advertising materials mentioning features or use of this
.\"    software must display the following acknowledgment:
.\"    "This product includes software developed by the OpenSSL Project
.\"    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
.\"
.\" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
.\"    endorse or promote products derived from this software without
.\"    prior written permission. For written permission, please contact
.\"    openssl-core@openssl.org.
.\"
.\" 5. Products derived from this software may not be called "OpenSSL"
.\"    nor may "OpenSSL" appear in their names without prior written
.\"    permission of the OpenSSL Project.
.\"
.\" 6. Redistributions of any form whatsoever must retain the following
.\"    acknowledgment:
.\"    "This product includes software developed by the OpenSSL Project
.\"    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
.\" EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
.\" ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt EVP_PKEY_ASN1_METHOD 3
.Os
.Sh NAME
.Nm EVP_PKEY_asn1_new ,
.Nm EVP_PKEY_asn1_copy ,
.Nm EVP_PKEY_asn1_free ,
.Nm EVP_PKEY_asn1_add0 ,
.Nm EVP_PKEY_asn1_add_alias ,
.Nm EVP_PKEY_asn1_set_public ,
.Nm EVP_PKEY_asn1_set_private ,
.Nm EVP_PKEY_asn1_set_param ,
.Nm EVP_PKEY_asn1_set_free ,
.Nm EVP_PKEY_asn1_set_ctrl
.Nd manipulating and registering an EVP_PKEY_ASN1_METHOD structure
.Sh SYNOPSIS
.In openssl/evp.h
.Ft EVP_PKEY_ASN1_METHOD *
.Fo EVP_PKEY_asn1_new
.Fa "int id"
.Fa "int flags"
.Fa "const char *pem_str"
.Fa "const char *info"
.Fc
.Ft void
.Fo EVP_PKEY_asn1_copy
.Fa "EVP_PKEY_ASN1_METHOD *dst"
.Fa "const EVP_PKEY_ASN1_METHOD *src"
.Fc
.Ft void
.Fo EVP_PKEY_asn1_free
.Fa "EVP_PKEY_ASN1_METHOD *ameth"
.Fc
.Ft int
.Fo EVP_PKEY_asn1_add0
.Fa "const EVP_PKEY_ASN1_METHOD *ameth"
.Fc
.Ft int
.Fo EVP_PKEY_asn1_add_alias
.Fa "int to"
.Fa "int from"
.Fc
.Ft void
.Fo EVP_PKEY_asn1_set_public
.Fa "EVP_PKEY_ASN1_METHOD *ameth"
.Fa "int (*pub_decode)(EVP_PKEY *pk, X509_PUBKEY *pub)"
.Fa "int (*pub_encode)(X509_PUBKEY *pub, const EVP_PKEY *pk)"
.Fa "int (*pub_cmp)(const EVP_PKEY *a, const EVP_PKEY *b)"
.Fa "int (*pub_print)(BIO *out, const EVP_PKEY *pkey, int indent,\
 ASN1_PCTX *pctx)"
.Fa "int (*pkey_size)(const EVP_PKEY *pk)"
.Fa "int (*pkey_bits)(const EVP_PKEY *pk)"
.Fc
.Ft void
.Fo EVP_PKEY_asn1_set_private
.Fa "EVP_PKEY_ASN1_METHOD *ameth"
.Fa "int (*priv_decode)(EVP_PKEY *pk, const PKCS8_PRIV_KEY_INFO *p8inf)"
.Fa "int (*priv_encode)(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pk)"
.Fa "int (*priv_print)(BIO *out, const EVP_PKEY *pkey, int indent,\
 ASN1_PCTX *pctx)"
.Fc
.Ft void
.Fo EVP_PKEY_asn1_set_param
.Fa "EVP_PKEY_ASN1_METHOD *ameth"
.Fa "int (*param_decode)(EVP_PKEY *pkey, const unsigned char **pder,\
 int derlen)"
.Fa "int (*param_encode)(const EVP_PKEY *pkey, unsigned char **pder)"
.Fa "int (*param_missing)(const EVP_PKEY *pk)"
.Fa "int (*param_copy)(EVP_PKEY *to, const EVP_PKEY *from)"
.Fa "int (*param_cmp)(const EVP_PKEY *a, const EVP_PKEY *b)"
.Fa "int (*param_print)(BIO *out, const EVP_PKEY *pkey, int indent,\
 ASN1_PCTX *pctx)"
.Fc
.Ft void
.Fo EVP_PKEY_asn1_set_free
.Fa "EVP_PKEY_ASN1_METHOD *ameth"
.Fa "void (*pkey_free)(EVP_PKEY *pkey)"
.Fc
.Ft void
.Fo EVP_PKEY_asn1_set_ctrl
.Fa "EVP_PKEY_ASN1_METHOD *ameth"
.Fa "int (*pkey_ctrl)(EVP_PKEY *pkey, int op, long arg1, void *arg2)"
.Fc
.Sh DESCRIPTION
.Vt EVP_PKEY_ASN1_METHOD
is a structure which holds a set of ASN.1 conversion, printing and
information methods for a specific public key algorithm.
.Pp
There are two places where the
.Vt EVP_PKEY_ASN1_METHOD
objects are stored: one is a built-in array representing the standard
methods for different algorithms, and the other one is a stack of
user-defined application-specific methods, which can be manipulated by
using
.Fn EVP_PKEY_asn1_add0 .
.Ss Methods
The methods are the underlying implementations of a particular public
key algorithm present by the
.Vt EVP_PKEY
object.
.Bd -unfilled
.Ft int Fo (*pub_decode)
.Fa "EVP_PKEY *pk"
.Fa "X509_PUBKEY *pub"
.Fc
.Ft int Fo (*pub_encode)
.Fa "X509_PUBKEY *pub"
.Fa "const EVP_PKEY *pk"
.Fc
.Ft int Fo (*pub_cmp)
.Fa "const EVP_PKEY *a"
.Fa "const EVP_PKEY *b"
.Fc
.Ft int Fo (*pub_print)
.Fa "BIO *out"
.Fa "const EVP_PKEY *pkey"
.Fa "int indent"
.Fa "ASN1_PCTX *pctx"
.Fc
.Ed
.Pp
The
.Fn pub_decode
and
.Fn pub_encode
methods are called to decode and encode
.Vt X509_PUBKEY
ASN.1 parameters to and from
.Fa pk .
They must return 0 on error and 1 on success.
They are called by
.Xr X509_PUBKEY_get 3
and
.Xr X509_PUBKEY_set 3 .
.Pp
The
.Fn pub_cmp
method is called when two public keys are compared.
It must return 1 when the keys are equal and 0 otherwise.
It is called by
.Xr EVP_PKEY_cmp 3 .
.Pp
The
.Fn pub_print
method is called to print a public key in humanly readable text to
.Fa out ,
indented
.Fa indent
spaces.
It must return 0 on error and 1 on success.
It is called by
.Xr EVP_PKEY_print_public 3 .
.Bd -unfilled
.Ft int Fo (*priv_decode)
.Fa "EVP_PKEY *pk"
.Fa "const PKCS8_PRIV_KEY_INFO *p8inf"
.Fc
.Ft int Fo (*priv_encode)
.Fa "PKCS8_PRIV_KEY_INFO *p8"
.Fa "const EVP_PKEY *pk"
.Fc
.Ft int Fo (*priv_print)
.Fa "BIO *out"
.Fa "const EVP_PKEY *pkey"
.Fa "int indent"
.Fa "ASN1_PCTX *pctx"
.Fc
.Ed
.Pp
The
.Fn priv_decode
and
.Fn priv_encode
methods are called to decode and encode
.Vt PKCS8_PRIV_KEY_INFO
form private key to and from
.Fa pk .
They must return 0 on error, 1 on success.
They are called by
.Fn EVP_PKCS82PKEY
and
.Fn EVP_PKEY2PKCS8 .
.Pp
The
.Fn priv_print
method is called to print a private key in humanly readable text to
.Fa out ,
indented
.Fa indent
spaces.
It must return 0 on error and 1 on success.
It is called by
.Xr EVP_PKEY_print_private 3 .
.Bd -unfilled
.Ft int Fn (*pkey_size) "const EVP_PKEY *pk"
.Ft int Fn (*pkey_bits) "const EVP_PKEY *pk";
.Ed
.Pp
The
.Fn pkey_size
method returns the key size in bytes.
It is called by
.Xr EVP_PKEY_size 3 .
.Pp
The
.Fn pkey_bits
method returns the key size in bits.
It's called by
.Fn EVP_PKEY_bits .
.Bd -unfilled
.Ft int Fo (*param_decode)
.Fa "EVP_PKEY *pkey"
.Fa "const unsigned char **pder"
.Fa "int derlen"
.Fc
.Ft int Fo (*param_encode)
.Fa "const EVP_PKEY *pkey"
.Fa "unsigned char **pder"
.Fc
.Ft int Fo (*param_missing)
.Fa "const EVP_PKEY *pk"
.Fc
.Ft int Fo (*param_copy)
.Fa "EVP_PKEY *to"
.Fa "const EVP_PKEY *from"
.Fc
.Ft int Fo (*param_cmp)
.Fa "const EVP_PKEY *a"
.Fa "const EVP_PKEY *b"
.Fc
.Ft int Fo (*param_print)
.Fa "BIO *out"
.Fa "const EVP_PKEY *pkey"
.Fa "int indent"
.Fa "ASN1_PCTX *pctx"
.Fc
.Ed
.Pp
The
.Fn param_decode
and
.Fn param_encode
methods are called to decode and encode DER formatted parameters to and from
.Fa pk .
They must return 0 on error and 1 on success.
They are called by
.Fn PEM_read_bio_Parameters .
.Pp
The
.Fn param_missing
method returns 0 if a key parameter is missing or otherwise 1.
It is called by
.Xr EVP_PKEY_missing_parameters 3 .
.Pp
The
.Fn param_copy
method copies key parameters from
.Fa from
to
.Fa to .
It must return 0 on error and 1 on success.
It is called by
.Xr EVP_PKEY_copy_parameters 3 .
.Pp
The
.Fn param_cmp
method compares the parameters of the keys
.Fa a
and
.Fa b .
It must return 1 when the keys are equal, 0 when not equal, and a
negative number on error.
It is called by
.Xr EVP_PKEY_cmp_parameters 3 .
.Pp
The
.Fn param_print
method prints the private key parameters in humanly readable text to
.Fa out ,
indented
.Fa indent
spaces.
It must return 0 on error and 1 on success.
It is called by
.Xr EVP_PKEY_print_params 3 .
.Bd -unfilled
.Ft void Fn (*pkey_free) "EVP_PKEY *pkey"
.Ed
.Pp
The
.Fn pkey_free
method helps freeing the internals of
.Fa pkey .
It is called by
.Xr EVP_PKEY_free 3 ,
.Fn EVP_PKEY_set_type ,
.Fn EVP_PKEY_set_type_str ,
and
.Fn EVP_PKEY_assign .
.Bd -unfilled
.Ft int Fo (*pkey_ctrl)
.Fa "EVP_PKEY *pkey"
.Fa "int op"
.Fa "long arg1"
.Fa "void *arg2"
.Fc
.Ed
.Pp
The
.Fn pkey_ctrl
method adds extra algorithm specific control.
It is called by
.Xr EVP_PKEY_get_default_digest_nid 3 ,
.Fn PKCS7_SIGNER_INFO_set ,
.Fn PKCS7_RECIP_INFO_set ,
and other functions.
.Ss Functions
.Fn EVP_PKEY_asn1_new
creates and returns a new
.Vt EVP_PKEY_ASN1_METHOD
object, and associates the given
.Fa id ,
.Fa flags ,
.Fa pem_str
and
.Fa info .
.Fa id
is a NID,
.Fa pem_str
is the PEM type string,
.Fa info
is a descriptive string.
If
.Dv ASN1_PKEY_SIGPARAM_NULL
is set in
.Fa flags ,
the signature algorithm parameters are given the type
.Dv V_ASN1_NULL
by default, otherwise they will be given the type
.Dv V_ASN1_UNDEF
(i.e. the parameter is omitted).
See
.Xr X509_ALGOR_set0 3
for more information.
.Pp
.Fn EVP_PKEY_asn1_copy
copies an
.Vt EVP_PKEY_ASN1_METHOD
object from
.Fa src
to
.Fa dst .
This function is not thread safe, it is recommended to only use this when
initializing the application.
.Pp
.Fn EVP_PKEY_asn1_free
frees an existing
.Vt EVP_PKEY_ASN1_METHOD
pointed by
.Fa ameth .
.Pp
.Fn EVP_PKEY_asn1_add0
adds
.Fa ameth
to the user defined stack of methods unless another
.Vt EVP_PKEY_ASN1_METHOD
with the same NID is already there.
This function is not thread safe, it is recommended to only use this when
initializing the application.
.Pp
.Fn EVP_PKEY_asn1_add_alias
creates an alias with the NID
.Fa to
for the
.Vt EVP_PKEY_ASN1_METHOD
with NID
.Fa from
unless another
.Vt EVP_PKEY_ASN1_METHOD
with the same NID is already added.
This function is not thread safe, it's recommended to only use this when
initializing the application.
.Pp
.Fn EVP_PKEY_asn1_set_public ,
.Fn EVP_PKEY_asn1_set_private ,
.Fn EVP_PKEY_asn1_set_param ,
.Fn EVP_PKEY_asn1_set_free ,
and
.Fn EVP_PKEY_asn1_set_ctrl
set the diverse methods of the given
.Vt EVP_PKEY_ASN1_METHOD
object.
.Sh RETURN VALUES
.Fn EVP_PKEY_asn1_new
returns a pointer to an
.Vt EVP_PKEY_ASN1_METHOD
object or
.Dv NULL
on error.
.Pp
.Fn EVP_PKEY_asn1_add0
and
.Fn EVP_PKEY_asn1_add_alias
return 0 on error or 1 on success.
.Sh HISTORY
These functions first appeared in OpenSSL 1.0.0
and have been available since
.Ox 4.9 .
Changes to jni/libressl/man/EVP_PKEY_cmp.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: EVP_PKEY_cmp.3,v 1.4 2016/11/27 15:22:39 schwarze Exp $
.\"	OpenSSL 05ea606a May 20 20:52:46 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2006, 2013, 2014, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: EVP_PKEY_cmp.3,v 1.8 2018/03/23 00:09:11 schwarze Exp $
.\"	OpenSSL 05ea606a May 20 20:52:46 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2006, 2013, 2014, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 27 2016 $
.Dt EVP_PKEY_CMP 3
.Os
.Sh NAME
.Nm EVP_PKEY_missing_parameters ,
.Nm EVP_PKEY_copy_parameters ,
.Nm EVP_PKEY_cmp_parameters ,
.Nm EVP_PKEY_cmp







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt EVP_PKEY_CMP 3
.Os
.Sh NAME
.Nm EVP_PKEY_missing_parameters ,
.Nm EVP_PKEY_copy_parameters ,
.Nm EVP_PKEY_cmp_parameters ,
.Nm EVP_PKEY_cmp
137
138
139
140
141
142
143

144
145













The functions
.Fn EVP_PKEY_cmp_parameters
and
.Fn EVP_PKEY_cmp
return 1 if the keys match, 0 if they don't match, -1 if the key types
are different and -2 if the operation is not supported.
.Sh SEE ALSO

.Xr EVP_PKEY_CTX_new 3 ,
.Xr EVP_PKEY_keygen 3




















>


>
>
>
>
>
>
>
>
>
>
>
>
>
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
The functions
.Fn EVP_PKEY_cmp_parameters
and
.Fn EVP_PKEY_cmp
return 1 if the keys match, 0 if they don't match, -1 if the key types
are different and -2 if the operation is not supported.
.Sh SEE ALSO
.Xr EVP_PKEY_asn1_set_public 3 ,
.Xr EVP_PKEY_CTX_new 3 ,
.Xr EVP_PKEY_keygen 3
.Sh HISTORY
.Fn EVP_PKEY_missing_parameters
and
.Fn EVP_PKEY_copy_parameters
appeared in SSLeay 0.8.1b or earlier.
.Fn EVP_PKEY_cmp_parameters
first appeared in SSLeay 0.9.0.
These functions have been available since
.Ox 2.4 .
.Pp
.Fn EVP_PKEY_cmp
first appeared in OpenSSL 0.9.8 and has been available since
.Ox 4.5 .
Changes to jni/libressl/man/EVP_PKEY_decrypt.3.
1
2
3
4
5

6
7
8
9
10
11
12
.\"	$OpenBSD: EVP_PKEY_decrypt.3,v 1.4 2016/11/27 15:27:19 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2006, 2009, 2013 The OpenSSL Project.  All rights reserved.

.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
|
|


|
>







1
2
3
4
5
6
7
8
9
10
11
12
13
.\" $OpenBSD: EVP_PKEY_decrypt.3,v 1.7 2018/03/23 04:34:23 schwarze Exp $
.\" full merge up to: OpenSSL 48e5119a Jan 19 10:49:22 2018 +0100
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2006, 2009, 2013, 2018 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 27 2016 $
.Dt EVP_PKEY_DECRYPT 3
.Os
.Sh NAME
.Nm EVP_PKEY_decrypt_init ,
.Nm EVP_PKEY_decrypt
.Nd decrypt using a public key algorithm
.Sh SYNOPSIS







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt EVP_PKEY_DECRYPT 3
.Os
.Sh NAME
.Nm EVP_PKEY_decrypt_init ,
.Nm EVP_PKEY_decrypt
.Nd decrypt using a public key algorithm
.Sh SYNOPSIS
125
126
127
128
129
130
131

132
133
134


135
136
137
138
139
140
141
142
143
144
145
.Sh EXAMPLES
Decrypt data using OAEP (for RSA keys):
.Bd -literal -offset indent
#include <openssl/evp.h>
#include <openssl/rsa.h>

EVP_PKEY_CTX *ctx;

unsigned char *out, *in;
size_t outlen, inlen;
EVP_PKEY *key;


/* NB: assumes key in, inlen are already set up
 * and that key is an RSA private key
 */
ctx = EVP_PKEY_CTX_new(key);
if (!ctx)
	/* Error occurred */
if (EVP_PKEY_decrypt_init(ctx) <= 0)
	/* Error */
if (EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_OAEP_PADDING) <= 0)
	/* Error */








>



>
>
|
|

|







126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
.Sh EXAMPLES
Decrypt data using OAEP (for RSA keys):
.Bd -literal -offset indent
#include <openssl/evp.h>
#include <openssl/rsa.h>

EVP_PKEY_CTX *ctx;
ENGINE *eng;
unsigned char *out, *in;
size_t outlen, inlen;
EVP_PKEY *key;

/*
 * Assumes that key, eng, in, and inlen are already set up
 * and that key is an RSA private key.
 */
ctx = EVP_PKEY_CTX_new(key, eng);
if (!ctx)
	/* Error occurred */
if (EVP_PKEY_decrypt_init(ctx) <= 0)
	/* Error */
if (EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_OAEP_PADDING) <= 0)
	/* Error */

157
158
159
160
161
162
163

164
165
166
167



168


/* Decrypted data is outlen bytes written to buffer out */
.Ed
.Sh SEE ALSO
.Xr EVP_PKEY_CTX_new 3 ,
.Xr EVP_PKEY_derive 3 ,
.Xr EVP_PKEY_encrypt 3 ,

.Xr EVP_PKEY_sign 3 ,
.Xr EVP_PKEY_verify 3 ,
.Xr EVP_PKEY_verify_recover 3
.Sh HISTORY



These functions were first added to OpenSSL 1.0.0.








>




>
>
>
|
>
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177

/* Decrypted data is outlen bytes written to buffer out */
.Ed
.Sh SEE ALSO
.Xr EVP_PKEY_CTX_new 3 ,
.Xr EVP_PKEY_derive 3 ,
.Xr EVP_PKEY_encrypt 3 ,
.Xr EVP_PKEY_meth_set_decrypt 3 ,
.Xr EVP_PKEY_sign 3 ,
.Xr EVP_PKEY_verify 3 ,
.Xr EVP_PKEY_verify_recover 3
.Sh HISTORY
.Fn EVP_PKEY_decrypt_init
and
.Fn EVP_PKEY_decrypt
first appeared in OpenSSL 1.0.0 and have been available since
.Ox 4.9 .
Changes to jni/libressl/man/EVP_PKEY_derive.3.
1
2
3
4
5

6
7
8
9
10
11
12
.\"	$OpenBSD: EVP_PKEY_derive.3,v 1.5 2017/04/10 17:45:06 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2006, 2009, 2013 The OpenSSL Project.  All rights reserved.

.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
|
|


|
>







1
2
3
4
5
6
7
8
9
10
11
12
13
.\" $OpenBSD: EVP_PKEY_derive.3,v 1.8 2018/03/23 04:34:23 schwarze Exp $
.\" full merge up to: OpenSSL 48e5119a Jan 19 10:49:22 2018 +0100
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2006, 2009, 2013, 2018 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: April 10 2017 $
.Dt EVP_PKEY_DERIVE 3
.Os
.Sh NAME
.Nm EVP_PKEY_derive_init ,
.Nm EVP_PKEY_derive_set_peer ,
.Nm EVP_PKEY_derive
.Nd derive public key algorithm shared secret







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt EVP_PKEY_DERIVE 3
.Os
.Sh NAME
.Nm EVP_PKEY_derive_init ,
.Nm EVP_PKEY_derive_set_peer ,
.Nm EVP_PKEY_derive
.Nd derive public key algorithm shared secret
128
129
130
131
132
133
134

135
136
137
138
139

140
141
142
143
144
145
146
147
.Sh EXAMPLES
Derive shared secret (for example DH or EC keys):
.Bd -literal -offset indent
#include <openssl/evp.h>
#include <openssl/rsa.h>

EVP_PKEY_CTX *ctx;

unsigned char *skey;
size_t skeylen;
EVP_PKEY *pkey, *peerkey;
/* NB: assumes pkey, peerkey have been already set up */


ctx = EVP_PKEY_CTX_new(pkey);
if (!ctx)
	/* Error occurred */
if (EVP_PKEY_derive_init(ctx) <= 0)
	/* Error */
if (EVP_PKEY_derive_set_peer(ctx, peerkey) <= 0)
	/* Error */








>



<

>
|







129
130
131
132
133
134
135
136
137
138
139

140
141
142
143
144
145
146
147
148
149
.Sh EXAMPLES
Derive shared secret (for example DH or EC keys):
.Bd -literal -offset indent
#include <openssl/evp.h>
#include <openssl/rsa.h>

EVP_PKEY_CTX *ctx;
ENGINE *eng;
unsigned char *skey;
size_t skeylen;
EVP_PKEY *pkey, *peerkey;


/* Assumes that pkey, eng, and peerkey have already been set up. */
ctx = EVP_PKEY_CTX_new(pkey, eng);
if (!ctx)
	/* Error occurred */
if (EVP_PKEY_derive_init(ctx) <= 0)
	/* Error */
if (EVP_PKEY_derive_set_peer(ctx, peerkey) <= 0)
	/* Error */

159
160
161
162
163
164
165

166
167
168
169
170




171


/* Shared secret is skey bytes written to buffer skey */
.Ed
.Sh SEE ALSO
.Xr EVP_PKEY_CTX_new 3 ,
.Xr EVP_PKEY_decrypt 3 ,
.Xr EVP_PKEY_encrypt 3 ,

.Xr EVP_PKEY_sign 3 ,
.Xr EVP_PKEY_verify 3 ,
.Xr EVP_PKEY_verify_recover 3 ,
.Xr X25519 3
.Sh HISTORY




These functions were first added to OpenSSL 1.0.0.








>





>
>
>
>
|
>
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179

/* Shared secret is skey bytes written to buffer skey */
.Ed
.Sh SEE ALSO
.Xr EVP_PKEY_CTX_new 3 ,
.Xr EVP_PKEY_decrypt 3 ,
.Xr EVP_PKEY_encrypt 3 ,
.Xr EVP_PKEY_meth_set_derive 3 ,
.Xr EVP_PKEY_sign 3 ,
.Xr EVP_PKEY_verify 3 ,
.Xr EVP_PKEY_verify_recover 3 ,
.Xr X25519 3
.Sh HISTORY
.Fn EVP_PKEY_derive_init ,
.Fn EVP_PKEY_derive_set_peer ,
and
.Fn EVP_PKEY_derive
first appeared in OpenSSL 1.0.0 and have been available since
.Ox 4.9 .
Changes to jni/libressl/man/EVP_PKEY_encrypt.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: EVP_PKEY_encrypt.3,v 1.4 2016/11/27 15:23:29 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2006, 2009, 2013, 2014, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: EVP_PKEY_encrypt.3,v 1.6 2018/03/23 04:34:23 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2006, 2009, 2013, 2014, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 27 2016 $
.Dt EVP_PKEY_ENCRYPT 3
.Os
.Sh NAME
.Nm EVP_PKEY_encrypt_init ,
.Nm EVP_PKEY_encrypt
.Nd encrypt using a public key algorithm
.Sh SYNOPSIS







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt EVP_PKEY_ENCRYPT 3
.Os
.Sh NAME
.Nm EVP_PKEY_encrypt_init ,
.Nm EVP_PKEY_encrypt
.Nd encrypt using a public key algorithm
.Sh SYNOPSIS
168
169
170
171
172
173
174

175
176
177
178



179


/* Encrypted data is outlen bytes written to buffer out */
.Ed
.Sh SEE ALSO
.Xr EVP_PKEY_CTX_new 3 ,
.Xr EVP_PKEY_decrypt 3 ,
.Xr EVP_PKEY_derive 3 ,

.Xr EVP_PKEY_sign 3 ,
.Xr EVP_PKEY_verify 3 ,
.Xr EVP_PKEY_verify_recover 3
.Sh HISTORY



These functions were first added to OpenSSL 1.0.0.








>




>
>
>
|
>
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184

/* Encrypted data is outlen bytes written to buffer out */
.Ed
.Sh SEE ALSO
.Xr EVP_PKEY_CTX_new 3 ,
.Xr EVP_PKEY_decrypt 3 ,
.Xr EVP_PKEY_derive 3 ,
.Xr EVP_PKEY_meth_set_encrypt 3 ,
.Xr EVP_PKEY_sign 3 ,
.Xr EVP_PKEY_verify 3 ,
.Xr EVP_PKEY_verify_recover 3
.Sh HISTORY
.Fn EVP_PKEY_encrypt_init
and
.Fn EVP_PKEY_encrypt
first appeared in OpenSSL 1.0.0 and have been available since
.Ox 4.9 .
Changes to jni/libressl/man/EVP_PKEY_get_default_digest_nid.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: EVP_PKEY_get_default_digest_nid.3,v 1.2 2016/11/27 15:27:19 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2006, 2009, 2013 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: EVP_PKEY_get_default_digest_nid.3,v 1.4 2018/03/23 04:34:23 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2006, 2009, 2013 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 27 2016 $
.Dt EVP_PKEY_GET_DEFAULT_DIGEST_NID 3
.Os
.Sh NAME
.Nm EVP_PKEY_get_default_digest_nid
.Nd get default signature digest
.Sh SYNOPSIS
.In openssl/evp.h







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt EVP_PKEY_GET_DEFAULT_DIGEST_NID 3
.Os
.Sh NAME
.Nm EVP_PKEY_get_default_digest_nid
.Nd get default signature digest
.Sh SYNOPSIS
.In openssl/evp.h
77
78
79
80
81
82
83

84
85
86
87
88
89

90

function returns 1 if the message digest is advisory (that is other
digests can be used) and 2 if it is mandatory (other digests cannot be
used).
It returns 0 or a negative value for failure.
In particular, a return value of -2 indicates the operation is not
supported by the public key algorithm.
.Sh SEE ALSO

.Xr EVP_PKEY_CTX_ctrl 3 ,
.Xr EVP_PKEY_CTX_new 3 ,
.Xr EVP_PKEY_sign 3 ,
.Xr EVP_PKEY_verify 3 ,
.Xr EVP_PKEY_verify_recover 3
.Sh HISTORY

This function was first added to OpenSSL 1.0.0.








>






>
|
>
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
function returns 1 if the message digest is advisory (that is other
digests can be used) and 2 if it is mandatory (other digests cannot be
used).
It returns 0 or a negative value for failure.
In particular, a return value of -2 indicates the operation is not
supported by the public key algorithm.
.Sh SEE ALSO
.Xr EVP_PKEY_asn1_set_ctrl 3 ,
.Xr EVP_PKEY_CTX_ctrl 3 ,
.Xr EVP_PKEY_CTX_new 3 ,
.Xr EVP_PKEY_sign 3 ,
.Xr EVP_PKEY_verify 3 ,
.Xr EVP_PKEY_verify_recover 3
.Sh HISTORY
.Fn EVP_PKEY_get_default_digest_nid
first appeared in OpenSSL 1.0.0 and has been available since
.Ox 4.9 .
Changes to jni/libressl/man/EVP_PKEY_keygen.3.
1
2

3
4
5

6
7
8
9
10
11
12
.\"	$OpenBSD: EVP_PKEY_keygen.3,v 1.6 2017/08/01 14:57:03 schwarze Exp $
.\"	OpenSSL 99d63d466 Oct 26 13:56:48 2016 -0400

.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2006, 2009, 2013, 2015, 2016 The OpenSSL Project.  All rights reserved.

.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
|
|
>


|
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
.\" $OpenBSD: EVP_PKEY_keygen.3,v 1.9 2018/03/23 04:34:23 schwarze Exp $
.\" full merge up to: OpenSSL e9b77246 Jan 20 19:58:49 2017 +0100
.\" selective merge up to: OpenSSL 48e5119a Jan 19 10:49:22 2018 +0100
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2006, 2009, 2013, 2015, 2016, 2018 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: August 1 2017 $
.Dt EVP_PKEY_KEYGEN 3
.Os
.Sh NAME
.Nm EVP_PKEY_keygen_init ,
.Nm EVP_PKEY_keygen ,
.Nm EVP_PKEY_paramgen_init ,
.Nm EVP_PKEY_paramgen ,







|







46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt EVP_PKEY_KEYGEN 3
.Os
.Sh NAME
.Nm EVP_PKEY_keygen_init ,
.Nm EVP_PKEY_keygen ,
.Nm EVP_PKEY_paramgen_init ,
.Nm EVP_PKEY_paramgen ,
211
212
213
214
215
216
217

218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236

237
238

239
240
241
242
243
244
245
246
Generate a 2048-bit RSA key:
.Bd -literal -offset indent
#include <openssl/evp.h>
#include <openssl/rsa.h>

EVP_PKEY_CTX *ctx;
EVP_PKEY *pkey = NULL;

ctx = EVP_PKEY_CTX_new_id(EVP_PKEY_RSA, NULL);
if (!ctx)
	/* Error occurred */
if (EVP_PKEY_keygen_init(ctx) <= 0)
	/* Error */
if (EVP_PKEY_CTX_set_rsa_keygen_bits(ctx, 2048) <= 0)
	/* Error */

/* Generate key */
if (EVP_PKEY_keygen(ctx, &pkey) <= 0)
	/* Error */
.Ed
.Pp
Generate a key from a set of parameters:
.Bd -literal -offset indent
#include <openssl/evp.h>
#include <openssl/rsa.h>

EVP_PKEY_CTX *ctx;

EVP_PKEY *pkey = NULL, *param;
/* Assumed param is set up already */

ctx = EVP_PKEY_CTX_new(param);
if (!ctx)
	/* Error occurred */
if (EVP_PKEY_keygen_init(ctx) <= 0)
	/* Error */

/* Generate key */
if (EVP_PKEY_keygen(ctx, &pkey) <= 0)







>



















>

|
>
|







213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
Generate a 2048-bit RSA key:
.Bd -literal -offset indent
#include <openssl/evp.h>
#include <openssl/rsa.h>

EVP_PKEY_CTX *ctx;
EVP_PKEY *pkey = NULL;

ctx = EVP_PKEY_CTX_new_id(EVP_PKEY_RSA, NULL);
if (!ctx)
	/* Error occurred */
if (EVP_PKEY_keygen_init(ctx) <= 0)
	/* Error */
if (EVP_PKEY_CTX_set_rsa_keygen_bits(ctx, 2048) <= 0)
	/* Error */

/* Generate key */
if (EVP_PKEY_keygen(ctx, &pkey) <= 0)
	/* Error */
.Ed
.Pp
Generate a key from a set of parameters:
.Bd -literal -offset indent
#include <openssl/evp.h>
#include <openssl/rsa.h>

EVP_PKEY_CTX *ctx;
ENGINE *eng;
EVP_PKEY *pkey = NULL, *param;

/* Assumes that param and eng are already set up. */
ctx = EVP_PKEY_CTX_new(param, eng);
if (!ctx)
	/* Error occurred */
if (EVP_PKEY_keygen_init(ctx) <= 0)
	/* Error */

/* Generate key */
if (EVP_PKEY_keygen(ctx, &pkey) <= 0)
275
276
277
278
279
280
281

282
283
284
285
286
287


}
.Ed
.Sh SEE ALSO
.Xr EVP_PKEY_CTX_new 3 ,
.Xr EVP_PKEY_decrypt 3 ,
.Xr EVP_PKEY_derive 3 ,
.Xr EVP_PKEY_encrypt 3 ,

.Xr EVP_PKEY_sign 3 ,
.Xr EVP_PKEY_verify 3 ,
.Xr EVP_PKEY_verify_recover 3 ,
.Xr X25519 3
.Sh HISTORY
These functions were first added to OpenSSL 1.0.0.









>





|
>
>
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
}
.Ed
.Sh SEE ALSO
.Xr EVP_PKEY_CTX_new 3 ,
.Xr EVP_PKEY_decrypt 3 ,
.Xr EVP_PKEY_derive 3 ,
.Xr EVP_PKEY_encrypt 3 ,
.Xr EVP_PKEY_meth_set_keygen 3 ,
.Xr EVP_PKEY_sign 3 ,
.Xr EVP_PKEY_verify 3 ,
.Xr EVP_PKEY_verify_recover 3 ,
.Xr X25519 3
.Sh HISTORY
These functions first appeared in OpenSSL 1.0.0
and have been available since
.Ox 4.9 .
Changes to jni/libressl/man/EVP_PKEY_meth_get0_info.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: EVP_PKEY_meth_get0_info.3,v 1.1 2017/08/20 19:21:20 schwarze Exp $
.\"	OpenSSL EVP_PKEY_meth_get_count.pod 6a2da303 Aug 9 11:25:19 2017 -0400
.\"	OpenSSL EVP_PKEY_meth_get_count.pod 48ed9c23 Jul 25 17:48:26 2017 +0100
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2017 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: EVP_PKEY_meth_get0_info.3,v 1.2 2018/03/23 05:48:56 schwarze Exp $
.\"	OpenSSL EVP_PKEY_meth_get_count.pod 6a2da303 Aug 9 11:25:19 2017 -0400
.\"	OpenSSL EVP_PKEY_meth_get_count.pod 48ed9c23 Jul 25 17:48:26 2017 +0100
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2017 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: August 20 2017 $
.Dt EVP_PKEY_METH_GET0_INFO 3
.Os
.Sh NAME
.Nm EVP_PKEY_meth_get0_info
.Nd enumerate public key methods
.Sh SYNOPSIS
.In openssl/evp.h







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt EVP_PKEY_METH_GET0_INFO 3
.Os
.Sh NAME
.Nm EVP_PKEY_meth_get0_info
.Nd enumerate public key methods
.Sh SYNOPSIS
.In openssl/evp.h
67
68
69
70
71
72
73




The function
.Fn EVP_PKEY_meth_get0_info
retrieves the public key ID (a NID) and any flags associated with the
public key method
.Pf * Fa meth .
.Sh SEE ALSO
.Xr EVP_PKEY_new 3











>
>
>
>
67
68
69
70
71
72
73
74
75
76
77
The function
.Fn EVP_PKEY_meth_get0_info
retrieves the public key ID (a NID) and any flags associated with the
public key method
.Pf * Fa meth .
.Sh SEE ALSO
.Xr EVP_PKEY_new 3
.Sh HISTORY
.Fn EVP_PKEY_meth_get0_info
first appeared in OpenSSL 1.0.1 and has been available since
.Ox 5.3 .
Added jni/libressl/man/EVP_PKEY_meth_new.3.














































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
.\" $OpenBSD: EVP_PKEY_meth_new.3,v 1.3 2018/03/23 05:48:56 schwarze Exp $
.\" selective merge up to: OpenSSL 43f985fd Aug 21 11:47:17 2017 -0400
.\"
.\" This file was written by Paul Yang <yang.yang@baishancloud.com>
.\" Copyright (c) 2017 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\"
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in
.\"    the documentation and/or other materials provided with the
.\"    distribution.
.\"
.\" 3. All advertising materials mentioning features or use of this
.\"    software must display the following acknowledgment:
.\"    "This product includes software developed by the OpenSSL Project
.\"    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
.\"
.\" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
.\"    endorse or promote products derived from this software without
.\"    prior written permission. For written permission, please contact
.\"    openssl-core@openssl.org.
.\"
.\" 5. Products derived from this software may not be called "OpenSSL"
.\"    nor may "OpenSSL" appear in their names without prior written
.\"    permission of the OpenSSL Project.
.\"
.\" 6. Redistributions of any form whatsoever must retain the following
.\"    acknowledgment:
.\"    "This product includes software developed by the OpenSSL Project
.\"    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
.\" EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
.\" ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt EVP_PKEY_METH_NEW 3
.Os
.Sh NAME
.Nm EVP_PKEY_meth_new ,
.Nm EVP_PKEY_meth_free ,
.Nm EVP_PKEY_meth_copy ,
.Nm EVP_PKEY_meth_find ,
.Nm EVP_PKEY_meth_add0 ,
.Nm EVP_PKEY_meth_set_init ,
.Nm EVP_PKEY_meth_set_copy ,
.Nm EVP_PKEY_meth_set_cleanup ,
.Nm EVP_PKEY_meth_set_paramgen ,
.Nm EVP_PKEY_meth_set_keygen ,
.Nm EVP_PKEY_meth_set_sign ,
.Nm EVP_PKEY_meth_set_verify ,
.Nm EVP_PKEY_meth_set_verify_recover ,
.Nm EVP_PKEY_meth_set_signctx ,
.Nm EVP_PKEY_meth_set_verifyctx ,
.Nm EVP_PKEY_meth_set_encrypt ,
.Nm EVP_PKEY_meth_set_decrypt ,
.Nm EVP_PKEY_meth_set_derive ,
.Nm EVP_PKEY_meth_set_ctrl
.Nd manipulate an EVP_PKEY_METHOD structure
.Sh SYNOPSIS
.In openssl/evp.h
.Ft EVP_PKEY_METHOD *
.Fo EVP_PKEY_meth_new
.Fa "int id"
.Fa "int flags"
.Fc
.Ft void
.Fo EVP_PKEY_meth_free
.Fa "EVP_PKEY_METHOD *pmeth"
.Fc
.Ft void
.Fo EVP_PKEY_meth_copy
.Fa "EVP_PKEY_METHOD *dst"
.Fa "const EVP_PKEY_METHOD *src"
.Fc
.Ft const EVP_PKEY_METHOD *
.Fo EVP_PKEY_meth_find
.Fa "int type"
.Fc
.Ft int
.Fo EVP_PKEY_meth_add0
.Fa "const EVP_PKEY_METHOD *pmeth"
.Fc
.Ft void
.Fo EVP_PKEY_meth_set_init
.Fa "EVP_PKEY_METHOD *pmeth"
.Fa "int (*init)(EVP_PKEY_CTX *ctx)"
.Fc
.Ft void
.Fo EVP_PKEY_meth_set_copy
.Fa "EVP_PKEY_METHOD *pmeth"
.Fa "int (*copy)(EVP_PKEY_CTX *dst, EVP_PKEY_CTX *src)"
.Fc
.Ft void
.Fo EVP_PKEY_meth_set_cleanup
.Fa "EVP_PKEY_METHOD *pmeth"
.Fa "void (*cleanup)(EVP_PKEY_CTX *ctx)"
.Fc
.Ft void
.Fo EVP_PKEY_meth_set_paramgen
.Fa "EVP_PKEY_METHOD *pmeth"
.Fa "int (*paramgen_init)(EVP_PKEY_CTX *ctx)"
.Fa "int (*paramgen)(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)"
.Fc
.Ft void
.Fo EVP_PKEY_meth_set_keygen
.Fa "EVP_PKEY_METHOD *pmeth"
.Fa "int (*keygen_init)(EVP_PKEY_CTX *ctx)"
.Fa "int (*keygen)(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)"
.Fc
.Ft void
.Fo EVP_PKEY_meth_set_sign
.Fa "EVP_PKEY_METHOD *pmeth"
.Fa "int (*sign_init)(EVP_PKEY_CTX *ctx)"
.Fa "int (*sign)(EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen,\
 const unsigned char *tbs, size_t tbslen)"
.Fc
.Ft void
.Fo EVP_PKEY_meth_set_verify
.Fa "EVP_PKEY_METHOD *pmeth"
.Fa "int (*verify_init)(EVP_PKEY_CTX *ctx)"
.Fa "int (*verify)(EVP_PKEY_CTX *ctx, const unsigned char *sig,\
 size_t siglen, const unsigned char *tbs, size_t tbslen)"
.Fc
.Ft void
.Fo EVP_PKEY_meth_set_verify_recover
.Fa "EVP_PKEY_METHOD *pmeth"
.Fa "int (*verify_recover_init)(EVP_PKEY_CTX *ctx)"
.Fa "int (*verify_recover)(EVP_PKEY_CTX *ctx, unsigned char *sig,\
 size_t *siglen, const unsigned char *tbs, size_t tbslen)"
.Fc
.Ft void
.Fo EVP_PKEY_meth_set_signctx
.Fa "EVP_PKEY_METHOD *pmeth"
.Fa "int (*signctx_init)(EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx)"
.Fa "int (*signctx)(EVP_PKEY_CTX *ctx, unsigned char *sig,\
 size_t *siglen, EVP_MD_CTX *mctx)"
.Fc
.Ft void
.Fo EVP_PKEY_meth_set_verifyctx
.Fa "EVP_PKEY_METHOD *pmeth"
.Fa "int (*verifyctx_init)(EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx)"
.Fa "int (*verifyctx)(EVP_PKEY_CTX *ctx, const unsigned char *sig,\
 int siglen, EVP_MD_CTX *mctx)"
.Fc
.Ft void
.Fo EVP_PKEY_meth_set_encrypt
.Fa "EVP_PKEY_METHOD *pmeth"
.Fa "int (*encrypt_init)(EVP_PKEY_CTX *ctx)"
.Fa "int (*encryptfn)(EVP_PKEY_CTX *ctx, unsigned char *out,\
 size_t *outlen, const unsigned char *in, size_t inlen)"
.Fc
.Ft void
.Fo EVP_PKEY_meth_set_decrypt
.Fa "EVP_PKEY_METHOD *pmeth"
.Fa "int (*decrypt_init)(EVP_PKEY_CTX *ctx)"
.Fa "int (*decrypt)(EVP_PKEY_CTX *ctx, unsigned char *out,\
 size_t *outlen, const unsigned char *in, size_t inlen)"
.Fc
.Ft void
.Fo EVP_PKEY_meth_set_derive
.Fa "EVP_PKEY_METHOD *pmeth"
.Fa "int (*derive_init)(EVP_PKEY_CTX *ctx)"
.Fa "int (*derive)(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen)"
.Fc
.Ft void
.Fo EVP_PKEY_meth_set_ctrl
.Fa "EVP_PKEY_METHOD *pmeth"
.Fa "int (*ctrl)(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)"
.Fa "int (*ctrl_str)(EVP_PKEY_CTX *ctx, const char *type, const char *value)"
.Fc
.Sh DESCRIPTION
The
.Vt EVP_PKEY_METHOD
structure holds a set of methods
for a specific public key cryptographic algorithm.
Those methods perform tasks such as generating keys, signing, verifying,
encrypting, decrypting, and so on.
.Pp
There are two places where the
.Vt EVP_PKEY_METHOD
objects are stored: one is a built-in static array representing the
standard methods for different algorithms, and the other one is a stack
of user-defined application-specific methods, which can be manipulated
with
.Fn EVP_PKEY_meth_add0 .
.Pp
The
.Vt EVP_PKEY_METHOD
objects are usually referenced by
.Vt EVP_PKEY_CTX
objects.
.Ss Methods
The methods implement the particular public key algorithm represented by the
.Vt EVP_PKEY_CTX
object.
.Bd -unfilled
.Ft int Fn (*init) "EVP_PKEY_CTX *ctx"
.Ft int Fn (*copy) "EVP_PKEY_CTX *dst" "EVP_PKEY_CTX *src"
.Ft void Fn (*cleanup) "EVP_PKEY_CTX *ctx"
.Ed
.Pp
The
.Fn init
method is called by
.Xr EVP_PKEY_CTX_new 3
and
.Xr EVP_PKEY_CTX_new_id 3
to initialize the algorithm-specific data when a new
.Vt EVP_PKEY_CTX
is created.
The
.Fn cleanup
method is called by
.Xr EVP_PKEY_CTX_free 3
when an
.Vt EVP_PKEY_CTX
is freed.
The
.Fn copy
method is called by
.Xr EVP_PKEY_CTX_dup 3
when an
.Vt EVP_PKEY_CTX
is duplicated.
.Bd -unfilled
.Ft int Fn (*paramgen_init) "EVP_PKEY_CTX *ctx"
.Ft int Fn (*paramgen) "EVP_PKEY_CTX *ctx" "EVP_PKEY *pkey"
.Ed
.Pp
The
.Fn paramgen_init
and
.Fn paramgen
methods deal with key parameter generation.
They are called by
.Xr EVP_PKEY_paramgen_init 3
and
.Xr EVP_PKEY_paramgen 3
to handle the parameter generation process.
.Bd -unfilled
.Ft int Fn (*keygen_init) "EVP_PKEY_CTX *ctx"
.Ft int Fn (*keygen) "EVP_PKEY_CTX *ctx" "EVP_PKEY *pkey"
.Ed
.Pp
The
.Fn keygen_init
and
.Fn keygen
methods are used to generate a key for the specified algorithm.
They are called by
.Xr EVP_PKEY_keygen_init 3
and
.Xr EVP_PKEY_keygen 3 .
.Bd -unfilled
.Ft int Fn (*sign_init) "EVP_PKEY_CTX *ctx"
.Ft int Fo (*sign)
.Fa "EVP_PKEY_CTX *ctx"
.Fa "unsigned char *sig"
.Fa "size_t *siglen"
.Fa "const unsigned char *tbs"
.Fa "size_t tbslen"
.Fc
.Ed
.Pp
The
.Fn sign_init
and
.Fn sign
methods are used to generate the signature of a piece of data using a
private key.
They are called by
.Xr EVP_PKEY_sign_init 3
and
.Xr EVP_PKEY_sign 3 .
.Bd -unfilled
.Ft int Fn (*verify_init) "EVP_PKEY_CTX *ctx"
.Ft int Fo (*verify)
.Fa "EVP_PKEY_CTX *ctx"
.Fa "const unsigned char *sig"
.Fa "size_t siglen"
.Fa "const unsigned char *tbs"
.Fa "size_t tbslen"
.Fc
.Ed
.Pp
The
.Fn verify_init
and
.Fn verify
methods are used to verify whether a signature is valid.
They are called by
.Xr EVP_PKEY_verify_init 3
and
.Xr EVP_PKEY_verify 3 .
.Bd -unfilled
.Ft int Fn (*verify_recover_init) "EVP_PKEY_CTX *ctx"
.Ft int Fo (*verify_recover)
.Fa "EVP_PKEY_CTX *ctx"
.Fa "unsigned char *rout"
.Fa "size_t *routlen"
.Fa "const unsigned char *sig"
.Fa "size_t siglen"
.Fc
.Ed
.Pp
The
.Fn verify_recover_init
and
.Fn verify_recover
methods are used to verify a signature and then recover the digest from
the signature (for instance, a signature that was generated by the RSA
signing algorithm).
They are called by
.Xr EVP_PKEY_verify_recover_init 3
and
.Xr EVP_PKEY_verify_recover 3 .
.Bd -unfilled
.Ft int Fn (*signctx_init) "EVP_PKEY_CTX *ctx" "EVP_MD_CTX *mctx"
.Ft int Fo (*signctx)
.Fa "EVP_PKEY_CTX *ctx"
.Fa "unsigned char *sig"
.Fa "size_t *siglen"
.Fa "EVP_MD_CTX *mctx"
.Fc
.Ed
.Pp
The
.Fn signctx_init
and
.Fn signctx
methods are used to sign a digest represented by an
.Vt EVP_MD_CTX
object.
They are called by the
.Xr EVP_DigestSignInit 3
functions.
.Bd -unfilled
.Ft int Fn (*verifyctx_init) "EVP_PKEY_CTX *ctx" "EVP_MD_CTX *mctx"
.Ft int Fo (*verifyctx)
.Fa "EVP_PKEY_CTX *ctx"
.Fa "const unsigned char *sig"
.Fa "int siglen"
.Fa "EVP_MD_CTX *mctx"
.Fc
.Ed
.Pp
The
.Fn verifyctx_init
and
.Fn verifyctx
methods are used to verify a signature against the data in an
.Vt EVP_MD_CTX
object.
They are called by the
.Xr EVP_DigestVerifyInit 3
functions.
.Bd -unfilled
.Ft int Fn (*encrypt_init) "EVP_PKEY_CTX *ctx"
.Ft int Fo (*encrypt)
.Fa "EVP_PKEY_CTX *ctx"
.Fa "unsigned char *out"
.Fa "size_t *outlen"
.Fa "const unsigned char *in"
.Fa "size_t inlen"
.Fc
.Ed
.Pp
The
.Fn encrypt_init
and
.Fn encrypt
methods are used to encrypt a piece of data.
They are called by
.Xr EVP_PKEY_encrypt_init 3
and
.Xr EVP_PKEY_encrypt 3 .
.Bd -unfilled
.Ft int Fn (*decrypt_init) "EVP_PKEY_CTX *ctx"
.Ft int Fo (*decrypt)
.Fa "EVP_PKEY_CTX *ctx"
.Fa "unsigned char *out"
.Fa "size_t *outlen"
.Fa "const unsigned char *in"
.Fa "size_t inlen"
.Fc
.Ed
.Pp
The
.Fn decrypt_init
and
.Fn decrypt
methods are used to decrypt a piece of data.
They are called by
.Xr EVP_PKEY_decrypt_init 3
and
.Xr EVP_PKEY_decrypt 3 .
.Bd -unfilled
.Ft int Fn (*derive_init) "EVP_PKEY_CTX *ctx"
.Ft int Fo (*derive)
.Fa "EVP_PKEY_CTX *ctx"
.Fa "unsigned char *key"
.Fa "size_t *keylen"
.Fc
.Ed
.Pp
The
.Fn derive_init
and
.Fn derive
methods are used to derive the shared secret from a public key algorithm
(for instance, the DH algorithm).
They are called by
.Xr EVP_PKEY_derive_init 3
and
.Xr EVP_PKEY_derive 3 .
.Bd -unfilled
.Ft int Fo (*ctrl)
.Fa "EVP_PKEY_CTX *ctx"
.Fa "int type"
.Fa "int p1"
.Fa "void *p2"
.Fc
.Ft int Fo (*ctrl_str)
.Fa "EVP_PKEY_CTX *ctx"
.Fa "const char *type"
.Fa "const char *value"
.Fc
.Ed
.Pp
The
.Fn ctrl
and
.Fn ctrl_str
methods are used to adjust algorithm-specific settings.
See
.Xr EVP_PKEY_CTX_ctrl 3
for details.
.Ss Functions
.Fn EVP_PKEY_meth_new
creates a new
.Vt EVP_PKEY_METHOD
object with the given
.Fa id
and
.Fa flags .
The following flags are supported:
.Bl -tag -width Ds
.It Dv EVP_PKEY_FLAG_AUTOARGLEN
Automatically calculate the maximum size of the output buffer
in corresponding EVP methods by the EVP framework.
Thus the implementations of these methods don't need to care about
handling the case of returning output buffer size by themselves.
For details on the output buffer size, refer to
.Xr EVP_PKEY_sign 3 .
.It Dv EVP_PKEY_FLAG_SIGCTX_CUSTOM
Indicate that the
.Fn signctx
method of an
.Vt EVP_PKEY_METHOD
is always called by the EVP framework while doing a digest signing
operation by calling
.Xr EVP_DigestSignFinal 3 .
.El
.Pp
.Fn EVP_PKEY_meth_free
frees
.Fa pmeth .
.Pp
.Fn EVP_PKEY_meth_copy
copies
.Fa src
to
.Fa dst .
.Pp
.Fn EVP_PKEY_meth_find
finds an
.Vt EVP_PKEY_METHOD
object with the given
.Fa id .
This function first searches through the user-defined method objects and
then through the built-in objects.
.Pp
.Fn EVP_PKEY_meth_add0
adds
.Fa pmeth
to the stack of user defined methods.
.Pp
The
.Fn EVP_PKEY_meth_set_*
functions set the corresponding fields of
.Fa pmeth
to the arguments passed.
.Sh RETURN VALUES
.Fn EVP_PKEY_meth_new
returns a pointer to a new
.Vt EVP_PKEY_METHOD
object or
.Dv NULL
on error.
.Pp
.Fn EVP_PKEY_meth_find
returns a pointer to the found
.Vt EVP_PKEY_METHOD
object or
.Dv NULL
if no matching object is found.
.Pp
.Fn EVP_PKEY_meth_add0
returns 1 if the method is added successfully or 0 if an error occurred.
.Sh HISTORY
.Fn EVP_PKEY_meth_new ,
.Fn EVP_PKEY_meth_free ,
.Fn EVP_PKEY_meth_find ,
.Fn EVP_PKEY_meth_add0 ,
.Fn EVP_PKEY_meth_set_init ,
.Fn EVP_PKEY_meth_set_copy ,
.Fn EVP_PKEY_meth_set_cleanup ,
.Fn EVP_PKEY_meth_set_paramgen ,
.Fn EVP_PKEY_meth_set_keygen ,
.Fn EVP_PKEY_meth_set_sign ,
.Fn EVP_PKEY_meth_set_verify ,
.Fn EVP_PKEY_meth_set_verify_recover ,
.Fn EVP_PKEY_meth_set_signctx ,
.Fn EVP_PKEY_meth_set_verifyctx ,
.Fn EVP_PKEY_meth_set_encrypt ,
.Fn EVP_PKEY_meth_set_decrypt ,
.Fn EVP_PKEY_meth_set_derive ,
and
.Fn EVP_PKEY_meth_set_ctrl
first appeared in OpenSSL 1.0.0 and have been available since
.Ox 4.9 .
.Pp
.Fn EVP_PKEY_meth_copy
first appeared in OpenSSL 1.0.1 and has been available since
.Ox 5.3 .
Changes to jni/libressl/man/EVP_PKEY_new.3.
1
2
3
4
5
6
7
8
9
.\"	$OpenBSD: EVP_PKEY_new.3,v 1.3 2016/11/27 15:24:27 schwarze Exp $
.\"	OpenSSL 9b86974e Aug 17 15:21:33 2015 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2002 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
|
|







1
2
3
4
5
6
7
8
9
.\" $OpenBSD: EVP_PKEY_new.3,v 1.7 2018/03/23 23:18:17 schwarze Exp $
.\" full merge up to: OpenSSL 99d63d42 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2002 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
44
45
46
47
48
49
50
51
52
53
54
55

56
57
58
59
60
61




62
63
64
65
66
67
68
69
70
71
72
73
74
75
76

77
78
79





80
81
82

83
84
85
86
87
88
89
90
91
92
93
94



95

96
97
98
99
100




101

.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 27 2016 $
.Dt EVP_PKEY_NEW 3
.Os
.Sh NAME
.Nm EVP_PKEY_new ,

.Nm EVP_PKEY_free
.Nd private key allocation functions
.Sh SYNOPSIS
.In openssl/evp.h
.Ft EVP_PKEY *
.Fn EVP_PKEY_new void




.Ft void
.Fo EVP_PKEY_free
.Fa "EVP_PKEY *key"
.Fc
.Sh DESCRIPTION
The
.Vt EVP_PKEY
structure is used by various OpenSSL functions which require a general
private key without reference to any particular algorithm.
.Pp
The
.Fn EVP_PKEY_new
function allocates an empty
.Vt EVP_PKEY
structure.

To add a private key to it, use the functions described in
.Xr EVP_PKEY_set1_RSA 3 .
.Pp





.Fn EVP_PKEY_free
frees up the private key
.Fa key .

If
.Fa key
is a
.Dv NULL
pointer, no action occurs.
.Sh RETURN VALUES
.Fn EVP_PKEY_new
returns either the newly allocated
.Vt EVP_PKEY
structure or
.Dv NULL
if an error occurred.



.Sh SEE ALSO

.Xr EVP_PKEY_set1_RSA 3
.Sh HISTORY
.Fn EVP_PKEY_new
and
.Fn EVP_PKEY_free




exist in all versions of OpenSSL.








|




>






>
>
>
>















>



>
>
>
>
>

|
|
>












>
>
>

>





>
>
>
>
|
>
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt EVP_PKEY_NEW 3
.Os
.Sh NAME
.Nm EVP_PKEY_new ,
.Nm EVP_PKEY_up_ref ,
.Nm EVP_PKEY_free
.Nd private key allocation functions
.Sh SYNOPSIS
.In openssl/evp.h
.Ft EVP_PKEY *
.Fn EVP_PKEY_new void
.Ft int
.Fo EVP_PKEY_up_ref
.Fa "EVP_PKEY *key"
.Fc
.Ft void
.Fo EVP_PKEY_free
.Fa "EVP_PKEY *key"
.Fc
.Sh DESCRIPTION
The
.Vt EVP_PKEY
structure is used by various OpenSSL functions which require a general
private key without reference to any particular algorithm.
.Pp
The
.Fn EVP_PKEY_new
function allocates an empty
.Vt EVP_PKEY
structure.
The reference count is set to 1.
To add a private key to it, use the functions described in
.Xr EVP_PKEY_set1_RSA 3 .
.Pp
.Fn EVP_PKEY_up_ref
increments the reference count of
.Fa key
by 1.
.Pp
.Fn EVP_PKEY_free
decrements the reference count of
.Fa key
by 1, and if the reference count reaches zero, frees it up.
If
.Fa key
is a
.Dv NULL
pointer, no action occurs.
.Sh RETURN VALUES
.Fn EVP_PKEY_new
returns either the newly allocated
.Vt EVP_PKEY
structure or
.Dv NULL
if an error occurred.
.Pp
.Fn EVP_PKEY_up_ref
returns 1 for success or 0 for failure.
.Sh SEE ALSO
.Xr EVP_PKEY_asn1_set_free 3 ,
.Xr EVP_PKEY_set1_RSA 3
.Sh HISTORY
.Fn EVP_PKEY_new
and
.Fn EVP_PKEY_free
appeared in SSLeay 0.8.1b or earlier and have been available since
.Ox 2.4 .
.Pp
.Fn EVP_PKEY_up_ref
first appeared in OpenSSL 1.1.0 and has been available since
.Ox 6.3 .
Changes to jni/libressl/man/EVP_PKEY_print_private.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: EVP_PKEY_print_private.3,v 1.4 2016/11/27 15:27:19 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2006, 2009 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: EVP_PKEY_print_private.3,v 1.6 2018/03/23 04:34:23 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2006, 2009 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 27 2016 $
.Dt EVP_PKEY_PRINT_PRIVATE 3
.Os
.Sh NAME
.Nm EVP_PKEY_print_public ,
.Nm EVP_PKEY_print_private ,
.Nm EVP_PKEY_print_params
.Nd public key algorithm printing routines







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt EVP_PKEY_PRINT_PRIVATE 3
.Os
.Sh NAME
.Nm EVP_PKEY_print_public ,
.Nm EVP_PKEY_print_private ,
.Nm EVP_PKEY_print_params
.Nd public key algorithm printing routines
116
117
118
119
120
121
122

123
124
125
126


will only print the public components.
.Sh RETURN VALUES
These functions all return 1 for success and 0 or a negative value for
failure.
In particular, a return value of -2 indicates the operation is not
supported by the public key algorithm.
.Sh SEE ALSO

.Xr EVP_PKEY_CTX_new 3 ,
.Xr EVP_PKEY_keygen 3
.Sh HISTORY
These functions were first added to OpenSSL 1.0.0.









>



|
>
>
116
117
118
119
120
121
122
123
124
125
126
127
128
129
will only print the public components.
.Sh RETURN VALUES
These functions all return 1 for success and 0 or a negative value for
failure.
In particular, a return value of -2 indicates the operation is not
supported by the public key algorithm.
.Sh SEE ALSO
.Xr EVP_PKEY_asn1_set_public 3 ,
.Xr EVP_PKEY_CTX_new 3 ,
.Xr EVP_PKEY_keygen 3
.Sh HISTORY
These functions first appeared in OpenSSL 1.0.0
and have been available since
.Ox 4.9 .
Changes to jni/libressl/man/EVP_PKEY_set1_RSA.3.
1

2
3
4
5
6
7
8
9
10
11
12
.\"	$OpenBSD: EVP_PKEY_set1_RSA.3,v 1.5 2016/12/11 12:21:48 schwarze Exp $

.\"	OpenSSL 9b86974e Aug 17 15:21:33 2015 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2002, 2014, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
|
>
|


|







1
2
3
4
5
6
7
8
9
10
11
12
13
.\" $OpenBSD: EVP_PKEY_set1_RSA.3,v 1.12 2018/03/23 23:18:17 schwarze Exp $
.\" full merge up to: OpenSSL bb9ad09e Jun 6 00:43:05 2016 -0400
.\" selective merge up to: OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2002, 2015, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62




63
64
65
66
67
68
69
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 11 2016 $
.Dt EVP_PKEY_SET1_RSA 3
.Os
.Sh NAME
.Nm EVP_PKEY_set1_RSA ,
.Nm EVP_PKEY_set1_DSA ,
.Nm EVP_PKEY_set1_DH ,
.Nm EVP_PKEY_set1_EC_KEY ,
.Nm EVP_PKEY_get1_RSA ,
.Nm EVP_PKEY_get1_DSA ,
.Nm EVP_PKEY_get1_DH ,
.Nm EVP_PKEY_get1_EC_KEY ,




.Nm EVP_PKEY_assign_RSA ,
.Nm EVP_PKEY_assign_DSA ,
.Nm EVP_PKEY_assign_DH ,
.Nm EVP_PKEY_assign_EC_KEY ,
.Nm EVP_PKEY_id ,
.Nm EVP_PKEY_base_id ,
.Nm EVP_PKEY_type







|











>
>
>
>







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt EVP_PKEY_SET1_RSA 3
.Os
.Sh NAME
.Nm EVP_PKEY_set1_RSA ,
.Nm EVP_PKEY_set1_DSA ,
.Nm EVP_PKEY_set1_DH ,
.Nm EVP_PKEY_set1_EC_KEY ,
.Nm EVP_PKEY_get1_RSA ,
.Nm EVP_PKEY_get1_DSA ,
.Nm EVP_PKEY_get1_DH ,
.Nm EVP_PKEY_get1_EC_KEY ,
.Nm EVP_PKEY_get0_RSA ,
.Nm EVP_PKEY_get0_DSA ,
.Nm EVP_PKEY_get0_DH ,
.Nm EVP_PKEY_get0_EC_KEY ,
.Nm EVP_PKEY_assign_RSA ,
.Nm EVP_PKEY_assign_DSA ,
.Nm EVP_PKEY_assign_DH ,
.Nm EVP_PKEY_assign_EC_KEY ,
.Nm EVP_PKEY_id ,
.Nm EVP_PKEY_base_id ,
.Nm EVP_PKEY_type
102
103
104
105
106
107
108
















109
110
111
112
113
114
115
.Fo EVP_PKEY_get1_DH
.Fa "EVP_PKEY *pkey"
.Fc
.Ft EC_KEY *
.Fo EVP_PKEY_get1_EC_KEY
.Fa "EVP_PKEY *pkey"
.Fc
















.Ft int
.Fo EVP_PKEY_assign_RSA
.Fa "EVP_PKEY *pkey"
.Fa "RSA *key"
.Fc
.Ft int
.Fo EVP_PKEY_assign_DSA







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
.Fo EVP_PKEY_get1_DH
.Fa "EVP_PKEY *pkey"
.Fc
.Ft EC_KEY *
.Fo EVP_PKEY_get1_EC_KEY
.Fa "EVP_PKEY *pkey"
.Fc
.Ft RSA *
.Fo EVP_PKEY_get0_RSA
.Fa "EVP_PKEY *pkey"
.Fc
.Ft DSA *
.Fo EVP_PKEY_get0_DSA
.Fa "EVP_PKEY *pkey"
.Fc
.Ft DH *
.Fo EVP_PKEY_get0_DH
.Fa "EVP_PKEY *pkey"
.Fc
.Ft EC_KEY *
.Fo EVP_PKEY_get0_EC_KEY
.Fa "EVP_PKEY *pkey"
.Fc
.Ft int
.Fo EVP_PKEY_assign_RSA
.Fa "EVP_PKEY *pkey"
.Fa "RSA *key"
.Fc
.Ft int
.Fo EVP_PKEY_assign_DSA
151
152
153
154
155
156
157
158
159
160
161
162








163
164
165
166
167
168
169
.Pp
.Fn EVP_PKEY_get1_RSA ,
.Fn EVP_PKEY_get1_DSA ,
.Fn EVP_PKEY_get1_DH ,
and
.Fn EVP_PKEY_get1_EC_KEY
return the key referenced in
.Fa pkey
or
.Dv NULL
if the key is not of the correct type.
.Pp








.Fn EVP_PKEY_assign_RSA ,
.Fn EVP_PKEY_assign_DSA ,
.Fn EVP_PKEY_assign_DH ,
and
.Fn EVP_PKEY_assign_EC_KEY
also set the referenced key to
.Fa key ;







|
|



>
>
>
>
>
>
>
>







172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
.Pp
.Fn EVP_PKEY_get1_RSA ,
.Fn EVP_PKEY_get1_DSA ,
.Fn EVP_PKEY_get1_DH ,
and
.Fn EVP_PKEY_get1_EC_KEY
return the key referenced in
.Fa pkey ,
incrementing its reference count by 1, or
.Dv NULL
if the key is not of the correct type.
.Pp
.Fn EVP_PKEY_get0_RSA ,
.Fn EVP_PKEY_get0_DSA ,
.Fn EVP_PKEY_get0_DH ,
and
.Fn EVP_PKEY_get0_EC_KEY
are identical except that they do not increment the reference count.
Consequently, the returned key must not be freed by the caller.
.Pp
.Fn EVP_PKEY_assign_RSA ,
.Fn EVP_PKEY_assign_DSA ,
.Fn EVP_PKEY_assign_DH ,
and
.Fn EVP_PKEY_assign_EC_KEY
also set the referenced key to
.Fa key ;
231
232
233
234
235
236
237




238
239
240
241
242
243
244
245
246
and
.Fn EVP_PKEY_set1_EC_KEY
return 1 for success or 0 for failure.
.Pp
.Fn EVP_PKEY_get1_RSA ,
.Fn EVP_PKEY_get1_DSA ,
.Fn EVP_PKEY_get1_DH ,




and
.Fn EVP_PKEY_get1_EC_KEY
return the referenced key or
.Dv NULL
if an error occurred.
.Pp
.Fn EVP_PKEY_assign_RSA ,
.Fn EVP_PKEY_assign_DSA ,
.Fn EVP_PKEY_assign_DH ,







>
>
>
>

|







260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
and
.Fn EVP_PKEY_set1_EC_KEY
return 1 for success or 0 for failure.
.Pp
.Fn EVP_PKEY_get1_RSA ,
.Fn EVP_PKEY_get1_DSA ,
.Fn EVP_PKEY_get1_DH ,
.Fn EVP_PKEY_get1_EC_KEY ,
.Fn EVP_PKEY_get0_RSA ,
.Fn EVP_PKEY_get0_DSA ,
.Fn EVP_PKEY_get0_DH ,
and
.Fn EVP_PKEY_get0_EC_KEY
return the referenced key or
.Dv NULL
if an error occurred.
.Pp
.Fn EVP_PKEY_assign_RSA ,
.Fn EVP_PKEY_assign_DSA ,
.Fn EVP_PKEY_assign_DH ,
254
255
256
257
258
259
260



261
262







































.Fn EVP_PKEY_type
return a key type or
.Dv NID_undef
(equivalently
.Dv EVP_PKEY_NONE )
on error.
.Sh SEE ALSO



.Xr EVP_PKEY_new 3 ,
.Xr RSA_new 3














































>
>
>


>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
.Fn EVP_PKEY_type
return a key type or
.Dv NID_undef
(equivalently
.Dv EVP_PKEY_NONE )
on error.
.Sh SEE ALSO
.Xr DH_new 3 ,
.Xr DSA_new 3 ,
.Xr EC_KEY_new 3 ,
.Xr EVP_PKEY_new 3 ,
.Xr RSA_new 3
.Sh HISTORY
.Fn EVP_PKEY_assign_RSA ,
.Fn EVP_PKEY_assign_DSA ,
.Fn EVP_PKEY_assign_DH ,
and
.Fn EVP_PKEY_type
appeared in SSLeay 0.8.1b or earlier and have been available since
.Ox 2.4 .
.Pp
.Fn EVP_PKEY_set1_RSA ,
.Fn EVP_PKEY_set1_DSA ,
.Fn EVP_PKEY_set1_DH ,
.Fn EVP_PKEY_get1_RSA ,
.Fn EVP_PKEY_get1_DSA ,
and
.Fn EVP_PKEY_get1_DH
first appeared in OpenSSL 0.9.5 and have been available since
.Ox 2.7 .
.Pp
.Fn EVP_PKEY_set1_EC_KEY ,
.Fn EVP_PKEY_get1_EC_KEY ,
and
.Fn EVP_PKEY_assign_EC_KEY
first appeared in OpenSSL 0.9.8 and have been available since
.Ox 4.5 .
.Pp
.Fn EVP_PKEY_id
and
.Fn EVP_PKEY_base_id
first appeared in OpenSSL 1.0.0 and have been available since
.Ox 4.9 .
.Pp
.Fn EVP_PKEY_get0_RSA ,
.Fn EVP_PKEY_get0_DSA ,
.Fn EVP_PKEY_get0_DH ,
and
.Fn EVP_PKEY_get0_EC_KEY
first appeared in OpenSSL 1.1.0 and have been available since
.Ox 6.3 .
Changes to jni/libressl/man/EVP_PKEY_sign.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: EVP_PKEY_sign.3,v 1.5 2017/01/06 02:43:14 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2006, 2009, 2013, 2014 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: EVP_PKEY_sign.3,v 1.7 2018/03/23 04:34:23 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2006, 2009, 2013, 2014 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: January 6 2017 $
.Dt EVP_PKEY_SIGN 3
.Os
.Sh NAME
.Nm EVP_PKEY_sign_init ,
.Nm EVP_PKEY_sign
.Nd sign using a public key algorithm
.Sh SYNOPSIS







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt EVP_PKEY_SIGN 3
.Os
.Sh NAME
.Nm EVP_PKEY_sign_init ,
.Nm EVP_PKEY_sign
.Nd sign using a public key algorithm
.Sh SYNOPSIS
176
177
178
179
180
181
182

183
184
185



186

.Ed
.Sh SEE ALSO
.Xr EVP_PKEY_CTX_ctrl 3 ,
.Xr EVP_PKEY_CTX_new 3 ,
.Xr EVP_PKEY_decrypt 3 ,
.Xr EVP_PKEY_derive 3 ,
.Xr EVP_PKEY_encrypt 3 ,

.Xr EVP_PKEY_verify 3 ,
.Xr EVP_PKEY_verify_recover 3
.Sh HISTORY



These functions were first added to OpenSSL 1.0.0.








>



>
>
>
|
>
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
.Ed
.Sh SEE ALSO
.Xr EVP_PKEY_CTX_ctrl 3 ,
.Xr EVP_PKEY_CTX_new 3 ,
.Xr EVP_PKEY_decrypt 3 ,
.Xr EVP_PKEY_derive 3 ,
.Xr EVP_PKEY_encrypt 3 ,
.Xr EVP_PKEY_meth_set_sign 3 ,
.Xr EVP_PKEY_verify 3 ,
.Xr EVP_PKEY_verify_recover 3
.Sh HISTORY
.Fn EVP_PKEY_sign_init
and
.Fn EVP_PKEY_sign
first appeared in OpenSSL 1.0.0 and have been available since
.Ox 4.9 .
Changes to jni/libressl/man/EVP_PKEY_verify.3.
1
2
3
4
5
6
7
8
9
10
11
12
.\"	$OpenBSD: EVP_PKEY_verify.3,v 1.4 2016/11/27 15:27:19 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2006, 2009, 2010, 2013 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
|
|


|







1
2
3
4
5
6
7
8
9
10
11
12
.\" $OpenBSD: EVP_PKEY_verify.3,v 1.7 2018/03/23 04:34:23 schwarze Exp $
.\" full merge up to: OpenSSL 48e5119a Jan 19 10:49:22 2018 +0100
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2006, 2009, 2010, 2013, 2018 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 27 2016 $
.Dt EVP_PKEY_VERIFY 3
.Os
.Sh NAME
.Nm EVP_PKEY_verify_init ,
.Nm EVP_PKEY_verify
.Nd signature verification using a public key algorithm
.Sh SYNOPSIS







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt EVP_PKEY_VERIFY 3
.Os
.Sh NAME
.Nm EVP_PKEY_verify_init ,
.Nm EVP_PKEY_verify
.Nd signature verification using a public key algorithm
.Sh SYNOPSIS
125
126
127
128
129
130
131
132


133
134
135
136
137
138
139
140
141
142
143
144
145
146
147

148
149
150
151
152
153
154
155
156

157
158
159



160

#include <openssl/evp.h>
#include <openssl/rsa.h>

EVP_PKEY_CTX *ctx;
unsigned char *md, *sig;
size_t mdlen, siglen;
EVP_PKEY *verify_key;
/* NB: assumes verify_key, sig, siglen md and mdlen are already set up


 * and that verify_key is an RSA public key
 */
ctx = EVP_PKEY_CTX_new(verify_key);
if (!ctx)
	/* Error occurred */
if (EVP_PKEY_verify_init(ctx) <= 0)
	/* Error */
if (EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_PADDING) <= 0)
	/* Error */
if (EVP_PKEY_CTX_set_signature_md(ctx, EVP_sha256()) <= 0)
	/* Error */

/* Perform operation */
ret = EVP_PKEY_verify(ctx, sig, siglen, md, mdlen);


/* ret == 1 indicates success, 0 verify failure and < 0 for some
 * other error.
 */
.Ed
.Sh SEE ALSO
.Xr EVP_PKEY_CTX_new 3 ,
.Xr EVP_PKEY_decrypt 3 ,
.Xr EVP_PKEY_derive 3 ,
.Xr EVP_PKEY_encrypt 3 ,

.Xr EVP_PKEY_sign 3 ,
.Xr EVP_PKEY_verify_recover 3
.Sh HISTORY



These functions were first added to OpenSSL 1.0.0.








|
>
>
|

|












>
|
|







>



>
>
>
|
>
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
#include <openssl/evp.h>
#include <openssl/rsa.h>

EVP_PKEY_CTX *ctx;
unsigned char *md, *sig;
size_t mdlen, siglen;
EVP_PKEY *verify_key;

/*
 * Assumes that verify_key, sig, siglen, md, and mdlen are already set up
 * and that verify_key is an RSA public key.
 */
ctx = EVP_PKEY_CTX_new(verify_key, NULL);
if (!ctx)
	/* Error occurred */
if (EVP_PKEY_verify_init(ctx) <= 0)
	/* Error */
if (EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_PADDING) <= 0)
	/* Error */
if (EVP_PKEY_CTX_set_signature_md(ctx, EVP_sha256()) <= 0)
	/* Error */

/* Perform operation */
ret = EVP_PKEY_verify(ctx, sig, siglen, md, mdlen);

/*
 * ret == 1 indicates success, 0 verify failure,
 * and < 0 some other error.
 */
.Ed
.Sh SEE ALSO
.Xr EVP_PKEY_CTX_new 3 ,
.Xr EVP_PKEY_decrypt 3 ,
.Xr EVP_PKEY_derive 3 ,
.Xr EVP_PKEY_encrypt 3 ,
.Xr EVP_PKEY_meth_set_verify 3 ,
.Xr EVP_PKEY_sign 3 ,
.Xr EVP_PKEY_verify_recover 3
.Sh HISTORY
.Fn EVP_PKEY_verify_init
and
.Fn EVP_PKEY_verify
first appeared in OpenSSL 1.0.0 and have been available since
.Ox 4.9 .
Changes to jni/libressl/man/EVP_PKEY_verify_recover.3.
1
2
3
4
5
6
7
8
9
10
11
12
.\"	$OpenBSD: EVP_PKEY_verify_recover.3,v 1.6 2017/01/06 02:43:14 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2006, 2009, 2010, 2013 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
|
|


|







1
2
3
4
5
6
7
8
9
10
11
12
.\" $OpenBSD: EVP_PKEY_verify_recover.3,v 1.9 2018/03/23 04:34:23 schwarze Exp $
.\" full merge up to: OpenSSL 48e5119a Jan 19 10:49:22 2018 +0100
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2006, 2009, 2010, 2013, 2018 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: January 6 2017 $
.Dt EVP_PKEY_VERIFY_RECOVER 3
.Os
.Sh NAME
.Nm EVP_PKEY_verify_recover_init ,
.Nm EVP_PKEY_verify_recover
.Nd recover signature using a public key algorithm
.Sh SYNOPSIS







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt EVP_PKEY_VERIFY_RECOVER 3
.Os
.Sh NAME
.Nm EVP_PKEY_verify_recover_init ,
.Nm EVP_PKEY_verify_recover
.Nd recover signature using a public key algorithm
.Sh SYNOPSIS
140
141
142
143
144
145
146


147
148
149
150
151
152
153
154
155
156
157
#include <openssl/evp.h>
#include <openssl/rsa.h>

EVP_PKEY_CTX *ctx;
unsigned char *rout, *sig;
size_t routlen, siglen;
EVP_PKEY *verify_key;


/* NB: assumes verify_key, sig and siglen are already set up
 * and that verify_key is an RSA public key
 */
ctx = EVP_PKEY_CTX_new(verify_key);
if (!ctx)
	/* Error occurred */
if (EVP_PKEY_verify_recover_init(ctx) <= 0)
	/* Error */
if (EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_PADDING) <= 0)
	/* Error */
if (EVP_PKEY_CTX_set_signature_md(ctx, EVP_sha256()) <= 0)







>
>
|
|

|







140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
#include <openssl/evp.h>
#include <openssl/rsa.h>

EVP_PKEY_CTX *ctx;
unsigned char *rout, *sig;
size_t routlen, siglen;
EVP_PKEY *verify_key;

/*
 * Assumes that verify_key, sig, and siglen are already set up
 * and that verify_key is an RSA public key.
 */
ctx = EVP_PKEY_CTX_new(verify_key, NULL);
if (!ctx)
	/* Error occurred */
if (EVP_PKEY_verify_recover_init(ctx) <= 0)
	/* Error */
if (EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_PADDING) <= 0)
	/* Error */
if (EVP_PKEY_CTX_set_signature_md(ctx, EVP_sha256()) <= 0)
172
173
174
175
176
177
178

179
180
181



182

/* Recovered data is routlen bytes written to buffer rout */
.Ed
.Sh SEE ALSO
.Xr EVP_PKEY_CTX_new 3 ,
.Xr EVP_PKEY_decrypt 3 ,
.Xr EVP_PKEY_derive 3 ,
.Xr EVP_PKEY_encrypt 3 ,

.Xr EVP_PKEY_sign 3 ,
.Xr EVP_PKEY_verify 3
.Sh HISTORY



These functions were first added to OpenSSL 1.0.0.








>



>
>
>
|
>
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
/* Recovered data is routlen bytes written to buffer rout */
.Ed
.Sh SEE ALSO
.Xr EVP_PKEY_CTX_new 3 ,
.Xr EVP_PKEY_decrypt 3 ,
.Xr EVP_PKEY_derive 3 ,
.Xr EVP_PKEY_encrypt 3 ,
.Xr EVP_PKEY_meth_set_verify_recover 3 ,
.Xr EVP_PKEY_sign 3 ,
.Xr EVP_PKEY_verify 3
.Sh HISTORY
.Fn EVP_PKEY_verify_recover_init
and
.Fn EVP_PKEY_verify_recover
first appeared in OpenSSL 1.0.0 and have been available since
.Ox 4.9 .
Changes to jni/libressl/man/EVP_SealInit.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: EVP_SealInit.3,v 1.5 2016/11/26 20:55:26 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2002, 2003, 2005, 2015 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: EVP_SealInit.3,v 1.6 2018/03/20 23:56:07 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2002, 2003, 2005, 2015 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 26 2016 $
.Dt EVP_SEALINIT 3
.Os
.Sh NAME
.Nm EVP_SealInit ,
.Nm EVP_SealUpdate ,
.Nm EVP_SealFinal
.Nd EVP envelope encryption







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 20 2018 $
.Dt EVP_SEALINIT 3
.Os
.Sh NAME
.Nm EVP_SealInit ,
.Nm EVP_SealUpdate ,
.Nm EVP_SealFinal
.Nd EVP envelope encryption
174
175
176
177
178
179
180



181




182
return 1 for success and 0 for failure.
.Sh SEE ALSO
.Xr evp 3 ,
.Xr EVP_EncryptInit 3 ,
.Xr EVP_OpenInit 3 ,
.Xr RAND_bytes 3
.Sh HISTORY



.Fn EVP_SealFinal




did not return a value before OpenSSL 0.9.7.







>
>
>

>
>
>
>

174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
return 1 for success and 0 for failure.
.Sh SEE ALSO
.Xr evp 3 ,
.Xr EVP_EncryptInit 3 ,
.Xr EVP_OpenInit 3 ,
.Xr RAND_bytes 3
.Sh HISTORY
.Fn EVP_SealInit ,
.Fn EVP_SealUpdate ,
and
.Fn EVP_SealFinal
appeared in SSLeay 0.8.1b or earlier and have been available since
.Ox 2.4 .
.Pp
.Fn EVP_SealFinal
did not return a value before OpenSSL 0.9.7.
Changes to jni/libressl/man/EVP_SignInit.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: EVP_SignInit.3,v 1.4 2016/11/26 20:55:26 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000-2002, 2005, 2006, 2014-2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: EVP_SignInit.3,v 1.7 2018/03/22 21:08:22 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000-2002, 2005, 2006, 2014-2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 26 2016 $
.Dt EVP_SIGNINIT 3
.Os
.Sh NAME
.Nm EVP_SignInit_ex ,
.Nm EVP_SignUpdate ,
.Nm EVP_SignFinal ,
.Nm EVP_SignInit ,







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt EVP_SIGNINIT 3
.Os
.Sh NAME
.Nm EVP_SignInit_ex ,
.Nm EVP_SignUpdate ,
.Nm EVP_SignFinal ,
.Nm EVP_SignInit ,
184
185
186
187
188
189
190

191
192
193
194

195
196
197

198
199
200

201
202
203
204
205
206
207
.Pp
The error codes can be obtained by
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr ERR 3 ,
.Xr evp 3 ,
.Xr EVP_DigestInit 3 ,

.Xr EVP_VerifyInit 3
.Sh HISTORY
.Fn EVP_SignInit ,
.Fn EVP_SignUpdate ,

and
.Fn EVP_SignFinal
are available in all versions of SSLeay and OpenSSL.

.Pp
.Fn EVP_SignInit_ex
was added in OpenSSL 0.9.7.

.Sh BUGS
Older versions of this documentation wrongly stated that calls to
.Fn EVP_SignUpdate
could not be made after calling
.Fn EVP_SignFinal .
.Pp
Since the private key is passed in the call to







>




>

|
|
>


|
>







184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
.Pp
The error codes can be obtained by
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr ERR 3 ,
.Xr evp 3 ,
.Xr EVP_DigestInit 3 ,
.Xr EVP_PKEY_asn1_set_public 3 ,
.Xr EVP_VerifyInit 3
.Sh HISTORY
.Fn EVP_SignInit ,
.Fn EVP_SignUpdate ,
.Fn EVP_SignFinal ,
and
.Fn EVP_PKEY_size
appeared in SSLeay 0.8.1b or earlier and have been available since
.Ox 2.4 .
.Pp
.Fn EVP_SignInit_ex
first appeared in OpenSSL 0.9.7 and has been available since
.Ox 3.2 .
.Sh BUGS
Older versions of this documentation wrongly stated that calls to
.Fn EVP_SignUpdate
could not be made after calling
.Fn EVP_SignFinal .
.Pp
Since the private key is passed in the call to
Changes to jni/libressl/man/EVP_VerifyInit.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: EVP_VerifyInit.3,v 1.4 2016/11/26 20:55:26 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2001, 2006, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: EVP_VerifyInit.3,v 1.6 2018/03/22 21:08:22 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2001, 2006, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 26 2016 $
.Dt EVP_VERIFYINIT 3
.Os
.Sh NAME
.Nm EVP_VerifyInit_ex ,
.Nm EVP_VerifyUpdate ,
.Nm EVP_VerifyFinal ,
.Nm EVP_VerifyInit







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt EVP_VERIFYINIT 3
.Os
.Sh NAME
.Nm EVP_VerifyInit_ex ,
.Nm EVP_VerifyUpdate ,
.Nm EVP_VerifyFinal ,
.Nm EVP_VerifyInit
169
170
171
172
173
174
175
176

177
178
179

180
181
182
183
184
185
186
.Xr EVP_DigestInit 3 ,
.Xr EVP_SignInit 3
.Sh HISTORY
.Fn EVP_VerifyInit ,
.Fn EVP_VerifyUpdate ,
and
.Fn EVP_VerifyFinal
are available in all versions of SSLeay and OpenSSL.

.Pp
.Fn EVP_VerifyInit_ex
was added in OpenSSL 0.9.7.

.Sh BUGS
Older versions of this documentation wrongly stated that calls to
.Fn EVP_VerifyUpdate
could not be made after calling
.Fn EVP_VerifyFinal .
.Pp
Since the public key is passed in the call to







|
>


|
>







169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
.Xr EVP_DigestInit 3 ,
.Xr EVP_SignInit 3
.Sh HISTORY
.Fn EVP_VerifyInit ,
.Fn EVP_VerifyUpdate ,
and
.Fn EVP_VerifyFinal
appeared in SSLeay 0.8.1b or earlier and have been available since
.Ox 2.4 .
.Pp
.Fn EVP_VerifyInit_ex
first appeared in OpenSSL 0.9.7 and has been available since
.Ox 3.2 .
.Sh BUGS
Older versions of this documentation wrongly stated that calls to
.Fn EVP_VerifyUpdate
could not be made after calling
.Fn EVP_VerifyFinal .
.Pp
Since the public key is passed in the call to
Changes to jni/libressl/man/EXTENDED_KEY_USAGE_new.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: EXTENDED_KEY_USAGE_new.3,v 1.2 2016/12/25 22:15:10 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 25 2016 $
.Dt EXTENDED_KEY_USAGE_NEW 3
.Os
.Sh NAME
.Nm EXTENDED_KEY_USAGE_new ,
.Nm EXTENDED_KEY_USAGE_free
.Nd X.509 key usage restrictions
.Sh SYNOPSIS
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: EXTENDED_KEY_USAGE_new.3,v 1.3 2018/03/22 21:08:22 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt EXTENDED_KEY_USAGE_NEW 3
.Os
.Sh NAME
.Nm EXTENDED_KEY_USAGE_new ,
.Nm EXTENDED_KEY_USAGE_free
.Nd X.509 key usage restrictions
.Sh SYNOPSIS
69
70
71
72
73
74
75






Certificate Revocation List (CRL) Profile:
.Bl -dash -compact
.It
section 4.2.1.3: Key Usage
.It
section 4.2.1.12: Extended Key Usage
.El













>
>
>
>
>
>
69
70
71
72
73
74
75
76
77
78
79
80
81
Certificate Revocation List (CRL) Profile:
.Bl -dash -compact
.It
section 4.2.1.3: Key Usage
.It
section 4.2.1.12: Extended Key Usage
.El
.Sh HISTORY
.Fn EXTENDED_KEY_USAGE_new
and
.Fn EXTENDED_KEY_USAGE_free
first appeared in OpenSSL 0.9.7 and have been available since
.Ox 3.2 .
Changes to jni/libressl/man/GENERAL_NAME_new.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: GENERAL_NAME_new.3,v 1.2 2016/12/25 22:15:10 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 25 2016 $
.Dt GENERAL_NAME_NEW 3
.Os
.Sh NAME
.Nm GENERAL_NAME_new ,
.Nm GENERAL_NAME_free ,
.Nm GENERAL_NAMES_new ,
.Nm GENERAL_NAMES_free ,
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: GENERAL_NAME_new.3,v 1.5 2018/03/22 21:08:22 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt GENERAL_NAME_NEW 3
.Os
.Sh NAME
.Nm GENERAL_NAME_new ,
.Nm GENERAL_NAME_free ,
.Nm GENERAL_NAMES_new ,
.Nm GENERAL_NAMES_free ,
138
139
140
141
142
143
144




















.Sh SEE ALSO
.Xr X509_EXTENSION_new 3 ,
.Xr X509_NAME_new 3
.Sh STANDARDS
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile,
section 4.2: Certificate Extensions



























>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
.Sh SEE ALSO
.Xr X509_EXTENSION_new 3 ,
.Xr X509_NAME_new 3
.Sh STANDARDS
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile,
section 4.2: Certificate Extensions
.Sh HISTORY
.Fn GENERAL_NAME_new ,
.Fn GENERAL_NAME_free ,
.Fn GENERAL_NAMES_new ,
and
.Fn GENERAL_NAMES_free
first appeared in OpenSSL 0.9.2b and have been available since
.Ox 2.6 .
.Pp
.Fn OTHERNAME_new
and
.Fn OTHERNAME_free
first appeared in OpenSSL 0.9.5 and have been available since
.Ox 2.7 .
.Pp
.Fn EDIPARTYNAME_new
and
.Fn EDIPARTYNAME_free
first appeared in OpenSSL 0.9.7 and have been available since
.Ox 3.2 .
Changes to jni/libressl/man/HMAC.3.
1
2

3
4


5
6
7
8
9
10
11
12
13
.\"	$OpenBSD: HMAC.3,v 1.7 2017/08/01 14:57:03 schwarze Exp $
.\"	OpenSSL a528d4f0 Oct 27 13:40:11 2015 -0400

.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.


.\" Copyright (c) 2000-2002, 2006, 2008, 2009, 2013, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
|
|
>

|
>
>
|
|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
.\" $OpenBSD: HMAC.3,v 1.13 2018/03/23 23:18:17 schwarze Exp $
.\" full merge up to: OpenSSL crypto/hmac a528d4f0 Oct 27 13:40:11 2015 -0400
.\" selective merge up to: OpenSSL man3/HMAC b3696a55 Sep 2 09:35:50 2017 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>,
.\" Richard Levitte <levitte@openssl.org>, and
.\" Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2000-2002, 2006, 2008, 2009, 2013, 2015, 2016
.\" The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
45
46
47
48
49
50
51
52
53
54
55
56



57

58
59

60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79










80
81
82
83
84
85
86

87
88
89
90
91
92
93
94
95
96
97
98







99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128




129
130
131
132
133
134
135
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: August 1 2017 $
.Dt HMAC 3
.Os
.Sh NAME
.Nm HMAC ,



.Nm HMAC_CTX_init ,

.Nm HMAC_Init ,
.Nm HMAC_Init_ex ,

.Nm HMAC_Update ,
.Nm HMAC_Final ,
.Nm HMAC_CTX_cleanup ,
.Nm HMAC_cleanup ,
.Nm HMAC_CTX_copy ,
.Nm HMAC_CTX_set_flags ,
.Nm HMAC_size
.Nd HMAC message authentication code
.Sh SYNOPSIS
.In openssl/hmac.h
.Ft unsigned char *
.Fo HMAC
.Fa "const EVP_MD *evp_md"
.Fa "const void *key"
.Fa "int key_len"
.Fa "const unsigned char *d"
.Fa "int n"
.Fa "unsigned char *md"
.Fa "unsigned int *md_len"
.Fc










.Ft void
.Fo HMAC_CTX_init
.Fa "HMAC_CTX *ctx"
.Fc
.Ft int
.Fo HMAC_Init
.Fa "HMAC_CTX *ctx"

.Fa "const void *key"
.Fa "int key_len"
.Fa "const EVP_MD *md"
.Fc
.Ft int
.Fo HMAC_Init_ex
.Fa "HMAC_CTX *ctx"
.Fa "const void *key"
.Fa "int key_len"
.Fa "const EVP_MD *md"
.Fa "ENGINE *impl"
.Fc







.Ft int
.Fo HMAC_Update
.Fa "HMAC_CTX *ctx"
.Fa "const unsigned char *data"
.Fa "int len"
.Fc
.Ft int
.Fo HMAC_Final
.Fa "HMAC_CTX *ctx"
.Fa "unsigned char *md"
.Fa "unsigned int *len"
.Fc
.Ft void
.Fo HMAC_CTX_cleanup
.Fa "HMAC_CTX *ctx"
.Fc
.Ft void
.Fo HMAC_cleanup
.Fa "HMAC_CTX *ctx"
.Fc
.Ft int
.Fo HMAC_CTX_copy
.Fa "HMAC_CTX *dctx"
.Fa "HMAC_CTX *sctx"
.Fc
.Ft void
.Fo HMAC_CTX_set_flags
.Fa "HMAC_CTX *ctx"
.Fa "unsigned long flags"
.Fc




.Ft size_t
.Fo HMAC_size
.Fa "const HMAC_CTX *e"
.Fc
.Sh DESCRIPTION
HMAC is a MAC (message authentication code), i.e. a keyed hash
function used for message authentication, which is based on a hash







|




>
>
>

>
|

>


|
<
|
|














>
>
>
>
>
>
>
>
>
>




|
|

>
|
|
|









>
>
>
>
>
>
>












<
<
<
<
<
<
<
<










>
>
>
>







48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70

71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135








136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt HMAC 3
.Os
.Sh NAME
.Nm HMAC ,
.Nm HMAC_CTX_new ,
.Nm HMAC_CTX_reset ,
.Nm HMAC_CTX_free ,
.Nm HMAC_CTX_init ,
.Nm HMAC_CTX_cleanup ,
.Nm HMAC_cleanup ,
.Nm HMAC_Init_ex ,
.Nm HMAC_Init ,
.Nm HMAC_Update ,
.Nm HMAC_Final ,
.Nm HMAC_CTX_copy ,

.Nm HMAC_CTX_set_flags ,
.Nm HMAC_CTX_get_md ,
.Nm HMAC_size
.Nd HMAC message authentication code
.Sh SYNOPSIS
.In openssl/hmac.h
.Ft unsigned char *
.Fo HMAC
.Fa "const EVP_MD *evp_md"
.Fa "const void *key"
.Fa "int key_len"
.Fa "const unsigned char *d"
.Fa "int n"
.Fa "unsigned char *md"
.Fa "unsigned int *md_len"
.Fc
.Ft HMAC_CTX *
.Fn HMAC_CTX_new void
.Ft int
.Fo HMAC_CTX_reset
.Fa "HMAC_CTX *ctx"
.Fc
.Ft void
.Fo HMAC_CTX_free
.Fa "HMAC_CTX *ctx"
.Fc
.Ft void
.Fo HMAC_CTX_init
.Fa "HMAC_CTX *ctx"
.Fc
.Ft void
.Fo HMAC_CTX_cleanup
.Fa "HMAC_CTX *ctx"
.Fc
.Ft void
.Fo HMAC_cleanup
.Fa "HMAC_CTX *ctx"
.Fc
.Ft int
.Fo HMAC_Init_ex
.Fa "HMAC_CTX *ctx"
.Fa "const void *key"
.Fa "int key_len"
.Fa "const EVP_MD *md"
.Fa "ENGINE *impl"
.Fc
.Ft int
.Fo HMAC_Init
.Fa "HMAC_CTX *ctx"
.Fa "const void *key"
.Fa "int key_len"
.Fa "const EVP_MD *md"
.Fc
.Ft int
.Fo HMAC_Update
.Fa "HMAC_CTX *ctx"
.Fa "const unsigned char *data"
.Fa "int len"
.Fc
.Ft int
.Fo HMAC_Final
.Fa "HMAC_CTX *ctx"
.Fa "unsigned char *md"
.Fa "unsigned int *len"
.Fc








.Ft int
.Fo HMAC_CTX_copy
.Fa "HMAC_CTX *dctx"
.Fa "HMAC_CTX *sctx"
.Fc
.Ft void
.Fo HMAC_CTX_set_flags
.Fa "HMAC_CTX *ctx"
.Fa "unsigned long flags"
.Fc
.Ft const EVP_MD *
.Fo HMAC_CTX_get_md
.Fa "const HMAC_CTX *ctx"
.Fc
.Ft size_t
.Fo HMAC_size
.Fa "const HMAC_CTX *e"
.Fc
.Sh DESCRIPTION
HMAC is a MAC (message authentication code), i.e. a keyed hash
function used for message authentication, which is based on a hash
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175


176

177





178
179
180







181









182


183



184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218





219
220

221





222
223





224






















225

226
227
228


229
230
231
232
233
234
235
more than
.Dv EVP_MAX_MD_SIZE
bytes.
If
.Fa md
is
.Dv NULL ,
the digest is placed in a static array.
The size of the output is placed in
.Fa md_len ,
unless it is
.Dv NULL .
.Pp
.Fa evp_md
can be
.Xr EVP_sha1 3 ,
.Xr EVP_ripemd160 3 ,
etc.
.Pp
.Fn HMAC_CTX_init
initialises a
.Vt HMAC_CTX


before first use.

It must be called.





.Pp
.Fn HMAC_CTX_cleanup
erases the key and other data from the







.Vt HMAC_CTX









and releases any associated resources.


It must be called when an



.Vt HMAC_CTX
is no longer required.
.Pp
.Fn HMAC_cleanup
is an alias for
.Fn HMAC_CTX_cleanup
included for backward compatibility with 0.9.6b.
It is deprecated and implemented as a macro.
.Pp
The following functions may be used if the message is not completely
stored in memory:
.Pp
.Fn HMAC_Init
initializes a
.Vt HMAC_CTX
structure to use the hash function
.Fa evp_md
and the key
.Fa key
which is
.Fa key_len
bytes long.
It is deprecated and only included for backward compatibility with
OpenSSL 0.9.6b.
.Pp
.Fn HMAC_Init_ex
initializes or reuses a
.Vt HMAC_CTX
structure to use the function
.Fa evp_md
and key
.Fa key .
Either can be
.Dv NULL ,
in which case the existing one will be reused.





.Fn HMAC_CTX_init
must have been called before the first use of an

.Vt HMAC_CTX





in this function.
.Sy N.B.





.Fn HMAC_Init






















had this undocumented behaviour in previous versions of OpenSSL -

failure to switch to
.Fn HMAC_Init_ex
in programs that expect it will cause them to stop working.


.Pp
.Fn HMAC_Update
can be called repeatedly with chunks of the message to be authenticated
.Pq Fa len No bytes at Fa data .
.Pp
.Fn HMAC_Final
places the message authentication code in







|











|
|

>
>
|
>
|
>
>
>
>
>

|
|
>
>
>
>
>
>
>

>
>
>
>
>
>
>
>
>
|
>
>
|
>
>
>
|
|










|
|
|
|


<
<
<
<
<
<
<
<
<
<
<
<
<



|
>
>
>
>
>

|
>
|
>
>
>
>
>
|
|
>
>
>
>
>

>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
>
|
|
<
>
>







175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251













252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303

304
305
306
307
308
309
310
311
312
more than
.Dv EVP_MAX_MD_SIZE
bytes.
If
.Fa md
is
.Dv NULL ,
the digest is placed in a static array, which is not thread safe.
The size of the output is placed in
.Fa md_len ,
unless it is
.Dv NULL .
.Pp
.Fa evp_md
can be
.Xr EVP_sha1 3 ,
.Xr EVP_ripemd160 3 ,
etc.
.Pp
.Fn HMAC_CTX_new
allocates and initializes a new
.Vt HMAC_CTX
object.
.Pp
.Fn HMAC_CTX_reset
zeroes and re-initializes
.Fa ctx
and associated resources, making it suitable for new computations
as if it was deleted with
.Fn HMAC_CTX_free
and newly created with
.Fn HMAC_CTX_new .
.Pp
.Fn HMAC_CTX_free
erases the key and other data from
.Fa ctx ,
releases any associated resources, and finally frees
.Fa ctx
itself.
.Pp
.Fn HMAC_CTX_init
is a deprecated function to initialize an empty
.Vt HMAC_CTX
object, similar to
.Fn CTX_new
but without the allocation.
Calling it is required for static objects and objects on the stack
before using them.
.Pp
.Fn HMAC_CTX_cleanup
is a deprecated function to erase the key and other data from
.Fa ctx
and release any associated resources, similar to
.Fn HMAC_CTX_free
but without freeing
.Fa ctx
itself.
Calling it is required for static objects and objects on the stack
that were initialized with
.Fn HMAC_CTX_init
and are no longer needed.
.Pp
.Fn HMAC_cleanup
is an alias for
.Fn HMAC_CTX_cleanup
included for backward compatibility with 0.9.6b.
It is deprecated and implemented as a macro.
.Pp
The following functions may be used if the message is not completely
stored in memory:
.Pp
.Fn HMAC_Init_ex
sets up or reuses
.Fa ctx
to use the hash function
.Fa evp_md
and the key













.Fa key .
Either can be
.Dv NULL ,
in which case the existing one is reused.
The
.Fa ctx
must have been created with
.Fn HMAC_CTX_new
or initialized with
.Fn HMAC_CTX_init
before the first use in this function.
If
.Fn HMAC_Init_ex
is called with a
.Dv NULL
.Fa key
but
.Fa evp_md
is neither
.Dv NULL
nor the same as the previous digest used by
.Fa ctx ,
then an error is returned because reuse of an existing key with a
different digest is not supported.
.Pp
.Fn HMAC_Init
is a deprecated wrapper around
.Fn HMAC_Init_ex .
If called with both
.Fa key
and
.Fa md ,
it calls
.Fn HMAC_CTX_init
first, which only makes sense for an empty, uninitialized
.Fa ctx ,
but not for one already initialized with
.Fn HMAC_CTX_new
or
.Fn HMAC_CTX_init .
If
.Fa key
or
.Fa md
is
.Dv NULL ,
it does not call
.Fn HMAC_CTX_init ;
so in this case,
.Fa ctx
already needs to be initialized with
.Fn HMAC_CTX_new

or
.Fn HMAC_CTX_init .
.Pp
.Fn HMAC_Update
can be called repeatedly with chunks of the message to be authenticated
.Pq Fa len No bytes at Fa data .
.Pp
.Fn HMAC_Final
places the message authentication code in
256
257
258
259
260
261
262








263
264
265
266
267
268









269
270
271
272
273
274
275
276
277
278

279
280
281
282
283
284

285
286
287
288




289
290

291
292



293


294
295
296

It is implemented as a macro.
.Sh RETURN VALUES
.Fn HMAC
returns a pointer to the message authentication code or
.Dv NULL
if an error occurred.
.Pp








.Fn HMAC_Init_ex ,
.Fn HMAC_Update ,
.Fn HMAC_Final ,
and
.Fn HMAC_CTX_copy
return 1 for success or 0 if an error occurred.









.Pp
.Fn HMAC_size
returns the length in bytes of the underlying hash function output
or 0 on error.
.Sh SEE ALSO
.Xr evp 3
.Sh STANDARDS
RFC 2104
.Sh HISTORY
.Fn HMAC ,

.Fn HMAC_Init ,
.Fn HMAC_Update ,
.Fn HMAC_Final ,
and
.Fn HMAC_cleanup
are available since SSLeay 0.9.0.

.Pp
.Fn HMAC_CTX_init ,
.Fn HMAC_Init_ex ,
and




.Fn HMAC_CTX_cleanup
are available since OpenSSL 0.9.7.

.Pp
.Fn HMAC_Init_ex ,



.Fn HMAC_Update ,


and
.Fn HMAC_Final
did not return values in versions of OpenSSL before 1.0.0.








>
>
>
>
>
>
>
>






>
>
>
>
>
>
>
>
>










>




|
|
>


|

>
>
>
>
|
|
>

|
>
>
>
|
>
>

|
|
>
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
It is implemented as a macro.
.Sh RETURN VALUES
.Fn HMAC
returns a pointer to the message authentication code or
.Dv NULL
if an error occurred.
.Pp
.Fn HMAC_CTX_new
returns a pointer to the new
.Vt HMAC_CTX
object or
.Dv NULL
if an error occurred.
.Pp
.Fn HMAC_CTX_reset ,
.Fn HMAC_Init_ex ,
.Fn HMAC_Update ,
.Fn HMAC_Final ,
and
.Fn HMAC_CTX_copy
return 1 for success or 0 if an error occurred.
.Pp
.Fn HMAC_CTX_get_md
returns the message digest that was previously set for
.Fa ctx
with
.Fn HMAC_Init_ex ,
or
.Dv NULL
if none was set.
.Pp
.Fn HMAC_size
returns the length in bytes of the underlying hash function output
or 0 on error.
.Sh SEE ALSO
.Xr evp 3
.Sh STANDARDS
RFC 2104
.Sh HISTORY
.Fn HMAC ,
.Fn HMAC_cleanup ,
.Fn HMAC_Init ,
.Fn HMAC_Update ,
.Fn HMAC_Final ,
and
.Fn HMAC_size
first appeared in SSLeay 0.9.0 and have been available since
.Ox 2.4 .
.Pp
.Fn HMAC_CTX_init ,
.Fn HMAC_CTX_cleanup ,
and
.Fn HMAC_Init_ex
first appeared in OpenSSL 0.9.7 and have been available since
.Ox 3.2 .
.Pp
.Fn HMAC_CTX_set_flags
first appeared in OpenSSL 0.9.7f and have been available since
.Ox 3.8 .
.Pp
.Fn HMAC_CTX_copy
first appeared in OpenSSL 1.0.0 and has been available since
.Ox 4.9 .
.Pp
.Fn HMAC_CTX_new ,
.Fn HMAC_CTX_reset ,
.Fn HMAC_CTX_free ,
and
.Fn HMAC_CTX_get_md
first appeared in OpenSSL 1.1.0 and have been available since
.Ox 6.3 .
Changes to jni/libressl/man/MD5.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: MD5.3,v 1.4 2016/11/27 16:20:15 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org> and
.\" Richard Levitte <levitte@openssl.org>.
.\" Copyright (c) 2000, 2006 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: MD5.3,v 1.7 2018/03/22 17:11:04 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org> and
.\" Richard Levitte <levitte@openssl.org>.
.\" Copyright (c) 2000, 2006 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 27 2016 $
.Dt MD5 3
.Os
.Sh NAME
.Nm MD2 ,
.Nm MD4 ,
.Nm MD5 ,
.Nm MD2_Init ,
.Nm MD2_Update ,
.Nm MD2_Final ,
.Nm MD4_Init ,
.Nm MD4_Update ,
.Nm MD4_Final ,
.Nm MD5_Init ,
.Nm MD5_Update ,
.Nm MD5_Final
.Nd MD2, MD4, and MD5 hash functions
.Sh SYNOPSIS
.In openssl/md2.h
.Ft unsigned char *
.Fo MD2
.Fa "const unsigned char *d"
.Fa "unsigned long n"
.Fa "unsigned char *md"
.Fc
.Ft int
.Fo MD2_Init
.Fa "MD2_CTX *c"
.Fc
.Ft int
.Fo MD2_Update
.Fa "MD2_CTX *c"
.Fa "const unsigned char *data"
.Fa "unsigned long len"
.Fc
.Ft int
.Fo MD2_Final
.Fa "unsigned char *md"
.Fa "MD2_CTX *c"
.Fc
.In openssl/md4.h
.Ft unsigned char *
.Fo MD4
.Fa "const unsigned char *d"
.Fa "unsigned long n"
.Fa "unsigned char *md"
.Fc







|



<


<
<
<






|

<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







45
46
47
48
49
50
51
52
53
54
55

56
57



58
59
60
61
62
63
64
65






















66
67
68
69
70
71
72
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt MD5 3
.Os
.Sh NAME

.Nm MD4 ,
.Nm MD5 ,



.Nm MD4_Init ,
.Nm MD4_Update ,
.Nm MD4_Final ,
.Nm MD5_Init ,
.Nm MD5_Update ,
.Nm MD5_Final
.Nd MD4 and MD5 hash functions
.Sh SYNOPSIS






















.In openssl/md4.h
.Ft unsigned char *
.Fo MD4
.Fa "const unsigned char *d"
.Fa "unsigned long n"
.Fa "unsigned char *md"
.Fc
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229

230
231
232

233
234
235

.Fc
.Ft int
.Fo MD5_Final
.Fa "unsigned char *md"
.Fa "MD5_CTX *c"
.Fc
.Sh DESCRIPTION
MD2, MD4, and MD5 are cryptographic hash functions with a 128-bit
output.
.Pp
.Fn MD2 ,
.Fn MD4 ,
and
.Fn MD5
compute the MD2, MD4, and MD5 message digest of the
.Fa n
bytes at
.Fa d
and place it in
.Fa md ,
which must have space for
.Dv MD2_DIGEST_LENGTH No ==
.Dv MD4_DIGEST_LENGTH No ==
.Dv MD5_DIGEST_LENGTH No == 16
bytes of output.
If
.Fa md
is
.Dv NULL ,
the digest is placed in a static array.
.Pp
The following functions may be used if the message is not completely
stored in memory:
.Pp
.Fn MD2_Init
initializes a
.Vt MD2_CTX
structure.
.Pp
.Fn MD2_Update
can be called repeatedly with chunks of the message to be hashed
.Pq Fa len No bytes at Fa data .
.Pp
.Fn MD2_Final
places the message digest in
.Fa md ,
which must have space for
.Dv MD2_DIGEST_LENGTH No == 16
bytes of output, and erases the
.Vt MD2_CTX .
.Pp
.Fn MD4_Init ,
.Fn MD4_Update ,
.Fn MD4_Final ,
.Fn MD5_Init ,
.Fn MD5_Update ,
and
.Fn MD5_Final
are analogous using an
.Vt MD4_CTX
and
.Vt MD5_CTX
structure.
.Pp
Applications should use the higher level functions
.Xr EVP_DigestInit 3
etc. instead of calling these hash functions directly.
.Sh RETURN VALUES
.Fn MD2 ,
.Fn MD4 ,
and
.Fn MD5
return pointers to the hash value.
.Pp
.Fn MD2_Init ,
.Fn MD2_Update ,
.Fn MD2_Final ,
.Fn MD4_Init ,
.Fn MD4_Update ,
.Fn MD4_Final ,
.Fn MD5_Init ,
.Fn MD5_Update ,
and
.Fn MD5_Final
return 1 for success or 0 otherwise.
.Sh SEE ALSO
.Xr EVP_DigestInit 3
.Sh STANDARDS
RFC 1319, RFC 1320, RFC 1321
.Sh HISTORY
.Fn MD2 ,
.Fn MD2_Init ,
.Fn MD2_Update ,
.Fn MD2_Final ,
.Fn MD5 ,
.Fn MD5_Init ,
.Fn MD5_Update ,
and
.Fn MD5_Final
are available in all versions of SSLeay and OpenSSL.

.Pp
.Fn MD4 ,
.Fn MD4_Init ,

and
.Fn MD4_Update
are available in OpenSSL 0.9.6 and above.








|


|
<


|






<
|
<










|

|


|



|



|

|



<
<
<

|


<
<






|
<




<
<
<











|

<
<
<
<





|
>



>

|
|
>
104
105
106
107
108
109
110
111
112
113
114

115
116
117
118
119
120
121
122
123

124

125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153



154
155
156
157


158
159
160
161
162
163
164

165
166
167
168



169
170
171
172
173
174
175
176
177
178
179
180
181




182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
.Fc
.Ft int
.Fo MD5_Final
.Fa "unsigned char *md"
.Fa "MD5_CTX *c"
.Fc
.Sh DESCRIPTION
MD4 and MD5 are cryptographic hash functions with a 128-bit
output.
.Pp
.Fn MD4

and
.Fn MD5
compute the MD4 and MD5 message digest of the
.Fa n
bytes at
.Fa d
and place it in
.Fa md ,
which must have space for

.Dv MD4_DIGEST_LENGTH No == Dv MD5_DIGEST_LENGTH No == 16

bytes of output.
If
.Fa md
is
.Dv NULL ,
the digest is placed in a static array.
.Pp
The following functions may be used if the message is not completely
stored in memory:
.Pp
.Fn MD5_Init
initializes a
.Vt MD5_CTX
structure.
.Pp
.Fn MD5_Update
can be called repeatedly with chunks of the message to be hashed
.Pq Fa len No bytes at Fa data .
.Pp
.Fn MD5_Final
places the message digest in
.Fa md ,
which must have space for
.Dv MD5_DIGEST_LENGTH No == 16
bytes of output, and erases the
.Vt MD5_CTX .
.Pp
.Fn MD4_Init ,
.Fn MD4_Update ,



and
.Fn MD4_Final
are analogous using an
.Vt MD4_CTX


structure.
.Pp
Applications should use the higher level functions
.Xr EVP_DigestInit 3
etc. instead of calling these hash functions directly.
.Sh RETURN VALUES
.Fn MD4

and
.Fn MD5
return pointers to the hash value.
.Pp



.Fn MD4_Init ,
.Fn MD4_Update ,
.Fn MD4_Final ,
.Fn MD5_Init ,
.Fn MD5_Update ,
and
.Fn MD5_Final
return 1 for success or 0 otherwise.
.Sh SEE ALSO
.Xr EVP_DigestInit 3
.Sh STANDARDS
RFC 1320, RFC 1321
.Sh HISTORY




.Fn MD5 ,
.Fn MD5_Init ,
.Fn MD5_Update ,
and
.Fn MD5_Final
appeared in SSLeay 0.8.1b or earlier and have been available since
.Ox 2.4 .
.Pp
.Fn MD4 ,
.Fn MD4_Init ,
.Fn MD4_Update ,
and
.Fn MD4_Final
first appeared in OpenSSL 0.9.6 and have been available since
.Ox 2.9 .
Changes to jni/libressl/man/Makefile.am.
1
2
3
4
5

6
7
8
9
10
11
12
13

14
15
16
17
18
19
20
EXTRA_DIST = CMakeLists.txt
dist_man3_MANS =
dist_man5_MANS =
dist_man3_MANS += BIO_f_ssl.3
dist_man3_MANS += DTLSv1_listen.3

dist_man3_MANS += PEM_read_SSL_SESSION.3
dist_man3_MANS += SSL_CIPHER_get_name.3
dist_man3_MANS += SSL_COMP_add_compression_method.3
dist_man3_MANS += SSL_CTX_add_extra_chain_cert.3
dist_man3_MANS += SSL_CTX_add_session.3
dist_man3_MANS += SSL_CTX_ctrl.3
dist_man3_MANS += SSL_CTX_flush_sessions.3
dist_man3_MANS += SSL_CTX_free.3

dist_man3_MANS += SSL_CTX_get_ex_new_index.3
dist_man3_MANS += SSL_CTX_get_verify_mode.3
dist_man3_MANS += SSL_CTX_load_verify_locations.3
dist_man3_MANS += SSL_CTX_new.3
dist_man3_MANS += SSL_CTX_sess_number.3
dist_man3_MANS += SSL_CTX_sess_set_cache_size.3
dist_man3_MANS += SSL_CTX_sess_set_get_cb.3





>








>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
EXTRA_DIST = CMakeLists.txt
dist_man3_MANS =
dist_man5_MANS =
dist_man3_MANS += BIO_f_ssl.3
dist_man3_MANS += DTLSv1_listen.3
dist_man3_MANS += OPENSSL_init_ssl.3
dist_man3_MANS += PEM_read_SSL_SESSION.3
dist_man3_MANS += SSL_CIPHER_get_name.3
dist_man3_MANS += SSL_COMP_add_compression_method.3
dist_man3_MANS += SSL_CTX_add_extra_chain_cert.3
dist_man3_MANS += SSL_CTX_add_session.3
dist_man3_MANS += SSL_CTX_ctrl.3
dist_man3_MANS += SSL_CTX_flush_sessions.3
dist_man3_MANS += SSL_CTX_free.3
dist_man3_MANS += SSL_CTX_get0_certificate.3
dist_man3_MANS += SSL_CTX_get_ex_new_index.3
dist_man3_MANS += SSL_CTX_get_verify_mode.3
dist_man3_MANS += SSL_CTX_load_verify_locations.3
dist_man3_MANS += SSL_CTX_new.3
dist_man3_MANS += SSL_CTX_sess_number.3
dist_man3_MANS += SSL_CTX_sess_set_cache_size.3
dist_man3_MANS += SSL_CTX_sess_set_get_cb.3
39
40
41
42
43
44
45

46
47
48
49
50
51
52
53
54

55

56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72

73
74
75
76
77
78
79
dist_man3_MANS += SSL_CTX_set_session_cache_mode.3
dist_man3_MANS += SSL_CTX_set_session_id_context.3
dist_man3_MANS += SSL_CTX_set_ssl_version.3
dist_man3_MANS += SSL_CTX_set_timeout.3
dist_man3_MANS += SSL_CTX_set_tlsext_servername_callback.3
dist_man3_MANS += SSL_CTX_set_tlsext_status_cb.3
dist_man3_MANS += SSL_CTX_set_tlsext_ticket_key_cb.3

dist_man3_MANS += SSL_CTX_set_tmp_dh_callback.3
dist_man3_MANS += SSL_CTX_set_tmp_rsa_callback.3
dist_man3_MANS += SSL_CTX_set_verify.3
dist_man3_MANS += SSL_CTX_use_certificate.3
dist_man3_MANS += SSL_SESSION_free.3
dist_man3_MANS += SSL_SESSION_get0_peer.3
dist_man3_MANS += SSL_SESSION_get_compress_id.3
dist_man3_MANS += SSL_SESSION_get_ex_new_index.3
dist_man3_MANS += SSL_SESSION_get_id.3

dist_man3_MANS += SSL_SESSION_get_time.3

dist_man3_MANS += SSL_SESSION_new.3
dist_man3_MANS += SSL_SESSION_print.3
dist_man3_MANS += SSL_SESSION_set1_id_context.3
dist_man3_MANS += SSL_accept.3
dist_man3_MANS += SSL_alert_type_string.3
dist_man3_MANS += SSL_clear.3
dist_man3_MANS += SSL_connect.3
dist_man3_MANS += SSL_copy_session_id.3
dist_man3_MANS += SSL_do_handshake.3
dist_man3_MANS += SSL_dup.3
dist_man3_MANS += SSL_dup_CA_list.3
dist_man3_MANS += SSL_export_keying_material.3
dist_man3_MANS += SSL_free.3
dist_man3_MANS += SSL_get_SSL_CTX.3
dist_man3_MANS += SSL_get_certificate.3
dist_man3_MANS += SSL_get_ciphers.3
dist_man3_MANS += SSL_get_client_CA_list.3

dist_man3_MANS += SSL_get_current_cipher.3
dist_man3_MANS += SSL_get_default_timeout.3
dist_man3_MANS += SSL_get_error.3
dist_man3_MANS += SSL_get_ex_data_X509_STORE_CTX_idx.3
dist_man3_MANS += SSL_get_ex_new_index.3
dist_man3_MANS += SSL_get_fd.3
dist_man3_MANS += SSL_get_peer_cert_chain.3







>









>

>

















>







41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
dist_man3_MANS += SSL_CTX_set_session_cache_mode.3
dist_man3_MANS += SSL_CTX_set_session_id_context.3
dist_man3_MANS += SSL_CTX_set_ssl_version.3
dist_man3_MANS += SSL_CTX_set_timeout.3
dist_man3_MANS += SSL_CTX_set_tlsext_servername_callback.3
dist_man3_MANS += SSL_CTX_set_tlsext_status_cb.3
dist_man3_MANS += SSL_CTX_set_tlsext_ticket_key_cb.3
dist_man3_MANS += SSL_CTX_set_tlsext_use_srtp.3
dist_man3_MANS += SSL_CTX_set_tmp_dh_callback.3
dist_man3_MANS += SSL_CTX_set_tmp_rsa_callback.3
dist_man3_MANS += SSL_CTX_set_verify.3
dist_man3_MANS += SSL_CTX_use_certificate.3
dist_man3_MANS += SSL_SESSION_free.3
dist_man3_MANS += SSL_SESSION_get0_peer.3
dist_man3_MANS += SSL_SESSION_get_compress_id.3
dist_man3_MANS += SSL_SESSION_get_ex_new_index.3
dist_man3_MANS += SSL_SESSION_get_id.3
dist_man3_MANS += SSL_SESSION_get_protocol_version.3
dist_man3_MANS += SSL_SESSION_get_time.3
dist_man3_MANS += SSL_SESSION_has_ticket.3
dist_man3_MANS += SSL_SESSION_new.3
dist_man3_MANS += SSL_SESSION_print.3
dist_man3_MANS += SSL_SESSION_set1_id_context.3
dist_man3_MANS += SSL_accept.3
dist_man3_MANS += SSL_alert_type_string.3
dist_man3_MANS += SSL_clear.3
dist_man3_MANS += SSL_connect.3
dist_man3_MANS += SSL_copy_session_id.3
dist_man3_MANS += SSL_do_handshake.3
dist_man3_MANS += SSL_dup.3
dist_man3_MANS += SSL_dup_CA_list.3
dist_man3_MANS += SSL_export_keying_material.3
dist_man3_MANS += SSL_free.3
dist_man3_MANS += SSL_get_SSL_CTX.3
dist_man3_MANS += SSL_get_certificate.3
dist_man3_MANS += SSL_get_ciphers.3
dist_man3_MANS += SSL_get_client_CA_list.3
dist_man3_MANS += SSL_get_client_random.3
dist_man3_MANS += SSL_get_current_cipher.3
dist_man3_MANS += SSL_get_default_timeout.3
dist_man3_MANS += SSL_get_error.3
dist_man3_MANS += SSL_get_ex_data_X509_STORE_CTX_idx.3
dist_man3_MANS += SSL_get_ex_new_index.3
dist_man3_MANS += SSL_get_fd.3
dist_man3_MANS += SSL_get_peer_cert_chain.3
127
128
129
130
131
132
133

134

135
136
137
138
139
140
141
dist_man3_MANS += BIO_ctrl.3
dist_man3_MANS += BIO_f_base64.3
dist_man3_MANS += BIO_f_buffer.3
dist_man3_MANS += BIO_f_cipher.3
dist_man3_MANS += BIO_f_md.3
dist_man3_MANS += BIO_f_null.3
dist_man3_MANS += BIO_find_type.3

dist_man3_MANS += BIO_get_ex_new_index.3

dist_man3_MANS += BIO_new.3
dist_man3_MANS += BIO_printf.3
dist_man3_MANS += BIO_push.3
dist_man3_MANS += BIO_read.3
dist_man3_MANS += BIO_s_accept.3
dist_man3_MANS += BIO_s_bio.3
dist_man3_MANS += BIO_s_connect.3







>

>







133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
dist_man3_MANS += BIO_ctrl.3
dist_man3_MANS += BIO_f_base64.3
dist_man3_MANS += BIO_f_buffer.3
dist_man3_MANS += BIO_f_cipher.3
dist_man3_MANS += BIO_f_md.3
dist_man3_MANS += BIO_f_null.3
dist_man3_MANS += BIO_find_type.3
dist_man3_MANS += BIO_get_data.3
dist_man3_MANS += BIO_get_ex_new_index.3
dist_man3_MANS += BIO_meth_new.3
dist_man3_MANS += BIO_new.3
dist_man3_MANS += BIO_printf.3
dist_man3_MANS += BIO_push.3
dist_man3_MANS += BIO_read.3
dist_man3_MANS += BIO_s_accept.3
dist_man3_MANS += BIO_s_bio.3
dist_man3_MANS += BIO_s_connect.3
172
173
174
175
176
177
178

179
180
181
182
183
184
185
186
187
188

189

190
191
192
193
194
195
196
dist_man3_MANS += CONF_modules_load_file.3
dist_man3_MANS += CRYPTO_get_mem_functions.3
dist_man3_MANS += CRYPTO_set_ex_data.3
dist_man3_MANS += CRYPTO_set_locking_callback.3
dist_man3_MANS += DES_set_key.3
dist_man3_MANS += DH_generate_key.3
dist_man3_MANS += DH_generate_parameters.3

dist_man3_MANS += DH_get_ex_new_index.3
dist_man3_MANS += DH_new.3
dist_man3_MANS += DH_set_method.3
dist_man3_MANS += DH_size.3
dist_man3_MANS += DIST_POINT_new.3
dist_man3_MANS += DSA_SIG_new.3
dist_man3_MANS += DSA_do_sign.3
dist_man3_MANS += DSA_dup_DH.3
dist_man3_MANS += DSA_generate_key.3
dist_man3_MANS += DSA_generate_parameters.3

dist_man3_MANS += DSA_get_ex_new_index.3

dist_man3_MANS += DSA_new.3
dist_man3_MANS += DSA_set_method.3
dist_man3_MANS += DSA_sign.3
dist_man3_MANS += DSA_size.3
dist_man3_MANS += ECDSA_SIG_new.3
dist_man3_MANS += EC_GFp_simple_method.3
dist_man3_MANS += EC_GROUP_copy.3







>










>

>







180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
dist_man3_MANS += CONF_modules_load_file.3
dist_man3_MANS += CRYPTO_get_mem_functions.3
dist_man3_MANS += CRYPTO_set_ex_data.3
dist_man3_MANS += CRYPTO_set_locking_callback.3
dist_man3_MANS += DES_set_key.3
dist_man3_MANS += DH_generate_key.3
dist_man3_MANS += DH_generate_parameters.3
dist_man3_MANS += DH_get0_pqg.3
dist_man3_MANS += DH_get_ex_new_index.3
dist_man3_MANS += DH_new.3
dist_man3_MANS += DH_set_method.3
dist_man3_MANS += DH_size.3
dist_man3_MANS += DIST_POINT_new.3
dist_man3_MANS += DSA_SIG_new.3
dist_man3_MANS += DSA_do_sign.3
dist_man3_MANS += DSA_dup_DH.3
dist_man3_MANS += DSA_generate_key.3
dist_man3_MANS += DSA_generate_parameters.3
dist_man3_MANS += DSA_get0_pqg.3
dist_man3_MANS += DSA_get_ex_new_index.3
dist_man3_MANS += DSA_meth_new.3
dist_man3_MANS += DSA_new.3
dist_man3_MANS += DSA_set_method.3
dist_man3_MANS += DSA_sign.3
dist_man3_MANS += DSA_size.3
dist_man3_MANS += ECDSA_SIG_new.3
dist_man3_MANS += EC_GFp_simple_method.3
dist_man3_MANS += EC_GROUP_copy.3
217
218
219
220
221
222
223


224
225
226
227
228
229
230

231
232
233
234
235
236
237
dist_man3_MANS += EVP_DigestSignInit.3
dist_man3_MANS += EVP_DigestVerifyInit.3
dist_man3_MANS += EVP_EncodeInit.3
dist_man3_MANS += EVP_EncryptInit.3
dist_man3_MANS += EVP_OpenInit.3
dist_man3_MANS += EVP_PKEY_CTX_ctrl.3
dist_man3_MANS += EVP_PKEY_CTX_new.3


dist_man3_MANS += EVP_PKEY_cmp.3
dist_man3_MANS += EVP_PKEY_decrypt.3
dist_man3_MANS += EVP_PKEY_derive.3
dist_man3_MANS += EVP_PKEY_encrypt.3
dist_man3_MANS += EVP_PKEY_get_default_digest_nid.3
dist_man3_MANS += EVP_PKEY_keygen.3
dist_man3_MANS += EVP_PKEY_meth_get0_info.3

dist_man3_MANS += EVP_PKEY_new.3
dist_man3_MANS += EVP_PKEY_print_private.3
dist_man3_MANS += EVP_PKEY_set1_RSA.3
dist_man3_MANS += EVP_PKEY_sign.3
dist_man3_MANS += EVP_PKEY_verify.3
dist_man3_MANS += EVP_PKEY_verify_recover.3
dist_man3_MANS += EVP_SealInit.3







>
>







>







228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
dist_man3_MANS += EVP_DigestSignInit.3
dist_man3_MANS += EVP_DigestVerifyInit.3
dist_man3_MANS += EVP_EncodeInit.3
dist_man3_MANS += EVP_EncryptInit.3
dist_man3_MANS += EVP_OpenInit.3
dist_man3_MANS += EVP_PKEY_CTX_ctrl.3
dist_man3_MANS += EVP_PKEY_CTX_new.3
dist_man3_MANS += EVP_PKEY_asn1_get_count.3
dist_man3_MANS += EVP_PKEY_asn1_new.3
dist_man3_MANS += EVP_PKEY_cmp.3
dist_man3_MANS += EVP_PKEY_decrypt.3
dist_man3_MANS += EVP_PKEY_derive.3
dist_man3_MANS += EVP_PKEY_encrypt.3
dist_man3_MANS += EVP_PKEY_get_default_digest_nid.3
dist_man3_MANS += EVP_PKEY_keygen.3
dist_man3_MANS += EVP_PKEY_meth_get0_info.3
dist_man3_MANS += EVP_PKEY_meth_new.3
dist_man3_MANS += EVP_PKEY_new.3
dist_man3_MANS += EVP_PKEY_print_private.3
dist_man3_MANS += EVP_PKEY_set1_RSA.3
dist_man3_MANS += EVP_PKEY_sign.3
dist_man3_MANS += EVP_PKEY_verify.3
dist_man3_MANS += EVP_PKEY_verify_recover.3
dist_man3_MANS += EVP_SealInit.3
250
251
252
253
254
255
256

257
258

259
260
261
262
263
264
265
dist_man3_MANS += OCSP_request_add1_nonce.3
dist_man3_MANS += OCSP_resp_find_status.3
dist_man3_MANS += OCSP_response_status.3
dist_man3_MANS += OCSP_sendreq_new.3
dist_man3_MANS += OPENSSL_VERSION_NUMBER.3
dist_man3_MANS += OPENSSL_cleanse.3
dist_man3_MANS += OPENSSL_config.3

dist_man3_MANS += OPENSSL_load_builtin_modules.3
dist_man3_MANS += OPENSSL_malloc.3

dist_man3_MANS += OpenSSL_add_all_algorithms.3
dist_man3_MANS += PEM_bytes_read_bio.3
dist_man3_MANS += PEM_read.3
dist_man3_MANS += PEM_read_bio_PrivateKey.3
dist_man3_MANS += PEM_write_bio_PKCS7_stream.3
dist_man3_MANS += PKCS12_SAFEBAG_new.3
dist_man3_MANS += PKCS12_create.3







>


>







264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
dist_man3_MANS += OCSP_request_add1_nonce.3
dist_man3_MANS += OCSP_resp_find_status.3
dist_man3_MANS += OCSP_response_status.3
dist_man3_MANS += OCSP_sendreq_new.3
dist_man3_MANS += OPENSSL_VERSION_NUMBER.3
dist_man3_MANS += OPENSSL_cleanse.3
dist_man3_MANS += OPENSSL_config.3
dist_man3_MANS += OPENSSL_init_crypto.3
dist_man3_MANS += OPENSSL_load_builtin_modules.3
dist_man3_MANS += OPENSSL_malloc.3
dist_man3_MANS += OPENSSL_sk_new.3
dist_man3_MANS += OpenSSL_add_all_algorithms.3
dist_man3_MANS += PEM_bytes_read_bio.3
dist_man3_MANS += PEM_read.3
dist_man3_MANS += PEM_read_bio_PrivateKey.3
dist_man3_MANS += PEM_write_bio_PKCS7_stream.3
dist_man3_MANS += PKCS12_SAFEBAG_new.3
dist_man3_MANS += PKCS12_create.3
283
284
285
286
287
288
289

290

291
292
293
294
295
296
297
298
299
300
301
302

303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322

323
324
325
326
327
328
329
330
331

332
333
334
335
336
337
338
339
340


341
342
343
344
345
346
347
dist_man3_MANS += RAND_set_rand_method.3
dist_man3_MANS += RC4.3
dist_man3_MANS += RIPEMD160.3
dist_man3_MANS += RSA_PSS_PARAMS_new.3
dist_man3_MANS += RSA_blinding_on.3
dist_man3_MANS += RSA_check_key.3
dist_man3_MANS += RSA_generate_key.3

dist_man3_MANS += RSA_get_ex_new_index.3

dist_man3_MANS += RSA_new.3
dist_man3_MANS += RSA_padding_add_PKCS1_type_1.3
dist_man3_MANS += RSA_print.3
dist_man3_MANS += RSA_private_encrypt.3
dist_man3_MANS += RSA_public_encrypt.3
dist_man3_MANS += RSA_set_method.3
dist_man3_MANS += RSA_sign.3
dist_man3_MANS += RSA_sign_ASN1_OCTET_STRING.3
dist_man3_MANS += RSA_size.3
dist_man3_MANS += SHA1.3
dist_man3_MANS += SMIME_read_PKCS7.3
dist_man3_MANS += SMIME_write_PKCS7.3

dist_man3_MANS += SXNET_new.3
dist_man3_MANS += TS_REQ_new.3
dist_man3_MANS += UI_UTIL_read_pw.3
dist_man3_MANS += UI_create_method.3
dist_man3_MANS += UI_get_string_type.3
dist_man3_MANS += UI_new.3
dist_man3_MANS += X25519.3
dist_man3_MANS += X509V3_get_d2i.3
dist_man3_MANS += X509_ALGOR_dup.3
dist_man3_MANS += X509_ATTRIBUTE_new.3
dist_man3_MANS += X509_CINF_new.3
dist_man3_MANS += X509_CRL_get0_by_serial.3
dist_man3_MANS += X509_CRL_new.3
dist_man3_MANS += X509_EXTENSION_set_object.3
dist_man3_MANS += X509_LOOKUP_hash_dir.3
dist_man3_MANS += X509_NAME_ENTRY_get_object.3
dist_man3_MANS += X509_NAME_add_entry_by_txt.3
dist_man3_MANS += X509_NAME_get_index_by_NID.3
dist_man3_MANS += X509_NAME_new.3
dist_man3_MANS += X509_NAME_print_ex.3

dist_man3_MANS += X509_PUBKEY_new.3
dist_man3_MANS += X509_REQ_new.3
dist_man3_MANS += X509_REVOKED_new.3
dist_man3_MANS += X509_SIG_new.3
dist_man3_MANS += X509_STORE_CTX_get_error.3
dist_man3_MANS += X509_STORE_CTX_get_ex_new_index.3
dist_man3_MANS += X509_STORE_CTX_new.3
dist_man3_MANS += X509_STORE_CTX_set_verify_cb.3
dist_man3_MANS += X509_STORE_load_locations.3

dist_man3_MANS += X509_STORE_set1_param.3
dist_man3_MANS += X509_STORE_set_verify_cb_func.3
dist_man3_MANS += X509_VERIFY_PARAM_set_flags.3
dist_man3_MANS += X509_check_ca.3
dist_man3_MANS += X509_check_host.3
dist_man3_MANS += X509_check_issued.3
dist_man3_MANS += X509_check_private_key.3
dist_man3_MANS += X509_cmp_time.3
dist_man3_MANS += X509_digest.3


dist_man3_MANS += X509_get_pubkey.3
dist_man3_MANS += X509_get_serialNumber.3
dist_man3_MANS += X509_get_subject_name.3
dist_man3_MANS += X509_get_version.3
dist_man3_MANS += X509_new.3
dist_man3_MANS += X509_sign.3
dist_man3_MANS += X509_verify_cert.3







>

>












>




















>









>









>
>







299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
dist_man3_MANS += RAND_set_rand_method.3
dist_man3_MANS += RC4.3
dist_man3_MANS += RIPEMD160.3
dist_man3_MANS += RSA_PSS_PARAMS_new.3
dist_man3_MANS += RSA_blinding_on.3
dist_man3_MANS += RSA_check_key.3
dist_man3_MANS += RSA_generate_key.3
dist_man3_MANS += RSA_get0_key.3
dist_man3_MANS += RSA_get_ex_new_index.3
dist_man3_MANS += RSA_meth_new.3
dist_man3_MANS += RSA_new.3
dist_man3_MANS += RSA_padding_add_PKCS1_type_1.3
dist_man3_MANS += RSA_print.3
dist_man3_MANS += RSA_private_encrypt.3
dist_man3_MANS += RSA_public_encrypt.3
dist_man3_MANS += RSA_set_method.3
dist_man3_MANS += RSA_sign.3
dist_man3_MANS += RSA_sign_ASN1_OCTET_STRING.3
dist_man3_MANS += RSA_size.3
dist_man3_MANS += SHA1.3
dist_man3_MANS += SMIME_read_PKCS7.3
dist_man3_MANS += SMIME_write_PKCS7.3
dist_man3_MANS += STACK_OF.3
dist_man3_MANS += SXNET_new.3
dist_man3_MANS += TS_REQ_new.3
dist_man3_MANS += UI_UTIL_read_pw.3
dist_man3_MANS += UI_create_method.3
dist_man3_MANS += UI_get_string_type.3
dist_man3_MANS += UI_new.3
dist_man3_MANS += X25519.3
dist_man3_MANS += X509V3_get_d2i.3
dist_man3_MANS += X509_ALGOR_dup.3
dist_man3_MANS += X509_ATTRIBUTE_new.3
dist_man3_MANS += X509_CINF_new.3
dist_man3_MANS += X509_CRL_get0_by_serial.3
dist_man3_MANS += X509_CRL_new.3
dist_man3_MANS += X509_EXTENSION_set_object.3
dist_man3_MANS += X509_LOOKUP_hash_dir.3
dist_man3_MANS += X509_NAME_ENTRY_get_object.3
dist_man3_MANS += X509_NAME_add_entry_by_txt.3
dist_man3_MANS += X509_NAME_get_index_by_NID.3
dist_man3_MANS += X509_NAME_new.3
dist_man3_MANS += X509_NAME_print_ex.3
dist_man3_MANS += X509_OBJECT_get0_X509.3
dist_man3_MANS += X509_PUBKEY_new.3
dist_man3_MANS += X509_REQ_new.3
dist_man3_MANS += X509_REVOKED_new.3
dist_man3_MANS += X509_SIG_new.3
dist_man3_MANS += X509_STORE_CTX_get_error.3
dist_man3_MANS += X509_STORE_CTX_get_ex_new_index.3
dist_man3_MANS += X509_STORE_CTX_new.3
dist_man3_MANS += X509_STORE_CTX_set_verify_cb.3
dist_man3_MANS += X509_STORE_load_locations.3
dist_man3_MANS += X509_STORE_new.3
dist_man3_MANS += X509_STORE_set1_param.3
dist_man3_MANS += X509_STORE_set_verify_cb_func.3
dist_man3_MANS += X509_VERIFY_PARAM_set_flags.3
dist_man3_MANS += X509_check_ca.3
dist_man3_MANS += X509_check_host.3
dist_man3_MANS += X509_check_issued.3
dist_man3_MANS += X509_check_private_key.3
dist_man3_MANS += X509_cmp_time.3
dist_man3_MANS += X509_digest.3
dist_man3_MANS += X509_get0_notBefore.3
dist_man3_MANS += X509_get0_signature.3
dist_man3_MANS += X509_get_pubkey.3
dist_man3_MANS += X509_get_serialNumber.3
dist_man3_MANS += X509_get_subject_name.3
dist_man3_MANS += X509_get_version.3
dist_man3_MANS += X509_new.3
dist_man3_MANS += X509_sign.3
dist_man3_MANS += X509_verify_cert.3
407
408
409
410
411
412
413

414
415
416
417
418
419
420
	ln -sf "ACCESS_DESCRIPTION_new.3" "$(DESTDIR)$(mandir)/man3/AUTHORITY_INFO_ACCESS_new.3"
	ln -sf "ASN1_OBJECT_new.3" "$(DESTDIR)$(mandir)/man3/ASN1_OBJECT_free.3"
	ln -sf "ASN1_STRING_TABLE_add.3" "$(DESTDIR)$(mandir)/man3/ASN1_STRING_TABLE_cleanup.3"
	ln -sf "ASN1_STRING_TABLE_add.3" "$(DESTDIR)$(mandir)/man3/ASN1_STRING_TABLE_get.3"
	ln -sf "ASN1_STRING_length.3" "$(DESTDIR)$(mandir)/man3/ASN1_STRING_cmp.3"
	ln -sf "ASN1_STRING_length.3" "$(DESTDIR)$(mandir)/man3/ASN1_STRING_data.3"
	ln -sf "ASN1_STRING_length.3" "$(DESTDIR)$(mandir)/man3/ASN1_STRING_dup.3"

	ln -sf "ASN1_STRING_length.3" "$(DESTDIR)$(mandir)/man3/ASN1_STRING_length_set.3"
	ln -sf "ASN1_STRING_length.3" "$(DESTDIR)$(mandir)/man3/ASN1_STRING_set.3"
	ln -sf "ASN1_STRING_length.3" "$(DESTDIR)$(mandir)/man3/ASN1_STRING_to_UTF8.3"
	ln -sf "ASN1_STRING_length.3" "$(DESTDIR)$(mandir)/man3/ASN1_STRING_type.3"
	ln -sf "ASN1_STRING_new.3" "$(DESTDIR)$(mandir)/man3/ASN1_BIT_STRING_free.3"
	ln -sf "ASN1_STRING_new.3" "$(DESTDIR)$(mandir)/man3/ASN1_BIT_STRING_new.3"
	ln -sf "ASN1_STRING_new.3" "$(DESTDIR)$(mandir)/man3/ASN1_BMPSTRING_free.3"







>







430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
	ln -sf "ACCESS_DESCRIPTION_new.3" "$(DESTDIR)$(mandir)/man3/AUTHORITY_INFO_ACCESS_new.3"
	ln -sf "ASN1_OBJECT_new.3" "$(DESTDIR)$(mandir)/man3/ASN1_OBJECT_free.3"
	ln -sf "ASN1_STRING_TABLE_add.3" "$(DESTDIR)$(mandir)/man3/ASN1_STRING_TABLE_cleanup.3"
	ln -sf "ASN1_STRING_TABLE_add.3" "$(DESTDIR)$(mandir)/man3/ASN1_STRING_TABLE_get.3"
	ln -sf "ASN1_STRING_length.3" "$(DESTDIR)$(mandir)/man3/ASN1_STRING_cmp.3"
	ln -sf "ASN1_STRING_length.3" "$(DESTDIR)$(mandir)/man3/ASN1_STRING_data.3"
	ln -sf "ASN1_STRING_length.3" "$(DESTDIR)$(mandir)/man3/ASN1_STRING_dup.3"
	ln -sf "ASN1_STRING_length.3" "$(DESTDIR)$(mandir)/man3/ASN1_STRING_get0_data.3"
	ln -sf "ASN1_STRING_length.3" "$(DESTDIR)$(mandir)/man3/ASN1_STRING_length_set.3"
	ln -sf "ASN1_STRING_length.3" "$(DESTDIR)$(mandir)/man3/ASN1_STRING_set.3"
	ln -sf "ASN1_STRING_length.3" "$(DESTDIR)$(mandir)/man3/ASN1_STRING_to_UTF8.3"
	ln -sf "ASN1_STRING_length.3" "$(DESTDIR)$(mandir)/man3/ASN1_STRING_type.3"
	ln -sf "ASN1_STRING_new.3" "$(DESTDIR)$(mandir)/man3/ASN1_BIT_STRING_free.3"
	ln -sf "ASN1_STRING_new.3" "$(DESTDIR)$(mandir)/man3/ASN1_BIT_STRING_new.3"
	ln -sf "ASN1_STRING_new.3" "$(DESTDIR)$(mandir)/man3/ASN1_BMPSTRING_free.3"
537
538
539
540
541
542
543




544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563


















564
565
566

567
568
569
570
571
572
573
	ln -sf "BIO_f_ssl.3" "$(DESTDIR)$(mandir)/man3/BIO_set_ssl_mode.3"
	ln -sf "BIO_f_ssl.3" "$(DESTDIR)$(mandir)/man3/BIO_set_ssl_renegotiate_bytes.3"
	ln -sf "BIO_f_ssl.3" "$(DESTDIR)$(mandir)/man3/BIO_set_ssl_renegotiate_timeout.3"
	ln -sf "BIO_f_ssl.3" "$(DESTDIR)$(mandir)/man3/BIO_ssl_copy_session_id.3"
	ln -sf "BIO_f_ssl.3" "$(DESTDIR)$(mandir)/man3/BIO_ssl_shutdown.3"
	ln -sf "BIO_find_type.3" "$(DESTDIR)$(mandir)/man3/BIO_method_type.3"
	ln -sf "BIO_find_type.3" "$(DESTDIR)$(mandir)/man3/BIO_next.3"




	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/BIO_get_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/BIO_set_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/ECDH_get_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/ECDH_get_ex_new_index.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/ECDH_set_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/ECDSA_get_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/ECDSA_get_ex_new_index.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/ECDSA_set_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/ENGINE_get_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/ENGINE_get_ex_new_index.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/ENGINE_set_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/TYPE_get_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/TYPE_get_ex_new_index.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/TYPE_set_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/UI_get_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/UI_get_ex_new_index.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/UI_set_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/X509_get_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/X509_get_ex_new_index.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/X509_set_ex_data.3"


















	ln -sf "BIO_new.3" "$(DESTDIR)$(mandir)/man3/BIO_free.3"
	ln -sf "BIO_new.3" "$(DESTDIR)$(mandir)/man3/BIO_free_all.3"
	ln -sf "BIO_new.3" "$(DESTDIR)$(mandir)/man3/BIO_set.3"

	ln -sf "BIO_new.3" "$(DESTDIR)$(mandir)/man3/BIO_vfree.3"
	ln -sf "BIO_printf.3" "$(DESTDIR)$(mandir)/man3/BIO_snprintf.3"
	ln -sf "BIO_printf.3" "$(DESTDIR)$(mandir)/man3/BIO_vprintf.3"
	ln -sf "BIO_printf.3" "$(DESTDIR)$(mandir)/man3/BIO_vsnprintf.3"
	ln -sf "BIO_push.3" "$(DESTDIR)$(mandir)/man3/BIO_pop.3"
	ln -sf "BIO_read.3" "$(DESTDIR)$(mandir)/man3/BIO_gets.3"
	ln -sf "BIO_read.3" "$(DESTDIR)$(mandir)/man3/BIO_puts.3"







>
>
>
>




















>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>



>







561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
	ln -sf "BIO_f_ssl.3" "$(DESTDIR)$(mandir)/man3/BIO_set_ssl_mode.3"
	ln -sf "BIO_f_ssl.3" "$(DESTDIR)$(mandir)/man3/BIO_set_ssl_renegotiate_bytes.3"
	ln -sf "BIO_f_ssl.3" "$(DESTDIR)$(mandir)/man3/BIO_set_ssl_renegotiate_timeout.3"
	ln -sf "BIO_f_ssl.3" "$(DESTDIR)$(mandir)/man3/BIO_ssl_copy_session_id.3"
	ln -sf "BIO_f_ssl.3" "$(DESTDIR)$(mandir)/man3/BIO_ssl_shutdown.3"
	ln -sf "BIO_find_type.3" "$(DESTDIR)$(mandir)/man3/BIO_method_type.3"
	ln -sf "BIO_find_type.3" "$(DESTDIR)$(mandir)/man3/BIO_next.3"
	ln -sf "BIO_get_data.3" "$(DESTDIR)$(mandir)/man3/BIO_get_shutdown.3"
	ln -sf "BIO_get_data.3" "$(DESTDIR)$(mandir)/man3/BIO_set_data.3"
	ln -sf "BIO_get_data.3" "$(DESTDIR)$(mandir)/man3/BIO_set_init.3"
	ln -sf "BIO_get_data.3" "$(DESTDIR)$(mandir)/man3/BIO_set_shutdown.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/BIO_get_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/BIO_set_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/ECDH_get_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/ECDH_get_ex_new_index.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/ECDH_set_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/ECDSA_get_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/ECDSA_get_ex_new_index.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/ECDSA_set_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/ENGINE_get_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/ENGINE_get_ex_new_index.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/ENGINE_set_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/TYPE_get_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/TYPE_get_ex_new_index.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/TYPE_set_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/UI_get_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/UI_get_ex_new_index.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/UI_set_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/X509_get_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/X509_get_ex_new_index.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/X509_set_ex_data.3"
	ln -sf "BIO_meth_new.3" "$(DESTDIR)$(mandir)/man3/BIO_get_new_index.3"
	ln -sf "BIO_meth_new.3" "$(DESTDIR)$(mandir)/man3/BIO_meth_free.3"
	ln -sf "BIO_meth_new.3" "$(DESTDIR)$(mandir)/man3/BIO_meth_get_callback_ctrl.3"
	ln -sf "BIO_meth_new.3" "$(DESTDIR)$(mandir)/man3/BIO_meth_get_create.3"
	ln -sf "BIO_meth_new.3" "$(DESTDIR)$(mandir)/man3/BIO_meth_get_ctrl.3"
	ln -sf "BIO_meth_new.3" "$(DESTDIR)$(mandir)/man3/BIO_meth_get_destroy.3"
	ln -sf "BIO_meth_new.3" "$(DESTDIR)$(mandir)/man3/BIO_meth_get_gets.3"
	ln -sf "BIO_meth_new.3" "$(DESTDIR)$(mandir)/man3/BIO_meth_get_puts.3"
	ln -sf "BIO_meth_new.3" "$(DESTDIR)$(mandir)/man3/BIO_meth_get_read.3"
	ln -sf "BIO_meth_new.3" "$(DESTDIR)$(mandir)/man3/BIO_meth_get_write.3"
	ln -sf "BIO_meth_new.3" "$(DESTDIR)$(mandir)/man3/BIO_meth_set_callback_ctrl.3"
	ln -sf "BIO_meth_new.3" "$(DESTDIR)$(mandir)/man3/BIO_meth_set_create.3"
	ln -sf "BIO_meth_new.3" "$(DESTDIR)$(mandir)/man3/BIO_meth_set_ctrl.3"
	ln -sf "BIO_meth_new.3" "$(DESTDIR)$(mandir)/man3/BIO_meth_set_destroy.3"
	ln -sf "BIO_meth_new.3" "$(DESTDIR)$(mandir)/man3/BIO_meth_set_gets.3"
	ln -sf "BIO_meth_new.3" "$(DESTDIR)$(mandir)/man3/BIO_meth_set_puts.3"
	ln -sf "BIO_meth_new.3" "$(DESTDIR)$(mandir)/man3/BIO_meth_set_read.3"
	ln -sf "BIO_meth_new.3" "$(DESTDIR)$(mandir)/man3/BIO_meth_set_write.3"
	ln -sf "BIO_new.3" "$(DESTDIR)$(mandir)/man3/BIO_free.3"
	ln -sf "BIO_new.3" "$(DESTDIR)$(mandir)/man3/BIO_free_all.3"
	ln -sf "BIO_new.3" "$(DESTDIR)$(mandir)/man3/BIO_set.3"
	ln -sf "BIO_new.3" "$(DESTDIR)$(mandir)/man3/BIO_up_ref.3"
	ln -sf "BIO_new.3" "$(DESTDIR)$(mandir)/man3/BIO_vfree.3"
	ln -sf "BIO_printf.3" "$(DESTDIR)$(mandir)/man3/BIO_snprintf.3"
	ln -sf "BIO_printf.3" "$(DESTDIR)$(mandir)/man3/BIO_vprintf.3"
	ln -sf "BIO_printf.3" "$(DESTDIR)$(mandir)/man3/BIO_vsnprintf.3"
	ln -sf "BIO_push.3" "$(DESTDIR)$(mandir)/man3/BIO_pop.3"
	ln -sf "BIO_read.3" "$(DESTDIR)$(mandir)/man3/BIO_gets.3"
	ln -sf "BIO_read.3" "$(DESTDIR)$(mandir)/man3/BIO_puts.3"
677
678
679
680
681
682
683



684
685
686
687
688
689
690
	ln -sf "BN_cmp.3" "$(DESTDIR)$(mandir)/man3/BN_is_one.3"
	ln -sf "BN_cmp.3" "$(DESTDIR)$(mandir)/man3/BN_is_word.3"
	ln -sf "BN_cmp.3" "$(DESTDIR)$(mandir)/man3/BN_is_zero.3"
	ln -sf "BN_cmp.3" "$(DESTDIR)$(mandir)/man3/BN_ucmp.3"
	ln -sf "BN_copy.3" "$(DESTDIR)$(mandir)/man3/BN_dup.3"
	ln -sf "BN_copy.3" "$(DESTDIR)$(mandir)/man3/BN_with_flags.3"
	ln -sf "BN_generate_prime.3" "$(DESTDIR)$(mandir)/man3/BN_GENCB_call.3"



	ln -sf "BN_generate_prime.3" "$(DESTDIR)$(mandir)/man3/BN_GENCB_set.3"
	ln -sf "BN_generate_prime.3" "$(DESTDIR)$(mandir)/man3/BN_GENCB_set_old.3"
	ln -sf "BN_generate_prime.3" "$(DESTDIR)$(mandir)/man3/BN_generate_prime_ex.3"
	ln -sf "BN_generate_prime.3" "$(DESTDIR)$(mandir)/man3/BN_is_prime.3"
	ln -sf "BN_generate_prime.3" "$(DESTDIR)$(mandir)/man3/BN_is_prime_ex.3"
	ln -sf "BN_generate_prime.3" "$(DESTDIR)$(mandir)/man3/BN_is_prime_fasttest.3"
	ln -sf "BN_generate_prime.3" "$(DESTDIR)$(mandir)/man3/BN_is_prime_fasttest_ex.3"







>
>
>







724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
	ln -sf "BN_cmp.3" "$(DESTDIR)$(mandir)/man3/BN_is_one.3"
	ln -sf "BN_cmp.3" "$(DESTDIR)$(mandir)/man3/BN_is_word.3"
	ln -sf "BN_cmp.3" "$(DESTDIR)$(mandir)/man3/BN_is_zero.3"
	ln -sf "BN_cmp.3" "$(DESTDIR)$(mandir)/man3/BN_ucmp.3"
	ln -sf "BN_copy.3" "$(DESTDIR)$(mandir)/man3/BN_dup.3"
	ln -sf "BN_copy.3" "$(DESTDIR)$(mandir)/man3/BN_with_flags.3"
	ln -sf "BN_generate_prime.3" "$(DESTDIR)$(mandir)/man3/BN_GENCB_call.3"
	ln -sf "BN_generate_prime.3" "$(DESTDIR)$(mandir)/man3/BN_GENCB_free.3"
	ln -sf "BN_generate_prime.3" "$(DESTDIR)$(mandir)/man3/BN_GENCB_get_arg.3"
	ln -sf "BN_generate_prime.3" "$(DESTDIR)$(mandir)/man3/BN_GENCB_new.3"
	ln -sf "BN_generate_prime.3" "$(DESTDIR)$(mandir)/man3/BN_GENCB_set.3"
	ln -sf "BN_generate_prime.3" "$(DESTDIR)$(mandir)/man3/BN_GENCB_set_old.3"
	ln -sf "BN_generate_prime.3" "$(DESTDIR)$(mandir)/man3/BN_generate_prime_ex.3"
	ln -sf "BN_generate_prime.3" "$(DESTDIR)$(mandir)/man3/BN_is_prime.3"
	ln -sf "BN_generate_prime.3" "$(DESTDIR)$(mandir)/man3/BN_is_prime_ex.3"
	ln -sf "BN_generate_prime.3" "$(DESTDIR)$(mandir)/man3/BN_is_prime_fasttest.3"
	ln -sf "BN_generate_prime.3" "$(DESTDIR)$(mandir)/man3/BN_is_prime_fasttest_ex.3"
797
798
799
800
801
802
803








804
805
806
807
808
809
810

811
812
813
814
815
816
817
818


819
820







821
822




823
824
825
826
827
828
829
830
831


832
833
834
835
836
837
838
	ln -sf "DES_set_key.3" "$(DESTDIR)$(mandir)/man3/DES_set_odd_parity.3"
	ln -sf "DES_set_key.3" "$(DESTDIR)$(mandir)/man3/DES_string_to_2keys.3"
	ln -sf "DES_set_key.3" "$(DESTDIR)$(mandir)/man3/DES_string_to_key.3"
	ln -sf "DES_set_key.3" "$(DESTDIR)$(mandir)/man3/DES_xcbc_encrypt.3"
	ln -sf "DH_generate_key.3" "$(DESTDIR)$(mandir)/man3/DH_compute_key.3"
	ln -sf "DH_generate_parameters.3" "$(DESTDIR)$(mandir)/man3/DH_check.3"
	ln -sf "DH_generate_parameters.3" "$(DESTDIR)$(mandir)/man3/DH_generate_parameters_ex.3"








	ln -sf "DH_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/DH_get_ex_data.3"
	ln -sf "DH_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/DH_set_ex_data.3"
	ln -sf "DH_new.3" "$(DESTDIR)$(mandir)/man3/DH_free.3"
	ln -sf "DH_set_method.3" "$(DESTDIR)$(mandir)/man3/DH_OpenSSL.3"
	ln -sf "DH_set_method.3" "$(DESTDIR)$(mandir)/man3/DH_get_default_method.3"
	ln -sf "DH_set_method.3" "$(DESTDIR)$(mandir)/man3/DH_new_method.3"
	ln -sf "DH_set_method.3" "$(DESTDIR)$(mandir)/man3/DH_set_default_method.3"

	ln -sf "DIST_POINT_new.3" "$(DESTDIR)$(mandir)/man3/CRL_DIST_POINTS_free.3"
	ln -sf "DIST_POINT_new.3" "$(DESTDIR)$(mandir)/man3/CRL_DIST_POINTS_new.3"
	ln -sf "DIST_POINT_new.3" "$(DESTDIR)$(mandir)/man3/DIST_POINT_NAME_free.3"
	ln -sf "DIST_POINT_new.3" "$(DESTDIR)$(mandir)/man3/DIST_POINT_NAME_new.3"
	ln -sf "DIST_POINT_new.3" "$(DESTDIR)$(mandir)/man3/DIST_POINT_free.3"
	ln -sf "DIST_POINT_new.3" "$(DESTDIR)$(mandir)/man3/ISSUING_DIST_POINT_free.3"
	ln -sf "DIST_POINT_new.3" "$(DESTDIR)$(mandir)/man3/ISSUING_DIST_POINT_new.3"
	ln -sf "DSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/DSA_SIG_free.3"


	ln -sf "DSA_do_sign.3" "$(DESTDIR)$(mandir)/man3/DSA_do_verify.3"
	ln -sf "DSA_generate_parameters.3" "$(DESTDIR)$(mandir)/man3/DSA_generate_parameters_ex.3"







	ln -sf "DSA_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/DSA_get_ex_data.3"
	ln -sf "DSA_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/DSA_set_ex_data.3"




	ln -sf "DSA_new.3" "$(DESTDIR)$(mandir)/man3/DSA_free.3"
	ln -sf "DSA_set_method.3" "$(DESTDIR)$(mandir)/man3/DSA_OpenSSL.3"
	ln -sf "DSA_set_method.3" "$(DESTDIR)$(mandir)/man3/DSA_get_default_method.3"
	ln -sf "DSA_set_method.3" "$(DESTDIR)$(mandir)/man3/DSA_new_method.3"
	ln -sf "DSA_set_method.3" "$(DESTDIR)$(mandir)/man3/DSA_set_default_method.3"
	ln -sf "DSA_sign.3" "$(DESTDIR)$(mandir)/man3/DSA_sign_setup.3"
	ln -sf "DSA_sign.3" "$(DESTDIR)$(mandir)/man3/DSA_verify.3"
	ln -sf "ECDSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/ECDSA_OpenSSL.3"
	ln -sf "ECDSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/ECDSA_SIG_free.3"


	ln -sf "ECDSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/ECDSA_do_sign.3"
	ln -sf "ECDSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/ECDSA_do_sign_ex.3"
	ln -sf "ECDSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/ECDSA_do_verify.3"
	ln -sf "ECDSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/ECDSA_get_default_method.3"
	ln -sf "ECDSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/ECDSA_set_default_method.3"
	ln -sf "ECDSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/ECDSA_set_method.3"
	ln -sf "ECDSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/ECDSA_sign.3"







>
>
>
>
>
>
>
>







>








>
>


>
>
>
>
>
>
>


>
>
>
>









>
>







847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
	ln -sf "DES_set_key.3" "$(DESTDIR)$(mandir)/man3/DES_set_odd_parity.3"
	ln -sf "DES_set_key.3" "$(DESTDIR)$(mandir)/man3/DES_string_to_2keys.3"
	ln -sf "DES_set_key.3" "$(DESTDIR)$(mandir)/man3/DES_string_to_key.3"
	ln -sf "DES_set_key.3" "$(DESTDIR)$(mandir)/man3/DES_xcbc_encrypt.3"
	ln -sf "DH_generate_key.3" "$(DESTDIR)$(mandir)/man3/DH_compute_key.3"
	ln -sf "DH_generate_parameters.3" "$(DESTDIR)$(mandir)/man3/DH_check.3"
	ln -sf "DH_generate_parameters.3" "$(DESTDIR)$(mandir)/man3/DH_generate_parameters_ex.3"
	ln -sf "DH_get0_pqg.3" "$(DESTDIR)$(mandir)/man3/DH_clear_flags.3"
	ln -sf "DH_get0_pqg.3" "$(DESTDIR)$(mandir)/man3/DH_get0_engine.3"
	ln -sf "DH_get0_pqg.3" "$(DESTDIR)$(mandir)/man3/DH_get0_key.3"
	ln -sf "DH_get0_pqg.3" "$(DESTDIR)$(mandir)/man3/DH_set0_key.3"
	ln -sf "DH_get0_pqg.3" "$(DESTDIR)$(mandir)/man3/DH_set0_pqg.3"
	ln -sf "DH_get0_pqg.3" "$(DESTDIR)$(mandir)/man3/DH_set_flags.3"
	ln -sf "DH_get0_pqg.3" "$(DESTDIR)$(mandir)/man3/DH_set_length.3"
	ln -sf "DH_get0_pqg.3" "$(DESTDIR)$(mandir)/man3/DH_test_flags.3"
	ln -sf "DH_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/DH_get_ex_data.3"
	ln -sf "DH_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/DH_set_ex_data.3"
	ln -sf "DH_new.3" "$(DESTDIR)$(mandir)/man3/DH_free.3"
	ln -sf "DH_set_method.3" "$(DESTDIR)$(mandir)/man3/DH_OpenSSL.3"
	ln -sf "DH_set_method.3" "$(DESTDIR)$(mandir)/man3/DH_get_default_method.3"
	ln -sf "DH_set_method.3" "$(DESTDIR)$(mandir)/man3/DH_new_method.3"
	ln -sf "DH_set_method.3" "$(DESTDIR)$(mandir)/man3/DH_set_default_method.3"
	ln -sf "DH_size.3" "$(DESTDIR)$(mandir)/man3/DH_bits.3"
	ln -sf "DIST_POINT_new.3" "$(DESTDIR)$(mandir)/man3/CRL_DIST_POINTS_free.3"
	ln -sf "DIST_POINT_new.3" "$(DESTDIR)$(mandir)/man3/CRL_DIST_POINTS_new.3"
	ln -sf "DIST_POINT_new.3" "$(DESTDIR)$(mandir)/man3/DIST_POINT_NAME_free.3"
	ln -sf "DIST_POINT_new.3" "$(DESTDIR)$(mandir)/man3/DIST_POINT_NAME_new.3"
	ln -sf "DIST_POINT_new.3" "$(DESTDIR)$(mandir)/man3/DIST_POINT_free.3"
	ln -sf "DIST_POINT_new.3" "$(DESTDIR)$(mandir)/man3/ISSUING_DIST_POINT_free.3"
	ln -sf "DIST_POINT_new.3" "$(DESTDIR)$(mandir)/man3/ISSUING_DIST_POINT_new.3"
	ln -sf "DSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/DSA_SIG_free.3"
	ln -sf "DSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/DSA_SIG_get0.3"
	ln -sf "DSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/DSA_SIG_set0.3"
	ln -sf "DSA_do_sign.3" "$(DESTDIR)$(mandir)/man3/DSA_do_verify.3"
	ln -sf "DSA_generate_parameters.3" "$(DESTDIR)$(mandir)/man3/DSA_generate_parameters_ex.3"
	ln -sf "DSA_get0_pqg.3" "$(DESTDIR)$(mandir)/man3/DSA_clear_flags.3"
	ln -sf "DSA_get0_pqg.3" "$(DESTDIR)$(mandir)/man3/DSA_get0_engine.3"
	ln -sf "DSA_get0_pqg.3" "$(DESTDIR)$(mandir)/man3/DSA_get0_key.3"
	ln -sf "DSA_get0_pqg.3" "$(DESTDIR)$(mandir)/man3/DSA_set0_key.3"
	ln -sf "DSA_get0_pqg.3" "$(DESTDIR)$(mandir)/man3/DSA_set0_pqg.3"
	ln -sf "DSA_get0_pqg.3" "$(DESTDIR)$(mandir)/man3/DSA_set_flags.3"
	ln -sf "DSA_get0_pqg.3" "$(DESTDIR)$(mandir)/man3/DSA_test_flags.3"
	ln -sf "DSA_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/DSA_get_ex_data.3"
	ln -sf "DSA_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/DSA_set_ex_data.3"
	ln -sf "DSA_meth_new.3" "$(DESTDIR)$(mandir)/man3/DSA_meth_dup.3"
	ln -sf "DSA_meth_new.3" "$(DESTDIR)$(mandir)/man3/DSA_meth_free.3"
	ln -sf "DSA_meth_new.3" "$(DESTDIR)$(mandir)/man3/DSA_meth_set_finish.3"
	ln -sf "DSA_meth_new.3" "$(DESTDIR)$(mandir)/man3/DSA_meth_set_sign.3"
	ln -sf "DSA_new.3" "$(DESTDIR)$(mandir)/man3/DSA_free.3"
	ln -sf "DSA_set_method.3" "$(DESTDIR)$(mandir)/man3/DSA_OpenSSL.3"
	ln -sf "DSA_set_method.3" "$(DESTDIR)$(mandir)/man3/DSA_get_default_method.3"
	ln -sf "DSA_set_method.3" "$(DESTDIR)$(mandir)/man3/DSA_new_method.3"
	ln -sf "DSA_set_method.3" "$(DESTDIR)$(mandir)/man3/DSA_set_default_method.3"
	ln -sf "DSA_sign.3" "$(DESTDIR)$(mandir)/man3/DSA_sign_setup.3"
	ln -sf "DSA_sign.3" "$(DESTDIR)$(mandir)/man3/DSA_verify.3"
	ln -sf "ECDSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/ECDSA_OpenSSL.3"
	ln -sf "ECDSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/ECDSA_SIG_free.3"
	ln -sf "ECDSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/ECDSA_SIG_get0.3"
	ln -sf "ECDSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/ECDSA_SIG_set0.3"
	ln -sf "ECDSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/ECDSA_do_sign.3"
	ln -sf "ECDSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/ECDSA_do_sign_ex.3"
	ln -sf "ECDSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/ECDSA_do_verify.3"
	ln -sf "ECDSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/ECDSA_get_default_method.3"
	ln -sf "ECDSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/ECDSA_set_default_method.3"
	ln -sf "ECDSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/ECDSA_set_method.3"
	ln -sf "ECDSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/ECDSA_sign.3"
988
989
990
991
992
993
994

995
996


997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_block_size.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_cleanup.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_copy.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_copy_ex.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_create.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_ctrl.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_destroy.3"

	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_init.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_md.3"


	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_size.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_type.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_block_size.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_pkey_type.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_size.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_type.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_dss.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_dss1.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_get_digestbyname.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_get_digestbynid.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_get_digestbyobj.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_md2.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_md5.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_md5_sha1.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_md_null.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_ripemd160.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_sha1.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_sha224.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_sha256.3"







>


>
>











<







1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084

1085
1086
1087
1088
1089
1090
1091
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_block_size.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_cleanup.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_copy.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_copy_ex.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_create.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_ctrl.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_destroy.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_free.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_init.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_md.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_new.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_reset.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_size.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_type.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_block_size.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_pkey_type.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_size.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_type.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_dss.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_dss1.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_get_digestbyname.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_get_digestbynid.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_get_digestbyobj.3"

	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_md5.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_md5_sha1.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_md_null.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_ripemd160.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_sha1.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_sha224.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_sha256.3"
1035
1036
1037
1038
1039
1040
1041


1042
1043
1044
1045
1046
1047
1048
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_get_app_data.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_init.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_iv_length.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_key_length.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_mode.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_new.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_nid.3"


	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_set_app_data.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_set_key_length.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_set_padding.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_type.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_asn1_to_param.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_block_size.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_flags.3"







>
>







1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_get_app_data.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_init.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_iv_length.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_key_length.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_mode.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_new.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_nid.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_rand_key.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_reset.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_set_app_data.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_set_key_length.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_set_padding.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_type.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_asn1_to_param.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_block_size.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_flags.3"
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146













1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162


















1163

1164
1165
1166
1167
1168
1169
1170




1171
1172
1173
1174
1175
1176
1177
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_rc2_cbc.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_rc2_cfb.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_rc2_ecb.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_rc2_ofb.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_rc4.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_rc4_40.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_rc4_hmac_md5.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_rc5_32_12_16_cbc.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_rc5_32_12_16_cfb.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_rc5_32_12_16_ecb.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_rc5_32_12_16_ofb.3"
	ln -sf "EVP_OpenInit.3" "$(DESTDIR)$(mandir)/man3/EVP_OpenFinal.3"
	ln -sf "EVP_OpenInit.3" "$(DESTDIR)$(mandir)/man3/EVP_OpenUpdate.3"
	ln -sf "EVP_PKEY_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_ctrl_str.3"
	ln -sf "EVP_PKEY_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_dh_paramgen_generator.3"
	ln -sf "EVP_PKEY_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_dh_paramgen_prime_len.3"
	ln -sf "EVP_PKEY_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_dsa_paramgen_bits.3"
	ln -sf "EVP_PKEY_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_ec_paramgen_curve_nid.3"
	ln -sf "EVP_PKEY_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_rsa_keygen_bits.3"
	ln -sf "EVP_PKEY_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_rsa_keygen_pubexp.3"
	ln -sf "EVP_PKEY_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_rsa_padding.3"
	ln -sf "EVP_PKEY_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_rsa_pss_saltlen.3"
	ln -sf "EVP_PKEY_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_signature_md.3"
	ln -sf "EVP_PKEY_CTX_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_dup.3"
	ln -sf "EVP_PKEY_CTX_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_free.3"
	ln -sf "EVP_PKEY_CTX_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_new_id.3"













	ln -sf "EVP_PKEY_cmp.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_cmp_parameters.3"
	ln -sf "EVP_PKEY_cmp.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_copy_parameters.3"
	ln -sf "EVP_PKEY_cmp.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_missing_parameters.3"
	ln -sf "EVP_PKEY_decrypt.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_decrypt_init.3"
	ln -sf "EVP_PKEY_derive.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_derive_init.3"
	ln -sf "EVP_PKEY_derive.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_derive_set_peer.3"
	ln -sf "EVP_PKEY_encrypt.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_encrypt_init.3"
	ln -sf "EVP_PKEY_keygen.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_get_app_data.3"
	ln -sf "EVP_PKEY_keygen.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_get_cb.3"
	ln -sf "EVP_PKEY_keygen.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_get_keygen_info.3"
	ln -sf "EVP_PKEY_keygen.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_app_data.3"
	ln -sf "EVP_PKEY_keygen.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_cb.3"
	ln -sf "EVP_PKEY_keygen.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_gen_cb.3"
	ln -sf "EVP_PKEY_keygen.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_keygen_init.3"
	ln -sf "EVP_PKEY_keygen.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_paramgen.3"
	ln -sf "EVP_PKEY_keygen.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_paramgen_init.3"


















	ln -sf "EVP_PKEY_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_free.3"

	ln -sf "EVP_PKEY_print_private.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_print_params.3"
	ln -sf "EVP_PKEY_print_private.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_print_public.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_assign_DH.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_assign_DSA.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_assign_EC_KEY.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_assign_RSA.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_base_id.3"




	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get1_DH.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get1_DSA.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get1_EC_KEY.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get1_RSA.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_id.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_set1_DH.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_set1_DSA.3"







<
<
<
<















>
>
>
>
>
>
>
>
>
>
>
>
>
















>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

>







>
>
>
>







1199
1200
1201
1202
1203
1204
1205




1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_rc2_cbc.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_rc2_cfb.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_rc2_ecb.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_rc2_ofb.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_rc4.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_rc4_40.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_rc4_hmac_md5.3"




	ln -sf "EVP_OpenInit.3" "$(DESTDIR)$(mandir)/man3/EVP_OpenFinal.3"
	ln -sf "EVP_OpenInit.3" "$(DESTDIR)$(mandir)/man3/EVP_OpenUpdate.3"
	ln -sf "EVP_PKEY_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_ctrl_str.3"
	ln -sf "EVP_PKEY_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_dh_paramgen_generator.3"
	ln -sf "EVP_PKEY_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_dh_paramgen_prime_len.3"
	ln -sf "EVP_PKEY_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_dsa_paramgen_bits.3"
	ln -sf "EVP_PKEY_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_ec_paramgen_curve_nid.3"
	ln -sf "EVP_PKEY_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_rsa_keygen_bits.3"
	ln -sf "EVP_PKEY_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_rsa_keygen_pubexp.3"
	ln -sf "EVP_PKEY_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_rsa_padding.3"
	ln -sf "EVP_PKEY_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_rsa_pss_saltlen.3"
	ln -sf "EVP_PKEY_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_signature_md.3"
	ln -sf "EVP_PKEY_CTX_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_dup.3"
	ln -sf "EVP_PKEY_CTX_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_free.3"
	ln -sf "EVP_PKEY_CTX_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_new_id.3"
	ln -sf "EVP_PKEY_asn1_get_count.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_find.3"
	ln -sf "EVP_PKEY_asn1_get_count.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_find_str.3"
	ln -sf "EVP_PKEY_asn1_get_count.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_get0.3"
	ln -sf "EVP_PKEY_asn1_get_count.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_get0_info.3"
	ln -sf "EVP_PKEY_asn1_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_add0.3"
	ln -sf "EVP_PKEY_asn1_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_add_alias.3"
	ln -sf "EVP_PKEY_asn1_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_copy.3"
	ln -sf "EVP_PKEY_asn1_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_free.3"
	ln -sf "EVP_PKEY_asn1_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_set_ctrl.3"
	ln -sf "EVP_PKEY_asn1_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_set_free.3"
	ln -sf "EVP_PKEY_asn1_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_set_param.3"
	ln -sf "EVP_PKEY_asn1_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_set_private.3"
	ln -sf "EVP_PKEY_asn1_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_set_public.3"
	ln -sf "EVP_PKEY_cmp.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_cmp_parameters.3"
	ln -sf "EVP_PKEY_cmp.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_copy_parameters.3"
	ln -sf "EVP_PKEY_cmp.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_missing_parameters.3"
	ln -sf "EVP_PKEY_decrypt.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_decrypt_init.3"
	ln -sf "EVP_PKEY_derive.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_derive_init.3"
	ln -sf "EVP_PKEY_derive.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_derive_set_peer.3"
	ln -sf "EVP_PKEY_encrypt.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_encrypt_init.3"
	ln -sf "EVP_PKEY_keygen.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_get_app_data.3"
	ln -sf "EVP_PKEY_keygen.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_get_cb.3"
	ln -sf "EVP_PKEY_keygen.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_get_keygen_info.3"
	ln -sf "EVP_PKEY_keygen.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_app_data.3"
	ln -sf "EVP_PKEY_keygen.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_cb.3"
	ln -sf "EVP_PKEY_keygen.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_gen_cb.3"
	ln -sf "EVP_PKEY_keygen.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_keygen_init.3"
	ln -sf "EVP_PKEY_keygen.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_paramgen.3"
	ln -sf "EVP_PKEY_keygen.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_paramgen_init.3"
	ln -sf "EVP_PKEY_meth_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_add0.3"
	ln -sf "EVP_PKEY_meth_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_copy.3"
	ln -sf "EVP_PKEY_meth_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_find.3"
	ln -sf "EVP_PKEY_meth_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_free.3"
	ln -sf "EVP_PKEY_meth_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_cleanup.3"
	ln -sf "EVP_PKEY_meth_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_copy.3"
	ln -sf "EVP_PKEY_meth_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_ctrl.3"
	ln -sf "EVP_PKEY_meth_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_decrypt.3"
	ln -sf "EVP_PKEY_meth_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_derive.3"
	ln -sf "EVP_PKEY_meth_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_encrypt.3"
	ln -sf "EVP_PKEY_meth_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_init.3"
	ln -sf "EVP_PKEY_meth_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_keygen.3"
	ln -sf "EVP_PKEY_meth_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_paramgen.3"
	ln -sf "EVP_PKEY_meth_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_sign.3"
	ln -sf "EVP_PKEY_meth_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_signctx.3"
	ln -sf "EVP_PKEY_meth_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_verify.3"
	ln -sf "EVP_PKEY_meth_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_verify_recover.3"
	ln -sf "EVP_PKEY_meth_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_verifyctx.3"
	ln -sf "EVP_PKEY_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_free.3"
	ln -sf "EVP_PKEY_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_up_ref.3"
	ln -sf "EVP_PKEY_print_private.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_print_params.3"
	ln -sf "EVP_PKEY_print_private.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_print_public.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_assign_DH.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_assign_DSA.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_assign_EC_KEY.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_assign_RSA.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_base_id.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get0_DH.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get0_DSA.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get0_EC_KEY.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get0_RSA.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get1_DH.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get1_DSA.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get1_EC_KEY.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get1_RSA.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_id.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_set1_DH.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_set1_DSA.3"
1195
1196
1197
1198
1199
1200
1201


1202


1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
	ln -sf "GENERAL_NAME_new.3" "$(DESTDIR)$(mandir)/man3/GENERAL_NAMES_free.3"
	ln -sf "GENERAL_NAME_new.3" "$(DESTDIR)$(mandir)/man3/GENERAL_NAMES_new.3"
	ln -sf "GENERAL_NAME_new.3" "$(DESTDIR)$(mandir)/man3/GENERAL_NAME_free.3"
	ln -sf "GENERAL_NAME_new.3" "$(DESTDIR)$(mandir)/man3/OTHERNAME_free.3"
	ln -sf "GENERAL_NAME_new.3" "$(DESTDIR)$(mandir)/man3/OTHERNAME_new.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_CTX_cleanup.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_CTX_copy.3"


	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_CTX_init.3"


	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_CTX_set_flags.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_Final.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_Init.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_Init_ex.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_Update.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_cleanup.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_size.3"
	ln -sf "MD5.3" "$(DESTDIR)$(mandir)/man3/MD2.3"
	ln -sf "MD5.3" "$(DESTDIR)$(mandir)/man3/MD2_Final.3"
	ln -sf "MD5.3" "$(DESTDIR)$(mandir)/man3/MD2_Init.3"
	ln -sf "MD5.3" "$(DESTDIR)$(mandir)/man3/MD2_Update.3"
	ln -sf "MD5.3" "$(DESTDIR)$(mandir)/man3/MD4.3"
	ln -sf "MD5.3" "$(DESTDIR)$(mandir)/man3/MD4_Final.3"
	ln -sf "MD5.3" "$(DESTDIR)$(mandir)/man3/MD4_Init.3"
	ln -sf "MD5.3" "$(DESTDIR)$(mandir)/man3/MD4_Update.3"
	ln -sf "MD5.3" "$(DESTDIR)$(mandir)/man3/MD5_Final.3"
	ln -sf "MD5.3" "$(DESTDIR)$(mandir)/man3/MD5_Init.3"
	ln -sf "MD5.3" "$(DESTDIR)$(mandir)/man3/MD5_Update.3"







>
>

>
>







<
<
<
<







1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323




1324
1325
1326
1327
1328
1329
1330
	ln -sf "GENERAL_NAME_new.3" "$(DESTDIR)$(mandir)/man3/GENERAL_NAMES_free.3"
	ln -sf "GENERAL_NAME_new.3" "$(DESTDIR)$(mandir)/man3/GENERAL_NAMES_new.3"
	ln -sf "GENERAL_NAME_new.3" "$(DESTDIR)$(mandir)/man3/GENERAL_NAME_free.3"
	ln -sf "GENERAL_NAME_new.3" "$(DESTDIR)$(mandir)/man3/OTHERNAME_free.3"
	ln -sf "GENERAL_NAME_new.3" "$(DESTDIR)$(mandir)/man3/OTHERNAME_new.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_CTX_cleanup.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_CTX_copy.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_CTX_free.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_CTX_get_md.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_CTX_init.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_CTX_new.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_CTX_reset.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_CTX_set_flags.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_Final.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_Init.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_Init_ex.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_Update.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_cleanup.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_size.3"




	ln -sf "MD5.3" "$(DESTDIR)$(mandir)/man3/MD4.3"
	ln -sf "MD5.3" "$(DESTDIR)$(mandir)/man3/MD4_Final.3"
	ln -sf "MD5.3" "$(DESTDIR)$(mandir)/man3/MD4_Init.3"
	ln -sf "MD5.3" "$(DESTDIR)$(mandir)/man3/MD4_Update.3"
	ln -sf "MD5.3" "$(DESTDIR)$(mandir)/man3/MD5_Final.3"
	ln -sf "MD5.3" "$(DESTDIR)$(mandir)/man3/MD5_Init.3"
	ln -sf "MD5.3" "$(DESTDIR)$(mandir)/man3/MD5_Update.3"
1260
1261
1262
1263
1264
1265
1266

1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282

1283
1284
1285
1286
1287
1288
1289




1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301





















1302
1303
1304
1305
1306
1307
1308
	ln -sf "OCSP_request_add1_nonce.3" "$(DESTDIR)$(mandir)/man3/OCSP_check_nonce.3"
	ln -sf "OCSP_request_add1_nonce.3" "$(DESTDIR)$(mandir)/man3/OCSP_copy_nonce.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_CERTSTATUS_free.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_CERTSTATUS_new.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_REVOKEDINFO_free.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_REVOKEDINFO_new.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_SINGLERESP_free.3"

	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_SINGLERESP_new.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_check_validity.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_resp_count.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_resp_find.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_resp_get0.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_single_get0_status.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_BASICRESP_free.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_BASICRESP_new.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_RESPBYTES_free.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_RESPBYTES_new.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_RESPDATA_free.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_RESPDATA_new.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_RESPID_free.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_RESPID_new.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_RESPONSE_free.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_RESPONSE_new.3"

	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_response_create.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_response_get1_basic.3"
	ln -sf "OCSP_sendreq_new.3" "$(DESTDIR)$(mandir)/man3/OCSP_REQ_CTX_add1_header.3"
	ln -sf "OCSP_sendreq_new.3" "$(DESTDIR)$(mandir)/man3/OCSP_REQ_CTX_free.3"
	ln -sf "OCSP_sendreq_new.3" "$(DESTDIR)$(mandir)/man3/OCSP_REQ_CTX_set1_req.3"
	ln -sf "OCSP_sendreq_new.3" "$(DESTDIR)$(mandir)/man3/OCSP_sendreq_bio.3"
	ln -sf "OCSP_sendreq_new.3" "$(DESTDIR)$(mandir)/man3/OCSP_sendreq_nbio.3"




	ln -sf "OPENSSL_VERSION_NUMBER.3" "$(DESTDIR)$(mandir)/man3/SSLeay.3"
	ln -sf "OPENSSL_VERSION_NUMBER.3" "$(DESTDIR)$(mandir)/man3/SSLeay_version.3"
	ln -sf "OPENSSL_config.3" "$(DESTDIR)$(mandir)/man3/OPENSSL_no_config.3"
	ln -sf "OPENSSL_load_builtin_modules.3" "$(DESTDIR)$(mandir)/man3/ASN1_add_oid_module.3"
	ln -sf "OPENSSL_load_builtin_modules.3" "$(DESTDIR)$(mandir)/man3/ENGINE_add_conf_module.3"
	ln -sf "OPENSSL_malloc.3" "$(DESTDIR)$(mandir)/man3/CRYPTO_free.3"
	ln -sf "OPENSSL_malloc.3" "$(DESTDIR)$(mandir)/man3/CRYPTO_malloc.3"
	ln -sf "OPENSSL_malloc.3" "$(DESTDIR)$(mandir)/man3/CRYPTO_realloc.3"
	ln -sf "OPENSSL_malloc.3" "$(DESTDIR)$(mandir)/man3/CRYPTO_strdup.3"
	ln -sf "OPENSSL_malloc.3" "$(DESTDIR)$(mandir)/man3/OPENSSL_free.3"
	ln -sf "OPENSSL_malloc.3" "$(DESTDIR)$(mandir)/man3/OPENSSL_realloc.3"
	ln -sf "OPENSSL_malloc.3" "$(DESTDIR)$(mandir)/man3/OPENSSL_strdup.3"





















	ln -sf "OpenSSL_add_all_algorithms.3" "$(DESTDIR)$(mandir)/man3/EVP_cleanup.3"
	ln -sf "OpenSSL_add_all_algorithms.3" "$(DESTDIR)$(mandir)/man3/OpenSSL_add_all_ciphers.3"
	ln -sf "OpenSSL_add_all_algorithms.3" "$(DESTDIR)$(mandir)/man3/OpenSSL_add_all_digests.3"
	ln -sf "PEM_read.3" "$(DESTDIR)$(mandir)/man3/PEM_do_header.3"
	ln -sf "PEM_read.3" "$(DESTDIR)$(mandir)/man3/PEM_get_EVP_CIPHER_INFO.3"
	ln -sf "PEM_read.3" "$(DESTDIR)$(mandir)/man3/PEM_read_bio.3"
	ln -sf "PEM_read.3" "$(DESTDIR)$(mandir)/man3/PEM_write.3"







>
















>







>
>
>
>












>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
	ln -sf "OCSP_request_add1_nonce.3" "$(DESTDIR)$(mandir)/man3/OCSP_check_nonce.3"
	ln -sf "OCSP_request_add1_nonce.3" "$(DESTDIR)$(mandir)/man3/OCSP_copy_nonce.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_CERTSTATUS_free.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_CERTSTATUS_new.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_REVOKEDINFO_free.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_REVOKEDINFO_new.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_SINGLERESP_free.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_SINGLERESP_get0_id.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_SINGLERESP_new.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_check_validity.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_resp_count.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_resp_find.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_resp_get0.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_single_get0_status.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_BASICRESP_free.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_BASICRESP_new.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_RESPBYTES_free.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_RESPBYTES_new.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_RESPDATA_free.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_RESPDATA_new.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_RESPID_free.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_RESPID_new.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_RESPONSE_free.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_RESPONSE_new.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_basic_sign.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_response_create.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_response_get1_basic.3"
	ln -sf "OCSP_sendreq_new.3" "$(DESTDIR)$(mandir)/man3/OCSP_REQ_CTX_add1_header.3"
	ln -sf "OCSP_sendreq_new.3" "$(DESTDIR)$(mandir)/man3/OCSP_REQ_CTX_free.3"
	ln -sf "OCSP_sendreq_new.3" "$(DESTDIR)$(mandir)/man3/OCSP_REQ_CTX_set1_req.3"
	ln -sf "OCSP_sendreq_new.3" "$(DESTDIR)$(mandir)/man3/OCSP_sendreq_bio.3"
	ln -sf "OCSP_sendreq_new.3" "$(DESTDIR)$(mandir)/man3/OCSP_sendreq_nbio.3"
	ln -sf "OPENSSL_VERSION_NUMBER.3" "$(DESTDIR)$(mandir)/man3/LIBRESSL_VERSION_NUMBER.3"
	ln -sf "OPENSSL_VERSION_NUMBER.3" "$(DESTDIR)$(mandir)/man3/LIBRESSL_VERSION_TEXT.3"
	ln -sf "OPENSSL_VERSION_NUMBER.3" "$(DESTDIR)$(mandir)/man3/OpenSSL_version.3"
	ln -sf "OPENSSL_VERSION_NUMBER.3" "$(DESTDIR)$(mandir)/man3/OpenSSL_version_num.3"
	ln -sf "OPENSSL_VERSION_NUMBER.3" "$(DESTDIR)$(mandir)/man3/SSLeay.3"
	ln -sf "OPENSSL_VERSION_NUMBER.3" "$(DESTDIR)$(mandir)/man3/SSLeay_version.3"
	ln -sf "OPENSSL_config.3" "$(DESTDIR)$(mandir)/man3/OPENSSL_no_config.3"
	ln -sf "OPENSSL_load_builtin_modules.3" "$(DESTDIR)$(mandir)/man3/ASN1_add_oid_module.3"
	ln -sf "OPENSSL_load_builtin_modules.3" "$(DESTDIR)$(mandir)/man3/ENGINE_add_conf_module.3"
	ln -sf "OPENSSL_malloc.3" "$(DESTDIR)$(mandir)/man3/CRYPTO_free.3"
	ln -sf "OPENSSL_malloc.3" "$(DESTDIR)$(mandir)/man3/CRYPTO_malloc.3"
	ln -sf "OPENSSL_malloc.3" "$(DESTDIR)$(mandir)/man3/CRYPTO_realloc.3"
	ln -sf "OPENSSL_malloc.3" "$(DESTDIR)$(mandir)/man3/CRYPTO_strdup.3"
	ln -sf "OPENSSL_malloc.3" "$(DESTDIR)$(mandir)/man3/OPENSSL_free.3"
	ln -sf "OPENSSL_malloc.3" "$(DESTDIR)$(mandir)/man3/OPENSSL_realloc.3"
	ln -sf "OPENSSL_malloc.3" "$(DESTDIR)$(mandir)/man3/OPENSSL_strdup.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_delete.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_delete_ptr.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_dup.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_find.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_find_ex.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_free.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_insert.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_is_sorted.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_new.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_new_null.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_num.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_pop.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_pop_free.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_push.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_set.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_set_cmp_func.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_shift.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_sort.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_unshift.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_value.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_zero.3"
	ln -sf "OpenSSL_add_all_algorithms.3" "$(DESTDIR)$(mandir)/man3/EVP_cleanup.3"
	ln -sf "OpenSSL_add_all_algorithms.3" "$(DESTDIR)$(mandir)/man3/OpenSSL_add_all_ciphers.3"
	ln -sf "OpenSSL_add_all_algorithms.3" "$(DESTDIR)$(mandir)/man3/OpenSSL_add_all_digests.3"
	ln -sf "PEM_read.3" "$(DESTDIR)$(mandir)/man3/PEM_do_header.3"
	ln -sf "PEM_read.3" "$(DESTDIR)$(mandir)/man3/PEM_get_EVP_CIPHER_INFO.3"
	ln -sf "PEM_read.3" "$(DESTDIR)$(mandir)/man3/PEM_read_bio.3"
	ln -sf "PEM_read.3" "$(DESTDIR)$(mandir)/man3/PEM_write.3"
1437
1438
1439
1440
1441
1442
1443

1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457








1458
1459
1460
1461
1462





1463
1464
1465
1466
1467
1468
1469
	ln -sf "POLICYINFO_new.3" "$(DESTDIR)$(mandir)/man3/POLICY_MAPPING_new.3"
	ln -sf "POLICYINFO_new.3" "$(DESTDIR)$(mandir)/man3/USERNOTICE_free.3"
	ln -sf "POLICYINFO_new.3" "$(DESTDIR)$(mandir)/man3/USERNOTICE_new.3"
	ln -sf "PROXY_POLICY_new.3" "$(DESTDIR)$(mandir)/man3/PROXY_CERT_INFO_EXTENSION_free.3"
	ln -sf "PROXY_POLICY_new.3" "$(DESTDIR)$(mandir)/man3/PROXY_CERT_INFO_EXTENSION_new.3"
	ln -sf "PROXY_POLICY_new.3" "$(DESTDIR)$(mandir)/man3/PROXY_POLICY_free.3"
	ln -sf "RAND_add.3" "$(DESTDIR)$(mandir)/man3/RAND_cleanup.3"

	ln -sf "RAND_add.3" "$(DESTDIR)$(mandir)/man3/RAND_seed.3"
	ln -sf "RAND_add.3" "$(DESTDIR)$(mandir)/man3/RAND_status.3"
	ln -sf "RAND_bytes.3" "$(DESTDIR)$(mandir)/man3/RAND_pseudo_bytes.3"
	ln -sf "RAND_load_file.3" "$(DESTDIR)$(mandir)/man3/RAND_file_name.3"
	ln -sf "RAND_load_file.3" "$(DESTDIR)$(mandir)/man3/RAND_write_file.3"
	ln -sf "RAND_set_rand_method.3" "$(DESTDIR)$(mandir)/man3/RAND_SSLeay.3"
	ln -sf "RAND_set_rand_method.3" "$(DESTDIR)$(mandir)/man3/RAND_get_rand_method.3"
	ln -sf "RC4.3" "$(DESTDIR)$(mandir)/man3/RC4_set_key.3"
	ln -sf "RIPEMD160.3" "$(DESTDIR)$(mandir)/man3/RIPEMD160_Final.3"
	ln -sf "RIPEMD160.3" "$(DESTDIR)$(mandir)/man3/RIPEMD160_Init.3"
	ln -sf "RIPEMD160.3" "$(DESTDIR)$(mandir)/man3/RIPEMD160_Update.3"
	ln -sf "RSA_PSS_PARAMS_new.3" "$(DESTDIR)$(mandir)/man3/RSA_PSS_PARAMS_free.3"
	ln -sf "RSA_blinding_on.3" "$(DESTDIR)$(mandir)/man3/RSA_blinding_off.3"
	ln -sf "RSA_generate_key.3" "$(DESTDIR)$(mandir)/man3/RSA_generate_key_ex.3"








	ln -sf "RSA_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/CRYPTO_EX_dup.3"
	ln -sf "RSA_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/CRYPTO_EX_free.3"
	ln -sf "RSA_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/CRYPTO_EX_new.3"
	ln -sf "RSA_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/RSA_get_ex_data.3"
	ln -sf "RSA_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/RSA_set_ex_data.3"





	ln -sf "RSA_new.3" "$(DESTDIR)$(mandir)/man3/RSA_free.3"
	ln -sf "RSA_padding_add_PKCS1_type_1.3" "$(DESTDIR)$(mandir)/man3/RSA_padding_add_PKCS1_OAEP.3"
	ln -sf "RSA_padding_add_PKCS1_type_1.3" "$(DESTDIR)$(mandir)/man3/RSA_padding_add_PKCS1_type_2.3"
	ln -sf "RSA_padding_add_PKCS1_type_1.3" "$(DESTDIR)$(mandir)/man3/RSA_padding_add_none.3"
	ln -sf "RSA_padding_add_PKCS1_type_1.3" "$(DESTDIR)$(mandir)/man3/RSA_padding_check_PKCS1_OAEP.3"
	ln -sf "RSA_padding_add_PKCS1_type_1.3" "$(DESTDIR)$(mandir)/man3/RSA_padding_check_PKCS1_type_1.3"
	ln -sf "RSA_padding_add_PKCS1_type_1.3" "$(DESTDIR)$(mandir)/man3/RSA_padding_check_PKCS1_type_2.3"







>














>
>
>
>
>
>
>
>





>
>
>
>
>







1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
	ln -sf "POLICYINFO_new.3" "$(DESTDIR)$(mandir)/man3/POLICY_MAPPING_new.3"
	ln -sf "POLICYINFO_new.3" "$(DESTDIR)$(mandir)/man3/USERNOTICE_free.3"
	ln -sf "POLICYINFO_new.3" "$(DESTDIR)$(mandir)/man3/USERNOTICE_new.3"
	ln -sf "PROXY_POLICY_new.3" "$(DESTDIR)$(mandir)/man3/PROXY_CERT_INFO_EXTENSION_free.3"
	ln -sf "PROXY_POLICY_new.3" "$(DESTDIR)$(mandir)/man3/PROXY_CERT_INFO_EXTENSION_new.3"
	ln -sf "PROXY_POLICY_new.3" "$(DESTDIR)$(mandir)/man3/PROXY_POLICY_free.3"
	ln -sf "RAND_add.3" "$(DESTDIR)$(mandir)/man3/RAND_cleanup.3"
	ln -sf "RAND_add.3" "$(DESTDIR)$(mandir)/man3/RAND_poll.3"
	ln -sf "RAND_add.3" "$(DESTDIR)$(mandir)/man3/RAND_seed.3"
	ln -sf "RAND_add.3" "$(DESTDIR)$(mandir)/man3/RAND_status.3"
	ln -sf "RAND_bytes.3" "$(DESTDIR)$(mandir)/man3/RAND_pseudo_bytes.3"
	ln -sf "RAND_load_file.3" "$(DESTDIR)$(mandir)/man3/RAND_file_name.3"
	ln -sf "RAND_load_file.3" "$(DESTDIR)$(mandir)/man3/RAND_write_file.3"
	ln -sf "RAND_set_rand_method.3" "$(DESTDIR)$(mandir)/man3/RAND_SSLeay.3"
	ln -sf "RAND_set_rand_method.3" "$(DESTDIR)$(mandir)/man3/RAND_get_rand_method.3"
	ln -sf "RC4.3" "$(DESTDIR)$(mandir)/man3/RC4_set_key.3"
	ln -sf "RIPEMD160.3" "$(DESTDIR)$(mandir)/man3/RIPEMD160_Final.3"
	ln -sf "RIPEMD160.3" "$(DESTDIR)$(mandir)/man3/RIPEMD160_Init.3"
	ln -sf "RIPEMD160.3" "$(DESTDIR)$(mandir)/man3/RIPEMD160_Update.3"
	ln -sf "RSA_PSS_PARAMS_new.3" "$(DESTDIR)$(mandir)/man3/RSA_PSS_PARAMS_free.3"
	ln -sf "RSA_blinding_on.3" "$(DESTDIR)$(mandir)/man3/RSA_blinding_off.3"
	ln -sf "RSA_generate_key.3" "$(DESTDIR)$(mandir)/man3/RSA_generate_key_ex.3"
	ln -sf "RSA_get0_key.3" "$(DESTDIR)$(mandir)/man3/RSA_clear_flags.3"
	ln -sf "RSA_get0_key.3" "$(DESTDIR)$(mandir)/man3/RSA_get0_crt_params.3"
	ln -sf "RSA_get0_key.3" "$(DESTDIR)$(mandir)/man3/RSA_get0_factors.3"
	ln -sf "RSA_get0_key.3" "$(DESTDIR)$(mandir)/man3/RSA_set0_crt_params.3"
	ln -sf "RSA_get0_key.3" "$(DESTDIR)$(mandir)/man3/RSA_set0_factors.3"
	ln -sf "RSA_get0_key.3" "$(DESTDIR)$(mandir)/man3/RSA_set0_key.3"
	ln -sf "RSA_get0_key.3" "$(DESTDIR)$(mandir)/man3/RSA_set_flags.3"
	ln -sf "RSA_get0_key.3" "$(DESTDIR)$(mandir)/man3/RSA_test_flags.3"
	ln -sf "RSA_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/CRYPTO_EX_dup.3"
	ln -sf "RSA_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/CRYPTO_EX_free.3"
	ln -sf "RSA_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/CRYPTO_EX_new.3"
	ln -sf "RSA_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/RSA_get_ex_data.3"
	ln -sf "RSA_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/RSA_set_ex_data.3"
	ln -sf "RSA_meth_new.3" "$(DESTDIR)$(mandir)/man3/RSA_meth_dup.3"
	ln -sf "RSA_meth_new.3" "$(DESTDIR)$(mandir)/man3/RSA_meth_free.3"
	ln -sf "RSA_meth_new.3" "$(DESTDIR)$(mandir)/man3/RSA_meth_set_finish.3"
	ln -sf "RSA_meth_new.3" "$(DESTDIR)$(mandir)/man3/RSA_meth_set_priv_dec.3"
	ln -sf "RSA_meth_new.3" "$(DESTDIR)$(mandir)/man3/RSA_meth_set_priv_enc.3"
	ln -sf "RSA_new.3" "$(DESTDIR)$(mandir)/man3/RSA_free.3"
	ln -sf "RSA_padding_add_PKCS1_type_1.3" "$(DESTDIR)$(mandir)/man3/RSA_padding_add_PKCS1_OAEP.3"
	ln -sf "RSA_padding_add_PKCS1_type_1.3" "$(DESTDIR)$(mandir)/man3/RSA_padding_add_PKCS1_type_2.3"
	ln -sf "RSA_padding_add_PKCS1_type_1.3" "$(DESTDIR)$(mandir)/man3/RSA_padding_add_none.3"
	ln -sf "RSA_padding_add_PKCS1_type_1.3" "$(DESTDIR)$(mandir)/man3/RSA_padding_check_PKCS1_OAEP.3"
	ln -sf "RSA_padding_add_PKCS1_type_1.3" "$(DESTDIR)$(mandir)/man3/RSA_padding_check_PKCS1_type_1.3"
	ln -sf "RSA_padding_add_PKCS1_type_1.3" "$(DESTDIR)$(mandir)/man3/RSA_padding_check_PKCS1_type_2.3"
1484
1485
1486
1487
1488
1489
1490

1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510

1511




1512

1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529

1530
1531
1532
1533
1534
1535
1536
	ln -sf "RSA_set_method.3" "$(DESTDIR)$(mandir)/man3/RSA_get_method.3"
	ln -sf "RSA_set_method.3" "$(DESTDIR)$(mandir)/man3/RSA_new_method.3"
	ln -sf "RSA_set_method.3" "$(DESTDIR)$(mandir)/man3/RSA_null_method.3"
	ln -sf "RSA_set_method.3" "$(DESTDIR)$(mandir)/man3/RSA_set_default_method.3"
	ln -sf "RSA_set_method.3" "$(DESTDIR)$(mandir)/man3/RSA_set_default_openssl_method.3"
	ln -sf "RSA_sign.3" "$(DESTDIR)$(mandir)/man3/RSA_verify.3"
	ln -sf "RSA_sign_ASN1_OCTET_STRING.3" "$(DESTDIR)$(mandir)/man3/RSA_verify_ASN1_OCTET_STRING.3"

	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA1_Final.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA1_Init.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA1_Update.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA224.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA224_Final.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA224_Init.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA224_Update.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA256.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA256_Final.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA256_Init.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA256_Update.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA384.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA384_Final.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA384_Init.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA384_Update.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA512.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA512_Final.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA512_Init.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA512_Update.3"
	ln -sf "SSL_CIPHER_get_name.3" "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_description.3"

	ln -sf "SSL_CIPHER_get_name.3" "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_get_bits.3"




	ln -sf "SSL_CIPHER_get_name.3" "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_get_version.3"

	ln -sf "SSL_COMP_add_compression_method.3" "$(DESTDIR)$(mandir)/man3/SSL_COMP_get_compression_methods.3"
	ln -sf "SSL_CTX_add_extra_chain_cert.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_clear_extra_chain_certs.3"
	ln -sf "SSL_CTX_add_session.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_remove_session.3"
	ln -sf "SSL_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_callback_ctrl.3"
	ln -sf "SSL_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/SSL_callback_ctrl.3"
	ln -sf "SSL_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/SSL_ctrl.3"
	ln -sf "SSL_CTX_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_ex_data.3"
	ln -sf "SSL_CTX_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_ex_data.3"
	ln -sf "SSL_CTX_get_verify_mode.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_verify_callback.3"
	ln -sf "SSL_CTX_get_verify_mode.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_verify_depth.3"
	ln -sf "SSL_CTX_get_verify_mode.3" "$(DESTDIR)$(mandir)/man3/SSL_get_verify_callback.3"
	ln -sf "SSL_CTX_get_verify_mode.3" "$(DESTDIR)$(mandir)/man3/SSL_get_verify_depth.3"
	ln -sf "SSL_CTX_get_verify_mode.3" "$(DESTDIR)$(mandir)/man3/SSL_get_verify_mode.3"
	ln -sf "SSL_CTX_load_verify_locations.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_default_verify_paths.3"
	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/DTLSv1_client_method.3"
	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/DTLSv1_method.3"
	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/DTLSv1_server_method.3"

	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/SSLv23_client_method.3"
	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/SSLv23_method.3"
	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/SSLv23_server_method.3"
	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/TLS_client_method.3"
	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/TLS_method.3"
	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/TLS_server_method.3"
	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/TLSv1_1_client_method.3"







>




















>

>
>
>
>

>

















>







1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
	ln -sf "RSA_set_method.3" "$(DESTDIR)$(mandir)/man3/RSA_get_method.3"
	ln -sf "RSA_set_method.3" "$(DESTDIR)$(mandir)/man3/RSA_new_method.3"
	ln -sf "RSA_set_method.3" "$(DESTDIR)$(mandir)/man3/RSA_null_method.3"
	ln -sf "RSA_set_method.3" "$(DESTDIR)$(mandir)/man3/RSA_set_default_method.3"
	ln -sf "RSA_set_method.3" "$(DESTDIR)$(mandir)/man3/RSA_set_default_openssl_method.3"
	ln -sf "RSA_sign.3" "$(DESTDIR)$(mandir)/man3/RSA_verify.3"
	ln -sf "RSA_sign_ASN1_OCTET_STRING.3" "$(DESTDIR)$(mandir)/man3/RSA_verify_ASN1_OCTET_STRING.3"
	ln -sf "RSA_size.3" "$(DESTDIR)$(mandir)/man3/RSA_bits.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA1_Final.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA1_Init.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA1_Update.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA224.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA224_Final.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA224_Init.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA224_Update.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA256.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA256_Final.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA256_Init.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA256_Update.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA384.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA384_Final.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA384_Init.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA384_Update.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA512.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA512_Final.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA512_Init.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA512_Update.3"
	ln -sf "SSL_CIPHER_get_name.3" "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_description.3"
	ln -sf "SSL_CIPHER_get_name.3" "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_get_auth_nid.3"
	ln -sf "SSL_CIPHER_get_name.3" "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_get_bits.3"
	ln -sf "SSL_CIPHER_get_name.3" "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_get_cipher_nid.3"
	ln -sf "SSL_CIPHER_get_name.3" "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_get_digest_nid.3"
	ln -sf "SSL_CIPHER_get_name.3" "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_get_id.3"
	ln -sf "SSL_CIPHER_get_name.3" "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_get_kx_nid.3"
	ln -sf "SSL_CIPHER_get_name.3" "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_get_version.3"
	ln -sf "SSL_CIPHER_get_name.3" "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_is_aead.3"
	ln -sf "SSL_COMP_add_compression_method.3" "$(DESTDIR)$(mandir)/man3/SSL_COMP_get_compression_methods.3"
	ln -sf "SSL_CTX_add_extra_chain_cert.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_clear_extra_chain_certs.3"
	ln -sf "SSL_CTX_add_session.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_remove_session.3"
	ln -sf "SSL_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_callback_ctrl.3"
	ln -sf "SSL_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/SSL_callback_ctrl.3"
	ln -sf "SSL_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/SSL_ctrl.3"
	ln -sf "SSL_CTX_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_ex_data.3"
	ln -sf "SSL_CTX_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_ex_data.3"
	ln -sf "SSL_CTX_get_verify_mode.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_verify_callback.3"
	ln -sf "SSL_CTX_get_verify_mode.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_verify_depth.3"
	ln -sf "SSL_CTX_get_verify_mode.3" "$(DESTDIR)$(mandir)/man3/SSL_get_verify_callback.3"
	ln -sf "SSL_CTX_get_verify_mode.3" "$(DESTDIR)$(mandir)/man3/SSL_get_verify_depth.3"
	ln -sf "SSL_CTX_get_verify_mode.3" "$(DESTDIR)$(mandir)/man3/SSL_get_verify_mode.3"
	ln -sf "SSL_CTX_load_verify_locations.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_default_verify_paths.3"
	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/DTLSv1_client_method.3"
	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/DTLSv1_method.3"
	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/DTLSv1_server_method.3"
	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_up_ref.3"
	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/SSLv23_client_method.3"
	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/SSLv23_method.3"
	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/SSLv23_server_method.3"
	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/TLS_client_method.3"
	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/TLS_method.3"
	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/TLS_server_method.3"
	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/TLSv1_1_client_method.3"
1587
1588
1589
1590
1591
1592
1593


1594


1595
1596
1597
1598
1599
1600
1601
	ln -sf "SSL_CTX_set_generate_session_id.3" "$(DESTDIR)$(mandir)/man3/SSL_set_generate_session_id.3"
	ln -sf "SSL_CTX_set_info_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_info_callback.3"
	ln -sf "SSL_CTX_set_info_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_get_info_callback.3"
	ln -sf "SSL_CTX_set_info_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_set_info_callback.3"
	ln -sf "SSL_CTX_set_max_cert_list.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_max_cert_list.3"
	ln -sf "SSL_CTX_set_max_cert_list.3" "$(DESTDIR)$(mandir)/man3/SSL_get_max_cert_list.3"
	ln -sf "SSL_CTX_set_max_cert_list.3" "$(DESTDIR)$(mandir)/man3/SSL_set_max_cert_list.3"


	ln -sf "SSL_CTX_set_min_proto_version.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_max_proto_version.3"


	ln -sf "SSL_CTX_set_min_proto_version.3" "$(DESTDIR)$(mandir)/man3/SSL_set_max_proto_version.3"
	ln -sf "SSL_CTX_set_min_proto_version.3" "$(DESTDIR)$(mandir)/man3/SSL_set_min_proto_version.3"
	ln -sf "SSL_CTX_set_mode.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_mode.3"
	ln -sf "SSL_CTX_set_mode.3" "$(DESTDIR)$(mandir)/man3/SSL_get_mode.3"
	ln -sf "SSL_CTX_set_mode.3" "$(DESTDIR)$(mandir)/man3/SSL_set_mode.3"
	ln -sf "SSL_CTX_set_msg_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_msg_callback_arg.3"
	ln -sf "SSL_CTX_set_msg_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_set_msg_callback.3"







>
>

>
>







1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
	ln -sf "SSL_CTX_set_generate_session_id.3" "$(DESTDIR)$(mandir)/man3/SSL_set_generate_session_id.3"
	ln -sf "SSL_CTX_set_info_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_info_callback.3"
	ln -sf "SSL_CTX_set_info_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_get_info_callback.3"
	ln -sf "SSL_CTX_set_info_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_set_info_callback.3"
	ln -sf "SSL_CTX_set_max_cert_list.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_max_cert_list.3"
	ln -sf "SSL_CTX_set_max_cert_list.3" "$(DESTDIR)$(mandir)/man3/SSL_get_max_cert_list.3"
	ln -sf "SSL_CTX_set_max_cert_list.3" "$(DESTDIR)$(mandir)/man3/SSL_set_max_cert_list.3"
	ln -sf "SSL_CTX_set_min_proto_version.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_max_proto_version.3"
	ln -sf "SSL_CTX_set_min_proto_version.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_min_proto_version.3"
	ln -sf "SSL_CTX_set_min_proto_version.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_max_proto_version.3"
	ln -sf "SSL_CTX_set_min_proto_version.3" "$(DESTDIR)$(mandir)/man3/SSL_get_max_proto_version.3"
	ln -sf "SSL_CTX_set_min_proto_version.3" "$(DESTDIR)$(mandir)/man3/SSL_get_min_proto_version.3"
	ln -sf "SSL_CTX_set_min_proto_version.3" "$(DESTDIR)$(mandir)/man3/SSL_set_max_proto_version.3"
	ln -sf "SSL_CTX_set_min_proto_version.3" "$(DESTDIR)$(mandir)/man3/SSL_set_min_proto_version.3"
	ln -sf "SSL_CTX_set_mode.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_mode.3"
	ln -sf "SSL_CTX_set_mode.3" "$(DESTDIR)$(mandir)/man3/SSL_get_mode.3"
	ln -sf "SSL_CTX_set_mode.3" "$(DESTDIR)$(mandir)/man3/SSL_set_mode.3"
	ln -sf "SSL_CTX_set_msg_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_msg_callback_arg.3"
	ln -sf "SSL_CTX_set_msg_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_set_msg_callback.3"
1618
1619
1620
1621
1622
1623
1624


1625
1626
1627
1628



1629
1630
1631
1632
1633
1634
1635
	ln -sf "SSL_CTX_set_ssl_version.3" "$(DESTDIR)$(mandir)/man3/SSL_get_ssl_method.3"
	ln -sf "SSL_CTX_set_ssl_version.3" "$(DESTDIR)$(mandir)/man3/SSL_set_ssl_method.3"
	ln -sf "SSL_CTX_set_timeout.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_timeout.3"
	ln -sf "SSL_CTX_set_tlsext_servername_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_tlsext_servername_arg.3"
	ln -sf "SSL_CTX_set_tlsext_servername_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_get_servername.3"
	ln -sf "SSL_CTX_set_tlsext_servername_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_get_servername_type.3"
	ln -sf "SSL_CTX_set_tlsext_servername_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_set_tlsext_host_name.3"


	ln -sf "SSL_CTX_set_tlsext_status_cb.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_tlsext_status_arg.3"
	ln -sf "SSL_CTX_set_tlsext_status_cb.3" "$(DESTDIR)$(mandir)/man3/SSL_get_tlsext_status_ocsp_resp.3"
	ln -sf "SSL_CTX_set_tlsext_status_cb.3" "$(DESTDIR)$(mandir)/man3/SSL_set_tlsext_status_ocsp_resp.3"
	ln -sf "SSL_CTX_set_tlsext_status_cb.3" "$(DESTDIR)$(mandir)/man3/SSL_set_tlsext_status_type.3"



	ln -sf "SSL_CTX_set_tmp_dh_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_tmp_dh.3"
	ln -sf "SSL_CTX_set_tmp_dh_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_set_tmp_dh.3"
	ln -sf "SSL_CTX_set_tmp_dh_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_set_tmp_dh_callback.3"
	ln -sf "SSL_CTX_set_tmp_rsa_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_need_tmp_RSA.3"
	ln -sf "SSL_CTX_set_tmp_rsa_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_tmp_rsa.3"
	ln -sf "SSL_CTX_set_tmp_rsa_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_need_tmp_rsa.3"
	ln -sf "SSL_CTX_set_tmp_rsa_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_set_tmp_rsa.3"







>
>




>
>
>







1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
	ln -sf "SSL_CTX_set_ssl_version.3" "$(DESTDIR)$(mandir)/man3/SSL_get_ssl_method.3"
	ln -sf "SSL_CTX_set_ssl_version.3" "$(DESTDIR)$(mandir)/man3/SSL_set_ssl_method.3"
	ln -sf "SSL_CTX_set_timeout.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_timeout.3"
	ln -sf "SSL_CTX_set_tlsext_servername_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_tlsext_servername_arg.3"
	ln -sf "SSL_CTX_set_tlsext_servername_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_get_servername.3"
	ln -sf "SSL_CTX_set_tlsext_servername_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_get_servername_type.3"
	ln -sf "SSL_CTX_set_tlsext_servername_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_set_tlsext_host_name.3"
	ln -sf "SSL_CTX_set_tlsext_status_cb.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_tlsext_status_arg.3"
	ln -sf "SSL_CTX_set_tlsext_status_cb.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_tlsext_status_cb.3"
	ln -sf "SSL_CTX_set_tlsext_status_cb.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_tlsext_status_arg.3"
	ln -sf "SSL_CTX_set_tlsext_status_cb.3" "$(DESTDIR)$(mandir)/man3/SSL_get_tlsext_status_ocsp_resp.3"
	ln -sf "SSL_CTX_set_tlsext_status_cb.3" "$(DESTDIR)$(mandir)/man3/SSL_set_tlsext_status_ocsp_resp.3"
	ln -sf "SSL_CTX_set_tlsext_status_cb.3" "$(DESTDIR)$(mandir)/man3/SSL_set_tlsext_status_type.3"
	ln -sf "SSL_CTX_set_tlsext_use_srtp.3" "$(DESTDIR)$(mandir)/man3/SSL_get_selected_srtp_profile.3"
	ln -sf "SSL_CTX_set_tlsext_use_srtp.3" "$(DESTDIR)$(mandir)/man3/SSL_get_srtp_profiles.3"
	ln -sf "SSL_CTX_set_tlsext_use_srtp.3" "$(DESTDIR)$(mandir)/man3/SSL_set_tlsext_use_srtp.3"
	ln -sf "SSL_CTX_set_tmp_dh_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_tmp_dh.3"
	ln -sf "SSL_CTX_set_tmp_dh_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_set_tmp_dh.3"
	ln -sf "SSL_CTX_set_tmp_dh_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_set_tmp_dh_callback.3"
	ln -sf "SSL_CTX_set_tmp_rsa_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_need_tmp_RSA.3"
	ln -sf "SSL_CTX_set_tmp_rsa_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_tmp_rsa.3"
	ln -sf "SSL_CTX_set_tmp_rsa_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_need_tmp_rsa.3"
	ln -sf "SSL_CTX_set_tmp_rsa_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_set_tmp_rsa.3"
1655
1656
1657
1658
1659
1660
1661

1662
1663

1664
1665
1666
1667
1668
1669
1670

1671

1672
1673
1674
1675

1676
1677


1678
1679
1680
1681
1682
1683
1684
	ln -sf "SSL_CTX_use_certificate.3" "$(DESTDIR)$(mandir)/man3/SSL_use_PrivateKey_file.3"
	ln -sf "SSL_CTX_use_certificate.3" "$(DESTDIR)$(mandir)/man3/SSL_use_RSAPrivateKey.3"
	ln -sf "SSL_CTX_use_certificate.3" "$(DESTDIR)$(mandir)/man3/SSL_use_RSAPrivateKey_ASN1.3"
	ln -sf "SSL_CTX_use_certificate.3" "$(DESTDIR)$(mandir)/man3/SSL_use_RSAPrivateKey_file.3"
	ln -sf "SSL_CTX_use_certificate.3" "$(DESTDIR)$(mandir)/man3/SSL_use_certificate.3"
	ln -sf "SSL_CTX_use_certificate.3" "$(DESTDIR)$(mandir)/man3/SSL_use_certificate_ASN1.3"
	ln -sf "SSL_CTX_use_certificate.3" "$(DESTDIR)$(mandir)/man3/SSL_use_certificate_file.3"

	ln -sf "SSL_SESSION_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/SSL_SESSION_get_ex_data.3"
	ln -sf "SSL_SESSION_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/SSL_SESSION_set_ex_data.3"

	ln -sf "SSL_SESSION_get_time.3" "$(DESTDIR)$(mandir)/man3/SSL_SESSION_get_timeout.3"
	ln -sf "SSL_SESSION_get_time.3" "$(DESTDIR)$(mandir)/man3/SSL_SESSION_set_time.3"
	ln -sf "SSL_SESSION_get_time.3" "$(DESTDIR)$(mandir)/man3/SSL_SESSION_set_timeout.3"
	ln -sf "SSL_SESSION_get_time.3" "$(DESTDIR)$(mandir)/man3/SSL_get_time.3"
	ln -sf "SSL_SESSION_get_time.3" "$(DESTDIR)$(mandir)/man3/SSL_get_timeout.3"
	ln -sf "SSL_SESSION_get_time.3" "$(DESTDIR)$(mandir)/man3/SSL_set_time.3"
	ln -sf "SSL_SESSION_get_time.3" "$(DESTDIR)$(mandir)/man3/SSL_set_timeout.3"

	ln -sf "SSL_SESSION_print.3" "$(DESTDIR)$(mandir)/man3/SSL_SESSION_print_fp.3"

	ln -sf "SSL_alert_type_string.3" "$(DESTDIR)$(mandir)/man3/SSL_alert_desc_string.3"
	ln -sf "SSL_alert_type_string.3" "$(DESTDIR)$(mandir)/man3/SSL_alert_desc_string_long.3"
	ln -sf "SSL_alert_type_string.3" "$(DESTDIR)$(mandir)/man3/SSL_alert_type_string_long.3"
	ln -sf "SSL_get_certificate.3" "$(DESTDIR)$(mandir)/man3/SSL_get_privatekey.3"

	ln -sf "SSL_get_ciphers.3" "$(DESTDIR)$(mandir)/man3/SSL_get_cipher_list.3"
	ln -sf "SSL_get_client_CA_list.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_client_CA_list.3"


	ln -sf "SSL_get_current_cipher.3" "$(DESTDIR)$(mandir)/man3/SSL_get_cipher.3"
	ln -sf "SSL_get_current_cipher.3" "$(DESTDIR)$(mandir)/man3/SSL_get_cipher_bits.3"
	ln -sf "SSL_get_current_cipher.3" "$(DESTDIR)$(mandir)/man3/SSL_get_cipher_name.3"
	ln -sf "SSL_get_current_cipher.3" "$(DESTDIR)$(mandir)/man3/SSL_get_cipher_version.3"
	ln -sf "SSL_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/SSL_get_ex_data.3"
	ln -sf "SSL_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/SSL_set_ex_data.3"
	ln -sf "SSL_get_fd.3" "$(DESTDIR)$(mandir)/man3/SSL_get_rfd.3"







>


>







>

>




>


>
>







1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
	ln -sf "SSL_CTX_use_certificate.3" "$(DESTDIR)$(mandir)/man3/SSL_use_PrivateKey_file.3"
	ln -sf "SSL_CTX_use_certificate.3" "$(DESTDIR)$(mandir)/man3/SSL_use_RSAPrivateKey.3"
	ln -sf "SSL_CTX_use_certificate.3" "$(DESTDIR)$(mandir)/man3/SSL_use_RSAPrivateKey_ASN1.3"
	ln -sf "SSL_CTX_use_certificate.3" "$(DESTDIR)$(mandir)/man3/SSL_use_RSAPrivateKey_file.3"
	ln -sf "SSL_CTX_use_certificate.3" "$(DESTDIR)$(mandir)/man3/SSL_use_certificate.3"
	ln -sf "SSL_CTX_use_certificate.3" "$(DESTDIR)$(mandir)/man3/SSL_use_certificate_ASN1.3"
	ln -sf "SSL_CTX_use_certificate.3" "$(DESTDIR)$(mandir)/man3/SSL_use_certificate_file.3"
	ln -sf "SSL_SESSION_free.3" "$(DESTDIR)$(mandir)/man3/SSL_SESSION_up_ref.3"
	ln -sf "SSL_SESSION_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/SSL_SESSION_get_ex_data.3"
	ln -sf "SSL_SESSION_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/SSL_SESSION_set_ex_data.3"
	ln -sf "SSL_SESSION_get_id.3" "$(DESTDIR)$(mandir)/man3/SSL_SESSION_set1_id.3"
	ln -sf "SSL_SESSION_get_time.3" "$(DESTDIR)$(mandir)/man3/SSL_SESSION_get_timeout.3"
	ln -sf "SSL_SESSION_get_time.3" "$(DESTDIR)$(mandir)/man3/SSL_SESSION_set_time.3"
	ln -sf "SSL_SESSION_get_time.3" "$(DESTDIR)$(mandir)/man3/SSL_SESSION_set_timeout.3"
	ln -sf "SSL_SESSION_get_time.3" "$(DESTDIR)$(mandir)/man3/SSL_get_time.3"
	ln -sf "SSL_SESSION_get_time.3" "$(DESTDIR)$(mandir)/man3/SSL_get_timeout.3"
	ln -sf "SSL_SESSION_get_time.3" "$(DESTDIR)$(mandir)/man3/SSL_set_time.3"
	ln -sf "SSL_SESSION_get_time.3" "$(DESTDIR)$(mandir)/man3/SSL_set_timeout.3"
	ln -sf "SSL_SESSION_has_ticket.3" "$(DESTDIR)$(mandir)/man3/SSL_SESSION_get_ticket_lifetime_hint.3"
	ln -sf "SSL_SESSION_print.3" "$(DESTDIR)$(mandir)/man3/SSL_SESSION_print_fp.3"
	ln -sf "SSL_SESSION_set1_id_context.3" "$(DESTDIR)$(mandir)/man3/SSL_SESSION_get0_id_context.3"
	ln -sf "SSL_alert_type_string.3" "$(DESTDIR)$(mandir)/man3/SSL_alert_desc_string.3"
	ln -sf "SSL_alert_type_string.3" "$(DESTDIR)$(mandir)/man3/SSL_alert_desc_string_long.3"
	ln -sf "SSL_alert_type_string.3" "$(DESTDIR)$(mandir)/man3/SSL_alert_type_string_long.3"
	ln -sf "SSL_get_certificate.3" "$(DESTDIR)$(mandir)/man3/SSL_get_privatekey.3"
	ln -sf "SSL_get_ciphers.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_ciphers.3"
	ln -sf "SSL_get_ciphers.3" "$(DESTDIR)$(mandir)/man3/SSL_get_cipher_list.3"
	ln -sf "SSL_get_client_CA_list.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_client_CA_list.3"
	ln -sf "SSL_get_client_random.3" "$(DESTDIR)$(mandir)/man3/SSL_SESSION_get_master_key.3"
	ln -sf "SSL_get_client_random.3" "$(DESTDIR)$(mandir)/man3/SSL_get_server_random.3"
	ln -sf "SSL_get_current_cipher.3" "$(DESTDIR)$(mandir)/man3/SSL_get_cipher.3"
	ln -sf "SSL_get_current_cipher.3" "$(DESTDIR)$(mandir)/man3/SSL_get_cipher_bits.3"
	ln -sf "SSL_get_current_cipher.3" "$(DESTDIR)$(mandir)/man3/SSL_get_cipher_name.3"
	ln -sf "SSL_get_current_cipher.3" "$(DESTDIR)$(mandir)/man3/SSL_get_cipher_version.3"
	ln -sf "SSL_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/SSL_get_ex_data.3"
	ln -sf "SSL_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/SSL_set_ex_data.3"
	ln -sf "SSL_get_fd.3" "$(DESTDIR)$(mandir)/man3/SSL_get_rfd.3"
1693
1694
1695
1696
1697
1698
1699

1700
1701
1702
1703
1704
1705

1706


1707
1708
1709
1710
1711
1712
1713
	ln -sf "SSL_get_state.3" "$(DESTDIR)$(mandir)/man3/SSL_is_init_finished.3"
	ln -sf "SSL_get_state.3" "$(DESTDIR)$(mandir)/man3/SSL_state.3"
	ln -sf "SSL_get_version.3" "$(DESTDIR)$(mandir)/man3/SSL_version.3"
	ln -sf "SSL_library_init.3" "$(DESTDIR)$(mandir)/man3/OpenSSL_add_ssl_algorithms.3"
	ln -sf "SSL_library_init.3" "$(DESTDIR)$(mandir)/man3/SSLeay_add_ssl_algorithms.3"
	ln -sf "SSL_load_client_CA_file.3" "$(DESTDIR)$(mandir)/man3/SSL_add_dir_cert_subjects_to_stack.3"
	ln -sf "SSL_load_client_CA_file.3" "$(DESTDIR)$(mandir)/man3/SSL_add_file_cert_subjects_to_stack.3"

	ln -sf "SSL_num_renegotiations.3" "$(DESTDIR)$(mandir)/man3/SSL_clear_num_renegotiations.3"
	ln -sf "SSL_num_renegotiations.3" "$(DESTDIR)$(mandir)/man3/SSL_total_renegotiations.3"
	ln -sf "SSL_read.3" "$(DESTDIR)$(mandir)/man3/SSL_peek.3"
	ln -sf "SSL_renegotiate.3" "$(DESTDIR)$(mandir)/man3/SSL_renegotiate_abbreviated.3"
	ln -sf "SSL_renegotiate.3" "$(DESTDIR)$(mandir)/man3/SSL_renegotiate_pending.3"
	ln -sf "SSL_rstate_string.3" "$(DESTDIR)$(mandir)/man3/SSL_rstate_string_long.3"

	ln -sf "SSL_set1_param.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set1_param.3"


	ln -sf "SSL_set_connect_state.3" "$(DESTDIR)$(mandir)/man3/SSL_set_accept_state.3"
	ln -sf "SSL_set_fd.3" "$(DESTDIR)$(mandir)/man3/SSL_set_rfd.3"
	ln -sf "SSL_set_fd.3" "$(DESTDIR)$(mandir)/man3/SSL_set_wfd.3"
	ln -sf "SSL_set_max_send_fragment.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_max_send_fragment.3"
	ln -sf "SSL_set_shutdown.3" "$(DESTDIR)$(mandir)/man3/SSL_get_shutdown.3"
	ln -sf "SSL_set_tmp_ecdh.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_ecdh_auto.3"
	ln -sf "SSL_set_tmp_ecdh.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_tmp_ecdh.3"







>






>

>
>







1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
	ln -sf "SSL_get_state.3" "$(DESTDIR)$(mandir)/man3/SSL_is_init_finished.3"
	ln -sf "SSL_get_state.3" "$(DESTDIR)$(mandir)/man3/SSL_state.3"
	ln -sf "SSL_get_version.3" "$(DESTDIR)$(mandir)/man3/SSL_version.3"
	ln -sf "SSL_library_init.3" "$(DESTDIR)$(mandir)/man3/OpenSSL_add_ssl_algorithms.3"
	ln -sf "SSL_library_init.3" "$(DESTDIR)$(mandir)/man3/SSLeay_add_ssl_algorithms.3"
	ln -sf "SSL_load_client_CA_file.3" "$(DESTDIR)$(mandir)/man3/SSL_add_dir_cert_subjects_to_stack.3"
	ln -sf "SSL_load_client_CA_file.3" "$(DESTDIR)$(mandir)/man3/SSL_add_file_cert_subjects_to_stack.3"
	ln -sf "SSL_new.3" "$(DESTDIR)$(mandir)/man3/SSL_up_ref.3"
	ln -sf "SSL_num_renegotiations.3" "$(DESTDIR)$(mandir)/man3/SSL_clear_num_renegotiations.3"
	ln -sf "SSL_num_renegotiations.3" "$(DESTDIR)$(mandir)/man3/SSL_total_renegotiations.3"
	ln -sf "SSL_read.3" "$(DESTDIR)$(mandir)/man3/SSL_peek.3"
	ln -sf "SSL_renegotiate.3" "$(DESTDIR)$(mandir)/man3/SSL_renegotiate_abbreviated.3"
	ln -sf "SSL_renegotiate.3" "$(DESTDIR)$(mandir)/man3/SSL_renegotiate_pending.3"
	ln -sf "SSL_rstate_string.3" "$(DESTDIR)$(mandir)/man3/SSL_rstate_string_long.3"
	ln -sf "SSL_set1_param.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get0_param.3"
	ln -sf "SSL_set1_param.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set1_param.3"
	ln -sf "SSL_set1_param.3" "$(DESTDIR)$(mandir)/man3/SSL_get0_param.3"
	ln -sf "SSL_set_connect_state.3" "$(DESTDIR)$(mandir)/man3/SSL_is_server.3"
	ln -sf "SSL_set_connect_state.3" "$(DESTDIR)$(mandir)/man3/SSL_set_accept_state.3"
	ln -sf "SSL_set_fd.3" "$(DESTDIR)$(mandir)/man3/SSL_set_rfd.3"
	ln -sf "SSL_set_fd.3" "$(DESTDIR)$(mandir)/man3/SSL_set_wfd.3"
	ln -sf "SSL_set_max_send_fragment.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_max_send_fragment.3"
	ln -sf "SSL_set_shutdown.3" "$(DESTDIR)$(mandir)/man3/SSL_get_shutdown.3"
	ln -sf "SSL_set_tmp_ecdh.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_ecdh_auto.3"
	ln -sf "SSL_set_tmp_ecdh.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_tmp_ecdh.3"
1782
1783
1784
1785
1786
1787
1788

1789
1790

1791
1792

1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811

1812

1813
1814
1815
1816
1817
1818
1819
	ln -sf "UI_new.3" "$(DESTDIR)$(mandir)/man3/UI_process.3"
	ln -sf "UI_new.3" "$(DESTDIR)$(mandir)/man3/UI_set_default_method.3"
	ln -sf "UI_new.3" "$(DESTDIR)$(mandir)/man3/UI_set_method.3"
	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509V3_EXT_d2i.3"
	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509V3_EXT_i2d.3"
	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509V3_add1_i2d.3"
	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_add1_ext_i2d.3"

	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_get_ext_d2i.3"
	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509_REVOKED_add1_ext_i2d.3"

	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509_REVOKED_get_ext_d2i.3"
	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509_add1_ext_i2d.3"

	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509_get_ext_d2i.3"
	ln -sf "X509_ALGOR_dup.3" "$(DESTDIR)$(mandir)/man3/X509_ALGOR_cmp.3"
	ln -sf "X509_ALGOR_dup.3" "$(DESTDIR)$(mandir)/man3/X509_ALGOR_free.3"
	ln -sf "X509_ALGOR_dup.3" "$(DESTDIR)$(mandir)/man3/X509_ALGOR_get0.3"
	ln -sf "X509_ALGOR_dup.3" "$(DESTDIR)$(mandir)/man3/X509_ALGOR_new.3"
	ln -sf "X509_ALGOR_dup.3" "$(DESTDIR)$(mandir)/man3/X509_ALGOR_set0.3"
	ln -sf "X509_ALGOR_dup.3" "$(DESTDIR)$(mandir)/man3/X509_ALGOR_set_md.3"
	ln -sf "X509_ATTRIBUTE_new.3" "$(DESTDIR)$(mandir)/man3/X509_ATTRIBUTE_free.3"
	ln -sf "X509_CINF_new.3" "$(DESTDIR)$(mandir)/man3/X509_CERT_AUX_free.3"
	ln -sf "X509_CINF_new.3" "$(DESTDIR)$(mandir)/man3/X509_CERT_AUX_new.3"
	ln -sf "X509_CINF_new.3" "$(DESTDIR)$(mandir)/man3/X509_CINF_free.3"
	ln -sf "X509_CINF_new.3" "$(DESTDIR)$(mandir)/man3/X509_VAL_free.3"
	ln -sf "X509_CINF_new.3" "$(DESTDIR)$(mandir)/man3/X509_VAL_new.3"
	ln -sf "X509_CRL_get0_by_serial.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_add0_revoked.3"
	ln -sf "X509_CRL_get0_by_serial.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_get0_by_cert.3"
	ln -sf "X509_CRL_get0_by_serial.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_get_REVOKED.3"
	ln -sf "X509_CRL_get0_by_serial.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_sort.3"
	ln -sf "X509_CRL_new.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_INFO_free.3"
	ln -sf "X509_CRL_new.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_INFO_new.3"

	ln -sf "X509_CRL_new.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_free.3"

	ln -sf "X509_EXTENSION_set_object.3" "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_create_by_NID.3"
	ln -sf "X509_EXTENSION_set_object.3" "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_create_by_OBJ.3"
	ln -sf "X509_EXTENSION_set_object.3" "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_free.3"
	ln -sf "X509_EXTENSION_set_object.3" "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_get_critical.3"
	ln -sf "X509_EXTENSION_set_object.3" "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_get_data.3"
	ln -sf "X509_EXTENSION_set_object.3" "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_get_object.3"
	ln -sf "X509_EXTENSION_set_object.3" "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_new.3"







>


>


>



















>

>







1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
	ln -sf "UI_new.3" "$(DESTDIR)$(mandir)/man3/UI_process.3"
	ln -sf "UI_new.3" "$(DESTDIR)$(mandir)/man3/UI_set_default_method.3"
	ln -sf "UI_new.3" "$(DESTDIR)$(mandir)/man3/UI_set_method.3"
	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509V3_EXT_d2i.3"
	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509V3_EXT_i2d.3"
	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509V3_add1_i2d.3"
	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_add1_ext_i2d.3"
	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_get0_extensions.3"
	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_get_ext_d2i.3"
	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509_REVOKED_add1_ext_i2d.3"
	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509_REVOKED_get0_extensions.3"
	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509_REVOKED_get_ext_d2i.3"
	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509_add1_ext_i2d.3"
	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509_get0_extensions.3"
	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509_get_ext_d2i.3"
	ln -sf "X509_ALGOR_dup.3" "$(DESTDIR)$(mandir)/man3/X509_ALGOR_cmp.3"
	ln -sf "X509_ALGOR_dup.3" "$(DESTDIR)$(mandir)/man3/X509_ALGOR_free.3"
	ln -sf "X509_ALGOR_dup.3" "$(DESTDIR)$(mandir)/man3/X509_ALGOR_get0.3"
	ln -sf "X509_ALGOR_dup.3" "$(DESTDIR)$(mandir)/man3/X509_ALGOR_new.3"
	ln -sf "X509_ALGOR_dup.3" "$(DESTDIR)$(mandir)/man3/X509_ALGOR_set0.3"
	ln -sf "X509_ALGOR_dup.3" "$(DESTDIR)$(mandir)/man3/X509_ALGOR_set_md.3"
	ln -sf "X509_ATTRIBUTE_new.3" "$(DESTDIR)$(mandir)/man3/X509_ATTRIBUTE_free.3"
	ln -sf "X509_CINF_new.3" "$(DESTDIR)$(mandir)/man3/X509_CERT_AUX_free.3"
	ln -sf "X509_CINF_new.3" "$(DESTDIR)$(mandir)/man3/X509_CERT_AUX_new.3"
	ln -sf "X509_CINF_new.3" "$(DESTDIR)$(mandir)/man3/X509_CINF_free.3"
	ln -sf "X509_CINF_new.3" "$(DESTDIR)$(mandir)/man3/X509_VAL_free.3"
	ln -sf "X509_CINF_new.3" "$(DESTDIR)$(mandir)/man3/X509_VAL_new.3"
	ln -sf "X509_CRL_get0_by_serial.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_add0_revoked.3"
	ln -sf "X509_CRL_get0_by_serial.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_get0_by_cert.3"
	ln -sf "X509_CRL_get0_by_serial.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_get_REVOKED.3"
	ln -sf "X509_CRL_get0_by_serial.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_sort.3"
	ln -sf "X509_CRL_new.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_INFO_free.3"
	ln -sf "X509_CRL_new.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_INFO_new.3"
	ln -sf "X509_CRL_new.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_dup.3"
	ln -sf "X509_CRL_new.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_free.3"
	ln -sf "X509_CRL_new.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_up_ref.3"
	ln -sf "X509_EXTENSION_set_object.3" "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_create_by_NID.3"
	ln -sf "X509_EXTENSION_set_object.3" "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_create_by_OBJ.3"
	ln -sf "X509_EXTENSION_set_object.3" "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_free.3"
	ln -sf "X509_EXTENSION_set_object.3" "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_get_critical.3"
	ln -sf "X509_EXTENSION_set_object.3" "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_get_data.3"
	ln -sf "X509_EXTENSION_set_object.3" "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_get_object.3"
	ln -sf "X509_EXTENSION_set_object.3" "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_new.3"
1840
1841
1842
1843
1844
1845
1846






1847
1848

1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860

1861


1862
1863
1864


1865
1866
1867
1868
1869
1870
1871
1872
1873
1874


1875
1876
1877


1878
1879
1880
1881
1882












1883
1884


1885





1886
1887







1888
1889

1890
1891
1892

1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904















1905
1906

1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921

1922
1923
1924
1925
1926
1927
1928
	ln -sf "X509_NAME_get_index_by_NID.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_get_index_by_OBJ.3"
	ln -sf "X509_NAME_get_index_by_NID.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_get_text_by_NID.3"
	ln -sf "X509_NAME_get_index_by_NID.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_get_text_by_OBJ.3"
	ln -sf "X509_NAME_new.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_free.3"
	ln -sf "X509_NAME_print_ex.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_oneline.3"
	ln -sf "X509_NAME_print_ex.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_print.3"
	ln -sf "X509_NAME_print_ex.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_print_ex_fp.3"






	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_free.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_get.3"

	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_get0_param.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_set.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_set0_param.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/d2i_PUBKEY.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/d2i_PUBKEY_bio.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/d2i_PUBKEY_fp.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/i2d_PUBKEY.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/i2d_PUBKEY_bio.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/i2d_PUBKEY_fp.3"
	ln -sf "X509_REQ_new.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_INFO_free.3"
	ln -sf "X509_REQ_new.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_INFO_new.3"
	ln -sf "X509_REQ_new.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_free.3"

	ln -sf "X509_REVOKED_new.3" "$(DESTDIR)$(mandir)/man3/X509_REVOKED_free.3"


	ln -sf "X509_REVOKED_new.3" "$(DESTDIR)$(mandir)/man3/X509_REVOKED_set_revocationDate.3"
	ln -sf "X509_REVOKED_new.3" "$(DESTDIR)$(mandir)/man3/X509_REVOKED_set_serialNumber.3"
	ln -sf "X509_SIG_new.3" "$(DESTDIR)$(mandir)/man3/X509_SIG_free.3"


	ln -sf "X509_STORE_CTX_get_error.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get1_chain.3"
	ln -sf "X509_STORE_CTX_get_error.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get_current_cert.3"
	ln -sf "X509_STORE_CTX_get_error.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get_error_depth.3"
	ln -sf "X509_STORE_CTX_get_error.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set_error.3"
	ln -sf "X509_STORE_CTX_get_error.3" "$(DESTDIR)$(mandir)/man3/X509_verify_cert_error_string.3"
	ln -sf "X509_STORE_CTX_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get_ex_data.3"
	ln -sf "X509_STORE_CTX_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set_ex_data.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_cleanup.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_free.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get0_param.3"


	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_init.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set0_crls.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set0_param.3"


	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set_cert.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set_chain.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set_default.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_trusted_stack.3"
	ln -sf "X509_STORE_load_locations.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_set_default_paths.3"












	ln -sf "X509_STORE_set_verify_cb_func.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_set_verify_cb.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_add0_policy.3"


	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_clear_flags.3"





	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_get_depth.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_get_flags.3"







	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set1_policies.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set_depth.3"

	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set_purpose.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set_time.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set_trust.3"

	ln -sf "X509_check_host.3" "$(DESTDIR)$(mandir)/man3/X509_check_email.3"
	ln -sf "X509_check_host.3" "$(DESTDIR)$(mandir)/man3/X509_check_ip.3"
	ln -sf "X509_check_host.3" "$(DESTDIR)$(mandir)/man3/X509_check_ip_asc.3"
	ln -sf "X509_check_private_key.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_check_private_key.3"
	ln -sf "X509_cmp_time.3" "$(DESTDIR)$(mandir)/man3/X509_cmp_current_time.3"
	ln -sf "X509_cmp_time.3" "$(DESTDIR)$(mandir)/man3/X509_time_adj.3"
	ln -sf "X509_cmp_time.3" "$(DESTDIR)$(mandir)/man3/X509_time_adj_ex.3"
	ln -sf "X509_digest.3" "$(DESTDIR)$(mandir)/man3/PKCS7_ISSUER_AND_SERIAL_digest.3"
	ln -sf "X509_digest.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_digest.3"
	ln -sf "X509_digest.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_digest.3"
	ln -sf "X509_digest.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_digest.3"
	ln -sf "X509_digest.3" "$(DESTDIR)$(mandir)/man3/X509_pubkey_digest.3"















	ln -sf "X509_get_pubkey.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_get_pubkey.3"
	ln -sf "X509_get_pubkey.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_set_pubkey.3"

	ln -sf "X509_get_pubkey.3" "$(DESTDIR)$(mandir)/man3/X509_get_X509_PUBKEY.3"
	ln -sf "X509_get_pubkey.3" "$(DESTDIR)$(mandir)/man3/X509_set_pubkey.3"
	ln -sf "X509_get_serialNumber.3" "$(DESTDIR)$(mandir)/man3/X509_set_serialNumber.3"
	ln -sf "X509_get_subject_name.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_get_issuer.3"
	ln -sf "X509_get_subject_name.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_set_issuer_name.3"
	ln -sf "X509_get_subject_name.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_get_subject_name.3"
	ln -sf "X509_get_subject_name.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_set_subject_name.3"
	ln -sf "X509_get_subject_name.3" "$(DESTDIR)$(mandir)/man3/X509_get_issuer_name.3"
	ln -sf "X509_get_subject_name.3" "$(DESTDIR)$(mandir)/man3/X509_set_issuer_name.3"
	ln -sf "X509_get_subject_name.3" "$(DESTDIR)$(mandir)/man3/X509_set_subject_name.3"
	ln -sf "X509_get_version.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_get_version.3"
	ln -sf "X509_get_version.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_set_version.3"
	ln -sf "X509_get_version.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_get_version.3"
	ln -sf "X509_get_version.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_set_version.3"
	ln -sf "X509_get_version.3" "$(DESTDIR)$(mandir)/man3/X509_set_version.3"

	ln -sf "X509_new.3" "$(DESTDIR)$(mandir)/man3/X509_free.3"
	ln -sf "X509_new.3" "$(DESTDIR)$(mandir)/man3/X509_up_ref.3"
	ln -sf "X509_sign.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_sign.3"
	ln -sf "X509_sign.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_sign_ctx.3"
	ln -sf "X509_sign.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_verify.3"
	ln -sf "X509_sign.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_sign.3"
	ln -sf "X509_sign.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_sign_ctx.3"







>
>
>
>
>
>


>












>

>
>



>
>










>
>



>
>





>
>
>
>
>
>
>
>
>
>
>
>


>
>

>
>
>
>
>


>
>
>
>
>
>
>


>



>












>
>
>
>
>
>
>
>
>
>
>
>
>
>
>


>















>







2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
	ln -sf "X509_NAME_get_index_by_NID.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_get_index_by_OBJ.3"
	ln -sf "X509_NAME_get_index_by_NID.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_get_text_by_NID.3"
	ln -sf "X509_NAME_get_index_by_NID.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_get_text_by_OBJ.3"
	ln -sf "X509_NAME_new.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_free.3"
	ln -sf "X509_NAME_print_ex.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_oneline.3"
	ln -sf "X509_NAME_print_ex.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_print.3"
	ln -sf "X509_NAME_print_ex.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_print_ex_fp.3"
	ln -sf "X509_OBJECT_get0_X509.3" "$(DESTDIR)$(mandir)/man3/X509_OBJECT_free_contents.3"
	ln -sf "X509_OBJECT_get0_X509.3" "$(DESTDIR)$(mandir)/man3/X509_OBJECT_get0_X509_CRL.3"
	ln -sf "X509_OBJECT_get0_X509.3" "$(DESTDIR)$(mandir)/man3/X509_OBJECT_idx_by_subject.3"
	ln -sf "X509_OBJECT_get0_X509.3" "$(DESTDIR)$(mandir)/man3/X509_OBJECT_retrieve_by_subject.3"
	ln -sf "X509_OBJECT_get0_X509.3" "$(DESTDIR)$(mandir)/man3/X509_OBJECT_retrieve_match.3"
	ln -sf "X509_OBJECT_get0_X509.3" "$(DESTDIR)$(mandir)/man3/X509_OBJECT_up_ref_count.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_free.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_get.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_get0.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_get0_param.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_set.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_set0_param.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/d2i_PUBKEY.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/d2i_PUBKEY_bio.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/d2i_PUBKEY_fp.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/i2d_PUBKEY.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/i2d_PUBKEY_bio.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/i2d_PUBKEY_fp.3"
	ln -sf "X509_REQ_new.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_INFO_free.3"
	ln -sf "X509_REQ_new.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_INFO_new.3"
	ln -sf "X509_REQ_new.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_free.3"
	ln -sf "X509_REVOKED_new.3" "$(DESTDIR)$(mandir)/man3/X509_REVOKED_dup.3"
	ln -sf "X509_REVOKED_new.3" "$(DESTDIR)$(mandir)/man3/X509_REVOKED_free.3"
	ln -sf "X509_REVOKED_new.3" "$(DESTDIR)$(mandir)/man3/X509_REVOKED_get0_revocationDate.3"
	ln -sf "X509_REVOKED_new.3" "$(DESTDIR)$(mandir)/man3/X509_REVOKED_get0_serialNumber.3"
	ln -sf "X509_REVOKED_new.3" "$(DESTDIR)$(mandir)/man3/X509_REVOKED_set_revocationDate.3"
	ln -sf "X509_REVOKED_new.3" "$(DESTDIR)$(mandir)/man3/X509_REVOKED_set_serialNumber.3"
	ln -sf "X509_SIG_new.3" "$(DESTDIR)$(mandir)/man3/X509_SIG_free.3"
	ln -sf "X509_STORE_CTX_get_error.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get0_cert.3"
	ln -sf "X509_STORE_CTX_get_error.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get0_chain.3"
	ln -sf "X509_STORE_CTX_get_error.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get1_chain.3"
	ln -sf "X509_STORE_CTX_get_error.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get_current_cert.3"
	ln -sf "X509_STORE_CTX_get_error.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get_error_depth.3"
	ln -sf "X509_STORE_CTX_get_error.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set_error.3"
	ln -sf "X509_STORE_CTX_get_error.3" "$(DESTDIR)$(mandir)/man3/X509_verify_cert_error_string.3"
	ln -sf "X509_STORE_CTX_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get_ex_data.3"
	ln -sf "X509_STORE_CTX_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set_ex_data.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_cleanup.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_free.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get0_param.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get0_store.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get0_untrusted.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_init.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set0_crls.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set0_param.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set0_trusted_stack.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set0_untrusted.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set_cert.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set_chain.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set_default.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_trusted_stack.3"
	ln -sf "X509_STORE_load_locations.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_set_default_paths.3"
	ln -sf "X509_STORE_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_free.3"
	ln -sf "X509_STORE_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_up_ref.3"
	ln -sf "X509_STORE_set1_param.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_add_cert.3"
	ln -sf "X509_STORE_set1_param.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_add_crl.3"
	ln -sf "X509_STORE_set1_param.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_get0_objects.3"
	ln -sf "X509_STORE_set1_param.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_get_ex_data.3"
	ln -sf "X509_STORE_set1_param.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_get_ex_new_index.3"
	ln -sf "X509_STORE_set1_param.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_set_depth.3"
	ln -sf "X509_STORE_set1_param.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_set_ex_data.3"
	ln -sf "X509_STORE_set1_param.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_set_flags.3"
	ln -sf "X509_STORE_set1_param.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_set_purpose.3"
	ln -sf "X509_STORE_set1_param.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_set_trust.3"
	ln -sf "X509_STORE_set_verify_cb_func.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_set_verify_cb.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_add0_policy.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_add0_table.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_add1_host.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_clear_flags.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_free.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_get0.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_get0_name.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_get0_peername.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_get_count.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_get_depth.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_get_flags.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_lookup.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_new.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set1_email.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set1_host.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set1_ip.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set1_ip_asc.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set1_name.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set1_policies.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set_depth.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set_hostflags.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set_purpose.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set_time.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set_trust.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_table_cleanup.3"
	ln -sf "X509_check_host.3" "$(DESTDIR)$(mandir)/man3/X509_check_email.3"
	ln -sf "X509_check_host.3" "$(DESTDIR)$(mandir)/man3/X509_check_ip.3"
	ln -sf "X509_check_host.3" "$(DESTDIR)$(mandir)/man3/X509_check_ip_asc.3"
	ln -sf "X509_check_private_key.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_check_private_key.3"
	ln -sf "X509_cmp_time.3" "$(DESTDIR)$(mandir)/man3/X509_cmp_current_time.3"
	ln -sf "X509_cmp_time.3" "$(DESTDIR)$(mandir)/man3/X509_time_adj.3"
	ln -sf "X509_cmp_time.3" "$(DESTDIR)$(mandir)/man3/X509_time_adj_ex.3"
	ln -sf "X509_digest.3" "$(DESTDIR)$(mandir)/man3/PKCS7_ISSUER_AND_SERIAL_digest.3"
	ln -sf "X509_digest.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_digest.3"
	ln -sf "X509_digest.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_digest.3"
	ln -sf "X509_digest.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_digest.3"
	ln -sf "X509_digest.3" "$(DESTDIR)$(mandir)/man3/X509_pubkey_digest.3"
	ln -sf "X509_get0_notBefore.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_get0_lastUpdate.3"
	ln -sf "X509_get0_notBefore.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_get0_nextUpdate.3"
	ln -sf "X509_get0_notBefore.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_set1_lastUpdate.3"
	ln -sf "X509_get0_notBefore.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_set1_nextUpdate.3"
	ln -sf "X509_get0_notBefore.3" "$(DESTDIR)$(mandir)/man3/X509_get0_notAfter.3"
	ln -sf "X509_get0_notBefore.3" "$(DESTDIR)$(mandir)/man3/X509_getm_notAfter.3"
	ln -sf "X509_get0_notBefore.3" "$(DESTDIR)$(mandir)/man3/X509_getm_notBefore.3"
	ln -sf "X509_get0_notBefore.3" "$(DESTDIR)$(mandir)/man3/X509_set1_notAfter.3"
	ln -sf "X509_get0_notBefore.3" "$(DESTDIR)$(mandir)/man3/X509_set1_notBefore.3"
	ln -sf "X509_get0_signature.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_get0_signature.3"
	ln -sf "X509_get0_signature.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_get_signature_nid.3"
	ln -sf "X509_get0_signature.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_get0_signature.3"
	ln -sf "X509_get0_signature.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_get_signature_nid.3"
	ln -sf "X509_get0_signature.3" "$(DESTDIR)$(mandir)/man3/X509_get0_tbs_sigalg.3"
	ln -sf "X509_get0_signature.3" "$(DESTDIR)$(mandir)/man3/X509_get_signature_nid.3"
	ln -sf "X509_get_pubkey.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_get_pubkey.3"
	ln -sf "X509_get_pubkey.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_set_pubkey.3"
	ln -sf "X509_get_pubkey.3" "$(DESTDIR)$(mandir)/man3/X509_get0_pubkey.3"
	ln -sf "X509_get_pubkey.3" "$(DESTDIR)$(mandir)/man3/X509_get_X509_PUBKEY.3"
	ln -sf "X509_get_pubkey.3" "$(DESTDIR)$(mandir)/man3/X509_set_pubkey.3"
	ln -sf "X509_get_serialNumber.3" "$(DESTDIR)$(mandir)/man3/X509_set_serialNumber.3"
	ln -sf "X509_get_subject_name.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_get_issuer.3"
	ln -sf "X509_get_subject_name.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_set_issuer_name.3"
	ln -sf "X509_get_subject_name.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_get_subject_name.3"
	ln -sf "X509_get_subject_name.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_set_subject_name.3"
	ln -sf "X509_get_subject_name.3" "$(DESTDIR)$(mandir)/man3/X509_get_issuer_name.3"
	ln -sf "X509_get_subject_name.3" "$(DESTDIR)$(mandir)/man3/X509_set_issuer_name.3"
	ln -sf "X509_get_subject_name.3" "$(DESTDIR)$(mandir)/man3/X509_set_subject_name.3"
	ln -sf "X509_get_version.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_get_version.3"
	ln -sf "X509_get_version.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_set_version.3"
	ln -sf "X509_get_version.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_get_version.3"
	ln -sf "X509_get_version.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_set_version.3"
	ln -sf "X509_get_version.3" "$(DESTDIR)$(mandir)/man3/X509_set_version.3"
	ln -sf "X509_new.3" "$(DESTDIR)$(mandir)/man3/X509_chain_up_ref.3"
	ln -sf "X509_new.3" "$(DESTDIR)$(mandir)/man3/X509_free.3"
	ln -sf "X509_new.3" "$(DESTDIR)$(mandir)/man3/X509_up_ref.3"
	ln -sf "X509_sign.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_sign.3"
	ln -sf "X509_sign.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_sign_ctx.3"
	ln -sf "X509_sign.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_verify.3"
	ln -sf "X509_sign.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_sign.3"
	ln -sf "X509_sign.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_sign_ctx.3"
2268
2269
2270
2271
2272
2273
2274

2275
2276
2277
2278
2279
2280
2281
	ln -sf "d2i_X509_CRL.3" "$(DESTDIR)$(mandir)/man3/i2d_X509_CRL_fp.3"
	ln -sf "d2i_X509_CRL.3" "$(DESTDIR)$(mandir)/man3/i2d_X509_REVOKED.3"
	ln -sf "d2i_X509_EXTENSION.3" "$(DESTDIR)$(mandir)/man3/d2i_X509_EXTENSIONS.3"
	ln -sf "d2i_X509_EXTENSION.3" "$(DESTDIR)$(mandir)/man3/i2d_X509_EXTENSION.3"
	ln -sf "d2i_X509_EXTENSION.3" "$(DESTDIR)$(mandir)/man3/i2d_X509_EXTENSIONS.3"
	ln -sf "d2i_X509_NAME.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_ENTRY_dup.3"
	ln -sf "d2i_X509_NAME.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_dup.3"

	ln -sf "d2i_X509_NAME.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_hash.3"
	ln -sf "d2i_X509_NAME.3" "$(DESTDIR)$(mandir)/man3/d2i_X509_NAME_ENTRY.3"
	ln -sf "d2i_X509_NAME.3" "$(DESTDIR)$(mandir)/man3/i2d_X509_NAME.3"
	ln -sf "d2i_X509_NAME.3" "$(DESTDIR)$(mandir)/man3/i2d_X509_NAME_ENTRY.3"
	ln -sf "d2i_X509_REQ.3" "$(DESTDIR)$(mandir)/man3/d2i_X509_REQ_INFO.3"
	ln -sf "d2i_X509_REQ.3" "$(DESTDIR)$(mandir)/man3/d2i_X509_REQ_bio.3"
	ln -sf "d2i_X509_REQ.3" "$(DESTDIR)$(mandir)/man3/d2i_X509_REQ_fp.3"







>







2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
	ln -sf "d2i_X509_CRL.3" "$(DESTDIR)$(mandir)/man3/i2d_X509_CRL_fp.3"
	ln -sf "d2i_X509_CRL.3" "$(DESTDIR)$(mandir)/man3/i2d_X509_REVOKED.3"
	ln -sf "d2i_X509_EXTENSION.3" "$(DESTDIR)$(mandir)/man3/d2i_X509_EXTENSIONS.3"
	ln -sf "d2i_X509_EXTENSION.3" "$(DESTDIR)$(mandir)/man3/i2d_X509_EXTENSION.3"
	ln -sf "d2i_X509_EXTENSION.3" "$(DESTDIR)$(mandir)/man3/i2d_X509_EXTENSIONS.3"
	ln -sf "d2i_X509_NAME.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_ENTRY_dup.3"
	ln -sf "d2i_X509_NAME.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_dup.3"
	ln -sf "d2i_X509_NAME.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_get0_der.3"
	ln -sf "d2i_X509_NAME.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_hash.3"
	ln -sf "d2i_X509_NAME.3" "$(DESTDIR)$(mandir)/man3/d2i_X509_NAME_ENTRY.3"
	ln -sf "d2i_X509_NAME.3" "$(DESTDIR)$(mandir)/man3/i2d_X509_NAME.3"
	ln -sf "d2i_X509_NAME.3" "$(DESTDIR)$(mandir)/man3/i2d_X509_NAME_ENTRY.3"
	ln -sf "d2i_X509_REQ.3" "$(DESTDIR)$(mandir)/man3/d2i_X509_REQ_INFO.3"
	ln -sf "d2i_X509_REQ.3" "$(DESTDIR)$(mandir)/man3/d2i_X509_REQ_bio.3"
	ln -sf "d2i_X509_REQ.3" "$(DESTDIR)$(mandir)/man3/d2i_X509_REQ_fp.3"
2398
2399
2400
2401
2402
2403
2404








2405
2406
2407
2408
2409
2410
2411
	ln -sf "engine.3" "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_ECDSA.3"
	ln -sf "engine.3" "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_RAND.3"
	ln -sf "engine.3" "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_RSA.3"
	ln -sf "engine.3" "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_STORE.3"
	ln -sf "engine.3" "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_ciphers.3"
	ln -sf "engine.3" "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_digests.3"
	ln -sf "engine.3" "$(DESTDIR)$(mandir)/man3/ENGINE_up_ref.3"








	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/get_rfc2409_prime_1024.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/get_rfc2409_prime_768.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/get_rfc3526_prime_1536.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/get_rfc3526_prime_2048.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/get_rfc3526_prime_3072.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/get_rfc3526_prime_4096.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/get_rfc3526_prime_6144.3"







>
>
>
>
>
>
>
>







2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
	ln -sf "engine.3" "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_ECDSA.3"
	ln -sf "engine.3" "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_RAND.3"
	ln -sf "engine.3" "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_RSA.3"
	ln -sf "engine.3" "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_STORE.3"
	ln -sf "engine.3" "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_ciphers.3"
	ln -sf "engine.3" "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_digests.3"
	ln -sf "engine.3" "$(DESTDIR)$(mandir)/man3/ENGINE_up_ref.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/BN_get_rfc2409_prime_1024.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/BN_get_rfc2409_prime_768.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/BN_get_rfc3526_prime_1536.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/BN_get_rfc3526_prime_2048.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/BN_get_rfc3526_prime_3072.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/BN_get_rfc3526_prime_4096.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/BN_get_rfc3526_prime_6144.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/BN_get_rfc3526_prime_8192.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/get_rfc2409_prime_1024.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/get_rfc2409_prime_768.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/get_rfc3526_prime_1536.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/get_rfc3526_prime_2048.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/get_rfc3526_prime_3072.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/get_rfc3526_prime_4096.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/get_rfc3526_prime_6144.3"
2444
2445
2446
2447
2448
2449
2450

2451
2452
2453
2454
2455
2456
2457


2458
2459
2460
2461
2462
2463
2464
	ln -sf "tls_config_set_protocols.3" "$(DESTDIR)$(mandir)/man3/tls_config_prefer_ciphers_client.3"
	ln -sf "tls_config_set_protocols.3" "$(DESTDIR)$(mandir)/man3/tls_config_prefer_ciphers_server.3"
	ln -sf "tls_config_set_protocols.3" "$(DESTDIR)$(mandir)/man3/tls_config_set_alpn.3"
	ln -sf "tls_config_set_protocols.3" "$(DESTDIR)$(mandir)/man3/tls_config_set_ciphers.3"
	ln -sf "tls_config_set_protocols.3" "$(DESTDIR)$(mandir)/man3/tls_config_set_dheparams.3"
	ln -sf "tls_config_set_protocols.3" "$(DESTDIR)$(mandir)/man3/tls_config_set_ecdhecurves.3"
	ln -sf "tls_config_set_session_id.3" "$(DESTDIR)$(mandir)/man3/tls_config_add_ticket_key.3"

	ln -sf "tls_config_set_session_id.3" "$(DESTDIR)$(mandir)/man3/tls_config_set_session_lifetime.3"
	ln -sf "tls_config_verify.3" "$(DESTDIR)$(mandir)/man3/tls_config_insecure_noverifycert.3"
	ln -sf "tls_config_verify.3" "$(DESTDIR)$(mandir)/man3/tls_config_insecure_noverifyname.3"
	ln -sf "tls_config_verify.3" "$(DESTDIR)$(mandir)/man3/tls_config_insecure_noverifytime.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_conn_alpn_selected.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_conn_cipher.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_conn_servername.3"


	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_peer_cert_contains_name.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_peer_cert_hash.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_peer_cert_issuer.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_peer_cert_notafter.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_peer_cert_notbefore.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_peer_cert_provided.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_peer_cert_subject.3"







>







>
>







2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
	ln -sf "tls_config_set_protocols.3" "$(DESTDIR)$(mandir)/man3/tls_config_prefer_ciphers_client.3"
	ln -sf "tls_config_set_protocols.3" "$(DESTDIR)$(mandir)/man3/tls_config_prefer_ciphers_server.3"
	ln -sf "tls_config_set_protocols.3" "$(DESTDIR)$(mandir)/man3/tls_config_set_alpn.3"
	ln -sf "tls_config_set_protocols.3" "$(DESTDIR)$(mandir)/man3/tls_config_set_ciphers.3"
	ln -sf "tls_config_set_protocols.3" "$(DESTDIR)$(mandir)/man3/tls_config_set_dheparams.3"
	ln -sf "tls_config_set_protocols.3" "$(DESTDIR)$(mandir)/man3/tls_config_set_ecdhecurves.3"
	ln -sf "tls_config_set_session_id.3" "$(DESTDIR)$(mandir)/man3/tls_config_add_ticket_key.3"
	ln -sf "tls_config_set_session_id.3" "$(DESTDIR)$(mandir)/man3/tls_config_set_session_fd.3"
	ln -sf "tls_config_set_session_id.3" "$(DESTDIR)$(mandir)/man3/tls_config_set_session_lifetime.3"
	ln -sf "tls_config_verify.3" "$(DESTDIR)$(mandir)/man3/tls_config_insecure_noverifycert.3"
	ln -sf "tls_config_verify.3" "$(DESTDIR)$(mandir)/man3/tls_config_insecure_noverifyname.3"
	ln -sf "tls_config_verify.3" "$(DESTDIR)$(mandir)/man3/tls_config_insecure_noverifytime.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_conn_alpn_selected.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_conn_cipher.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_conn_servername.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_conn_session_resumed.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_peer_cert_chain_pem.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_peer_cert_contains_name.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_peer_cert_hash.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_peer_cert_issuer.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_peer_cert_notafter.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_peer_cert_notbefore.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_peer_cert_provided.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_peer_cert_subject.3"
2513
2514
2515
2516
2517
2518
2519

2520
2521
2522
2523
2524
2525
2526
	-rm -f "$(DESTDIR)$(mandir)/man3/AUTHORITY_INFO_ACCESS_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_OBJECT_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_STRING_TABLE_cleanup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_STRING_TABLE_get.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_STRING_cmp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_STRING_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_STRING_dup.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_STRING_length_set.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_STRING_set.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_STRING_to_UTF8.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_STRING_type.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_BIT_STRING_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_BIT_STRING_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_BMPSTRING_free.3"







>







2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
	-rm -f "$(DESTDIR)$(mandir)/man3/AUTHORITY_INFO_ACCESS_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_OBJECT_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_STRING_TABLE_cleanup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_STRING_TABLE_get.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_STRING_cmp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_STRING_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_STRING_dup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_STRING_get0_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_STRING_length_set.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_STRING_set.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_STRING_to_UTF8.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_STRING_type.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_BIT_STRING_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_BIT_STRING_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_BMPSTRING_free.3"
2643
2644
2645
2646
2647
2648
2649




2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669


















2670
2671
2672

2673
2674
2675
2676
2677
2678
2679
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_set_ssl_mode.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_set_ssl_renegotiate_bytes.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_set_ssl_renegotiate_timeout.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_ssl_copy_session_id.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_ssl_shutdown.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_method_type.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_next.3"




	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDH_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDH_get_ex_new_index.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDH_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_get_ex_new_index.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_get_ex_new_index.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/TYPE_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/TYPE_get_ex_new_index.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/TYPE_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/UI_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/UI_get_ex_new_index.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/UI_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_get_ex_new_index.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_set_ex_data.3"


















	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_free_all.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_set.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_vfree.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_snprintf.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_vprintf.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_vsnprintf.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_pop.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_gets.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_puts.3"







>
>
>
>




















>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>



>







2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_set_ssl_mode.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_set_ssl_renegotiate_bytes.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_set_ssl_renegotiate_timeout.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_ssl_copy_session_id.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_ssl_shutdown.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_method_type.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_next.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_get_shutdown.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_set_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_set_init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_set_shutdown.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDH_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDH_get_ex_new_index.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDH_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_get_ex_new_index.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_get_ex_new_index.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/TYPE_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/TYPE_get_ex_new_index.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/TYPE_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/UI_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/UI_get_ex_new_index.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/UI_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_get_ex_new_index.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_get_new_index.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_meth_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_meth_get_callback_ctrl.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_meth_get_create.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_meth_get_ctrl.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_meth_get_destroy.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_meth_get_gets.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_meth_get_puts.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_meth_get_read.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_meth_get_write.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_meth_set_callback_ctrl.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_meth_set_create.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_meth_set_ctrl.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_meth_set_destroy.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_meth_set_gets.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_meth_set_puts.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_meth_set_read.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_meth_set_write.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_free_all.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_set.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_up_ref.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_vfree.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_snprintf.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_vprintf.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_vsnprintf.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_pop.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_gets.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_puts.3"
2783
2784
2785
2786
2787
2788
2789



2790
2791
2792
2793
2794
2795
2796
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_is_one.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_is_word.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_is_zero.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_ucmp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_dup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_with_flags.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_GENCB_call.3"



	-rm -f "$(DESTDIR)$(mandir)/man3/BN_GENCB_set.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_GENCB_set_old.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_generate_prime_ex.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_is_prime.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_is_prime_ex.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_is_prime_fasttest.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_is_prime_fasttest_ex.3"







>
>
>







3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_is_one.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_is_word.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_is_zero.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_ucmp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_dup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_with_flags.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_GENCB_call.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_GENCB_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_GENCB_get_arg.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_GENCB_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_GENCB_set.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_GENCB_set_old.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_generate_prime_ex.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_is_prime.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_is_prime_ex.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_is_prime_fasttest.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_is_prime_fasttest_ex.3"
2903
2904
2905
2906
2907
2908
2909








2910
2911
2912
2913
2914
2915
2916

2917
2918
2919
2920
2921
2922
2923
2924


2925
2926







2927
2928




2929
2930
2931
2932
2933
2934
2935
2936
2937


2938
2939
2940
2941
2942
2943
2944
	-rm -f "$(DESTDIR)$(mandir)/man3/DES_set_odd_parity.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DES_string_to_2keys.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DES_string_to_key.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DES_xcbc_encrypt.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_compute_key.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_check.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_generate_parameters_ex.3"








	-rm -f "$(DESTDIR)$(mandir)/man3/DH_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_OpenSSL.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_get_default_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_new_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_set_default_method.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/CRL_DIST_POINTS_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/CRL_DIST_POINTS_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DIST_POINT_NAME_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DIST_POINT_NAME_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DIST_POINT_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ISSUING_DIST_POINT_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ISSUING_DIST_POINT_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_SIG_free.3"


	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_do_verify.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_generate_parameters_ex.3"







	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_set_ex_data.3"




	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_OpenSSL.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_get_default_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_new_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_set_default_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_sign_setup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_verify.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_OpenSSL.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_SIG_free.3"


	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_do_sign.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_do_sign_ex.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_do_verify.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_get_default_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_set_default_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_set_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_sign.3"







>
>
>
>
>
>
>
>







>








>
>


>
>
>
>
>
>
>


>
>
>
>









>
>







3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
	-rm -f "$(DESTDIR)$(mandir)/man3/DES_set_odd_parity.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DES_string_to_2keys.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DES_string_to_key.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DES_xcbc_encrypt.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_compute_key.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_check.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_generate_parameters_ex.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_clear_flags.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_get0_engine.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_get0_key.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_set0_key.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_set0_pqg.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_set_flags.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_set_length.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_test_flags.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_OpenSSL.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_get_default_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_new_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_set_default_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_bits.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/CRL_DIST_POINTS_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/CRL_DIST_POINTS_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DIST_POINT_NAME_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DIST_POINT_NAME_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DIST_POINT_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ISSUING_DIST_POINT_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ISSUING_DIST_POINT_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_SIG_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_SIG_get0.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_SIG_set0.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_do_verify.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_generate_parameters_ex.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_clear_flags.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_get0_engine.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_get0_key.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_set0_key.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_set0_pqg.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_set_flags.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_test_flags.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_meth_dup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_meth_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_meth_set_finish.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_meth_set_sign.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_OpenSSL.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_get_default_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_new_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_set_default_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_sign_setup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_verify.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_OpenSSL.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_SIG_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_SIG_get0.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_SIG_set0.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_do_sign.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_do_sign_ex.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_do_verify.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_get_default_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_set_default_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_set_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_sign.3"
3094
3095
3096
3097
3098
3099
3100

3101
3102


3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_block_size.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_cleanup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_copy.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_copy_ex.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_create.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_ctrl.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_destroy.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_md.3"


	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_size.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_type.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_block_size.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_pkey_type.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_size.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_type.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_dss.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_dss1.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_get_digestbyname.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_get_digestbynid.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_get_digestbyobj.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_md2.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_md5.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_md5_sha1.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_md_null.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_ripemd160.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_sha1.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_sha224.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_sha256.3"







>


>
>











<







3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424

3425
3426
3427
3428
3429
3430
3431
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_block_size.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_cleanup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_copy.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_copy_ex.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_create.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_ctrl.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_destroy.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_md.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_reset.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_size.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_type.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_block_size.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_pkey_type.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_size.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_type.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_dss.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_dss1.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_get_digestbyname.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_get_digestbynid.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_get_digestbyobj.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_md5.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_md5_sha1.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_md_null.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_ripemd160.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_sha1.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_sha224.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_sha256.3"
3141
3142
3143
3144
3145
3146
3147


3148
3149
3150
3151
3152
3153
3154
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_get_app_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_iv_length.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_key_length.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_mode.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_nid.3"


	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_set_app_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_set_key_length.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_set_padding.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_type.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_asn1_to_param.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_block_size.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_flags.3"







>
>







3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_get_app_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_iv_length.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_key_length.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_mode.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_nid.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_rand_key.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_reset.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_set_app_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_set_key_length.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_set_padding.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_type.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_asn1_to_param.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_block_size.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_flags.3"
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252













3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268


















3269

3270
3271
3272
3273
3274
3275
3276




3277
3278
3279
3280
3281
3282
3283
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_rc2_cbc.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_rc2_cfb.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_rc2_ecb.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_rc2_ofb.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_rc4.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_rc4_40.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_rc4_hmac_md5.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_rc5_32_12_16_cbc.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_rc5_32_12_16_cfb.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_rc5_32_12_16_ecb.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_rc5_32_12_16_ofb.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_OpenFinal.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_OpenUpdate.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_ctrl_str.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_dh_paramgen_generator.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_dh_paramgen_prime_len.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_dsa_paramgen_bits.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_ec_paramgen_curve_nid.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_rsa_keygen_bits.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_rsa_keygen_pubexp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_rsa_padding.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_rsa_pss_saltlen.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_signature_md.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_dup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_new_id.3"













	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_cmp_parameters.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_copy_parameters.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_missing_parameters.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_decrypt_init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_derive_init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_derive_set_peer.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_encrypt_init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_get_app_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_get_cb.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_get_keygen_info.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_app_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_cb.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_gen_cb.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_keygen_init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_paramgen.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_paramgen_init.3"


















	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_free.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_print_params.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_print_public.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_assign_DH.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_assign_DSA.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_assign_EC_KEY.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_assign_RSA.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_base_id.3"




	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get1_DH.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get1_DSA.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get1_EC_KEY.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get1_RSA.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_id.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_set1_DH.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_set1_DSA.3"







<
<
<
<















>
>
>
>
>
>
>
>
>
>
>
>
>
















>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

>







>
>
>
>







3539
3540
3541
3542
3543
3544
3545




3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_rc2_cbc.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_rc2_cfb.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_rc2_ecb.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_rc2_ofb.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_rc4.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_rc4_40.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_rc4_hmac_md5.3"




	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_OpenFinal.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_OpenUpdate.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_ctrl_str.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_dh_paramgen_generator.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_dh_paramgen_prime_len.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_dsa_paramgen_bits.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_ec_paramgen_curve_nid.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_rsa_keygen_bits.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_rsa_keygen_pubexp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_rsa_padding.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_rsa_pss_saltlen.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_signature_md.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_dup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_new_id.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_find.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_find_str.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_get0.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_get0_info.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_add0.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_add_alias.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_copy.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_set_ctrl.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_set_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_set_param.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_set_private.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_set_public.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_cmp_parameters.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_copy_parameters.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_missing_parameters.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_decrypt_init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_derive_init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_derive_set_peer.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_encrypt_init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_get_app_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_get_cb.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_get_keygen_info.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_app_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_cb.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_gen_cb.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_keygen_init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_paramgen.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_paramgen_init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_add0.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_copy.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_find.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_cleanup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_copy.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_ctrl.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_decrypt.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_derive.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_encrypt.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_keygen.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_paramgen.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_sign.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_signctx.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_verify.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_verify_recover.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_verifyctx.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_up_ref.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_print_params.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_print_public.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_assign_DH.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_assign_DSA.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_assign_EC_KEY.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_assign_RSA.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_base_id.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get0_DH.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get0_DSA.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get0_EC_KEY.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get0_RSA.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get1_DH.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get1_DSA.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get1_EC_KEY.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get1_RSA.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_id.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_set1_DH.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_set1_DSA.3"
3301
3302
3303
3304
3305
3306
3307


3308


3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
	-rm -f "$(DESTDIR)$(mandir)/man3/GENERAL_NAMES_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/GENERAL_NAMES_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/GENERAL_NAME_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OTHERNAME_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OTHERNAME_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_CTX_cleanup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_CTX_copy.3"


	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_CTX_init.3"


	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_CTX_set_flags.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_Final.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_Init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_Init_ex.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_Update.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_cleanup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_size.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/MD2.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/MD2_Final.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/MD2_Init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/MD2_Update.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/MD4.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/MD4_Final.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/MD4_Init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/MD4_Update.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/MD5_Final.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/MD5_Init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/MD5_Update.3"







>
>

>
>







<
<
<
<







3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663




3664
3665
3666
3667
3668
3669
3670
	-rm -f "$(DESTDIR)$(mandir)/man3/GENERAL_NAMES_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/GENERAL_NAMES_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/GENERAL_NAME_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OTHERNAME_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OTHERNAME_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_CTX_cleanup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_CTX_copy.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_CTX_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_CTX_get_md.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_CTX_init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_CTX_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_CTX_reset.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_CTX_set_flags.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_Final.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_Init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_Init_ex.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_Update.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_cleanup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_size.3"




	-rm -f "$(DESTDIR)$(mandir)/man3/MD4.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/MD4_Final.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/MD4_Init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/MD4_Update.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/MD5_Final.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/MD5_Init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/MD5_Update.3"
3366
3367
3368
3369
3370
3371
3372

3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388

3389
3390
3391
3392
3393
3394
3395




3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407





















3408
3409
3410
3411
3412
3413
3414
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_check_nonce.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_copy_nonce.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_CERTSTATUS_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_CERTSTATUS_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_REVOKEDINFO_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_REVOKEDINFO_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_SINGLERESP_free.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_SINGLERESP_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_check_validity.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_resp_count.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_resp_find.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_resp_get0.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_single_get0_status.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_BASICRESP_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_BASICRESP_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_RESPBYTES_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_RESPBYTES_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_RESPDATA_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_RESPDATA_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_RESPID_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_RESPID_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_RESPONSE_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_RESPONSE_new.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_response_create.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_response_get1_basic.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_REQ_CTX_add1_header.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_REQ_CTX_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_REQ_CTX_set1_req.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_sendreq_bio.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_sendreq_nbio.3"




	-rm -f "$(DESTDIR)$(mandir)/man3/SSLeay.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSLeay_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OPENSSL_no_config.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_add_oid_module.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_add_conf_module.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/CRYPTO_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/CRYPTO_malloc.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/CRYPTO_realloc.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/CRYPTO_strdup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OPENSSL_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OPENSSL_realloc.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OPENSSL_strdup.3"





















	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_cleanup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OpenSSL_add_all_ciphers.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OpenSSL_add_all_digests.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/PEM_do_header.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/PEM_get_EVP_CIPHER_INFO.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/PEM_read_bio.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/PEM_write.3"







>
















>







>
>
>
>












>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_check_nonce.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_copy_nonce.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_CERTSTATUS_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_CERTSTATUS_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_REVOKEDINFO_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_REVOKEDINFO_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_SINGLERESP_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_SINGLERESP_get0_id.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_SINGLERESP_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_check_validity.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_resp_count.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_resp_find.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_resp_get0.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_single_get0_status.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_BASICRESP_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_BASICRESP_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_RESPBYTES_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_RESPBYTES_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_RESPDATA_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_RESPDATA_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_RESPID_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_RESPID_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_RESPONSE_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_RESPONSE_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_basic_sign.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_response_create.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_response_get1_basic.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_REQ_CTX_add1_header.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_REQ_CTX_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_REQ_CTX_set1_req.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_sendreq_bio.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_sendreq_nbio.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/LIBRESSL_VERSION_NUMBER.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/LIBRESSL_VERSION_TEXT.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OpenSSL_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OpenSSL_version_num.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSLeay.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSLeay_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OPENSSL_no_config.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_add_oid_module.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_add_conf_module.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/CRYPTO_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/CRYPTO_malloc.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/CRYPTO_realloc.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/CRYPTO_strdup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OPENSSL_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OPENSSL_realloc.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OPENSSL_strdup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_delete.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_delete_ptr.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_dup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_find.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_find_ex.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_insert.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_is_sorted.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_new_null.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_num.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_pop.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_pop_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_push.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_set.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_set_cmp_func.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_shift.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_sort.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_unshift.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_value.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_zero.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_cleanup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OpenSSL_add_all_ciphers.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OpenSSL_add_all_digests.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/PEM_do_header.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/PEM_get_EVP_CIPHER_INFO.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/PEM_read_bio.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/PEM_write.3"
3543
3544
3545
3546
3547
3548
3549

3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563








3564
3565
3566
3567
3568





3569
3570
3571
3572
3573
3574
3575
	-rm -f "$(DESTDIR)$(mandir)/man3/POLICY_MAPPING_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/USERNOTICE_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/USERNOTICE_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/PROXY_CERT_INFO_EXTENSION_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/PROXY_CERT_INFO_EXTENSION_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/PROXY_POLICY_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RAND_cleanup.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/RAND_seed.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RAND_status.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RAND_pseudo_bytes.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RAND_file_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RAND_write_file.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RAND_SSLeay.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RAND_get_rand_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RC4_set_key.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RIPEMD160_Final.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RIPEMD160_Init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RIPEMD160_Update.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_PSS_PARAMS_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_blinding_off.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_generate_key_ex.3"








	-rm -f "$(DESTDIR)$(mandir)/man3/CRYPTO_EX_dup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/CRYPTO_EX_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/CRYPTO_EX_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_set_ex_data.3"





	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_padding_add_PKCS1_OAEP.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_padding_add_PKCS1_type_2.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_padding_add_none.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_padding_check_PKCS1_OAEP.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_padding_check_PKCS1_type_1.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_padding_check_PKCS1_type_2.3"







>














>
>
>
>
>
>
>
>





>
>
>
>
>







3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
	-rm -f "$(DESTDIR)$(mandir)/man3/POLICY_MAPPING_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/USERNOTICE_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/USERNOTICE_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/PROXY_CERT_INFO_EXTENSION_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/PROXY_CERT_INFO_EXTENSION_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/PROXY_POLICY_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RAND_cleanup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RAND_poll.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RAND_seed.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RAND_status.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RAND_pseudo_bytes.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RAND_file_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RAND_write_file.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RAND_SSLeay.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RAND_get_rand_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RC4_set_key.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RIPEMD160_Final.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RIPEMD160_Init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RIPEMD160_Update.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_PSS_PARAMS_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_blinding_off.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_generate_key_ex.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_clear_flags.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_get0_crt_params.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_get0_factors.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_set0_crt_params.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_set0_factors.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_set0_key.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_set_flags.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_test_flags.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/CRYPTO_EX_dup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/CRYPTO_EX_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/CRYPTO_EX_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_meth_dup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_meth_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_meth_set_finish.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_meth_set_priv_dec.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_meth_set_priv_enc.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_padding_add_PKCS1_OAEP.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_padding_add_PKCS1_type_2.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_padding_add_none.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_padding_check_PKCS1_OAEP.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_padding_check_PKCS1_type_1.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_padding_check_PKCS1_type_2.3"
3590
3591
3592
3593
3594
3595
3596

3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616

3617




3618

3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635

3636
3637
3638
3639
3640
3641
3642
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_get_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_new_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_null_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_set_default_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_set_default_openssl_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_verify.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_verify_ASN1_OCTET_STRING.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/SHA1_Final.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA1_Init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA1_Update.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA224.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA224_Final.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA224_Init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA224_Update.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA256.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA256_Final.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA256_Init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA256_Update.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA384.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA384_Final.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA384_Init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA384_Update.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA512.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA512_Final.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA512_Init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA512_Update.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_description.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_get_bits.3"




	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_get_version.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_COMP_get_compression_methods.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_clear_extra_chain_certs.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_remove_session.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_callback_ctrl.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_callback_ctrl.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_ctrl.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_verify_callback.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_verify_depth.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_verify_callback.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_verify_depth.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_verify_mode.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_default_verify_paths.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DTLSv1_client_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DTLSv1_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DTLSv1_server_method.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/SSLv23_client_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSLv23_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSLv23_server_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/TLS_client_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/TLS_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/TLS_server_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/TLSv1_1_client_method.3"







>




















>

>
>
>
>

>

















>







3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_get_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_new_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_null_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_set_default_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_set_default_openssl_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_verify.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_verify_ASN1_OCTET_STRING.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_bits.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA1_Final.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA1_Init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA1_Update.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA224.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA224_Final.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA224_Init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA224_Update.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA256.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA256_Final.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA256_Init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA256_Update.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA384.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA384_Final.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA384_Init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA384_Update.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA512.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA512_Final.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA512_Init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA512_Update.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_description.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_get_auth_nid.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_get_bits.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_get_cipher_nid.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_get_digest_nid.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_get_id.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_get_kx_nid.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_get_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_is_aead.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_COMP_get_compression_methods.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_clear_extra_chain_certs.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_remove_session.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_callback_ctrl.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_callback_ctrl.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_ctrl.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_verify_callback.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_verify_depth.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_verify_callback.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_verify_depth.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_verify_mode.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_default_verify_paths.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DTLSv1_client_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DTLSv1_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DTLSv1_server_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_up_ref.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSLv23_client_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSLv23_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSLv23_server_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/TLS_client_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/TLS_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/TLS_server_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/TLSv1_1_client_method.3"
3693
3694
3695
3696
3697
3698
3699


3700


3701
3702
3703
3704
3705
3706
3707
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_generate_session_id.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_info_callback.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_info_callback.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_info_callback.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_max_cert_list.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_max_cert_list.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_max_cert_list.3"


	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_max_proto_version.3"


	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_max_proto_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_min_proto_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_mode.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_mode.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_mode.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_msg_callback_arg.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_msg_callback.3"







>
>

>
>







4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_generate_session_id.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_info_callback.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_info_callback.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_info_callback.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_max_cert_list.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_max_cert_list.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_max_cert_list.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_max_proto_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_min_proto_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_max_proto_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_max_proto_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_min_proto_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_max_proto_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_min_proto_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_mode.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_mode.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_mode.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_msg_callback_arg.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_msg_callback.3"
3724
3725
3726
3727
3728
3729
3730


3731
3732
3733
3734



3735
3736
3737
3738
3739
3740
3741
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_ssl_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_ssl_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_timeout.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_tlsext_servername_arg.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_servername.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_servername_type.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_tlsext_host_name.3"


	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_tlsext_status_arg.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_tlsext_status_ocsp_resp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_tlsext_status_ocsp_resp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_tlsext_status_type.3"



	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_tmp_dh.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_tmp_dh.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_tmp_dh_callback.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_need_tmp_RSA.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_tmp_rsa.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_need_tmp_rsa.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_tmp_rsa.3"







>
>




>
>
>







4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_ssl_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_ssl_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_timeout.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_tlsext_servername_arg.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_servername.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_servername_type.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_tlsext_host_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_tlsext_status_arg.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_tlsext_status_cb.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_tlsext_status_arg.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_tlsext_status_ocsp_resp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_tlsext_status_ocsp_resp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_tlsext_status_type.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_selected_srtp_profile.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_srtp_profiles.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_tlsext_use_srtp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_tmp_dh.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_tmp_dh.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_tmp_dh_callback.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_need_tmp_RSA.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_tmp_rsa.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_need_tmp_rsa.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_tmp_rsa.3"
3761
3762
3763
3764
3765
3766
3767

3768
3769

3770
3771
3772
3773
3774
3775
3776

3777

3778
3779
3780
3781

3782
3783


3784
3785
3786
3787
3788
3789
3790
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_use_PrivateKey_file.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_use_RSAPrivateKey.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_use_RSAPrivateKey_ASN1.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_use_RSAPrivateKey_file.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_use_certificate.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_use_certificate_ASN1.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_use_certificate_file.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_SESSION_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_SESSION_set_ex_data.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_SESSION_get_timeout.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_SESSION_set_time.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_SESSION_set_timeout.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_time.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_timeout.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_time.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_timeout.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_SESSION_print_fp.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_alert_desc_string.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_alert_desc_string_long.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_alert_type_string_long.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_privatekey.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_cipher_list.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_client_CA_list.3"


	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_cipher.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_cipher_bits.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_cipher_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_cipher_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_rfd.3"







>


>







>

>




>


>
>







4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_use_PrivateKey_file.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_use_RSAPrivateKey.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_use_RSAPrivateKey_ASN1.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_use_RSAPrivateKey_file.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_use_certificate.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_use_certificate_ASN1.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_use_certificate_file.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_SESSION_up_ref.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_SESSION_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_SESSION_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_SESSION_set1_id.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_SESSION_get_timeout.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_SESSION_set_time.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_SESSION_set_timeout.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_time.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_timeout.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_time.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_timeout.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_SESSION_get_ticket_lifetime_hint.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_SESSION_print_fp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_SESSION_get0_id_context.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_alert_desc_string.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_alert_desc_string_long.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_alert_type_string_long.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_privatekey.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_ciphers.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_cipher_list.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_client_CA_list.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_SESSION_get_master_key.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_server_random.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_cipher.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_cipher_bits.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_cipher_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_cipher_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_rfd.3"
3799
3800
3801
3802
3803
3804
3805

3806
3807
3808
3809
3810
3811

3812


3813
3814
3815
3816
3817
3818
3819
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_is_init_finished.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_state.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OpenSSL_add_ssl_algorithms.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSLeay_add_ssl_algorithms.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_add_dir_cert_subjects_to_stack.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_add_file_cert_subjects_to_stack.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_clear_num_renegotiations.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_total_renegotiations.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_peek.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_renegotiate_abbreviated.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_renegotiate_pending.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_rstate_string_long.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set1_param.3"


	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_accept_state.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_rfd.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_wfd.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_max_send_fragment.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_shutdown.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_ecdh_auto.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_tmp_ecdh.3"







>






>

>
>







4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_is_init_finished.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_state.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OpenSSL_add_ssl_algorithms.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSLeay_add_ssl_algorithms.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_add_dir_cert_subjects_to_stack.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_add_file_cert_subjects_to_stack.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_up_ref.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_clear_num_renegotiations.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_total_renegotiations.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_peek.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_renegotiate_abbreviated.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_renegotiate_pending.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_rstate_string_long.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get0_param.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set1_param.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get0_param.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_is_server.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_accept_state.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_rfd.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_wfd.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_max_send_fragment.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_shutdown.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_ecdh_auto.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_tmp_ecdh.3"
3888
3889
3890
3891
3892
3893
3894

3895
3896

3897
3898

3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917

3918

3919
3920
3921
3922
3923
3924
3925
	-rm -f "$(DESTDIR)$(mandir)/man3/UI_process.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/UI_set_default_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/UI_set_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509V3_EXT_d2i.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509V3_EXT_i2d.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509V3_add1_i2d.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_add1_ext_i2d.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_get_ext_d2i.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REVOKED_add1_ext_i2d.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REVOKED_get_ext_d2i.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_add1_ext_i2d.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/X509_get_ext_d2i.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_ALGOR_cmp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_ALGOR_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_ALGOR_get0.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_ALGOR_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_ALGOR_set0.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_ALGOR_set_md.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_ATTRIBUTE_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CERT_AUX_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CERT_AUX_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CINF_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VAL_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VAL_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_add0_revoked.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_get0_by_cert.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_get_REVOKED.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_sort.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_INFO_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_INFO_new.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_free.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_create_by_NID.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_create_by_OBJ.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_get_critical.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_get_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_get_object.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_new.3"







>


>


>



















>

>







4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
	-rm -f "$(DESTDIR)$(mandir)/man3/UI_process.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/UI_set_default_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/UI_set_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509V3_EXT_d2i.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509V3_EXT_i2d.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509V3_add1_i2d.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_add1_ext_i2d.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_get0_extensions.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_get_ext_d2i.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REVOKED_add1_ext_i2d.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REVOKED_get0_extensions.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REVOKED_get_ext_d2i.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_add1_ext_i2d.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_get0_extensions.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_get_ext_d2i.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_ALGOR_cmp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_ALGOR_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_ALGOR_get0.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_ALGOR_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_ALGOR_set0.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_ALGOR_set_md.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_ATTRIBUTE_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CERT_AUX_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CERT_AUX_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CINF_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VAL_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VAL_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_add0_revoked.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_get0_by_cert.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_get_REVOKED.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_sort.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_INFO_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_INFO_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_dup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_up_ref.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_create_by_NID.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_create_by_OBJ.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_get_critical.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_get_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_get_object.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_new.3"
3946
3947
3948
3949
3950
3951
3952






3953
3954

3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966

3967


3968
3969
3970


3971
3972
3973
3974
3975
3976
3977
3978
3979
3980


3981
3982
3983


3984
3985
3986
3987
3988












3989
3990


3991





3992
3993







3994
3995

3996
3997
3998

3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010















4011
4012

4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027

4028
4029
4030
4031
4032
4033
4034
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_get_index_by_OBJ.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_get_text_by_NID.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_get_text_by_OBJ.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_oneline.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_print.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_print_ex_fp.3"






	-rm -f "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_get.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_get0_param.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_set.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_set0_param.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/d2i_PUBKEY.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/d2i_PUBKEY_bio.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/d2i_PUBKEY_fp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/i2d_PUBKEY.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/i2d_PUBKEY_bio.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/i2d_PUBKEY_fp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_INFO_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_INFO_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_free.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REVOKED_free.3"


	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REVOKED_set_revocationDate.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REVOKED_set_serialNumber.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_SIG_free.3"


	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get1_chain.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get_current_cert.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get_error_depth.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set_error.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_verify_cert_error_string.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_cleanup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get0_param.3"


	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set0_crls.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set0_param.3"


	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set_cert.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set_chain.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set_default.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_trusted_stack.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_set_default_paths.3"












	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_set_verify_cb.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_add0_policy.3"


	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_clear_flags.3"





	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_get_depth.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_get_flags.3"







	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set1_policies.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set_depth.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set_purpose.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set_time.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set_trust.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/X509_check_email.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_check_ip.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_check_ip_asc.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_check_private_key.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_cmp_current_time.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_time_adj.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_time_adj_ex.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/PKCS7_ISSUER_AND_SERIAL_digest.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_digest.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_digest.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_digest.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_pubkey_digest.3"















	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_get_pubkey.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_set_pubkey.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/X509_get_X509_PUBKEY.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_set_pubkey.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_set_serialNumber.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_get_issuer.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_set_issuer_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_get_subject_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_set_subject_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_get_issuer_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_set_issuer_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_set_subject_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_get_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_set_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_get_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_set_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_set_version.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/X509_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_up_ref.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_sign.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_sign_ctx.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_verify.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_sign.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_sign_ctx.3"







>
>
>
>
>
>


>












>

>
>



>
>










>
>



>
>





>
>
>
>
>
>
>
>
>
>
>
>


>
>

>
>
>
>
>


>
>
>
>
>
>
>


>



>












>
>
>
>
>
>
>
>
>
>
>
>
>
>
>


>















>







4364
4365
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
4379
4380
4381
4382
4383
4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395
4396
4397
4398
4399
4400
4401
4402
4403
4404
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
4443
4444
4445
4446
4447
4448
4449
4450
4451
4452
4453
4454
4455
4456
4457
4458
4459
4460
4461
4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4507
4508
4509
4510
4511
4512
4513
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_get_index_by_OBJ.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_get_text_by_NID.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_get_text_by_OBJ.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_oneline.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_print.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_print_ex_fp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_OBJECT_free_contents.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_OBJECT_get0_X509_CRL.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_OBJECT_idx_by_subject.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_OBJECT_retrieve_by_subject.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_OBJECT_retrieve_match.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_OBJECT_up_ref_count.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_get.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_get0.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_get0_param.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_set.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_set0_param.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/d2i_PUBKEY.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/d2i_PUBKEY_bio.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/d2i_PUBKEY_fp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/i2d_PUBKEY.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/i2d_PUBKEY_bio.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/i2d_PUBKEY_fp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_INFO_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_INFO_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REVOKED_dup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REVOKED_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REVOKED_get0_revocationDate.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REVOKED_get0_serialNumber.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REVOKED_set_revocationDate.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REVOKED_set_serialNumber.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_SIG_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get0_cert.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get0_chain.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get1_chain.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get_current_cert.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get_error_depth.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set_error.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_verify_cert_error_string.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_cleanup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get0_param.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get0_store.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get0_untrusted.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set0_crls.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set0_param.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set0_trusted_stack.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set0_untrusted.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set_cert.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set_chain.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set_default.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_trusted_stack.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_set_default_paths.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_up_ref.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_add_cert.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_add_crl.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_get0_objects.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_get_ex_new_index.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_set_depth.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_set_flags.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_set_purpose.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_set_trust.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_set_verify_cb.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_add0_policy.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_add0_table.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_add1_host.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_clear_flags.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_get0.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_get0_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_get0_peername.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_get_count.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_get_depth.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_get_flags.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_lookup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set1_email.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set1_host.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set1_ip.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set1_ip_asc.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set1_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set1_policies.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set_depth.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set_hostflags.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set_purpose.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set_time.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set_trust.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_table_cleanup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_check_email.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_check_ip.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_check_ip_asc.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_check_private_key.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_cmp_current_time.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_time_adj.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_time_adj_ex.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/PKCS7_ISSUER_AND_SERIAL_digest.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_digest.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_digest.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_digest.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_pubkey_digest.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_get0_lastUpdate.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_get0_nextUpdate.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_set1_lastUpdate.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_set1_nextUpdate.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_get0_notAfter.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_getm_notAfter.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_getm_notBefore.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_set1_notAfter.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_set1_notBefore.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_get0_signature.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_get_signature_nid.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_get0_signature.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_get_signature_nid.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_get0_tbs_sigalg.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_get_signature_nid.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_get_pubkey.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_set_pubkey.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_get0_pubkey.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_get_X509_PUBKEY.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_set_pubkey.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_set_serialNumber.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_get_issuer.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_set_issuer_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_get_subject_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_set_subject_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_get_issuer_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_set_issuer_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_set_subject_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_get_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_set_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_get_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_set_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_set_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_chain_up_ref.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_up_ref.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_sign.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_sign_ctx.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_verify.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_sign.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_sign_ctx.3"
4374
4375
4376
4377
4378
4379
4380

4381
4382
4383
4384
4385
4386
4387
	-rm -f "$(DESTDIR)$(mandir)/man3/i2d_X509_CRL_fp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/i2d_X509_REVOKED.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/d2i_X509_EXTENSIONS.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/i2d_X509_EXTENSION.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/i2d_X509_EXTENSIONS.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_ENTRY_dup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_dup.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_hash.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/d2i_X509_NAME_ENTRY.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/i2d_X509_NAME.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/i2d_X509_NAME_ENTRY.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/d2i_X509_REQ_INFO.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/d2i_X509_REQ_bio.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/d2i_X509_REQ_fp.3"







>







4853
4854
4855
4856
4857
4858
4859
4860
4861
4862
4863
4864
4865
4866
4867
	-rm -f "$(DESTDIR)$(mandir)/man3/i2d_X509_CRL_fp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/i2d_X509_REVOKED.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/d2i_X509_EXTENSIONS.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/i2d_X509_EXTENSION.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/i2d_X509_EXTENSIONS.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_ENTRY_dup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_dup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_get0_der.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_hash.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/d2i_X509_NAME_ENTRY.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/i2d_X509_NAME.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/i2d_X509_NAME_ENTRY.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/d2i_X509_REQ_INFO.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/d2i_X509_REQ_bio.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/d2i_X509_REQ_fp.3"
4504
4505
4506
4507
4508
4509
4510








4511
4512
4513
4514
4515
4516
4517
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_ECDSA.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_RAND.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_RSA.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_STORE.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_ciphers.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_digests.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_up_ref.3"








	-rm -f "$(DESTDIR)$(mandir)/man3/get_rfc2409_prime_1024.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/get_rfc2409_prime_768.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/get_rfc3526_prime_1536.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/get_rfc3526_prime_2048.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/get_rfc3526_prime_3072.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/get_rfc3526_prime_4096.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/get_rfc3526_prime_6144.3"







>
>
>
>
>
>
>
>







4984
4985
4986
4987
4988
4989
4990
4991
4992
4993
4994
4995
4996
4997
4998
4999
5000
5001
5002
5003
5004
5005
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_ECDSA.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_RAND.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_RSA.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_STORE.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_ciphers.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_digests.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_up_ref.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_get_rfc2409_prime_1024.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_get_rfc2409_prime_768.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_get_rfc3526_prime_1536.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_get_rfc3526_prime_2048.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_get_rfc3526_prime_3072.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_get_rfc3526_prime_4096.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_get_rfc3526_prime_6144.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_get_rfc3526_prime_8192.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/get_rfc2409_prime_1024.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/get_rfc2409_prime_768.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/get_rfc3526_prime_1536.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/get_rfc3526_prime_2048.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/get_rfc3526_prime_3072.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/get_rfc3526_prime_4096.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/get_rfc3526_prime_6144.3"
4550
4551
4552
4553
4554
4555
4556

4557
4558
4559
4560
4561
4562
4563


4564
4565
4566
4567
4568
4569
4570
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_prefer_ciphers_client.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_prefer_ciphers_server.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_set_alpn.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_set_ciphers.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_set_dheparams.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_set_ecdhecurves.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_add_ticket_key.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_set_session_lifetime.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_insecure_noverifycert.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_insecure_noverifyname.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_insecure_noverifytime.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_conn_alpn_selected.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_conn_cipher.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_conn_servername.3"


	-rm -f "$(DESTDIR)$(mandir)/man3/tls_peer_cert_contains_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_peer_cert_hash.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_peer_cert_issuer.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_peer_cert_notafter.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_peer_cert_notbefore.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_peer_cert_provided.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_peer_cert_subject.3"







>







>
>







5038
5039
5040
5041
5042
5043
5044
5045
5046
5047
5048
5049
5050
5051
5052
5053
5054
5055
5056
5057
5058
5059
5060
5061
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_prefer_ciphers_client.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_prefer_ciphers_server.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_set_alpn.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_set_ciphers.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_set_dheparams.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_set_ecdhecurves.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_add_ticket_key.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_set_session_fd.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_set_session_lifetime.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_insecure_noverifycert.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_insecure_noverifyname.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_insecure_noverifytime.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_conn_alpn_selected.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_conn_cipher.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_conn_servername.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_conn_session_resumed.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_peer_cert_chain_pem.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_peer_cert_contains_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_peer_cert_hash.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_peer_cert_issuer.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_peer_cert_notafter.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_peer_cert_notbefore.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_peer_cert_provided.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_peer_cert_subject.3"
Changes to jni/libressl/man/Makefile.in.
277
278
279
280
281
282
283
284

285
286
287

288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304

305
306
307
308
309

310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347

348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364

365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385

386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401

402
403
404
405
406
407

408
409
410
411
412
413
414
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
EXTRA_DIST = CMakeLists.txt
dist_man3_MANS = BIO_f_ssl.3 DTLSv1_listen.3 PEM_read_SSL_SESSION.3 \

	SSL_CIPHER_get_name.3 SSL_COMP_add_compression_method.3 \
	SSL_CTX_add_extra_chain_cert.3 SSL_CTX_add_session.3 \
	SSL_CTX_ctrl.3 SSL_CTX_flush_sessions.3 SSL_CTX_free.3 \

	SSL_CTX_get_ex_new_index.3 SSL_CTX_get_verify_mode.3 \
	SSL_CTX_load_verify_locations.3 SSL_CTX_new.3 \
	SSL_CTX_sess_number.3 SSL_CTX_sess_set_cache_size.3 \
	SSL_CTX_sess_set_get_cb.3 SSL_CTX_sessions.3 \
	SSL_CTX_set1_groups.3 SSL_CTX_set_alpn_select_cb.3 \
	SSL_CTX_set_cert_store.3 SSL_CTX_set_cert_verify_callback.3 \
	SSL_CTX_set_cipher_list.3 SSL_CTX_set_client_CA_list.3 \
	SSL_CTX_set_client_cert_cb.3 SSL_CTX_set_default_passwd_cb.3 \
	SSL_CTX_set_generate_session_id.3 SSL_CTX_set_info_callback.3 \
	SSL_CTX_set_max_cert_list.3 SSL_CTX_set_min_proto_version.3 \
	SSL_CTX_set_mode.3 SSL_CTX_set_msg_callback.3 \
	SSL_CTX_set_options.3 SSL_CTX_set_quiet_shutdown.3 \
	SSL_CTX_set_read_ahead.3 SSL_CTX_set_session_cache_mode.3 \
	SSL_CTX_set_session_id_context.3 SSL_CTX_set_ssl_version.3 \
	SSL_CTX_set_timeout.3 SSL_CTX_set_tlsext_servername_callback.3 \
	SSL_CTX_set_tlsext_status_cb.3 \
	SSL_CTX_set_tlsext_ticket_key_cb.3 \

	SSL_CTX_set_tmp_dh_callback.3 SSL_CTX_set_tmp_rsa_callback.3 \
	SSL_CTX_set_verify.3 SSL_CTX_use_certificate.3 \
	SSL_SESSION_free.3 SSL_SESSION_get0_peer.3 \
	SSL_SESSION_get_compress_id.3 SSL_SESSION_get_ex_new_index.3 \
	SSL_SESSION_get_id.3 SSL_SESSION_get_time.3 SSL_SESSION_new.3 \

	SSL_SESSION_print.3 SSL_SESSION_set1_id_context.3 SSL_accept.3 \
	SSL_alert_type_string.3 SSL_clear.3 SSL_connect.3 \
	SSL_copy_session_id.3 SSL_do_handshake.3 SSL_dup.3 \
	SSL_dup_CA_list.3 SSL_export_keying_material.3 SSL_free.3 \
	SSL_get_SSL_CTX.3 SSL_get_certificate.3 SSL_get_ciphers.3 \
	SSL_get_client_CA_list.3 SSL_get_current_cipher.3 \
	SSL_get_default_timeout.3 SSL_get_error.3 \
	SSL_get_ex_data_X509_STORE_CTX_idx.3 SSL_get_ex_new_index.3 \
	SSL_get_fd.3 SSL_get_peer_cert_chain.3 \
	SSL_get_peer_certificate.3 SSL_get_rbio.3 \
	SSL_get_server_tmp_key.3 SSL_get_session.3 \
	SSL_get_shared_ciphers.3 SSL_get_state.3 \
	SSL_get_verify_result.3 SSL_get_version.3 SSL_library_init.3 \
	SSL_load_client_CA_file.3 SSL_new.3 SSL_num_renegotiations.3 \
	SSL_pending.3 SSL_read.3 SSL_renegotiate.3 SSL_rstate_string.3 \
	SSL_session_reused.3 SSL_set1_param.3 SSL_set_bio.3 \
	SSL_set_connect_state.3 SSL_set_fd.3 \
	SSL_set_max_send_fragment.3 SSL_set_session.3 \
	SSL_set_shutdown.3 SSL_set_tmp_ecdh.3 SSL_set_verify_result.3 \
	SSL_shutdown.3 SSL_state_string.3 SSL_want.3 SSL_write.3 \
	d2i_SSL_SESSION.3 ssl.3 ACCESS_DESCRIPTION_new.3 \
	ASN1_OBJECT_new.3 ASN1_STRING_TABLE_add.3 ASN1_STRING_length.3 \
	ASN1_STRING_new.3 ASN1_STRING_print_ex.3 ASN1_TIME_set.3 \
	ASN1_TYPE_get.3 ASN1_generate_nconf.3 ASN1_item_d2i.3 \
	ASN1_item_new.3 ASN1_time_parse.3 AUTHORITY_KEYID_new.3 \
	BASIC_CONSTRAINTS_new.3 BF_set_key.3 BIO_ctrl.3 BIO_f_base64.3 \
	BIO_f_buffer.3 BIO_f_cipher.3 BIO_f_md.3 BIO_f_null.3 \
	BIO_find_type.3 BIO_get_ex_new_index.3 BIO_new.3 BIO_printf.3 \
	BIO_push.3 BIO_read.3 BIO_s_accept.3 BIO_s_bio.3 \
	BIO_s_connect.3 BIO_s_fd.3 BIO_s_file.3 BIO_s_mem.3 \
	BIO_s_null.3 BIO_s_socket.3 BIO_set_callback.3 \
	BIO_should_retry.3 BN_BLINDING_new.3 BN_CTX_new.3 \
	BN_CTX_start.3 BN_add.3 BN_add_word.3 BN_bn2bin.3 BN_cmp.3 \
	BN_copy.3 BN_generate_prime.3 BN_get0_nist_prime_521.3 \
	BN_mod_inverse.3 BN_mod_mul_montgomery.3 \
	BN_mod_mul_reciprocal.3 BN_new.3 BN_num_bytes.3 BN_rand.3 \
	BN_set_bit.3 BN_set_flags.3 BN_set_negative.3 BN_swap.3 \
	BN_zero.3 BUF_MEM_new.3 CONF_modules_free.3 \

	CONF_modules_load_file.3 CRYPTO_get_mem_functions.3 \
	CRYPTO_set_ex_data.3 CRYPTO_set_locking_callback.3 \
	DES_set_key.3 DH_generate_key.3 DH_generate_parameters.3 \
	DH_get_ex_new_index.3 DH_new.3 DH_set_method.3 DH_size.3 \
	DIST_POINT_new.3 DSA_SIG_new.3 DSA_do_sign.3 DSA_dup_DH.3 \
	DSA_generate_key.3 DSA_generate_parameters.3 \
	DSA_get_ex_new_index.3 DSA_new.3 DSA_set_method.3 DSA_sign.3 \
	DSA_size.3 ECDSA_SIG_new.3 EC_GFp_simple_method.3 \
	EC_GROUP_copy.3 EC_GROUP_new.3 EC_KEY_new.3 EC_POINT_add.3 \
	EC_POINT_new.3 ERR.3 ERR_GET_LIB.3 ERR_asprintf_error_data.3 \
	ERR_clear_error.3 ERR_error_string.3 ERR_get_error.3 \
	ERR_load_crypto_strings.3 ERR_load_strings.3 \
	ERR_print_errors.3 ERR_put_error.3 ERR_remove_state.3 \
	ERR_set_mark.3 ESS_SIGNING_CERT_new.3 EVP_AEAD_CTX_init.3 \
	EVP_BytesToKey.3 EVP_DigestInit.3 EVP_DigestSignInit.3 \
	EVP_DigestVerifyInit.3 EVP_EncodeInit.3 EVP_EncryptInit.3 \
	EVP_OpenInit.3 EVP_PKEY_CTX_ctrl.3 EVP_PKEY_CTX_new.3 \

	EVP_PKEY_cmp.3 EVP_PKEY_decrypt.3 EVP_PKEY_derive.3 \
	EVP_PKEY_encrypt.3 EVP_PKEY_get_default_digest_nid.3 \
	EVP_PKEY_keygen.3 EVP_PKEY_meth_get0_info.3 EVP_PKEY_new.3 \
	EVP_PKEY_print_private.3 EVP_PKEY_set1_RSA.3 EVP_PKEY_sign.3 \
	EVP_PKEY_verify.3 EVP_PKEY_verify_recover.3 EVP_SealInit.3 \
	EVP_SignInit.3 EVP_VerifyInit.3 EXTENDED_KEY_USAGE_new.3 \
	GENERAL_NAME_new.3 HMAC.3 MD5.3 NAME_CONSTRAINTS_new.3 \
	OBJ_nid2obj.3 OCSP_CRLID_new.3 OCSP_REQUEST_new.3 \
	OCSP_SERVICELOC_new.3 OCSP_cert_to_id.3 \
	OCSP_request_add1_nonce.3 OCSP_resp_find_status.3 \
	OCSP_response_status.3 OCSP_sendreq_new.3 \
	OPENSSL_VERSION_NUMBER.3 OPENSSL_cleanse.3 OPENSSL_config.3 \
	OPENSSL_load_builtin_modules.3 OPENSSL_malloc.3 \
	OpenSSL_add_all_algorithms.3 PEM_bytes_read_bio.3 PEM_read.3 \
	PEM_read_bio_PrivateKey.3 PEM_write_bio_PKCS7_stream.3 \
	PKCS12_SAFEBAG_new.3 PKCS12_create.3 PKCS12_new.3 \
	PKCS12_newpass.3 PKCS12_parse.3 PKCS5_PBKDF2_HMAC.3 \
	PKCS7_decrypt.3 PKCS7_encrypt.3 PKCS7_new.3 PKCS7_sign.3 \
	PKCS7_sign_add_signer.3 PKCS7_verify.3 \
	PKCS8_PRIV_KEY_INFO_new.3 PKEY_USAGE_PERIOD_new.3 \
	POLICYINFO_new.3 PROXY_POLICY_new.3 RAND_add.3 RAND_bytes.3 \

	RAND_load_file.3 RAND_set_rand_method.3 RC4.3 RIPEMD160.3 \
	RSA_PSS_PARAMS_new.3 RSA_blinding_on.3 RSA_check_key.3 \
	RSA_generate_key.3 RSA_get_ex_new_index.3 RSA_new.3 \
	RSA_padding_add_PKCS1_type_1.3 RSA_print.3 \
	RSA_private_encrypt.3 RSA_public_encrypt.3 RSA_set_method.3 \
	RSA_sign.3 RSA_sign_ASN1_OCTET_STRING.3 RSA_size.3 SHA1.3 \
	SMIME_read_PKCS7.3 SMIME_write_PKCS7.3 SXNET_new.3 \
	TS_REQ_new.3 UI_UTIL_read_pw.3 UI_create_method.3 \
	UI_get_string_type.3 UI_new.3 X25519.3 X509V3_get_d2i.3 \
	X509_ALGOR_dup.3 X509_ATTRIBUTE_new.3 X509_CINF_new.3 \
	X509_CRL_get0_by_serial.3 X509_CRL_new.3 \
	X509_EXTENSION_set_object.3 X509_LOOKUP_hash_dir.3 \
	X509_NAME_ENTRY_get_object.3 X509_NAME_add_entry_by_txt.3 \
	X509_NAME_get_index_by_NID.3 X509_NAME_new.3 \
	X509_NAME_print_ex.3 X509_PUBKEY_new.3 X509_REQ_new.3 \
	X509_REVOKED_new.3 X509_SIG_new.3 X509_STORE_CTX_get_error.3 \

	X509_STORE_CTX_get_ex_new_index.3 X509_STORE_CTX_new.3 \
	X509_STORE_CTX_set_verify_cb.3 X509_STORE_load_locations.3 \
	X509_STORE_set1_param.3 X509_STORE_set_verify_cb_func.3 \
	X509_VERIFY_PARAM_set_flags.3 X509_check_ca.3 \
	X509_check_host.3 X509_check_issued.3 X509_check_private_key.3 \
	X509_cmp_time.3 X509_digest.3 X509_get_pubkey.3 \

	X509_get_serialNumber.3 X509_get_subject_name.3 \
	X509_get_version.3 X509_new.3 X509_sign.3 X509_verify_cert.3 \
	X509v3_get_ext_by_NID.3 bn_dump.3 crypto.3 d2i_ASN1_NULL.3 \
	d2i_ASN1_OBJECT.3 d2i_ASN1_OCTET_STRING.3 \
	d2i_ASN1_SEQUENCE_ANY.3 d2i_AUTHORITY_KEYID.3 \
	d2i_BASIC_CONSTRAINTS.3 d2i_DHparams.3 d2i_DIST_POINT.3 \
	d2i_DSAPublicKey.3 d2i_ECPKParameters.3 d2i_ESS_SIGNING_CERT.3 \







|
>
|


>
|
|
|
|
|
|
|
|









>
|
|
|
|
|
>
|




|
|
|
|


















|
|
|
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
|
|
|
|





>
|
|
|









|
|
|
|
|
|
|
|
|
>
|
|
|



|







|
|
>
|
|



|
>







277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
EXTRA_DIST = CMakeLists.txt
dist_man3_MANS = BIO_f_ssl.3 DTLSv1_listen.3 OPENSSL_init_ssl.3 \
	PEM_read_SSL_SESSION.3 SSL_CIPHER_get_name.3 \
	SSL_COMP_add_compression_method.3 \
	SSL_CTX_add_extra_chain_cert.3 SSL_CTX_add_session.3 \
	SSL_CTX_ctrl.3 SSL_CTX_flush_sessions.3 SSL_CTX_free.3 \
	SSL_CTX_get0_certificate.3 SSL_CTX_get_ex_new_index.3 \
	SSL_CTX_get_verify_mode.3 SSL_CTX_load_verify_locations.3 \
	SSL_CTX_new.3 SSL_CTX_sess_number.3 \
	SSL_CTX_sess_set_cache_size.3 SSL_CTX_sess_set_get_cb.3 \
	SSL_CTX_sessions.3 SSL_CTX_set1_groups.3 \
	SSL_CTX_set_alpn_select_cb.3 SSL_CTX_set_cert_store.3 \
	SSL_CTX_set_cert_verify_callback.3 SSL_CTX_set_cipher_list.3 \
	SSL_CTX_set_client_CA_list.3 SSL_CTX_set_client_cert_cb.3 \
	SSL_CTX_set_default_passwd_cb.3 \
	SSL_CTX_set_generate_session_id.3 SSL_CTX_set_info_callback.3 \
	SSL_CTX_set_max_cert_list.3 SSL_CTX_set_min_proto_version.3 \
	SSL_CTX_set_mode.3 SSL_CTX_set_msg_callback.3 \
	SSL_CTX_set_options.3 SSL_CTX_set_quiet_shutdown.3 \
	SSL_CTX_set_read_ahead.3 SSL_CTX_set_session_cache_mode.3 \
	SSL_CTX_set_session_id_context.3 SSL_CTX_set_ssl_version.3 \
	SSL_CTX_set_timeout.3 SSL_CTX_set_tlsext_servername_callback.3 \
	SSL_CTX_set_tlsext_status_cb.3 \
	SSL_CTX_set_tlsext_ticket_key_cb.3 \
	SSL_CTX_set_tlsext_use_srtp.3 SSL_CTX_set_tmp_dh_callback.3 \
	SSL_CTX_set_tmp_rsa_callback.3 SSL_CTX_set_verify.3 \
	SSL_CTX_use_certificate.3 SSL_SESSION_free.3 \
	SSL_SESSION_get0_peer.3 SSL_SESSION_get_compress_id.3 \
	SSL_SESSION_get_ex_new_index.3 SSL_SESSION_get_id.3 \
	SSL_SESSION_get_protocol_version.3 SSL_SESSION_get_time.3 \
	SSL_SESSION_has_ticket.3 SSL_SESSION_new.3 SSL_SESSION_print.3 \
	SSL_SESSION_set1_id_context.3 SSL_accept.3 \
	SSL_alert_type_string.3 SSL_clear.3 SSL_connect.3 \
	SSL_copy_session_id.3 SSL_do_handshake.3 SSL_dup.3 \
	SSL_dup_CA_list.3 SSL_export_keying_material.3 SSL_free.3 \
	SSL_get_SSL_CTX.3 SSL_get_certificate.3 SSL_get_ciphers.3 \
	SSL_get_client_CA_list.3 SSL_get_client_random.3 \
	SSL_get_current_cipher.3 SSL_get_default_timeout.3 \
	SSL_get_error.3 SSL_get_ex_data_X509_STORE_CTX_idx.3 \
	SSL_get_ex_new_index.3 SSL_get_fd.3 SSL_get_peer_cert_chain.3 \
	SSL_get_peer_certificate.3 SSL_get_rbio.3 \
	SSL_get_server_tmp_key.3 SSL_get_session.3 \
	SSL_get_shared_ciphers.3 SSL_get_state.3 \
	SSL_get_verify_result.3 SSL_get_version.3 SSL_library_init.3 \
	SSL_load_client_CA_file.3 SSL_new.3 SSL_num_renegotiations.3 \
	SSL_pending.3 SSL_read.3 SSL_renegotiate.3 SSL_rstate_string.3 \
	SSL_session_reused.3 SSL_set1_param.3 SSL_set_bio.3 \
	SSL_set_connect_state.3 SSL_set_fd.3 \
	SSL_set_max_send_fragment.3 SSL_set_session.3 \
	SSL_set_shutdown.3 SSL_set_tmp_ecdh.3 SSL_set_verify_result.3 \
	SSL_shutdown.3 SSL_state_string.3 SSL_want.3 SSL_write.3 \
	d2i_SSL_SESSION.3 ssl.3 ACCESS_DESCRIPTION_new.3 \
	ASN1_OBJECT_new.3 ASN1_STRING_TABLE_add.3 ASN1_STRING_length.3 \
	ASN1_STRING_new.3 ASN1_STRING_print_ex.3 ASN1_TIME_set.3 \
	ASN1_TYPE_get.3 ASN1_generate_nconf.3 ASN1_item_d2i.3 \
	ASN1_item_new.3 ASN1_time_parse.3 AUTHORITY_KEYID_new.3 \
	BASIC_CONSTRAINTS_new.3 BF_set_key.3 BIO_ctrl.3 BIO_f_base64.3 \
	BIO_f_buffer.3 BIO_f_cipher.3 BIO_f_md.3 BIO_f_null.3 \
	BIO_find_type.3 BIO_get_data.3 BIO_get_ex_new_index.3 \
	BIO_meth_new.3 BIO_new.3 BIO_printf.3 BIO_push.3 BIO_read.3 \
	BIO_s_accept.3 BIO_s_bio.3 BIO_s_connect.3 BIO_s_fd.3 \
	BIO_s_file.3 BIO_s_mem.3 BIO_s_null.3 BIO_s_socket.3 \
	BIO_set_callback.3 BIO_should_retry.3 BN_BLINDING_new.3 \
	BN_CTX_new.3 BN_CTX_start.3 BN_add.3 BN_add_word.3 BN_bn2bin.3 \
	BN_cmp.3 BN_copy.3 BN_generate_prime.3 \
	BN_get0_nist_prime_521.3 BN_mod_inverse.3 \
	BN_mod_mul_montgomery.3 BN_mod_mul_reciprocal.3 BN_new.3 \
	BN_num_bytes.3 BN_rand.3 BN_set_bit.3 BN_set_flags.3 \
	BN_set_negative.3 BN_swap.3 BN_zero.3 BUF_MEM_new.3 \
	CONF_modules_free.3 CONF_modules_load_file.3 \
	CRYPTO_get_mem_functions.3 CRYPTO_set_ex_data.3 \
	CRYPTO_set_locking_callback.3 DES_set_key.3 DH_generate_key.3 \
	DH_generate_parameters.3 DH_get0_pqg.3 DH_get_ex_new_index.3 \
	DH_new.3 DH_set_method.3 DH_size.3 DIST_POINT_new.3 \
	DSA_SIG_new.3 DSA_do_sign.3 DSA_dup_DH.3 DSA_generate_key.3 \
	DSA_generate_parameters.3 DSA_get0_pqg.3 \
	DSA_get_ex_new_index.3 DSA_meth_new.3 DSA_new.3 \
	DSA_set_method.3 DSA_sign.3 DSA_size.3 ECDSA_SIG_new.3 \
	EC_GFp_simple_method.3 EC_GROUP_copy.3 EC_GROUP_new.3 \
	EC_KEY_new.3 EC_POINT_add.3 EC_POINT_new.3 ERR.3 ERR_GET_LIB.3 \
	ERR_asprintf_error_data.3 ERR_clear_error.3 ERR_error_string.3 \
	ERR_get_error.3 ERR_load_crypto_strings.3 ERR_load_strings.3 \
	ERR_print_errors.3 ERR_put_error.3 ERR_remove_state.3 \
	ERR_set_mark.3 ESS_SIGNING_CERT_new.3 EVP_AEAD_CTX_init.3 \
	EVP_BytesToKey.3 EVP_DigestInit.3 EVP_DigestSignInit.3 \
	EVP_DigestVerifyInit.3 EVP_EncodeInit.3 EVP_EncryptInit.3 \
	EVP_OpenInit.3 EVP_PKEY_CTX_ctrl.3 EVP_PKEY_CTX_new.3 \
	EVP_PKEY_asn1_get_count.3 EVP_PKEY_asn1_new.3 EVP_PKEY_cmp.3 \
	EVP_PKEY_decrypt.3 EVP_PKEY_derive.3 EVP_PKEY_encrypt.3 \
	EVP_PKEY_get_default_digest_nid.3 EVP_PKEY_keygen.3 \
	EVP_PKEY_meth_get0_info.3 EVP_PKEY_meth_new.3 EVP_PKEY_new.3 \
	EVP_PKEY_print_private.3 EVP_PKEY_set1_RSA.3 EVP_PKEY_sign.3 \
	EVP_PKEY_verify.3 EVP_PKEY_verify_recover.3 EVP_SealInit.3 \
	EVP_SignInit.3 EVP_VerifyInit.3 EXTENDED_KEY_USAGE_new.3 \
	GENERAL_NAME_new.3 HMAC.3 MD5.3 NAME_CONSTRAINTS_new.3 \
	OBJ_nid2obj.3 OCSP_CRLID_new.3 OCSP_REQUEST_new.3 \
	OCSP_SERVICELOC_new.3 OCSP_cert_to_id.3 \
	OCSP_request_add1_nonce.3 OCSP_resp_find_status.3 \
	OCSP_response_status.3 OCSP_sendreq_new.3 \
	OPENSSL_VERSION_NUMBER.3 OPENSSL_cleanse.3 OPENSSL_config.3 \
	OPENSSL_init_crypto.3 OPENSSL_load_builtin_modules.3 \
	OPENSSL_malloc.3 OPENSSL_sk_new.3 OpenSSL_add_all_algorithms.3 \
	PEM_bytes_read_bio.3 PEM_read.3 PEM_read_bio_PrivateKey.3 \
	PEM_write_bio_PKCS7_stream.3 PKCS12_SAFEBAG_new.3 \
	PKCS12_create.3 PKCS12_new.3 PKCS12_newpass.3 PKCS12_parse.3 \
	PKCS5_PBKDF2_HMAC.3 PKCS7_decrypt.3 PKCS7_encrypt.3 \
	PKCS7_new.3 PKCS7_sign.3 PKCS7_sign_add_signer.3 \
	PKCS7_verify.3 PKCS8_PRIV_KEY_INFO_new.3 \
	PKEY_USAGE_PERIOD_new.3 POLICYINFO_new.3 PROXY_POLICY_new.3 \
	RAND_add.3 RAND_bytes.3 RAND_load_file.3 \
	RAND_set_rand_method.3 RC4.3 RIPEMD160.3 RSA_PSS_PARAMS_new.3 \
	RSA_blinding_on.3 RSA_check_key.3 RSA_generate_key.3 \
	RSA_get0_key.3 RSA_get_ex_new_index.3 RSA_meth_new.3 RSA_new.3 \
	RSA_padding_add_PKCS1_type_1.3 RSA_print.3 \
	RSA_private_encrypt.3 RSA_public_encrypt.3 RSA_set_method.3 \
	RSA_sign.3 RSA_sign_ASN1_OCTET_STRING.3 RSA_size.3 SHA1.3 \
	SMIME_read_PKCS7.3 SMIME_write_PKCS7.3 STACK_OF.3 SXNET_new.3 \
	TS_REQ_new.3 UI_UTIL_read_pw.3 UI_create_method.3 \
	UI_get_string_type.3 UI_new.3 X25519.3 X509V3_get_d2i.3 \
	X509_ALGOR_dup.3 X509_ATTRIBUTE_new.3 X509_CINF_new.3 \
	X509_CRL_get0_by_serial.3 X509_CRL_new.3 \
	X509_EXTENSION_set_object.3 X509_LOOKUP_hash_dir.3 \
	X509_NAME_ENTRY_get_object.3 X509_NAME_add_entry_by_txt.3 \
	X509_NAME_get_index_by_NID.3 X509_NAME_new.3 \
	X509_NAME_print_ex.3 X509_OBJECT_get0_X509.3 X509_PUBKEY_new.3 \
	X509_REQ_new.3 X509_REVOKED_new.3 X509_SIG_new.3 \
	X509_STORE_CTX_get_error.3 X509_STORE_CTX_get_ex_new_index.3 \
	X509_STORE_CTX_new.3 X509_STORE_CTX_set_verify_cb.3 \
	X509_STORE_load_locations.3 X509_STORE_new.3 \
	X509_STORE_set1_param.3 X509_STORE_set_verify_cb_func.3 \
	X509_VERIFY_PARAM_set_flags.3 X509_check_ca.3 \
	X509_check_host.3 X509_check_issued.3 X509_check_private_key.3 \
	X509_cmp_time.3 X509_digest.3 X509_get0_notBefore.3 \
	X509_get0_signature.3 X509_get_pubkey.3 \
	X509_get_serialNumber.3 X509_get_subject_name.3 \
	X509_get_version.3 X509_new.3 X509_sign.3 X509_verify_cert.3 \
	X509v3_get_ext_by_NID.3 bn_dump.3 crypto.3 d2i_ASN1_NULL.3 \
	d2i_ASN1_OBJECT.3 d2i_ASN1_OCTET_STRING.3 \
	d2i_ASN1_SEQUENCE_ANY.3 d2i_AUTHORITY_KEYID.3 \
	d2i_BASIC_CONSTRAINTS.3 d2i_DHparams.3 d2i_DIST_POINT.3 \
	d2i_DSAPublicKey.3 d2i_ECPKParameters.3 d2i_ESS_SIGNING_CERT.3 \
713
714
715
716
717
718
719

720
721
722
723
724
725
726
	ln -sf "ACCESS_DESCRIPTION_new.3" "$(DESTDIR)$(mandir)/man3/AUTHORITY_INFO_ACCESS_new.3"
	ln -sf "ASN1_OBJECT_new.3" "$(DESTDIR)$(mandir)/man3/ASN1_OBJECT_free.3"
	ln -sf "ASN1_STRING_TABLE_add.3" "$(DESTDIR)$(mandir)/man3/ASN1_STRING_TABLE_cleanup.3"
	ln -sf "ASN1_STRING_TABLE_add.3" "$(DESTDIR)$(mandir)/man3/ASN1_STRING_TABLE_get.3"
	ln -sf "ASN1_STRING_length.3" "$(DESTDIR)$(mandir)/man3/ASN1_STRING_cmp.3"
	ln -sf "ASN1_STRING_length.3" "$(DESTDIR)$(mandir)/man3/ASN1_STRING_data.3"
	ln -sf "ASN1_STRING_length.3" "$(DESTDIR)$(mandir)/man3/ASN1_STRING_dup.3"

	ln -sf "ASN1_STRING_length.3" "$(DESTDIR)$(mandir)/man3/ASN1_STRING_length_set.3"
	ln -sf "ASN1_STRING_length.3" "$(DESTDIR)$(mandir)/man3/ASN1_STRING_set.3"
	ln -sf "ASN1_STRING_length.3" "$(DESTDIR)$(mandir)/man3/ASN1_STRING_to_UTF8.3"
	ln -sf "ASN1_STRING_length.3" "$(DESTDIR)$(mandir)/man3/ASN1_STRING_type.3"
	ln -sf "ASN1_STRING_new.3" "$(DESTDIR)$(mandir)/man3/ASN1_BIT_STRING_free.3"
	ln -sf "ASN1_STRING_new.3" "$(DESTDIR)$(mandir)/man3/ASN1_BIT_STRING_new.3"
	ln -sf "ASN1_STRING_new.3" "$(DESTDIR)$(mandir)/man3/ASN1_BMPSTRING_free.3"







>







722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
	ln -sf "ACCESS_DESCRIPTION_new.3" "$(DESTDIR)$(mandir)/man3/AUTHORITY_INFO_ACCESS_new.3"
	ln -sf "ASN1_OBJECT_new.3" "$(DESTDIR)$(mandir)/man3/ASN1_OBJECT_free.3"
	ln -sf "ASN1_STRING_TABLE_add.3" "$(DESTDIR)$(mandir)/man3/ASN1_STRING_TABLE_cleanup.3"
	ln -sf "ASN1_STRING_TABLE_add.3" "$(DESTDIR)$(mandir)/man3/ASN1_STRING_TABLE_get.3"
	ln -sf "ASN1_STRING_length.3" "$(DESTDIR)$(mandir)/man3/ASN1_STRING_cmp.3"
	ln -sf "ASN1_STRING_length.3" "$(DESTDIR)$(mandir)/man3/ASN1_STRING_data.3"
	ln -sf "ASN1_STRING_length.3" "$(DESTDIR)$(mandir)/man3/ASN1_STRING_dup.3"
	ln -sf "ASN1_STRING_length.3" "$(DESTDIR)$(mandir)/man3/ASN1_STRING_get0_data.3"
	ln -sf "ASN1_STRING_length.3" "$(DESTDIR)$(mandir)/man3/ASN1_STRING_length_set.3"
	ln -sf "ASN1_STRING_length.3" "$(DESTDIR)$(mandir)/man3/ASN1_STRING_set.3"
	ln -sf "ASN1_STRING_length.3" "$(DESTDIR)$(mandir)/man3/ASN1_STRING_to_UTF8.3"
	ln -sf "ASN1_STRING_length.3" "$(DESTDIR)$(mandir)/man3/ASN1_STRING_type.3"
	ln -sf "ASN1_STRING_new.3" "$(DESTDIR)$(mandir)/man3/ASN1_BIT_STRING_free.3"
	ln -sf "ASN1_STRING_new.3" "$(DESTDIR)$(mandir)/man3/ASN1_BIT_STRING_new.3"
	ln -sf "ASN1_STRING_new.3" "$(DESTDIR)$(mandir)/man3/ASN1_BMPSTRING_free.3"
843
844
845
846
847
848
849




850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869


















870
871
872

873
874
875
876
877
878
879
	ln -sf "BIO_f_ssl.3" "$(DESTDIR)$(mandir)/man3/BIO_set_ssl_mode.3"
	ln -sf "BIO_f_ssl.3" "$(DESTDIR)$(mandir)/man3/BIO_set_ssl_renegotiate_bytes.3"
	ln -sf "BIO_f_ssl.3" "$(DESTDIR)$(mandir)/man3/BIO_set_ssl_renegotiate_timeout.3"
	ln -sf "BIO_f_ssl.3" "$(DESTDIR)$(mandir)/man3/BIO_ssl_copy_session_id.3"
	ln -sf "BIO_f_ssl.3" "$(DESTDIR)$(mandir)/man3/BIO_ssl_shutdown.3"
	ln -sf "BIO_find_type.3" "$(DESTDIR)$(mandir)/man3/BIO_method_type.3"
	ln -sf "BIO_find_type.3" "$(DESTDIR)$(mandir)/man3/BIO_next.3"




	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/BIO_get_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/BIO_set_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/ECDH_get_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/ECDH_get_ex_new_index.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/ECDH_set_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/ECDSA_get_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/ECDSA_get_ex_new_index.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/ECDSA_set_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/ENGINE_get_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/ENGINE_get_ex_new_index.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/ENGINE_set_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/TYPE_get_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/TYPE_get_ex_new_index.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/TYPE_set_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/UI_get_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/UI_get_ex_new_index.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/UI_set_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/X509_get_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/X509_get_ex_new_index.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/X509_set_ex_data.3"


















	ln -sf "BIO_new.3" "$(DESTDIR)$(mandir)/man3/BIO_free.3"
	ln -sf "BIO_new.3" "$(DESTDIR)$(mandir)/man3/BIO_free_all.3"
	ln -sf "BIO_new.3" "$(DESTDIR)$(mandir)/man3/BIO_set.3"

	ln -sf "BIO_new.3" "$(DESTDIR)$(mandir)/man3/BIO_vfree.3"
	ln -sf "BIO_printf.3" "$(DESTDIR)$(mandir)/man3/BIO_snprintf.3"
	ln -sf "BIO_printf.3" "$(DESTDIR)$(mandir)/man3/BIO_vprintf.3"
	ln -sf "BIO_printf.3" "$(DESTDIR)$(mandir)/man3/BIO_vsnprintf.3"
	ln -sf "BIO_push.3" "$(DESTDIR)$(mandir)/man3/BIO_pop.3"
	ln -sf "BIO_read.3" "$(DESTDIR)$(mandir)/man3/BIO_gets.3"
	ln -sf "BIO_read.3" "$(DESTDIR)$(mandir)/man3/BIO_puts.3"







>
>
>
>




















>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>



>







853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
	ln -sf "BIO_f_ssl.3" "$(DESTDIR)$(mandir)/man3/BIO_set_ssl_mode.3"
	ln -sf "BIO_f_ssl.3" "$(DESTDIR)$(mandir)/man3/BIO_set_ssl_renegotiate_bytes.3"
	ln -sf "BIO_f_ssl.3" "$(DESTDIR)$(mandir)/man3/BIO_set_ssl_renegotiate_timeout.3"
	ln -sf "BIO_f_ssl.3" "$(DESTDIR)$(mandir)/man3/BIO_ssl_copy_session_id.3"
	ln -sf "BIO_f_ssl.3" "$(DESTDIR)$(mandir)/man3/BIO_ssl_shutdown.3"
	ln -sf "BIO_find_type.3" "$(DESTDIR)$(mandir)/man3/BIO_method_type.3"
	ln -sf "BIO_find_type.3" "$(DESTDIR)$(mandir)/man3/BIO_next.3"
	ln -sf "BIO_get_data.3" "$(DESTDIR)$(mandir)/man3/BIO_get_shutdown.3"
	ln -sf "BIO_get_data.3" "$(DESTDIR)$(mandir)/man3/BIO_set_data.3"
	ln -sf "BIO_get_data.3" "$(DESTDIR)$(mandir)/man3/BIO_set_init.3"
	ln -sf "BIO_get_data.3" "$(DESTDIR)$(mandir)/man3/BIO_set_shutdown.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/BIO_get_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/BIO_set_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/ECDH_get_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/ECDH_get_ex_new_index.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/ECDH_set_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/ECDSA_get_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/ECDSA_get_ex_new_index.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/ECDSA_set_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/ENGINE_get_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/ENGINE_get_ex_new_index.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/ENGINE_set_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/TYPE_get_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/TYPE_get_ex_new_index.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/TYPE_set_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/UI_get_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/UI_get_ex_new_index.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/UI_set_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/X509_get_ex_data.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/X509_get_ex_new_index.3"
	ln -sf "BIO_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/X509_set_ex_data.3"
	ln -sf "BIO_meth_new.3" "$(DESTDIR)$(mandir)/man3/BIO_get_new_index.3"
	ln -sf "BIO_meth_new.3" "$(DESTDIR)$(mandir)/man3/BIO_meth_free.3"
	ln -sf "BIO_meth_new.3" "$(DESTDIR)$(mandir)/man3/BIO_meth_get_callback_ctrl.3"
	ln -sf "BIO_meth_new.3" "$(DESTDIR)$(mandir)/man3/BIO_meth_get_create.3"
	ln -sf "BIO_meth_new.3" "$(DESTDIR)$(mandir)/man3/BIO_meth_get_ctrl.3"
	ln -sf "BIO_meth_new.3" "$(DESTDIR)$(mandir)/man3/BIO_meth_get_destroy.3"
	ln -sf "BIO_meth_new.3" "$(DESTDIR)$(mandir)/man3/BIO_meth_get_gets.3"
	ln -sf "BIO_meth_new.3" "$(DESTDIR)$(mandir)/man3/BIO_meth_get_puts.3"
	ln -sf "BIO_meth_new.3" "$(DESTDIR)$(mandir)/man3/BIO_meth_get_read.3"
	ln -sf "BIO_meth_new.3" "$(DESTDIR)$(mandir)/man3/BIO_meth_get_write.3"
	ln -sf "BIO_meth_new.3" "$(DESTDIR)$(mandir)/man3/BIO_meth_set_callback_ctrl.3"
	ln -sf "BIO_meth_new.3" "$(DESTDIR)$(mandir)/man3/BIO_meth_set_create.3"
	ln -sf "BIO_meth_new.3" "$(DESTDIR)$(mandir)/man3/BIO_meth_set_ctrl.3"
	ln -sf "BIO_meth_new.3" "$(DESTDIR)$(mandir)/man3/BIO_meth_set_destroy.3"
	ln -sf "BIO_meth_new.3" "$(DESTDIR)$(mandir)/man3/BIO_meth_set_gets.3"
	ln -sf "BIO_meth_new.3" "$(DESTDIR)$(mandir)/man3/BIO_meth_set_puts.3"
	ln -sf "BIO_meth_new.3" "$(DESTDIR)$(mandir)/man3/BIO_meth_set_read.3"
	ln -sf "BIO_meth_new.3" "$(DESTDIR)$(mandir)/man3/BIO_meth_set_write.3"
	ln -sf "BIO_new.3" "$(DESTDIR)$(mandir)/man3/BIO_free.3"
	ln -sf "BIO_new.3" "$(DESTDIR)$(mandir)/man3/BIO_free_all.3"
	ln -sf "BIO_new.3" "$(DESTDIR)$(mandir)/man3/BIO_set.3"
	ln -sf "BIO_new.3" "$(DESTDIR)$(mandir)/man3/BIO_up_ref.3"
	ln -sf "BIO_new.3" "$(DESTDIR)$(mandir)/man3/BIO_vfree.3"
	ln -sf "BIO_printf.3" "$(DESTDIR)$(mandir)/man3/BIO_snprintf.3"
	ln -sf "BIO_printf.3" "$(DESTDIR)$(mandir)/man3/BIO_vprintf.3"
	ln -sf "BIO_printf.3" "$(DESTDIR)$(mandir)/man3/BIO_vsnprintf.3"
	ln -sf "BIO_push.3" "$(DESTDIR)$(mandir)/man3/BIO_pop.3"
	ln -sf "BIO_read.3" "$(DESTDIR)$(mandir)/man3/BIO_gets.3"
	ln -sf "BIO_read.3" "$(DESTDIR)$(mandir)/man3/BIO_puts.3"
983
984
985
986
987
988
989



990
991
992
993
994
995
996
	ln -sf "BN_cmp.3" "$(DESTDIR)$(mandir)/man3/BN_is_one.3"
	ln -sf "BN_cmp.3" "$(DESTDIR)$(mandir)/man3/BN_is_word.3"
	ln -sf "BN_cmp.3" "$(DESTDIR)$(mandir)/man3/BN_is_zero.3"
	ln -sf "BN_cmp.3" "$(DESTDIR)$(mandir)/man3/BN_ucmp.3"
	ln -sf "BN_copy.3" "$(DESTDIR)$(mandir)/man3/BN_dup.3"
	ln -sf "BN_copy.3" "$(DESTDIR)$(mandir)/man3/BN_with_flags.3"
	ln -sf "BN_generate_prime.3" "$(DESTDIR)$(mandir)/man3/BN_GENCB_call.3"



	ln -sf "BN_generate_prime.3" "$(DESTDIR)$(mandir)/man3/BN_GENCB_set.3"
	ln -sf "BN_generate_prime.3" "$(DESTDIR)$(mandir)/man3/BN_GENCB_set_old.3"
	ln -sf "BN_generate_prime.3" "$(DESTDIR)$(mandir)/man3/BN_generate_prime_ex.3"
	ln -sf "BN_generate_prime.3" "$(DESTDIR)$(mandir)/man3/BN_is_prime.3"
	ln -sf "BN_generate_prime.3" "$(DESTDIR)$(mandir)/man3/BN_is_prime_ex.3"
	ln -sf "BN_generate_prime.3" "$(DESTDIR)$(mandir)/man3/BN_is_prime_fasttest.3"
	ln -sf "BN_generate_prime.3" "$(DESTDIR)$(mandir)/man3/BN_is_prime_fasttest_ex.3"







>
>
>







1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
	ln -sf "BN_cmp.3" "$(DESTDIR)$(mandir)/man3/BN_is_one.3"
	ln -sf "BN_cmp.3" "$(DESTDIR)$(mandir)/man3/BN_is_word.3"
	ln -sf "BN_cmp.3" "$(DESTDIR)$(mandir)/man3/BN_is_zero.3"
	ln -sf "BN_cmp.3" "$(DESTDIR)$(mandir)/man3/BN_ucmp.3"
	ln -sf "BN_copy.3" "$(DESTDIR)$(mandir)/man3/BN_dup.3"
	ln -sf "BN_copy.3" "$(DESTDIR)$(mandir)/man3/BN_with_flags.3"
	ln -sf "BN_generate_prime.3" "$(DESTDIR)$(mandir)/man3/BN_GENCB_call.3"
	ln -sf "BN_generate_prime.3" "$(DESTDIR)$(mandir)/man3/BN_GENCB_free.3"
	ln -sf "BN_generate_prime.3" "$(DESTDIR)$(mandir)/man3/BN_GENCB_get_arg.3"
	ln -sf "BN_generate_prime.3" "$(DESTDIR)$(mandir)/man3/BN_GENCB_new.3"
	ln -sf "BN_generate_prime.3" "$(DESTDIR)$(mandir)/man3/BN_GENCB_set.3"
	ln -sf "BN_generate_prime.3" "$(DESTDIR)$(mandir)/man3/BN_GENCB_set_old.3"
	ln -sf "BN_generate_prime.3" "$(DESTDIR)$(mandir)/man3/BN_generate_prime_ex.3"
	ln -sf "BN_generate_prime.3" "$(DESTDIR)$(mandir)/man3/BN_is_prime.3"
	ln -sf "BN_generate_prime.3" "$(DESTDIR)$(mandir)/man3/BN_is_prime_ex.3"
	ln -sf "BN_generate_prime.3" "$(DESTDIR)$(mandir)/man3/BN_is_prime_fasttest.3"
	ln -sf "BN_generate_prime.3" "$(DESTDIR)$(mandir)/man3/BN_is_prime_fasttest_ex.3"
1103
1104
1105
1106
1107
1108
1109








1110
1111
1112
1113
1114
1115
1116

1117
1118
1119
1120
1121
1122
1123
1124


1125
1126







1127
1128




1129
1130
1131
1132
1133
1134
1135
1136
1137


1138
1139
1140
1141
1142
1143
1144
	ln -sf "DES_set_key.3" "$(DESTDIR)$(mandir)/man3/DES_set_odd_parity.3"
	ln -sf "DES_set_key.3" "$(DESTDIR)$(mandir)/man3/DES_string_to_2keys.3"
	ln -sf "DES_set_key.3" "$(DESTDIR)$(mandir)/man3/DES_string_to_key.3"
	ln -sf "DES_set_key.3" "$(DESTDIR)$(mandir)/man3/DES_xcbc_encrypt.3"
	ln -sf "DH_generate_key.3" "$(DESTDIR)$(mandir)/man3/DH_compute_key.3"
	ln -sf "DH_generate_parameters.3" "$(DESTDIR)$(mandir)/man3/DH_check.3"
	ln -sf "DH_generate_parameters.3" "$(DESTDIR)$(mandir)/man3/DH_generate_parameters_ex.3"








	ln -sf "DH_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/DH_get_ex_data.3"
	ln -sf "DH_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/DH_set_ex_data.3"
	ln -sf "DH_new.3" "$(DESTDIR)$(mandir)/man3/DH_free.3"
	ln -sf "DH_set_method.3" "$(DESTDIR)$(mandir)/man3/DH_OpenSSL.3"
	ln -sf "DH_set_method.3" "$(DESTDIR)$(mandir)/man3/DH_get_default_method.3"
	ln -sf "DH_set_method.3" "$(DESTDIR)$(mandir)/man3/DH_new_method.3"
	ln -sf "DH_set_method.3" "$(DESTDIR)$(mandir)/man3/DH_set_default_method.3"

	ln -sf "DIST_POINT_new.3" "$(DESTDIR)$(mandir)/man3/CRL_DIST_POINTS_free.3"
	ln -sf "DIST_POINT_new.3" "$(DESTDIR)$(mandir)/man3/CRL_DIST_POINTS_new.3"
	ln -sf "DIST_POINT_new.3" "$(DESTDIR)$(mandir)/man3/DIST_POINT_NAME_free.3"
	ln -sf "DIST_POINT_new.3" "$(DESTDIR)$(mandir)/man3/DIST_POINT_NAME_new.3"
	ln -sf "DIST_POINT_new.3" "$(DESTDIR)$(mandir)/man3/DIST_POINT_free.3"
	ln -sf "DIST_POINT_new.3" "$(DESTDIR)$(mandir)/man3/ISSUING_DIST_POINT_free.3"
	ln -sf "DIST_POINT_new.3" "$(DESTDIR)$(mandir)/man3/ISSUING_DIST_POINT_new.3"
	ln -sf "DSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/DSA_SIG_free.3"


	ln -sf "DSA_do_sign.3" "$(DESTDIR)$(mandir)/man3/DSA_do_verify.3"
	ln -sf "DSA_generate_parameters.3" "$(DESTDIR)$(mandir)/man3/DSA_generate_parameters_ex.3"







	ln -sf "DSA_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/DSA_get_ex_data.3"
	ln -sf "DSA_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/DSA_set_ex_data.3"




	ln -sf "DSA_new.3" "$(DESTDIR)$(mandir)/man3/DSA_free.3"
	ln -sf "DSA_set_method.3" "$(DESTDIR)$(mandir)/man3/DSA_OpenSSL.3"
	ln -sf "DSA_set_method.3" "$(DESTDIR)$(mandir)/man3/DSA_get_default_method.3"
	ln -sf "DSA_set_method.3" "$(DESTDIR)$(mandir)/man3/DSA_new_method.3"
	ln -sf "DSA_set_method.3" "$(DESTDIR)$(mandir)/man3/DSA_set_default_method.3"
	ln -sf "DSA_sign.3" "$(DESTDIR)$(mandir)/man3/DSA_sign_setup.3"
	ln -sf "DSA_sign.3" "$(DESTDIR)$(mandir)/man3/DSA_verify.3"
	ln -sf "ECDSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/ECDSA_OpenSSL.3"
	ln -sf "ECDSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/ECDSA_SIG_free.3"


	ln -sf "ECDSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/ECDSA_do_sign.3"
	ln -sf "ECDSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/ECDSA_do_sign_ex.3"
	ln -sf "ECDSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/ECDSA_do_verify.3"
	ln -sf "ECDSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/ECDSA_get_default_method.3"
	ln -sf "ECDSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/ECDSA_set_default_method.3"
	ln -sf "ECDSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/ECDSA_set_method.3"
	ln -sf "ECDSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/ECDSA_sign.3"







>
>
>
>
>
>
>
>







>








>
>


>
>
>
>
>
>
>


>
>
>
>









>
>







1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
	ln -sf "DES_set_key.3" "$(DESTDIR)$(mandir)/man3/DES_set_odd_parity.3"
	ln -sf "DES_set_key.3" "$(DESTDIR)$(mandir)/man3/DES_string_to_2keys.3"
	ln -sf "DES_set_key.3" "$(DESTDIR)$(mandir)/man3/DES_string_to_key.3"
	ln -sf "DES_set_key.3" "$(DESTDIR)$(mandir)/man3/DES_xcbc_encrypt.3"
	ln -sf "DH_generate_key.3" "$(DESTDIR)$(mandir)/man3/DH_compute_key.3"
	ln -sf "DH_generate_parameters.3" "$(DESTDIR)$(mandir)/man3/DH_check.3"
	ln -sf "DH_generate_parameters.3" "$(DESTDIR)$(mandir)/man3/DH_generate_parameters_ex.3"
	ln -sf "DH_get0_pqg.3" "$(DESTDIR)$(mandir)/man3/DH_clear_flags.3"
	ln -sf "DH_get0_pqg.3" "$(DESTDIR)$(mandir)/man3/DH_get0_engine.3"
	ln -sf "DH_get0_pqg.3" "$(DESTDIR)$(mandir)/man3/DH_get0_key.3"
	ln -sf "DH_get0_pqg.3" "$(DESTDIR)$(mandir)/man3/DH_set0_key.3"
	ln -sf "DH_get0_pqg.3" "$(DESTDIR)$(mandir)/man3/DH_set0_pqg.3"
	ln -sf "DH_get0_pqg.3" "$(DESTDIR)$(mandir)/man3/DH_set_flags.3"
	ln -sf "DH_get0_pqg.3" "$(DESTDIR)$(mandir)/man3/DH_set_length.3"
	ln -sf "DH_get0_pqg.3" "$(DESTDIR)$(mandir)/man3/DH_test_flags.3"
	ln -sf "DH_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/DH_get_ex_data.3"
	ln -sf "DH_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/DH_set_ex_data.3"
	ln -sf "DH_new.3" "$(DESTDIR)$(mandir)/man3/DH_free.3"
	ln -sf "DH_set_method.3" "$(DESTDIR)$(mandir)/man3/DH_OpenSSL.3"
	ln -sf "DH_set_method.3" "$(DESTDIR)$(mandir)/man3/DH_get_default_method.3"
	ln -sf "DH_set_method.3" "$(DESTDIR)$(mandir)/man3/DH_new_method.3"
	ln -sf "DH_set_method.3" "$(DESTDIR)$(mandir)/man3/DH_set_default_method.3"
	ln -sf "DH_size.3" "$(DESTDIR)$(mandir)/man3/DH_bits.3"
	ln -sf "DIST_POINT_new.3" "$(DESTDIR)$(mandir)/man3/CRL_DIST_POINTS_free.3"
	ln -sf "DIST_POINT_new.3" "$(DESTDIR)$(mandir)/man3/CRL_DIST_POINTS_new.3"
	ln -sf "DIST_POINT_new.3" "$(DESTDIR)$(mandir)/man3/DIST_POINT_NAME_free.3"
	ln -sf "DIST_POINT_new.3" "$(DESTDIR)$(mandir)/man3/DIST_POINT_NAME_new.3"
	ln -sf "DIST_POINT_new.3" "$(DESTDIR)$(mandir)/man3/DIST_POINT_free.3"
	ln -sf "DIST_POINT_new.3" "$(DESTDIR)$(mandir)/man3/ISSUING_DIST_POINT_free.3"
	ln -sf "DIST_POINT_new.3" "$(DESTDIR)$(mandir)/man3/ISSUING_DIST_POINT_new.3"
	ln -sf "DSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/DSA_SIG_free.3"
	ln -sf "DSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/DSA_SIG_get0.3"
	ln -sf "DSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/DSA_SIG_set0.3"
	ln -sf "DSA_do_sign.3" "$(DESTDIR)$(mandir)/man3/DSA_do_verify.3"
	ln -sf "DSA_generate_parameters.3" "$(DESTDIR)$(mandir)/man3/DSA_generate_parameters_ex.3"
	ln -sf "DSA_get0_pqg.3" "$(DESTDIR)$(mandir)/man3/DSA_clear_flags.3"
	ln -sf "DSA_get0_pqg.3" "$(DESTDIR)$(mandir)/man3/DSA_get0_engine.3"
	ln -sf "DSA_get0_pqg.3" "$(DESTDIR)$(mandir)/man3/DSA_get0_key.3"
	ln -sf "DSA_get0_pqg.3" "$(DESTDIR)$(mandir)/man3/DSA_set0_key.3"
	ln -sf "DSA_get0_pqg.3" "$(DESTDIR)$(mandir)/man3/DSA_set0_pqg.3"
	ln -sf "DSA_get0_pqg.3" "$(DESTDIR)$(mandir)/man3/DSA_set_flags.3"
	ln -sf "DSA_get0_pqg.3" "$(DESTDIR)$(mandir)/man3/DSA_test_flags.3"
	ln -sf "DSA_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/DSA_get_ex_data.3"
	ln -sf "DSA_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/DSA_set_ex_data.3"
	ln -sf "DSA_meth_new.3" "$(DESTDIR)$(mandir)/man3/DSA_meth_dup.3"
	ln -sf "DSA_meth_new.3" "$(DESTDIR)$(mandir)/man3/DSA_meth_free.3"
	ln -sf "DSA_meth_new.3" "$(DESTDIR)$(mandir)/man3/DSA_meth_set_finish.3"
	ln -sf "DSA_meth_new.3" "$(DESTDIR)$(mandir)/man3/DSA_meth_set_sign.3"
	ln -sf "DSA_new.3" "$(DESTDIR)$(mandir)/man3/DSA_free.3"
	ln -sf "DSA_set_method.3" "$(DESTDIR)$(mandir)/man3/DSA_OpenSSL.3"
	ln -sf "DSA_set_method.3" "$(DESTDIR)$(mandir)/man3/DSA_get_default_method.3"
	ln -sf "DSA_set_method.3" "$(DESTDIR)$(mandir)/man3/DSA_new_method.3"
	ln -sf "DSA_set_method.3" "$(DESTDIR)$(mandir)/man3/DSA_set_default_method.3"
	ln -sf "DSA_sign.3" "$(DESTDIR)$(mandir)/man3/DSA_sign_setup.3"
	ln -sf "DSA_sign.3" "$(DESTDIR)$(mandir)/man3/DSA_verify.3"
	ln -sf "ECDSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/ECDSA_OpenSSL.3"
	ln -sf "ECDSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/ECDSA_SIG_free.3"
	ln -sf "ECDSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/ECDSA_SIG_get0.3"
	ln -sf "ECDSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/ECDSA_SIG_set0.3"
	ln -sf "ECDSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/ECDSA_do_sign.3"
	ln -sf "ECDSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/ECDSA_do_sign_ex.3"
	ln -sf "ECDSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/ECDSA_do_verify.3"
	ln -sf "ECDSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/ECDSA_get_default_method.3"
	ln -sf "ECDSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/ECDSA_set_default_method.3"
	ln -sf "ECDSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/ECDSA_set_method.3"
	ln -sf "ECDSA_SIG_new.3" "$(DESTDIR)$(mandir)/man3/ECDSA_sign.3"
1294
1295
1296
1297
1298
1299
1300

1301
1302


1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_block_size.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_cleanup.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_copy.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_copy_ex.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_create.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_ctrl.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_destroy.3"

	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_init.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_md.3"


	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_size.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_type.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_block_size.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_pkey_type.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_size.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_type.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_dss.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_dss1.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_get_digestbyname.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_get_digestbynid.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_get_digestbyobj.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_md2.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_md5.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_md5_sha1.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_md_null.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_ripemd160.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_sha1.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_sha224.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_sha256.3"







>


>
>











<







1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376

1377
1378
1379
1380
1381
1382
1383
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_block_size.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_cleanup.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_copy.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_copy_ex.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_create.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_ctrl.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_destroy.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_free.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_init.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_md.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_new.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_reset.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_size.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_type.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_block_size.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_pkey_type.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_size.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_MD_type.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_dss.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_dss1.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_get_digestbyname.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_get_digestbynid.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_get_digestbyobj.3"

	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_md5.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_md5_sha1.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_md_null.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_ripemd160.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_sha1.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_sha224.3"
	ln -sf "EVP_DigestInit.3" "$(DESTDIR)$(mandir)/man3/EVP_sha256.3"
1341
1342
1343
1344
1345
1346
1347


1348
1349
1350
1351
1352
1353
1354
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_get_app_data.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_init.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_iv_length.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_key_length.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_mode.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_new.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_nid.3"


	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_set_app_data.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_set_key_length.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_set_padding.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_type.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_asn1_to_param.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_block_size.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_flags.3"







>
>







1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_get_app_data.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_init.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_iv_length.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_key_length.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_mode.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_new.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_nid.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_rand_key.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_reset.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_set_app_data.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_set_key_length.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_set_padding.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_type.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_asn1_to_param.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_block_size.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_flags.3"
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452













1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468


















1469

1470
1471
1472
1473
1474
1475
1476




1477
1478
1479
1480
1481
1482
1483
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_rc2_cbc.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_rc2_cfb.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_rc2_ecb.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_rc2_ofb.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_rc4.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_rc4_40.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_rc4_hmac_md5.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_rc5_32_12_16_cbc.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_rc5_32_12_16_cfb.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_rc5_32_12_16_ecb.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_rc5_32_12_16_ofb.3"
	ln -sf "EVP_OpenInit.3" "$(DESTDIR)$(mandir)/man3/EVP_OpenFinal.3"
	ln -sf "EVP_OpenInit.3" "$(DESTDIR)$(mandir)/man3/EVP_OpenUpdate.3"
	ln -sf "EVP_PKEY_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_ctrl_str.3"
	ln -sf "EVP_PKEY_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_dh_paramgen_generator.3"
	ln -sf "EVP_PKEY_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_dh_paramgen_prime_len.3"
	ln -sf "EVP_PKEY_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_dsa_paramgen_bits.3"
	ln -sf "EVP_PKEY_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_ec_paramgen_curve_nid.3"
	ln -sf "EVP_PKEY_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_rsa_keygen_bits.3"
	ln -sf "EVP_PKEY_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_rsa_keygen_pubexp.3"
	ln -sf "EVP_PKEY_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_rsa_padding.3"
	ln -sf "EVP_PKEY_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_rsa_pss_saltlen.3"
	ln -sf "EVP_PKEY_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_signature_md.3"
	ln -sf "EVP_PKEY_CTX_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_dup.3"
	ln -sf "EVP_PKEY_CTX_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_free.3"
	ln -sf "EVP_PKEY_CTX_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_new_id.3"













	ln -sf "EVP_PKEY_cmp.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_cmp_parameters.3"
	ln -sf "EVP_PKEY_cmp.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_copy_parameters.3"
	ln -sf "EVP_PKEY_cmp.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_missing_parameters.3"
	ln -sf "EVP_PKEY_decrypt.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_decrypt_init.3"
	ln -sf "EVP_PKEY_derive.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_derive_init.3"
	ln -sf "EVP_PKEY_derive.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_derive_set_peer.3"
	ln -sf "EVP_PKEY_encrypt.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_encrypt_init.3"
	ln -sf "EVP_PKEY_keygen.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_get_app_data.3"
	ln -sf "EVP_PKEY_keygen.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_get_cb.3"
	ln -sf "EVP_PKEY_keygen.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_get_keygen_info.3"
	ln -sf "EVP_PKEY_keygen.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_app_data.3"
	ln -sf "EVP_PKEY_keygen.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_cb.3"
	ln -sf "EVP_PKEY_keygen.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_gen_cb.3"
	ln -sf "EVP_PKEY_keygen.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_keygen_init.3"
	ln -sf "EVP_PKEY_keygen.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_paramgen.3"
	ln -sf "EVP_PKEY_keygen.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_paramgen_init.3"


















	ln -sf "EVP_PKEY_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_free.3"

	ln -sf "EVP_PKEY_print_private.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_print_params.3"
	ln -sf "EVP_PKEY_print_private.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_print_public.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_assign_DH.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_assign_DSA.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_assign_EC_KEY.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_assign_RSA.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_base_id.3"




	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get1_DH.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get1_DSA.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get1_EC_KEY.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get1_RSA.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_id.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_set1_DH.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_set1_DSA.3"







<
<
<
<















>
>
>
>
>
>
>
>
>
>
>
>
>
















>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

>







>
>
>
>







1491
1492
1493
1494
1495
1496
1497




1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_rc2_cbc.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_rc2_cfb.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_rc2_ecb.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_rc2_ofb.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_rc4.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_rc4_40.3"
	ln -sf "EVP_EncryptInit.3" "$(DESTDIR)$(mandir)/man3/EVP_rc4_hmac_md5.3"




	ln -sf "EVP_OpenInit.3" "$(DESTDIR)$(mandir)/man3/EVP_OpenFinal.3"
	ln -sf "EVP_OpenInit.3" "$(DESTDIR)$(mandir)/man3/EVP_OpenUpdate.3"
	ln -sf "EVP_PKEY_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_ctrl_str.3"
	ln -sf "EVP_PKEY_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_dh_paramgen_generator.3"
	ln -sf "EVP_PKEY_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_dh_paramgen_prime_len.3"
	ln -sf "EVP_PKEY_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_dsa_paramgen_bits.3"
	ln -sf "EVP_PKEY_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_ec_paramgen_curve_nid.3"
	ln -sf "EVP_PKEY_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_rsa_keygen_bits.3"
	ln -sf "EVP_PKEY_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_rsa_keygen_pubexp.3"
	ln -sf "EVP_PKEY_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_rsa_padding.3"
	ln -sf "EVP_PKEY_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_rsa_pss_saltlen.3"
	ln -sf "EVP_PKEY_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_signature_md.3"
	ln -sf "EVP_PKEY_CTX_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_dup.3"
	ln -sf "EVP_PKEY_CTX_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_free.3"
	ln -sf "EVP_PKEY_CTX_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_new_id.3"
	ln -sf "EVP_PKEY_asn1_get_count.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_find.3"
	ln -sf "EVP_PKEY_asn1_get_count.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_find_str.3"
	ln -sf "EVP_PKEY_asn1_get_count.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_get0.3"
	ln -sf "EVP_PKEY_asn1_get_count.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_get0_info.3"
	ln -sf "EVP_PKEY_asn1_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_add0.3"
	ln -sf "EVP_PKEY_asn1_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_add_alias.3"
	ln -sf "EVP_PKEY_asn1_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_copy.3"
	ln -sf "EVP_PKEY_asn1_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_free.3"
	ln -sf "EVP_PKEY_asn1_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_set_ctrl.3"
	ln -sf "EVP_PKEY_asn1_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_set_free.3"
	ln -sf "EVP_PKEY_asn1_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_set_param.3"
	ln -sf "EVP_PKEY_asn1_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_set_private.3"
	ln -sf "EVP_PKEY_asn1_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_set_public.3"
	ln -sf "EVP_PKEY_cmp.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_cmp_parameters.3"
	ln -sf "EVP_PKEY_cmp.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_copy_parameters.3"
	ln -sf "EVP_PKEY_cmp.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_missing_parameters.3"
	ln -sf "EVP_PKEY_decrypt.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_decrypt_init.3"
	ln -sf "EVP_PKEY_derive.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_derive_init.3"
	ln -sf "EVP_PKEY_derive.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_derive_set_peer.3"
	ln -sf "EVP_PKEY_encrypt.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_encrypt_init.3"
	ln -sf "EVP_PKEY_keygen.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_get_app_data.3"
	ln -sf "EVP_PKEY_keygen.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_get_cb.3"
	ln -sf "EVP_PKEY_keygen.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_get_keygen_info.3"
	ln -sf "EVP_PKEY_keygen.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_app_data.3"
	ln -sf "EVP_PKEY_keygen.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_cb.3"
	ln -sf "EVP_PKEY_keygen.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_gen_cb.3"
	ln -sf "EVP_PKEY_keygen.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_keygen_init.3"
	ln -sf "EVP_PKEY_keygen.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_paramgen.3"
	ln -sf "EVP_PKEY_keygen.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_paramgen_init.3"
	ln -sf "EVP_PKEY_meth_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_add0.3"
	ln -sf "EVP_PKEY_meth_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_copy.3"
	ln -sf "EVP_PKEY_meth_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_find.3"
	ln -sf "EVP_PKEY_meth_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_free.3"
	ln -sf "EVP_PKEY_meth_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_cleanup.3"
	ln -sf "EVP_PKEY_meth_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_copy.3"
	ln -sf "EVP_PKEY_meth_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_ctrl.3"
	ln -sf "EVP_PKEY_meth_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_decrypt.3"
	ln -sf "EVP_PKEY_meth_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_derive.3"
	ln -sf "EVP_PKEY_meth_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_encrypt.3"
	ln -sf "EVP_PKEY_meth_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_init.3"
	ln -sf "EVP_PKEY_meth_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_keygen.3"
	ln -sf "EVP_PKEY_meth_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_paramgen.3"
	ln -sf "EVP_PKEY_meth_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_sign.3"
	ln -sf "EVP_PKEY_meth_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_signctx.3"
	ln -sf "EVP_PKEY_meth_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_verify.3"
	ln -sf "EVP_PKEY_meth_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_verify_recover.3"
	ln -sf "EVP_PKEY_meth_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_verifyctx.3"
	ln -sf "EVP_PKEY_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_free.3"
	ln -sf "EVP_PKEY_new.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_up_ref.3"
	ln -sf "EVP_PKEY_print_private.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_print_params.3"
	ln -sf "EVP_PKEY_print_private.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_print_public.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_assign_DH.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_assign_DSA.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_assign_EC_KEY.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_assign_RSA.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_base_id.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get0_DH.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get0_DSA.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get0_EC_KEY.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get0_RSA.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get1_DH.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get1_DSA.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get1_EC_KEY.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get1_RSA.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_id.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_set1_DH.3"
	ln -sf "EVP_PKEY_set1_RSA.3" "$(DESTDIR)$(mandir)/man3/EVP_PKEY_set1_DSA.3"
1501
1502
1503
1504
1505
1506
1507


1508


1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
	ln -sf "GENERAL_NAME_new.3" "$(DESTDIR)$(mandir)/man3/GENERAL_NAMES_free.3"
	ln -sf "GENERAL_NAME_new.3" "$(DESTDIR)$(mandir)/man3/GENERAL_NAMES_new.3"
	ln -sf "GENERAL_NAME_new.3" "$(DESTDIR)$(mandir)/man3/GENERAL_NAME_free.3"
	ln -sf "GENERAL_NAME_new.3" "$(DESTDIR)$(mandir)/man3/OTHERNAME_free.3"
	ln -sf "GENERAL_NAME_new.3" "$(DESTDIR)$(mandir)/man3/OTHERNAME_new.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_CTX_cleanup.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_CTX_copy.3"


	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_CTX_init.3"


	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_CTX_set_flags.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_Final.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_Init.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_Init_ex.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_Update.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_cleanup.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_size.3"
	ln -sf "MD5.3" "$(DESTDIR)$(mandir)/man3/MD2.3"
	ln -sf "MD5.3" "$(DESTDIR)$(mandir)/man3/MD2_Final.3"
	ln -sf "MD5.3" "$(DESTDIR)$(mandir)/man3/MD2_Init.3"
	ln -sf "MD5.3" "$(DESTDIR)$(mandir)/man3/MD2_Update.3"
	ln -sf "MD5.3" "$(DESTDIR)$(mandir)/man3/MD4.3"
	ln -sf "MD5.3" "$(DESTDIR)$(mandir)/man3/MD4_Final.3"
	ln -sf "MD5.3" "$(DESTDIR)$(mandir)/man3/MD4_Init.3"
	ln -sf "MD5.3" "$(DESTDIR)$(mandir)/man3/MD4_Update.3"
	ln -sf "MD5.3" "$(DESTDIR)$(mandir)/man3/MD5_Final.3"
	ln -sf "MD5.3" "$(DESTDIR)$(mandir)/man3/MD5_Init.3"
	ln -sf "MD5.3" "$(DESTDIR)$(mandir)/man3/MD5_Update.3"







>
>

>
>







<
<
<
<







1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615




1616
1617
1618
1619
1620
1621
1622
	ln -sf "GENERAL_NAME_new.3" "$(DESTDIR)$(mandir)/man3/GENERAL_NAMES_free.3"
	ln -sf "GENERAL_NAME_new.3" "$(DESTDIR)$(mandir)/man3/GENERAL_NAMES_new.3"
	ln -sf "GENERAL_NAME_new.3" "$(DESTDIR)$(mandir)/man3/GENERAL_NAME_free.3"
	ln -sf "GENERAL_NAME_new.3" "$(DESTDIR)$(mandir)/man3/OTHERNAME_free.3"
	ln -sf "GENERAL_NAME_new.3" "$(DESTDIR)$(mandir)/man3/OTHERNAME_new.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_CTX_cleanup.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_CTX_copy.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_CTX_free.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_CTX_get_md.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_CTX_init.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_CTX_new.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_CTX_reset.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_CTX_set_flags.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_Final.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_Init.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_Init_ex.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_Update.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_cleanup.3"
	ln -sf "HMAC.3" "$(DESTDIR)$(mandir)/man3/HMAC_size.3"




	ln -sf "MD5.3" "$(DESTDIR)$(mandir)/man3/MD4.3"
	ln -sf "MD5.3" "$(DESTDIR)$(mandir)/man3/MD4_Final.3"
	ln -sf "MD5.3" "$(DESTDIR)$(mandir)/man3/MD4_Init.3"
	ln -sf "MD5.3" "$(DESTDIR)$(mandir)/man3/MD4_Update.3"
	ln -sf "MD5.3" "$(DESTDIR)$(mandir)/man3/MD5_Final.3"
	ln -sf "MD5.3" "$(DESTDIR)$(mandir)/man3/MD5_Init.3"
	ln -sf "MD5.3" "$(DESTDIR)$(mandir)/man3/MD5_Update.3"
1566
1567
1568
1569
1570
1571
1572

1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588

1589
1590
1591
1592
1593
1594
1595




1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607





















1608
1609
1610
1611
1612
1613
1614
	ln -sf "OCSP_request_add1_nonce.3" "$(DESTDIR)$(mandir)/man3/OCSP_check_nonce.3"
	ln -sf "OCSP_request_add1_nonce.3" "$(DESTDIR)$(mandir)/man3/OCSP_copy_nonce.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_CERTSTATUS_free.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_CERTSTATUS_new.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_REVOKEDINFO_free.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_REVOKEDINFO_new.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_SINGLERESP_free.3"

	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_SINGLERESP_new.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_check_validity.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_resp_count.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_resp_find.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_resp_get0.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_single_get0_status.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_BASICRESP_free.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_BASICRESP_new.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_RESPBYTES_free.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_RESPBYTES_new.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_RESPDATA_free.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_RESPDATA_new.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_RESPID_free.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_RESPID_new.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_RESPONSE_free.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_RESPONSE_new.3"

	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_response_create.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_response_get1_basic.3"
	ln -sf "OCSP_sendreq_new.3" "$(DESTDIR)$(mandir)/man3/OCSP_REQ_CTX_add1_header.3"
	ln -sf "OCSP_sendreq_new.3" "$(DESTDIR)$(mandir)/man3/OCSP_REQ_CTX_free.3"
	ln -sf "OCSP_sendreq_new.3" "$(DESTDIR)$(mandir)/man3/OCSP_REQ_CTX_set1_req.3"
	ln -sf "OCSP_sendreq_new.3" "$(DESTDIR)$(mandir)/man3/OCSP_sendreq_bio.3"
	ln -sf "OCSP_sendreq_new.3" "$(DESTDIR)$(mandir)/man3/OCSP_sendreq_nbio.3"




	ln -sf "OPENSSL_VERSION_NUMBER.3" "$(DESTDIR)$(mandir)/man3/SSLeay.3"
	ln -sf "OPENSSL_VERSION_NUMBER.3" "$(DESTDIR)$(mandir)/man3/SSLeay_version.3"
	ln -sf "OPENSSL_config.3" "$(DESTDIR)$(mandir)/man3/OPENSSL_no_config.3"
	ln -sf "OPENSSL_load_builtin_modules.3" "$(DESTDIR)$(mandir)/man3/ASN1_add_oid_module.3"
	ln -sf "OPENSSL_load_builtin_modules.3" "$(DESTDIR)$(mandir)/man3/ENGINE_add_conf_module.3"
	ln -sf "OPENSSL_malloc.3" "$(DESTDIR)$(mandir)/man3/CRYPTO_free.3"
	ln -sf "OPENSSL_malloc.3" "$(DESTDIR)$(mandir)/man3/CRYPTO_malloc.3"
	ln -sf "OPENSSL_malloc.3" "$(DESTDIR)$(mandir)/man3/CRYPTO_realloc.3"
	ln -sf "OPENSSL_malloc.3" "$(DESTDIR)$(mandir)/man3/CRYPTO_strdup.3"
	ln -sf "OPENSSL_malloc.3" "$(DESTDIR)$(mandir)/man3/OPENSSL_free.3"
	ln -sf "OPENSSL_malloc.3" "$(DESTDIR)$(mandir)/man3/OPENSSL_realloc.3"
	ln -sf "OPENSSL_malloc.3" "$(DESTDIR)$(mandir)/man3/OPENSSL_strdup.3"





















	ln -sf "OpenSSL_add_all_algorithms.3" "$(DESTDIR)$(mandir)/man3/EVP_cleanup.3"
	ln -sf "OpenSSL_add_all_algorithms.3" "$(DESTDIR)$(mandir)/man3/OpenSSL_add_all_ciphers.3"
	ln -sf "OpenSSL_add_all_algorithms.3" "$(DESTDIR)$(mandir)/man3/OpenSSL_add_all_digests.3"
	ln -sf "PEM_read.3" "$(DESTDIR)$(mandir)/man3/PEM_do_header.3"
	ln -sf "PEM_read.3" "$(DESTDIR)$(mandir)/man3/PEM_get_EVP_CIPHER_INFO.3"
	ln -sf "PEM_read.3" "$(DESTDIR)$(mandir)/man3/PEM_read_bio.3"
	ln -sf "PEM_read.3" "$(DESTDIR)$(mandir)/man3/PEM_write.3"







>
















>







>
>
>
>












>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
	ln -sf "OCSP_request_add1_nonce.3" "$(DESTDIR)$(mandir)/man3/OCSP_check_nonce.3"
	ln -sf "OCSP_request_add1_nonce.3" "$(DESTDIR)$(mandir)/man3/OCSP_copy_nonce.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_CERTSTATUS_free.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_CERTSTATUS_new.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_REVOKEDINFO_free.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_REVOKEDINFO_new.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_SINGLERESP_free.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_SINGLERESP_get0_id.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_SINGLERESP_new.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_check_validity.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_resp_count.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_resp_find.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_resp_get0.3"
	ln -sf "OCSP_resp_find_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_single_get0_status.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_BASICRESP_free.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_BASICRESP_new.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_RESPBYTES_free.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_RESPBYTES_new.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_RESPDATA_free.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_RESPDATA_new.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_RESPID_free.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_RESPID_new.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_RESPONSE_free.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_RESPONSE_new.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_basic_sign.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_response_create.3"
	ln -sf "OCSP_response_status.3" "$(DESTDIR)$(mandir)/man3/OCSP_response_get1_basic.3"
	ln -sf "OCSP_sendreq_new.3" "$(DESTDIR)$(mandir)/man3/OCSP_REQ_CTX_add1_header.3"
	ln -sf "OCSP_sendreq_new.3" "$(DESTDIR)$(mandir)/man3/OCSP_REQ_CTX_free.3"
	ln -sf "OCSP_sendreq_new.3" "$(DESTDIR)$(mandir)/man3/OCSP_REQ_CTX_set1_req.3"
	ln -sf "OCSP_sendreq_new.3" "$(DESTDIR)$(mandir)/man3/OCSP_sendreq_bio.3"
	ln -sf "OCSP_sendreq_new.3" "$(DESTDIR)$(mandir)/man3/OCSP_sendreq_nbio.3"
	ln -sf "OPENSSL_VERSION_NUMBER.3" "$(DESTDIR)$(mandir)/man3/LIBRESSL_VERSION_NUMBER.3"
	ln -sf "OPENSSL_VERSION_NUMBER.3" "$(DESTDIR)$(mandir)/man3/LIBRESSL_VERSION_TEXT.3"
	ln -sf "OPENSSL_VERSION_NUMBER.3" "$(DESTDIR)$(mandir)/man3/OpenSSL_version.3"
	ln -sf "OPENSSL_VERSION_NUMBER.3" "$(DESTDIR)$(mandir)/man3/OpenSSL_version_num.3"
	ln -sf "OPENSSL_VERSION_NUMBER.3" "$(DESTDIR)$(mandir)/man3/SSLeay.3"
	ln -sf "OPENSSL_VERSION_NUMBER.3" "$(DESTDIR)$(mandir)/man3/SSLeay_version.3"
	ln -sf "OPENSSL_config.3" "$(DESTDIR)$(mandir)/man3/OPENSSL_no_config.3"
	ln -sf "OPENSSL_load_builtin_modules.3" "$(DESTDIR)$(mandir)/man3/ASN1_add_oid_module.3"
	ln -sf "OPENSSL_load_builtin_modules.3" "$(DESTDIR)$(mandir)/man3/ENGINE_add_conf_module.3"
	ln -sf "OPENSSL_malloc.3" "$(DESTDIR)$(mandir)/man3/CRYPTO_free.3"
	ln -sf "OPENSSL_malloc.3" "$(DESTDIR)$(mandir)/man3/CRYPTO_malloc.3"
	ln -sf "OPENSSL_malloc.3" "$(DESTDIR)$(mandir)/man3/CRYPTO_realloc.3"
	ln -sf "OPENSSL_malloc.3" "$(DESTDIR)$(mandir)/man3/CRYPTO_strdup.3"
	ln -sf "OPENSSL_malloc.3" "$(DESTDIR)$(mandir)/man3/OPENSSL_free.3"
	ln -sf "OPENSSL_malloc.3" "$(DESTDIR)$(mandir)/man3/OPENSSL_realloc.3"
	ln -sf "OPENSSL_malloc.3" "$(DESTDIR)$(mandir)/man3/OPENSSL_strdup.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_delete.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_delete_ptr.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_dup.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_find.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_find_ex.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_free.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_insert.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_is_sorted.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_new.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_new_null.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_num.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_pop.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_pop_free.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_push.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_set.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_set_cmp_func.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_shift.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_sort.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_unshift.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_value.3"
	ln -sf "OPENSSL_sk_new.3" "$(DESTDIR)$(mandir)/man3/sk_zero.3"
	ln -sf "OpenSSL_add_all_algorithms.3" "$(DESTDIR)$(mandir)/man3/EVP_cleanup.3"
	ln -sf "OpenSSL_add_all_algorithms.3" "$(DESTDIR)$(mandir)/man3/OpenSSL_add_all_ciphers.3"
	ln -sf "OpenSSL_add_all_algorithms.3" "$(DESTDIR)$(mandir)/man3/OpenSSL_add_all_digests.3"
	ln -sf "PEM_read.3" "$(DESTDIR)$(mandir)/man3/PEM_do_header.3"
	ln -sf "PEM_read.3" "$(DESTDIR)$(mandir)/man3/PEM_get_EVP_CIPHER_INFO.3"
	ln -sf "PEM_read.3" "$(DESTDIR)$(mandir)/man3/PEM_read_bio.3"
	ln -sf "PEM_read.3" "$(DESTDIR)$(mandir)/man3/PEM_write.3"
1743
1744
1745
1746
1747
1748
1749

1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763








1764
1765
1766
1767
1768





1769
1770
1771
1772
1773
1774
1775
	ln -sf "POLICYINFO_new.3" "$(DESTDIR)$(mandir)/man3/POLICY_MAPPING_new.3"
	ln -sf "POLICYINFO_new.3" "$(DESTDIR)$(mandir)/man3/USERNOTICE_free.3"
	ln -sf "POLICYINFO_new.3" "$(DESTDIR)$(mandir)/man3/USERNOTICE_new.3"
	ln -sf "PROXY_POLICY_new.3" "$(DESTDIR)$(mandir)/man3/PROXY_CERT_INFO_EXTENSION_free.3"
	ln -sf "PROXY_POLICY_new.3" "$(DESTDIR)$(mandir)/man3/PROXY_CERT_INFO_EXTENSION_new.3"
	ln -sf "PROXY_POLICY_new.3" "$(DESTDIR)$(mandir)/man3/PROXY_POLICY_free.3"
	ln -sf "RAND_add.3" "$(DESTDIR)$(mandir)/man3/RAND_cleanup.3"

	ln -sf "RAND_add.3" "$(DESTDIR)$(mandir)/man3/RAND_seed.3"
	ln -sf "RAND_add.3" "$(DESTDIR)$(mandir)/man3/RAND_status.3"
	ln -sf "RAND_bytes.3" "$(DESTDIR)$(mandir)/man3/RAND_pseudo_bytes.3"
	ln -sf "RAND_load_file.3" "$(DESTDIR)$(mandir)/man3/RAND_file_name.3"
	ln -sf "RAND_load_file.3" "$(DESTDIR)$(mandir)/man3/RAND_write_file.3"
	ln -sf "RAND_set_rand_method.3" "$(DESTDIR)$(mandir)/man3/RAND_SSLeay.3"
	ln -sf "RAND_set_rand_method.3" "$(DESTDIR)$(mandir)/man3/RAND_get_rand_method.3"
	ln -sf "RC4.3" "$(DESTDIR)$(mandir)/man3/RC4_set_key.3"
	ln -sf "RIPEMD160.3" "$(DESTDIR)$(mandir)/man3/RIPEMD160_Final.3"
	ln -sf "RIPEMD160.3" "$(DESTDIR)$(mandir)/man3/RIPEMD160_Init.3"
	ln -sf "RIPEMD160.3" "$(DESTDIR)$(mandir)/man3/RIPEMD160_Update.3"
	ln -sf "RSA_PSS_PARAMS_new.3" "$(DESTDIR)$(mandir)/man3/RSA_PSS_PARAMS_free.3"
	ln -sf "RSA_blinding_on.3" "$(DESTDIR)$(mandir)/man3/RSA_blinding_off.3"
	ln -sf "RSA_generate_key.3" "$(DESTDIR)$(mandir)/man3/RSA_generate_key_ex.3"








	ln -sf "RSA_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/CRYPTO_EX_dup.3"
	ln -sf "RSA_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/CRYPTO_EX_free.3"
	ln -sf "RSA_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/CRYPTO_EX_new.3"
	ln -sf "RSA_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/RSA_get_ex_data.3"
	ln -sf "RSA_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/RSA_set_ex_data.3"





	ln -sf "RSA_new.3" "$(DESTDIR)$(mandir)/man3/RSA_free.3"
	ln -sf "RSA_padding_add_PKCS1_type_1.3" "$(DESTDIR)$(mandir)/man3/RSA_padding_add_PKCS1_OAEP.3"
	ln -sf "RSA_padding_add_PKCS1_type_1.3" "$(DESTDIR)$(mandir)/man3/RSA_padding_add_PKCS1_type_2.3"
	ln -sf "RSA_padding_add_PKCS1_type_1.3" "$(DESTDIR)$(mandir)/man3/RSA_padding_add_none.3"
	ln -sf "RSA_padding_add_PKCS1_type_1.3" "$(DESTDIR)$(mandir)/man3/RSA_padding_check_PKCS1_OAEP.3"
	ln -sf "RSA_padding_add_PKCS1_type_1.3" "$(DESTDIR)$(mandir)/man3/RSA_padding_check_PKCS1_type_1.3"
	ln -sf "RSA_padding_add_PKCS1_type_1.3" "$(DESTDIR)$(mandir)/man3/RSA_padding_check_PKCS1_type_2.3"







>














>
>
>
>
>
>
>
>





>
>
>
>
>







1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
	ln -sf "POLICYINFO_new.3" "$(DESTDIR)$(mandir)/man3/POLICY_MAPPING_new.3"
	ln -sf "POLICYINFO_new.3" "$(DESTDIR)$(mandir)/man3/USERNOTICE_free.3"
	ln -sf "POLICYINFO_new.3" "$(DESTDIR)$(mandir)/man3/USERNOTICE_new.3"
	ln -sf "PROXY_POLICY_new.3" "$(DESTDIR)$(mandir)/man3/PROXY_CERT_INFO_EXTENSION_free.3"
	ln -sf "PROXY_POLICY_new.3" "$(DESTDIR)$(mandir)/man3/PROXY_CERT_INFO_EXTENSION_new.3"
	ln -sf "PROXY_POLICY_new.3" "$(DESTDIR)$(mandir)/man3/PROXY_POLICY_free.3"
	ln -sf "RAND_add.3" "$(DESTDIR)$(mandir)/man3/RAND_cleanup.3"
	ln -sf "RAND_add.3" "$(DESTDIR)$(mandir)/man3/RAND_poll.3"
	ln -sf "RAND_add.3" "$(DESTDIR)$(mandir)/man3/RAND_seed.3"
	ln -sf "RAND_add.3" "$(DESTDIR)$(mandir)/man3/RAND_status.3"
	ln -sf "RAND_bytes.3" "$(DESTDIR)$(mandir)/man3/RAND_pseudo_bytes.3"
	ln -sf "RAND_load_file.3" "$(DESTDIR)$(mandir)/man3/RAND_file_name.3"
	ln -sf "RAND_load_file.3" "$(DESTDIR)$(mandir)/man3/RAND_write_file.3"
	ln -sf "RAND_set_rand_method.3" "$(DESTDIR)$(mandir)/man3/RAND_SSLeay.3"
	ln -sf "RAND_set_rand_method.3" "$(DESTDIR)$(mandir)/man3/RAND_get_rand_method.3"
	ln -sf "RC4.3" "$(DESTDIR)$(mandir)/man3/RC4_set_key.3"
	ln -sf "RIPEMD160.3" "$(DESTDIR)$(mandir)/man3/RIPEMD160_Final.3"
	ln -sf "RIPEMD160.3" "$(DESTDIR)$(mandir)/man3/RIPEMD160_Init.3"
	ln -sf "RIPEMD160.3" "$(DESTDIR)$(mandir)/man3/RIPEMD160_Update.3"
	ln -sf "RSA_PSS_PARAMS_new.3" "$(DESTDIR)$(mandir)/man3/RSA_PSS_PARAMS_free.3"
	ln -sf "RSA_blinding_on.3" "$(DESTDIR)$(mandir)/man3/RSA_blinding_off.3"
	ln -sf "RSA_generate_key.3" "$(DESTDIR)$(mandir)/man3/RSA_generate_key_ex.3"
	ln -sf "RSA_get0_key.3" "$(DESTDIR)$(mandir)/man3/RSA_clear_flags.3"
	ln -sf "RSA_get0_key.3" "$(DESTDIR)$(mandir)/man3/RSA_get0_crt_params.3"
	ln -sf "RSA_get0_key.3" "$(DESTDIR)$(mandir)/man3/RSA_get0_factors.3"
	ln -sf "RSA_get0_key.3" "$(DESTDIR)$(mandir)/man3/RSA_set0_crt_params.3"
	ln -sf "RSA_get0_key.3" "$(DESTDIR)$(mandir)/man3/RSA_set0_factors.3"
	ln -sf "RSA_get0_key.3" "$(DESTDIR)$(mandir)/man3/RSA_set0_key.3"
	ln -sf "RSA_get0_key.3" "$(DESTDIR)$(mandir)/man3/RSA_set_flags.3"
	ln -sf "RSA_get0_key.3" "$(DESTDIR)$(mandir)/man3/RSA_test_flags.3"
	ln -sf "RSA_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/CRYPTO_EX_dup.3"
	ln -sf "RSA_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/CRYPTO_EX_free.3"
	ln -sf "RSA_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/CRYPTO_EX_new.3"
	ln -sf "RSA_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/RSA_get_ex_data.3"
	ln -sf "RSA_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/RSA_set_ex_data.3"
	ln -sf "RSA_meth_new.3" "$(DESTDIR)$(mandir)/man3/RSA_meth_dup.3"
	ln -sf "RSA_meth_new.3" "$(DESTDIR)$(mandir)/man3/RSA_meth_free.3"
	ln -sf "RSA_meth_new.3" "$(DESTDIR)$(mandir)/man3/RSA_meth_set_finish.3"
	ln -sf "RSA_meth_new.3" "$(DESTDIR)$(mandir)/man3/RSA_meth_set_priv_dec.3"
	ln -sf "RSA_meth_new.3" "$(DESTDIR)$(mandir)/man3/RSA_meth_set_priv_enc.3"
	ln -sf "RSA_new.3" "$(DESTDIR)$(mandir)/man3/RSA_free.3"
	ln -sf "RSA_padding_add_PKCS1_type_1.3" "$(DESTDIR)$(mandir)/man3/RSA_padding_add_PKCS1_OAEP.3"
	ln -sf "RSA_padding_add_PKCS1_type_1.3" "$(DESTDIR)$(mandir)/man3/RSA_padding_add_PKCS1_type_2.3"
	ln -sf "RSA_padding_add_PKCS1_type_1.3" "$(DESTDIR)$(mandir)/man3/RSA_padding_add_none.3"
	ln -sf "RSA_padding_add_PKCS1_type_1.3" "$(DESTDIR)$(mandir)/man3/RSA_padding_check_PKCS1_OAEP.3"
	ln -sf "RSA_padding_add_PKCS1_type_1.3" "$(DESTDIR)$(mandir)/man3/RSA_padding_check_PKCS1_type_1.3"
	ln -sf "RSA_padding_add_PKCS1_type_1.3" "$(DESTDIR)$(mandir)/man3/RSA_padding_check_PKCS1_type_2.3"
1790
1791
1792
1793
1794
1795
1796

1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816

1817




1818

1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835

1836
1837
1838
1839
1840
1841
1842
	ln -sf "RSA_set_method.3" "$(DESTDIR)$(mandir)/man3/RSA_get_method.3"
	ln -sf "RSA_set_method.3" "$(DESTDIR)$(mandir)/man3/RSA_new_method.3"
	ln -sf "RSA_set_method.3" "$(DESTDIR)$(mandir)/man3/RSA_null_method.3"
	ln -sf "RSA_set_method.3" "$(DESTDIR)$(mandir)/man3/RSA_set_default_method.3"
	ln -sf "RSA_set_method.3" "$(DESTDIR)$(mandir)/man3/RSA_set_default_openssl_method.3"
	ln -sf "RSA_sign.3" "$(DESTDIR)$(mandir)/man3/RSA_verify.3"
	ln -sf "RSA_sign_ASN1_OCTET_STRING.3" "$(DESTDIR)$(mandir)/man3/RSA_verify_ASN1_OCTET_STRING.3"

	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA1_Final.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA1_Init.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA1_Update.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA224.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA224_Final.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA224_Init.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA224_Update.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA256.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA256_Final.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA256_Init.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA256_Update.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA384.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA384_Final.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA384_Init.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA384_Update.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA512.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA512_Final.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA512_Init.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA512_Update.3"
	ln -sf "SSL_CIPHER_get_name.3" "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_description.3"

	ln -sf "SSL_CIPHER_get_name.3" "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_get_bits.3"




	ln -sf "SSL_CIPHER_get_name.3" "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_get_version.3"

	ln -sf "SSL_COMP_add_compression_method.3" "$(DESTDIR)$(mandir)/man3/SSL_COMP_get_compression_methods.3"
	ln -sf "SSL_CTX_add_extra_chain_cert.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_clear_extra_chain_certs.3"
	ln -sf "SSL_CTX_add_session.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_remove_session.3"
	ln -sf "SSL_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_callback_ctrl.3"
	ln -sf "SSL_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/SSL_callback_ctrl.3"
	ln -sf "SSL_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/SSL_ctrl.3"
	ln -sf "SSL_CTX_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_ex_data.3"
	ln -sf "SSL_CTX_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_ex_data.3"
	ln -sf "SSL_CTX_get_verify_mode.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_verify_callback.3"
	ln -sf "SSL_CTX_get_verify_mode.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_verify_depth.3"
	ln -sf "SSL_CTX_get_verify_mode.3" "$(DESTDIR)$(mandir)/man3/SSL_get_verify_callback.3"
	ln -sf "SSL_CTX_get_verify_mode.3" "$(DESTDIR)$(mandir)/man3/SSL_get_verify_depth.3"
	ln -sf "SSL_CTX_get_verify_mode.3" "$(DESTDIR)$(mandir)/man3/SSL_get_verify_mode.3"
	ln -sf "SSL_CTX_load_verify_locations.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_default_verify_paths.3"
	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/DTLSv1_client_method.3"
	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/DTLSv1_method.3"
	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/DTLSv1_server_method.3"

	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/SSLv23_client_method.3"
	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/SSLv23_method.3"
	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/SSLv23_server_method.3"
	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/TLS_client_method.3"
	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/TLS_method.3"
	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/TLS_server_method.3"
	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/TLSv1_1_client_method.3"







>




















>

>
>
>
>

>

















>







1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
	ln -sf "RSA_set_method.3" "$(DESTDIR)$(mandir)/man3/RSA_get_method.3"
	ln -sf "RSA_set_method.3" "$(DESTDIR)$(mandir)/man3/RSA_new_method.3"
	ln -sf "RSA_set_method.3" "$(DESTDIR)$(mandir)/man3/RSA_null_method.3"
	ln -sf "RSA_set_method.3" "$(DESTDIR)$(mandir)/man3/RSA_set_default_method.3"
	ln -sf "RSA_set_method.3" "$(DESTDIR)$(mandir)/man3/RSA_set_default_openssl_method.3"
	ln -sf "RSA_sign.3" "$(DESTDIR)$(mandir)/man3/RSA_verify.3"
	ln -sf "RSA_sign_ASN1_OCTET_STRING.3" "$(DESTDIR)$(mandir)/man3/RSA_verify_ASN1_OCTET_STRING.3"
	ln -sf "RSA_size.3" "$(DESTDIR)$(mandir)/man3/RSA_bits.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA1_Final.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA1_Init.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA1_Update.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA224.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA224_Final.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA224_Init.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA224_Update.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA256.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA256_Final.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA256_Init.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA256_Update.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA384.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA384_Final.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA384_Init.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA384_Update.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA512.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA512_Final.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA512_Init.3"
	ln -sf "SHA1.3" "$(DESTDIR)$(mandir)/man3/SHA512_Update.3"
	ln -sf "SSL_CIPHER_get_name.3" "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_description.3"
	ln -sf "SSL_CIPHER_get_name.3" "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_get_auth_nid.3"
	ln -sf "SSL_CIPHER_get_name.3" "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_get_bits.3"
	ln -sf "SSL_CIPHER_get_name.3" "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_get_cipher_nid.3"
	ln -sf "SSL_CIPHER_get_name.3" "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_get_digest_nid.3"
	ln -sf "SSL_CIPHER_get_name.3" "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_get_id.3"
	ln -sf "SSL_CIPHER_get_name.3" "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_get_kx_nid.3"
	ln -sf "SSL_CIPHER_get_name.3" "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_get_version.3"
	ln -sf "SSL_CIPHER_get_name.3" "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_is_aead.3"
	ln -sf "SSL_COMP_add_compression_method.3" "$(DESTDIR)$(mandir)/man3/SSL_COMP_get_compression_methods.3"
	ln -sf "SSL_CTX_add_extra_chain_cert.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_clear_extra_chain_certs.3"
	ln -sf "SSL_CTX_add_session.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_remove_session.3"
	ln -sf "SSL_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_callback_ctrl.3"
	ln -sf "SSL_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/SSL_callback_ctrl.3"
	ln -sf "SSL_CTX_ctrl.3" "$(DESTDIR)$(mandir)/man3/SSL_ctrl.3"
	ln -sf "SSL_CTX_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_ex_data.3"
	ln -sf "SSL_CTX_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_ex_data.3"
	ln -sf "SSL_CTX_get_verify_mode.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_verify_callback.3"
	ln -sf "SSL_CTX_get_verify_mode.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_verify_depth.3"
	ln -sf "SSL_CTX_get_verify_mode.3" "$(DESTDIR)$(mandir)/man3/SSL_get_verify_callback.3"
	ln -sf "SSL_CTX_get_verify_mode.3" "$(DESTDIR)$(mandir)/man3/SSL_get_verify_depth.3"
	ln -sf "SSL_CTX_get_verify_mode.3" "$(DESTDIR)$(mandir)/man3/SSL_get_verify_mode.3"
	ln -sf "SSL_CTX_load_verify_locations.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_default_verify_paths.3"
	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/DTLSv1_client_method.3"
	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/DTLSv1_method.3"
	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/DTLSv1_server_method.3"
	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_up_ref.3"
	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/SSLv23_client_method.3"
	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/SSLv23_method.3"
	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/SSLv23_server_method.3"
	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/TLS_client_method.3"
	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/TLS_method.3"
	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/TLS_server_method.3"
	ln -sf "SSL_CTX_new.3" "$(DESTDIR)$(mandir)/man3/TLSv1_1_client_method.3"
1893
1894
1895
1896
1897
1898
1899


1900


1901
1902
1903
1904
1905
1906
1907
	ln -sf "SSL_CTX_set_generate_session_id.3" "$(DESTDIR)$(mandir)/man3/SSL_set_generate_session_id.3"
	ln -sf "SSL_CTX_set_info_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_info_callback.3"
	ln -sf "SSL_CTX_set_info_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_get_info_callback.3"
	ln -sf "SSL_CTX_set_info_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_set_info_callback.3"
	ln -sf "SSL_CTX_set_max_cert_list.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_max_cert_list.3"
	ln -sf "SSL_CTX_set_max_cert_list.3" "$(DESTDIR)$(mandir)/man3/SSL_get_max_cert_list.3"
	ln -sf "SSL_CTX_set_max_cert_list.3" "$(DESTDIR)$(mandir)/man3/SSL_set_max_cert_list.3"


	ln -sf "SSL_CTX_set_min_proto_version.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_max_proto_version.3"


	ln -sf "SSL_CTX_set_min_proto_version.3" "$(DESTDIR)$(mandir)/man3/SSL_set_max_proto_version.3"
	ln -sf "SSL_CTX_set_min_proto_version.3" "$(DESTDIR)$(mandir)/man3/SSL_set_min_proto_version.3"
	ln -sf "SSL_CTX_set_mode.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_mode.3"
	ln -sf "SSL_CTX_set_mode.3" "$(DESTDIR)$(mandir)/man3/SSL_get_mode.3"
	ln -sf "SSL_CTX_set_mode.3" "$(DESTDIR)$(mandir)/man3/SSL_set_mode.3"
	ln -sf "SSL_CTX_set_msg_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_msg_callback_arg.3"
	ln -sf "SSL_CTX_set_msg_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_set_msg_callback.3"







>
>

>
>







2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
	ln -sf "SSL_CTX_set_generate_session_id.3" "$(DESTDIR)$(mandir)/man3/SSL_set_generate_session_id.3"
	ln -sf "SSL_CTX_set_info_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_info_callback.3"
	ln -sf "SSL_CTX_set_info_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_get_info_callback.3"
	ln -sf "SSL_CTX_set_info_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_set_info_callback.3"
	ln -sf "SSL_CTX_set_max_cert_list.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_max_cert_list.3"
	ln -sf "SSL_CTX_set_max_cert_list.3" "$(DESTDIR)$(mandir)/man3/SSL_get_max_cert_list.3"
	ln -sf "SSL_CTX_set_max_cert_list.3" "$(DESTDIR)$(mandir)/man3/SSL_set_max_cert_list.3"
	ln -sf "SSL_CTX_set_min_proto_version.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_max_proto_version.3"
	ln -sf "SSL_CTX_set_min_proto_version.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_min_proto_version.3"
	ln -sf "SSL_CTX_set_min_proto_version.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_max_proto_version.3"
	ln -sf "SSL_CTX_set_min_proto_version.3" "$(DESTDIR)$(mandir)/man3/SSL_get_max_proto_version.3"
	ln -sf "SSL_CTX_set_min_proto_version.3" "$(DESTDIR)$(mandir)/man3/SSL_get_min_proto_version.3"
	ln -sf "SSL_CTX_set_min_proto_version.3" "$(DESTDIR)$(mandir)/man3/SSL_set_max_proto_version.3"
	ln -sf "SSL_CTX_set_min_proto_version.3" "$(DESTDIR)$(mandir)/man3/SSL_set_min_proto_version.3"
	ln -sf "SSL_CTX_set_mode.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_mode.3"
	ln -sf "SSL_CTX_set_mode.3" "$(DESTDIR)$(mandir)/man3/SSL_get_mode.3"
	ln -sf "SSL_CTX_set_mode.3" "$(DESTDIR)$(mandir)/man3/SSL_set_mode.3"
	ln -sf "SSL_CTX_set_msg_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_msg_callback_arg.3"
	ln -sf "SSL_CTX_set_msg_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_set_msg_callback.3"
1924
1925
1926
1927
1928
1929
1930


1931
1932
1933
1934



1935
1936
1937
1938
1939
1940
1941
	ln -sf "SSL_CTX_set_ssl_version.3" "$(DESTDIR)$(mandir)/man3/SSL_get_ssl_method.3"
	ln -sf "SSL_CTX_set_ssl_version.3" "$(DESTDIR)$(mandir)/man3/SSL_set_ssl_method.3"
	ln -sf "SSL_CTX_set_timeout.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_timeout.3"
	ln -sf "SSL_CTX_set_tlsext_servername_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_tlsext_servername_arg.3"
	ln -sf "SSL_CTX_set_tlsext_servername_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_get_servername.3"
	ln -sf "SSL_CTX_set_tlsext_servername_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_get_servername_type.3"
	ln -sf "SSL_CTX_set_tlsext_servername_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_set_tlsext_host_name.3"


	ln -sf "SSL_CTX_set_tlsext_status_cb.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_tlsext_status_arg.3"
	ln -sf "SSL_CTX_set_tlsext_status_cb.3" "$(DESTDIR)$(mandir)/man3/SSL_get_tlsext_status_ocsp_resp.3"
	ln -sf "SSL_CTX_set_tlsext_status_cb.3" "$(DESTDIR)$(mandir)/man3/SSL_set_tlsext_status_ocsp_resp.3"
	ln -sf "SSL_CTX_set_tlsext_status_cb.3" "$(DESTDIR)$(mandir)/man3/SSL_set_tlsext_status_type.3"



	ln -sf "SSL_CTX_set_tmp_dh_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_tmp_dh.3"
	ln -sf "SSL_CTX_set_tmp_dh_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_set_tmp_dh.3"
	ln -sf "SSL_CTX_set_tmp_dh_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_set_tmp_dh_callback.3"
	ln -sf "SSL_CTX_set_tmp_rsa_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_need_tmp_RSA.3"
	ln -sf "SSL_CTX_set_tmp_rsa_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_tmp_rsa.3"
	ln -sf "SSL_CTX_set_tmp_rsa_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_need_tmp_rsa.3"
	ln -sf "SSL_CTX_set_tmp_rsa_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_set_tmp_rsa.3"







>
>




>
>
>







2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
	ln -sf "SSL_CTX_set_ssl_version.3" "$(DESTDIR)$(mandir)/man3/SSL_get_ssl_method.3"
	ln -sf "SSL_CTX_set_ssl_version.3" "$(DESTDIR)$(mandir)/man3/SSL_set_ssl_method.3"
	ln -sf "SSL_CTX_set_timeout.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_timeout.3"
	ln -sf "SSL_CTX_set_tlsext_servername_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_tlsext_servername_arg.3"
	ln -sf "SSL_CTX_set_tlsext_servername_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_get_servername.3"
	ln -sf "SSL_CTX_set_tlsext_servername_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_get_servername_type.3"
	ln -sf "SSL_CTX_set_tlsext_servername_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_set_tlsext_host_name.3"
	ln -sf "SSL_CTX_set_tlsext_status_cb.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_tlsext_status_arg.3"
	ln -sf "SSL_CTX_set_tlsext_status_cb.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_tlsext_status_cb.3"
	ln -sf "SSL_CTX_set_tlsext_status_cb.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_tlsext_status_arg.3"
	ln -sf "SSL_CTX_set_tlsext_status_cb.3" "$(DESTDIR)$(mandir)/man3/SSL_get_tlsext_status_ocsp_resp.3"
	ln -sf "SSL_CTX_set_tlsext_status_cb.3" "$(DESTDIR)$(mandir)/man3/SSL_set_tlsext_status_ocsp_resp.3"
	ln -sf "SSL_CTX_set_tlsext_status_cb.3" "$(DESTDIR)$(mandir)/man3/SSL_set_tlsext_status_type.3"
	ln -sf "SSL_CTX_set_tlsext_use_srtp.3" "$(DESTDIR)$(mandir)/man3/SSL_get_selected_srtp_profile.3"
	ln -sf "SSL_CTX_set_tlsext_use_srtp.3" "$(DESTDIR)$(mandir)/man3/SSL_get_srtp_profiles.3"
	ln -sf "SSL_CTX_set_tlsext_use_srtp.3" "$(DESTDIR)$(mandir)/man3/SSL_set_tlsext_use_srtp.3"
	ln -sf "SSL_CTX_set_tmp_dh_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_tmp_dh.3"
	ln -sf "SSL_CTX_set_tmp_dh_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_set_tmp_dh.3"
	ln -sf "SSL_CTX_set_tmp_dh_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_set_tmp_dh_callback.3"
	ln -sf "SSL_CTX_set_tmp_rsa_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_need_tmp_RSA.3"
	ln -sf "SSL_CTX_set_tmp_rsa_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_tmp_rsa.3"
	ln -sf "SSL_CTX_set_tmp_rsa_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_need_tmp_rsa.3"
	ln -sf "SSL_CTX_set_tmp_rsa_callback.3" "$(DESTDIR)$(mandir)/man3/SSL_set_tmp_rsa.3"
1961
1962
1963
1964
1965
1966
1967

1968
1969

1970
1971
1972
1973
1974
1975
1976

1977

1978
1979
1980
1981

1982
1983


1984
1985
1986
1987
1988
1989
1990
	ln -sf "SSL_CTX_use_certificate.3" "$(DESTDIR)$(mandir)/man3/SSL_use_PrivateKey_file.3"
	ln -sf "SSL_CTX_use_certificate.3" "$(DESTDIR)$(mandir)/man3/SSL_use_RSAPrivateKey.3"
	ln -sf "SSL_CTX_use_certificate.3" "$(DESTDIR)$(mandir)/man3/SSL_use_RSAPrivateKey_ASN1.3"
	ln -sf "SSL_CTX_use_certificate.3" "$(DESTDIR)$(mandir)/man3/SSL_use_RSAPrivateKey_file.3"
	ln -sf "SSL_CTX_use_certificate.3" "$(DESTDIR)$(mandir)/man3/SSL_use_certificate.3"
	ln -sf "SSL_CTX_use_certificate.3" "$(DESTDIR)$(mandir)/man3/SSL_use_certificate_ASN1.3"
	ln -sf "SSL_CTX_use_certificate.3" "$(DESTDIR)$(mandir)/man3/SSL_use_certificate_file.3"

	ln -sf "SSL_SESSION_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/SSL_SESSION_get_ex_data.3"
	ln -sf "SSL_SESSION_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/SSL_SESSION_set_ex_data.3"

	ln -sf "SSL_SESSION_get_time.3" "$(DESTDIR)$(mandir)/man3/SSL_SESSION_get_timeout.3"
	ln -sf "SSL_SESSION_get_time.3" "$(DESTDIR)$(mandir)/man3/SSL_SESSION_set_time.3"
	ln -sf "SSL_SESSION_get_time.3" "$(DESTDIR)$(mandir)/man3/SSL_SESSION_set_timeout.3"
	ln -sf "SSL_SESSION_get_time.3" "$(DESTDIR)$(mandir)/man3/SSL_get_time.3"
	ln -sf "SSL_SESSION_get_time.3" "$(DESTDIR)$(mandir)/man3/SSL_get_timeout.3"
	ln -sf "SSL_SESSION_get_time.3" "$(DESTDIR)$(mandir)/man3/SSL_set_time.3"
	ln -sf "SSL_SESSION_get_time.3" "$(DESTDIR)$(mandir)/man3/SSL_set_timeout.3"

	ln -sf "SSL_SESSION_print.3" "$(DESTDIR)$(mandir)/man3/SSL_SESSION_print_fp.3"

	ln -sf "SSL_alert_type_string.3" "$(DESTDIR)$(mandir)/man3/SSL_alert_desc_string.3"
	ln -sf "SSL_alert_type_string.3" "$(DESTDIR)$(mandir)/man3/SSL_alert_desc_string_long.3"
	ln -sf "SSL_alert_type_string.3" "$(DESTDIR)$(mandir)/man3/SSL_alert_type_string_long.3"
	ln -sf "SSL_get_certificate.3" "$(DESTDIR)$(mandir)/man3/SSL_get_privatekey.3"

	ln -sf "SSL_get_ciphers.3" "$(DESTDIR)$(mandir)/man3/SSL_get_cipher_list.3"
	ln -sf "SSL_get_client_CA_list.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_client_CA_list.3"


	ln -sf "SSL_get_current_cipher.3" "$(DESTDIR)$(mandir)/man3/SSL_get_cipher.3"
	ln -sf "SSL_get_current_cipher.3" "$(DESTDIR)$(mandir)/man3/SSL_get_cipher_bits.3"
	ln -sf "SSL_get_current_cipher.3" "$(DESTDIR)$(mandir)/man3/SSL_get_cipher_name.3"
	ln -sf "SSL_get_current_cipher.3" "$(DESTDIR)$(mandir)/man3/SSL_get_cipher_version.3"
	ln -sf "SSL_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/SSL_get_ex_data.3"
	ln -sf "SSL_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/SSL_set_ex_data.3"
	ln -sf "SSL_get_fd.3" "$(DESTDIR)$(mandir)/man3/SSL_get_rfd.3"







>


>







>

>




>


>
>







2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
	ln -sf "SSL_CTX_use_certificate.3" "$(DESTDIR)$(mandir)/man3/SSL_use_PrivateKey_file.3"
	ln -sf "SSL_CTX_use_certificate.3" "$(DESTDIR)$(mandir)/man3/SSL_use_RSAPrivateKey.3"
	ln -sf "SSL_CTX_use_certificate.3" "$(DESTDIR)$(mandir)/man3/SSL_use_RSAPrivateKey_ASN1.3"
	ln -sf "SSL_CTX_use_certificate.3" "$(DESTDIR)$(mandir)/man3/SSL_use_RSAPrivateKey_file.3"
	ln -sf "SSL_CTX_use_certificate.3" "$(DESTDIR)$(mandir)/man3/SSL_use_certificate.3"
	ln -sf "SSL_CTX_use_certificate.3" "$(DESTDIR)$(mandir)/man3/SSL_use_certificate_ASN1.3"
	ln -sf "SSL_CTX_use_certificate.3" "$(DESTDIR)$(mandir)/man3/SSL_use_certificate_file.3"
	ln -sf "SSL_SESSION_free.3" "$(DESTDIR)$(mandir)/man3/SSL_SESSION_up_ref.3"
	ln -sf "SSL_SESSION_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/SSL_SESSION_get_ex_data.3"
	ln -sf "SSL_SESSION_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/SSL_SESSION_set_ex_data.3"
	ln -sf "SSL_SESSION_get_id.3" "$(DESTDIR)$(mandir)/man3/SSL_SESSION_set1_id.3"
	ln -sf "SSL_SESSION_get_time.3" "$(DESTDIR)$(mandir)/man3/SSL_SESSION_get_timeout.3"
	ln -sf "SSL_SESSION_get_time.3" "$(DESTDIR)$(mandir)/man3/SSL_SESSION_set_time.3"
	ln -sf "SSL_SESSION_get_time.3" "$(DESTDIR)$(mandir)/man3/SSL_SESSION_set_timeout.3"
	ln -sf "SSL_SESSION_get_time.3" "$(DESTDIR)$(mandir)/man3/SSL_get_time.3"
	ln -sf "SSL_SESSION_get_time.3" "$(DESTDIR)$(mandir)/man3/SSL_get_timeout.3"
	ln -sf "SSL_SESSION_get_time.3" "$(DESTDIR)$(mandir)/man3/SSL_set_time.3"
	ln -sf "SSL_SESSION_get_time.3" "$(DESTDIR)$(mandir)/man3/SSL_set_timeout.3"
	ln -sf "SSL_SESSION_has_ticket.3" "$(DESTDIR)$(mandir)/man3/SSL_SESSION_get_ticket_lifetime_hint.3"
	ln -sf "SSL_SESSION_print.3" "$(DESTDIR)$(mandir)/man3/SSL_SESSION_print_fp.3"
	ln -sf "SSL_SESSION_set1_id_context.3" "$(DESTDIR)$(mandir)/man3/SSL_SESSION_get0_id_context.3"
	ln -sf "SSL_alert_type_string.3" "$(DESTDIR)$(mandir)/man3/SSL_alert_desc_string.3"
	ln -sf "SSL_alert_type_string.3" "$(DESTDIR)$(mandir)/man3/SSL_alert_desc_string_long.3"
	ln -sf "SSL_alert_type_string.3" "$(DESTDIR)$(mandir)/man3/SSL_alert_type_string_long.3"
	ln -sf "SSL_get_certificate.3" "$(DESTDIR)$(mandir)/man3/SSL_get_privatekey.3"
	ln -sf "SSL_get_ciphers.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_ciphers.3"
	ln -sf "SSL_get_ciphers.3" "$(DESTDIR)$(mandir)/man3/SSL_get_cipher_list.3"
	ln -sf "SSL_get_client_CA_list.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_client_CA_list.3"
	ln -sf "SSL_get_client_random.3" "$(DESTDIR)$(mandir)/man3/SSL_SESSION_get_master_key.3"
	ln -sf "SSL_get_client_random.3" "$(DESTDIR)$(mandir)/man3/SSL_get_server_random.3"
	ln -sf "SSL_get_current_cipher.3" "$(DESTDIR)$(mandir)/man3/SSL_get_cipher.3"
	ln -sf "SSL_get_current_cipher.3" "$(DESTDIR)$(mandir)/man3/SSL_get_cipher_bits.3"
	ln -sf "SSL_get_current_cipher.3" "$(DESTDIR)$(mandir)/man3/SSL_get_cipher_name.3"
	ln -sf "SSL_get_current_cipher.3" "$(DESTDIR)$(mandir)/man3/SSL_get_cipher_version.3"
	ln -sf "SSL_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/SSL_get_ex_data.3"
	ln -sf "SSL_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/SSL_set_ex_data.3"
	ln -sf "SSL_get_fd.3" "$(DESTDIR)$(mandir)/man3/SSL_get_rfd.3"
1999
2000
2001
2002
2003
2004
2005

2006
2007
2008
2009
2010
2011

2012


2013
2014
2015
2016
2017
2018
2019
	ln -sf "SSL_get_state.3" "$(DESTDIR)$(mandir)/man3/SSL_is_init_finished.3"
	ln -sf "SSL_get_state.3" "$(DESTDIR)$(mandir)/man3/SSL_state.3"
	ln -sf "SSL_get_version.3" "$(DESTDIR)$(mandir)/man3/SSL_version.3"
	ln -sf "SSL_library_init.3" "$(DESTDIR)$(mandir)/man3/OpenSSL_add_ssl_algorithms.3"
	ln -sf "SSL_library_init.3" "$(DESTDIR)$(mandir)/man3/SSLeay_add_ssl_algorithms.3"
	ln -sf "SSL_load_client_CA_file.3" "$(DESTDIR)$(mandir)/man3/SSL_add_dir_cert_subjects_to_stack.3"
	ln -sf "SSL_load_client_CA_file.3" "$(DESTDIR)$(mandir)/man3/SSL_add_file_cert_subjects_to_stack.3"

	ln -sf "SSL_num_renegotiations.3" "$(DESTDIR)$(mandir)/man3/SSL_clear_num_renegotiations.3"
	ln -sf "SSL_num_renegotiations.3" "$(DESTDIR)$(mandir)/man3/SSL_total_renegotiations.3"
	ln -sf "SSL_read.3" "$(DESTDIR)$(mandir)/man3/SSL_peek.3"
	ln -sf "SSL_renegotiate.3" "$(DESTDIR)$(mandir)/man3/SSL_renegotiate_abbreviated.3"
	ln -sf "SSL_renegotiate.3" "$(DESTDIR)$(mandir)/man3/SSL_renegotiate_pending.3"
	ln -sf "SSL_rstate_string.3" "$(DESTDIR)$(mandir)/man3/SSL_rstate_string_long.3"

	ln -sf "SSL_set1_param.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set1_param.3"


	ln -sf "SSL_set_connect_state.3" "$(DESTDIR)$(mandir)/man3/SSL_set_accept_state.3"
	ln -sf "SSL_set_fd.3" "$(DESTDIR)$(mandir)/man3/SSL_set_rfd.3"
	ln -sf "SSL_set_fd.3" "$(DESTDIR)$(mandir)/man3/SSL_set_wfd.3"
	ln -sf "SSL_set_max_send_fragment.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_max_send_fragment.3"
	ln -sf "SSL_set_shutdown.3" "$(DESTDIR)$(mandir)/man3/SSL_get_shutdown.3"
	ln -sf "SSL_set_tmp_ecdh.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_ecdh_auto.3"
	ln -sf "SSL_set_tmp_ecdh.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_tmp_ecdh.3"







>






>

>
>







2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
	ln -sf "SSL_get_state.3" "$(DESTDIR)$(mandir)/man3/SSL_is_init_finished.3"
	ln -sf "SSL_get_state.3" "$(DESTDIR)$(mandir)/man3/SSL_state.3"
	ln -sf "SSL_get_version.3" "$(DESTDIR)$(mandir)/man3/SSL_version.3"
	ln -sf "SSL_library_init.3" "$(DESTDIR)$(mandir)/man3/OpenSSL_add_ssl_algorithms.3"
	ln -sf "SSL_library_init.3" "$(DESTDIR)$(mandir)/man3/SSLeay_add_ssl_algorithms.3"
	ln -sf "SSL_load_client_CA_file.3" "$(DESTDIR)$(mandir)/man3/SSL_add_dir_cert_subjects_to_stack.3"
	ln -sf "SSL_load_client_CA_file.3" "$(DESTDIR)$(mandir)/man3/SSL_add_file_cert_subjects_to_stack.3"
	ln -sf "SSL_new.3" "$(DESTDIR)$(mandir)/man3/SSL_up_ref.3"
	ln -sf "SSL_num_renegotiations.3" "$(DESTDIR)$(mandir)/man3/SSL_clear_num_renegotiations.3"
	ln -sf "SSL_num_renegotiations.3" "$(DESTDIR)$(mandir)/man3/SSL_total_renegotiations.3"
	ln -sf "SSL_read.3" "$(DESTDIR)$(mandir)/man3/SSL_peek.3"
	ln -sf "SSL_renegotiate.3" "$(DESTDIR)$(mandir)/man3/SSL_renegotiate_abbreviated.3"
	ln -sf "SSL_renegotiate.3" "$(DESTDIR)$(mandir)/man3/SSL_renegotiate_pending.3"
	ln -sf "SSL_rstate_string.3" "$(DESTDIR)$(mandir)/man3/SSL_rstate_string_long.3"
	ln -sf "SSL_set1_param.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_get0_param.3"
	ln -sf "SSL_set1_param.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set1_param.3"
	ln -sf "SSL_set1_param.3" "$(DESTDIR)$(mandir)/man3/SSL_get0_param.3"
	ln -sf "SSL_set_connect_state.3" "$(DESTDIR)$(mandir)/man3/SSL_is_server.3"
	ln -sf "SSL_set_connect_state.3" "$(DESTDIR)$(mandir)/man3/SSL_set_accept_state.3"
	ln -sf "SSL_set_fd.3" "$(DESTDIR)$(mandir)/man3/SSL_set_rfd.3"
	ln -sf "SSL_set_fd.3" "$(DESTDIR)$(mandir)/man3/SSL_set_wfd.3"
	ln -sf "SSL_set_max_send_fragment.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_max_send_fragment.3"
	ln -sf "SSL_set_shutdown.3" "$(DESTDIR)$(mandir)/man3/SSL_get_shutdown.3"
	ln -sf "SSL_set_tmp_ecdh.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_ecdh_auto.3"
	ln -sf "SSL_set_tmp_ecdh.3" "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_tmp_ecdh.3"
2088
2089
2090
2091
2092
2093
2094

2095
2096

2097
2098

2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117

2118

2119
2120
2121
2122
2123
2124
2125
	ln -sf "UI_new.3" "$(DESTDIR)$(mandir)/man3/UI_process.3"
	ln -sf "UI_new.3" "$(DESTDIR)$(mandir)/man3/UI_set_default_method.3"
	ln -sf "UI_new.3" "$(DESTDIR)$(mandir)/man3/UI_set_method.3"
	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509V3_EXT_d2i.3"
	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509V3_EXT_i2d.3"
	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509V3_add1_i2d.3"
	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_add1_ext_i2d.3"

	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_get_ext_d2i.3"
	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509_REVOKED_add1_ext_i2d.3"

	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509_REVOKED_get_ext_d2i.3"
	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509_add1_ext_i2d.3"

	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509_get_ext_d2i.3"
	ln -sf "X509_ALGOR_dup.3" "$(DESTDIR)$(mandir)/man3/X509_ALGOR_cmp.3"
	ln -sf "X509_ALGOR_dup.3" "$(DESTDIR)$(mandir)/man3/X509_ALGOR_free.3"
	ln -sf "X509_ALGOR_dup.3" "$(DESTDIR)$(mandir)/man3/X509_ALGOR_get0.3"
	ln -sf "X509_ALGOR_dup.3" "$(DESTDIR)$(mandir)/man3/X509_ALGOR_new.3"
	ln -sf "X509_ALGOR_dup.3" "$(DESTDIR)$(mandir)/man3/X509_ALGOR_set0.3"
	ln -sf "X509_ALGOR_dup.3" "$(DESTDIR)$(mandir)/man3/X509_ALGOR_set_md.3"
	ln -sf "X509_ATTRIBUTE_new.3" "$(DESTDIR)$(mandir)/man3/X509_ATTRIBUTE_free.3"
	ln -sf "X509_CINF_new.3" "$(DESTDIR)$(mandir)/man3/X509_CERT_AUX_free.3"
	ln -sf "X509_CINF_new.3" "$(DESTDIR)$(mandir)/man3/X509_CERT_AUX_new.3"
	ln -sf "X509_CINF_new.3" "$(DESTDIR)$(mandir)/man3/X509_CINF_free.3"
	ln -sf "X509_CINF_new.3" "$(DESTDIR)$(mandir)/man3/X509_VAL_free.3"
	ln -sf "X509_CINF_new.3" "$(DESTDIR)$(mandir)/man3/X509_VAL_new.3"
	ln -sf "X509_CRL_get0_by_serial.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_add0_revoked.3"
	ln -sf "X509_CRL_get0_by_serial.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_get0_by_cert.3"
	ln -sf "X509_CRL_get0_by_serial.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_get_REVOKED.3"
	ln -sf "X509_CRL_get0_by_serial.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_sort.3"
	ln -sf "X509_CRL_new.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_INFO_free.3"
	ln -sf "X509_CRL_new.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_INFO_new.3"

	ln -sf "X509_CRL_new.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_free.3"

	ln -sf "X509_EXTENSION_set_object.3" "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_create_by_NID.3"
	ln -sf "X509_EXTENSION_set_object.3" "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_create_by_OBJ.3"
	ln -sf "X509_EXTENSION_set_object.3" "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_free.3"
	ln -sf "X509_EXTENSION_set_object.3" "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_get_critical.3"
	ln -sf "X509_EXTENSION_set_object.3" "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_get_data.3"
	ln -sf "X509_EXTENSION_set_object.3" "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_get_object.3"
	ln -sf "X509_EXTENSION_set_object.3" "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_new.3"







>


>


>



















>

>







2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
	ln -sf "UI_new.3" "$(DESTDIR)$(mandir)/man3/UI_process.3"
	ln -sf "UI_new.3" "$(DESTDIR)$(mandir)/man3/UI_set_default_method.3"
	ln -sf "UI_new.3" "$(DESTDIR)$(mandir)/man3/UI_set_method.3"
	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509V3_EXT_d2i.3"
	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509V3_EXT_i2d.3"
	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509V3_add1_i2d.3"
	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_add1_ext_i2d.3"
	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_get0_extensions.3"
	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_get_ext_d2i.3"
	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509_REVOKED_add1_ext_i2d.3"
	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509_REVOKED_get0_extensions.3"
	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509_REVOKED_get_ext_d2i.3"
	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509_add1_ext_i2d.3"
	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509_get0_extensions.3"
	ln -sf "X509V3_get_d2i.3" "$(DESTDIR)$(mandir)/man3/X509_get_ext_d2i.3"
	ln -sf "X509_ALGOR_dup.3" "$(DESTDIR)$(mandir)/man3/X509_ALGOR_cmp.3"
	ln -sf "X509_ALGOR_dup.3" "$(DESTDIR)$(mandir)/man3/X509_ALGOR_free.3"
	ln -sf "X509_ALGOR_dup.3" "$(DESTDIR)$(mandir)/man3/X509_ALGOR_get0.3"
	ln -sf "X509_ALGOR_dup.3" "$(DESTDIR)$(mandir)/man3/X509_ALGOR_new.3"
	ln -sf "X509_ALGOR_dup.3" "$(DESTDIR)$(mandir)/man3/X509_ALGOR_set0.3"
	ln -sf "X509_ALGOR_dup.3" "$(DESTDIR)$(mandir)/man3/X509_ALGOR_set_md.3"
	ln -sf "X509_ATTRIBUTE_new.3" "$(DESTDIR)$(mandir)/man3/X509_ATTRIBUTE_free.3"
	ln -sf "X509_CINF_new.3" "$(DESTDIR)$(mandir)/man3/X509_CERT_AUX_free.3"
	ln -sf "X509_CINF_new.3" "$(DESTDIR)$(mandir)/man3/X509_CERT_AUX_new.3"
	ln -sf "X509_CINF_new.3" "$(DESTDIR)$(mandir)/man3/X509_CINF_free.3"
	ln -sf "X509_CINF_new.3" "$(DESTDIR)$(mandir)/man3/X509_VAL_free.3"
	ln -sf "X509_CINF_new.3" "$(DESTDIR)$(mandir)/man3/X509_VAL_new.3"
	ln -sf "X509_CRL_get0_by_serial.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_add0_revoked.3"
	ln -sf "X509_CRL_get0_by_serial.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_get0_by_cert.3"
	ln -sf "X509_CRL_get0_by_serial.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_get_REVOKED.3"
	ln -sf "X509_CRL_get0_by_serial.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_sort.3"
	ln -sf "X509_CRL_new.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_INFO_free.3"
	ln -sf "X509_CRL_new.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_INFO_new.3"
	ln -sf "X509_CRL_new.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_dup.3"
	ln -sf "X509_CRL_new.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_free.3"
	ln -sf "X509_CRL_new.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_up_ref.3"
	ln -sf "X509_EXTENSION_set_object.3" "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_create_by_NID.3"
	ln -sf "X509_EXTENSION_set_object.3" "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_create_by_OBJ.3"
	ln -sf "X509_EXTENSION_set_object.3" "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_free.3"
	ln -sf "X509_EXTENSION_set_object.3" "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_get_critical.3"
	ln -sf "X509_EXTENSION_set_object.3" "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_get_data.3"
	ln -sf "X509_EXTENSION_set_object.3" "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_get_object.3"
	ln -sf "X509_EXTENSION_set_object.3" "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_new.3"
2146
2147
2148
2149
2150
2151
2152






2153
2154

2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166

2167


2168
2169
2170


2171
2172
2173
2174
2175
2176
2177
2178
2179
2180


2181
2182
2183


2184
2185
2186
2187
2188












2189
2190


2191





2192
2193







2194
2195

2196
2197
2198

2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210















2211
2212

2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227

2228
2229
2230
2231
2232
2233
2234
	ln -sf "X509_NAME_get_index_by_NID.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_get_index_by_OBJ.3"
	ln -sf "X509_NAME_get_index_by_NID.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_get_text_by_NID.3"
	ln -sf "X509_NAME_get_index_by_NID.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_get_text_by_OBJ.3"
	ln -sf "X509_NAME_new.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_free.3"
	ln -sf "X509_NAME_print_ex.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_oneline.3"
	ln -sf "X509_NAME_print_ex.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_print.3"
	ln -sf "X509_NAME_print_ex.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_print_ex_fp.3"






	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_free.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_get.3"

	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_get0_param.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_set.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_set0_param.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/d2i_PUBKEY.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/d2i_PUBKEY_bio.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/d2i_PUBKEY_fp.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/i2d_PUBKEY.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/i2d_PUBKEY_bio.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/i2d_PUBKEY_fp.3"
	ln -sf "X509_REQ_new.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_INFO_free.3"
	ln -sf "X509_REQ_new.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_INFO_new.3"
	ln -sf "X509_REQ_new.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_free.3"

	ln -sf "X509_REVOKED_new.3" "$(DESTDIR)$(mandir)/man3/X509_REVOKED_free.3"


	ln -sf "X509_REVOKED_new.3" "$(DESTDIR)$(mandir)/man3/X509_REVOKED_set_revocationDate.3"
	ln -sf "X509_REVOKED_new.3" "$(DESTDIR)$(mandir)/man3/X509_REVOKED_set_serialNumber.3"
	ln -sf "X509_SIG_new.3" "$(DESTDIR)$(mandir)/man3/X509_SIG_free.3"


	ln -sf "X509_STORE_CTX_get_error.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get1_chain.3"
	ln -sf "X509_STORE_CTX_get_error.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get_current_cert.3"
	ln -sf "X509_STORE_CTX_get_error.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get_error_depth.3"
	ln -sf "X509_STORE_CTX_get_error.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set_error.3"
	ln -sf "X509_STORE_CTX_get_error.3" "$(DESTDIR)$(mandir)/man3/X509_verify_cert_error_string.3"
	ln -sf "X509_STORE_CTX_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get_ex_data.3"
	ln -sf "X509_STORE_CTX_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set_ex_data.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_cleanup.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_free.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get0_param.3"


	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_init.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set0_crls.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set0_param.3"


	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set_cert.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set_chain.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set_default.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_trusted_stack.3"
	ln -sf "X509_STORE_load_locations.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_set_default_paths.3"












	ln -sf "X509_STORE_set_verify_cb_func.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_set_verify_cb.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_add0_policy.3"


	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_clear_flags.3"





	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_get_depth.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_get_flags.3"







	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set1_policies.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set_depth.3"

	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set_purpose.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set_time.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set_trust.3"

	ln -sf "X509_check_host.3" "$(DESTDIR)$(mandir)/man3/X509_check_email.3"
	ln -sf "X509_check_host.3" "$(DESTDIR)$(mandir)/man3/X509_check_ip.3"
	ln -sf "X509_check_host.3" "$(DESTDIR)$(mandir)/man3/X509_check_ip_asc.3"
	ln -sf "X509_check_private_key.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_check_private_key.3"
	ln -sf "X509_cmp_time.3" "$(DESTDIR)$(mandir)/man3/X509_cmp_current_time.3"
	ln -sf "X509_cmp_time.3" "$(DESTDIR)$(mandir)/man3/X509_time_adj.3"
	ln -sf "X509_cmp_time.3" "$(DESTDIR)$(mandir)/man3/X509_time_adj_ex.3"
	ln -sf "X509_digest.3" "$(DESTDIR)$(mandir)/man3/PKCS7_ISSUER_AND_SERIAL_digest.3"
	ln -sf "X509_digest.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_digest.3"
	ln -sf "X509_digest.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_digest.3"
	ln -sf "X509_digest.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_digest.3"
	ln -sf "X509_digest.3" "$(DESTDIR)$(mandir)/man3/X509_pubkey_digest.3"















	ln -sf "X509_get_pubkey.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_get_pubkey.3"
	ln -sf "X509_get_pubkey.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_set_pubkey.3"

	ln -sf "X509_get_pubkey.3" "$(DESTDIR)$(mandir)/man3/X509_get_X509_PUBKEY.3"
	ln -sf "X509_get_pubkey.3" "$(DESTDIR)$(mandir)/man3/X509_set_pubkey.3"
	ln -sf "X509_get_serialNumber.3" "$(DESTDIR)$(mandir)/man3/X509_set_serialNumber.3"
	ln -sf "X509_get_subject_name.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_get_issuer.3"
	ln -sf "X509_get_subject_name.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_set_issuer_name.3"
	ln -sf "X509_get_subject_name.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_get_subject_name.3"
	ln -sf "X509_get_subject_name.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_set_subject_name.3"
	ln -sf "X509_get_subject_name.3" "$(DESTDIR)$(mandir)/man3/X509_get_issuer_name.3"
	ln -sf "X509_get_subject_name.3" "$(DESTDIR)$(mandir)/man3/X509_set_issuer_name.3"
	ln -sf "X509_get_subject_name.3" "$(DESTDIR)$(mandir)/man3/X509_set_subject_name.3"
	ln -sf "X509_get_version.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_get_version.3"
	ln -sf "X509_get_version.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_set_version.3"
	ln -sf "X509_get_version.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_get_version.3"
	ln -sf "X509_get_version.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_set_version.3"
	ln -sf "X509_get_version.3" "$(DESTDIR)$(mandir)/man3/X509_set_version.3"

	ln -sf "X509_new.3" "$(DESTDIR)$(mandir)/man3/X509_free.3"
	ln -sf "X509_new.3" "$(DESTDIR)$(mandir)/man3/X509_up_ref.3"
	ln -sf "X509_sign.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_sign.3"
	ln -sf "X509_sign.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_sign_ctx.3"
	ln -sf "X509_sign.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_verify.3"
	ln -sf "X509_sign.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_sign.3"
	ln -sf "X509_sign.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_sign_ctx.3"







>
>
>
>
>
>


>












>

>
>



>
>










>
>



>
>





>
>
>
>
>
>
>
>
>
>
>
>


>
>

>
>
>
>
>


>
>
>
>
>
>
>


>



>












>
>
>
>
>
>
>
>
>
>
>
>
>
>
>


>















>







2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
	ln -sf "X509_NAME_get_index_by_NID.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_get_index_by_OBJ.3"
	ln -sf "X509_NAME_get_index_by_NID.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_get_text_by_NID.3"
	ln -sf "X509_NAME_get_index_by_NID.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_get_text_by_OBJ.3"
	ln -sf "X509_NAME_new.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_free.3"
	ln -sf "X509_NAME_print_ex.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_oneline.3"
	ln -sf "X509_NAME_print_ex.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_print.3"
	ln -sf "X509_NAME_print_ex.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_print_ex_fp.3"
	ln -sf "X509_OBJECT_get0_X509.3" "$(DESTDIR)$(mandir)/man3/X509_OBJECT_free_contents.3"
	ln -sf "X509_OBJECT_get0_X509.3" "$(DESTDIR)$(mandir)/man3/X509_OBJECT_get0_X509_CRL.3"
	ln -sf "X509_OBJECT_get0_X509.3" "$(DESTDIR)$(mandir)/man3/X509_OBJECT_idx_by_subject.3"
	ln -sf "X509_OBJECT_get0_X509.3" "$(DESTDIR)$(mandir)/man3/X509_OBJECT_retrieve_by_subject.3"
	ln -sf "X509_OBJECT_get0_X509.3" "$(DESTDIR)$(mandir)/man3/X509_OBJECT_retrieve_match.3"
	ln -sf "X509_OBJECT_get0_X509.3" "$(DESTDIR)$(mandir)/man3/X509_OBJECT_up_ref_count.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_free.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_get.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_get0.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_get0_param.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_set.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_set0_param.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/d2i_PUBKEY.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/d2i_PUBKEY_bio.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/d2i_PUBKEY_fp.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/i2d_PUBKEY.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/i2d_PUBKEY_bio.3"
	ln -sf "X509_PUBKEY_new.3" "$(DESTDIR)$(mandir)/man3/i2d_PUBKEY_fp.3"
	ln -sf "X509_REQ_new.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_INFO_free.3"
	ln -sf "X509_REQ_new.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_INFO_new.3"
	ln -sf "X509_REQ_new.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_free.3"
	ln -sf "X509_REVOKED_new.3" "$(DESTDIR)$(mandir)/man3/X509_REVOKED_dup.3"
	ln -sf "X509_REVOKED_new.3" "$(DESTDIR)$(mandir)/man3/X509_REVOKED_free.3"
	ln -sf "X509_REVOKED_new.3" "$(DESTDIR)$(mandir)/man3/X509_REVOKED_get0_revocationDate.3"
	ln -sf "X509_REVOKED_new.3" "$(DESTDIR)$(mandir)/man3/X509_REVOKED_get0_serialNumber.3"
	ln -sf "X509_REVOKED_new.3" "$(DESTDIR)$(mandir)/man3/X509_REVOKED_set_revocationDate.3"
	ln -sf "X509_REVOKED_new.3" "$(DESTDIR)$(mandir)/man3/X509_REVOKED_set_serialNumber.3"
	ln -sf "X509_SIG_new.3" "$(DESTDIR)$(mandir)/man3/X509_SIG_free.3"
	ln -sf "X509_STORE_CTX_get_error.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get0_cert.3"
	ln -sf "X509_STORE_CTX_get_error.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get0_chain.3"
	ln -sf "X509_STORE_CTX_get_error.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get1_chain.3"
	ln -sf "X509_STORE_CTX_get_error.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get_current_cert.3"
	ln -sf "X509_STORE_CTX_get_error.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get_error_depth.3"
	ln -sf "X509_STORE_CTX_get_error.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set_error.3"
	ln -sf "X509_STORE_CTX_get_error.3" "$(DESTDIR)$(mandir)/man3/X509_verify_cert_error_string.3"
	ln -sf "X509_STORE_CTX_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get_ex_data.3"
	ln -sf "X509_STORE_CTX_get_ex_new_index.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set_ex_data.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_cleanup.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_free.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get0_param.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get0_store.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get0_untrusted.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_init.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set0_crls.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set0_param.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set0_trusted_stack.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set0_untrusted.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set_cert.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set_chain.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set_default.3"
	ln -sf "X509_STORE_CTX_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_trusted_stack.3"
	ln -sf "X509_STORE_load_locations.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_set_default_paths.3"
	ln -sf "X509_STORE_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_free.3"
	ln -sf "X509_STORE_new.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_up_ref.3"
	ln -sf "X509_STORE_set1_param.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_add_cert.3"
	ln -sf "X509_STORE_set1_param.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_add_crl.3"
	ln -sf "X509_STORE_set1_param.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_get0_objects.3"
	ln -sf "X509_STORE_set1_param.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_get_ex_data.3"
	ln -sf "X509_STORE_set1_param.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_get_ex_new_index.3"
	ln -sf "X509_STORE_set1_param.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_set_depth.3"
	ln -sf "X509_STORE_set1_param.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_set_ex_data.3"
	ln -sf "X509_STORE_set1_param.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_set_flags.3"
	ln -sf "X509_STORE_set1_param.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_set_purpose.3"
	ln -sf "X509_STORE_set1_param.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_set_trust.3"
	ln -sf "X509_STORE_set_verify_cb_func.3" "$(DESTDIR)$(mandir)/man3/X509_STORE_set_verify_cb.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_add0_policy.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_add0_table.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_add1_host.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_clear_flags.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_free.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_get0.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_get0_name.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_get0_peername.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_get_count.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_get_depth.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_get_flags.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_lookup.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_new.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set1_email.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set1_host.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set1_ip.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set1_ip_asc.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set1_name.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set1_policies.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set_depth.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set_hostflags.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set_purpose.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set_time.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set_trust.3"
	ln -sf "X509_VERIFY_PARAM_set_flags.3" "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_table_cleanup.3"
	ln -sf "X509_check_host.3" "$(DESTDIR)$(mandir)/man3/X509_check_email.3"
	ln -sf "X509_check_host.3" "$(DESTDIR)$(mandir)/man3/X509_check_ip.3"
	ln -sf "X509_check_host.3" "$(DESTDIR)$(mandir)/man3/X509_check_ip_asc.3"
	ln -sf "X509_check_private_key.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_check_private_key.3"
	ln -sf "X509_cmp_time.3" "$(DESTDIR)$(mandir)/man3/X509_cmp_current_time.3"
	ln -sf "X509_cmp_time.3" "$(DESTDIR)$(mandir)/man3/X509_time_adj.3"
	ln -sf "X509_cmp_time.3" "$(DESTDIR)$(mandir)/man3/X509_time_adj_ex.3"
	ln -sf "X509_digest.3" "$(DESTDIR)$(mandir)/man3/PKCS7_ISSUER_AND_SERIAL_digest.3"
	ln -sf "X509_digest.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_digest.3"
	ln -sf "X509_digest.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_digest.3"
	ln -sf "X509_digest.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_digest.3"
	ln -sf "X509_digest.3" "$(DESTDIR)$(mandir)/man3/X509_pubkey_digest.3"
	ln -sf "X509_get0_notBefore.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_get0_lastUpdate.3"
	ln -sf "X509_get0_notBefore.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_get0_nextUpdate.3"
	ln -sf "X509_get0_notBefore.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_set1_lastUpdate.3"
	ln -sf "X509_get0_notBefore.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_set1_nextUpdate.3"
	ln -sf "X509_get0_notBefore.3" "$(DESTDIR)$(mandir)/man3/X509_get0_notAfter.3"
	ln -sf "X509_get0_notBefore.3" "$(DESTDIR)$(mandir)/man3/X509_getm_notAfter.3"
	ln -sf "X509_get0_notBefore.3" "$(DESTDIR)$(mandir)/man3/X509_getm_notBefore.3"
	ln -sf "X509_get0_notBefore.3" "$(DESTDIR)$(mandir)/man3/X509_set1_notAfter.3"
	ln -sf "X509_get0_notBefore.3" "$(DESTDIR)$(mandir)/man3/X509_set1_notBefore.3"
	ln -sf "X509_get0_signature.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_get0_signature.3"
	ln -sf "X509_get0_signature.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_get_signature_nid.3"
	ln -sf "X509_get0_signature.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_get0_signature.3"
	ln -sf "X509_get0_signature.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_get_signature_nid.3"
	ln -sf "X509_get0_signature.3" "$(DESTDIR)$(mandir)/man3/X509_get0_tbs_sigalg.3"
	ln -sf "X509_get0_signature.3" "$(DESTDIR)$(mandir)/man3/X509_get_signature_nid.3"
	ln -sf "X509_get_pubkey.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_get_pubkey.3"
	ln -sf "X509_get_pubkey.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_set_pubkey.3"
	ln -sf "X509_get_pubkey.3" "$(DESTDIR)$(mandir)/man3/X509_get0_pubkey.3"
	ln -sf "X509_get_pubkey.3" "$(DESTDIR)$(mandir)/man3/X509_get_X509_PUBKEY.3"
	ln -sf "X509_get_pubkey.3" "$(DESTDIR)$(mandir)/man3/X509_set_pubkey.3"
	ln -sf "X509_get_serialNumber.3" "$(DESTDIR)$(mandir)/man3/X509_set_serialNumber.3"
	ln -sf "X509_get_subject_name.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_get_issuer.3"
	ln -sf "X509_get_subject_name.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_set_issuer_name.3"
	ln -sf "X509_get_subject_name.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_get_subject_name.3"
	ln -sf "X509_get_subject_name.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_set_subject_name.3"
	ln -sf "X509_get_subject_name.3" "$(DESTDIR)$(mandir)/man3/X509_get_issuer_name.3"
	ln -sf "X509_get_subject_name.3" "$(DESTDIR)$(mandir)/man3/X509_set_issuer_name.3"
	ln -sf "X509_get_subject_name.3" "$(DESTDIR)$(mandir)/man3/X509_set_subject_name.3"
	ln -sf "X509_get_version.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_get_version.3"
	ln -sf "X509_get_version.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_set_version.3"
	ln -sf "X509_get_version.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_get_version.3"
	ln -sf "X509_get_version.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_set_version.3"
	ln -sf "X509_get_version.3" "$(DESTDIR)$(mandir)/man3/X509_set_version.3"
	ln -sf "X509_new.3" "$(DESTDIR)$(mandir)/man3/X509_chain_up_ref.3"
	ln -sf "X509_new.3" "$(DESTDIR)$(mandir)/man3/X509_free.3"
	ln -sf "X509_new.3" "$(DESTDIR)$(mandir)/man3/X509_up_ref.3"
	ln -sf "X509_sign.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_sign.3"
	ln -sf "X509_sign.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_sign_ctx.3"
	ln -sf "X509_sign.3" "$(DESTDIR)$(mandir)/man3/X509_CRL_verify.3"
	ln -sf "X509_sign.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_sign.3"
	ln -sf "X509_sign.3" "$(DESTDIR)$(mandir)/man3/X509_REQ_sign_ctx.3"
2574
2575
2576
2577
2578
2579
2580

2581
2582
2583
2584
2585
2586
2587
	ln -sf "d2i_X509_CRL.3" "$(DESTDIR)$(mandir)/man3/i2d_X509_CRL_fp.3"
	ln -sf "d2i_X509_CRL.3" "$(DESTDIR)$(mandir)/man3/i2d_X509_REVOKED.3"
	ln -sf "d2i_X509_EXTENSION.3" "$(DESTDIR)$(mandir)/man3/d2i_X509_EXTENSIONS.3"
	ln -sf "d2i_X509_EXTENSION.3" "$(DESTDIR)$(mandir)/man3/i2d_X509_EXTENSION.3"
	ln -sf "d2i_X509_EXTENSION.3" "$(DESTDIR)$(mandir)/man3/i2d_X509_EXTENSIONS.3"
	ln -sf "d2i_X509_NAME.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_ENTRY_dup.3"
	ln -sf "d2i_X509_NAME.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_dup.3"

	ln -sf "d2i_X509_NAME.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_hash.3"
	ln -sf "d2i_X509_NAME.3" "$(DESTDIR)$(mandir)/man3/d2i_X509_NAME_ENTRY.3"
	ln -sf "d2i_X509_NAME.3" "$(DESTDIR)$(mandir)/man3/i2d_X509_NAME.3"
	ln -sf "d2i_X509_NAME.3" "$(DESTDIR)$(mandir)/man3/i2d_X509_NAME_ENTRY.3"
	ln -sf "d2i_X509_REQ.3" "$(DESTDIR)$(mandir)/man3/d2i_X509_REQ_INFO.3"
	ln -sf "d2i_X509_REQ.3" "$(DESTDIR)$(mandir)/man3/d2i_X509_REQ_bio.3"
	ln -sf "d2i_X509_REQ.3" "$(DESTDIR)$(mandir)/man3/d2i_X509_REQ_fp.3"







>







2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
	ln -sf "d2i_X509_CRL.3" "$(DESTDIR)$(mandir)/man3/i2d_X509_CRL_fp.3"
	ln -sf "d2i_X509_CRL.3" "$(DESTDIR)$(mandir)/man3/i2d_X509_REVOKED.3"
	ln -sf "d2i_X509_EXTENSION.3" "$(DESTDIR)$(mandir)/man3/d2i_X509_EXTENSIONS.3"
	ln -sf "d2i_X509_EXTENSION.3" "$(DESTDIR)$(mandir)/man3/i2d_X509_EXTENSION.3"
	ln -sf "d2i_X509_EXTENSION.3" "$(DESTDIR)$(mandir)/man3/i2d_X509_EXTENSIONS.3"
	ln -sf "d2i_X509_NAME.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_ENTRY_dup.3"
	ln -sf "d2i_X509_NAME.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_dup.3"
	ln -sf "d2i_X509_NAME.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_get0_der.3"
	ln -sf "d2i_X509_NAME.3" "$(DESTDIR)$(mandir)/man3/X509_NAME_hash.3"
	ln -sf "d2i_X509_NAME.3" "$(DESTDIR)$(mandir)/man3/d2i_X509_NAME_ENTRY.3"
	ln -sf "d2i_X509_NAME.3" "$(DESTDIR)$(mandir)/man3/i2d_X509_NAME.3"
	ln -sf "d2i_X509_NAME.3" "$(DESTDIR)$(mandir)/man3/i2d_X509_NAME_ENTRY.3"
	ln -sf "d2i_X509_REQ.3" "$(DESTDIR)$(mandir)/man3/d2i_X509_REQ_INFO.3"
	ln -sf "d2i_X509_REQ.3" "$(DESTDIR)$(mandir)/man3/d2i_X509_REQ_bio.3"
	ln -sf "d2i_X509_REQ.3" "$(DESTDIR)$(mandir)/man3/d2i_X509_REQ_fp.3"
2704
2705
2706
2707
2708
2709
2710








2711
2712
2713
2714
2715
2716
2717
	ln -sf "engine.3" "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_ECDSA.3"
	ln -sf "engine.3" "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_RAND.3"
	ln -sf "engine.3" "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_RSA.3"
	ln -sf "engine.3" "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_STORE.3"
	ln -sf "engine.3" "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_ciphers.3"
	ln -sf "engine.3" "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_digests.3"
	ln -sf "engine.3" "$(DESTDIR)$(mandir)/man3/ENGINE_up_ref.3"








	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/get_rfc2409_prime_1024.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/get_rfc2409_prime_768.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/get_rfc3526_prime_1536.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/get_rfc3526_prime_2048.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/get_rfc3526_prime_3072.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/get_rfc3526_prime_4096.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/get_rfc3526_prime_6144.3"







>
>
>
>
>
>
>
>







2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
	ln -sf "engine.3" "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_ECDSA.3"
	ln -sf "engine.3" "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_RAND.3"
	ln -sf "engine.3" "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_RSA.3"
	ln -sf "engine.3" "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_STORE.3"
	ln -sf "engine.3" "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_ciphers.3"
	ln -sf "engine.3" "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_digests.3"
	ln -sf "engine.3" "$(DESTDIR)$(mandir)/man3/ENGINE_up_ref.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/BN_get_rfc2409_prime_1024.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/BN_get_rfc2409_prime_768.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/BN_get_rfc3526_prime_1536.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/BN_get_rfc3526_prime_2048.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/BN_get_rfc3526_prime_3072.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/BN_get_rfc3526_prime_4096.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/BN_get_rfc3526_prime_6144.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/BN_get_rfc3526_prime_8192.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/get_rfc2409_prime_1024.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/get_rfc2409_prime_768.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/get_rfc3526_prime_1536.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/get_rfc3526_prime_2048.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/get_rfc3526_prime_3072.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/get_rfc3526_prime_4096.3"
	ln -sf "get_rfc3526_prime_8192.3" "$(DESTDIR)$(mandir)/man3/get_rfc3526_prime_6144.3"
2750
2751
2752
2753
2754
2755
2756

2757
2758
2759
2760
2761
2762
2763


2764
2765
2766
2767
2768
2769
2770
	ln -sf "tls_config_set_protocols.3" "$(DESTDIR)$(mandir)/man3/tls_config_prefer_ciphers_client.3"
	ln -sf "tls_config_set_protocols.3" "$(DESTDIR)$(mandir)/man3/tls_config_prefer_ciphers_server.3"
	ln -sf "tls_config_set_protocols.3" "$(DESTDIR)$(mandir)/man3/tls_config_set_alpn.3"
	ln -sf "tls_config_set_protocols.3" "$(DESTDIR)$(mandir)/man3/tls_config_set_ciphers.3"
	ln -sf "tls_config_set_protocols.3" "$(DESTDIR)$(mandir)/man3/tls_config_set_dheparams.3"
	ln -sf "tls_config_set_protocols.3" "$(DESTDIR)$(mandir)/man3/tls_config_set_ecdhecurves.3"
	ln -sf "tls_config_set_session_id.3" "$(DESTDIR)$(mandir)/man3/tls_config_add_ticket_key.3"

	ln -sf "tls_config_set_session_id.3" "$(DESTDIR)$(mandir)/man3/tls_config_set_session_lifetime.3"
	ln -sf "tls_config_verify.3" "$(DESTDIR)$(mandir)/man3/tls_config_insecure_noverifycert.3"
	ln -sf "tls_config_verify.3" "$(DESTDIR)$(mandir)/man3/tls_config_insecure_noverifyname.3"
	ln -sf "tls_config_verify.3" "$(DESTDIR)$(mandir)/man3/tls_config_insecure_noverifytime.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_conn_alpn_selected.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_conn_cipher.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_conn_servername.3"


	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_peer_cert_contains_name.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_peer_cert_hash.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_peer_cert_issuer.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_peer_cert_notafter.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_peer_cert_notbefore.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_peer_cert_provided.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_peer_cert_subject.3"







>







>
>







2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
	ln -sf "tls_config_set_protocols.3" "$(DESTDIR)$(mandir)/man3/tls_config_prefer_ciphers_client.3"
	ln -sf "tls_config_set_protocols.3" "$(DESTDIR)$(mandir)/man3/tls_config_prefer_ciphers_server.3"
	ln -sf "tls_config_set_protocols.3" "$(DESTDIR)$(mandir)/man3/tls_config_set_alpn.3"
	ln -sf "tls_config_set_protocols.3" "$(DESTDIR)$(mandir)/man3/tls_config_set_ciphers.3"
	ln -sf "tls_config_set_protocols.3" "$(DESTDIR)$(mandir)/man3/tls_config_set_dheparams.3"
	ln -sf "tls_config_set_protocols.3" "$(DESTDIR)$(mandir)/man3/tls_config_set_ecdhecurves.3"
	ln -sf "tls_config_set_session_id.3" "$(DESTDIR)$(mandir)/man3/tls_config_add_ticket_key.3"
	ln -sf "tls_config_set_session_id.3" "$(DESTDIR)$(mandir)/man3/tls_config_set_session_fd.3"
	ln -sf "tls_config_set_session_id.3" "$(DESTDIR)$(mandir)/man3/tls_config_set_session_lifetime.3"
	ln -sf "tls_config_verify.3" "$(DESTDIR)$(mandir)/man3/tls_config_insecure_noverifycert.3"
	ln -sf "tls_config_verify.3" "$(DESTDIR)$(mandir)/man3/tls_config_insecure_noverifyname.3"
	ln -sf "tls_config_verify.3" "$(DESTDIR)$(mandir)/man3/tls_config_insecure_noverifytime.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_conn_alpn_selected.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_conn_cipher.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_conn_servername.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_conn_session_resumed.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_peer_cert_chain_pem.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_peer_cert_contains_name.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_peer_cert_hash.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_peer_cert_issuer.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_peer_cert_notafter.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_peer_cert_notbefore.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_peer_cert_provided.3"
	ln -sf "tls_conn_version.3" "$(DESTDIR)$(mandir)/man3/tls_peer_cert_subject.3"
2819
2820
2821
2822
2823
2824
2825

2826
2827
2828
2829
2830
2831
2832
	-rm -f "$(DESTDIR)$(mandir)/man3/AUTHORITY_INFO_ACCESS_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_OBJECT_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_STRING_TABLE_cleanup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_STRING_TABLE_get.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_STRING_cmp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_STRING_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_STRING_dup.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_STRING_length_set.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_STRING_set.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_STRING_to_UTF8.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_STRING_type.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_BIT_STRING_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_BIT_STRING_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_BMPSTRING_free.3"







>







3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
	-rm -f "$(DESTDIR)$(mandir)/man3/AUTHORITY_INFO_ACCESS_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_OBJECT_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_STRING_TABLE_cleanup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_STRING_TABLE_get.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_STRING_cmp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_STRING_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_STRING_dup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_STRING_get0_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_STRING_length_set.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_STRING_set.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_STRING_to_UTF8.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_STRING_type.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_BIT_STRING_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_BIT_STRING_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_BMPSTRING_free.3"
2949
2950
2951
2952
2953
2954
2955




2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975


















2976
2977
2978

2979
2980
2981
2982
2983
2984
2985
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_set_ssl_mode.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_set_ssl_renegotiate_bytes.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_set_ssl_renegotiate_timeout.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_ssl_copy_session_id.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_ssl_shutdown.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_method_type.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_next.3"




	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDH_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDH_get_ex_new_index.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDH_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_get_ex_new_index.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_get_ex_new_index.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/TYPE_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/TYPE_get_ex_new_index.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/TYPE_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/UI_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/UI_get_ex_new_index.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/UI_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_get_ex_new_index.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_set_ex_data.3"


















	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_free_all.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_set.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_vfree.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_snprintf.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_vprintf.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_vsnprintf.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_pop.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_gets.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_puts.3"







>
>
>
>




















>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>



>







3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_set_ssl_mode.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_set_ssl_renegotiate_bytes.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_set_ssl_renegotiate_timeout.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_ssl_copy_session_id.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_ssl_shutdown.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_method_type.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_next.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_get_shutdown.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_set_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_set_init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_set_shutdown.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDH_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDH_get_ex_new_index.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDH_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_get_ex_new_index.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_get_ex_new_index.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/TYPE_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/TYPE_get_ex_new_index.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/TYPE_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/UI_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/UI_get_ex_new_index.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/UI_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_get_ex_new_index.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_get_new_index.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_meth_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_meth_get_callback_ctrl.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_meth_get_create.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_meth_get_ctrl.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_meth_get_destroy.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_meth_get_gets.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_meth_get_puts.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_meth_get_read.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_meth_get_write.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_meth_set_callback_ctrl.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_meth_set_create.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_meth_set_ctrl.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_meth_set_destroy.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_meth_set_gets.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_meth_set_puts.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_meth_set_read.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_meth_set_write.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_free_all.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_set.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_up_ref.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_vfree.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_snprintf.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_vprintf.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_vsnprintf.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_pop.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_gets.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BIO_puts.3"
3089
3090
3091
3092
3093
3094
3095



3096
3097
3098
3099
3100
3101
3102
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_is_one.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_is_word.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_is_zero.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_ucmp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_dup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_with_flags.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_GENCB_call.3"



	-rm -f "$(DESTDIR)$(mandir)/man3/BN_GENCB_set.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_GENCB_set_old.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_generate_prime_ex.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_is_prime.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_is_prime_ex.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_is_prime_fasttest.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_is_prime_fasttest_ex.3"







>
>
>







3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_is_one.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_is_word.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_is_zero.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_ucmp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_dup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_with_flags.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_GENCB_call.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_GENCB_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_GENCB_get_arg.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_GENCB_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_GENCB_set.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_GENCB_set_old.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_generate_prime_ex.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_is_prime.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_is_prime_ex.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_is_prime_fasttest.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_is_prime_fasttest_ex.3"
3209
3210
3211
3212
3213
3214
3215








3216
3217
3218
3219
3220
3221
3222

3223
3224
3225
3226
3227
3228
3229
3230


3231
3232







3233
3234




3235
3236
3237
3238
3239
3240
3241
3242
3243


3244
3245
3246
3247
3248
3249
3250
	-rm -f "$(DESTDIR)$(mandir)/man3/DES_set_odd_parity.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DES_string_to_2keys.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DES_string_to_key.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DES_xcbc_encrypt.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_compute_key.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_check.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_generate_parameters_ex.3"








	-rm -f "$(DESTDIR)$(mandir)/man3/DH_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_OpenSSL.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_get_default_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_new_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_set_default_method.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/CRL_DIST_POINTS_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/CRL_DIST_POINTS_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DIST_POINT_NAME_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DIST_POINT_NAME_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DIST_POINT_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ISSUING_DIST_POINT_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ISSUING_DIST_POINT_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_SIG_free.3"


	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_do_verify.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_generate_parameters_ex.3"







	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_set_ex_data.3"




	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_OpenSSL.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_get_default_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_new_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_set_default_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_sign_setup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_verify.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_OpenSSL.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_SIG_free.3"


	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_do_sign.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_do_sign_ex.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_do_verify.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_get_default_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_set_default_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_set_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_sign.3"







>
>
>
>
>
>
>
>







>








>
>


>
>
>
>
>
>
>


>
>
>
>









>
>







3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
	-rm -f "$(DESTDIR)$(mandir)/man3/DES_set_odd_parity.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DES_string_to_2keys.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DES_string_to_key.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DES_xcbc_encrypt.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_compute_key.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_check.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_generate_parameters_ex.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_clear_flags.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_get0_engine.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_get0_key.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_set0_key.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_set0_pqg.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_set_flags.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_set_length.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_test_flags.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_OpenSSL.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_get_default_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_new_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_set_default_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DH_bits.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/CRL_DIST_POINTS_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/CRL_DIST_POINTS_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DIST_POINT_NAME_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DIST_POINT_NAME_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DIST_POINT_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ISSUING_DIST_POINT_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ISSUING_DIST_POINT_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_SIG_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_SIG_get0.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_SIG_set0.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_do_verify.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_generate_parameters_ex.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_clear_flags.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_get0_engine.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_get0_key.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_set0_key.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_set0_pqg.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_set_flags.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_test_flags.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_meth_dup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_meth_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_meth_set_finish.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_meth_set_sign.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_OpenSSL.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_get_default_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_new_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_set_default_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_sign_setup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DSA_verify.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_OpenSSL.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_SIG_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_SIG_get0.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_SIG_set0.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_do_sign.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_do_sign_ex.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_do_verify.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_get_default_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_set_default_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_set_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ECDSA_sign.3"
3400
3401
3402
3403
3404
3405
3406

3407
3408


3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_block_size.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_cleanup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_copy.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_copy_ex.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_create.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_ctrl.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_destroy.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_md.3"


	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_size.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_type.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_block_size.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_pkey_type.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_size.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_type.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_dss.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_dss1.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_get_digestbyname.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_get_digestbynid.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_get_digestbyobj.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_md2.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_md5.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_md5_sha1.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_md_null.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_ripemd160.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_sha1.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_sha224.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_sha256.3"







>


>
>











<







3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716

3717
3718
3719
3720
3721
3722
3723
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_block_size.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_cleanup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_copy.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_copy_ex.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_create.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_ctrl.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_destroy.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_md.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_reset.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_size.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_CTX_type.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_block_size.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_pkey_type.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_size.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_MD_type.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_dss.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_dss1.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_get_digestbyname.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_get_digestbynid.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_get_digestbyobj.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_md5.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_md5_sha1.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_md_null.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_ripemd160.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_sha1.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_sha224.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_sha256.3"
3447
3448
3449
3450
3451
3452
3453


3454
3455
3456
3457
3458
3459
3460
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_get_app_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_iv_length.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_key_length.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_mode.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_nid.3"


	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_set_app_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_set_key_length.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_set_padding.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_type.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_asn1_to_param.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_block_size.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_flags.3"







>
>







3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_get_app_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_iv_length.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_key_length.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_mode.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_nid.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_rand_key.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_reset.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_set_app_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_set_key_length.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_set_padding.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_CTX_type.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_asn1_to_param.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_block_size.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_CIPHER_flags.3"
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558













3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574


















3575

3576
3577
3578
3579
3580
3581
3582




3583
3584
3585
3586
3587
3588
3589
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_rc2_cbc.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_rc2_cfb.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_rc2_ecb.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_rc2_ofb.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_rc4.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_rc4_40.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_rc4_hmac_md5.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_rc5_32_12_16_cbc.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_rc5_32_12_16_cfb.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_rc5_32_12_16_ecb.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_rc5_32_12_16_ofb.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_OpenFinal.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_OpenUpdate.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_ctrl_str.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_dh_paramgen_generator.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_dh_paramgen_prime_len.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_dsa_paramgen_bits.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_ec_paramgen_curve_nid.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_rsa_keygen_bits.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_rsa_keygen_pubexp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_rsa_padding.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_rsa_pss_saltlen.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_signature_md.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_dup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_new_id.3"













	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_cmp_parameters.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_copy_parameters.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_missing_parameters.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_decrypt_init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_derive_init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_derive_set_peer.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_encrypt_init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_get_app_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_get_cb.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_get_keygen_info.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_app_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_cb.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_gen_cb.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_keygen_init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_paramgen.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_paramgen_init.3"


















	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_free.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_print_params.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_print_public.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_assign_DH.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_assign_DSA.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_assign_EC_KEY.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_assign_RSA.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_base_id.3"




	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get1_DH.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get1_DSA.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get1_EC_KEY.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get1_RSA.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_id.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_set1_DH.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_set1_DSA.3"







<
<
<
<















>
>
>
>
>
>
>
>
>
>
>
>
>
















>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

>







>
>
>
>







3831
3832
3833
3834
3835
3836
3837




3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_rc2_cbc.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_rc2_cfb.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_rc2_ecb.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_rc2_ofb.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_rc4.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_rc4_40.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_rc4_hmac_md5.3"




	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_OpenFinal.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_OpenUpdate.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_ctrl_str.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_dh_paramgen_generator.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_dh_paramgen_prime_len.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_dsa_paramgen_bits.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_ec_paramgen_curve_nid.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_rsa_keygen_bits.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_rsa_keygen_pubexp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_rsa_padding.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_rsa_pss_saltlen.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_signature_md.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_dup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_new_id.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_find.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_find_str.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_get0.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_get0_info.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_add0.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_add_alias.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_copy.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_set_ctrl.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_set_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_set_param.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_set_private.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_asn1_set_public.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_cmp_parameters.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_copy_parameters.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_missing_parameters.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_decrypt_init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_derive_init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_derive_set_peer.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_encrypt_init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_get_app_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_get_cb.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_get_keygen_info.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_app_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_CTX_set_cb.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_gen_cb.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_keygen_init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_paramgen.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_paramgen_init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_add0.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_copy.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_find.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_cleanup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_copy.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_ctrl.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_decrypt.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_derive.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_encrypt.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_keygen.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_paramgen.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_sign.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_signctx.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_verify.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_verify_recover.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_meth_set_verifyctx.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_up_ref.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_print_params.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_print_public.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_assign_DH.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_assign_DSA.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_assign_EC_KEY.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_assign_RSA.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_base_id.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get0_DH.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get0_DSA.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get0_EC_KEY.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get0_RSA.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get1_DH.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get1_DSA.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get1_EC_KEY.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_get1_RSA.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_id.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_set1_DH.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_PKEY_set1_DSA.3"
3607
3608
3609
3610
3611
3612
3613


3614


3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
	-rm -f "$(DESTDIR)$(mandir)/man3/GENERAL_NAMES_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/GENERAL_NAMES_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/GENERAL_NAME_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OTHERNAME_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OTHERNAME_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_CTX_cleanup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_CTX_copy.3"


	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_CTX_init.3"


	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_CTX_set_flags.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_Final.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_Init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_Init_ex.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_Update.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_cleanup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_size.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/MD2.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/MD2_Final.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/MD2_Init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/MD2_Update.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/MD4.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/MD4_Final.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/MD4_Init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/MD4_Update.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/MD5_Final.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/MD5_Init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/MD5_Update.3"







>
>

>
>







<
<
<
<







3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955




3956
3957
3958
3959
3960
3961
3962
	-rm -f "$(DESTDIR)$(mandir)/man3/GENERAL_NAMES_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/GENERAL_NAMES_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/GENERAL_NAME_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OTHERNAME_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OTHERNAME_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_CTX_cleanup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_CTX_copy.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_CTX_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_CTX_get_md.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_CTX_init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_CTX_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_CTX_reset.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_CTX_set_flags.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_Final.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_Init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_Init_ex.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_Update.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_cleanup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/HMAC_size.3"




	-rm -f "$(DESTDIR)$(mandir)/man3/MD4.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/MD4_Final.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/MD4_Init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/MD4_Update.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/MD5_Final.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/MD5_Init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/MD5_Update.3"
3672
3673
3674
3675
3676
3677
3678

3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694

3695
3696
3697
3698
3699
3700
3701




3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713





















3714
3715
3716
3717
3718
3719
3720
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_check_nonce.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_copy_nonce.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_CERTSTATUS_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_CERTSTATUS_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_REVOKEDINFO_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_REVOKEDINFO_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_SINGLERESP_free.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_SINGLERESP_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_check_validity.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_resp_count.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_resp_find.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_resp_get0.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_single_get0_status.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_BASICRESP_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_BASICRESP_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_RESPBYTES_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_RESPBYTES_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_RESPDATA_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_RESPDATA_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_RESPID_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_RESPID_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_RESPONSE_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_RESPONSE_new.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_response_create.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_response_get1_basic.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_REQ_CTX_add1_header.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_REQ_CTX_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_REQ_CTX_set1_req.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_sendreq_bio.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_sendreq_nbio.3"




	-rm -f "$(DESTDIR)$(mandir)/man3/SSLeay.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSLeay_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OPENSSL_no_config.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_add_oid_module.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_add_conf_module.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/CRYPTO_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/CRYPTO_malloc.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/CRYPTO_realloc.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/CRYPTO_strdup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OPENSSL_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OPENSSL_realloc.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OPENSSL_strdup.3"





















	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_cleanup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OpenSSL_add_all_ciphers.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OpenSSL_add_all_digests.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/PEM_do_header.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/PEM_get_EVP_CIPHER_INFO.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/PEM_read_bio.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/PEM_write.3"







>
















>







>
>
>
>












>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_check_nonce.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_copy_nonce.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_CERTSTATUS_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_CERTSTATUS_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_REVOKEDINFO_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_REVOKEDINFO_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_SINGLERESP_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_SINGLERESP_get0_id.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_SINGLERESP_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_check_validity.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_resp_count.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_resp_find.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_resp_get0.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_single_get0_status.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_BASICRESP_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_BASICRESP_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_RESPBYTES_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_RESPBYTES_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_RESPDATA_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_RESPDATA_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_RESPID_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_RESPID_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_RESPONSE_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_RESPONSE_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_basic_sign.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_response_create.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_response_get1_basic.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_REQ_CTX_add1_header.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_REQ_CTX_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_REQ_CTX_set1_req.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_sendreq_bio.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OCSP_sendreq_nbio.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/LIBRESSL_VERSION_NUMBER.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/LIBRESSL_VERSION_TEXT.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OpenSSL_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OpenSSL_version_num.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSLeay.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSLeay_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OPENSSL_no_config.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ASN1_add_oid_module.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_add_conf_module.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/CRYPTO_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/CRYPTO_malloc.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/CRYPTO_realloc.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/CRYPTO_strdup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OPENSSL_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OPENSSL_realloc.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OPENSSL_strdup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_delete.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_delete_ptr.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_dup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_find.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_find_ex.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_insert.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_is_sorted.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_new_null.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_num.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_pop.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_pop_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_push.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_set.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_set_cmp_func.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_shift.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_sort.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_unshift.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_value.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/sk_zero.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/EVP_cleanup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OpenSSL_add_all_ciphers.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OpenSSL_add_all_digests.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/PEM_do_header.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/PEM_get_EVP_CIPHER_INFO.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/PEM_read_bio.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/PEM_write.3"
3849
3850
3851
3852
3853
3854
3855

3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869








3870
3871
3872
3873
3874





3875
3876
3877
3878
3879
3880
3881
	-rm -f "$(DESTDIR)$(mandir)/man3/POLICY_MAPPING_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/USERNOTICE_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/USERNOTICE_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/PROXY_CERT_INFO_EXTENSION_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/PROXY_CERT_INFO_EXTENSION_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/PROXY_POLICY_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RAND_cleanup.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/RAND_seed.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RAND_status.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RAND_pseudo_bytes.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RAND_file_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RAND_write_file.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RAND_SSLeay.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RAND_get_rand_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RC4_set_key.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RIPEMD160_Final.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RIPEMD160_Init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RIPEMD160_Update.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_PSS_PARAMS_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_blinding_off.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_generate_key_ex.3"








	-rm -f "$(DESTDIR)$(mandir)/man3/CRYPTO_EX_dup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/CRYPTO_EX_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/CRYPTO_EX_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_set_ex_data.3"





	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_padding_add_PKCS1_OAEP.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_padding_add_PKCS1_type_2.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_padding_add_none.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_padding_check_PKCS1_OAEP.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_padding_check_PKCS1_type_1.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_padding_check_PKCS1_type_2.3"







>














>
>
>
>
>
>
>
>





>
>
>
>
>







4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
	-rm -f "$(DESTDIR)$(mandir)/man3/POLICY_MAPPING_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/USERNOTICE_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/USERNOTICE_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/PROXY_CERT_INFO_EXTENSION_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/PROXY_CERT_INFO_EXTENSION_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/PROXY_POLICY_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RAND_cleanup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RAND_poll.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RAND_seed.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RAND_status.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RAND_pseudo_bytes.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RAND_file_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RAND_write_file.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RAND_SSLeay.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RAND_get_rand_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RC4_set_key.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RIPEMD160_Final.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RIPEMD160_Init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RIPEMD160_Update.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_PSS_PARAMS_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_blinding_off.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_generate_key_ex.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_clear_flags.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_get0_crt_params.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_get0_factors.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_set0_crt_params.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_set0_factors.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_set0_key.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_set_flags.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_test_flags.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/CRYPTO_EX_dup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/CRYPTO_EX_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/CRYPTO_EX_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_meth_dup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_meth_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_meth_set_finish.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_meth_set_priv_dec.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_meth_set_priv_enc.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_padding_add_PKCS1_OAEP.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_padding_add_PKCS1_type_2.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_padding_add_none.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_padding_check_PKCS1_OAEP.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_padding_check_PKCS1_type_1.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_padding_check_PKCS1_type_2.3"
3896
3897
3898
3899
3900
3901
3902

3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922

3923




3924

3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941

3942
3943
3944
3945
3946
3947
3948
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_get_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_new_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_null_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_set_default_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_set_default_openssl_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_verify.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_verify_ASN1_OCTET_STRING.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/SHA1_Final.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA1_Init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA1_Update.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA224.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA224_Final.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA224_Init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA224_Update.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA256.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA256_Final.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA256_Init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA256_Update.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA384.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA384_Final.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA384_Init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA384_Update.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA512.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA512_Final.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA512_Init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA512_Update.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_description.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_get_bits.3"




	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_get_version.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_COMP_get_compression_methods.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_clear_extra_chain_certs.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_remove_session.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_callback_ctrl.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_callback_ctrl.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_ctrl.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_verify_callback.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_verify_depth.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_verify_callback.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_verify_depth.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_verify_mode.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_default_verify_paths.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DTLSv1_client_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DTLSv1_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DTLSv1_server_method.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/SSLv23_client_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSLv23_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSLv23_server_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/TLS_client_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/TLS_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/TLS_server_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/TLSv1_1_client_method.3"







>




















>

>
>
>
>

>

















>







4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_get_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_new_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_null_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_set_default_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_set_default_openssl_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_verify.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_verify_ASN1_OCTET_STRING.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/RSA_bits.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA1_Final.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA1_Init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA1_Update.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA224.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA224_Final.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA224_Init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA224_Update.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA256.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA256_Final.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA256_Init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA256_Update.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA384.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA384_Final.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA384_Init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA384_Update.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA512.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA512_Final.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA512_Init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SHA512_Update.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_description.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_get_auth_nid.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_get_bits.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_get_cipher_nid.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_get_digest_nid.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_get_id.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_get_kx_nid.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_get_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CIPHER_is_aead.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_COMP_get_compression_methods.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_clear_extra_chain_certs.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_remove_session.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_callback_ctrl.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_callback_ctrl.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_ctrl.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_verify_callback.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_verify_depth.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_verify_callback.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_verify_depth.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_verify_mode.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_default_verify_paths.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DTLSv1_client_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DTLSv1_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/DTLSv1_server_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_up_ref.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSLv23_client_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSLv23_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSLv23_server_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/TLS_client_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/TLS_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/TLS_server_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/TLSv1_1_client_method.3"
3999
4000
4001
4002
4003
4004
4005


4006


4007
4008
4009
4010
4011
4012
4013
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_generate_session_id.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_info_callback.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_info_callback.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_info_callback.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_max_cert_list.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_max_cert_list.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_max_cert_list.3"


	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_max_proto_version.3"


	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_max_proto_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_min_proto_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_mode.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_mode.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_mode.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_msg_callback_arg.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_msg_callback.3"







>
>

>
>







4378
4379
4380
4381
4382
4383
4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395
4396
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_generate_session_id.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_info_callback.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_info_callback.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_info_callback.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_max_cert_list.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_max_cert_list.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_max_cert_list.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_max_proto_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_min_proto_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_max_proto_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_max_proto_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_min_proto_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_max_proto_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_min_proto_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_mode.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_mode.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_mode.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_msg_callback_arg.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_msg_callback.3"
4030
4031
4032
4033
4034
4035
4036


4037
4038
4039
4040



4041
4042
4043
4044
4045
4046
4047
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_ssl_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_ssl_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_timeout.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_tlsext_servername_arg.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_servername.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_servername_type.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_tlsext_host_name.3"


	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_tlsext_status_arg.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_tlsext_status_ocsp_resp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_tlsext_status_ocsp_resp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_tlsext_status_type.3"



	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_tmp_dh.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_tmp_dh.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_tmp_dh_callback.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_need_tmp_RSA.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_tmp_rsa.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_need_tmp_rsa.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_tmp_rsa.3"







>
>




>
>
>







4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_ssl_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_ssl_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_timeout.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_tlsext_servername_arg.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_servername.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_servername_type.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_tlsext_host_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_tlsext_status_arg.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_tlsext_status_cb.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_tlsext_status_arg.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_tlsext_status_ocsp_resp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_tlsext_status_ocsp_resp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_tlsext_status_type.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_selected_srtp_profile.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_srtp_profiles.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_tlsext_use_srtp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_tmp_dh.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_tmp_dh.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_tmp_dh_callback.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_need_tmp_RSA.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_tmp_rsa.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_need_tmp_rsa.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_tmp_rsa.3"
4067
4068
4069
4070
4071
4072
4073

4074
4075

4076
4077
4078
4079
4080
4081
4082

4083

4084
4085
4086
4087

4088
4089


4090
4091
4092
4093
4094
4095
4096
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_use_PrivateKey_file.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_use_RSAPrivateKey.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_use_RSAPrivateKey_ASN1.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_use_RSAPrivateKey_file.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_use_certificate.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_use_certificate_ASN1.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_use_certificate_file.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_SESSION_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_SESSION_set_ex_data.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_SESSION_get_timeout.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_SESSION_set_time.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_SESSION_set_timeout.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_time.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_timeout.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_time.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_timeout.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_SESSION_print_fp.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_alert_desc_string.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_alert_desc_string_long.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_alert_type_string_long.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_privatekey.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_cipher_list.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_client_CA_list.3"


	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_cipher.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_cipher_bits.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_cipher_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_cipher_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_rfd.3"







>


>







>

>




>


>
>







4455
4456
4457
4458
4459
4460
4461
4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_use_PrivateKey_file.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_use_RSAPrivateKey.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_use_RSAPrivateKey_ASN1.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_use_RSAPrivateKey_file.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_use_certificate.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_use_certificate_ASN1.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_use_certificate_file.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_SESSION_up_ref.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_SESSION_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_SESSION_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_SESSION_set1_id.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_SESSION_get_timeout.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_SESSION_set_time.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_SESSION_set_timeout.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_time.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_timeout.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_time.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_timeout.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_SESSION_get_ticket_lifetime_hint.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_SESSION_print_fp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_SESSION_get0_id_context.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_alert_desc_string.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_alert_desc_string_long.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_alert_type_string_long.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_privatekey.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_ciphers.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_cipher_list.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get_client_CA_list.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_SESSION_get_master_key.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_server_random.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_cipher.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_cipher_bits.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_cipher_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_cipher_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_rfd.3"
4105
4106
4107
4108
4109
4110
4111

4112
4113
4114
4115
4116
4117

4118


4119
4120
4121
4122
4123
4124
4125
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_is_init_finished.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_state.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OpenSSL_add_ssl_algorithms.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSLeay_add_ssl_algorithms.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_add_dir_cert_subjects_to_stack.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_add_file_cert_subjects_to_stack.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_clear_num_renegotiations.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_total_renegotiations.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_peek.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_renegotiate_abbreviated.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_renegotiate_pending.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_rstate_string_long.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set1_param.3"


	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_accept_state.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_rfd.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_wfd.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_max_send_fragment.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_shutdown.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_ecdh_auto.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_tmp_ecdh.3"







>






>

>
>







4500
4501
4502
4503
4504
4505
4506
4507
4508
4509
4510
4511
4512
4513
4514
4515
4516
4517
4518
4519
4520
4521
4522
4523
4524
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_is_init_finished.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_state.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/OpenSSL_add_ssl_algorithms.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSLeay_add_ssl_algorithms.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_add_dir_cert_subjects_to_stack.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_add_file_cert_subjects_to_stack.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_up_ref.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_clear_num_renegotiations.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_total_renegotiations.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_peek.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_renegotiate_abbreviated.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_renegotiate_pending.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_rstate_string_long.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_get0_param.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set1_param.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get0_param.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_is_server.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_accept_state.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_rfd.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_set_wfd.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_max_send_fragment.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_get_shutdown.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_ecdh_auto.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/SSL_CTX_set_tmp_ecdh.3"
4194
4195
4196
4197
4198
4199
4200

4201
4202

4203
4204

4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223

4224

4225
4226
4227
4228
4229
4230
4231
	-rm -f "$(DESTDIR)$(mandir)/man3/UI_process.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/UI_set_default_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/UI_set_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509V3_EXT_d2i.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509V3_EXT_i2d.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509V3_add1_i2d.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_add1_ext_i2d.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_get_ext_d2i.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REVOKED_add1_ext_i2d.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REVOKED_get_ext_d2i.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_add1_ext_i2d.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/X509_get_ext_d2i.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_ALGOR_cmp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_ALGOR_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_ALGOR_get0.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_ALGOR_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_ALGOR_set0.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_ALGOR_set_md.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_ATTRIBUTE_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CERT_AUX_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CERT_AUX_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CINF_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VAL_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VAL_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_add0_revoked.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_get0_by_cert.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_get_REVOKED.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_sort.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_INFO_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_INFO_new.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_free.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_create_by_NID.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_create_by_OBJ.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_get_critical.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_get_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_get_object.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_new.3"







>


>


>



















>

>







4593
4594
4595
4596
4597
4598
4599
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614
4615
4616
4617
4618
4619
4620
4621
4622
4623
4624
4625
4626
4627
4628
4629
4630
4631
4632
4633
4634
4635
	-rm -f "$(DESTDIR)$(mandir)/man3/UI_process.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/UI_set_default_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/UI_set_method.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509V3_EXT_d2i.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509V3_EXT_i2d.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509V3_add1_i2d.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_add1_ext_i2d.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_get0_extensions.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_get_ext_d2i.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REVOKED_add1_ext_i2d.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REVOKED_get0_extensions.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REVOKED_get_ext_d2i.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_add1_ext_i2d.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_get0_extensions.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_get_ext_d2i.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_ALGOR_cmp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_ALGOR_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_ALGOR_get0.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_ALGOR_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_ALGOR_set0.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_ALGOR_set_md.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_ATTRIBUTE_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CERT_AUX_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CERT_AUX_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CINF_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VAL_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VAL_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_add0_revoked.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_get0_by_cert.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_get_REVOKED.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_sort.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_INFO_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_INFO_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_dup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_up_ref.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_create_by_NID.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_create_by_OBJ.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_get_critical.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_get_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_get_object.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_EXTENSION_new.3"
4252
4253
4254
4255
4256
4257
4258






4259
4260

4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272

4273


4274
4275
4276


4277
4278
4279
4280
4281
4282
4283
4284
4285
4286


4287
4288
4289


4290
4291
4292
4293
4294












4295
4296


4297





4298
4299







4300
4301

4302
4303
4304

4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316















4317
4318

4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333

4334
4335
4336
4337
4338
4339
4340
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_get_index_by_OBJ.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_get_text_by_NID.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_get_text_by_OBJ.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_oneline.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_print.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_print_ex_fp.3"






	-rm -f "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_get.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_get0_param.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_set.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_set0_param.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/d2i_PUBKEY.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/d2i_PUBKEY_bio.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/d2i_PUBKEY_fp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/i2d_PUBKEY.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/i2d_PUBKEY_bio.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/i2d_PUBKEY_fp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_INFO_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_INFO_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_free.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REVOKED_free.3"


	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REVOKED_set_revocationDate.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REVOKED_set_serialNumber.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_SIG_free.3"


	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get1_chain.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get_current_cert.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get_error_depth.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set_error.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_verify_cert_error_string.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_cleanup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get0_param.3"


	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set0_crls.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set0_param.3"


	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set_cert.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set_chain.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set_default.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_trusted_stack.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_set_default_paths.3"












	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_set_verify_cb.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_add0_policy.3"


	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_clear_flags.3"





	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_get_depth.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_get_flags.3"







	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set1_policies.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set_depth.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set_purpose.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set_time.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set_trust.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/X509_check_email.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_check_ip.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_check_ip_asc.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_check_private_key.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_cmp_current_time.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_time_adj.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_time_adj_ex.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/PKCS7_ISSUER_AND_SERIAL_digest.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_digest.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_digest.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_digest.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_pubkey_digest.3"















	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_get_pubkey.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_set_pubkey.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/X509_get_X509_PUBKEY.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_set_pubkey.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_set_serialNumber.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_get_issuer.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_set_issuer_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_get_subject_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_set_subject_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_get_issuer_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_set_issuer_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_set_subject_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_get_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_set_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_get_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_set_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_set_version.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/X509_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_up_ref.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_sign.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_sign_ctx.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_verify.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_sign.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_sign_ctx.3"







>
>
>
>
>
>


>












>

>
>



>
>










>
>



>
>





>
>
>
>
>
>
>
>
>
>
>
>


>
>

>
>
>
>
>


>
>
>
>
>
>
>


>



>












>
>
>
>
>
>
>
>
>
>
>
>
>
>
>


>















>







4656
4657
4658
4659
4660
4661
4662
4663
4664
4665
4666
4667
4668
4669
4670
4671
4672
4673
4674
4675
4676
4677
4678
4679
4680
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
4708
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718
4719
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
4773
4774
4775
4776
4777
4778
4779
4780
4781
4782
4783
4784
4785
4786
4787
4788
4789
4790
4791
4792
4793
4794
4795
4796
4797
4798
4799
4800
4801
4802
4803
4804
4805
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_get_index_by_OBJ.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_get_text_by_NID.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_get_text_by_OBJ.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_oneline.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_print.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_print_ex_fp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_OBJECT_free_contents.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_OBJECT_get0_X509_CRL.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_OBJECT_idx_by_subject.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_OBJECT_retrieve_by_subject.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_OBJECT_retrieve_match.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_OBJECT_up_ref_count.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_get.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_get0.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_get0_param.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_set.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_PUBKEY_set0_param.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/d2i_PUBKEY.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/d2i_PUBKEY_bio.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/d2i_PUBKEY_fp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/i2d_PUBKEY.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/i2d_PUBKEY_bio.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/i2d_PUBKEY_fp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_INFO_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_INFO_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REVOKED_dup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REVOKED_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REVOKED_get0_revocationDate.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REVOKED_get0_serialNumber.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REVOKED_set_revocationDate.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REVOKED_set_serialNumber.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_SIG_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get0_cert.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get0_chain.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get1_chain.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get_current_cert.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get_error_depth.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set_error.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_verify_cert_error_string.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_cleanup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get0_param.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get0_store.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_get0_untrusted.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_init.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set0_crls.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set0_param.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set0_trusted_stack.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set0_untrusted.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set_cert.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set_chain.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_set_default.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_CTX_trusted_stack.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_set_default_paths.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_up_ref.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_add_cert.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_add_crl.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_get0_objects.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_get_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_get_ex_new_index.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_set_depth.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_set_ex_data.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_set_flags.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_set_purpose.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_set_trust.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_STORE_set_verify_cb.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_add0_policy.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_add0_table.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_add1_host.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_clear_flags.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_get0.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_get0_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_get0_peername.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_get_count.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_get_depth.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_get_flags.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_lookup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_new.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set1_email.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set1_host.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set1_ip.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set1_ip_asc.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set1_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set1_policies.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set_depth.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set_hostflags.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set_purpose.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set_time.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_set_trust.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_VERIFY_PARAM_table_cleanup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_check_email.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_check_ip.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_check_ip_asc.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_check_private_key.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_cmp_current_time.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_time_adj.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_time_adj_ex.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/PKCS7_ISSUER_AND_SERIAL_digest.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_digest.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_digest.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_digest.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_pubkey_digest.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_get0_lastUpdate.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_get0_nextUpdate.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_set1_lastUpdate.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_set1_nextUpdate.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_get0_notAfter.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_getm_notAfter.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_getm_notBefore.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_set1_notAfter.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_set1_notBefore.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_get0_signature.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_get_signature_nid.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_get0_signature.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_get_signature_nid.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_get0_tbs_sigalg.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_get_signature_nid.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_get_pubkey.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_set_pubkey.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_get0_pubkey.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_get_X509_PUBKEY.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_set_pubkey.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_set_serialNumber.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_get_issuer.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_set_issuer_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_get_subject_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_set_subject_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_get_issuer_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_set_issuer_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_set_subject_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_get_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_set_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_get_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_set_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_set_version.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_chain_up_ref.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_free.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_up_ref.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_sign.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_sign_ctx.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_CRL_verify.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_sign.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_REQ_sign_ctx.3"
4680
4681
4682
4683
4684
4685
4686

4687
4688
4689
4690
4691
4692
4693
	-rm -f "$(DESTDIR)$(mandir)/man3/i2d_X509_CRL_fp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/i2d_X509_REVOKED.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/d2i_X509_EXTENSIONS.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/i2d_X509_EXTENSION.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/i2d_X509_EXTENSIONS.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_ENTRY_dup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_dup.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_hash.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/d2i_X509_NAME_ENTRY.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/i2d_X509_NAME.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/i2d_X509_NAME_ENTRY.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/d2i_X509_REQ_INFO.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/d2i_X509_REQ_bio.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/d2i_X509_REQ_fp.3"







>







5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
	-rm -f "$(DESTDIR)$(mandir)/man3/i2d_X509_CRL_fp.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/i2d_X509_REVOKED.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/d2i_X509_EXTENSIONS.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/i2d_X509_EXTENSION.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/i2d_X509_EXTENSIONS.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_ENTRY_dup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_dup.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_get0_der.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/X509_NAME_hash.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/d2i_X509_NAME_ENTRY.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/i2d_X509_NAME.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/i2d_X509_NAME_ENTRY.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/d2i_X509_REQ_INFO.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/d2i_X509_REQ_bio.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/d2i_X509_REQ_fp.3"
4810
4811
4812
4813
4814
4815
4816








4817
4818
4819
4820
4821
4822
4823
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_ECDSA.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_RAND.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_RSA.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_STORE.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_ciphers.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_digests.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_up_ref.3"








	-rm -f "$(DESTDIR)$(mandir)/man3/get_rfc2409_prime_1024.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/get_rfc2409_prime_768.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/get_rfc3526_prime_1536.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/get_rfc3526_prime_2048.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/get_rfc3526_prime_3072.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/get_rfc3526_prime_4096.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/get_rfc3526_prime_6144.3"







>
>
>
>
>
>
>
>







5276
5277
5278
5279
5280
5281
5282
5283
5284
5285
5286
5287
5288
5289
5290
5291
5292
5293
5294
5295
5296
5297
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_ECDSA.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_RAND.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_RSA.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_STORE.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_ciphers.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_unregister_digests.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/ENGINE_up_ref.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_get_rfc2409_prime_1024.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_get_rfc2409_prime_768.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_get_rfc3526_prime_1536.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_get_rfc3526_prime_2048.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_get_rfc3526_prime_3072.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_get_rfc3526_prime_4096.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_get_rfc3526_prime_6144.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/BN_get_rfc3526_prime_8192.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/get_rfc2409_prime_1024.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/get_rfc2409_prime_768.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/get_rfc3526_prime_1536.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/get_rfc3526_prime_2048.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/get_rfc3526_prime_3072.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/get_rfc3526_prime_4096.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/get_rfc3526_prime_6144.3"
4856
4857
4858
4859
4860
4861
4862

4863
4864
4865
4866
4867
4868
4869


4870
4871
4872
4873
4874
4875
4876
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_prefer_ciphers_client.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_prefer_ciphers_server.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_set_alpn.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_set_ciphers.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_set_dheparams.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_set_ecdhecurves.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_add_ticket_key.3"

	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_set_session_lifetime.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_insecure_noverifycert.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_insecure_noverifyname.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_insecure_noverifytime.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_conn_alpn_selected.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_conn_cipher.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_conn_servername.3"


	-rm -f "$(DESTDIR)$(mandir)/man3/tls_peer_cert_contains_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_peer_cert_hash.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_peer_cert_issuer.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_peer_cert_notafter.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_peer_cert_notbefore.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_peer_cert_provided.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_peer_cert_subject.3"







>







>
>







5330
5331
5332
5333
5334
5335
5336
5337
5338
5339
5340
5341
5342
5343
5344
5345
5346
5347
5348
5349
5350
5351
5352
5353
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_prefer_ciphers_client.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_prefer_ciphers_server.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_set_alpn.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_set_ciphers.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_set_dheparams.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_set_ecdhecurves.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_add_ticket_key.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_set_session_fd.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_set_session_lifetime.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_insecure_noverifycert.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_insecure_noverifyname.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_config_insecure_noverifytime.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_conn_alpn_selected.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_conn_cipher.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_conn_servername.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_conn_session_resumed.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_peer_cert_chain_pem.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_peer_cert_contains_name.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_peer_cert_hash.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_peer_cert_issuer.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_peer_cert_notafter.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_peer_cert_notbefore.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_peer_cert_provided.3"
	-rm -f "$(DESTDIR)$(mandir)/man3/tls_peer_cert_subject.3"
Changes to jni/libressl/man/NAME_CONSTRAINTS_new.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: NAME_CONSTRAINTS_new.3,v 1.2 2016/12/25 22:15:10 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 25 2016 $
.Dt NAME_CONSTRAINTS_NEW 3
.Os
.Sh NAME
.Nm NAME_CONSTRAINTS_new ,
.Nm NAME_CONSTRAINTS_free ,
.Nm GENERAL_SUBTREE_new ,
.Nm GENERAL_SUBTREE_free
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: NAME_CONSTRAINTS_new.3,v 1.3 2018/03/23 00:09:11 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt NAME_CONSTRAINTS_NEW 3
.Os
.Sh NAME
.Nm NAME_CONSTRAINTS_new ,
.Nm NAME_CONSTRAINTS_free ,
.Nm GENERAL_SUBTREE_new ,
.Nm GENERAL_SUBTREE_free
83
84
85
86
87
88
89








.Xr GENERAL_NAMES_new 3 ,
.Xr X509_EXTENSION_new 3 ,
.Xr X509_new 3
.Sh STANDARDS
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile,
section 4.2.1.10: Name Constraints















>
>
>
>
>
>
>
>
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
.Xr GENERAL_NAMES_new 3 ,
.Xr X509_EXTENSION_new 3 ,
.Xr X509_new 3
.Sh STANDARDS
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile,
section 4.2.1.10: Name Constraints
.Sh HISTORY
.Fn NAME_CONSTRAINTS_new ,
.Fn NAME_CONSTRAINTS_free ,
.Fn GENERAL_SUBTREE_new ,
and
.Fn GENERAL_SUBTREE_free
first appeared in OpenSSL 0.9.8 and have been available since
.Ox 4.5 .
Changes to jni/libressl/man/OBJ_nid2obj.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: OBJ_nid2obj.3,v 1.5 2017/01/04 05:14:51 schwarze Exp $
.\"	OpenSSL c264592d May 14 11:28:00 2006 +0000
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2017 Ingo Schwarze <schwarze@openbsd.org>
.\"
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: OBJ_nid2obj.3,v 1.10 2018/03/21 21:18:08 schwarze Exp $
.\"	OpenSSL c264592d May 14 11:28:00 2006 +0000
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2017 Ingo Schwarze <schwarze@openbsd.org>
.\"
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: January 4 2017 $
.Dt OBJ_NID2OBJ 3
.Os
.Sh NAME
.Nm OBJ_nid2obj ,
.Nm OBJ_nid2ln ,
.Nm OBJ_nid2sn ,
.Nm OBJ_obj2nid ,







|







62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt OBJ_NID2OBJ 3
.Os
.Sh NAME
.Nm OBJ_nid2obj ,
.Nm OBJ_nid2ln ,
.Nm OBJ_nid2sn ,
.Nm OBJ_obj2nid ,
365
366
367
368
369
370
371


























372
373
374
375
376
377
378
379
380
381
382
383
384
.Pp
Create a new object directly:
.Bd -literal -offset indent
obj = OBJ_txt2obj("1.2.3.4", 1);
.Ed
.Sh SEE ALSO
.Xr ERR_get_error 3


























.Sh BUGS
.Fn OBJ_obj2txt
is awkward and messy to use: it doesn't follow the convention of other
OpenSSL functions where the buffer can be set to
.Dv NULL
to determine the amount of data that should be written.
Instead
.Fa buf
must point to a valid buffer and
.Fa buf_len
should be set to a positive value.
A buffer length of 80 should be more than enough to handle any OID
encountered in practice.







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>













365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
.Pp
Create a new object directly:
.Bd -literal -offset indent
obj = OBJ_txt2obj("1.2.3.4", 1);
.Ed
.Sh SEE ALSO
.Xr ERR_get_error 3
.Sh HISTORY
.Fn OBJ_nid2obj ,
.Fn OBJ_nid2ln ,
.Fn OBJ_nid2sn ,
.Fn OBJ_obj2nid ,
.Fn OBJ_ln2nid ,
.Fn OBJ_sn2nid ,
.Fn OBJ_txt2nid ,
.Fn OBJ_cmp ,
.Fn OBJ_dup ,
and
.Fn OBJ_cleanup
appeared in SSLeay 0.8.1b or earlier.
.Fn OBJ_create
and
.Fn i2t_ASN1_OBJECT
first appeared in SSLeay 0.9.0.
All these functions have been available since
.Ox 2.4 .
.Pp
.Fn OBJ_txt2obj
first appeared in OpenSSL 0.9.2b.
.Fn OBJ_obj2txt
first appeared in OpenSSL 0.9.4.
Both functions have been available since
.Ox 2.6 .
.Sh BUGS
.Fn OBJ_obj2txt
is awkward and messy to use: it doesn't follow the convention of other
OpenSSL functions where the buffer can be set to
.Dv NULL
to determine the amount of data that should be written.
Instead
.Fa buf
must point to a valid buffer and
.Fa buf_len
should be set to a positive value.
A buffer length of 80 should be more than enough to handle any OID
encountered in practice.
Changes to jni/libressl/man/OCSP_CRLID_new.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: OCSP_CRLID_new.3,v 1.3 2016/12/25 22:15:10 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 25 2016 $
.Dt OCSP_CRLID_NEW 3
.Os
.Sh NAME
.Nm OCSP_CRLID_new ,
.Nm OCSP_CRLID_free ,
.Nm OCSP_crlID_new
.Nd OCSP CRL extension
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: OCSP_CRLID_new.3,v 1.4 2018/03/22 21:08:22 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt OCSP_CRLID_NEW 3
.Os
.Sh NAME
.Nm OCSP_CRLID_new ,
.Nm OCSP_CRLID_free ,
.Nm OCSP_crlID_new
.Nd OCSP CRL extension
93
94
95
96
97
98
99







100
101
102
103
104
105
.Sh SEE ALSO
.Xr OCSP_resp_find_status 3 ,
.Xr OCSP_response_status 3 ,
.Xr X509_EXTENSION_new 3
.Sh STANDARDS
RFC 6960: X.509 Internet Public Key Infrastructure Online Certificate
Status Protocol, section 4.4.2: CRL References







.Sh CAVEATS
The function names
.Fn OCSP_CRLID_new
and
.Fn OCSP_crlID_new
only differ in case.







>
>
>
>
>
>
>






93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
.Sh SEE ALSO
.Xr OCSP_resp_find_status 3 ,
.Xr OCSP_response_status 3 ,
.Xr X509_EXTENSION_new 3
.Sh STANDARDS
RFC 6960: X.509 Internet Public Key Infrastructure Online Certificate
Status Protocol, section 4.4.2: CRL References
.Sh HISTORY
.Fn OCSP_CRLID_new ,
.Fn OCSP_CRLID_free ,
and
.Fn OCSP_crlID_new
first appeared in OpenSSL 0.9.7 and has been available since
.Ox 3.2 .
.Sh CAVEATS
The function names
.Fn OCSP_CRLID_new
and
.Fn OCSP_crlID_new
only differ in case.
Changes to jni/libressl/man/OCSP_REQUEST_new.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: OCSP_REQUEST_new.3,v 1.7 2016/12/25 22:15:10 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: OCSP_REQUEST_new.3,v 1.8 2018/03/22 21:08:22 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 25 2016 $
.Dt OCSP_REQUEST_NEW 3
.Os
.Sh NAME
.Nm OCSP_REQUEST_new ,
.Nm OCSP_REQUEST_free ,
.Nm OCSP_SIGNATURE_new ,
.Nm OCSP_SIGNATURE_free ,







|







61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt OCSP_REQUEST_NEW 3
.Os
.Sh NAME
.Nm OCSP_REQUEST_new ,
.Nm OCSP_REQUEST_free ,
.Nm OCSP_SIGNATURE_new ,
.Nm OCSP_SIGNATURE_free ,
313
314
315
316
317
318
319




.Xr OCSP_resp_find_status 3 ,
.Xr OCSP_response_status 3 ,
.Xr OCSP_sendreq_new 3 ,
.Xr OCSP_SERVICELOC_new 3
.Sh STANDARDS
RFC 6960: X.509 Internet Public Key Infrastructure Online Certificate
Status Protocol, section 4.1: Request Syntax











>
>
>
>
313
314
315
316
317
318
319
320
321
322
323
.Xr OCSP_resp_find_status 3 ,
.Xr OCSP_response_status 3 ,
.Xr OCSP_sendreq_new 3 ,
.Xr OCSP_SERVICELOC_new 3
.Sh STANDARDS
RFC 6960: X.509 Internet Public Key Infrastructure Online Certificate
Status Protocol, section 4.1: Request Syntax
.Sh HISTORY
These functions first appeared in OpenSSL 0.9.7
and have been available since
.Ox 3.2 .
Changes to jni/libressl/man/OCSP_SERVICELOC_new.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: OCSP_SERVICELOC_new.3,v 1.5 2016/12/25 22:15:10 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 25 2016 $
.Dt OCSP_SERVICELOC_NEW 3
.Os
.Sh NAME
.Nm OCSP_SERVICELOC_new ,
.Nm OCSP_SERVICELOC_free ,
.Nm OCSP_url_svcloc_new
.Nd OCSP service locator extension
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: OCSP_SERVICELOC_new.3,v 1.6 2018/03/22 21:08:22 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt OCSP_SERVICELOC_NEW 3
.Os
.Sh NAME
.Nm OCSP_SERVICELOC_new ,
.Nm OCSP_SERVICELOC_free ,
.Nm OCSP_url_svcloc_new
.Nd OCSP service locator extension
95
96
97
98
99
100
101







.Xr OCSP_REQUEST_new 3 ,
.Xr X509_EXTENSION_new 3 ,
.Xr X509_get_issuer_name 3 ,
.Xr X509_NAME_new 3
.Sh STANDARDS
RFC 6960: X.509 Internet Public Key Infrastructure Online Certificate
Status Protocol, section 4.4.6: Service Locator














>
>
>
>
>
>
>
95
96
97
98
99
100
101
102
103
104
105
106
107
108
.Xr OCSP_REQUEST_new 3 ,
.Xr X509_EXTENSION_new 3 ,
.Xr X509_get_issuer_name 3 ,
.Xr X509_NAME_new 3
.Sh STANDARDS
RFC 6960: X.509 Internet Public Key Infrastructure Online Certificate
Status Protocol, section 4.4.6: Service Locator
.Sh HISTORY
.Fn OCSP_SERVICELOC_new ,
.Fn OCSP_SERVICELOC_free ,
and
.Fn OCSP_url_svcloc_new
first appeared in OpenSSL 0.9.7 and have been available since
.Ox 3.2 .
Changes to jni/libressl/man/OCSP_cert_to_id.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: OCSP_cert_to_id.3,v 1.6 2016/12/25 22:15:10 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: OCSP_cert_to_id.3,v 1.7 2018/03/22 21:08:22 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 25 2016 $
.Dt OCSP_CERT_TO_ID 3
.Os
.Sh NAME
.Nm OCSP_CERTID_new ,
.Nm OCSP_CERTID_free ,
.Nm OCSP_cert_to_id ,
.Nm OCSP_cert_id_new ,







|







61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt OCSP_CERT_TO_ID 3
.Os
.Sh NAME
.Nm OCSP_CERTID_new ,
.Nm OCSP_CERTID_free ,
.Nm OCSP_cert_to_id ,
.Nm OCSP_cert_id_new ,
220
221
222
223
224
225
226




.Xr OCSP_response_status 3 ,
.Xr OCSP_sendreq_new 3 ,
.Xr X509_get_issuer_name 3 ,
.Xr X509_NAME_new 3
.Sh STANDARDS
RFC 6960: X.509 Internet Public Key Infrastructure Online Certificate
Status Protocol, section 4: Details of the Protocol











>
>
>
>
220
221
222
223
224
225
226
227
228
229
230
.Xr OCSP_response_status 3 ,
.Xr OCSP_sendreq_new 3 ,
.Xr X509_get_issuer_name 3 ,
.Xr X509_NAME_new 3
.Sh STANDARDS
RFC 6960: X.509 Internet Public Key Infrastructure Online Certificate
Status Protocol, section 4: Details of the Protocol
.Sh HISTORY
These functions first appeared in OpenSSL 0.9.7
and have been available since
.Ox 3.2 .
Changes to jni/libressl/man/OCSP_request_add1_nonce.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: OCSP_request_add1_nonce.3,v 1.3 2016/12/06 14:54:55 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2014, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: OCSP_request_add1_nonce.3,v 1.4 2018/03/22 21:08:22 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2014, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 6 2016 $
.Dt OCSP_REQUEST_ADD1_NONCE 3
.Os
.Sh NAME
.Nm OCSP_request_add1_nonce ,
.Nm OCSP_basic_add1_nonce ,
.Nm OCSP_check_nonce ,
.Nm OCSP_copy_nonce







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt OCSP_REQUEST_ADD1_NONCE 3
.Os
.Sh NAME
.Nm OCSP_request_add1_nonce ,
.Nm OCSP_basic_add1_nonce ,
.Nm OCSP_check_nonce ,
.Nm OCSP_copy_nonce
153
154
155
156
157
158
159




only: this will happen if the responder doesn't support nonces.
.Sh SEE ALSO
.Xr OCSP_cert_to_id 3 ,
.Xr OCSP_REQUEST_new 3 ,
.Xr OCSP_resp_find_status 3 ,
.Xr OCSP_response_status 3 ,
.Xr OCSP_sendreq_new 3











>
>
>
>
153
154
155
156
157
158
159
160
161
162
163
only: this will happen if the responder doesn't support nonces.
.Sh SEE ALSO
.Xr OCSP_cert_to_id 3 ,
.Xr OCSP_REQUEST_new 3 ,
.Xr OCSP_resp_find_status 3 ,
.Xr OCSP_response_status 3 ,
.Xr OCSP_sendreq_new 3
.Sh HISTORY
These functions first appeared in OpenSSL 0.9.7
and have been available since
.Ox 3.2 .
Changes to jni/libressl/man/OCSP_resp_find_status.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
.\"	$OpenBSD: OCSP_resp_find_status.3,v 1.5 2016/12/25 22:15:10 schwarze Exp $
.\"	OpenSSL c952780c Jun 21 07:03:34 2016 -0400
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|




|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
.\" $OpenBSD: OCSP_resp_find_status.3,v 1.8 2018/03/23 23:18:17 schwarze Exp $
.\" full merge up to: OpenSSL c952780c Jun 21 07:03:34 2016 -0400
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2016, 2018 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81

82
83
84
85
86
87
88
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 25 2016 $
.Dt OCSP_RESP_FIND_STATUS 3
.Os
.Sh NAME
.Nm OCSP_SINGLERESP_new ,
.Nm OCSP_SINGLERESP_free ,
.Nm OCSP_CERTSTATUS_new ,
.Nm OCSP_CERTSTATUS_free ,
.Nm OCSP_REVOKEDINFO_new ,
.Nm OCSP_REVOKEDINFO_free ,
.Nm OCSP_resp_find_status ,
.Nm OCSP_resp_count ,
.Nm OCSP_resp_get0 ,
.Nm OCSP_resp_find ,

.Nm OCSP_single_get0_status ,
.Nm OCSP_check_validity
.Nd OCSP response utility functions
.Sh SYNOPSIS
.In openssl/ocsp.h
.Ft OCSP_SINGLERESP *
.Fn OCSP_SINGLERESP_new void







|













>







61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt OCSP_RESP_FIND_STATUS 3
.Os
.Sh NAME
.Nm OCSP_SINGLERESP_new ,
.Nm OCSP_SINGLERESP_free ,
.Nm OCSP_CERTSTATUS_new ,
.Nm OCSP_CERTSTATUS_free ,
.Nm OCSP_REVOKEDINFO_new ,
.Nm OCSP_REVOKEDINFO_free ,
.Nm OCSP_resp_find_status ,
.Nm OCSP_resp_count ,
.Nm OCSP_resp_get0 ,
.Nm OCSP_resp_find ,
.Nm OCSP_SINGLERESP_get0_id ,
.Nm OCSP_single_get0_status ,
.Nm OCSP_check_validity
.Nd OCSP response utility functions
.Sh SYNOPSIS
.In openssl/ocsp.h
.Ft OCSP_SINGLERESP *
.Fn OCSP_SINGLERESP_new void
117
118
119
120
121
122
123




124
125
126
127
128
129
130
.Fc
.Ft int
.Fo OCSP_resp_find
.Fa "OCSP_BASICRESP *bs"
.Fa "OCSP_CERTID *id"
.Fa "int last"
.Fc




.Ft int
.Fo OCSP_single_get0_status
.Fa "OCSP_SINGLERESP *single"
.Fa "int *reason"
.Fa "ASN1_GENERALIZEDTIME **revtime"
.Fa "ASN1_GENERALIZEDTIME **thisupd"
.Fa "ASN1_GENERALIZEDTIME **nextupd"







>
>
>
>







118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
.Fc
.Ft int
.Fo OCSP_resp_find
.Fa "OCSP_BASICRESP *bs"
.Fa "OCSP_CERTID *id"
.Fa "int last"
.Fc
.Ft const OCSP_CERTID *
.Fo OCSP_SINGLERESP_get0_id
.Fa "const OCSP_SINGLERESP *single"
.Fc
.Ft int
.Fo OCSP_single_get0_status
.Fa "OCSP_SINGLERESP *single"
.Fa "int *reason"
.Fa "ASN1_GENERALIZEDTIME **revtime"
.Fa "ASN1_GENERALIZEDTIME **thisupd"
.Fa "ASN1_GENERALIZEDTIME **nextupd"
358
359
360
361
362
363
364





365
366
367
368
369
370
371
372
373
374
375
376
377
378




















.Fa id
in
.Fa bs
(which may be 0) or -1 if
.Fa id
was not found.
.Pp





.Fn OCSP_single_get0_status
returns the status of
.Fa single
or -1 if an error occurred.
.Sh SEE ALSO
.Xr OCSP_cert_to_id 3 ,
.Xr OCSP_CRLID_new 3 ,
.Xr OCSP_request_add1_nonce 3 ,
.Xr OCSP_REQUEST_new 3 ,
.Xr OCSP_response_status 3 ,
.Xr OCSP_sendreq_new 3
.Sh STANDARDS
RFC 6960: X.509 Internet Public Key Infrastructure Online Certificate
Status Protocol, section 4.2: Response Syntax



























>
>
>
>
>














>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
.Fa id
in
.Fa bs
(which may be 0) or -1 if
.Fa id
was not found.
.Pp
.Fn OCSP_SINGLERESP_get0_id
returns an internal pointer to the certificate ID object used by
.Fa single ;
the returned pointer should not be freed by the caller.
.Pp
.Fn OCSP_single_get0_status
returns the status of
.Fa single
or -1 if an error occurred.
.Sh SEE ALSO
.Xr OCSP_cert_to_id 3 ,
.Xr OCSP_CRLID_new 3 ,
.Xr OCSP_request_add1_nonce 3 ,
.Xr OCSP_REQUEST_new 3 ,
.Xr OCSP_response_status 3 ,
.Xr OCSP_sendreq_new 3
.Sh STANDARDS
RFC 6960: X.509 Internet Public Key Infrastructure Online Certificate
Status Protocol, section 4.2: Response Syntax
.Sh HISTORY
.Fn OCSP_SINGLERESP_new ,
.Fn OCSP_SINGLERESP_free ,
.Fn OCSP_CERTSTATUS_new ,
.Fn OCSP_CERTSTATUS_free ,
.Fn OCSP_REVOKEDINFO_new ,
.Fn OCSP_REVOKEDINFO_free ,
.Fn OCSP_resp_find_status ,
.Fn OCSP_resp_count ,
.Fn OCSP_resp_get0 ,
.Fn OCSP_resp_find ,
.Fn OCSP_single_get0_status ,
and
.Fn OCSP_check_validity
first appeared in OpenSSL 0.9.7 and have been available since
.Ox 3.2 .
.Pp
.Fn OCSP_SINGLERESP_get0_id
first appeared in OpenSSL 1.1.0 and has been available since
.Ox 6.3 .
Changes to jni/libressl/man/OCSP_response_status.3.
1
2

3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\"	$OpenBSD: OCSP_response_status.3,v 1.4 2016/12/25 22:15:10 schwarze Exp $
.\"	OpenSSL bb9ad09e Jun 6 00:43:05 2016 -0400

.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" The original file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2014, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
|
|
>



















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" $OpenBSD: OCSP_response_status.3,v 1.6 2018/03/22 21:08:22 schwarze Exp $
.\" full merge up to: OpenSSL bb9ad09e Jun 6 00:43:05 2016 -0400
.\" selective merge up to: OpenSSL e23ac625 Jan 24 12:27:19 2018 -0500
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" The original file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2014, 2016, 2018 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84

85
86
87
88
89
90
91
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 25 2016 $
.Dt OCSP_RESPONSE_STATUS 3
.Os
.Sh NAME
.Nm OCSP_RESPONSE_new ,
.Nm OCSP_RESPONSE_free ,
.Nm OCSP_RESPBYTES_new ,
.Nm OCSP_RESPBYTES_free ,
.Nm OCSP_BASICRESP_new ,
.Nm OCSP_BASICRESP_free ,
.Nm OCSP_RESPDATA_new ,
.Nm OCSP_RESPDATA_free ,
.Nm OCSP_RESPID_new ,
.Nm OCSP_RESPID_free ,
.Nm OCSP_response_create ,
.Nm OCSP_response_status ,
.Nm OCSP_response_get1_basic

.Nd OCSP response functions
.Sh SYNOPSIS
.In openssl/ocsp.h
.Ft OCSP_RESPONSE *
.Fn OCSP_RESPONSE_new void
.Ft void
.Fn OCSP_RESPONSE_free "OCSP_RESPONSE *resp"







|















|
>







62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt OCSP_RESPONSE_STATUS 3
.Os
.Sh NAME
.Nm OCSP_RESPONSE_new ,
.Nm OCSP_RESPONSE_free ,
.Nm OCSP_RESPBYTES_new ,
.Nm OCSP_RESPBYTES_free ,
.Nm OCSP_BASICRESP_new ,
.Nm OCSP_BASICRESP_free ,
.Nm OCSP_RESPDATA_new ,
.Nm OCSP_RESPDATA_free ,
.Nm OCSP_RESPID_new ,
.Nm OCSP_RESPID_free ,
.Nm OCSP_response_create ,
.Nm OCSP_response_status ,
.Nm OCSP_response_get1_basic ,
.Nm OCSP_basic_sign
.Nd OCSP response functions
.Sh SYNOPSIS
.In openssl/ocsp.h
.Ft OCSP_RESPONSE *
.Fn OCSP_RESPONSE_new void
.Ft void
.Fn OCSP_RESPONSE_free "OCSP_RESPONSE *resp"
114
115
116
117
118
119
120









121
122
123
124
125
126
127
.Fo OCSP_response_status
.Fa "OCSP_RESPONSE *resp"
.Fc
.Ft OCSP_BASICRESP *
.Fo OCSP_response_get1_basic
.Fa "OCSP_RESPONSE *resp"
.Fc









.Sh DESCRIPTION
.Fn OCSP_RESPONSE_new
allocates and initializes an empty
.Vt OCSP_RESPONSE
object, representing an ASN.1
.Vt OCSPResponse
structure defined in RFC 6960.







>
>
>
>
>
>
>
>
>







116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
.Fo OCSP_response_status
.Fa "OCSP_RESPONSE *resp"
.Fc
.Ft OCSP_BASICRESP *
.Fo OCSP_response_get1_basic
.Fa "OCSP_RESPONSE *resp"
.Fc
.Ft int
.Fo OCSP_basic_sign
.Fa "OCSP_BASICRESP *bs"
.Fa "X509 *signer"
.Fa "EVP_PKEY *key"
.Fa "const EVP_MD *dgst"
.Fa "STACK_OF(X509) *certs"
.Fa "unsigned long flags"
.Fc
.Sh DESCRIPTION
.Fn OCSP_RESPONSE_new
allocates and initializes an empty
.Vt OCSP_RESPONSE
object, representing an ASN.1
.Vt OCSPResponse
structure defined in RFC 6960.
202
203
204
205
206
207
208























209
210
211
212
213
214
215
.Fn OCSP_response_get1_basic
decodes and returns the
.Vt OCSP_BASICRESP
object contained in
.Fa resp .
It is only called if the status of a response is
.Dv OCSP_RESPONSE_STATUS_SUCCESSFUL .























.Sh RETURN VALUES
.Fn OCSP_RESPONSE_new
and
.Fn OCSP_response_create
return a pointer to an
.Vt OCSP_RESPONSE
object or







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
.Fn OCSP_response_get1_basic
decodes and returns the
.Vt OCSP_BASICRESP
object contained in
.Fa resp .
It is only called if the status of a response is
.Dv OCSP_RESPONSE_STATUS_SUCCESSFUL .
.Pp
.Fn OCSP_basic_sign
signs the OCSP response
.Fa bs
using the certificate
.Fa signer ,
the private key
.Fa key ,
the digest
.Fa dgst ,
and the additional certificates
.Fa certs .
If the
.Fa flags
option
.Dv OCSP_NOCERTS
is set, then no certificates will be included in the request.
If the
.Fa flags
option
.Dv OCSP_RESPID_KEY
is set, then the responder is identified by key ID
rather than by name.
.Sh RETURN VALUES
.Fn OCSP_RESPONSE_new
and
.Fn OCSP_response_create
return a pointer to an
.Vt OCSP_RESPONSE
object or
236
237
238
239
240
241
242



243
244
245
246
247
248
249
250
251




.Vt OCSP_RESPID
object, respectively, or
.Dv NULL
if an error occurred.
.Pp
.Fn OCSP_response_status
returns a status value.



.Sh SEE ALSO
.Xr OCSP_cert_to_id 3 ,
.Xr OCSP_request_add1_nonce 3 ,
.Xr OCSP_REQUEST_new 3 ,
.Xr OCSP_resp_find_status 3 ,
.Xr OCSP_sendreq_new 3
.Sh STANDARDS
RFC 6960: X.509 Internet Public Key Infrastructure Online Certificate
Status Protocol, section 4.2: Response Syntax











>
>
>









>
>
>
>
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
.Vt OCSP_RESPID
object, respectively, or
.Dv NULL
if an error occurred.
.Pp
.Fn OCSP_response_status
returns a status value.
.Pp
.Fn OCSP_basic_sign
return 1 on success or 0 on failure.
.Sh SEE ALSO
.Xr OCSP_cert_to_id 3 ,
.Xr OCSP_request_add1_nonce 3 ,
.Xr OCSP_REQUEST_new 3 ,
.Xr OCSP_resp_find_status 3 ,
.Xr OCSP_sendreq_new 3
.Sh STANDARDS
RFC 6960: X.509 Internet Public Key Infrastructure Online Certificate
Status Protocol, section 4.2: Response Syntax
.Sh HISTORY
These functions first appeared in OpenSSL 0.9.7
and have been available since
.Ox 3.2 .
Changes to jni/libressl/man/OCSP_sendreq_new.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: OCSP_sendreq_new.3,v 1.4 2017/07/06 15:42:04 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2014, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: OCSP_sendreq_new.3,v 1.7 2018/03/23 04:34:23 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2014, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: July 6 2017 $
.Dt OCSP_SENDREQ_NEW 3
.Os
.Sh NAME
.Nm OCSP_sendreq_new ,
.Nm OCSP_sendreq_nbio ,
.Nm OCSP_REQ_CTX_free ,
.Nm OCSP_REQ_CTX_add1_header ,







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt OCSP_SENDREQ_NEW 3
.Os
.Sh NAME
.Nm OCSP_sendreq_new ,
.Nm OCSP_sendreq_nbio ,
.Nm OCSP_REQ_CTX_free ,
.Nm OCSP_REQ_CTX_add1_header ,
224
225
226
227
228
229
230

















231
232
233
234
235
236
.Dl OCSP_REQ_CTX_add1_header(ctx, "Host", "ocsp.com");
.Sh SEE ALSO
.Xr OCSP_cert_to_id 3 ,
.Xr OCSP_request_add1_nonce 3 ,
.Xr OCSP_REQUEST_new 3 ,
.Xr OCSP_resp_find_status 3 ,
.Xr OCSP_response_status 3

















.Sh CAVEATS
These functions only perform a minimal HTTP query to a responder.
If an application wishes to support more advanced features, it
should use an alternative, more complete, HTTP library.
.Pp
Currently only HTTP POST queries to responders are supported.







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>






224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
.Dl OCSP_REQ_CTX_add1_header(ctx, "Host", "ocsp.com");
.Sh SEE ALSO
.Xr OCSP_cert_to_id 3 ,
.Xr OCSP_request_add1_nonce 3 ,
.Xr OCSP_REQUEST_new 3 ,
.Xr OCSP_resp_find_status 3 ,
.Xr OCSP_response_status 3
.Sh HISTORY
.Fn OCSP_sendreq_bio
first appeared in OpenSSL 0.9.7 and has been available since
.Ox 3.2 .
.Pp
.Fn OCSP_sendreq_new ,
.Fn OCSP_sendreq_nbio ,
and
.Fn OCSP_REQ_CTX_free
first appeared in OpenSSL 0.9.8h and have been available since
.Ox 4.5 .
.Pp
.Fn OCSP_REQ_CTX_add1_header
and
.Fn OCSP_REQ_CTX_set1_req
first appeared in OpenSSL 1.0.0 and have been available since
.Ox 4.9 .
.Sh CAVEATS
These functions only perform a minimal HTTP query to a responder.
If an application wishes to support more advanced features, it
should use an alternative, more complete, HTTP library.
.Pp
Currently only HTTP POST queries to responders are supported.
Changes to jni/libressl/man/OPENSSL_VERSION_NUMBER.3.
1
2
3

















4
5

6

7
8
9
10
11
12
13
.\"	$OpenBSD: OPENSSL_VERSION_NUMBER.3,v 1.3 2016/11/28 14:51:03 schwarze Exp $
.\"	OpenSSL 9b86974e Aug 17 15:21:33 2015 -0400
.\"

















.\" This file was written by Ulf Moeller <ulf@openssl.org> and
.\" Richard Levitte <levitte@openssl.org>.

.\" Copyright (c) 2000, 2002, 2014 The OpenSSL Project.  All rights reserved.

.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
|
|

>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
|
>
|
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
.\" $OpenBSD: OPENSSL_VERSION_NUMBER.3,v 1.9 2018/03/23 23:18:17 schwarze Exp $
.\" full merge up to: OpenSSL 1f13ad31 Dec 25 17:50:39 2017 +0800
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2017, 2018 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" The original file was written by Ulf Moeller <ulf@openssl.org>,
.\" Richard Levitte <levitte@openssl.org>, and
.\" Bodo Moeller <bodo@openssl.org>.
.\" Copyright (c) 2000, 2002, 2015, 2016, 2017 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
45
46
47
48
49
50
51
52
53
54
55
56




57
58
59
60
61
62


63






64
65
66
67
68
69
70
71


72
73
74
75
76
77
78






79
80
81

82
83
84




85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108

109
110
111
112
113
114
115

116



117
118


119

































120
121
122
123
124
125
126
127
128
129
130
131
132
133
134



























135



136





137
138
139
140

141
142
143


144

145


146
147
















.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 28 2016 $
.Dt OPENSSL_VERSION_NUMBER 3
.Os
.Sh NAME
.Nm OPENSSL_VERSION_NUMBER ,




.Nm SSLeay ,
.Nm SSLeay_version
.Nd get OpenSSL version number
.Sh SYNOPSIS
.In openssl/opensslv.h
.Fd #define OPENSSL_VERSION_NUMBER 0xnnnnnnnnnL


.In openssl/crypto.h






.Ft long
.Fn SSLeay void
.Ft const char *
.Fo SSLeay_version
.Fa "int t"
.Fc
.Sh DESCRIPTION
.Dv OPENSSL_VERSION_NUMBER


is a numeric release version identifier.
The first two digits contain the major release number,
the third and fourth digits the minor release number,
the fifth and sixth digits the fix release number,
the seventh and eight digits the patch release number.
The final digit is 0 for development, 1 to e for betas 1 to 14, or f
for release.






.Pp
For example:
.Bd -literal -offset indent

0x000906000 == 0.9.6 dev
0x000906023 == 0.9.6b beta 3
0x00090605f == 0.9.6e release




.Ed
.Pp
Versions prior to 0.9.3 had identifiers < 0x0930.
For versions between 0.9.3 and 0.9.5,
the seventh digit was 1 for release and 0 otherwise,
and the eighth and ninth digits were the patch release number.
.Pp
For example:
.Bd -literal
0x000904100 == 0.9.4 release
0x000905000 == 0.9.5 dev
.Ed
.Pp
Version 0.9.5a had an interim interpretation that is like the current
one, except the patch level got the highest bit set, to keep continuity.
The number was therefore 0x0090581f.
.Pp
For backward compatibility, SSLEAY_VERSION_NUMBER is also defined.
.Pp
.Fn SSLeay
returns this number.
The return value can be compared to the macro to make sure that the
correct version of the library has been loaded, especially when using
DLLs on Windows systems.

.Pp
.Fn SSLeay_version
returns different strings depending on
.Fa t :
.Bl -tag -width Ds
.It Dv SSLEAY_VERSION
The text variant of the version number and the release date.

For example, "OpenSSL 0.9.5a 1 Apr 2000".



.It Dv SSLEAY_CFLAGS
The compiler flags set for the compilation process in the form


"compiler: ..." if available or "compiler: information not available"

































otherwise.
.It Dv SSLEAY_BUILT_ON
The date of the build process in the form "built on: ..." if available
or "built on: date not available" otherwise.
.It Dv SSLEAY_PLATFORM
The "Configure" target of the library build in the form "platform: ..."
if available or "platform: information not available" otherwise.
.It Dv SSLEAY_DIR
The "OPENSSLDIR" setting of the library build in the form "OPENSSLDIR:
"..."" if available or "OPENSSLDIR: N/A" otherwise.
.El
.Pp
For an unknown
.Fa t ,
the text "not available" is returned.



























.Sh RETURN VALUES



The version number.





.Sh SEE ALSO
.Xr crypto 3
.Sh HISTORY
.Fn SSLeay

and
.Dv SSLEAY_VERSION_NUMBER
are available in all versions of SSLeay and OpenSSL.


.Dv OPENSSL_VERSION_NUMBER

is available in all versions of OpenSSL.


.Dv SSLEAY_DIR
was added in OpenSSL 0.9.7.























|




>
>
>
>





|
>
>

>
>
>
>
>
>








>
>
|


|
|
|

>
>
>
>
>
>



>



>
>
>
>


|










|



<
<
|
|
<
<
<
>

|



|
|
>
|
>
>
>
|

>
>
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

|
<
<
<
<
<
|
<
<




|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

>
>
>
|
>
>
>
>
>



|
>


|
>
>

>
|
>
>


>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145


146
147



148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200





201


202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt OPENSSL_VERSION_NUMBER 3
.Os
.Sh NAME
.Nm OPENSSL_VERSION_NUMBER ,
.Nm LIBRESSL_VERSION_NUMBER ,
.Nm LIBRESSL_VERSION_TEXT ,
.Nm OpenSSL_version_num ,
.Nm OpenSSL_version ,
.Nm SSLeay ,
.Nm SSLeay_version
.Nd get OpenSSL version number
.Sh SYNOPSIS
.In openssl/opensslv.h
.Fd #define OPENSSL_VERSION_NUMBER 0x020000000L
.Fd #define LIBRESSL_VERSION_NUMBER 0x02nnnn00fL
.Fd #define LIBRESSL_VERSION_TEXT \(dqLibreSSL 2.n.n\(dq
.In openssl/crypto.h
.Ft unsigned long
.Fn OpenSSL_version_num void
.Ft const char *
.Fo OpenSSL_version
.Fa "int t"
.Fc
.Ft long
.Fn SSLeay void
.Ft const char *
.Fo SSLeay_version
.Fa "int t"
.Fc
.Sh DESCRIPTION
.Dv OPENSSL_VERSION_NUMBER
and
.Dv LIBRESSL_VERSION_NUMBER
are numeric release version identifiers.
The first two digits contain the major release number,
the third and fourth digits the minor release number,
and the fifth and sixth digits the fix release number.
For OpenSSL, the seventh and eight digits contain the patch release number
and the final digit is 0 for development, 1 to e for betas 1 to 14, or f
for release.
For LibreSSL,
.Dv OPENSSL_VERSION_NUMBER
is always 0x020000000,
and
.Dv LIBRESSL_VERSION_NUMBER
always ends with 00f.
.Pp
For example:
.Bd -literal -offset indent
OPENSSL_VERSION_NUMBER:
0x000906000 == 0.9.6 dev
0x000906023 == 0.9.6b beta 3
0x00090605f == 0.9.6e release
0x020000000 == 2.0.0 for any version of LibreSSL

LIBRESSL_VERSION_NUMBER:
0x02070000f == LibreSSL 2.7.0
.Ed
.Pp
OpenSSL versions prior to 0.9.3 had identifiers < 0x0930.
For versions between 0.9.3 and 0.9.5,
the seventh digit was 1 for release and 0 otherwise,
and the eighth and ninth digits were the patch release number.
.Pp
For example:
.Bd -literal
0x000904100 == 0.9.4 release
0x000905000 == 0.9.5 dev
.Ed
.Pp
OpenSSL version 0.9.5a had an interim interpretation that is like the current
one, except the patch level got the highest bit set, to keep continuity.
The number was therefore 0x0090581f.
.Pp


.Fn OpenSSL_version_num
returns



.Dv OPENSSL_VERSION_NUMBER .
.Pp
.Fn OpenSSL_version
returns different strings depending on
.Fa t :
.Bl -tag -width Ds
.It Dv OPENSSL_VERSION
The text variant of the version number.
For OpenSSL, it is followed by the release date, for example
.Qq OpenSSL 0.9.5a 1 Apr 2000 .
For LibreSSL,
.Dv LIBRESSL_VERSION_TEXT
is returned.
.It Dv OPENSSL_CFLAGS
The compiler flags set for the compilation process in the form
.Qq compiler: ...
if available or
.Qq compiler: information not available
otherwise.
LibreSSL never provides compiler information.
.It Dv OPENSSL_BUILT_ON
The date of the build process in the form
.Qq built on: ...
if available or
.Qq built on: date not available
otherwise.
LibreSSL never provides information on the build date.
.It Dv OPENSSL_PLATFORM
The Configure target of the library build in the form
.Qq platform: ...
if available or
.Qq platform: information not available
otherwise.
LibreSSL never provides platform information.
.It Dv OPENSSL_DIR
The
.Dv OPENSSLDIR
setting of the library build in the form
.Qq OPENSSLDIR: Qq ...
if available or
.Qq OPENSSLDIR: N/A
otherwise.
For LibreSSL, the default is
.Qq OPENSSLDIR: Qq /etc/ssl .
.It Dv OPENSSL_ENGINES_DIR
The
.Dv ENGINESDIR
setting of the library build in the form
.Qq ENGINESDIR: Qq ...
if available or
.Qq ENGINESDIR: N/A
otherwise.
LibreSSL never provides or uses an





.Dv ENGINESDIR .


.El
.Pp
For an unknown
.Fa t ,
the text
.Qq not available
is returned.
.Pp
For backward compatibility,
.Dv SSLEAY_VERSION_NUMBER
is an alias for
.Dv OPENSSL_VERSION_NUMBER
and
.Fn SSLeay
for
.Dv OpenSSL_version_num .
The legacy function
.Fn SSLeay_version
is similar to
.Fn OpenSSL_version
except that it takes arguments
.Dv SSLEAY_VERSION ,
.Dv SSLEAY_CFLAGS ,
.Dv SSLEAY_BUILT_ON ,
.Dv SSLEAY_PLATFORM ,
and
.Dv SSLEAY_DIR
which expand to
.Em other
numerical values than the corresponding
.Dv OPENSSL_*
macros.
.Sh RETURN VALUES
.Fn OpenSSL_version_num
and
.Fn SSLeay
return a constant version number.
.Pp
.Fn OpenSSL_version
and
.Fn SSLeay_version
return pointers to static strings.
.Sh SEE ALSO
.Xr crypto 3
.Sh HISTORY
.Fn SSLeay ,
.Fn SSLeay_version ,
and
.Dv SSLEAY_VERSION_NUMBER
appeared in SSLeay 0.8.1b or earlier and have been available since
.Ox 2.4 .
.Pp
.Dv OPENSSL_VERSION_NUMBER
first appeared in the first OpenSSL release, OpenSSL 0.9.1c,
and has been available since
.Ox 2.6 .
.Pp
.Dv SSLEAY_DIR
was added in OpenSSL 0.9.7.
.Pp
.Dv LIBRESSL_VERSION_NUMBER
first appeared in LibreSSL 2.0.0 and
.Ox 5.6
and got its final format in LibreSSL 2.3.2 and
.Ox 5.9 .
.Dv LIBRESSL_VERSION_TEXT
first appeared in LibreSSL 2.2.2 and
.Ox 5.8 .
.Pp
.Fn OpenSSL_version_num
and
.Fn OpenSSL_version
first appeared in OpenSSL 1.1.0
and have been available since LibreSSL 2.7.1 and
.Ox 6.3 .
Changes to jni/libressl/man/OPENSSL_cleanse.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36




.\"	$OpenBSD: OPENSSL_cleanse.3,v 1.2 2016/11/29 21:29:19 jmc Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: November 29 2016 $
.Dt OPENSSL_CLEANSE 3
.Os
.Sh NAME
.Nm OPENSSL_cleanse
.Nd OpenSSL memory cleaning operation
.Sh SYNOPSIS
.In openssl/crypto.h
.Ft void
.Fo OPENSSL_cleanse
.Fa "void *ptr"
.Fa "size_t len"
.Fc
.Sh DESCRIPTION
Do not use the interface documented here.
It is provided purely for compatibility with legacy application code.
.Pp
.Fn OPENSSL_cleanse
has the same semantics as, and is a wrapper around,
.Xr explicit_bzero 3 .




|















|



















>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
.\"	$OpenBSD: OPENSSL_cleanse.3,v 1.3 2018/03/22 18:05:00 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt OPENSSL_CLEANSE 3
.Os
.Sh NAME
.Nm OPENSSL_cleanse
.Nd OpenSSL memory cleaning operation
.Sh SYNOPSIS
.In openssl/crypto.h
.Ft void
.Fo OPENSSL_cleanse
.Fa "void *ptr"
.Fa "size_t len"
.Fc
.Sh DESCRIPTION
Do not use the interface documented here.
It is provided purely for compatibility with legacy application code.
.Pp
.Fn OPENSSL_cleanse
has the same semantics as, and is a wrapper around,
.Xr explicit_bzero 3 .
.Sh HISTORY
.Fn OPENSSL_cleanse
first appeared in OpenSSL 0.9.6h and has been available since
.Ox 3.4 .
Changes to jni/libressl/man/OPENSSL_config.3.
1
2
3

















4
5
6
7
8
9
10
11
12
.\"	$OpenBSD: OPENSSL_config.3,v 1.6 2017/07/06 15:42:04 schwarze Exp $
.\"	OpenSSL ab6577a4 May 14 21:07:51 2014 +0100
.\"

















.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2004, 2005 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
|
|

>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" $OpenBSD: OPENSSL_config.3,v 1.10 2018/03/22 21:08:22 schwarze Exp $
.\" full merge up to: OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2018 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" The original file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2004 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67


68



69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88

89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149


150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: July 6 2017 $
.Dt OPENSSL_CONFIG 3
.Os
.Sh NAME
.Nm OPENSSL_config ,
.Nm OPENSSL_no_config
.Nd simple OpenSSL configuration functions
.Sh SYNOPSIS
.In openssl/conf.h
.Ft void
.Fo OPENSSL_config
.Fa "const char *config_name"
.Fc
.Ft void
.Fn OPENSSL_no_config void
.Sh DESCRIPTION
.Fn OPENSSL_config


configures OpenSSL using the standard



.Xr openssl.cnf 5
configuration file name using
.Fa config_name .
If
.Fa config_name
is
.Dv NULL
then the default name
.Sy openssl_conf
will be used.
Any errors are ignored.
Further calls to
.Fn OPENSSL_config
will have no effect.
.Pp
.Fn OPENSSL_no_config
disables configuration.
If called before
.Fn OPENSSL_config ,
no configuration takes place.

.Pp
It is
.Sy strongly
recommended that
.Sy all
new applications call
.Fn OPENSSL_config
or the more sophisticated functions such as
.Xr CONF_modules_load 3
during initialization (that is before starting any threads).
By doing this, an application does not need to keep track of all
configuration options and some new functionality can be supported
automatically.
.Pp
It is also possible to automatically call
.Fn OPENSSL_config
when an application calls
.Xr OpenSSL_add_all_algorithms 3
by compiling an application with the preprocessor symbol
.Dv OPENSSL_LOAD_CONF
#define'd.
In this way configuration can be added without source changes.
.Pp
The environment variable
.Ev OPENSSL_CONF
can be set to specify the location of the configuration file.
.Pp
Currently ASN.1 OBJECT and ENGINE configuration can be performed.
.Pp
There are several reasons why calling the OpenSSL configuration routines
is advisable.
For example new ENGINE functionality was added to OpenSSL 0.9.7.
In OpenSSL 0.9.7 control functions can be supported by ENGINEs which can be
used (among other things) to load dynamic ENGINEs from shared libraries
(DSOs).
However very few applications currently support the control interface
and so very few can load and use dynamic ENGINEs.
Equally in future more sophisticated ENGINEs will require certain
control operations to customize them.
If an application calls
.Fn OPENSSL_config
it doesn't need to know or care about ENGINE control operations because
they can be performed by editing a configuration file.
.Pp
Applications should free up configuration at application closedown by
calling
.Xr CONF_modules_free 3 .
.Sh RETURN VALUES
Neither
.Fn OPENSSL_config
nor
.Fn OPENSSL_no_config
return a value.
.Sh FILES
.Bl -tag -width /etc/ssl/openssl.cnf -compact
.It Pa /etc/ssl/openssl.cnf
standard configuration file
.El
.Sh SEE ALSO
.Xr CONF_modules_free 3 ,
.Xr CONF_modules_load 3 ,


.Xr openssl.cnf 5
.Sh HISTORY
.Fn OPENSSL_config
and
.Fn OPENSSL_no_config
first appeared in OpenSSL 0.9.7.
.Sh CAVEATS
The
.Fn OPENSSL_config
function is designed to be a very simple "call it and forget it"
function.
As a result its behaviour is somewhat limited.
It ignores all errors silently and it can only load from the standard
configuration file location for example.
.Pp
It is however
.Sy much
better than nothing.
Applications which need finer control over their configuration
functionality should use the configuration functions such as
.Xr CONF_modules_load 3
directly.







|





|




|





>
>
|
>
>
>
|
|
|

|

|


|



|


<
|
|
<
>

<
<
<
<
<
<
|
<
|
<
<
|

<
<
<
<
|

|
<
<
<
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
|
|
<
<




<
<
<
<
<
<







|
>
>





|
<
<
<
<
<
<
<
<
|
<
<
<
<
<
<
<
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106

107
108

109
110






111

112


113
114




115
116
117



118














119
120


121
122
123
124






125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140








141







.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt OPENSSL_CONFIG 3
.Os
.Sh NAME
.Nm OPENSSL_config ,
.Nm OPENSSL_no_config
.Nd simple crypto and ssl library configuration
.Sh SYNOPSIS
.In openssl/conf.h
.Ft void
.Fo OPENSSL_config
.Fa "const char *appname"
.Fc
.Ft void
.Fn OPENSSL_no_config void
.Sh DESCRIPTION
.Fn OPENSSL_config
initializes the crypto library with
.Xr OPENSSL_init_crypto 3
and then calls
.Xr OPENSSL_load_builtin_modules 3 ,
.Xr ENGINE_load_builtin_engines 3 ,
and
.Xr CONF_modules_load_file 3
with the standard configuration file and the given
.Fa appname .
If
.Fa appname
is
.Dv NULL ,
then the default name
.Sy openssl_conf
is used.
Any errors are ignored.
Further calls to
.Fn OPENSSL_config
have no effect.
.Pp
.Fn OPENSSL_no_config

has no effect except that later calls to
.Fn OPENSSL_config

will be ignored.
.Pp






Calling these functions is optional.

All required initialization of the crypto libraries happens


automatically when needed.
.Pp




If an application is compiled with the preprocessor symbol
.Dv OPENSSL_LOAD_CONF
#define'd,



.Xr OpenSSL_add_all_algorithms 3














automatically calls
.Fn OPENSSL_config .


.Pp
Applications should free up configuration at application closedown by
calling
.Xr CONF_modules_free 3 .






.Sh FILES
.Bl -tag -width /etc/ssl/openssl.cnf -compact
.It Pa /etc/ssl/openssl.cnf
standard configuration file
.El
.Sh SEE ALSO
.Xr CONF_modules_free 3 ,
.Xr CONF_modules_load_file 3 ,
.Xr OPENSSL_init_crypto 3 ,
.Xr OPENSSL_load_builtin_modules 3 ,
.Xr openssl.cnf 5
.Sh HISTORY
.Fn OPENSSL_config
and
.Fn OPENSSL_no_config
first appeared in OpenSSL 0.9.7 and have been available since








.Ox 3.2 .







Added jni/libressl/man/OPENSSL_init_crypto.3.














































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
.\" $OpenBSD: OPENSSL_init_crypto.3,v 1.3 2018/03/23 23:18:17 schwarze Exp $
.\" Copyright (c) 2018 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt OPENSSL_INIT_CRYPTO 3
.Os
.Sh NAME
.Nm OPENSSL_init_crypto
.Nd initialise the crypto library
.Sh SYNOPSIS
.In openssl/crypto.h
.Ft int
.Fo OPENSSL_init_crypto
.Fa "uint64_t options"
.Fa "const void *dummy"
.Fc
.Sh DESCRIPTION
If
.Fn OPENSSL_init_crypto
is called before any other crypto or ssl functions, the crypto
library is initialised by allocating various internal resources.
.Pp
The following
.Fa options
are supported:
.Bl -tag -width Ds
.It Dv OPENSSL_INIT_LOAD_CONFIG
At the end of the initialization, call
.Xr OPENSSL_config 3
with a
.Dv NULL
argument, loading the default configuration file.
.It Dv OPENSSL_INIT_NO_LOAD_CONFIG
Ignore any later calls to
.Xr OPENSSL_config 3 .
.El
.Pp
The other
.Fa options
flags defined by OpenSSL are all ignored by LibreSSL.
The
.Fa dummy
argument has no effect.
.Pp
Calling this function is almost never useful because it is internally
called with an
.Fa options
argument of 0 by those functions in the crypto and ssl libraries
that require it.
It is safest to assume that any function may do so.
.Pp
If this function is called more than once, none of the calls except
the first one have any effect.
.Sh RETURN VALUES
.Fn OPENSSL_init_crypto
is intended to return 1 on success or 0 on error.
.Sh SEE ALSO
.Xr CONF_modules_load_file 3 ,
.Xr OPENSSL_config 3 ,
.Xr OPENSSL_init_ssl 3 ,
.Xr OPENSSL_load_builtin_modules 3 ,
.Xr openssl.cnf 5
.Sh HISTORY
.Fn OPENSSL_init_crypto
first appeared in OpenSSL 1.1.0 and has been available since
.Ox 6.3 .
.Sh BUGS
.Fn OPENSSL_init_crypto
silently ignores almost all kinds of errors.
In particular, if memory allocation fails, initialisation is likely
to remain incomplete, the library may be in an inconsistent internal
state, but the return value will usually indicate success anyway.
There is no way for the application program to find out whether
library initialisation is actually complete, nor to get back to a
consistent state if it isn't.
Added jni/libressl/man/OPENSSL_init_ssl.3.


























































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
.\" $OpenBSD: OPENSSL_init_ssl.3,v 1.2 2018/03/24 00:55:37 schwarze Exp $
.\" Copyright (c) 2018 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 24 2018 $
.Dt OPENSSL_INIT_SSL 3
.Os
.Sh NAME
.Nm OPENSSL_init_ssl
.Nd initialise the crypto and ssl libraries
.Sh SYNOPSIS
.In openssl/ssl.h
.Ft int
.Fo OPENSSL_init_ssl
.Fa "uint64_t options"
.Fa "const void *dummy"
.Fc
.Sh DESCRIPTION
.Fn OPENSSL_init_ssl
calls
.Xr OPENSSL_init_crypto 3
and also allocates various resources used internally by the ssl library.
.Pp
Calling it is never useful because it is automatically called
internally when needed.
.Pp
The
.Fa options
argument is passed on to
.Xr OPENSSL_init_crypto 3
and the
.Fa dummy
argument is ignored.
.Pp
If this function is called more than once,
none of the calls except the first one have any effect.
.Sh RETURN VALUES
.Fn OPENSSL_init_ssl
is intended to return 1 on success or 0 on error.
.Sh SEE ALSO
.Xr CONF_modules_load_file 3 ,
.Xr OPENSSL_init_crypto 3
.Sh HISTORY
.Fn OPENSSL_init_ssl
first appeared in OpenSSL 1.1.0 and has been available since
.Ox 6.3 .
.Sh BUGS
.Fn OPENSSL_init_ssl
silently ignores even more configuration failures than
.Xr OPENSSL_init_crypto 3 .
Changes to jni/libressl/man/OPENSSL_load_builtin_modules.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: OPENSSL_load_builtin_modules.3,v 1.4 2016/11/28 15:08:58 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2004, 2013 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: OPENSSL_load_builtin_modules.3,v 1.5 2018/03/22 21:08:22 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2004, 2013 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 28 2016 $
.Dt OPENSSL_LOAD_BUILTIN_MODULES 3
.Os
.Sh NAME
.Nm OPENSSL_load_builtin_modules ,
.Nm ASN1_add_oid_module ,
.Nm ENGINE_add_conf_module
.Nd add standard configuration modules







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt OPENSSL_LOAD_BUILTIN_MODULES 3
.Os
.Sh NAME
.Nm OPENSSL_load_builtin_modules ,
.Nm ASN1_add_oid_module ,
.Nm ENGINE_add_conf_module
.Nd add standard configuration modules
94
95
96
97
98
99
100
101


.Fn OPENSSL_load_builtin_modules
to load all configuration modules instead of adding modules selectively:
otherwise functionality may be missing from the application when
new modules are added.
.Sh SEE ALSO
.Xr OPENSSL_config 3
.Sh HISTORY
These functions first appeared in OpenSSL 0.9.7.









|
>
>
94
95
96
97
98
99
100
101
102
103
.Fn OPENSSL_load_builtin_modules
to load all configuration modules instead of adding modules selectively:
otherwise functionality may be missing from the application when
new modules are added.
.Sh SEE ALSO
.Xr OPENSSL_config 3
.Sh HISTORY
These functions first appeared in OpenSSL 0.9.7
and have been available since
.Ox 3.2 .
Changes to jni/libressl/man/OPENSSL_malloc.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: OPENSSL_malloc.3,v 1.4 2016/11/29 21:29:19 jmc Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: November 29 2016 $
.Dt OPENSSL_MALLOC 3
.Os
.Sh NAME
.Nm OPENSSL_malloc ,
.Nm OPENSSL_realloc ,
.Nm OPENSSL_free ,
.Nm OPENSSL_strdup ,
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: OPENSSL_malloc.3,v 1.7 2018/03/23 02:20:16 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt OPENSSL_MALLOC 3
.Os
.Sh NAME
.Nm OPENSSL_malloc ,
.Nm OPENSSL_realloc ,
.Nm OPENSSL_free ,
.Nm OPENSSL_strdup ,
82
83
84
85
86
87
88




















.Xr free 3 ,
and
.Xr strdup 3
functions.
.Sh RETURN VALUES
These functions return the same type and value as the corresponding
standard functions.



























>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
.Xr free 3 ,
and
.Xr strdup 3
functions.
.Sh RETURN VALUES
These functions return the same type and value as the corresponding
standard functions.
.Sh HISTORY
.Fn CRYPTO_malloc ,
.Fn CRYPTO_realloc ,
and
.Fn CRYPTO_free
appeared in SSLeay 0.8.1b or earlier and have been available since
.Ox 2.4 .
.Pp
.Fn OPENSSL_malloc ,
.Fn OPENSSL_realloc ,
and
.Fn OPENSSL_free
first appeared in OpenSSL 0.9.6 and have been available since
.Ox 2.9 .
.Pp
.Fn CRYPTO_strdup
and
.Fn OPENSSL_strdup
first appeared in OpenSSL 0.9.8j and have been available since
.Ox 4.5 .
Added jni/libressl/man/OPENSSL_sk_new.3.
























































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
.\" $OpenBSD: OPENSSL_sk_new.3,v 1.7 2018/03/23 00:09:11 schwarze Exp $
.\"
.\" Copyright (c) 2018 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt OPENSSL_SK_NEW 3
.Os
.Sh NAME
.Nm sk_new_null ,
.Nm sk_new ,
.Nm sk_set_cmp_func ,
.Nm sk_dup ,
.Nm sk_free ,
.Nm sk_pop_free ,
.Nm sk_num ,
.Nm sk_value ,
.Nm sk_find ,
.Nm sk_find_ex ,
.Nm sk_sort ,
.Nm sk_is_sorted ,
.Nm sk_push ,
.Nm sk_unshift ,
.Nm sk_insert ,
.Nm sk_set ,
.Nm sk_pop ,
.Nm sk_shift ,
.Nm sk_delete ,
.Nm sk_delete_ptr ,
.Nm sk_zero
.Nd variable-sized arrays of void pointers, called OpenSSL stacks
.Sh SYNOPSIS
.In openssl/stack.h
.Ft _STACK *
.Fn sk_new_null void
.Ft _STACK *
.Fo sk_new
.Fa "int (*compfunc)(const void *, const void *)"
.Fc
.Ft old_function_pointer
.Fo sk_set_cmp_func
.Fa "_STACK *stack"
.Fa "int (*compfunc)(const void *, const void *)"
.Fc
.Ft _STACK *
.Fo sk_dup
.Fa "_STACK *stack"
.Fc
.Ft void
.Fo sk_free
.Fa "_STACK *stack"
.Fc
.Ft void
.Fo sk_pop_free
.Fa "_STACK *stack"
.Fa "void (*freefunc)(void *)"
.Fc
.Ft int
.Fo sk_num
.Fa "const _STACK *stack"
.Fc
.Ft void *
.Fo sk_value
.Fa "const _STACK *stack"
.Fa "int index"
.Fc
.Ft int
.Fo sk_find
.Fa "_STACK *stack"
.Fa "void *wanted"
.Fc
.Ft int
.Fo sk_find_ex
.Fa "_STACK *stack"
.Fa "void *wanted"
.Fc
.Ft void
.Fo sk_sort
.Fa "_STACK *stack"
.Fc
.Ft int
.Fo sk_is_sorted
.Fa "const _STACK *stack"
.Fc
.Ft int
.Fo sk_push
.Fa "_STACK *stack"
.Fa "void *new_item"
.Fc
.Ft int
.Fo sk_unshift
.Fa "_STACK *stack"
.Fa "void *new_item"
.Fc
.Ft int
.Fo sk_insert
.Fa "_STACK *stack"
.Fa "void *new_item"
.Fa "int index"
.Fc
.Ft void *
.Fo sk_set
.Fa "_STACK *stack"
.Fa "int index"
.Fa "void *new_item"
.Fc
.Ft void *
.Fo sk_pop
.Fa "_STACK *stack"
.Fc
.Ft void *
.Fo sk_shift
.Fa "_STACK *stack"
.Fc
.Ft void *
.Fo sk_delete
.Fa "_STACK *stack"
.Fa "int index"
.Fc
.Ft void *
.Fo sk_delete_ptr
.Fa "_STACK *stack"
.Fa "void *wanted"
.Fc
.Ft void
.Fo sk_zero
.Fa "_STACK *stack"
.Fc
.Sh DESCRIPTION
OpenSSL introduced an idiosyncratic concept of variable sized arrays
of pointers and somewhat misleadingly called such an array a
.Dq stack .
Intrinsically, and as documented in this manual page, OpenSSL stacks
are not type safe but only handle
.Vt void *
function arguments and return values.
.Pp
OpenSSL also provides a fragile, unusually complicated system of
macro-generates wrappers that offers superficial type safety at the
expense of extensive obfuscation, implemented using large amounts
of autogenerated code involving exceedingly ugly, nested
.Xr cpp 1
macros; see the
.Xr STACK_OF 3
manual page for details.
.Pp
The fundamental data type is the
.Vt _STACK
structure.
It stores a variable number of void pointers
and remembers the number of pointers currently stored.
It can optionally hold a pointer to a comparison function.
As long as no comparison function is installed, the order of pointers
is meaningful; as soon as a comparison function is installed, it
becomes ill-defined.
.Pp
.Fn sk_new_null
allocates and initializes a new, empty stack.
.Fn sk_new
is identical except that it also installs
.Fa compfunc
as the comparison function for the new stack object.
.Fn sk_set_cmp_func
installs
.Fa compfunc
for the existing
.Fa stack .
The
.Fa compfunc
is allowed to be
.Dv NULL ,
but the
.Fa stack
is not.
.Pp
.Fn sk_dup
creates a shallow copy of the given
.Fa stack ,
which must not be a
.Dv NULL
pointer.
It neither copies the objects pointed to from the stack nor
increases their reference counts, but merely copies the pointers.
Extreme care must be taken in order to avoid freeing the memory twice,
for example by calling
.Fn sk_free
on one copy and only calling
.Fn sk_pop_free
on the other.
.Pp
.Fn sk_free
frees the given
.Fa stack .
It does not free any of the pointers stored on the stack.
Unless these pointers are merely copies of pointers owned by
other objects, they must be freed before calling
.Fn sk_free ,
in order to avoid leaking memory.
If
.Fa stack
is a
.Dv NULL
pointer, no action occurs.
.Pp
.Fn sk_pop_free
is severely misnamed.
It does not at all do what one would expect from a function called
.Dq pop .
Instead, it does the same as
.Fn sk_free ,
except that it also calls the function
.Fa freefunc
on each of the pointers contained in the
.Fa stack .
If the calls to
.Fa freefunc
are intended to free the memory in use by the objects on the stack,
ensure that no other pointers to the same objects remain elsewhere.
.Pp
.Fn sk_find
searches the
.Fa stack
for the
.Fa wanted
pointer.
If the
.Fa stack
contains more than one copy of the
.Fa wanted
pointer, only the first match is found.
If a comparison function is installed for the stack, the stack is
first sorted with
.Fn sk_sort ,
and instead of comparing pointers, two pointers are considered to match
if the comparison function returns 0.
.Pp
.Fn sk_find_ex
is identical to
.Fn sk_find
except that if the
.Fa stack
is not empty but no match is found,
the index of some pointer considered closest to
.Fa wanted
is returned.
.Pp
.Fn sk_sort
sorts the
.Fa stack
using
.Xr qsort 3
and the installed comparison function.
If
.Fa stack
is a
.Dv NULL
pointer or already considered sorted, no action occurs.
This function can only be called if a comparison function is installed.
.Pp
.Fn sk_is_sorted
reports whether the
.Fa stack
is considered sorted.
Calling
.Fn sk_new_null
or
.Fn sk_new ,
successfuly calling
.Fn sk_push ,
.Fn sk_unshift ,
or
.Fn sk_insert ,
or changing the comparison function sets the state to unsorted.
If a comparison function is installed, calling
.Fn sk_sort ,
.Fn sk_find ,
or
.Fn sk_find_ex
sets the state to sorted.
.Pp
.Fn sk_push
pushes
.Fa new_item
onto the end of the
.Fa stack ,
increasing the number of pointers by 1.
If
.Fa stack
is a
.Dv NULL
pointer, no action occurs.
.Pp
.Fn sk_unshift
inserts
.Fa new_item
at the beginning of the
.Fa stack ,
such that it gets the index 0.
The number of pointers increases by 1.
If
.Fa stack
is a
.Dv NULL
pointer, no action occurs.
.Pp
.Fn sk_insert
inserts the
.Fa new_item
into the
.Fa stack
such that it gets the given
.Fa index .
If
.Fa index
is less than 0 or greater than or equal to
.Fn sk_num stack ,
the effect is the same as for
.Fn sk_push .
If
.Fa stack
is a
.Dv NULL
pointer, no action occurs.
.Pp
.Fn sk_set
replaces the pointer with the given
.Fa index
on the
.Fa stack
with the
.Fa new_item .
The old pointer is not freed,
which may leak memory if no copy of it exists elsewhere.
If
.Fa stack
is a
.Dv NULL
pointer or if
.Fa index
is less than 0 or greater than or equal to
.Fn sk_num stack ,
no action occurs.
.Pp
.Fn sk_pop
and
.Fn sk_shift
remove the pointer with the highest or lowest index from the
.Fa stack ,
respectively, reducing the number of pointers by 1.
If
.Fa stack
is a
.Dv NULL
pointer or if it is empty, no action occurs.
.Pp
.Fn sk_delete
removes the pointer with the given
.Fa index
from the
.Fa stack ,
reducing the number of pointers by 1.
If
.Fa stack
is a
.Dv NULL
pointer or the
.Fa index
is less than 0 or greater than or equal to
.Fn sk_num stack ,
no action occurs.
.Pp
.Fn sk_delete_ptr
removes the
.Fa wanted
pointer from the
.Fa stack ,
reducing the number of pointers by 1 if it is found.
It never uses a comparison function
but only compares pointers themselves.
The
.Fa stack
pointer must not be
.Dv NULL .
.Pp
.Fn sk_zero
removes all pointers from the
.Fa stack .
It does not free any of the pointers.
Unless these pointers are merely copies of pointers owned by other
objects, they must be freed before calling
.Fn sk_zero ,
in order to avoid leaking memory.
If
.Fa stack
is a
.Dv NULL
pointer, no action occurs.
.Sh RETURN VALUES
.Fn sk_new_null ,
.Fn sk_new ,
and
.Fn sk_dup
return a pointer to the newly allocated stack object or
.Dv NULL
if insufficient memory is available.
.Pp
.Fn sk_set_cmp_func
returns a pointer to the comparison function
that was previously installed for the
.Fa stack
or
.Dv NULL
if none was installed.
.Pp
.Fn sk_num
returns the number of pointers currently stored on the
.Fa stack ,
or \-1 if
.Fa stack
is a
.Dv NULL
pointer.
.Pp
.Fn sk_value
returns the pointer with the given
.Fa index
from the
.Fa stack ,
or
.Dv NULL
if
.Fa stack
is a
.Dv NULL
pointer or if the
.Fa index
is less than 0 or greater than or equal to
.Fn sk_num stack .
.Pp
.Fn sk_find
returns the lowest index considered to match or \-1 if
.Fa stack
is a
.Dv NULL
pointer or if no match is found.
.Pp
.Fn sk_find_ex
returns some index or \-1 if
.Fa stack
is a
.Dv NULL
pointer or empty.
.Pp
.Fn sk_is_sorted
returns 1 if the
.Fa stack
is considered sorted or if it is a
.Dv NULL
pointer, or 0 otherwise.
.Pp
.Fn sk_push ,
.Fn sk_unshift ,
and
.Fn sk_insert
return the new number of pointers on the
.Fa stack
or 0 if
.Fa stack
is a
.Dv NULL
pointer or if memory allocation fails.
.Pp
.Fn sk_set
returns
.Fa new_item
or
.Dv NULL
if
.Fa stack
is a
.Dv NULL
pointer or if the
.Fa index
is less than 0 or greater than or equal to
.Fn sk_num stack .
.Pp
.Fn sk_pop
and
.Fn sk_shift
return the deleted pointer or
.Dv NULL
if
.Fa stack
is a
.Dv NULL
pointer or if it is empty.
.Pp
.Fn sk_delete
returns the deleted pointer or
.Dv NULL
if
.Fa stack
is a
.Dv NULL
pointer or if the
.Fa index
is less than 0 or greater than or equal to
.Fn sk_num stack .
.Pp
.Fn sk_delete_ptr
returns
.Fa wanted
or
.Dv NULL
if it is not found.
.Sh HISTORY
.Fn sk_new_null ,
.Fn sk_new ,
.Fn sk_set_cmp_func ,
.Fn sk_dup ,
.Fn sk_free ,
.Fn sk_pop_free ,
.Fn sk_num ,
.Fn sk_value ,
.Fn sk_find ,
.Fn sk_push ,
.Fn sk_unshift ,
.Fn sk_insert ,
.Fn sk_pop ,
.Fn sk_shift ,
.Fn sk_delete ,
.Fn sk_delete_ptr ,
and
.Fn sk_zero
appeared in SSLeay 0.8.1b or earlier and have been available since
.Ox 2.4 .
.Pp
.Fn sk_set
first appeared in OpenSSL 0.9.3.
.Fn sk_sort
first appeared in OpenSSL 0.9.4.
Both functions have been available since
.Ox 2.6 .
.Pp
.Fn sk_new_null
first appeared in OpenSSL 0.9.6 and has been available since
.Ox 2.9 .
.Pp
.Fn sk_is_sorted
first appeared in OpenSSL 0.9.7e and has been available since
.Ox 3.8 .
.Pp
.Fn sk_find_ex
first appeared in OpenSSL 0.9.8 and has been available since
.Ox 4.5 .
.Sh BUGS
.Fn sk_set
does not set the state of the
.Fa stack
to unsorted.
This can cause wrong results from subsequent
.Fn sk_find
and
.Fn sk_find_ex .
.Pp
Even if a comparison function is installed, empty stacks and
stacks containing a single pointer are sometimes considered
sorted and sometimes considered unsorted.
.Pp
If a comparison function is installed, the concept of
.Dq first match
in
.Fn sk_find
and
.Fn sk_find_ex
is ill-defined because
.Xr qsort 3
is not a stable sorting function.
It is probably best to only assume that they return an arbitrary match.
.Pp
The concept of
.Dq closest
for
.Fn sk_find_ex
is even less clearly defined.
The match may sometimes be smaller and sometimes larger than
.Fa wanted ,
even if both smaller and larger pointers exist in the
.Fa stack .
Besides, it is again ill-defined
which of several pointers that compare equal is selected.
It is probably best to not assume anything about the selection
for cases where there is no match.
Changes to jni/libressl/man/OpenSSL_add_all_algorithms.3.
1
2
3
4
5
6
7
8
9
.\"	$OpenBSD: OpenSSL_add_all_algorithms.3,v 1.4 2016/11/28 16:40:27 schwarze Exp $
.\"	OpenSSL f672aee4 Feb 9 11:52:40 2016 -0500
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2003, 2013 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
|
|







1
2
3
4
5
6
7
8
9
.\" $OpenBSD: OpenSSL_add_all_algorithms.3,v 1.6 2018/03/22 16:06:33 schwarze Exp $
.\" full merge up to: OpenSSL b3696a55 Sep 2 09:35:50 2017 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2003, 2013 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70





71
72
73
74
75
76
77
78
79
80
81
82
83
84



85
86
87
88



89
90

91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112

113
114
115
116
117
118
119
120
121
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 28 2016 $
.Dt OPENSSL_ADD_ALL_ALGORITHMS 3
.Os
.Sh NAME
.Nm OpenSSL_add_all_algorithms ,
.Nm OpenSSL_add_all_ciphers ,
.Nm OpenSSL_add_all_digests ,
.Nm EVP_cleanup
.Nd add algorithms to internal table
.Sh SYNOPSIS
.In openssl/evp.h
.Ft void
.Fn OpenSSL_add_all_algorithms void
.Ft void
.Fn OpenSSL_add_all_ciphers void
.Ft void
.Fn OpenSSL_add_all_digests void
.Ft void
.Fn EVP_cleanup void
.Sh DESCRIPTION





OpenSSL keeps an internal table of digest algorithms and ciphers.
It uses this table to look up ciphers via functions such as
.Xr EVP_get_cipherbyname 3 .
.Pp
.Fn OpenSSL_add_all_algorithms
adds all algorithms to the table (digests and ciphers).
.Pp
.Fn OpenSSL_add_all_digests
adds all digest algorithms to the table.
.Pp
.Fn OpenSSL_add_all_ciphers
adds all encryption algorithms to the table including password based
encryption algorithms.
.Pp



.Fn EVP_cleanup
removes all ciphers and digests from the table.
.Pp
A typical application will call



.Fn OpenSSL_add_all_algorithms
initially and

.Fn EVP_cleanup
before exiting.
.Pp
An application does not need to add algorithms to use them explicitly,
for example by
.Xr EVP_sha1 3 .
It just needs to add them if it (or any of the functions it calls) needs
to look up algorithms.
.Pp
The cipher and digest lookup functions are used in many parts of the
library.
If the table is not initialized, several functions will misbehave and
complain they cannot find algorithms.
This includes the PEM, PKCS#12, SSL and S/MIME libraries.
This is a common query in the OpenSSL mailing lists.
.Pp
Calling
.Fn OpenSSL_add_all_algorithms
links in all algorithms: as a result a statically linked executable can
be quite large.
If this is important, it is possible to just add the required ciphers and
digests.

.Sh SEE ALSO
.Xr evp 3 ,
.Xr EVP_DigestInit 3 ,
.Xr EVP_EncryptInit 3
.Sh BUGS
Although the functions do not return error codes, it is possible for them
to fail.
This will only happen as a result of a memory allocation failure so this
is not too much of a problem in practice.







|



















>
>
>
>
>














>
>
>


|
<
>
>
>
|
|
>

<
<
<
<
<
|
|
<
|
|
|
|
|
<

|
|
<
|
<
|
>
|
<
<
<





44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95

96
97
98
99
100
101
102





103
104

105
106
107
108
109

110
111
112

113

114
115
116



117
118
119
120
121
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt OPENSSL_ADD_ALL_ALGORITHMS 3
.Os
.Sh NAME
.Nm OpenSSL_add_all_algorithms ,
.Nm OpenSSL_add_all_ciphers ,
.Nm OpenSSL_add_all_digests ,
.Nm EVP_cleanup
.Nd add algorithms to internal table
.Sh SYNOPSIS
.In openssl/evp.h
.Ft void
.Fn OpenSSL_add_all_algorithms void
.Ft void
.Fn OpenSSL_add_all_ciphers void
.Ft void
.Fn OpenSSL_add_all_digests void
.Ft void
.Fn EVP_cleanup void
.Sh DESCRIPTION
These functions are deprecated.
It is never useful for any application program
to call any of them explicitly.
The library automatically calls them internally whenever needed.
.Pp
OpenSSL keeps an internal table of digest algorithms and ciphers.
It uses this table to look up ciphers via functions such as
.Xr EVP_get_cipherbyname 3 .
.Pp
.Fn OpenSSL_add_all_algorithms
adds all algorithms to the table (digests and ciphers).
.Pp
.Fn OpenSSL_add_all_digests
adds all digest algorithms to the table.
.Pp
.Fn OpenSSL_add_all_ciphers
adds all encryption algorithms to the table including password based
encryption algorithms.
.Pp
If any of the above functions is called more than once,
only the first call has an effect.
.Pp
.Fn EVP_cleanup
removes all ciphers and digests from the table.
.Sh SEE ALSO

.Xr evp 3 ,
.Xr EVP_DigestInit 3 ,
.Xr EVP_EncryptInit 3 ,
.Xr OPENSSL_config 3 ,
.Xr OPENSSL_init_crypto 3
.Sh HISTORY
.Fn EVP_cleanup





and precursor functions
.Fn SSLeay_add_all_algorithms ,

.Fn SSLeay_add_all_ciphers ,
and
.Fn SSLeay_add_all_digests
appeared in SSLeay 0.8.1b or earlier and have been available since
.Ox 2.4 .

.Pp
.Fn OpenSSL_add_all_algorithms ,
.Fn OpenSSL_add_all_ciphers ,

and

.Fn OpenSSL_add_all_digests
first appeared in OpenSSL 0.9.5 and have been available since
.Ox 2.7 .



.Sh BUGS
Although the functions do not return error codes, it is possible for them
to fail.
This will only happen as a result of a memory allocation failure so this
is not too much of a problem in practice.
Changes to jni/libressl/man/PEM_bytes_read_bio.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: PEM_bytes_read_bio.3,v 1.1 2017/08/20 20:15:13 schwarze Exp $
.\"	OpenSSL PEM_bytes_read_bio.pod 7671342e Feb 29 15:47:12 2016 -0600
.\"
.\" This file was written by Benjamin Kaduk <bkaduk at akamai dot com>.
.\" Copyright (c) 2017 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: PEM_bytes_read_bio.3,v 1.2 2018/03/22 21:08:22 schwarze Exp $
.\"	OpenSSL PEM_bytes_read_bio.pod 7671342e Feb 29 15:47:12 2016 -0600
.\"
.\" This file was written by Benjamin Kaduk <bkaduk at akamai dot com>.
.\" Copyright (c) 2017 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: August 20 2017 $
.Dt PEM_BYTES_READ_BIO 3
.Os
.Sh NAME
.Nm PEM_bytes_read_bio
.Nd read a PEM-encoded data structure from a BIO
.Sh SYNOPSIS
.In openssl/pem.h







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt PEM_BYTES_READ_BIO 3
.Os
.Sh NAME
.Nm PEM_bytes_read_bio
.Nd read a PEM-encoded data structure from a BIO
.Sh SYNOPSIS
.In openssl/pem.h
106
107
108
109
110
111
112




.Em *pdata .
.Sh RETURN VALUES
.Fn PEM_bytes_read_bio
returns 1 for success or 0 for failure.
.Sh SEE ALSO
.Xr PEM_read 3 ,
.Xr PEM_read_bio_PrivateKey 3











>
>
>
>
106
107
108
109
110
111
112
113
114
115
116
.Em *pdata .
.Sh RETURN VALUES
.Fn PEM_bytes_read_bio
returns 1 for success or 0 for failure.
.Sh SEE ALSO
.Xr PEM_read 3 ,
.Xr PEM_read_bio_PrivateKey 3
.Sh HISTORY
.Fn PEM_bytes_read_bio
first appeared in OpenSSL 0.9.7 and has been available since
.Ox 3.2 .
Changes to jni/libressl/man/PEM_read.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: PEM_read.3,v 1.3 2017/08/20 20:15:13 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Viktor Dukhovni
.\" and by Rich Salz <rsalz@openssl.org>.
.\" Copyright (c) 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: PEM_read.3,v 1.4 2018/03/21 00:37:32 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Viktor Dukhovni
.\" and by Rich Salz <rsalz@openssl.org>.
.\" Copyright (c) 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: August 20 2017 $
.Dt PEM_READ 3
.Os
.Sh NAME
.Nm PEM_write ,
.Nm PEM_write_bio ,
.Nm PEM_read ,
.Nm PEM_read_bio ,







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt PEM_READ 3
.Os
.Sh NAME
.Nm PEM_write ,
.Nm PEM_write_bio ,
.Nm PEM_read ,
.Nm PEM_read_bio ,
278
279
280
281
282
283
284




is likely meaningless if these functions fail.
.Sh SEE ALSO
.Xr d2i_PKCS8PrivateKey_bio 3 ,
.Xr ERR_GET_LIB 3 ,
.Xr ERR_peek_last_error 3 ,
.Xr PEM_bytes_read_bio 3 ,
.Xr PEM_read_bio_PrivateKey 3











>
>
>
>
278
279
280
281
282
283
284
285
286
287
288
is likely meaningless if these functions fail.
.Sh SEE ALSO
.Xr d2i_PKCS8PrivateKey_bio 3 ,
.Xr ERR_GET_LIB 3 ,
.Xr ERR_peek_last_error 3 ,
.Xr PEM_bytes_read_bio 3 ,
.Xr PEM_read_bio_PrivateKey 3
.Sh HISTORY
These functions appeared in SSLeay 0.8.1b or earlier
and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/PEM_read_SSL_SESSION.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: PEM_read_SSL_SESSION.3,v 1.1 2016/11/28 21:05:21 schwarze Exp $
.\"	OpenSSL doc/man3/PEM_read_CMS.pod b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Rich Salz <rsalz@openssl.org>.
.\" Copyright (c) 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: PEM_read_SSL_SESSION.3,v 1.2 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL doc/man3/PEM_read_CMS.pod b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Rich Salz <rsalz@openssl.org>.
.\" Copyright (c) 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 28 2016 $
.Dt PEM_READ_SSL_SESSION 3
.Os
.Sh NAME
.Nm PEM_read_SSL_SESSION ,
.Nm PEM_read_bio_SSL_SESSION ,
.Nm PEM_write_SSL_SESSION ,
.Nm PEM_write_bio_SSL_SESSION







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt PEM_READ_SSL_SESSION 3
.Os
.Sh NAME
.Nm PEM_read_SSL_SESSION ,
.Nm PEM_read_bio_SSL_SESSION ,
.Nm PEM_write_SSL_SESSION ,
.Nm PEM_write_bio_SSL_SESSION
129
130
131
132
133
134
135








.Pp
.Fn PEM_write_SSL_SESSION
and
.Fn PEM_write_bio_SSL_SESSION
return the number of bytes written or 0 on error.
.Sh SEE ALSO
.Xr PEM_read 3















>
>
>
>
>
>
>
>
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
.Pp
.Fn PEM_write_SSL_SESSION
and
.Fn PEM_write_bio_SSL_SESSION
return the number of bytes written or 0 on error.
.Sh SEE ALSO
.Xr PEM_read 3
.Sh HISTORY
.Fn PEM_read_SSL_SESSION ,
.Fn PEM_read_bio_SSL_SESSION ,
.Fn PEM_write_SSL_SESSION ,
and
.Fn PEM_write_bio_SSL_SESSION
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/PEM_read_bio_PrivateKey.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: PEM_read_bio_PrivateKey.3,v 1.8 2017/08/20 20:15:13 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2001-2004, 2009, 2013-2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: PEM_read_bio_PrivateKey.3,v 1.12 2018/03/23 00:09:11 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2001-2004, 2009, 2013-2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: August 20 2017 $
.Dt PEM_READ_BIO_PRIVATEKEY 3
.Os
.Sh NAME
.Nm PEM_read_bio_PrivateKey ,
.Nm PEM_read_PrivateKey ,
.Nm PEM_write_bio_PrivateKey ,
.Nm PEM_write_PrivateKey ,







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt PEM_READ_BIO_PRIVATEKEY 3
.Os
.Sh NAME
.Nm PEM_read_bio_PrivateKey ,
.Nm PEM_read_PrivateKey ,
.Nm PEM_write_bio_PrivateKey ,
.Nm PEM_write_PrivateKey ,
1212
1213
1214
1215
1216
1217
1218






































































































1219
1220
1221
1222
1223
1224
1225
	return len;
}
.Ed
.Sh SEE ALSO
.Xr BIO_new 3 ,
.Xr PEM_bytes_read_bio 3 ,
.Xr PEM_read 3






































































































.Sh CAVEATS
A frequent cause of problems is attempting to use the PEM routines like
this:
.Bd -literal -offset indent
X509 *x;
PEM_read_bio_X509(bp, &x, 0, NULL);
.Ed







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
	return len;
}
.Ed
.Sh SEE ALSO
.Xr BIO_new 3 ,
.Xr PEM_bytes_read_bio 3 ,
.Xr PEM_read 3
.Sh HISTORY
.Fn PEM_read_bio_PrivateKey ,
.Fn PEM_read_PrivateKey ,
.Fn PEM_write_bio_PrivateKey ,
.Fn PEM_write_PrivateKey ,
.Fn PEM_read_bio_RSAPrivateKey ,
.Fn PEM_read_RSAPrivateKey ,
.Fn PEM_write_bio_RSAPrivateKey ,
.Fn PEM_write_RSAPrivateKey ,
.Fn PEM_read_bio_RSAPublicKey ,
.Fn PEM_read_RSAPublicKey ,
.Fn PEM_write_bio_RSAPublicKey ,
.Fn PEM_write_RSAPublicKey ,
.Fn PEM_read_bio_DSAPrivateKey ,
.Fn PEM_read_DSAPrivateKey ,
.Fn PEM_write_bio_DSAPrivateKey ,
.Fn PEM_write_DSAPrivateKey ,
.Fn PEM_read_bio_DSAparams ,
.Fn PEM_read_DSAparams ,
.Fn PEM_write_bio_DSAparams ,
.Fn PEM_write_DSAparams ,
.Fn PEM_read_bio_DHparams ,
.Fn PEM_read_DHparams ,
.Fn PEM_write_bio_DHparams ,
.Fn PEM_write_DHparams ,
.Fn PEM_read_bio_X509 ,
.Fn PEM_read_X509 ,
.Fn PEM_write_bio_X509 ,
.Fn PEM_write_X509 ,
.Fn PEM_read_bio_X509_REQ ,
.Fn PEM_read_X509_REQ ,
.Fn PEM_write_bio_X509_REQ ,
.Fn PEM_write_X509_REQ ,
.Fn PEM_read_bio_X509_CRL ,
.Fn PEM_read_X509_CRL ,
.Fn PEM_write_bio_X509_CRL ,
.Fn PEM_write_X509_CRL ,
.Fn PEM_read_bio_PKCS7 ,
.Fn PEM_read_PKCS7 ,
.Fn PEM_write_bio_PKCS7 ,
and
.Fn PEM_write_PKCS7
appeared in SSLeay 0.8.1b or earlier and have been available since
.Ox 2.4 .
.Pp
.Fn PEM_write_bio_PKCS8PrivateKey ,
.Fn PEM_write_PKCS8PrivateKey ,
.Fn PEM_read_bio_PKCS8 ,
.Fn PEM_read_PKCS8 ,
.Fn PEM_write_bio_PKCS8 ,
.Fn PEM_write_PKCS8 ,
.Fn PEM_read_bio_PKCS8_PRIV_KEY_INFO ,
.Fn PEM_read_PKCS8_PRIV_KEY_INFO ,
.Fn PEM_write_bio_PKCS8_PRIV_KEY_INFO ,
.Fn PEM_write_PKCS8_PRIV_KEY_INFO ,
.Fn PEM_read_bio_NETSCAPE_CERT_SEQUENCE ,
.Fn PEM_read_NETSCAPE_CERT_SEQUENCE ,
.Fn PEM_write_bio_NETSCAPE_CERT_SEQUENCE ,
and
.Fn PEM_write_NETSCAPE_CERT_SEQUENCE ,
first appeared in OpenSSL 0.9.4 and have been available since
.Ox 2.6 .
.Pp
.Fn PEM_write_bio_PKCS8PrivateKey_nid ,
.Fn PEM_write_PKCS8PrivateKey_nid ,
.Fn PEM_read_bio_PUBKEY ,
.Fn PEM_read_PUBKEY ,
.Fn PEM_write_bio_PUBKEY ,
.Fn PEM_write_PUBKEY ,
.Fn PEM_read_bio_RSA_PUBKEY ,
.Fn PEM_read_RSA_PUBKEY ,
.Fn PEM_write_bio_RSA_PUBKEY ,
.Fn PEM_write_RSA_PUBKEY ,
.Fn PEM_read_bio_DSA_PUBKEY ,
.Fn PEM_read_DSA_PUBKEY ,
.Fn PEM_write_bio_DSA_PUBKEY ,
.Fn PEM_write_DSA_PUBKEY ,
.Fn PEM_write_bio_X509_REQ_NEW ,
.Fn PEM_write_X509_REQ_NEW ,
.Fn PEM_read_bio_X509_AUX ,
.Fn PEM_read_X509_AUX ,
.Fn PEM_write_bio_X509_AUX ,
and
.Fn PEM_write_X509_AUX
first appeared in OpenSSL 0.9.5 and have been available since
.Ox 2.7 .
.Pp
.Fn PEM_read_bio_ECPKParameters ,
.Fn PEM_read_ECPKParameters ,
.Fn PEM_write_bio_ECPKParameters ,
.Fn PEM_write_ECPKParameters ,
.Fn PEM_read_bio_ECPrivateKey ,
.Fn PEM_read_ECPrivateKey ,
.Fn PEM_write_bio_ECPrivateKey ,
.Fn PEM_write_ECPrivateKey ,
.Fn PEM_read_bio_EC_PUBKEY ,
.Fn PEM_read_EC_PUBKEY ,
.Fn PEM_write_bio_EC_PUBKEY ,
and
.Fn PEM_write_EC_PUBKEY
first appeared in OpenSSL 0.9.8 and have been available since
.Ox 4.5 .
.Sh CAVEATS
A frequent cause of problems is attempting to use the PEM routines like
this:
.Bd -literal -offset indent
X509 *x;
PEM_read_bio_X509(bp, &x, 0, NULL);
.Ed
Changes to jni/libressl/man/PEM_write_bio_PKCS7_stream.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: PEM_write_bio_PKCS7_stream.3,v 1.7 2016/12/14 21:22:06 jmc Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2007, 2009, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: PEM_write_bio_PKCS7_stream.3,v 1.8 2018/03/23 04:34:23 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2007, 2009, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 14 2016 $
.Dt PEM_WRITE_BIO_PKCS7_STREAM 3
.Os
.Sh NAME
.Nm PEM_write_bio_PKCS7_stream
.Nd output PKCS7 structure in PEM format
.Sh SYNOPSIS
.In openssl/pkcs7.h







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt PEM_WRITE_BIO_PKCS7_STREAM 3
.Os
.Sh NAME
.Nm PEM_write_bio_PKCS7_stream
.Nd output PKCS7 structure in PEM format
.Sh SYNOPSIS
.In openssl/pkcs7.h
81
82
83
84
85
86
87
88

.Xr ERR_get_error 3 ,
.Xr i2d_PKCS7_bio_stream 3 ,
.Xr PEM_write_PKCS7 3 ,
.Xr PKCS7_new 3 ,
.Xr SMIME_write_PKCS7 3
.Sh HISTORY
.Fn PEM_write_bio_PKCS7_stream
was added to OpenSSL 1.0.0.








|
>
81
82
83
84
85
86
87
88
89
.Xr ERR_get_error 3 ,
.Xr i2d_PKCS7_bio_stream 3 ,
.Xr PEM_write_PKCS7 3 ,
.Xr PKCS7_new 3 ,
.Xr SMIME_write_PKCS7 3
.Sh HISTORY
.Fn PEM_write_bio_PKCS7_stream
first appeared in OpenSSL 1.0.0 and has been available since
.Ox 4.9 .
Changes to jni/libressl/man/PKCS12_SAFEBAG_new.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: PKCS12_SAFEBAG_new.3,v 1.2 2016/12/25 22:15:10 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 25 2016 $
.Dt PKCS12_SAFEBAG_NEW 3
.Os
.Sh NAME
.Nm PKCS12_SAFEBAG_new ,
.Nm PKCS12_SAFEBAG_free ,
.Nm PKCS12_BAGS_new ,
.Nm PKCS12_BAGS_free
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: PKCS12_SAFEBAG_new.3,v 1.3 2018/03/21 17:57:48 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt PKCS12_SAFEBAG_NEW 3
.Os
.Sh NAME
.Nm PKCS12_SAFEBAG_new ,
.Nm PKCS12_SAFEBAG_free ,
.Nm PKCS12_BAGS_new ,
.Nm PKCS12_BAGS_free
89
90
91
92
93
94
95








.Xr X509_ATTRIBUTE_new 3 ,
.Xr X509_CRL_new 3 ,
.Xr X509_new 3 ,
.Xr X509_SIG_new 3
.Sh STANDARDS
RFC 7292: PKCS #12: Personal Information Exchange Syntax,
section 4.2: The SafeBag Type















>
>
>
>
>
>
>
>
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
.Xr X509_ATTRIBUTE_new 3 ,
.Xr X509_CRL_new 3 ,
.Xr X509_new 3 ,
.Xr X509_SIG_new 3
.Sh STANDARDS
RFC 7292: PKCS #12: Personal Information Exchange Syntax,
section 4.2: The SafeBag Type
.Sh HISTORY
.Fn PKCS12_SAFEBAG_new ,
.Fn PKCS12_SAFEBAG_free ,
.Fn PKCS12_BAGS_new ,
and
.Fn PKCS12_BAGS_free
first appeared in OpenSSL 0.9.3 and have been available since
.Ox 2.6 .
Changes to jni/libressl/man/PKCS12_create.3.
1
2

3
4
5
6
7
8
9
.\"	$OpenBSD: PKCS12_create.3,v 1.4 2016/11/28 22:41:38 schwarze Exp $
.\"	OpenSSL 05ea606a May 20 20:52:46 2016 -0400

.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2002, 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
|
|
>







1
2
3
4
5
6
7
8
9
10
.\" $OpenBSD: PKCS12_create.3,v 1.6 2018/03/21 17:57:48 schwarze Exp $
.\" full merge up to: OpenSSL 05ea606a May 20 20:52:46 2016 -0400
.\" selective merge up to: OpenSSL 61f805c1 Jan 16 01:01:46 2018 +0800
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2002, 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 28 2016 $
.Dt PKCS12_CREATE 3
.Os
.Sh NAME
.Nm PKCS12_create
.Nd create a PKCS#12 structure
.Sh SYNOPSIS
.In openssl/pkcs12.h







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt PKCS12_CREATE 3
.Os
.Sh NAME
.Nm PKCS12_create
.Nd create a PKCS#12 structure
.Sh SYNOPSIS
.In openssl/pkcs12.h
150
151
152
153
154
155
156







157
158
159
160


161
162
163
164
165
166
167
168
169
170
171
172
or
.Sy keyid
then this will be used for the corresponding
.Sy friendlyName
or
.Sy localKeyID
in the PKCS12 structure.







.Sh SEE ALSO
.Xr d2i_PKCS12 3
.Sh HISTORY
PKCS12_create was added in OpenSSL 0.9.3.


.Pp
Before OpenSSL 0.9.8, neither
.Fa pkey
nor
.Fa cert
were allowed to be
.Dv NULL ,
and a value of -1 was not allowed for
.Fa nid_key ,
.Fa nid_cert ,
and
.Fa mac_iter .







>
>
>
>
>
>
>



|
>
>












151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
or
.Sy keyid
then this will be used for the corresponding
.Sy friendlyName
or
.Sy localKeyID
in the PKCS12 structure.
.Sh RETURN VALUES
.Fn PKCS12_create
returns a valid
.Vt PKCS12
structure or
.Dv NULL
if an error occurred.
.Sh SEE ALSO
.Xr d2i_PKCS12 3
.Sh HISTORY
.Fn PKCS12_create
first appeared in OpenSSL 0.9.3 and has been available since
.Ox 2.6 .
.Pp
Before OpenSSL 0.9.8, neither
.Fa pkey
nor
.Fa cert
were allowed to be
.Dv NULL ,
and a value of -1 was not allowed for
.Fa nid_key ,
.Fa nid_cert ,
and
.Fa mac_iter .
Changes to jni/libressl/man/PKCS12_new.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: PKCS12_new.3,v 1.2 2016/12/25 22:15:10 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 25 2016 $
.Dt PKCS12_NEW 3
.Os
.Sh NAME
.Nm PKCS12_new ,
.Nm PKCS12_free ,
.Nm PKCS12_MAC_DATA_new ,
.Nm PKCS12_MAC_DATA_free
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: PKCS12_new.3,v 1.3 2018/03/21 17:57:48 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt PKCS12_NEW 3
.Os
.Sh NAME
.Nm PKCS12_new ,
.Nm PKCS12_free ,
.Nm PKCS12_MAC_DATA_new ,
.Nm PKCS12_MAC_DATA_free
84
85
86
87
88
89
90








.Xr PKCS12_create 3 ,
.Xr PKCS12_newpass 3 ,
.Xr PKCS12_SAFEBAG_new 3 ,
.Xr PKCS7_new 3 ,
.Xr X509_SIG_new 3
.Sh STANDARDS
RFC 7292: PKCS #12: Personal Information Exchange Syntax















>
>
>
>
>
>
>
>
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
.Xr PKCS12_create 3 ,
.Xr PKCS12_newpass 3 ,
.Xr PKCS12_SAFEBAG_new 3 ,
.Xr PKCS7_new 3 ,
.Xr X509_SIG_new 3
.Sh STANDARDS
RFC 7292: PKCS #12: Personal Information Exchange Syntax
.Sh HISTORY
.Fn PKCS12_new ,
.Fn PKCS12_free ,
.Fn PKCS12_MAC_DATA_new ,
and
.Fn PKCS12_MAC_DATA_free
first appeared in OpenSSL 0.9.3 and have been available since
.Ox 2.6 .
Changes to jni/libressl/man/PKCS12_newpass.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: PKCS12_newpass.3,v 1.1 2016/11/28 23:02:16 schwarze Exp $
.\"	OpenSSL c95a8b4e May 5 14:26:26 2016 +0100
.\"
.\" This file was written by Jeffrey Walton <noloader@gmail.com>.
.\" Copyright (c) 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: PKCS12_newpass.3,v 1.2 2018/03/22 16:06:33 schwarze Exp $
.\"	OpenSSL c95a8b4e May 5 14:26:26 2016 +0100
.\"
.\" This file was written by Jeffrey Walton <noloader@gmail.com>.
.\" Copyright (c) 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 28 2016 $
.Dt PKCS12_NEWPASS 3
.Os
.Sh NAME
.Nm PKCS12_newpass
.Nd change the password of a PKCS#12 structure
.Sh SYNOPSIS
.In openssl/pkcs12.h







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt PKCS12_NEWPASS 3
.Os
.Sh NAME
.Nm PKCS12_newpass
.Nd change the password of a PKCS#12 structure
.Sh SYNOPSIS
.In openssl/pkcs12.h
145
146
147
148
149
150
151




152
153
154
155
	fclose(fp);
	return 0;
}
.Ed
.Sh SEE ALSO
.Xr ERR_get_error 3 ,
.Xr PKCS12_create 3




.Sh BUGS
The password format is a NUL terminated ASCII string which is
converted to Unicode form internally.
As a result, some passwords cannot be supplied to this function.







>
>
>
>




145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
	fclose(fp);
	return 0;
}
.Ed
.Sh SEE ALSO
.Xr ERR_get_error 3 ,
.Xr PKCS12_create 3
.Sh HISTORY
.Fn PKCS12_newpass
first appeared in OpenSSL 0.9.5 and has been available since
.Ox 2.7 .
.Sh BUGS
The password format is a NUL terminated ASCII string which is
converted to Unicode form internally.
As a result, some passwords cannot be supplied to this function.
Changes to jni/libressl/man/PKCS12_parse.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: PKCS12_parse.3,v 1.4 2016/11/28 22:41:38 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2002, 2009 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: PKCS12_parse.3,v 1.5 2018/03/21 17:57:48 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2002, 2009 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 28 2016 $
.Dt PKCS12_PARSE 3
.Os
.Sh NAME
.Nm PKCS12_parse
.Nd parse a PKCS#12 structure
.Sh SYNOPSIS
.In openssl/pkcs12.h







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt PKCS12_PARSE 3
.Os
.Sh NAME
.Nm PKCS12_parse
.Nd parse a PKCS#12 structure
.Sh SYNOPSIS
.In openssl/pkcs12.h
117
118
119
120
121
122
123
124


125
126
127
128
129
130
131
returns 1 for success and 0 if an error occurred.
.Pp
The error can be obtained from
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr d2i_PKCS12 3
.Sh HISTORY
PKCS12_parse was added in OpenSSL 0.9.3.


.Sh BUGS
Only a single private key and corresponding certificate is returned by
this function.
More complex PKCS#12 files with multiple private keys will only return
the first match.
.Pp
Only







|
>
>







117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
returns 1 for success and 0 if an error occurred.
.Pp
The error can be obtained from
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr d2i_PKCS12 3
.Sh HISTORY
.Fn PKCS12_parse
first appeared in OpenSSL 0.9.3 and has been available since
.Ox 2.6 .
.Sh BUGS
Only a single private key and corresponding certificate is returned by
this function.
More complex PKCS#12 files with multiple private keys will only return
the first match.
.Pp
Only
Changes to jni/libressl/man/PKCS5_PBKDF2_HMAC.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: PKCS5_PBKDF2_HMAC.3,v 1.4 2016/11/28 23:27:55 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Jeffrey Walton <noloader@gmail.com>.
.\" Copyright (c) 2014, 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: PKCS5_PBKDF2_HMAC.3,v 1.6 2018/03/23 04:34:23 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Jeffrey Walton <noloader@gmail.com>.
.\" Copyright (c) 2014, 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 28 2016 $
.Dt PKCS5_PBKDF2_HMAC 3
.Os
.Sh NAME
.Nm PKCS5_PBKDF2_HMAC ,
.Nm PKCS5_PBKDF2_HMAC_SHA1
.Nd password based derivation routines with salt and iteration count
.Sh SYNOPSIS







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt PKCS5_PBKDF2_HMAC 3
.Os
.Sh NAME
.Nm PKCS5_PBKDF2_HMAC ,
.Nm PKCS5_PBKDF2_HMAC_SHA1
.Nd password based derivation routines with salt and iteration count
.Sh SYNOPSIS
150
151
152
153
154
155
156








and
.Fn PBKCS5_PBKDF2_HMAC_SHA1
return 1 on success or 0 on error.
.Sh SEE ALSO
.Xr evp 3 ,
.Xr EVP_BytesToKey 3 ,
.Xr RAND_bytes 3















>
>
>
>
>
>
>
>
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
and
.Fn PBKCS5_PBKDF2_HMAC_SHA1
return 1 on success or 0 on error.
.Sh SEE ALSO
.Xr evp 3 ,
.Xr EVP_BytesToKey 3 ,
.Xr RAND_bytes 3
.Sh HISTORY
.Fn PKCS5_PBKDF2_HMAC_SHA1
first appeared in OpenSSL 0.9.4 and has been available since
.Ox 2.6 .
.Pp
.Fn PKCS5_PBKDF2_HMAC
first appeared in OpenSSL 1.0.0 and has been available since
.Ox 4.9 .
Changes to jni/libressl/man/PKCS7_decrypt.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: PKCS7_decrypt.3,v 1.6 2016/12/13 15:00:22 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2002, 2006 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: PKCS7_decrypt.3,v 1.7 2018/03/22 16:06:33 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2002, 2006 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 13 2016 $
.Dt PKCS7_DECRYPT 3
.Os
.Sh NAME
.Nm PKCS7_decrypt
.Nd decrypt content from a PKCS#7 envelopedData structure
.Sh SYNOPSIS
.In openssl/pkcs7.h







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt PKCS7_DECRYPT 3
.Os
.Sh NAME
.Nm PKCS7_decrypt
.Nd decrypt content from a PKCS#7 envelopedData structure
.Sh SYNOPSIS
.In openssl/pkcs7.h
103
104
105
106
107
108
109
110

111
112
113
114
115
116
117
118
119
120
121
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr ERR_get_error 3 ,
.Xr PKCS7_encrypt 3 ,
.Xr PKCS7_new 3
.Sh HISTORY
.Fn PKCS7_decrypt
was added to OpenSSL 0.9.5.

.Sh BUGS
.Fn PKCS7_decrypt
must be passed the correct recipient key and certificate.
It would be better if it could look up the correct key and certificate
from a database.
.Pp
The lack of single pass processing and need to hold all data in memory
as mentioned in
.Xr PKCS7_sign 3
also applies to
.Fn PKCS7_decrypt .







|
>











103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr ERR_get_error 3 ,
.Xr PKCS7_encrypt 3 ,
.Xr PKCS7_new 3
.Sh HISTORY
.Fn PKCS7_decrypt
first appeared in OpenSSL 0.9.5 and has been available since
.Ox 2.7 .
.Sh BUGS
.Fn PKCS7_decrypt
must be passed the correct recipient key and certificate.
It would be better if it could look up the correct key and certificate
from a database.
.Pp
The lack of single pass processing and need to hold all data in memory
as mentioned in
.Xr PKCS7_sign 3
also applies to
.Fn PKCS7_decrypt .
Changes to jni/libressl/man/PKCS7_encrypt.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: PKCS7_encrypt.3,v 1.6 2017/01/12 16:13:51 jmc Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2002, 2006, 2007, 2008, 2009 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: PKCS7_encrypt.3,v 1.8 2018/03/23 23:18:17 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2002, 2006, 2007, 2008, 2009 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: January 12 2017 $
.Dt PKCS7_ENCRYPT 3
.Os
.Sh NAME
.Nm PKCS7_encrypt
.Nd create a PKCS#7 envelopedData structure
.Sh SYNOPSIS
.In openssl/pkcs7.h







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt PKCS7_ENCRYPT 3
.Os
.Sh NAME
.Nm PKCS7_encrypt
.Nd create a PKCS#7 envelopedData structure
.Sh SYNOPSIS
.In openssl/pkcs7.h
154
155
156
157
158
159
160
161
162


163
164
165
The error can be obtained from
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr ERR_get_error 3 ,
.Xr PKCS7_decrypt 3 ,
.Xr PKCS7_new 3
.Sh HISTORY
.Xr PKCS7_decrypt 3
was added to OpenSSL 0.9.5.


The
.Dv PKCS7_STREAM
flag was first supported in OpenSSL 1.0.0.







|
|
>
>



154
155
156
157
158
159
160
161
162
163
164
165
166
167
The error can be obtained from
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr ERR_get_error 3 ,
.Xr PKCS7_decrypt 3 ,
.Xr PKCS7_new 3
.Sh HISTORY
.Fn PKCS7_encrypt
first appeared in OpenSSL 0.9.5 and has been available since
.Ox 2.7 .
.Pp
The
.Dv PKCS7_STREAM
flag was first supported in OpenSSL 1.0.0.
Changes to jni/libressl/man/PKCS7_new.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: PKCS7_new.3,v 1.2 2016/12/25 22:15:10 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 25 2016 $
.Dt PKCS7_NEW 3
.Os
.Sh NAME
.Nm PKCS7_new ,
.Nm PKCS7_free ,
.Nm PKCS7_SIGNED_new ,
.Nm PKCS7_SIGNED_free ,
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: PKCS7_new.3,v 1.3 2018/03/21 00:54:31 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt PKCS7_NEW 3
.Os
.Sh NAME
.Nm PKCS7_new ,
.Nm PKCS7_free ,
.Nm PKCS7_SIGNED_new ,
.Nm PKCS7_SIGNED_free ,
249
250
251
252
253
254
255




.Xr PKCS7_sign 3 ,
.Xr PKCS7_sign_add_signer 3 ,
.Xr PKCS7_verify 3 ,
.Xr SMIME_read_PKCS7 3 ,
.Xr SMIME_write_PKCS7 3
.Sh STANDARDS
RFC 2315: PKCS #7: Cryptographic Message Syntax Version 1.5











>
>
>
>
249
250
251
252
253
254
255
256
257
258
259
.Xr PKCS7_sign 3 ,
.Xr PKCS7_sign_add_signer 3 ,
.Xr PKCS7_verify 3 ,
.Xr SMIME_read_PKCS7 3 ,
.Xr SMIME_write_PKCS7 3
.Sh STANDARDS
RFC 2315: PKCS #7: Cryptographic Message Syntax Version 1.5
.Sh HISTORY
These functions appeared in SSLeay 0.8.1b or earlier
and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/PKCS7_sign.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: PKCS7_sign.3,v 1.7 2017/01/12 16:13:51 jmc Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2002, 2003, 2006-2009, 2015 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: PKCS7_sign.3,v 1.8 2018/03/22 16:06:33 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2002, 2003, 2006-2009, 2015 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: January 12 2017 $
.Dt PKCS7_SIGN 3
.Os
.Sh NAME
.Nm PKCS7_sign
.Nd create a PKCS#7 signedData structure
.Sh SYNOPSIS
.In openssl/pkcs7.h







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt PKCS7_SIGN 3
.Os
.Sh NAME
.Nm PKCS7_sign
.Nd create a PKCS#7 signedData structure
.Sh SYNOPSIS
.In openssl/pkcs7.h
228
229
230
231
232
233
234
235

236
237
238
239
240
241
242
243
.Fn ERR_get_error 3 .
.Sh SEE ALSO
.Xr ERR_get_error 3 ,
.Xr PKCS7_new 3 ,
.Xr PKCS7_verify 3
.Sh HISTORY
.Fn PKCS7_sign
was added to OpenSSL 0.9.5.

.Pp
The
.Dv PKCS7_PARTIAL
and
.Dv PKCS7_STREAM
flags were added in OpenSSL 1.0.0.
.Sh BUGS
Some advanced attributes such as counter signatures are not supported.







|
>








228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
.Fn ERR_get_error 3 .
.Sh SEE ALSO
.Xr ERR_get_error 3 ,
.Xr PKCS7_new 3 ,
.Xr PKCS7_verify 3
.Sh HISTORY
.Fn PKCS7_sign
first appeared in OpenSSL 0.9.5 and have been available since
.Ox 2.7 .
.Pp
The
.Dv PKCS7_PARTIAL
and
.Dv PKCS7_STREAM
flags were added in OpenSSL 1.0.0.
.Sh BUGS
Some advanced attributes such as counter signatures are not supported.
Changes to jni/libressl/man/PKCS7_sign_add_signer.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: PKCS7_sign_add_signer.3,v 1.7 2017/01/06 18:21:55 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2007, 2008, 2009, 2015 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: PKCS7_sign_add_signer.3,v 1.8 2018/03/23 04:34:23 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2007, 2008, 2009, 2015 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: January 6 2017 $
.Dt PKCS7_SIGN_ADD_SIGNER 3
.Os
.Sh NAME
.Nm PKCS7_sign_add_signer
.Nd add a signer PKCS7 signed data structure
.Sh SYNOPSIS
.In openssl/pkcs7.h







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt PKCS7_SIGN_ADD_SIGNER 3
.Os
.Sh NAME
.Nm PKCS7_sign_add_signer
.Nd add a signer PKCS7 signed data structure
.Sh SYNOPSIS
.In openssl/pkcs7.h
172
173
174
175
176
177
178
179

if an error occurs.
.Sh SEE ALSO
.Xr ERR_get_error 3 ,
.Xr PKCS7_new 3 ,
.Xr PKCS7_sign 3
.Sh HISTORY
.Fn PKCS7_sign_add_signer
was added to OpenSSL 1.0.0.








|
>
172
173
174
175
176
177
178
179
180
if an error occurs.
.Sh SEE ALSO
.Xr ERR_get_error 3 ,
.Xr PKCS7_new 3 ,
.Xr PKCS7_sign 3
.Sh HISTORY
.Fn PKCS7_sign_add_signer
first appeared in OpenSSL 1.0.0 and has been available since
.Ox 4.9 .
Changes to jni/libressl/man/PKCS7_verify.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: PKCS7_verify.3,v 1.5 2016/12/13 15:00:22 schwarze Exp $
.\"	OpenSSL a528d4f0 Oct 27 13:40:11 2015 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2002, 2006, 2013, 2014, 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: PKCS7_verify.3,v 1.7 2018/03/22 16:06:33 schwarze Exp $
.\"	OpenSSL a528d4f0 Oct 27 13:40:11 2015 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2002, 2006, 2013, 2014, 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 13 2016 $
.Dt PKCS7_VERIFY 3
.Os
.Sh NAME
.Nm PKCS7_verify ,
.Nm PKCS7_get0_signers
.Nd verify a PKCS#7 signedData structure
.Sh SYNOPSIS







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt PKCS7_VERIFY 3
.Os
.Sh NAME
.Nm PKCS7_verify ,
.Nm PKCS7_get0_signers
.Nd verify a PKCS#7 signedData structure
.Sh SYNOPSIS
222
223
224
225
226
227
228
229

230
231


232

233
234
235
236
237
238
239
240
241
242
243
244
if an error occurred.
.Pp
The error can be obtained from
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr ERR_get_error 3 ,
.Xr PKCS7_new 3 ,
.Xr PKCS7_sign 3

.Sh HISTORY
.Fn PKCS7_verify


was added to OpenSSL 0.9.5 .

.Sh BUGS
The trusted certificate store is not searched for the signer's
certificate.
This is primarily due to the inadequacies of the current
.Vt X509_STORE
functionality.
.Pp
The lack of single pass processing and the need to hold all data
in memory as mentioned in
.Xr PKCS7_sign 3
also applies to
.Fn PKCS7_verify .







|
>


>
>
|
>












222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
if an error occurred.
.Pp
The error can be obtained from
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr ERR_get_error 3 ,
.Xr PKCS7_new 3 ,
.Xr PKCS7_sign 3 ,
.Xr X509_STORE_new 3
.Sh HISTORY
.Fn PKCS7_verify
and
.Fn PKCS7_get0_signers
first appeared in OpenSSL 0.9.5 and have been available since
.Ox 2.7 .
.Sh BUGS
The trusted certificate store is not searched for the signer's
certificate.
This is primarily due to the inadequacies of the current
.Vt X509_STORE
functionality.
.Pp
The lack of single pass processing and the need to hold all data
in memory as mentioned in
.Xr PKCS7_sign 3
also applies to
.Fn PKCS7_verify .
Changes to jni/libressl/man/PKCS8_PRIV_KEY_INFO_new.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: PKCS8_PRIV_KEY_INFO_new.3,v 1.2 2016/12/25 22:15:10 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 25 2016 $
.Dt PKCS8_PRIV_KEY_INFO_NEW 3
.Os
.Sh NAME
.Nm PKCS8_PRIV_KEY_INFO_new ,
.Nm PKCS8_PRIV_KEY_INFO_free
.Nd PKCS#8 private key information
.Sh SYNOPSIS
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: PKCS8_PRIV_KEY_INFO_new.3,v 1.3 2018/03/21 17:57:48 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt PKCS8_PRIV_KEY_INFO_NEW 3
.Os
.Sh NAME
.Nm PKCS8_PRIV_KEY_INFO_new ,
.Nm PKCS8_PRIV_KEY_INFO_free
.Nd PKCS#8 private key information
.Sh SYNOPSIS
50
51
52
53
54
55
56






.Sh SEE ALSO
.Xr d2i_PKCS8PrivateKey_bio 3 ,
.Xr PEM_read_PKCS8_PRIV_KEY_INFO 3 ,
.Xr PKCS12_parse 3 ,
.Xr X509_ATTRIBUTE_new 3
.Sh STANDARDS
RFC 5208: PKCS#8: Private-Key Information Syntax Specification













>
>
>
>
>
>
50
51
52
53
54
55
56
57
58
59
60
61
62
.Sh SEE ALSO
.Xr d2i_PKCS8PrivateKey_bio 3 ,
.Xr PEM_read_PKCS8_PRIV_KEY_INFO 3 ,
.Xr PKCS12_parse 3 ,
.Xr X509_ATTRIBUTE_new 3
.Sh STANDARDS
RFC 5208: PKCS#8: Private-Key Information Syntax Specification
.Sh HISTORY
.Fn PKCS8_PRIV_KEY_INFO_new
and
.Fn PKCS8_PRIV_KEY_INFO_free
first appeared in OpenSSL 0.9.3 and have been available since
.Ox 2.6 .
Changes to jni/libressl/man/PKEY_USAGE_PERIOD_new.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: PKEY_USAGE_PERIOD_new.3,v 1.3 2016/12/25 22:15:10 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 25 2016 $
.Dt PKEY_USAGE_PERIOD_NEW 3
.Os
.Sh NAME
.Nm PKEY_USAGE_PERIOD_new ,
.Nm PKEY_USAGE_PERIOD_free
.Nd X.509 certificate private key usage period extension
.Sh SYNOPSIS
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: PKEY_USAGE_PERIOD_new.3,v 1.4 2018/03/21 16:09:51 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt PKEY_USAGE_PERIOD_NEW 3
.Os
.Sh NAME
.Nm PKEY_USAGE_PERIOD_new ,
.Nm PKEY_USAGE_PERIOD_free
.Nd X.509 certificate private key usage period extension
.Sh SYNOPSIS
61
62
63
64
65
66
67






.Pp
RFC 3280 was obsoleted by RFC 5280, which says: "Section 4.2.1.4
in RFC 3280, which specified the
.Vt PrivateKeyUsagePeriod
certificate extension but deprecated its use, was removed.
Use of this ISO standard extension is neither deprecated
nor recommended for use in the Internet PKI."













>
>
>
>
>
>
61
62
63
64
65
66
67
68
69
70
71
72
73
.Pp
RFC 3280 was obsoleted by RFC 5280, which says: "Section 4.2.1.4
in RFC 3280, which specified the
.Vt PrivateKeyUsagePeriod
certificate extension but deprecated its use, was removed.
Use of this ISO standard extension is neither deprecated
nor recommended for use in the Internet PKI."
.Sh HISTORY
.Fn PKEY_USAGE_PERIOD_new
and
.Fn PKEY_USAGE_PERIOD_free
first appeared in OpenSSL 0.9.2b and have been available since
.Ox 2.6 .
Changes to jni/libressl/man/POLICYINFO_new.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: POLICYINFO_new.3,v 1.3 2016/12/28 20:29:15 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 28 2016 $
.Dt POLICYINFO_NEW 3
.Os
.Sh NAME
.Nm POLICYINFO_new ,
.Nm POLICYINFO_free ,
.Nm CERTIFICATEPOLICIES_new ,
.Nm CERTIFICATEPOLICIES_free ,
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: POLICYINFO_new.3,v 1.5 2018/03/23 00:09:11 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt POLICYINFO_NEW 3
.Os
.Sh NAME
.Nm POLICYINFO_new ,
.Nm POLICYINFO_free ,
.Nm CERTIFICATEPOLICIES_new ,
.Nm CERTIFICATEPOLICIES_free ,
185
186
187
188
189
190
191






















192
193
194
.It
section 4.2.1.4: Certificate Policies
.It
section 4.2.1.5: Policy Mappings
.It
section 4.2.1.11: Policy Constraints
.El






















.Sh BUGS
This is a lot of nested data structures, but most of them are
designed to have almost no effect.







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>



185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
.It
section 4.2.1.4: Certificate Policies
.It
section 4.2.1.5: Policy Mappings
.It
section 4.2.1.11: Policy Constraints
.El
.Sh HISTORY
.Fn POLICYINFO_new ,
.Fn POLICYINFO_free ,
.Fn CERTIFICATEPOLICIES_new ,
.Fn CERTIFICATEPOLICIES_free ,
.Fn POLICYQUALINFO_new ,
.Fn POLICYQUALINFO_free ,
.Fn USERNOTICE_new ,
.Fn USERNOTICE_free ,
.Fn NOTICEREF_new ,
and
.Fn NOTICEREF_free
first appeared in OpenSSL 0.9.3 and have been available since
.Ox 2.6 .
.Pp
.Fn POLICY_MAPPING_new ,
.Fn POLICY_MAPPING_free ,
.Fn POLICY_CONSTRAINTS_new ,
and
.Fn POLICY_CONSTRAINTS_free
first appeared in OpenSSL 0.9.8 and have been available since
.Ox 4.5 .
.Sh BUGS
This is a lot of nested data structures, but most of them are
designed to have almost no effect.
Changes to jni/libressl/man/PROXY_POLICY_new.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: PROXY_POLICY_new.3,v 1.2 2016/12/25 22:15:10 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 25 2016 $
.Dt PROXY_POLICY_NEW 3
.Os
.Sh NAME
.Nm PROXY_POLICY_new ,
.Nm PROXY_POLICY_free ,
.Nm PROXY_CERT_INFO_EXTENSION_new ,
.Nm PROXY_CERT_INFO_EXTENSION_free
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: PROXY_POLICY_new.3,v 1.3 2018/03/22 22:07:12 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt PROXY_POLICY_NEW 3
.Os
.Sh NAME
.Nm PROXY_POLICY_new ,
.Nm PROXY_POLICY_free ,
.Nm PROXY_CERT_INFO_EXTENSION_new ,
.Nm PROXY_CERT_INFO_EXTENSION_free
85
86
87
88
89
90
91




.Xr EXTENDED_KEY_USAGE_new 3 ,
.Xr POLICYINFO_new 3 ,
.Xr X509_EXTENSION_new 3 ,
.Xr X509_new 3
.Sh STANDARDS
RFC 3820: Internet X.509 Public Key Infrastructure (PKI) Proxy
Certificate Profile











>
>
>
>
85
86
87
88
89
90
91
92
93
94
95
.Xr EXTENDED_KEY_USAGE_new 3 ,
.Xr POLICYINFO_new 3 ,
.Xr X509_EXTENSION_new 3 ,
.Xr X509_new 3
.Sh STANDARDS
RFC 3820: Internet X.509 Public Key Infrastructure (PKI) Proxy
Certificate Profile
.Sh HISTORY
These functions first appeared in OpenSSL 0.9.7g
and have been available since
.Ox 3.8 .
Changes to jni/libressl/man/RAND_add.3.
1

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

23
24
25
26
27
28
29
30
31
32
33
34
35


36
37
38
39
40
41
42
43
44
45
46
47
48
49


50
51
















.\"	$OpenBSD: RAND_add.3,v 1.5 2016/12/15 06:52:02 jmc Exp $

.\"
.\" Copyright (c) 2014 Miod Vallat <miod@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 15 2016 $
.Dt RAND_ADD 3
.Os
.Sh NAME
.Nm RAND_add ,
.Nm RAND_cleanup ,

.Nm RAND_seed ,
.Nm RAND_status
.Nd manipulate the PRNG state
.Sh SYNOPSIS
.In openssl/rand.h
.Ft void
.Fo RAND_add
.Fa "const void *buf"
.Fa "int num"
.Fa "double entropy"
.Fc
.Ft void
.Fn RAND_cleanup void


.Ft void
.Fo RAND_seed
.Fa "const void *buf"
.Fa "int num"
.Fc
.Ft int
.Fn RAND_status void
.Sh DESCRIPTION
These functions used to allow for the state of the random number
generator to be controlled by external sources.
.Pp
They are kept for ABI compatibility but are no longer functional, and
should not be used in new programs.
.Sh RETURN VALUES


.Fn RAND_status
always returns 1.
















|
>















|





>













>
>














>
>

|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
.\" $OpenBSD: RAND_add.3,v 1.9 2018/03/23 23:18:17 schwarze Exp $
.\" content checked up to: OpenSSL c16de9d8 Aug 31 23:16:22 2017 +0200
.\"
.\" Copyright (c) 2014 Miod Vallat <miod@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt RAND_ADD 3
.Os
.Sh NAME
.Nm RAND_add ,
.Nm RAND_cleanup ,
.Nm RAND_poll ,
.Nm RAND_seed ,
.Nm RAND_status
.Nd manipulate the PRNG state
.Sh SYNOPSIS
.In openssl/rand.h
.Ft void
.Fo RAND_add
.Fa "const void *buf"
.Fa "int num"
.Fa "double entropy"
.Fc
.Ft void
.Fn RAND_cleanup void
.Ft int
.Fn RAND_poll void
.Ft void
.Fo RAND_seed
.Fa "const void *buf"
.Fa "int num"
.Fc
.Ft int
.Fn RAND_status void
.Sh DESCRIPTION
These functions used to allow for the state of the random number
generator to be controlled by external sources.
.Pp
They are kept for ABI compatibility but are no longer functional, and
should not be used in new programs.
.Sh RETURN VALUES
.Fn RAND_poll
and
.Fn RAND_status
always return 1.
.Sh HISTORY
.Fn RAND_cleanup
and
.Fn RAND_seed
appeared in SSLeay 0.8.1b or earlier and have been available since
.Ox 2.4 .
.Pp
.Fn RAND_add
and
.Fn RAND_status
first appeared in OpenSSL 0.9.5 and have been available since
.Ox 2.7 .
.Pp
.Fn RAND_poll
first appeared in OpenSSL 0.9.6 and has been available since
.Ox 2.9 .
Changes to jni/libressl/man/RAND_bytes.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: RAND_bytes.3,v 1.3 2016/11/29 00:26:23 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: RAND_bytes.3,v 1.5 2018/03/22 16:06:33 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 29 2016 $
.Dt RAND_BYTES 3
.Os
.Sh NAME
.Nm RAND_bytes ,
.Nm RAND_pseudo_bytes
.Nd generate random data
.Sh SYNOPSIS







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt RAND_BYTES 3
.Os
.Sh NAME
.Nm RAND_bytes ,
.Nm RAND_pseudo_bytes
.Nd generate random data
.Sh SYNOPSIS
94
95
96
97
98
99
100
101
102
103


104
105

.Sh RETURN VALUES
.Fn RAND_bytes
returns 1.
.Fn RAND_pseudo_bytes
returns 1.
.Sh HISTORY
.Fn RAND_bytes
is available in all versions of SSLeay and OpenSSL.
It has a return
value since OpenSSL 0.9.5.


.Fn RAND_pseudo_bytes
was added in OpenSSL 0.9.5.








|
|
|
>
>

|
>
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
.Sh RETURN VALUES
.Fn RAND_bytes
returns 1.
.Fn RAND_pseudo_bytes
returns 1.
.Sh HISTORY
.Fn RAND_bytes
appeared in SSLeay 0.8.1b or earlier and has been available since
.Ox 2.4 .
It has a return value since OpenSSL 0.9.5 and
.Ox 2.7 .
.Pp
.Fn RAND_pseudo_bytes
first appeared in OpenSSL 0.9.5 and has been available since
.Ox 2.7 .
Changes to jni/libressl/man/RAND_load_file.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: RAND_load_file.3,v 1.4 2016/11/29 00:45:36 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2001 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: RAND_load_file.3,v 1.5 2018/03/21 01:02:06 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2001 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 29 2016 $
.Dt RAND_LOAD_FILE 3
.Os
.Sh NAME
.Nm RAND_file_name ,
.Nm RAND_load_file ,
.Nm RAND_write_file
.Nd PRNG seed file







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt RAND_LOAD_FILE 3
.Os
.Sh NAME
.Nm RAND_file_name ,
.Nm RAND_load_file ,
.Nm RAND_write_file
.Nd PRNG seed file
111
112
113
114
115
116
117
118

.Dv NULL
on error.
.Sh HISTORY
.Fn RAND_load_file ,
.Fn RAND_write_file ,
and
.Fn RAND_file_name
are available in all versions of SSLeay and OpenSSL.








|
>
111
112
113
114
115
116
117
118
119
.Dv NULL
on error.
.Sh HISTORY
.Fn RAND_load_file ,
.Fn RAND_write_file ,
and
.Fn RAND_file_name
appeared in SSLeay 0.8.1b or earlier and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/RAND_set_rand_method.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: RAND_set_rand_method.3,v 1.3 2016/11/29 00:07:45 schwarze Exp $
.\"
.\" Copyright (c) 2014 Miod Vallat <miod@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: November 29 2016 $
.Dt RAND_SET_RAND_METHOD 3
.Os
.Sh NAME
.Nm RAND_set_rand_method ,
.Nm RAND_get_rand_method ,
.Nm RAND_SSLeay
.Nd select RAND method
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: RAND_set_rand_method.3,v 1.4 2018/03/21 09:03:49 schwarze Exp $
.\"
.\" Copyright (c) 2014 Miod Vallat <miod@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt RAND_SET_RAND_METHOD 3
.Os
.Sh NAME
.Nm RAND_set_rand_method ,
.Nm RAND_get_rand_method ,
.Nm RAND_SSLeay
.Nd select RAND method
47
48
49
50
51
52
53
54

always return
.Dv NULL .
.Sh HISTORY
.Fn RAND_set_rand_method ,
.Fn RAND_get_rand_method ,
and
.Fn RAND_SSLeay
are available in all versions of OpenSSL.








|
>
47
48
49
50
51
52
53
54
55
always return
.Dv NULL .
.Sh HISTORY
.Fn RAND_set_rand_method ,
.Fn RAND_get_rand_method ,
and
.Fn RAND_SSLeay
first appeared in SSLeay 0.9.1 and have been available since
.Ox 2.6 .
Changes to jni/libressl/man/RC4.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: RC4.3,v 1.4 2016/11/29 14:51:09 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: RC4.3,v 1.5 2018/03/21 01:05:25 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 29 2016 $
.Dt RC4 3
.Os
.Sh NAME
.Nm RC4_set_key ,
.Nm RC4
.Nd RC4 encryption
.Sh SYNOPSIS







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt RC4 3
.Os
.Sh NAME
.Nm RC4_set_key ,
.Nm RC4
.Nd RC4 encryption
.Sh SYNOPSIS
120
121
122
123
124
125
126
127

128
129
.Sh SEE ALSO
.Xr blowfish 3 ,
.Xr EVP_EncryptInit 3
.Sh HISTORY
.Fn RC4_set_key
and
.Fn RC4
are available in all versions of SSLeay and OpenSSL.

.Sh BUGS
This cipher is broken and should no longer be used.







|
>


120
121
122
123
124
125
126
127
128
129
130
.Sh SEE ALSO
.Xr blowfish 3 ,
.Xr EVP_EncryptInit 3
.Sh HISTORY
.Fn RC4_set_key
and
.Fn RC4
appeared in SSLeay 0.8.1b or earlier and have been available since
.Ox 2.4 .
.Sh BUGS
This cipher is broken and should no longer be used.
Changes to jni/libressl/man/RIPEMD160.3.
1
2
3
4
5
6
7
8
9
.\"	$OpenBSD: RIPEMD160.3,v 1.4 2016/11/29 14:51:09 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2006, 2014 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
|
|







1
2
3
4
5
6
7
8
9
.\" $OpenBSD: RIPEMD160.3,v 1.6 2018/03/21 07:16:31 schwarze Exp $
.\" full merge up to: OpenSSL bbda8ce9 Oct 31 15:43:01 2017 +0800
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2006, 2014 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 29 2016 $
.Dt RIPEMD160 3
.Os
.Sh NAME
.Nm RIPEMD160 ,
.Nm RIPEMD160_Init ,
.Nm RIPEMD160_Update ,
.Nm RIPEMD160_Final







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt RIPEMD160 3
.Os
.Sh NAME
.Nm RIPEMD160 ,
.Nm RIPEMD160_Init ,
.Nm RIPEMD160_Update ,
.Nm RIPEMD160_Final
132
133
134
135
136
137
138

139



140
141
142
143
144
145
146

and
.Fn RIPEMD160_Final
return 1 for success or 0 otherwise.
.Sh SEE ALSO
.Xr EVP_DigestInit 3 ,
.Xr HMAC 3
.Sh STANDARDS

ISO/IEC 10118-3 (draft) (??)



.Sh HISTORY
.Fn RIPEMD160 ,
.Fn RIPEMD160_Init ,
.Fn RIPEMD160_Update ,
and
.Fn RIPEMD160_Final
are available since SSLeay 0.9.0.








>
|
>
>
>






|
>
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
and
.Fn RIPEMD160_Final
return 1 for success or 0 otherwise.
.Sh SEE ALSO
.Xr EVP_DigestInit 3 ,
.Xr HMAC 3
.Sh STANDARDS
.Bd -unfilled
ISO/IEC 10118-3:2004/Cor 1:2011
Hash-functions \(em Part 3: Dedicated hash-functions
Clause 7: RIPEMD-160
.Ed
.Sh HISTORY
.Fn RIPEMD160 ,
.Fn RIPEMD160_Init ,
.Fn RIPEMD160_Update ,
and
.Fn RIPEMD160_Final
first appeared in SSLeay 0.9.0 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/RSA_PSS_PARAMS_new.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: RSA_PSS_PARAMS_new.3,v 1.2 2016/12/25 22:15:10 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 25 2016 $
.Dt RSA_PSS_PARAMS_NEW 3
.Os
.Sh NAME
.Nm RSA_PSS_PARAMS_new ,
.Nm RSA_PSS_PARAMS_free
.Nd probabilistic signature scheme with RSA hashing
.Sh SYNOPSIS
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: RSA_PSS_PARAMS_new.3,v 1.3 2018/03/23 05:48:56 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt RSA_PSS_PARAMS_NEW 3
.Os
.Sh NAME
.Nm RSA_PSS_PARAMS_new ,
.Nm RSA_PSS_PARAMS_free
.Nd probabilistic signature scheme with RSA hashing
.Sh SYNOPSIS
47
48
49
50
51
52
53






.Dv NULL
if an error occurs.
.Sh SEE ALSO
.Xr RSA_padding_add_PKCS1_type_1 3 ,
.Xr X509_sign 3
.Sh STANDARDS
RFC 8017: PKCS#1: RSA Cryptography Specifications Version 2.2













>
>
>
>
>
>
47
48
49
50
51
52
53
54
55
56
57
58
59
.Dv NULL
if an error occurs.
.Sh SEE ALSO
.Xr RSA_padding_add_PKCS1_type_1 3 ,
.Xr X509_sign 3
.Sh STANDARDS
RFC 8017: PKCS#1: RSA Cryptography Specifications Version 2.2
.Sh HISTORY
.Fn RSA_PSS_PARAMS_new
and
.Fn RSA_PSS_PARAMS_free
first appeared in OpenSSL 1.0.1 and have been available since
.Ox 5.3 .
Changes to jni/libressl/man/RSA_blinding_on.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: RSA_blinding_on.3,v 1.4 2016/12/11 12:21:48 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: RSA_blinding_on.3,v 1.5 2018/03/21 07:25:59 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 11 2016 $
.Dt RSA_BLINDING_ON 3
.Os
.Sh NAME
.Nm RSA_blinding_on ,
.Nm RSA_blinding_off
.Nd protect the RSA operation from timing attacks
.Sh SYNOPSIS







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt RSA_BLINDING_ON 3
.Os
.Sh NAME
.Nm RSA_blinding_on ,
.Nm RSA_blinding_off
.Nd protect the RSA operation from timing attacks
.Sh SYNOPSIS
89
90
91
92
93
94
95
96

returns 1 on success, and 0 if an error occurred.
.Sh SEE ALSO
.Xr RSA_new 3
.Sh HISTORY
.Fn RSA_blinding_on
and
.Fn RSA_blinding_off
appeared in SSLeay 0.9.0.








|
>
89
90
91
92
93
94
95
96
97
returns 1 on success, and 0 if an error occurred.
.Sh SEE ALSO
.Xr RSA_new 3
.Sh HISTORY
.Fn RSA_blinding_on
and
.Fn RSA_blinding_off
first appeared in SSLeay 0.9.0 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/RSA_check_key.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: RSA_check_key.3,v 1.4 2016/12/11 12:21:48 schwarze Exp $
.\"	OpenSSL 6859cf74 Sep 25 13:33:28 2002 +0000
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org> and
.\" Geoff Thorpe <geoff@openssl.org>.
.\" Copyright (c) 2000, 2002 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: RSA_check_key.3,v 1.6 2018/03/21 21:18:08 schwarze Exp $
.\"	OpenSSL 6859cf74 Sep 25 13:33:28 2002 +0000
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org> and
.\" Geoff Thorpe <geoff@openssl.org>.
.\" Copyright (c) 2000, 2002 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 11 2016 $
.Dt RSA_CHECK_KEY 3
.Os
.Sh NAME
.Nm RSA_check_key
.Nd validate private RSA keys
.Sh SYNOPSIS
.In openssl/rsa.h







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt RSA_CHECK_KEY 3
.Os
.Sh NAME
.Nm RSA_check_key
.Nd validate private RSA keys
.Sh SYNOPSIS
.In openssl/rsa.h
122
123
124
125
126
127
128

129
130
131
132

133
134
135
136
137
138
139
.Pp
If the key is invalid or an error occurred, the reason code can be
obtained using
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr BN_is_prime_ex 3 ,
.Xr ERR_get_error 3 ,

.Xr RSA_new 3
.Sh HISTORY
.Fn RSA_check_key
appeared in OpenSSL 0.9.4.

.Sh BUGS
A method of verifying the RSA key using opaque RSA API functions might
need to be considered.
Right now
.Fn RSA_check_key
simply uses the
.Vt RSA







>



|
>







122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
.Pp
If the key is invalid or an error occurred, the reason code can be
obtained using
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr BN_is_prime_ex 3 ,
.Xr ERR_get_error 3 ,
.Xr RSA_get0_key 3 ,
.Xr RSA_new 3
.Sh HISTORY
.Fn RSA_check_key
first appeared in OpenSSL 0.9.4 and has been available since
.Ox 2.6 .
.Sh BUGS
A method of verifying the RSA key using opaque RSA API functions might
need to be considered.
Right now
.Fn RSA_check_key
simply uses the
.Vt RSA
Changes to jni/libressl/man/RSA_generate_key.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: RSA_generate_key.3,v 1.6 2017/03/25 18:08:48 schwarze Exp $
.\"	OpenSSL RSA_generate_key.pod bb6c5e7f Feb 5 10:29:22 2017 -0500
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2002, 2013 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: RSA_generate_key.3,v 1.10 2018/03/23 00:09:11 schwarze Exp $
.\"	OpenSSL RSA_generate_key.pod bb6c5e7f Feb 5 10:29:22 2017 -0500
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2002, 2013 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 25 2017 $
.Dt RSA_GENERATE_KEY 3
.Os
.Sh NAME
.Nm RSA_generate_key_ex ,
.Nm RSA_generate_key
.Nd generate RSA key pair
.Sh SYNOPSIS







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt RSA_GENERATE_KEY 3
.Os
.Sh NAME
.Nm RSA_generate_key_ex ,
.Nm RSA_generate_key
.Nd generate RSA key pair
.Sh SYNOPSIS
139
140
141
142
143
144
145

146
147
148


149
150






151
152
153
154
155
156
on error.
.Pp
The error codes can be obtained by
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr BN_generate_prime 3 ,
.Xr ERR_get_error 3 ,

.Xr RSA_new 3
.Sh HISTORY
The


.Fa cb_arg
argument was added in SSLeay 0.9.0.






.Sh BUGS
.Fn BN_GENCB_call cb 2 x
is used with two different meanings.
.Pp
.Fn RSA_generate_key
goes into an infinite loop for illegal input values.







>


<
>
>

|
>
>
>
>
>
>






139
140
141
142
143
144
145
146
147
148

149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
on error.
.Pp
The error codes can be obtained by
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr BN_generate_prime 3 ,
.Xr ERR_get_error 3 ,
.Xr RSA_get0_key 3 ,
.Xr RSA_new 3
.Sh HISTORY

.Fn RSA_generate_key
appeared before SSLeay 0.8 and had its
.Fa cb_arg
argument added in SSLeay 0.9.0.
It has been available since
.Ox 2.4 .
.Pp
.Fn RSA_generate_key_ex
first appeared in OpenSSL 0.9.8 and has been available since
.Ox 4.5 .
.Sh BUGS
.Fn BN_GENCB_call cb 2 x
is used with two different meanings.
.Pp
.Fn RSA_generate_key
goes into an infinite loop for illegal input values.
Added jni/libressl/man/RSA_get0_key.3.




































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
.\" $OpenBSD: RSA_get0_key.3,v 1.4 2018/03/23 23:18:17 schwarze Exp $
.\" selective merge up to: OpenSSL 665d899f Aug 2 02:19:43 2017 +0800
.\"
.\" This file was written by Richard Levitte <levitte@openssl.org>
.\" Copyright (c) 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\"
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in
.\"    the documentation and/or other materials provided with the
.\"    distribution.
.\"
.\" 3. All advertising materials mentioning features or use of this
.\"    software must display the following acknowledgment:
.\"    "This product includes software developed by the OpenSSL Project
.\"    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
.\"
.\" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
.\"    endorse or promote products derived from this software without
.\"    prior written permission. For written permission, please contact
.\"    openssl-core@openssl.org.
.\"
.\" 5. Products derived from this software may not be called "OpenSSL"
.\"    nor may "OpenSSL" appear in their names without prior written
.\"    permission of the OpenSSL Project.
.\"
.\" 6. Redistributions of any form whatsoever must retain the following
.\"    acknowledgment:
.\"    "This product includes software developed by the OpenSSL Project
.\"    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
.\" EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
.\" ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt RSA_GET0_KEY 3
.Os
.Sh NAME
.Nm RSA_get0_key ,
.Nm RSA_set0_key ,
.Nm RSA_get0_factors ,
.Nm RSA_set0_factors ,
.Nm RSA_get0_crt_params ,
.Nm RSA_set0_crt_params ,
.Nm RSA_clear_flags ,
.Nm RSA_test_flags ,
.Nm RSA_set_flags
.Nd get and set data in an RSA object
.Sh SYNOPSIS
.In openssl/rsa.h
.Ft void
.Fo RSA_get0_key
.Fa "const RSA *r"
.Fa "const BIGNUM **n"
.Fa "const BIGNUM **e"
.Fa "const BIGNUM **d"
.Fc
.Ft int
.Fo RSA_set0_key
.Fa "RSA *r"
.Fa "BIGNUM *n"
.Fa "BIGNUM *e"
.Fa "BIGNUM *d"
.Fc
.Ft void
.Fo RSA_get0_factors
.Fa "const RSA *r"
.Fa "const BIGNUM **p"
.Fa "const BIGNUM **q"
.Fc
.Ft int
.Fo RSA_set0_factors
.Fa "RSA *r"
.Fa "BIGNUM *p"
.Fa "BIGNUM *q"
.Fc
.Ft void
.Fo RSA_get0_crt_params
.Fa "const RSA *r"
.Fa "const BIGNUM **dmp1"
.Fa "const BIGNUM **dmq1"
.Fa "const BIGNUM **iqmp"
.Fc
.Ft int
.Fo RSA_set0_crt_params
.Fa "RSA *r"
.Fa "BIGNUM *dmp1"
.Fa "BIGNUM *dmq1"
.Fa "BIGNUM *iqmp"
.Fc
.Ft void
.Fo RSA_clear_flags
.Fa "RSA *r"
.Fa "int flags"
.Fc
.Ft int
.Fo RSA_test_flags
.Fa "const RSA *r"
.Fa "int flags"
.Fc
.Ft void
.Fo RSA_set_flags
.Fa "RSA *r"
.Fa "int flags"
.Fc
.Sh DESCRIPTION
An
.Vt RSA
object contains the components for the public and private key.
.Fa n
is the modulus common to both public and private key,
.Fa e
is the public exponent and
.Fa d
is the private exponent.
.Fa p ,
.Fa q ,
.Fa dmp1 ,
.Fa dmq1 ,
and
.Fa iqmp
are the factors for the second representation of a private key
(see PKCS#1 section 3 Key Types), where
.Fa p
and
.Fa q
are the first and second factor of
.Fa n .
.Fa dmp1 ,
.Fa dmq1 ,
and
.Fa iqmp
are the exponents and coefficient for CRT calculations.
.Pp
The
.Fa n ,
.Fa e ,
and
.Fa d
parameters can be obtained by calling
.Fn RSA_get0_key .
If they have not been set yet, then
.Pf * Fa n ,
.Pf * Fa e ,
and
.Pf * Fa d
are set to
.Dv NULL .
Otherwise, they are set to pointers to the internal representations
of the values that should not be freed by the caller.
.Pp
The
.Fa n ,
.Fa e ,
and
.Fa d
parameter values can be set by calling
.Fn RSA_set0_key .
The values
.Fa n
and
.Fa e
must be
.Pf non- Dv NULL
the first time this function is called on a given
.Vt RSA
object.
The value
.Fa d
may be
.Dv NULL .
On subsequent calls, any of these values may be
.Dv NULL ,
which means that the corresponding field is left untouched.
Calling this function transfers the memory management of the values to
the RSA object.
Therefore, the values that have been passed in
should not be freed by the caller.
.Pp
In a similar fashion, the
.Fa p
and
.Fa q
parameters can be obtained and set with
.Fn RSA_get0_factors
and
.Fn RSA_set0_factors ,
and the
.Fa dmp1 ,
.Fa dmq1 ,
and
.Fa iqmp
parameters can be obtained and set with
.Fn RSA_get0_crt_params
and
.Fn RSA_set0_crt_params .
.Pp
For
.Fn RSA_get0_key ,
.Fn RSA_get0_factors ,
and
.Fn RSA_get0_crt_params ,
.Dv NULL
value
.Vt BIGNUM **
output arguments are permitted.
The functions
ignore
.Dv NULL
arguments but return values for other,
.Pf non- Dv NULL ,
arguments.
.Pp
Values retrieved with
.Fn RSA_get0_key ,
.Fn RSA_get0_factors ,
and
.Fn RSA_get0_crt_params
are owned by the
.Vt RSA
object used in the call and may therefore
.Em not
be passed to
.Fn RSA_set0_key ,
.Fn RSA_set0_factors ,
or
.Fn RSA_set0_crt_params .
If needed, duplicate the received value using
.Xr BN_dup 3
and pass the duplicate.
.Pp
.Fn RSA_clear_flags
clears the specified
.Fa flags
in
.Fa r .
.Fn RSA_test_flags
tests the
.Fa flags
in
.Fa r .
.Fn RSA_set_flags
sets the
.Fa flags
in
.Fa r ;
any flags already set remain set.
For all three functions, multiple flags can be passed in one call,
OR'ed together bitwise.
.Sh RETURN VALUES
.Fn RSA_set0_key ,
.Fn RSA_set0_factors ,
and
.Fn RSA_set0_crt_params
return 1 on success or 0 on failure.
.Pp
.Fn RSA_test_flags
returns those of the given
.Fa flags
currently set in
.Fa r
or 0 if none of the given
.Fa flags
are set.
.Sh SEE ALSO
.Xr RSA_check_key 3 ,
.Xr RSA_generate_key 3 ,
.Xr RSA_new 3 ,
.Xr RSA_print 3 ,
.Xr RSA_size 3
.Sh HISTORY
These functions first appeared in OpenSSL 1.1.0
and have been available since
.Ox 6.3 .
Changes to jni/libressl/man/RSA_get_ex_new_index.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: RSA_get_ex_new_index.3,v 1.7 2017/08/01 14:57:03 schwarze Exp $
.\"	OpenSSL 35cb565a Nov 19 15:49:30 2015 -0500
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org> and
.\" Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2006 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: RSA_get_ex_new_index.3,v 1.10 2018/03/23 23:18:17 schwarze Exp $
.\"	OpenSSL 35cb565a Nov 19 15:49:30 2015 -0500
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org> and
.\" Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2006 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: August 1 2017 $
.Dt RSA_GET_EX_NEW_INDEX 3
.Os
.Sh NAME
.Nm RSA_get_ex_new_index ,
.Nm RSA_set_ex_data ,
.Nm RSA_get_ex_data ,
.Nm CRYPTO_EX_new ,







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt RSA_GET_EX_NEW_INDEX 3
.Os
.Sh NAME
.Nm RSA_get_ex_new_index ,
.Nm RSA_set_ex_data ,
.Nm RSA_get_ex_data ,
.Nm CRYPTO_EX_new ,
77
78
79
80
81
82
83

84
85
86
87
88
89
90
.Fa "void *arg"
.Fc
.Ft void *
.Fo RSA_get_ex_data
.Fa "RSA *r"
.Fa "int idx"
.Fc

.Ft typedef int
.Fo CRYPTO_EX_new
.Fa "void *parent"
.Fa "void *ptr"
.Fa "CRYPTO_EX_DATA *ad"
.Fa "int idx"
.Fa "long argl"







>







77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
.Fa "void *arg"
.Fc
.Ft void *
.Fo RSA_get_ex_data
.Fa "RSA *r"
.Fa "int idx"
.Fc
.In openssl/crypto.h
.Ft typedef int
.Fo CRYPTO_EX_new
.Fa "void *parent"
.Fa "void *ptr"
.Fa "CRYPTO_EX_DATA *ad"
.Fa "int idx"
.Fa "long argl"
261
262
263
264
265
266
267



268

269
270
271
272
273

274

275
276
277
278
279
280
281
282
283
284
285
286
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr BIO_set_ex_data 3 ,
.Xr CRYPTO_set_ex_data 3 ,
.Xr DH_set_ex_data 3 ,
.Xr DSA_set_ex_data 3 ,
.Xr RSA_new 3 ,



.Xr X509_STORE_CTX_set_ex_data 3

.Sh HISTORY
.Fn RSA_get_ex_new_index ,
.Fn RSA_set_ex_data ,
and
.Fn RSA_get_ex_data

are available since SSLeay 0.9.0.

.Sh BUGS
.Fa dup_func
is currently never called.
.Pp
The return value of
.Fa new_func
is ignored.
.Pp
The
.Fa new_func
function isn't very useful because no meaningful values are present in
the parent RSA structure when it is called.







>
>
>
|
>

<
<
<
<
>
|
>












262
263
264
265
266
267
268
269
270
271
272
273
274




275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr BIO_set_ex_data 3 ,
.Xr CRYPTO_set_ex_data 3 ,
.Xr DH_set_ex_data 3 ,
.Xr DSA_set_ex_data 3 ,
.Xr RSA_new 3 ,
.Xr SSL_CTX_set_ex_data 3 ,
.Xr SSL_SESSION_set_ex_data 3 ,
.Xr SSL_set_ex_data 3 ,
.Xr X509_STORE_CTX_set_ex_data 3 ,
.Xr X509_STORE_set_ex_data 3
.Sh HISTORY




These functions first appeared in SSLeay 0.9.0
and have been available since
.Ox 2.4 .
.Sh BUGS
.Fa dup_func
is currently never called.
.Pp
The return value of
.Fa new_func
is ignored.
.Pp
The
.Fa new_func
function isn't very useful because no meaningful values are present in
the parent RSA structure when it is called.
Added jni/libressl/man/RSA_meth_new.3.


































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
.\" $OpenBSD: RSA_meth_new.3,v 1.1 2018/03/18 13:06:36 schwarze Exp $
.\" selective merge up to: OpenSSL a970b14f Jul 31 18:58:40 2017 -0400
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2018 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" The original file was written by Richard Levitte <levitte@openssl.org>.
.\" Copyright (c) 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\"
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in
.\"    the documentation and/or other materials provided with the
.\"    distribution.
.\"
.\" 3. All advertising materials mentioning features or use of this
.\"    software must display the following acknowledgment:
.\"    "This product includes software developed by the OpenSSL Project
.\"    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
.\"
.\" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
.\"    endorse or promote products derived from this software without
.\"    prior written permission. For written permission, please contact
.\"    openssl-core@openssl.org.
.\"
.\" 5. Products derived from this software may not be called "OpenSSL"
.\"    nor may "OpenSSL" appear in their names without prior written
.\"    permission of the OpenSSL Project.
.\"
.\" 6. Redistributions of any form whatsoever must retain the following
.\"    acknowledgment:
.\"    "This product includes software developed by the OpenSSL Project
.\"    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
.\" EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
.\" ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 18 2018 $
.Dt RSA_METH_NEW 3
.Os
.Sh NAME
.Nm RSA_meth_new ,
.Nm RSA_meth_free ,
.Nm RSA_meth_dup ,
.Nm RSA_meth_set_finish ,
.Nm RSA_meth_set_priv_enc ,
.Nm RSA_meth_set_priv_dec
.Nd build up RSA methods
.Sh SYNOPSIS
.In openssl/rsa.h
.Ft RSA_METHOD *
.Fo RSA_meth_new
.Fa "const char *name"
.Fa "int flags"
.Fc
.Ft void
.Fo RSA_meth_free
.Fa "RSA_METHOD *meth"
.Fc
.Ft RSA_METHOD *
.Fo RSA_meth_dup
.Fa "const RSA_METHOD *meth"
.Fc
.Ft int
.Fo RSA_meth_set_finish
.Fa "RSA_METHOD *meth"
.Fa "int (*finish)(RSA *rsa)"
.Fc
.Ft int
.Fo RSA_meth_set_priv_enc
.Fa "RSA_METHOD *meth"
.Fa "int (*priv_enc)(int flen, const unsigned char *from,\
 unsigned char *to, RSA *rsa, int padding)"
.Fc
.Ft int
.Fo RSA_meth_set_priv_dec
.Fa "RSA_METHOD *meth"
.Fa "int (*priv_dec)(int flen, const unsigned char *from,\
 unsigned char *to, RSA *rsa, int padding)"
.Fc
.Sh DESCRIPTION
The
.Vt RSA_METHOD
structure holds function pointers for custom RSA implementations.
.Pp
.Fn RSA_meth_new
creates a new
.Vt RSA_METHOD
structure.
A copy of the NUL-terminated
.Fa name
is stored in the new
.Vt RSA_METHOD
object.
Any new
.Vt RSA
object constructed from this
.Vt RSA_METHOD
will have the given
.Fa flags
set by default.
.Pp
.Fn RSA_meth_dup
creates a deep copy of
.Fa meth .
This might be useful for creating a new
.Vt RSA_METHOD
based on an existing one, but with some differences.
.Pp
.Fn RSA_meth_free
destroys
.Fa meth
and frees any memory associated with it.
.Pp
.Fn RSA_meth_set_finish
sets an optional function for destroying an
.Vt RSA
object.
Unless
.Fa finish
is
.Dv NULL ,
it will be called from
.Xr RSA_free 3 .
It takes the same argument
and is intended to do RSA implementation specific cleanup.
The memory used by the
.Vt RSA
object itself should not be freed by the
.Fa finish
function.
.Pp
.Fn RSA_meth_set_priv_enc
and
.Fn RSA_meth_set_priv_dec
set the functions used for private key encryption and decryption.
These functions will be called from
.Xr RSA_private_decrypt 3
and
.Xr RSA_private_encrypt 3
and take the same parameters as those.
.Sh RETURN VALUES
.Fn RSA_meth_new
and
.Fn RSA_meth_dup
return the newly allocated
.Vt RSA_METHOD
object or
.Dv NULL
on failure.
.Pp
All
.Fn RSA_meth_set_*
functions return 1 on success or 0 on failure.
.Sh SEE ALSO
.Xr RSA_new 3 ,
.Xr RSA_private_decrypt 3 ,
.Xr RSA_private_encrypt 3 ,
.Xr RSA_set_method 3
.Sh HISTORY
These functions first appeared in OpenSSL 1.1.0
and have been available since
.Ox 6.3 .
Changes to jni/libressl/man/RSA_new.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: RSA_new.3,v 1.4 2016/12/11 12:52:28 schwarze Exp $
.\"	OpenSSL doc/man3/RSA_new.pod 99d63d46 Oct 26 13:56:48 2016 -0400
.\"	OpenSSL doc/crypto/rsa.pod 35d2e327 Jun 3 16:19:49 2016 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2002, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: RSA_new.3,v 1.7 2018/03/21 01:27:25 schwarze Exp $
.\"	OpenSSL doc/man3/RSA_new.pod 99d63d46 Oct 26 13:56:48 2016 -0400
.\"	OpenSSL doc/crypto/rsa.pod 35d2e327 Jun 3 16:19:49 2016 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2002, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 11 2016 $
.Dt RSA_NEW 3
.Os
.Sh NAME
.Nm RSA_new ,
.Nm RSA_free
.Nd allocate and free RSA objects
.Sh SYNOPSIS







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt RSA_NEW 3
.Os
.Sh NAME
.Nm RSA_new ,
.Nm RSA_free
.Nd allocate and free RSA objects
.Sh SYNOPSIS
156
157
158
159
160
161
162

163

164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180

.Xr DSA_new 3 ,
.Xr engine 3 ,
.Xr ERR_get_error 3 ,
.Xr EVP_PKEY_set1_RSA 3 ,
.Xr RSA_blinding_on 3 ,
.Xr RSA_check_key 3 ,
.Xr RSA_generate_key 3 ,

.Xr RSA_get_ex_new_index 3 ,

.Xr RSA_padding_add_PKCS1_type_1 3 ,
.Xr RSA_print 3 ,
.Xr RSA_private_encrypt 3 ,
.Xr RSA_public_encrypt 3 ,
.Xr RSA_set_method 3 ,
.Xr RSA_sign 3 ,
.Xr RSA_sign_ASN1_OCTET_STRING 3 ,
.Xr RSA_size 3
.Sh STANDARDS
SSL, PKCS #1 v2.0
.Pp
RSA was covered by a US patent which expired in September 2000.
.Sh HISTORY
.Fn RSA_new
and
.Fn RSA_free
are available in all versions of SSLeay and OpenSSL.








>

>
















|
>
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
.Xr DSA_new 3 ,
.Xr engine 3 ,
.Xr ERR_get_error 3 ,
.Xr EVP_PKEY_set1_RSA 3 ,
.Xr RSA_blinding_on 3 ,
.Xr RSA_check_key 3 ,
.Xr RSA_generate_key 3 ,
.Xr RSA_get0_key 3 ,
.Xr RSA_get_ex_new_index 3 ,
.Xr RSA_meth_new 3 ,
.Xr RSA_padding_add_PKCS1_type_1 3 ,
.Xr RSA_print 3 ,
.Xr RSA_private_encrypt 3 ,
.Xr RSA_public_encrypt 3 ,
.Xr RSA_set_method 3 ,
.Xr RSA_sign 3 ,
.Xr RSA_sign_ASN1_OCTET_STRING 3 ,
.Xr RSA_size 3
.Sh STANDARDS
SSL, PKCS #1 v2.0
.Pp
RSA was covered by a US patent which expired in September 2000.
.Sh HISTORY
.Fn RSA_new
and
.Fn RSA_free
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/RSA_padding_add_PKCS1_type_1.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: RSA_padding_add_PKCS1_type_1.3,v 1.6 2017/08/28 17:41:59 jsing Exp $
.\"	OpenSSL 1e3f62a3 Jul 17 16:47:13 2017 +0200
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: RSA_padding_add_PKCS1_type_1.3,v 1.8 2018/03/21 16:09:51 schwarze Exp $
.\"	OpenSSL 1e3f62a3 Jul 17 16:47:13 2017 +0200
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: August 28 2017 $
.Dt RSA_PADDING_ADD_PKCS1_TYPE_1 3
.Os
.Sh NAME
.Nm RSA_padding_add_PKCS1_type_1 ,
.Nm RSA_padding_check_PKCS1_type_1 ,
.Nm RSA_padding_add_PKCS1_type_2 ,
.Nm RSA_padding_check_PKCS1_type_2 ,







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt RSA_PADDING_ADD_PKCS1_TYPE_1 3
.Os
.Sh NAME
.Nm RSA_padding_add_PKCS1_type_1 ,
.Nm RSA_padding_check_PKCS1_type_1 ,
.Nm RSA_padding_add_PKCS1_type_2 ,
.Nm RSA_padding_check_PKCS1_type_2 ,
215
216
217
218
219
220
221
222

223
224
225
226
227

228
229
230
231
232
233
234
.Fn RSA_padding_add_PKCS1_type_1 ,
.Fn RSA_padding_check_PKCS1_type_1 ,
.Fn RSA_padding_add_PKCS1_type_2 ,
.Fn RSA_padding_check_PKCS1_type_2 ,
.Fn RSA_padding_add_none ,
and
.Fn RSA_padding_check_none
appeared in SSLeay 0.9.0.

.Pp
.Fn RSA_padding_add_PKCS1_OAEP
and
.Fn RSA_padding_check_PKCS1_OAEP
were added in OpenSSL 0.9.2b.

.Sh BUGS
The
.Fn RSA_padding_check_PKCS1_type_2
padding check leaks timing information which can potentially be
used to mount a Bleichenbacher padding oracle attack.
This is an inherent weakness in the PKCS #1 v1.5 padding design.
Prefer PKCS1_OAEP padding.







|
>




|
>







215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
.Fn RSA_padding_add_PKCS1_type_1 ,
.Fn RSA_padding_check_PKCS1_type_1 ,
.Fn RSA_padding_add_PKCS1_type_2 ,
.Fn RSA_padding_check_PKCS1_type_2 ,
.Fn RSA_padding_add_none ,
and
.Fn RSA_padding_check_none
first appeared in SSLeay 0.9.0 and have been available since
.Ox 2.4 .
.Pp
.Fn RSA_padding_add_PKCS1_OAEP
and
.Fn RSA_padding_check_PKCS1_OAEP
first appeared in OpenSSL 0.9.2b and have been available since
.Ox 2.6 .
.Sh BUGS
The
.Fn RSA_padding_check_PKCS1_type_2
padding check leaks timing information which can potentially be
used to mount a Bleichenbacher padding oracle attack.
This is an inherent weakness in the PKCS #1 v1.5 padding design.
Prefer PKCS1_OAEP padding.
Changes to jni/libressl/man/RSA_print.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: RSA_print.3,v 1.5 2016/12/11 12:21:48 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2002, 2003 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: RSA_print.3,v 1.7 2018/03/20 22:22:10 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2002, 2003 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 11 2016 $
.Dt RSA_PRINT 3
.Os
.Sh NAME
.Nm RSA_print ,
.Nm RSA_print_fp ,
.Nm DSAparams_print ,
.Nm DSAparams_print_fp ,







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 20 2018 $
.Dt RSA_PRINT 3
.Os
.Sh NAME
.Nm RSA_print ,
.Nm RSA_print_fp ,
.Nm DSAparams_print ,
.Nm DSAparams_print_fp ,
119
120
121
122
123
124
125



126
127
128
129
130
131
132
133
134
135
136
137
138
139


The output lines are indented by
.Fa offset
spaces.
.Sh RETURN VALUES
These functions return 1 on success or 0 on error.
.Sh SEE ALSO
.Xr BN_bn2bin 3 ,



.Xr RSA_new 3
.Sh HISTORY
.Fn RSA_print ,
.Fn RSA_print_fp ,
.Fn DSA_print ,
.Fn DSA_print_fp ,
.Fn DHparams_print ,
and
.Fn DHparams_print_fp
are available in all versions of SSLeay and OpenSSL.
.Fn DSAparams_print
and
.Fn DSAparams_print_fp
were added in SSLeay 0.8.









>
>
>









|



|
>
>
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
The output lines are indented by
.Fa offset
spaces.
.Sh RETURN VALUES
These functions return 1 on success or 0 on error.
.Sh SEE ALSO
.Xr BN_bn2bin 3 ,
.Xr DH_get0_pqg 3 ,
.Xr DSA_get0_pqg 3 ,
.Xr RSA_get0_key 3 ,
.Xr RSA_new 3
.Sh HISTORY
.Fn RSA_print ,
.Fn RSA_print_fp ,
.Fn DSA_print ,
.Fn DSA_print_fp ,
.Fn DHparams_print ,
and
.Fn DHparams_print_fp
appeared before SSLeay 0.8.
.Fn DSAparams_print
and
.Fn DSAparams_print_fp
first appeared in SSLeay 0.8.
All these functions have been available since
.Ox 2.4 .
Changes to jni/libressl/man/RSA_private_encrypt.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: RSA_private_encrypt.3,v 1.6 2017/03/25 18:14:17 schwarze Exp $
.\"	OpenSSL RSA_private_encrypt.pod b41f6b64 Mar 10 15:49:04 2017 +0000
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: RSA_private_encrypt.3,v 1.8 2018/03/21 01:27:25 schwarze Exp $
.\"	OpenSSL RSA_private_encrypt.pod b41f6b64 Mar 10 15:49:04 2017 +0000
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 25 2017 $
.Dt RSA_PRIVATE_ENCRYPT 3
.Os
.Sh NAME
.Nm RSA_private_encrypt ,
.Nm RSA_public_decrypt
.Nd low level signature operations
.Sh SYNOPSIS







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt RSA_PRIVATE_ENCRYPT 3
.Os
.Sh NAME
.Nm RSA_private_encrypt ,
.Nm RSA_public_decrypt
.Nd low level signature operations
.Sh SYNOPSIS
132
133
134
135
136
137
138

139
140
141
142






143
144
145
146
147
.Fn RSA_public_decrypt
returns the size of the recovered message digest.
.Pp
On error, -1 is returned; the error codes can be obtained by
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr ERR_get_error 3 ,

.Xr RSA_new 3 ,
.Xr RSA_sign 3 ,
.Xr RSA_verify 3
.Sh HISTORY






The
.Fa padding
argument was added in SSLeay 0.8.
.Dv RSA_NO_PADDING
is available since SSLeay 0.9.0.







>




>
>
>
>
>
>





132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
.Fn RSA_public_decrypt
returns the size of the recovered message digest.
.Pp
On error, -1 is returned; the error codes can be obtained by
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr ERR_get_error 3 ,
.Xr RSA_meth_set_priv_enc 3 ,
.Xr RSA_new 3 ,
.Xr RSA_sign 3 ,
.Xr RSA_verify 3
.Sh HISTORY
.Fn RSA_private_encrypt
and
.Fn RSA_public_decrypt
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp
The
.Fa padding
argument was added in SSLeay 0.8.
.Dv RSA_NO_PADDING
is available since SSLeay 0.9.0.
Changes to jni/libressl/man/RSA_public_encrypt.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: RSA_public_encrypt.3,v 1.8 2017/08/28 17:41:59 jsing Exp $
.\"	OpenSSL RSA_public_encrypt.pod 1e3f62a3 Jul 17 16:47:13 2017 +0200
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2004 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: RSA_public_encrypt.3,v 1.10 2018/03/21 01:27:25 schwarze Exp $
.\"	OpenSSL RSA_public_encrypt.pod 1e3f62a3 Jul 17 16:47:13 2017 +0200
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2004 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: August 28 2017 $
.Dt RSA_PUBLIC_ENCRYPT 3
.Os
.Sh NAME
.Nm RSA_public_encrypt ,
.Nm RSA_private_decrypt
.Nd RSA public key cryptography
.Sh SYNOPSIS







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt RSA_PUBLIC_ENCRYPT 3
.Os
.Sh NAME
.Nm RSA_public_encrypt ,
.Nm RSA_private_decrypt
.Nd RSA public key cryptography
.Sh SYNOPSIS
139
140
141
142
143
144
145

146
147
148
149
150






151
152
153
154
155
156
157
.Fn RSA_private_decrypt
returns the size of the recovered plaintext.
.Pp
On error, -1 is returned; the error codes can be obtained by
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr ERR_get_error 3 ,

.Xr RSA_new 3 ,
.Xr RSA_size 3
.Sh STANDARDS
SSL, PKCS #1 v2.0
.Sh HISTORY






The
.Fa padding
argument was added in SSLeay 0.8.
.Dv RSA_NO_PADDING
is available since SSLeay 0.9.0.
OAEP was added in OpenSSL 0.9.2b.
.Sh BUGS







>





>
>
>
>
>
>







139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
.Fn RSA_private_decrypt
returns the size of the recovered plaintext.
.Pp
On error, -1 is returned; the error codes can be obtained by
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr ERR_get_error 3 ,
.Xr RSA_meth_set_priv_dec 3 ,
.Xr RSA_new 3 ,
.Xr RSA_size 3
.Sh STANDARDS
SSL, PKCS #1 v2.0
.Sh HISTORY
.Fn RSA_public_encrypt
and
.Fn RSA_private_decrypt
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp
The
.Fa padding
argument was added in SSLeay 0.8.
.Dv RSA_NO_PADDING
is available since SSLeay 0.9.0.
OAEP was added in OpenSSL 0.9.2b.
.Sh BUGS
Changes to jni/libressl/man/RSA_set_method.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: RSA_set_method.3,v 1.5 2016/12/11 12:21:48 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>
.\" and Geoff Thorpe <geoff@openssl.org>.
.\" Copyright (c) 2000, 2002, 2007, 2014 The OpenSSL Project.
.\" All rights reserved.
.\"
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: RSA_set_method.3,v 1.10 2018/03/22 16:06:33 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>
.\" and Geoff Thorpe <geoff@openssl.org>.
.\" Copyright (c) 2000, 2002, 2007, 2014 The OpenSSL Project.
.\" All rights reserved.
.\"
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 11 2016 $
.Dt RSA_SET_METHOD 3
.Os
.Sh NAME
.Nm RSA_set_default_method ,
.Nm RSA_get_default_method ,
.Nm RSA_set_method ,
.Nm RSA_get_method ,
.Nm RSA_PKCS1_SSLeay ,
.Nm RSA_null_method ,
.Nm RSA_flags ,
.Nm RSA_new_method ,
.Nm RSA_get_default_openssl_method ,
.Nm RSA_set_default_openssl_method
.Nd select RSA method
.Sh SYNOPSIS
.In openssl/rsa.h
.Ft void
.Fo RSA_set_default_method
.Fa "const RSA_METHOD *meth"
.Fc







|










|
<
<







46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64


65
66
67
68
69
70
71
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt RSA_SET_METHOD 3
.Os
.Sh NAME
.Nm RSA_set_default_method ,
.Nm RSA_get_default_method ,
.Nm RSA_set_method ,
.Nm RSA_get_method ,
.Nm RSA_PKCS1_SSLeay ,
.Nm RSA_null_method ,
.Nm RSA_flags ,
.Nm RSA_new_method


.Nd select RSA method
.Sh SYNOPSIS
.In openssl/rsa.h
.Ft void
.Fo RSA_set_default_method
.Fa "const RSA_METHOD *meth"
.Fc
296
297
298
299
300
301
302

303
304


305
306
307
308





309
310
311
312
313
314
315
316
317
318
319

320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
returns
.Dv NULL
and sets an error code that can be obtained by
.Xr ERR_get_error 3
if the allocation fails.
Otherwise it returns a pointer to the newly allocated structure.
.Sh SEE ALSO

.Xr RSA_new 3
.Sh HISTORY


.Fn RSA_new_method
and
.Fn RSA_set_default_method
appeared in SSLeay 0.8.





.Fn RSA_get_default_method ,
.Fn RSA_set_method ,
and
.Fn RSA_get_method
as well as the
.Fa rsa_sign
and
.Fa rsa_verify
components of
.Vt RSA_METHOD
were added in OpenSSL 0.9.4.

.Pp
.Fn RSA_set_default_openssl_method
and
.Fn RSA_get_default_openssl_method
replaced
.Fn RSA_set_default_method
and
.Fn RSA_get_default_method
respectively, and
.Fn RSA_set_method
and
.Fn RSA_new_method
were altered to use
.Vt ENGINE Ns s
rather than
.Vt RSA_METHOD Ns s
during development of the
.Xr engine 3
version of OpenSSL 0.9.6.
For 0.9.7, the handling of defaults in the
.Xr engine 3
API was restructured so that this change was reversed, and behaviour
of the other functions resembled more closely the previous behaviour.
The behaviour of defaults in the
.Xr engine 3
API now transparently overrides the behaviour of defaults in the
RSA API without requiring changing these function prototypes.
.Sh CAVEATS
As of version 0.9.7,
.Vt RSA_METHOD
implementations are grouped together with other algorithmic APIs (e.g.\&
.Vt DSA_METHOD
or
.Vt EVP_CIPHER )







>


>
>



|
>
>
>
>
>










|
>

<
<
<
<
<
<
<
<
<
<
|
<
<
<
<
<
<
|
<
|
<
<
<
<
<
<







294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327










328






329

330






331
332
333
334
335
336
337
returns
.Dv NULL
and sets an error code that can be obtained by
.Xr ERR_get_error 3
if the allocation fails.
Otherwise it returns a pointer to the newly allocated structure.
.Sh SEE ALSO
.Xr RSA_meth_new 3 ,
.Xr RSA_new 3
.Sh HISTORY
.Fn RSA_PKCS1_SSLeay
appeared before SSLeay 0.8.
.Fn RSA_new_method
and
.Fn RSA_set_default_method
first appeared in SSLeay 0.8.
.Fn RSA_flags
first appeared in SSLeay 0.9.0.
These functions have been available since
.Ox 2.4 .
.Pp
.Fn RSA_get_default_method ,
.Fn RSA_set_method ,
and
.Fn RSA_get_method
as well as the
.Fa rsa_sign
and
.Fa rsa_verify
components of
.Vt RSA_METHOD
first appeared in OpenSSL 0.9.4 and have been available since
.Ox 2.6 .
.Pp










.Fn RSA_null_method






first appeared in OpenSSL 0.9.5 and has been available since

.Ox 2.7 .






.Sh CAVEATS
As of version 0.9.7,
.Vt RSA_METHOD
implementations are grouped together with other algorithmic APIs (e.g.\&
.Vt DSA_METHOD
or
.Vt EVP_CIPHER )
Changes to jni/libressl/man/RSA_sign.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: RSA_sign.3,v 1.4 2016/12/11 12:21:48 schwarze Exp $
.\"	OpenSSL aa90ca11 Aug 20 15:48:56 2016 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2005, 2014, 2015, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: RSA_sign.3,v 1.5 2018/03/21 01:27:25 schwarze Exp $
.\"	OpenSSL aa90ca11 Aug 20 15:48:56 2016 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000, 2005, 2014, 2015, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 11 2016 $
.Dt RSA_SIGN 3
.Os
.Sh NAME
.Nm RSA_sign ,
.Nm RSA_verify
.Nd RSA signatures
.Sh SYNOPSIS







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt RSA_SIGN 3
.Os
.Sh NAME
.Nm RSA_sign ,
.Nm RSA_verify
.Nd RSA signatures
.Sh SYNOPSIS
138
139
140
141
142
143
144
145

.Xr RSA_public_decrypt 3
.Sh STANDARDS
SSL, PKCS #1 v2.0
.Sh HISTORY
.Fn RSA_sign
and
.Fn RSA_verify
are available in all versions of SSLeay and OpenSSL.








|
>
138
139
140
141
142
143
144
145
146
.Xr RSA_public_decrypt 3
.Sh STANDARDS
SSL, PKCS #1 v2.0
.Sh HISTORY
.Fn RSA_sign
and
.Fn RSA_verify
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/RSA_sign_ASN1_OCTET_STRING.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: RSA_sign_ASN1_OCTET_STRING.3,v 1.4 2016/12/11 12:21:48 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: RSA_sign_ASN1_OCTET_STRING.3,v 1.5 2018/03/21 01:27:25 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 11 2016 $
.Dt RSA_SIGN_ASN1_OCTET_STRING 3
.Os
.Sh NAME
.Nm RSA_sign_ASN1_OCTET_STRING ,
.Nm RSA_verify_ASN1_OCTET_STRING
.Nd RSA signatures
.Sh SYNOPSIS







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt RSA_SIGN_ASN1_OCTET_STRING 3
.Os
.Sh NAME
.Nm RSA_sign_ASN1_OCTET_STRING ,
.Nm RSA_verify_ASN1_OCTET_STRING
.Nd RSA signatures
.Sh SYNOPSIS
122
123
124
125
126
127
128
129

130
131
.Xr RSA_new 3 ,
.Xr RSA_sign 3 ,
.Xr RSA_verify 3
.Sh HISTORY
.Fn RSA_sign_ASN1_OCTET_STRING
and
.Fn RSA_verify_ASN1_OCTET_STRING
were added in SSLeay 0.8.

.Sh BUGS
These functions serve no recognizable purpose.







|
>


122
123
124
125
126
127
128
129
130
131
132
.Xr RSA_new 3 ,
.Xr RSA_sign 3 ,
.Xr RSA_verify 3
.Sh HISTORY
.Fn RSA_sign_ASN1_OCTET_STRING
and
.Fn RSA_verify_ASN1_OCTET_STRING
first appeared in SSLeay 0.8 and have been available since
.Ox 2.4 .
.Sh BUGS
These functions serve no recognizable purpose.
Changes to jni/libressl/man/RSA_size.3.
1
2
3
4

5
6
7
8
9
10
11
.\"	$OpenBSD: RSA_size.3,v 1.4 2016/12/11 12:21:48 schwarze Exp $
.\"	OpenSSL 5bf73873 Aug 5 16:27:01 2002 +0000
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org>.

.\" Copyright (c) 2000, 2002, 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
|
|

|
>







1
2
3
4
5
6
7
8
9
10
11
12
.\" $OpenBSD: RSA_size.3,v 1.8 2018/03/23 23:18:17 schwarze Exp $
.\" full merge up to: OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org> and
.\" Kurt Roeckx <kurt@roeckx.be>.
.\" Copyright (c) 2000, 2002, 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
44
45
46
47
48
49
50
51
52
53
54
55

56
57
58
59
60
61
62




63

64
65
66



67
68
69
70
71
72
73
74
75


76
77
78
79





.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 11 2016 $
.Dt RSA_SIZE 3
.Os
.Sh NAME
.Nm RSA_size

.Nd get RSA modulus size
.Sh SYNOPSIS
.In openssl/rsa.h
.Ft int
.Fo RSA_size
.Fa "const RSA *rsa"
.Fc




.Sh DESCRIPTION

This function returns the RSA modulus size in bytes.
It can be used to determine how much memory must be allocated for an RSA
encrypted value.



.Pp
.Fa rsa
and
.Fa rsa->n
must not be
.Dv NULL .
.Sh RETURN VALUES
The size in bytes.
.Sh SEE ALSO


.Xr RSA_new 3
.Sh HISTORY
.Fn RSA_size
is available in all versions of SSLeay and OpenSSL.












|



|
>
|






>
>
>
>

>
|
|
|
>
>
>







|

>
>



|
>
>
>
>
>
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt RSA_SIZE 3
.Os
.Sh NAME
.Nm RSA_size ,
.Nm RSA_bits
.Nd get the RSA modulus size
.Sh SYNOPSIS
.In openssl/rsa.h
.Ft int
.Fo RSA_size
.Fa "const RSA *rsa"
.Fc
.Ft int
.Fo RSA_bits
.Fa "const RSA *rsa"
.Fc
.Sh DESCRIPTION
.Fn RSA_size
returns the RSA modulus size in bytes.
It can be used to determine how much memory must be allocated for
an RSA encrypted value.
.Pp
.Fn RSA_bits
returns the number of significant bits.
.Pp
.Fa rsa
and
.Fa rsa->n
must not be
.Dv NULL .
.Sh RETURN VALUES
The size.
.Sh SEE ALSO
.Xr BN_num_bits 3 ,
.Xr RSA_get0_key 3 ,
.Xr RSA_new 3
.Sh HISTORY
.Fn RSA_size
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
.Pp
.Fn RSA_bits
first appeared in OpenSSL 1.1.0 and has been available since
.Ox 6.3 .
Changes to jni/libressl/man/SHA1.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SHA1.3,v 1.4 2016/12/02 19:28:41 jmc Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org> and
.\" Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2000, 2006, 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SHA1.3,v 1.6 2018/03/23 00:09:11 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org> and
.\" Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2000, 2006, 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 2 2016 $
.Dt SHA1 3
.Os
.Sh NAME
.Nm SHA1 ,
.Nm SHA1_Init ,
.Nm SHA1_Update ,
.Nm SHA1_Final ,







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt SHA1 3
.Os
.Sh NAME
.Nm SHA1 ,
.Nm SHA1_Init ,
.Nm SHA1_Update ,
.Nm SHA1_Final ,
264
265
266
267
268
269
270




271

PUB 180-1 (Secure Hash Standard), ANSI X9.30
.Sh HISTORY
.Fn SHA1 ,
.Fn SHA1_Init ,
.Fn SHA1_Update ,
and
.Fn SHA1_Final




are available in all versions of SSLeay and OpenSSL.








>
>
>
>
|
>
264
265
266
267
268
269
270
271
272
273
274
275
276
PUB 180-1 (Secure Hash Standard), ANSI X9.30
.Sh HISTORY
.Fn SHA1 ,
.Fn SHA1_Init ,
.Fn SHA1_Update ,
and
.Fn SHA1_Final
appeared in SSLeay 0.8.1b or earlier and have been available since
.Ox 2.4 .
.Pp
The other functions first appeared in OpenSSL 0.9.8
and have been available since
.Ox 4.5 .
Changes to jni/libressl/man/SMIME_read_PKCS7.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SMIME_read_PKCS7.3,v 1.5 2017/01/06 02:37:05 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2002, 2006 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SMIME_read_PKCS7.3,v 1.6 2018/03/22 16:06:33 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2002, 2006 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: January 6 2017 $
.Dt SMIME_READ_PKCS7 3
.Os
.Sh NAME
.Nm SMIME_read_PKCS7
.Nd parse S/MIME message
.Sh SYNOPSIS
.In openssl/pkcs7.h







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt SMIME_READ_PKCS7 3
.Os
.Sh NAME
.Nm SMIME_read_PKCS7
.Nd parse S/MIME message
.Sh SYNOPSIS
.In openssl/pkcs7.h
125
126
127
128
129
130
131
132

133
134
135
136
137
138
139
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr ERR_get_error 3 ,
.Xr PKCS7_new 3 ,
.Xr SMIME_write_PKCS7 3
.Sh HISTORY
.Fn SMIME_read_PKCS7
was added to OpenSSL 0.9.5.

.Sh BUGS
The MIME parser used by
.Fn SMIME_read_PKCS7
is somewhat primitive.
While it will handle most S/MIME messages, more complex compound
formats may not work.
.Pp







|
>







125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr ERR_get_error 3 ,
.Xr PKCS7_new 3 ,
.Xr SMIME_write_PKCS7 3
.Sh HISTORY
.Fn SMIME_read_PKCS7
first appeared in OpenSSL 0.9.5 and has been available since
.Ox 2.7 .
.Sh BUGS
The MIME parser used by
.Fn SMIME_read_PKCS7
is somewhat primitive.
While it will handle most S/MIME messages, more complex compound
formats may not work.
.Pp
Changes to jni/libressl/man/SMIME_write_PKCS7.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SMIME_write_PKCS7.3,v 1.4 2016/12/13 15:00:22 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2002, 2003, 2006, 2007, 2015 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SMIME_write_PKCS7.3,v 1.5 2018/03/22 16:06:33 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2002, 2003, 2006, 2007, 2015 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 13 2016 $
.Dt SMIME_WRITE_PKCS7 3
.Os
.Sh NAME
.Nm SMIME_write_PKCS7
.Nd convert PKCS#7 structure to S/MIME format
.Sh SYNOPSIS
.In openssl/pkcs7.h







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt SMIME_WRITE_PKCS7 3
.Os
.Sh NAME
.Nm SMIME_write_PKCS7
.Nd convert PKCS#7 structure to S/MIME format
.Sh SYNOPSIS
.In openssl/pkcs7.h
133
134
135
136
137
138
139
140

141
142
143
144
.Xr ERR_get_error 3 ,
.Xr i2d_PKCS7_bio_stream 3 ,
.Xr PEM_write_PKCS7 3 ,
.Xr PKCS7_new 3 ,
.Xr SMIME_read_PKCS7 3
.Sh HISTORY
.Fn SMIME_write_PKCS7
was added to OpenSSL 0.9.5.

.Sh BUGS
.Fn SMIME_write_PKCS7
always base64 encodes PKCS#7 structures.
There should be an option to disable this.







|
>




133
134
135
136
137
138
139
140
141
142
143
144
145
.Xr ERR_get_error 3 ,
.Xr i2d_PKCS7_bio_stream 3 ,
.Xr PEM_write_PKCS7 3 ,
.Xr PKCS7_new 3 ,
.Xr SMIME_read_PKCS7 3
.Sh HISTORY
.Fn SMIME_write_PKCS7
first appeared in OpenSSL 0.9.5 and has been available since
.Ox 2.7 .
.Sh BUGS
.Fn SMIME_write_PKCS7
always base64 encodes PKCS#7 structures.
There should be an option to disable this.
Changes to jni/libressl/man/SSL_CIPHER_get_name.3.
1
2

3
4


5
6
7
8
9
10
11
12
13
.\"	$OpenBSD: SSL_CIPHER_get_name.3,v 1.3 2017/07/05 11:43:09 schwarze Exp $
.\"	OpenSSL 45f55f6a Nov 30 15:35:22 2014 +0100

.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.


.\" Copyright (c) 2000, 2001, 2005, 2009, 2013, 2014 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
|
|
>

|
>
>
|
|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
.\" $OpenBSD: SSL_CIPHER_get_name.3,v 1.8 2018/03/24 00:55:37 schwarze Exp $
.\" full merge up to: OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\" selective merge up to: OpenSSL 61f805c1 Jan 16 01:01:46 2018 +0800
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>,
.\" Dr. Stephen Henson <steve@openssl.org>, Todd Short <tshort@akamai.com>,
.\" and Paul Yang <yang.yang@baishancloud.com>.
.\" Copyright (c) 2000, 2005, 2009, 2013, 2014, 2015, 2016, 2017
.\" The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
45
46
47
48
49
50
51
52
53
54
55
56
57
58






59
60
61
62
63
64
65
66
67
68












69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106





107




108



109





110






111





112




113

















114
115


116
117
118




119

120
121
122
123
124
125
126
127
128
129
130

131


132
133
134
135
136
137


138
139
140
141
142
143
144
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: July 5 2017 $
.Dt SSL_CIPHER_GET_NAME 3
.Os
.Sh NAME
.Nm SSL_CIPHER_get_name ,
.Nm SSL_CIPHER_get_bits ,
.Nm SSL_CIPHER_get_version ,






.Nm SSL_CIPHER_description
.Nd get SSL_CIPHER properties
.Sh SYNOPSIS
.In openssl/ssl.h
.Ft const char *
.Fn SSL_CIPHER_get_name "const SSL_CIPHER *cipher"
.Ft int
.Fn SSL_CIPHER_get_bits "const SSL_CIPHER *cipher" "int *alg_bits"
.Ft char *
.Fn SSL_CIPHER_get_version "const SSL_CIPHER *cipher"












.Ft char *
.Fn SSL_CIPHER_description "const SSL_CIPHER *cipher" "char *buf" "int size"
.Sh DESCRIPTION
.Fn SSL_CIPHER_get_name
returns a pointer to the name of
.Fa cipher .
If the
.Fa cipher
is
.Dv NULL ,
it returns
.Qq (NONE) .
.Pp
.Fn SSL_CIPHER_get_bits
returns the number of secret bits used for
.Fa cipher .
If
.Fa alg_bits
is not
.Dv NULL ,
it contains the number of bits processed by the
chosen algorithm.
If
.Fa cipher
is
.Dv NULL ,
0 is returned.
.Pp
.Fn SSL_CIPHER_get_version
returns a string which indicates the SSL/TLS protocol version that first
defined the cipher.
This is currently
.Qq TLSv1/SSLv3 .
In some cases it should possibly return
.Qq TLSv1.2
but the function does not; use
.Fn SSL_CIPHER_description
instead.





If




.Fa cipher



is





.Dv NULL ,






.Qq (NONE)





is returned.




.Pp

















.Fn SSL_CIPHER_description
returns a textual description of the cipher used into the buffer


.Fa buf
of length
.Fa len




provided.

If
.Fa buf
is
.Dv NULL ,
a buffer is allocated using
.Xr asprintf 3 ;
that buffer should be freed using the
.Xr free 3
function.
If
.Fa len

is too small, or if


.Fa buf
is
.Dv NULL
and the allocation fails, a pointer to the string
.Qq Buffer too small
is returned.


.Pp
The string returned by
.Fn SSL_CIPHER_description
consists of several fields separated by whitespace:
.Bl -tag -width Ds
.It Aq Ar ciphername
Textual representation of the cipher name.







|






>
>
>
>
>
>










>
>
>
>
>
>
>
>
>
>
>
>






<
<
<
<
<
<








|
<
<
<
<
<
<











>
>
>
>
>
|
>
>
>
>

>
>
>
|
>
>
>
>
>
|
>
>
>
>
>
>
|
>
>
>
>
>

>
>
>
>

>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

|
>
>
|
|
|
>
>
>
>
|
>











>
|
>
>

<
<
|
|
|
>
>







48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95






96
97
98
99
100
101
102
103
104






105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200


201
202
203
204
205
206
207
208
209
210
211
212
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 24 2018 $
.Dt SSL_CIPHER_GET_NAME 3
.Os
.Sh NAME
.Nm SSL_CIPHER_get_name ,
.Nm SSL_CIPHER_get_bits ,
.Nm SSL_CIPHER_get_version ,
.Nm SSL_CIPHER_get_cipher_nid ,
.Nm SSL_CIPHER_get_digest_nid ,
.Nm SSL_CIPHER_get_kx_nid ,
.Nm SSL_CIPHER_get_auth_nid ,
.Nm SSL_CIPHER_is_aead ,
.Nm SSL_CIPHER_get_id ,
.Nm SSL_CIPHER_description
.Nd get SSL_CIPHER properties
.Sh SYNOPSIS
.In openssl/ssl.h
.Ft const char *
.Fn SSL_CIPHER_get_name "const SSL_CIPHER *cipher"
.Ft int
.Fn SSL_CIPHER_get_bits "const SSL_CIPHER *cipher" "int *alg_bits"
.Ft char *
.Fn SSL_CIPHER_get_version "const SSL_CIPHER *cipher"
.Ft int
.Fn SSL_CIPHER_get_cipher_nid "const SSL_CIPHER *cipher"
.Ft int
.Fn SSL_CIPHER_get_digest_nid "const SSL_CIPHER *cipher"
.Ft int
.Fn SSL_CIPHER_get_kx_nid "const SSL_CIPHER *cipher"
.Ft int
.Fn SSL_CIPHER_get_auth_nid "const SSL_CIPHER *cipher"
.Ft int
.Fn SSL_CIPHER_is_aead "const SSL_CIPHER *cipher"
.Ft unsigned long
.Fn SSL_CIPHER_get_id "const SSL_CIPHER *cipher"
.Ft char *
.Fn SSL_CIPHER_description "const SSL_CIPHER *cipher" "char *buf" "int size"
.Sh DESCRIPTION
.Fn SSL_CIPHER_get_name
returns a pointer to the name of
.Fa cipher .






.Pp
.Fn SSL_CIPHER_get_bits
returns the number of secret bits used for
.Fa cipher .
If
.Fa alg_bits
is not
.Dv NULL ,
the number of bits processed by the chosen algorithm is stored into it.






.Pp
.Fn SSL_CIPHER_get_version
returns a string which indicates the SSL/TLS protocol version that first
defined the cipher.
This is currently
.Qq TLSv1/SSLv3 .
In some cases it should possibly return
.Qq TLSv1.2
but the function does not; use
.Fn SSL_CIPHER_description
instead.
.Pp
.Fn SSL_CIPHER_get_cipher_nid
returns the cipher NID corresponding to the
.Fa cipher .
If there is no cipher (e.g. for cipher suites with no encryption), then
.Dv NID_undef
is returned.
.Pp
.Fn SSL_CIPHER_get_digest_nid
returns the digest NID corresponding to the MAC used by the
.Fa cipher
during record encryption/decryption.
If there is no digest (e.g. for AEAD cipher suites), then
.Dv NID_undef
is returned.
.Pp
.Fn SSL_CIPHER_get_kx_nid
returns the key exchange NID corresponding to the method used by the
.Fa cipher .
If there is no key exchange, then
.Dv NID_undef
is returned.
Examples of possible return values include
.Dv NID_kx_rsa ,
.Dv NID_kx_dhe ,
and
.Dv NID_kx_ecdhe .
.Pp
.Fn SSL_CIPHER_get_auth_nid
returns the authentication NID corresponding to the method used by the
.Fa cipher .
If there is no authentication,
.Dv NID_undef
is returned.
Examples of possible return values include
.Dv NID_auth_rsa
and
.Dv NID_auth_ecdsa .
.Pp
.Fn SSL_CIPHER_is_aead
returns 1 if the
.Fa cipher
is AEAD (e.g. GCM or ChaCha20/Poly1305), or 0 if it is not AEAD.
.Pp
.Fn SSL_CIPHER_get_id
returns the ID of the given
.Fa cipher ,
which must not be
.Dv NULL .
The ID here is an OpenSSL-specific concept, which stores a prefix
of 0x0300 in the higher two bytes and the IANA-specified chipher
suite ID in the lower two bytes.
For instance, TLS_RSA_WITH_NULL_MD5 has IANA ID "0x00, 0x01", so
.Fn SSL_CIPHER_get_id
returns 0x03000001.
.Pp
.Fn SSL_CIPHER_description
copies a textual description of
.Fa cipher
into the buffer
.Fa buf ,
which must be at least
.Fa size
bytes long.
The
.Fa cipher
argument must not be a
.Dv NULL
pointer.
If
.Fa buf
is
.Dv NULL ,
a buffer is allocated using
.Xr asprintf 3 ;
that buffer should be freed using the
.Xr free 3
function.
If
.Fa len
is too small to hold the description, a pointer to the static string
.Qq Buffer too small
is returned.
If memory allocation fails, which can happen even if a
.Fa buf


of sufficient size is provided, a pointer to the static string
.Qq OPENSSL_malloc Error
is returned and the content of
.Fa buf
remains unchanged.
.Pp
The string returned by
.Fn SSL_CIPHER_description
consists of several fields separated by whitespace:
.Bl -tag -width Ds
.It Aq Ar ciphername
Textual representation of the cipher name.
192
193
194
195
196
197
198










































199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219



220
221



222









223
224
225
226
227
228
.Sy SHA384 ,
.Sy AEAD ,
.Sy GOST94 ,
.Sy GOST89IMIT ,
.Sy STREEBOG256 ,
.Sy STREEBOG512 .
.El










































.Sh EXAMPLES
An example for the output of
.Fn SSL_CIPHER_description :
.Bd -literal
ECDHE-RSA-AES256-GCM-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(256) Mac=AEAD
.Ed
.Pp
A complete list can be retrieved by invoking the following command:
.Pp
.Dl $ openssl ciphers -v ALL
.Sh SEE ALSO
.Xr openssl 1 ,
.Xr ssl 3 ,
.Xr SSL_get_ciphers 3 ,
.Xr SSL_get_current_cipher 3
.Sh BUGS
If
.Fn SSL_CIPHER_description
is called with
.Fa cipher
being



.Dv NULL ,
the library crashes.



.Pp









If
.Fn SSL_CIPHER_description
cannot handle a built-in cipher,
the according description of the cipher property is
.Qq unknown .
This case should not occur.







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>















|
<
|
|
|
|
>
>
>
|
<
>
>
>

>
>
>
>
>
>
>
>
>






260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324

325
326
327
328
329
330
331
332

333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
.Sy SHA384 ,
.Sy AEAD ,
.Sy GOST94 ,
.Sy GOST89IMIT ,
.Sy STREEBOG256 ,
.Sy STREEBOG512 .
.El
.Sh RETURN VALUES
.Fn SSL_CIPHER_get_name
returns an internal pointer to a NUL-terminated string.
.Fn SSL_CIPHER_get_version
returns a pointer to a static NUL-terminated string.
If
.Fa cipher
is a
.Dv NULL
pointer, both functions return a pointer to the static string
.Qq Pq NONE .
.Pp
.Fn SSL_CIPHER_get_bits
returns a positive integer representing the number of secret bits
or 0 if
.Fa cipher
is a
.Dv NULL
pointer.
.Pp
.Fn SSL_CIPHER_get_cipher_nid ,
.Fn SSL_CIPHER_get_digest_nid ,
.Fn SSL_CIPHER_get_kx_nid ,
and
.Fn SSL_CIPHER_get_auth_nid
return an NID constant or
.Dv NID_undef
if an error occurred.
.Pp
.Fn SSL_CIPHER_is_aead
returns 1 if the
.Fa cipher
is AEAD or 0 otherwise.
.Pp
.Fn SSL_CIPHER_get_id
returns a 32-bit unsigned integer.
.Pp
.Fn SSL_CIPHER_description
returns
.Fa buf
or a newly allocated string on success or a pointer to a static
string on error.
.Sh EXAMPLES
An example for the output of
.Fn SSL_CIPHER_description :
.Bd -literal
ECDHE-RSA-AES256-GCM-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(256) Mac=AEAD
.Ed
.Pp
A complete list can be retrieved by invoking the following command:
.Pp
.Dl $ openssl ciphers -v ALL
.Sh SEE ALSO
.Xr openssl 1 ,
.Xr ssl 3 ,
.Xr SSL_get_ciphers 3 ,
.Xr SSL_get_current_cipher 3
.Sh HISTORY

.Fn SSL_CIPHER_get_name ,
.Fn SSL_CIPHER_get_bits ,
.Fn SSL_CIPHER_get_version ,
and
.Fn SSL_CIPHER_description
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp

.Fn SSL_CIPHER_get_id
first appeared in OpenSSL 1.0.1 and has been available since
.Ox 5.3 .
.Pp
.Fn SSL_CIPHER_get_cipher_nid ,
.Fn SSL_CIPHER_get_digest_nid ,
.Fn SSL_CIPHER_get_kx_nid ,
.Fn SSL_CIPHER_get_auth_nid ,
and
.Fn SSL_CIPHER_is_aead
first appeared in OpenSSL 1.1.0 and have been available since
.Ox 6.3 .
.Sh BUGS
If
.Fn SSL_CIPHER_description
cannot handle a built-in cipher,
the according description of the cipher property is
.Qq unknown .
This case should not occur.
Changes to jni/libressl/man/SSL_COMP_add_compression_method.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: SSL_COMP_add_compression_method.3,v 1.2 2016/11/29 19:52:17 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: November 29 2016 $
.Dt SSL_COMP_ADD_COMPRESSION_METHOD 3
.Os
.Sh NAME
.Nm SSL_COMP_add_compression_method ,
.Nm SSL_COMP_get_compression_methods
.Nd handle SSL/TLS integrated compression methods
.Sh SYNOPSIS
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: SSL_COMP_add_compression_method.3,v 1.4 2018/03/23 00:10:28 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt SSL_COMP_ADD_COMPRESSION_METHOD 3
.Os
.Sh NAME
.Nm SSL_COMP_add_compression_method ,
.Nm SSL_COMP_get_compression_methods
.Nd handle SSL/TLS integrated compression methods
.Sh SYNOPSIS
42
43
44
45
46
47
48








used to return a stack of available compression methods.
.Sh RETURN VALUES
.Fn SSL_COMP_add_compression_method
always returns 1.
.Fn SSL_COMP_get_compression_methods
always returns
.Dv NULL .















>
>
>
>
>
>
>
>
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
used to return a stack of available compression methods.
.Sh RETURN VALUES
.Fn SSL_COMP_add_compression_method
always returns 1.
.Fn SSL_COMP_get_compression_methods
always returns
.Dv NULL .
.Sh HISTORY
.Fn SSL_COMP_add_compression_method
first appeared in OpenSSL 0.9.2b and has been available since
.Ox 2.6 .
.Pp
.Fn SSL_COMP_get_compression_methods
first appeared in OpenSSL 0.9.8 and has been available since
.Ox 4.5 .
Changes to jni/libressl/man/SSL_CTX_add_extra_chain_cert.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_add_extra_chain_cert.3,v 1.3 2017/04/10 14:00:51 schwarze Exp $
.\"	OpenSSL f0d6ee6be Feb 15 07:41:42 2002 +0000
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org> and
.\" Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2002, 2013, 2015 The OpenSSL Project.
.\" All rights reserved.
.\"
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_add_extra_chain_cert.3,v 1.5 2018/03/23 05:50:30 schwarze Exp $
.\"	OpenSSL f0d6ee6be Feb 15 07:41:42 2002 +0000
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org> and
.\" Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2002, 2013, 2015 The OpenSSL Project.
.\" All rights reserved.
.\"
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: April 10 2017 $
.Dt SSL_CTX_ADD_EXTRA_CHAIN_CERT 3
.Os
.Sh NAME
.Nm SSL_CTX_add_extra_chain_cert ,
.Nm SSL_CTX_clear_extra_chain_certs
.Nd add or clear extra chain certificates
.Sh SYNOPSIS







|







46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt SSL_CTX_ADD_EXTRA_CHAIN_CERT 3
.Os
.Sh NAME
.Nm SSL_CTX_add_extra_chain_cert ,
.Nm SSL_CTX_clear_extra_chain_certs
.Nd add or clear extra chain certificates
.Sh SYNOPSIS
99
100
101
102
103
104
105








106
107
108
109
110
111
112
113
114
return 1 on success or 0 for failure.
Check out the error stack to find out the reason for failure.
.Sh SEE ALSO
.Xr SSL_CTX_ctrl 3 ,
.Xr SSL_CTX_load_verify_locations 3 ,
.Xr SSL_CTX_set_client_cert_cb 3 ,
.Xr SSL_CTX_use_certificate 3








.Sh CAVEATS
Only one set of extra chain certificates can be specified per
.Vt SSL_CTX
structure.
Different chains for different certificates (for example if both
RSA and DSA certificates are specified by the same server) or
different SSL structures with the same parent
.Vt SSL_CTX
cannot be specified using this function.







>
>
>
>
>
>
>
>









99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
return 1 on success or 0 for failure.
Check out the error stack to find out the reason for failure.
.Sh SEE ALSO
.Xr SSL_CTX_ctrl 3 ,
.Xr SSL_CTX_load_verify_locations 3 ,
.Xr SSL_CTX_set_client_cert_cb 3 ,
.Xr SSL_CTX_use_certificate 3
.Sh HISTORY
.Fn SSL_CTX_add_extra_chain_cert
first appeared in SSLeay 0.9.1 and has been available since
.Ox 2.6 .
.Pp
.Fn SSL_CTX_clear_extra_chain_certs
first appeared in OpenSSL 1.0.1 and has been available since
.Ox 5.3 .
.Sh CAVEATS
Only one set of extra chain certificates can be specified per
.Vt SSL_CTX
structure.
Different chains for different certificates (for example if both
RSA and DSA certificates are specified by the same server) or
different SSL structures with the same parent
.Vt SSL_CTX
cannot be specified using this function.
Changes to jni/libressl/man/SSL_CTX_add_session.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_add_session.3,v 1.3 2017/08/21 07:35:30 schwarze Exp $
.\"	OpenSSL SSL_CTX_add_session.pod 1722496f Jun 8 15:18:38 2017 -0400
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org> and
.\" Geoff Thorpe <geoff@openssl.org>.
.\" Copyright (c) 2001, 2002, 2014 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_add_session.3,v 1.4 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL SSL_CTX_add_session.pod 1722496f Jun 8 15:18:38 2017 -0400
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org> and
.\" Geoff Thorpe <geoff@openssl.org>.
.\" Copyright (c) 2001, 2002, 2014 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: August 21 2017 $
.Dt SSL_CTX_ADD_SESSION 3
.Os
.Sh NAME
.Nm SSL_CTX_add_session ,
.Nm SSL_CTX_remove_session
.Nd manipulate session cache
.Sh SYNOPSIS







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_CTX_ADD_SESSION 3
.Os
.Sh NAME
.Nm SSL_CTX_add_session ,
.Nm SSL_CTX_remove_session
.Nd manipulate session cache
.Sh SYNOPSIS
120
121
122
123
124
125
126






.It 1
The operation succeeded.
.El
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_set_session_cache_mode 3 ,
.Xr SSL_SESSION_free 3













>
>
>
>
>
>
120
121
122
123
124
125
126
127
128
129
130
131
132
.It 1
The operation succeeded.
.El
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_set_session_cache_mode 3 ,
.Xr SSL_SESSION_free 3
.Sh HISTORY
.Fn SSL_CTX_add_session
and
.Fn SSL_CTX_remove_session
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_CTX_ctrl.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_ctrl.3,v 1.4 2017/04/10 15:54:46 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_ctrl.3,v 1.6 2018/03/22 16:07:53 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: April 10 2017 $
.Dt SSL_CTX_CTRL 3
.Os
.Sh NAME
.Nm SSL_CTX_ctrl ,
.Nm SSL_CTX_callback_ctrl ,
.Nm SSL_ctrl ,
.Nm SSL_callback_ctrl







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt SSL_CTX_CTRL 3
.Os
.Sh NAME
.Nm SSL_CTX_ctrl ,
.Nm SSL_CTX_callback_ctrl ,
.Nm SSL_ctrl ,
.Nm SSL_callback_ctrl
104
105
106
107
108
109
110












.Xr SSL_CTX_set_tlsext_servername_callback 3 ,
.Xr SSL_CTX_set_tlsext_status_cb 3 ,
.Xr SSL_CTX_set_tlsext_ticket_key_cb 3 ,
.Xr SSL_get_server_tmp_key 3 ,
.Xr SSL_num_renegotiations 3 ,
.Xr SSL_session_reused 3 ,
.Xr SSL_set_max_send_fragment 3



















>
>
>
>
>
>
>
>
>
>
>
>
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
.Xr SSL_CTX_set_tlsext_servername_callback 3 ,
.Xr SSL_CTX_set_tlsext_status_cb 3 ,
.Xr SSL_CTX_set_tlsext_ticket_key_cb 3 ,
.Xr SSL_get_server_tmp_key 3 ,
.Xr SSL_num_renegotiations 3 ,
.Xr SSL_session_reused 3 ,
.Xr SSL_set_max_send_fragment 3
.Sh HISTORY
.Fn SSL_CTX_ctrl
and
.Fn SSL_ctrl
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp
.Fn SSL_CTX_callback_ctrl
and
.Fn SSL_callback_ctrl
first appeared in OpenSSL 0.9.5 and have been available since
.Ox 2.7 .
Changes to jni/libressl/man/SSL_CTX_flush_sessions.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_flush_sessions.3,v 1.3 2017/08/21 07:45:09 schwarze Exp $
.\"	OpenSSL SSL_CTX_flush_sessions.pod 1722496f Jun 8 15:18:38 2017 -0400
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_flush_sessions.3,v 1.4 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL SSL_CTX_flush_sessions.pod 1722496f Jun 8 15:18:38 2017 -0400
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: August 21 2017 $
.Dt SSL_CTX_FLUSH_SESSIONS 3
.Os
.Sh NAME
.Nm SSL_CTX_flush_sessions
.Nd remove expired sessions
.Sh SYNOPSIS
.In openssl/ssl.h







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_CTX_FLUSH_SESSIONS 3
.Os
.Sh NAME
.Nm SSL_CTX_flush_sessions
.Nd remove expired sessions
.Sh SYNOPSIS
.In openssl/ssl.h
90
91
92
93
94
95
96




is however called to synchronize with the external cache (see
.Xr SSL_CTX_sess_set_get_cb 3 ) .
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_sess_set_get_cb 3 ,
.Xr SSL_CTX_set_session_cache_mode 3 ,
.Xr SSL_CTX_set_timeout 3











>
>
>
>
90
91
92
93
94
95
96
97
98
99
100
is however called to synchronize with the external cache (see
.Xr SSL_CTX_sess_set_get_cb 3 ) .
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_sess_set_get_cb 3 ,
.Xr SSL_CTX_set_session_cache_mode 3 ,
.Xr SSL_CTX_set_timeout 3
.Sh HISTORY
.Fn SSL_CTX_flush_sessions
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_CTX_free.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_free.3,v 1.2 2016/11/30 13:20:45 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2001, 2003 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_free.3,v 1.3 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2001, 2003 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 30 2016 $
.Dt SSL_CTX_FREE 3
.Os
.Sh NAME
.Nm SSL_CTX_free
.Nd free an allocated SSL_CTX object
.Sh SYNOPSIS
.In openssl/ssl.h







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_CTX_FREE 3
.Os
.Sh NAME
.Nm SSL_CTX_free
.Nd free an allocated SSL_CTX object
.Sh SYNOPSIS
.In openssl/ssl.h
91
92
93
94
95
96
97




.Fn SSL_CTX_sess_set_remove_cb ctx NULL
prior to calling
.Fn SSL_CTX_free .
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_new 3 ,
.Xr SSL_CTX_sess_set_get_cb 3











>
>
>
>
91
92
93
94
95
96
97
98
99
100
101
.Fn SSL_CTX_sess_set_remove_cb ctx NULL
prior to calling
.Fn SSL_CTX_free .
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_new 3 ,
.Xr SSL_CTX_sess_set_get_cb 3
.Sh HISTORY
.Fn SSL_CTX_free
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
Added jni/libressl/man/SSL_CTX_get0_certificate.3.




































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
.\" $OpenBSD: SSL_CTX_get0_certificate.3,v 1.2 2018/03/23 14:28:16 schwarze Exp $
.\"
.\" Copyright (c) 2018 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt SSL_CTX_GET0_CERTIFICATE 3
.Os
.Sh NAME
.Nm SSL_CTX_get0_certificate
.Nd get the active certificate from an SSL context
.Sh SYNOPSIS
.Ft X509 *
.Fo SSL_CTX_get0_certificate
.Fa "const SSL_CTX *ctx"
.Fc
.Sh DESCRIPTION
The
.Fn SSL_CTX_get0_certificate
function returns an internal pointer
to the ASN.1 certificate currently active in
.Fa ctx
or
.Dv NULL
if none was installed with
.Xr SSL_CTX_use_certificate 3
or similar functions.
.Pp
The returned pointer must not be freed by the caller.
.Sh SEE ALSO
.Xr SSL_CTX_new 3 ,
.Xr SSL_CTX_use_certificate 3 ,
.Xr X509_get_pubkey 3 ,
.Xr X509_get_subject_name 3 ,
.Xr X509_new 3
.Sh HISTORY
.Fn SSL_CTX_get0_certificate
first appeared in OpenSSL 1.0.2 and have been available since
.Ox 6.3 .
Changes to jni/libressl/man/SSL_CTX_get_ex_new_index.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_get_ex_new_index.3,v 1.2 2016/12/06 22:41:16 schwarze Exp $
.\"	OpenSSL 9b86974e Aug 17 15:21:33 2015 -0400
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2005 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_get_ex_new_index.3,v 1.3 2018/03/21 08:06:34 schwarze Exp $
.\"	OpenSSL 9b86974e Aug 17 15:21:33 2015 -0400
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2005 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 6 2016 $
.Dt SSL_CTX_GET_EX_NEW_INDEX 3
.Os
.Sh NAME
.Nm SSL_CTX_get_ex_new_index ,
.Nm SSL_CTX_set_ex_data ,
.Nm SSL_CTX_get_ex_data
.Nd internal application specific data functions







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_CTX_GET_EX_NEW_INDEX 3
.Os
.Sh NAME
.Nm SSL_CTX_get_ex_new_index ,
.Nm SSL_CTX_set_ex_data ,
.Nm SSL_CTX_get_ex_data
.Nd internal application specific data functions
111
112
113
114
115
116
117







.Fn *_set_ex_data
functionality is described in
.Xr CRYPTO_set_ex_data 3 .
.Sh SEE ALSO
.Xr CRYPTO_set_ex_data 3 ,
.Xr RSA_get_ex_new_index 3 ,
.Xr ssl 3














>
>
>
>
>
>
>
111
112
113
114
115
116
117
118
119
120
121
122
123
124
.Fn *_set_ex_data
functionality is described in
.Xr CRYPTO_set_ex_data 3 .
.Sh SEE ALSO
.Xr CRYPTO_set_ex_data 3 ,
.Xr RSA_get_ex_new_index 3 ,
.Xr ssl 3
.Sh HISTORY
.Fn SSL_CTX_get_ex_new_index ,
.Fn SSL_CTX_set_ex_data ,
and
.Fn SSL_CTX_get_ex_data
first appeared in SSLeay 0.9.0 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_CTX_get_verify_mode.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_get_verify_mode.3,v 1.2 2016/11/30 13:46:26 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2005 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_get_verify_mode.3,v 1.4 2018/03/21 17:58:58 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2005 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 30 2016 $
.Dt SSL_CTX_GET_VERIFY_MODE 3
.Os
.Sh NAME
.Nm SSL_CTX_get_verify_mode ,
.Nm SSL_get_verify_mode ,
.Nm SSL_CTX_get_verify_depth ,
.Nm SSL_get_verify_depth ,







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_CTX_GET_VERIFY_MODE 3
.Os
.Sh NAME
.Nm SSL_CTX_get_verify_mode ,
.Nm SSL_get_verify_mode ,
.Nm SSL_CTX_get_verify_depth ,
.Nm SSL_get_verify_depth ,
111
112
113
114
115
116
117














.Fa ssl .
If no callback was explicitly set, the
.Dv NULL
pointer is returned and the default callback will be used.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_set_verify 3





















>
>
>
>
>
>
>
>
>
>
>
>
>
>
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
.Fa ssl .
If no callback was explicitly set, the
.Dv NULL
pointer is returned and the default callback will be used.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_set_verify 3
.Sh HISTORY
.Fn SSL_CTX_get_verify_mode ,
.Fn SSL_get_verify_mode ,
.Fn SSL_get_verify_callback ,
and
.Fn SSL_CTX_get_verify_callback
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp
.Fn SSL_CTX_get_verify_depth
and
.Fn SSL_get_verify_depth
first appeared in OpenSSL 0.9.3 and have been available since
.Ox 2.6 .
Changes to jni/libressl/man/SSL_CTX_load_verify_locations.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_load_verify_locations.3,v 1.2 2016/11/30 14:16:38 schwarze Exp $
.\"	OpenSSL 9b86974e Aug 17 15:21:33 2015 -0400
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2001, 2015, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_load_verify_locations.3,v 1.3 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL 9b86974e Aug 17 15:21:33 2015 -0400
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2001, 2015, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 30 2016 $
.Dt SSL_CTX_LOAD_VERIFY_LOCATIONS 3
.Os
.Sh NAME
.Nm SSL_CTX_load_verify_locations ,
.Nm SSL_CTX_set_default_verify_paths
.Nd set default locations for trusted CA certificates
.Sh SYNOPSIS







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_CTX_LOAD_VERIFY_LOCATIONS 3
.Os
.Sh NAME
.Nm SSL_CTX_load_verify_locations ,
.Nm SSL_CTX_set_default_verify_paths
.Nd set default locations for trusted CA certificates
.Sh SYNOPSIS
217
218
219
220
221
222
223






224
225
226
227
228
229
230
231
232
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_add_extra_chain_cert 3 ,
.Xr SSL_CTX_set_cert_store 3 ,
.Xr SSL_CTX_set_client_CA_list 3 ,
.Xr SSL_CTX_use_certificate 3 ,
.Xr SSL_get_client_CA_list 3






.Sh CAVEATS
If several CA certificates matching the name, key identifier, and serial
number condition are available, only the first one will be examined.
This may lead to unexpected results if the same CA certificate is available
with different expiration dates.
If a
.Dq certificate expired
verification error occurs, no other certificate will be searched.
Make sure to not have expired certificates mixed with valid ones.







>
>
>
>
>
>









217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_add_extra_chain_cert 3 ,
.Xr SSL_CTX_set_cert_store 3 ,
.Xr SSL_CTX_set_client_CA_list 3 ,
.Xr SSL_CTX_use_certificate 3 ,
.Xr SSL_get_client_CA_list 3
.Sh HISTORY
.Fn SSL_CTX_load_verify_locations
and
.Fn SSL_CTX_set_default_verify_paths
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Sh CAVEATS
If several CA certificates matching the name, key identifier, and serial
number condition are available, only the first one will be examined.
This may lead to unexpected results if the same CA certificate is available
with different expiration dates.
If a
.Dq certificate expired
verification error occurs, no other certificate will be searched.
Make sure to not have expired certificates mixed with valid ones.
Changes to jni/libressl/man/SSL_CTX_new.3.
1
2

3
4
5
6
7
8
9
.\"	$OpenBSD: SSL_CTX_new.3,v 1.3 2017/08/19 23:45:10 schwarze Exp $
.\"	OpenSSL 21cd6e00 Aug 17 15:21:33 2015 -0400

.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2005, 2012, 2013, 2015, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|
|
>







1
2
3
4
5
6
7
8
9
10
.\" $OpenBSD: SSL_CTX_new.3,v 1.9 2018/03/24 00:55:37 schwarze Exp $
.\" full merge up to: OpenSSL 21cd6e00 Oct 21 14:40:15 2015 +0100
.\" selective merge up to: OpenSSL eb43101f Dec 9 18:07:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2005, 2012, 2013, 2015, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
45
46
47
48
49
50
51
52
53
54
55
56

57
58
59
60
61
62
63
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: August 19 2017 $
.Dt SSL_CTX_NEW 3
.Os
.Sh NAME
.Nm SSL_CTX_new ,

.Nm TLS_method ,
.Nm TLS_server_method ,
.Nm TLS_client_method ,
.Nm SSLv23_method ,
.Nm SSLv23_server_method ,
.Nm SSLv23_client_method ,
.Nm TLSv1_method ,







|




>







46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 24 2018 $
.Dt SSL_CTX_NEW 3
.Os
.Sh NAME
.Nm SSL_CTX_new ,
.Nm SSL_CTX_up_ref ,
.Nm TLS_method ,
.Nm TLS_server_method ,
.Nm TLS_client_method ,
.Nm SSLv23_method ,
.Nm SSLv23_server_method ,
.Nm SSLv23_client_method ,
.Nm TLSv1_method ,
73
74
75
76
77
78
79


80
81
82
83
84
85
86
.Nm DTLSv1_server_method ,
.Nm DTLSv1_client_method
.Nd create a new SSL_CTX object as framework for TLS/SSL enabled functions
.Sh SYNOPSIS
.In openssl/ssl.h
.Ft SSL_CTX *
.Fn SSL_CTX_new "const SSL_METHOD *method"


.Ft const SSL_METHOD *
.Fn TLS_method void
.Ft const SSL_METHOD *
.Fn TLS_server_method void
.Ft const SSL_METHOD *
.Fn TLS_client_method void
.Ft const SSL_METHOD *







>
>







75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
.Nm DTLSv1_server_method ,
.Nm DTLSv1_client_method
.Nd create a new SSL_CTX object as framework for TLS/SSL enabled functions
.Sh SYNOPSIS
.In openssl/ssl.h
.Ft SSL_CTX *
.Fn SSL_CTX_new "const SSL_METHOD *method"
.Ft int
.Fn SSL_CTX_up_ref "SSL_CTX *ctx"
.Ft const SSL_METHOD *
.Fn TLS_method void
.Ft const SSL_METHOD *
.Fn TLS_server_method void
.Ft const SSL_METHOD *
.Fn TLS_client_method void
.Ft const SSL_METHOD *
118
119
120
121
122
123
124

















125
126
127
128
129
130
131
creates a new
.Vt SSL_CTX
object as framework to establish TLS/SSL or DTLS enabled connections.
It initializes the list of ciphers, the session cache setting, the
callbacks, the keys and certificates, and the options to its default
values.
.Pp

















The
.Vt SSL_CTX
object uses
.Fa method
as its connection method.
The methods exist in a generic type (for client and server use),
a server only type, and a client only type.







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
creates a new
.Vt SSL_CTX
object as framework to establish TLS/SSL or DTLS enabled connections.
It initializes the list of ciphers, the session cache setting, the
callbacks, the keys and certificates, and the options to its default
values.
.Pp
An
.Vt SSL_CTX
object is reference counted.
Creating a new
.Vt SSL_CTX
object sets its reference count to 1.
Calling
.Fn SSL_CTX_up_ref
on it increments the reference count by 1.
Calling
.Xr SSL_CTX_free 3
on it decrements the reference count by 1.
When the reference count drops to zero,
any memory or resources allocated to the
.Vt SSL_CTX
object are freed.
.Pp
The
.Vt SSL_CTX
object uses
.Fa method
as its connection method.
The methods exist in a generic type (for client and server use),
a server only type, and a client only type.
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213

214
215
216

217
218
219
220
221
222
223










































Clients should avoid creating "holes" in the set of protocols they support.
When disabling a protocol, make sure that you also disable either
all previous or all subsequent protocol versions.
In clients, when a protocol version is disabled without disabling
all previous protocol versions, the effect is to also disable all
subsequent protocol versions.
.Sh RETURN VALUES
The following return values can occur:
.Bl -tag -width Ds
.It Dv NULL
The creation of a new
.Vt SSL_CTX
object failed.
Check the error stack to find out the reason.
.It Pointer to an SSL_CTX object
The return value points to an allocated

.Vt SSL_CTX
object.
.El

.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_accept 3 ,
.Xr SSL_CTX_free 3 ,
.Xr SSL_CTX_set_min_proto_version 3 ,
.Xr SSL_CTX_set_options 3 ,
.Xr SSL_set_connect_state 3

















































|
|
|
<
<
|
|
<
<
>
|
<
<
>







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
219
220
221
222
223
224
225
226
227
228


229
230


231
232


233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
Clients should avoid creating "holes" in the set of protocols they support.
When disabling a protocol, make sure that you also disable either
all previous or all subsequent protocol versions.
In clients, when a protocol version is disabled without disabling
all previous protocol versions, the effect is to also disable all
subsequent protocol versions.
.Sh RETURN VALUES
.Fn SSL_CTX_new
returns a pointer to the newly allocated object or
.Dv NULL


on failure.
Check the error stack to find out the reason for failure.


.Pp
.Fn SSL_CTX_up_ref


returns 1 for success or 0 for failure.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_accept 3 ,
.Xr SSL_CTX_free 3 ,
.Xr SSL_CTX_set_min_proto_version 3 ,
.Xr SSL_CTX_set_options 3 ,
.Xr SSL_set_connect_state 3
.Sh HISTORY
.Fn SSL_CTX_new ,
.Fn SSLv23_method ,
.Fn SSLv23_server_method ,
and
.Fn SSLv23_client_method
appeared before SSLeay 0.8.
.Fn TLSv1_method ,
.Fn TLSv1_server_method ,
and
.Fn TLSv1_client_method
first appeared in SSLeay 0.9.0.
All these functions have been available since
.Ox 2.4 .
.Pp
.Fn DTLSv1_method ,
.Fn DTLSv1_server_method ,
and
.Fn DTLSv1_client_method
first appeared in OpenSSL 0.9.8 and have been available since
.Ox 4.5 .
.Pp
.Fn TLSv1_1_method ,
.Fn TLSv1_1_server_method ,
.Fn TLSv1_1_client_method ,
.Fn TLSv1_2_method ,
.Fn TLSv1_2_server_method ,
and
.Fn TLSv1_2_client_method
first appeared in OpenSSL 1.0.1 and have been available since
.Ox 5.3 .
.Pp
.Fn TLS_method ,
.Fn TLS_server_method ,
and
.Fn TLS_client_method
first appeared in OpenSSL 1.1.0 and have been available since
.Ox 5.8 .
.Pp
.Fn SSL_CTX_up_ref
first appeared in OpenSSL 1.1.0 and has been available since
.Ox 6.3 .
Changes to jni/libressl/man/SSL_CTX_sess_number.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_sess_number.3,v 1.4 2017/04/10 14:00:51 schwarze Exp $
.\"	OpenSSL SSL_CTX_sess_number.pod 7bd27895 Mar 29 11:45:29 2017 +1000
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_sess_number.3,v 1.7 2018/03/24 00:55:37 schwarze Exp $
.\"	OpenSSL SSL_CTX_sess_number.pod 7bd27895 Mar 29 11:45:29 2017 +1000
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: April 10 2017 $
.Dt SSL_CTX_SESS_NUMBER 3
.Os
.Sh NAME
.Nm SSL_CTX_sess_number ,
.Nm SSL_CTX_sess_connect ,
.Nm SSL_CTX_sess_connect_good ,
.Nm SSL_CTX_sess_connect_renegotiate ,







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 24 2018 $
.Dt SSL_CTX_SESS_NUMBER 3
.Os
.Sh NAME
.Nm SSL_CTX_sess_number ,
.Nm SSL_CTX_sess_connect ,
.Nm SSL_CTX_sess_connect_good ,
.Nm SSL_CTX_sess_connect_renegotiate ,
141
142
143
144
145
146
147



















returns the number of sessions that were removed because the maximum session
cache size was exceeded.
.Sh SEE ALSO
.Xr SSL_CTX_ctrl 3 ,
.Xr SSL_CTX_sess_set_cache_size 3 ,
.Xr SSL_CTX_set_session_cache_mode 3 ,
.Xr SSL_set_session 3


























>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
returns the number of sessions that were removed because the maximum session
cache size was exceeded.
.Sh SEE ALSO
.Xr SSL_CTX_ctrl 3 ,
.Xr SSL_CTX_sess_set_cache_size 3 ,
.Xr SSL_CTX_set_session_cache_mode 3 ,
.Xr SSL_set_session 3
.Sh HISTORY
.Fn SSL_CTX_sess_number ,
.Fn SSL_CTX_sess_connect ,
.Fn SSL_CTX_sess_connect_good ,
.Fn SSL_CTX_sess_accept ,
.Fn SSL_CTX_sess_accept_good ,
.Fn SSL_CTX_sess_hits ,
.Fn SSL_CTX_sess_cb_hits ,
.Fn SSL_CTX_sess_misses ,
and
.Fn SSL_CTX_sess_timeouts
appeared before SSLeay 0.8.
.Fn SSL_CTX_sess_connect_renegotiate ,
.Fn SSL_CTX_sess_accept_renegotiate ,
and
.Fn SSL_CTX_sess_cache_full
first appeared in SSLeay 0.9.0.
All these functions have been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_CTX_sess_set_cache_size.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_sess_set_cache_size.3,v 1.3 2017/04/10 14:00:51 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2002, 2014 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_sess_set_cache_size.3,v 1.4 2018/03/21 08:06:34 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2002, 2014 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: April 10 2017 $
.Dt SSL_CTX_SESS_SET_CACHE_SIZE 3
.Os
.Sh NAME
.Nm SSL_CTX_sess_set_cache_size ,
.Nm SSL_CTX_sess_get_cache_size
.Nd manipulate session cache size
.Sh SYNOPSIS







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_CTX_SESS_SET_CACHE_SIZE 3
.Os
.Sh NAME
.Nm SSL_CTX_sess_set_cache_size ,
.Nm SSL_CTX_sess_get_cache_size
.Nd manipulate session cache size
.Sh SYNOPSIS
96
97
98
99
100
101
102






.Fn SSL_CTX_sess_get_cache_size
returns the currently valid size.
.Sh SEE ALSO
.Xr SSL_CTX_ctrl 3 ,
.Xr SSL_CTX_flush_sessions 3 ,
.Xr SSL_CTX_sess_number 3 ,
.Xr SSL_CTX_set_session_cache_mode 3













>
>
>
>
>
>
96
97
98
99
100
101
102
103
104
105
106
107
108
.Fn SSL_CTX_sess_get_cache_size
returns the currently valid size.
.Sh SEE ALSO
.Xr SSL_CTX_ctrl 3 ,
.Xr SSL_CTX_flush_sessions 3 ,
.Xr SSL_CTX_sess_number 3 ,
.Xr SSL_CTX_set_session_cache_mode 3
.Sh HISTORY
.Fn SSL_CTX_sess_set_cache_size
and
.Fn SSL_CTX_sess_get_cache_size
first appeared in SSLeay 0.9.0 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_CTX_sess_set_get_cb.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_sess_set_get_cb.3,v 1.2 2016/11/30 16:25:29 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2002, 2003, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_sess_set_get_cb.3,v 1.3 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2002, 2003, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 30 2016 $
.Dt SSL_CTX_SESS_SET_GET_CB 3
.Os
.Sh NAME
.Nm SSL_CTX_sess_set_new_cb ,
.Nm SSL_CTX_sess_set_remove_cb ,
.Nm SSL_CTX_sess_set_get_cb ,
.Nm SSL_CTX_sess_get_new_cb ,







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_CTX_SESS_SET_GET_CB 3
.Os
.Sh NAME
.Nm SSL_CTX_sess_set_new_cb ,
.Nm SSL_CTX_sess_set_remove_cb ,
.Nm SSL_CTX_sess_set_get_cb ,
.Nm SSL_CTX_sess_get_new_cb ,
201
202
203
204
205
206
207



.Sh SEE ALSO
.Xr d2i_SSL_SESSION 3 ,
.Xr ssl 3 ,
.Xr SSL_CTX_flush_sessions 3 ,
.Xr SSL_CTX_free 3 ,
.Xr SSL_CTX_set_session_cache_mode 3 ,
.Xr SSL_SESSION_free 3










>
>
>
201
202
203
204
205
206
207
208
209
210
.Sh SEE ALSO
.Xr d2i_SSL_SESSION 3 ,
.Xr ssl 3 ,
.Xr SSL_CTX_flush_sessions 3 ,
.Xr SSL_CTX_free 3 ,
.Xr SSL_CTX_set_session_cache_mode 3 ,
.Xr SSL_SESSION_free 3
.Sh HISTORY
These functions appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_CTX_sessions.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_sessions.3,v 1.2 2016/11/30 16:25:29 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_sessions.3,v 1.3 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 30 2016 $
.Dt SSL_CTX_SESSIONS 3
.Os
.Sh NAME
.Nm SSL_CTX_sessions
.Nd access internal session cache
.Sh SYNOPSIS
.In openssl/ssl.h







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_CTX_SESSIONS 3
.Os
.Sh NAME
.Nm SSL_CTX_sessions
.Nd access internal session cache
.Sh SYNOPSIS
.In openssl/ssl.h
76
77
78
79
80
81
82




.Xr SSL_CTX_add_session 3
family of functions.
.Sh SEE ALSO
.Xr lh_new 3 ,
.Xr ssl 3 ,
.Xr SSL_CTX_add_session 3 ,
.Xr SSL_CTX_set_session_cache_mode 3











>
>
>
>
76
77
78
79
80
81
82
83
84
85
86
.Xr SSL_CTX_add_session 3
family of functions.
.Sh SEE ALSO
.Xr lh_new 3 ,
.Xr ssl 3 ,
.Xr SSL_CTX_add_session 3 ,
.Xr SSL_CTX_set_session_cache_mode 3
.Sh HISTORY
.Fn SSL_CTX_sessions
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_CTX_set_alpn_select_cb.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_alpn_select_cb.3,v 1.5 2017/08/28 17:36:58 jsing Exp $
.\"	OpenSSL 87b81496 Apr 19 12:38:27 2017 -0400
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Todd Short <tshort@akamai.com>.
.\" Copyright (c) 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_alpn_select_cb.3,v 1.7 2018/03/23 14:28:16 schwarze Exp $
.\"	OpenSSL 87b81496 Apr 19 12:38:27 2017 -0400
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Todd Short <tshort@akamai.com>.
.\" Copyright (c) 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: August 28 2017 $
.Dt SSL_CTX_SET_ALPN_SELECT_CB 3
.Os
.Sh NAME
.Nm SSL_CTX_set_alpn_protos ,
.Nm SSL_set_alpn_protos ,
.Nm SSL_CTX_set_alpn_select_cb ,
.Nm SSL_select_next_proto ,







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt SSL_CTX_SET_ALPN_SELECT_CB 3
.Os
.Sh NAME
.Nm SSL_CTX_set_alpn_protos ,
.Nm SSL_set_alpn_protos ,
.Nm SSL_CTX_set_alpn_select_cb ,
.Nm SSL_select_next_proto ,
255
256
257
258
259
260
261












.It SSL_TLSEXT_ERR_NOACK
ALPN protocol not selected.
.El
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_set_tlsext_servername_arg 3 ,
.Xr SSL_CTX_set_tlsext_servername_callback 3



















>
>
>
>
>
>
>
>
>
>
>
>
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
.It SSL_TLSEXT_ERR_NOACK
ALPN protocol not selected.
.El
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_set_tlsext_servername_arg 3 ,
.Xr SSL_CTX_set_tlsext_servername_callback 3
.Sh HISTORY
.Fn SSL_select_next_proto
first appeared in OpenSSL 1.0.1 and has been available since
.Ox 5.3 .
.Pp
.Fn SSL_CTX_set_alpn_protos ,
.Fn SSL_set_alpn_protos ,
.Fn SSL_CTX_set_alpn_select_cb ,
and
.Fn SSL_get0_alpn_selected
first appeared in OpenSSL 1.0.2 and have been available since
.Ox 5.7 .
Changes to jni/libressl/man/SSL_CTX_set_cert_store.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_cert_store.3,v 1.4 2017/04/10 16:11:50 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2002, 2005 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_cert_store.3,v 1.6 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2002, 2005 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: April 10 2017 $
.Dt SSL_CTX_SET_CERT_STORE 3
.Os
.Sh NAME
.Nm SSL_CTX_set_cert_store ,
.Nm SSL_CTX_get_cert_store
.Nd manipulate X509 certificate verification storage
.Sh SYNOPSIS







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_CTX_SET_CERT_STORE 3
.Os
.Sh NAME
.Nm SSL_CTX_set_cert_store ,
.Nm SSL_CTX_get_cert_store
.Nd manipulate X509 certificate verification storage
.Sh SYNOPSIS
116
117
118
119
120
121
122
123







object and its handling becomes available.
.Sh RETURN VALUES
.Fn SSL_CTX_get_cert_store
returns the current setting.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_load_verify_locations 3 ,
.Xr SSL_CTX_set_verify 3














|
>
>
>
>
>
>
>
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
object and its handling becomes available.
.Sh RETURN VALUES
.Fn SSL_CTX_get_cert_store
returns the current setting.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_load_verify_locations 3 ,
.Xr SSL_CTX_set_verify 3 ,
.Xr X509_STORE_new 3
.Sh HISTORY
.Fn SSL_CTX_set_cert_store
and
.Fn SSL_CTX_get_cert_store
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_CTX_set_cert_verify_callback.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_cert_verify_callback.3,v 1.2 2016/11/30 17:23:53 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2002 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_cert_verify_callback.3,v 1.3 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2002 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 30 2016 $
.Dt SSL_CTX_SET_CERT_VERIFY_CALLBACK 3
.Os
.Sh NAME
.Nm SSL_CTX_set_cert_verify_callback
.Nd set peer certificate verification procedure
.Sh SYNOPSIS
.In openssl/ssl.h







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_CTX_SET_CERT_VERIFY_CALLBACK 3
.Os
.Sh NAME
.Nm SSL_CTX_set_cert_verify_callback
.Nd set peer certificate verification procedure
.Sh SYNOPSIS
.In openssl/ssl.h
123
124
125
126
127
128
129




130
131
132
133
134
135
136
.Xr SSL_CTX_set_verify 3 .
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_load_verify_locations 3 ,
.Xr SSL_CTX_set_verify 3 ,
.Xr SSL_get_verify_result 3
.Sh HISTORY




Previous to OpenSSL 0.9.7, the
.Fa arg
argument to
.Fn SSL_CTX_set_cert_verify_callback
was ignored, and
.Fa callback
was called







>
>
>
>







123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
.Xr SSL_CTX_set_verify 3 .
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_load_verify_locations 3 ,
.Xr SSL_CTX_set_verify 3 ,
.Xr SSL_get_verify_result 3
.Sh HISTORY
.Fn SSL_CTX_set_cert_verify_callback
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
.Pp
Previous to OpenSSL 0.9.7, the
.Fa arg
argument to
.Fn SSL_CTX_set_cert_verify_callback
was ignored, and
.Fa callback
was called
Changes to jni/libressl/man/SSL_CTX_set_cipher_list.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_cipher_list.3,v 1.4 2017/08/19 23:47:33 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2001, 2013 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_cipher_list.3,v 1.5 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2001, 2013 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: August 19 2017 $
.Dt SSL_CTX_SET_CIPHER_LIST 3
.Os
.Sh NAME
.Nm SSL_CTX_set_cipher_list ,
.Nm SSL_set_cipher_list
.Nd choose list of available SSL_CIPHERs
.Sh SYNOPSIS







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_CTX_SET_CIPHER_LIST 3
.Os
.Sh NAME
.Nm SSL_CTX_set_cipher_list ,
.Nm SSL_set_cipher_list
.Nd choose list of available SSL_CIPHERs
.Sh SYNOPSIS
118
119
120
121
122
123
124






return 1 if any cipher could be selected and 0 on complete failure.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_set1_groups 3 ,
.Xr SSL_CTX_set_tmp_dh_callback 3 ,
.Xr SSL_CTX_use_certificate 3 ,
.Xr SSL_get_ciphers 3













>
>
>
>
>
>
118
119
120
121
122
123
124
125
126
127
128
129
130
return 1 if any cipher could be selected and 0 on complete failure.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_set1_groups 3 ,
.Xr SSL_CTX_set_tmp_dh_callback 3 ,
.Xr SSL_CTX_use_certificate 3 ,
.Xr SSL_get_ciphers 3
.Sh HISTORY
.Fn SSL_CTX_set_cipher_list
and
.Fn SSL_set_cipher_list
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_CTX_set_client_CA_list.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_client_CA_list.3,v 1.3 2016/12/14 16:20:28 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2001, 2013 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_client_CA_list.3,v 1.4 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2001, 2013 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 14 2016 $
.Dt SSL_CTX_SET_CLIENT_CA_LIST 3
.Os
.Sh NAME
.Nm SSL_CTX_set_client_CA_list ,
.Nm SSL_set_client_CA_list ,
.Nm SSL_CTX_add_client_CA ,
.Nm  SSL_add_client_CA







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_CTX_SET_CLIENT_CA_LIST 3
.Os
.Sh NAME
.Nm SSL_CTX_set_client_CA_list ,
.Nm SSL_set_client_CA_list ,
.Nm SSL_CTX_add_client_CA ,
.Nm  SSL_add_client_CA
174
175
176
177
178
179
180








.Ed
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_load_verify_locations 3 ,
.Xr SSL_get_client_CA_list 3 ,
.Xr SSL_load_client_CA_file 3 ,
.Xr X509_NAME_new 3















>
>
>
>
>
>
>
>
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
.Ed
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_load_verify_locations 3 ,
.Xr SSL_get_client_CA_list 3 ,
.Xr SSL_load_client_CA_file 3 ,
.Xr X509_NAME_new 3
.Sh HISTORY
.Fn SSL_CTX_set_client_CA_list ,
.Fn SSL_set_client_CA_list ,
.Fn SSL_CTX_add_client_CA ,
and
.Fn SSL_add_client_CA
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_CTX_set_client_cert_cb.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_client_cert_cb.3,v 1.2 2016/11/30 17:26:09 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2002 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_client_cert_cb.3,v 1.3 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2002 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 30 2016 $
.Dt SSL_CTX_SET_CLIENT_CERT_CB 3
.Os
.Sh NAME
.Nm SSL_CTX_set_client_cert_cb ,
.Nm SSL_CTX_get_client_cert_cb
.Nd handle client certificate callback function
.Sh SYNOPSIS







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_CTX_SET_CLIENT_CERT_CB 3
.Os
.Sh NAME
.Nm SSL_CTX_set_client_cert_cb ,
.Nm SSL_CTX_get_client_cert_cb
.Nd handle client certificate callback function
.Sh SYNOPSIS
142
143
144
145
146
147
148






149
150
151
152
153
154
155
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_clear 3 ,
.Xr SSL_CTX_add_extra_chain_cert 3 ,
.Xr SSL_CTX_use_certificate 3 ,
.Xr SSL_free 3 ,
.Xr SSL_get_client_CA_list 3






.Sh BUGS
The
.Fa client_cert_cb()
cannot return a complete certificate chain;
it can only return one client certificate.
If the chain only has a length of 2,
the root CA certificate may be omitted according to the TLS standard and







>
>
>
>
>
>







142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_clear 3 ,
.Xr SSL_CTX_add_extra_chain_cert 3 ,
.Xr SSL_CTX_use_certificate 3 ,
.Xr SSL_free 3 ,
.Xr SSL_get_client_CA_list 3
.Sh HISTORY
.Fn SSL_CTX_set_client_cert_cb
and
.Fn SSL_CTX_get_client_cert_cb
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Sh BUGS
The
.Fa client_cert_cb()
cannot return a complete certificate chain;
it can only return one client certificate.
If the chain only has a length of 2,
the root CA certificate may be omitted according to the TLS standard and
Changes to jni/libressl/man/SSL_CTX_set_default_passwd_cb.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_default_passwd_cb.3,v 1.3 2017/08/01 14:57:03 schwarze Exp $
.\"	OpenSSL 9b86974e Aug 17 15:21:33 2015 -0400
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2001 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_default_passwd_cb.3,v 1.5 2018/03/21 21:20:26 schwarze Exp $
.\"	OpenSSL 9b86974e Aug 17 15:21:33 2015 -0400
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2001 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: August 1 2017 $
.Dt SSL_CTX_SET_DEFAULT_PASSWD_CB 3
.Os
.Sh NAME
.Nm SSL_CTX_set_default_passwd_cb ,
.Nm SSL_CTX_set_default_passwd_cb_userdata ,
.Nm pem_password_cb
.Nd set passwd callback for encrypted PEM file handling







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_CTX_SET_DEFAULT_PASSWD_CB 3
.Os
.Sh NAME
.Nm SSL_CTX_set_default_passwd_cb ,
.Nm SSL_CTX_set_default_passwd_cb_userdata ,
.Nm pem_password_cb
.Nd set passwd callback for encrypted PEM file handling
129
130
131
132
133
134
135








	buf[size - 1] = '\e0';
	return strlen(buf);
}
.Ed
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_use_certificate 3















>
>
>
>
>
>
>
>
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
	buf[size - 1] = '\e0';
	return strlen(buf);
}
.Ed
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_use_certificate 3
.Sh HISTORY
.Fn SSL_CTX_set_default_passwd_cb
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
.Pp
.Fn SSL_CTX_set_default_passwd_cb_userdata
first appeared in OpenSSL 0.9.4 and has been available since
.Ox 2.6 .
Changes to jni/libressl/man/SSL_CTX_set_generate_session_id.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_generate_session_id.3,v 1.4 2017/08/01 14:57:03 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2014 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_generate_session_id.3,v 1.5 2018/03/22 21:09:18 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2014 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: August 1 2017 $
.Dt SSL_CTX_SET_GENERATE_SESSION_ID 3
.Os
.Sh NAME
.Nm SSL_CTX_set_generate_session_id ,
.Nm SSL_set_generate_session_id ,
.Nm SSL_has_matching_session_id ,
.Nm GEN_SESSION_CB







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt SSL_CTX_SET_GENERATE_SESSION_ID 3
.Os
.Sh NAME
.Nm SSL_CTX_set_generate_session_id ,
.Nm SSL_set_generate_session_id ,
.Nm SSL_has_matching_session_id ,
.Nm GEN_SESSION_CB
213
214
215
216
217
218
219
220

.Xr ssl 3 ,
.Xr SSL_get_version 3
.Sh HISTORY
.Fn SSL_CTX_set_generate_session_id ,
.Fn SSL_set_generate_session_id
and
.Fn SSL_has_matching_session_id
were introduced in OpenSSL 0.9.7.








|
>
213
214
215
216
217
218
219
220
221
.Xr ssl 3 ,
.Xr SSL_get_version 3
.Sh HISTORY
.Fn SSL_CTX_set_generate_session_id ,
.Fn SSL_set_generate_session_id
and
.Fn SSL_has_matching_session_id
first appeared in OpenSSL 0.9.7 and have been available since
.Ox 3.2 .
Changes to jni/libressl/man/SSL_CTX_set_info_callback.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_info_callback.3,v 1.2 2016/11/30 18:29:14 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2005, 2014 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_info_callback.3,v 1.3 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2005, 2014 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 30 2016 $
.Dt SSL_CTX_SET_INFO_CALLBACK 3
.Os
.Sh NAME
.Nm SSL_CTX_set_info_callback ,
.Nm SSL_CTX_get_info_callback ,
.Nm SSL_set_info_callback ,
.Nm SSL_get_info_callback







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_CTX_SET_INFO_CALLBACK 3
.Os
.Sh NAME
.Nm SSL_CTX_set_info_callback ,
.Nm SSL_CTX_get_info_callback ,
.Nm SSL_set_info_callback ,
.Nm SSL_get_info_callback
223
224
225
226
227
228
229



	}
}
.Ed
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_alert_type_string 3 ,
.Xr SSL_state_string 3










>
>
>
223
224
225
226
227
228
229
230
231
232
	}
}
.Ed
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_alert_type_string 3 ,
.Xr SSL_state_string 3
.Sh HISTORY
These functions appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_CTX_set_max_cert_list.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_max_cert_list.3,v 1.3 2017/04/10 14:00:51 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_max_cert_list.3,v 1.4 2018/03/22 21:09:18 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: April 10 2017 $
.Dt SSL_CTX_SET_MAX_CERT_LIST 3
.Os
.Sh NAME
.Nm SSL_CTX_set_max_cert_list ,
.Nm SSL_CTX_get_max_cert_list ,
.Nm SSL_set_max_cert_list ,
.Nm SSL_get_max_cert_list







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt SSL_CTX_SET_MAX_CERT_LIST 3
.Os
.Sh NAME
.Nm SSL_CTX_set_max_cert_list ,
.Nm SSL_CTX_get_max_cert_list ,
.Nm SSL_set_max_cert_list ,
.Nm SSL_get_max_cert_list
144
145
146
147
148
149
150
151
152


.Fn SSL_get_max_cert_list
return the currently set value.
.Sh SEE ALSO
.Xr SSL_CTX_ctrl 3 ,
.Xr SSL_CTX_set_verify 3 ,
.Xr SSL_new 3
.Sh HISTORY
.Fn SSL*_set/get_max_cert_list
were introduced in OpenSSL 0.9.7.









<
|
>
>
144
145
146
147
148
149
150

151
152
153
.Fn SSL_get_max_cert_list
return the currently set value.
.Sh SEE ALSO
.Xr SSL_CTX_ctrl 3 ,
.Xr SSL_CTX_set_verify 3 ,
.Xr SSL_new 3
.Sh HISTORY

These functions first appeared in OpenSSL 0.9.7
and have been available since
.Ox 3.2 .
Changes to jni/libressl/man/SSL_CTX_set_min_proto_version.3.
1
2
3
4

5
6
7
8
9
10
11
12
.\"	$OpenBSD: SSL_CTX_set_min_proto_version.3,v 1.1 2017/08/19 23:45:10 schwarze Exp $
.\"	OpenSSL e9b77246 Jan 20 19:58:49 2017 +0100
.\"
.\" This file was written by Kurt Roeckx <kurt@roeckx.be>.

.\" Copyright (c) 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
|
|

|
>
|







1
2
3
4
5
6
7
8
9
10
11
12
13
.\" $OpenBSD: SSL_CTX_set_min_proto_version.3,v 1.3 2018/03/24 00:55:37 schwarze Exp $
.\" full merge up to: OpenSSL 3edabd3c Sep 14 09:28:39 2017 +0200
.\"
.\" This file was written by Kurt Roeckx <kurt@roeckx.be> and
.\" Christian Heimes <christian@python.org>.
.\" Copyright (c) 2015, 2017 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
44
45
46
47
48
49
50
51
52
53
54
55
56


57
58


59
60
61
62
63
64
65
66
67
68
69
70
71








72
73
74
75
76
77
78
79
80
81








82
83
84
85
86
87
88
89
90
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: August 19 2017 $
.Dt SSL_CTX_SET_MIN_PROTO_VERSION 3
.Os
.Sh NAME
.Nm SSL_CTX_set_min_proto_version ,
.Nm SSL_CTX_set_max_proto_version ,


.Nm SSL_set_min_proto_version ,
.Nm SSL_set_max_proto_version


.Nd set minimum and maximum supported protocol version
.Sh SYNOPSIS
.In openssl/ssl.h
.Ft int
.Fo SSL_CTX_set_min_proto_version
.Fa "SSL_CTX *ctx"
.Fa "uint16_t version"
.Fc
.Ft int
.Fo SSL_CTX_set_max_proto_version
.Fa "SSL_CTX *ctx"
.Fa "uint16_t version"
.Fc








.Ft int
.Fo SSL_set_min_proto_version
.Fa "SSL *ssl"
.Fa "uint16_t version"
.Fc
.Ft int
.Fo SSL_set_max_proto_version
.Fa "SSL *ssl"
.Fa "uint16_t version"
.Fc








.Sh DESCRIPTION
These functions set the minimum and maximum supported protocol
versions for
.Fa ctx
or
.Fa ssl .
This works in combination with the options set via
.Xr SSL_CTX_set_options 3
that also make it possible to disable specific protocol versions.







|





>
>

|
>
>
|












>
>
>
>
>
>
>
>










>
>
>
>
>
>
>
>

|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 24 2018 $
.Dt SSL_CTX_SET_MIN_PROTO_VERSION 3
.Os
.Sh NAME
.Nm SSL_CTX_set_min_proto_version ,
.Nm SSL_CTX_set_max_proto_version ,
.Nm SSL_CTX_get_min_proto_version ,
.Nm SSL_CTX_get_max_proto_version ,
.Nm SSL_set_min_proto_version ,
.Nm SSL_set_max_proto_version ,
.Nm SSL_get_min_proto_version ,
.Nm SSL_get_max_proto_version
.Nd get and set minimum and maximum supported protocol version
.Sh SYNOPSIS
.In openssl/ssl.h
.Ft int
.Fo SSL_CTX_set_min_proto_version
.Fa "SSL_CTX *ctx"
.Fa "uint16_t version"
.Fc
.Ft int
.Fo SSL_CTX_set_max_proto_version
.Fa "SSL_CTX *ctx"
.Fa "uint16_t version"
.Fc
.Ft int
.Fo SSL_CTX_get_min_proto_version
.Fa "SSL_CTX *ctx"
.Fc
.Ft int
.Fo SSL_CTX_get_max_proto_version
.Fa "SSL_CTX *ctx"
.Fc
.Ft int
.Fo SSL_set_min_proto_version
.Fa "SSL *ssl"
.Fa "uint16_t version"
.Fc
.Ft int
.Fo SSL_set_max_proto_version
.Fa "SSL *ssl"
.Fa "uint16_t version"
.Fc
.Ft int
.Fo SSL_get_min_proto_version
.Fa "SSL *ssl"
.Fc
.Ft int
.Fo SSL_get_max_proto_version
.Fa "SSL *ssl"
.Fc
.Sh DESCRIPTION
These functions get or set the minimum and maximum supported protocol
versions for
.Fa ctx
or
.Fa ssl .
This works in combination with the options set via
.Xr SSL_CTX_set_options 3
that also make it possible to disable specific protocol versions.
98
99
100
101
102
103
104


105
106







107
108
109
110
111










112
113
114
.Sy TLS1_VERSION ,
.Sy TLS1_1_VERSION ,
and
.Sy TLS1_2_VERSION
for TLS and
.Sy DTLS1_VERSION
for DTLS.


.Sh RETURN VALUES
These functions return 1 on success or 0 on failure.







.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_new 3 ,
.Xr SSL_CTX_set_options 3
.Sh HISTORY










These functions first appeared in OpenSSL 1.1.0
and have been available since
.Ox 6.2 .







>
>

|
>
>
>
>
>
>
>





>
>
>
>
>
>
>
>
>
>
|

|
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
.Sy TLS1_VERSION ,
.Sy TLS1_1_VERSION ,
and
.Sy TLS1_2_VERSION
for TLS and
.Sy DTLS1_VERSION
for DTLS.
.Pp
In other implementations, these functions may be implemented as macros.
.Sh RETURN VALUES
The setter functions return 1 on success or 0 on failure.
.Pp
The getter functions return the configured version or 0 if
.Fa ctx
or
.Fa ssl
has been configured to automatically use the lowest or highest
version supported by the library.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_new 3 ,
.Xr SSL_CTX_set_options 3
.Sh HISTORY
The setter functions first appeared in BoringSSL in December 2014,
with shorter names without the
.Sy proto_
part.
Two years later, OpenSSL included them in their 1.1.0 release,
gratuitiously changing the names; Google shrugged and adopted
the longer names one month later.
They have been available since
.Ox 6.2 .
.Pp
The getter functions first appeared in OpenSSL 1.1.0g
and have been available since
.Ox 6.3 .
Changes to jni/libressl/man/SSL_CTX_set_mode.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_mode.3,v 1.3 2017/04/10 14:00:51 schwarze Exp $
.\"	OpenSSL 8671b898 Jun 3 02:48:34 2008 +0000
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org> and
.\" Ben Laurie <ben@openssl.org>.
.\" Copyright (c) 2001, 2008 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_mode.3,v 1.4 2018/03/21 21:20:26 schwarze Exp $
.\"	OpenSSL 8671b898 Jun 3 02:48:34 2008 +0000
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org> and
.\" Ben Laurie <ben@openssl.org>.
.\" Copyright (c) 2001, 2008 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: April 10 2017 $
.Dt SSL_CTX_SET_MODE 3
.Os
.Sh NAME
.Nm SSL_CTX_set_mode ,
.Nm SSL_set_mode ,
.Nm SSL_CTX_get_mode ,
.Nm SSL_get_mode







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_CTX_SET_MODE 3
.Os
.Sh NAME
.Nm SSL_CTX_set_mode ,
.Nm SSL_set_mode ,
.Nm SSL_CTX_get_mode ,
.Nm SSL_get_mode
161
162
163
164
165
166
167








168
169
.Fn SSL_get_mode
return the current bitmask.
.Sh SEE ALSO
.Xr SSL_CTX_ctrl 3 ,
.Xr SSL_read 3 ,
.Xr SSL_write 3
.Sh HISTORY








.Dv SSL_MODE_AUTO_RETRY
was added in OpenSSL 0.9.6.







>
>
>
>
>
>
>
>


161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
.Fn SSL_get_mode
return the current bitmask.
.Sh SEE ALSO
.Xr SSL_CTX_ctrl 3 ,
.Xr SSL_read 3 ,
.Xr SSL_write 3
.Sh HISTORY
.Fn SSL_CTX_set_mode ,
.Fn SSL_set_mode ,
.Fn SSL_CTX_get_mode ,
and
.Fn SSL_get_mode
first appeared in OpenSSL 0.9.4 and have been available since
.Ox 2.6 .
.Pp
.Dv SSL_MODE_AUTO_RETRY
was added in OpenSSL 0.9.6.
Changes to jni/libressl/man/SSL_CTX_set_msg_callback.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_msg_callback.3,v 1.3 2017/08/21 09:07:08 schwarze Exp $
.\"	OpenSSL SSL_CTX_set_msg_callback.pod e9b77246 Jan 20 19:58:49 2017 +0100
.\"	OpenSSL SSL_CTX_set_msg_callback.pod b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Bodo Moeller <bodo@openssl.org>.
.\" Copyright (c) 2001, 2014, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_msg_callback.3,v 1.4 2018/03/22 21:09:18 schwarze Exp $
.\"	OpenSSL SSL_CTX_set_msg_callback.pod e9b77246 Jan 20 19:58:49 2017 +0100
.\"	OpenSSL SSL_CTX_set_msg_callback.pod b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Bodo Moeller <bodo@openssl.org>.
.\" Copyright (c) 2001, 2014, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: August 21 2017 $
.Dt SSL_CTX_SET_MSG_CALLBACK 3
.Os
.Sh NAME
.Nm SSL_CTX_set_msg_callback ,
.Nm SSL_CTX_set_msg_callback_arg ,
.Nm SSL_set_msg_callback ,
.Nm SSL_set_msg_callback_arg







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt SSL_CTX_SET_MSG_CALLBACK 3
.Os
.Sh NAME
.Nm SSL_CTX_set_msg_callback ,
.Nm SSL_CTX_set_msg_callback_arg ,
.Nm SSL_set_msg_callback ,
.Nm SSL_set_msg_callback_arg
174
175
176
177
178
179
180
181

.Xr SSL_new 3
.Sh HISTORY
.Fn SSL_CTX_set_msg_callback ,
.Fn SSL_CTX_set_msg_callback_arg ,
.Fn SSL_set_msg_callback
and
.Fn SSL_set_msg_callback_arg
were added in OpenSSL 0.9.7.








|
>
174
175
176
177
178
179
180
181
182
.Xr SSL_new 3
.Sh HISTORY
.Fn SSL_CTX_set_msg_callback ,
.Fn SSL_CTX_set_msg_callback_arg ,
.Fn SSL_set_msg_callback
and
.Fn SSL_set_msg_callback_arg
first appeared in OpenSSL 0.9.7 and have been available since
.Ox 3.2 .
Changes to jni/libressl/man/SSL_CTX_set_options.3.
1
2

3
4
5
6
7
8
9
.\"	$OpenBSD: SSL_CTX_set_options.3,v 1.4 2017/08/19 23:45:10 schwarze Exp $
.\"	OpenSSL 361a1191 Dec 6 17:56:41 2015 +0100

.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>,
.\" Bodo Moeller <bodo@openssl.org>, and
.\" Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2001-2003, 2005, 2007, 2009, 2010, 2013-2015
.\" The OpenSSL Project.  All rights reserved.
.\"
|
|
>







1
2
3
4
5
6
7
8
9
10
.\" $OpenBSD: SSL_CTX_set_options.3,v 1.11 2018/03/24 00:55:37 schwarze Exp $
.\" full merge up to: OpenSSL 7946ab33 Dec 6 17:56:41 2015 +0100
.\" selective merge up to: OpenSSL edb79c3a Mar 29 10:07:14 2017 +1000
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>,
.\" Bodo Moeller <bodo@openssl.org>, and
.\" Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2001-2003, 2005, 2007, 2009, 2010, 2013-2015
.\" The OpenSSL Project.  All rights reserved.
.\"
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: August 19 2017 $
.Dt SSL_CTX_SET_OPTIONS 3
.Os
.Sh NAME
.Nm SSL_CTX_set_options ,
.Nm SSL_set_options ,
.Nm SSL_CTX_clear_options ,
.Nm SSL_clear_options ,







|







48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 24 2018 $
.Dt SSL_CTX_SET_OPTIONS 3
.Os
.Sh NAME
.Nm SSL_CTX_set_options ,
.Nm SSL_set_options ,
.Nm SSL_CTX_clear_options ,
.Nm SSL_clear_options ,
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189























190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208

209
210


211
212
213

214
215
216
217

218
219
220
221
222
223
224
225
226
227
228
229
230

231
232
233
234
235
236

237
238
239
240

241
242
243
244
245
246
247
options are available:
.Bl -tag -width Ds
.It Dv SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS
Disables a countermeasure against a TLS 1.0 protocol vulnerability
affecting CBC ciphers, which cannot be handled by some broken SSL
implementations.
This option has no effect for connections using other ciphers.
.It Dv SSL_OP_TLSEXT_PADDING
Adds a padding extension to ensure the ClientHello size is never between 256
and 511 bytes in length.
This is needed as a workaround for some implementations.
.It Dv SSL_OP_ALL
All of the above bug workarounds.
.El
.Pp
It is usually safe to use
.Dv SSL_OP_ALL
to enable the bug workaround options if compatibility with somewhat broken
implementations is desired.
.Pp
The following
.Em modifying
options are available:
.Bl -tag -width Ds
.It Dv SSL_OP_TLS_ROLLBACK_BUG
Disable version rollback attack detection.
.Pp
During the client key exchange, the client must send the same information
about acceptable SSL/TLS protocol levels as during the first hello.
Some clients violate this rule by adapting to the server's answer.
(Example: the client sends a SSLv2 hello and accepts up to SSLv3.1=TLSv1,
the server only understands up to SSLv3.
In this case the client must still use the same SSLv3.1=TLSv1 announcement.
Some clients step down to SSLv3 with respect to the server's answer and violate
the version rollback protection.)
.It Dv SSL_OP_CIPHER_SERVER_PREFERENCE
When choosing a cipher, use the server's preferences instead of the client
preferences.
When not set, the server will always follow the client's preferences.
When set, the server will choose following its own preferences.























.It Dv SSL_OP_NO_TLSv1
Do not use the TLSv1.0 protocol.
Deprecated; use
.Xr SSL_CTX_set_min_proto_version 3
instead.
.It Dv SSL_OP_NO_TLSv1_1
Do not use the TLSv1.1 protocol.
.It Dv SSL_OP_NO_TLSv1_2
Do not use the TLSv1.2 protocol.
Deprecated; use
.Xr SSL_CTX_set_max_proto_version 3
instead.
.It Dv SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION
When performing renegotiation as a server, always start a new session (i.e.,
session resumption requests are only accepted in the initial handshake).
This option is not needed for clients.
.It Dv SSL_OP_NO_TICKET
Normally clients and servers will, where possible, transparently make use of
RFC4507bis tickets for stateless session resumption.

.Pp
If this option is set this functionality is disabled and tickets will not be


used by clients or servers.
.It Dv SSL_OP_LEGACY_SERVER_CONNECT
Allow legacy insecure renegotiation between OpenSSL and unpatched servers

.Em only :
this option is currently set by default.
See the
.Sx SECURE RENEGOTIATION

section for more details.
.El
.Pp
The following options used to be supported at some point in the past
and no longer have any effect:
.Dv SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION ,
.Dv SSL_OP_EPHEMERAL_RSA ,
.Dv SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER ,
.Dv SSL_OP_MICROSOFT_SESS_ID_BUG ,
.Dv SSL_OP_NETSCAPE_CA_DN_BUG ,
.Dv SSL_OP_NETSCAPE_CHALLENGE_BUG ,
.Dv SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG ,
.Dv SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG ,

.Dv SSL_OP_NO_SSLv2 ,
.Dv SSL_OP_NO_SSLv3 ,
.Dv SSL_OP_PKCS1_CHECK_1 ,
.Dv SSL_OP_PKCS1_CHECK_2 ,
.Dv SSL_OP_SAFARI_ECDHE_ECDSA_BUG ,
.Dv SSL_OP_SINGLE_DH_USE ,

.Dv SSL_OP_SSLEAY_080_CLIENT_DH_BUG ,
.Dv SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG ,
.Dv SSL_OP_TLS_BLOCK_PADDING_BUG ,
.Dv SSL_OP_TLS_D5_BUG .

.Sh SECURE RENEGOTIATION
OpenSSL 0.9.8m and later always attempts to use secure renegotiation as
described in RFC5746.
This counters the prefix attack described in CVE-2009-3555 and elsewhere.
.Pp
This attack has far-reaching consequences which application writers should be
aware of.







|
<
<
|
|
<











<
<
<
<
<
<
<
<
<
<
<





>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>












<
<
<
<
|
<
<
>

<
>
>
|
<
<
>
|
<
|
<
>
|












>






>



|
>







151
152
153
154
155
156
157
158


159
160

161
162
163
164
165
166
167
168
169
170
171











172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211




212


213
214

215
216
217


218
219

220

221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
options are available:
.Bl -tag -width Ds
.It Dv SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS
Disables a countermeasure against a TLS 1.0 protocol vulnerability
affecting CBC ciphers, which cannot be handled by some broken SSL
implementations.
This option has no effect for connections using other ciphers.
.It Dv SSL_OP_ALL


This is currently an alias for
.Dv SSL_OP_LEGACY_SERVER_CONNECT .

.El
.Pp
It is usually safe to use
.Dv SSL_OP_ALL
to enable the bug workaround options if compatibility with somewhat broken
implementations is desired.
.Pp
The following
.Em modifying
options are available:
.Bl -tag -width Ds











.It Dv SSL_OP_CIPHER_SERVER_PREFERENCE
When choosing a cipher, use the server's preferences instead of the client
preferences.
When not set, the server will always follow the client's preferences.
When set, the server will choose following its own preferences.
.It Dv SSL_OP_COOKIE_EXCHANGE
Turn on Cookie Exchange as described in RFC4347 Section 4.2.1.
Only affects DTLS connections.
.It Dv SSL_OP_LEGACY_SERVER_CONNECT
Allow legacy insecure renegotiation between OpenSSL and unpatched servers
.Em only :
this option is currently set by default.
See the
.Sx SECURE RENEGOTIATION
section for more details.
.It Dv SSL_OP_NO_QUERY_MTU
Do not query the MTU.
Only affects DTLS connections.
.It Dv SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION
When performing renegotiation as a server, always start a new session (i.e.,
session resumption requests are only accepted in the initial handshake).
This option is not needed for clients.
.It Dv SSL_OP_NO_TICKET
Normally clients and servers will, where possible, transparently make use of
RFC4507bis tickets for stateless session resumption.
.Pp
If this option is set this functionality is disabled and tickets will not be
used by clients or servers.
.It Dv SSL_OP_NO_TLSv1
Do not use the TLSv1.0 protocol.
Deprecated; use
.Xr SSL_CTX_set_min_proto_version 3
instead.
.It Dv SSL_OP_NO_TLSv1_1
Do not use the TLSv1.1 protocol.
.It Dv SSL_OP_NO_TLSv1_2
Do not use the TLSv1.2 protocol.
Deprecated; use
.Xr SSL_CTX_set_max_proto_version 3
instead.




.It Dv SSL_OP_TLS_ROLLBACK_BUG


Disable version rollback attack detection.
.Pp

During the client key exchange, the client must send the same information
about acceptable SSL/TLS protocol levels as during the first hello.
Some clients violate this rule by adapting to the server's answer.


(Example: the client sends a SSLv2 hello and accepts up to SSLv3.1=TLSv1,
the server only understands up to SSLv3.

In this case the client must still use the same SSLv3.1=TLSv1 announcement.

Some clients step down to SSLv3 with respect to the server's answer and violate
the version rollback protection.)
.El
.Pp
The following options used to be supported at some point in the past
and no longer have any effect:
.Dv SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION ,
.Dv SSL_OP_EPHEMERAL_RSA ,
.Dv SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER ,
.Dv SSL_OP_MICROSOFT_SESS_ID_BUG ,
.Dv SSL_OP_NETSCAPE_CA_DN_BUG ,
.Dv SSL_OP_NETSCAPE_CHALLENGE_BUG ,
.Dv SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG ,
.Dv SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG ,
.Dv SSL_OP_NO_COMPRESSION ,
.Dv SSL_OP_NO_SSLv2 ,
.Dv SSL_OP_NO_SSLv3 ,
.Dv SSL_OP_PKCS1_CHECK_1 ,
.Dv SSL_OP_PKCS1_CHECK_2 ,
.Dv SSL_OP_SAFARI_ECDHE_ECDSA_BUG ,
.Dv SSL_OP_SINGLE_DH_USE ,
.Dv SSL_OP_SINGLE_ECDH_USE ,
.Dv SSL_OP_SSLEAY_080_CLIENT_DH_BUG ,
.Dv SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG ,
.Dv SSL_OP_TLS_BLOCK_PADDING_BUG ,
.Dv SSL_OP_TLS_D5_BUG ,
.Dv SSL_OP_TLSEXT_PADDING .
.Sh SECURE RENEGOTIATION
OpenSSL 0.9.8m and later always attempts to use secure renegotiation as
described in RFC5746.
This counters the prefix attack described in CVE-2009-3555 and elsewhere.
.Pp
This attack has far-reaching consequences which application writers should be
aware of.
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
.Pp
If the patched OpenSSL server attempts to renegotiate a fatal
.Em handshake_failure
alert is sent.
This is because the server code may be unaware of the unpatched nature of the
client.
.Pp
.Em N.B.:
a bug in OpenSSL clients earlier than 0.9.8m (all of which are unpatched) will
result in the connection hanging if it receives a
.Em no_renegotiation
alert.
OpenSSL versions 0.9.8m and later will regard a
.Em no_renegotiation
alert as fatal and respond with a fatal
.Em handshake_failure
alert.







<
|
|







271
272
273
274
275
276
277

278
279
280
281
282
283
284
285
286
.Pp
If the patched OpenSSL server attempts to renegotiate a fatal
.Em handshake_failure
alert is sent.
This is because the server code may be unaware of the unpatched nature of the
client.
.Pp

Note that a bug in OpenSSL clients earlier than 0.9.8m (all of which
are unpatched) will result in the connection hanging if it receives a
.Em no_renegotiation
alert.
OpenSSL versions 0.9.8m and later will regard a
.Em no_renegotiation
alert as fatal and respond with a fatal
.Em handshake_failure
alert.
340
341
342
343
344
345
346
347
348











349


350

.Xr openssl 1 ,
.Xr ssl 3 ,
.Xr SSL_clear 3 ,
.Xr SSL_CTX_ctrl 3 ,
.Xr SSL_CTX_set_min_proto_version 3 ,
.Xr SSL_new 3
.Sh HISTORY
.Fn SSL_CTX_clear_options
and











.Fn SSL_clear_options


were first added in OpenSSL 0.9.8m.








|

>
>
>
>
>
>
>
>
>
>
>
|
>
>
|
>
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
.Xr openssl 1 ,
.Xr ssl 3 ,
.Xr SSL_clear 3 ,
.Xr SSL_CTX_ctrl 3 ,
.Xr SSL_CTX_set_min_proto_version 3 ,
.Xr SSL_new 3
.Sh HISTORY
.Fn SSL_CTX_set_options
and
.Fn SSL_set_options
first appeared in SSLeay 0.9.0 and have been available since
.Ox 2.4 .
.Pp
.Fn SSL_CTX_get_options
and
.Fn SSL_get_options
first appeared in OpenSSL 0.9.2b and have been available since
.Ox 2.6 .
.Pp
.Fn SSL_CTX_clear_options ,
.Fn SSL_clear_options ,
and
.Fn SSL_get_secure_renegotiation_support
first appeared in OpenSSL 0.9.8m and have been available since
.Ox 4.9 .
Changes to jni/libressl/man/SSL_CTX_set_quiet_shutdown.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_quiet_shutdown.3,v 1.2 2016/12/01 16:46:59 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2005 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_quiet_shutdown.3,v 1.3 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2005 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 1 2016 $
.Dt SSL_CTX_SET_QUIET_SHUTDOWN 3
.Os
.Sh NAME
.Nm SSL_CTX_set_quiet_shutdown ,
.Nm SSL_CTX_get_quiet_shutdown ,
.Nm SSL_set_quiet_shutdown ,
.Nm SSL_get_quiet_shutdown







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_CTX_SET_QUIET_SHUTDOWN 3
.Os
.Sh NAME
.Nm SSL_CTX_set_quiet_shutdown ,
.Nm SSL_CTX_get_quiet_shutdown ,
.Nm SSL_set_quiet_shutdown ,
.Nm SSL_get_quiet_shutdown
156
157
158
159
160
161
162



.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_clear 3 ,
.Xr SSL_free 3 ,
.Xr SSL_new 3 ,
.Xr SSL_set_shutdown 3 ,
.Xr SSL_shutdown 3










>
>
>
156
157
158
159
160
161
162
163
164
165
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_clear 3 ,
.Xr SSL_free 3 ,
.Xr SSL_new 3 ,
.Xr SSL_set_shutdown 3 ,
.Xr SSL_shutdown 3
.Sh HISTORY
These functions appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_CTX_set_read_ahead.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_read_ahead.3,v 1.1 2016/12/01 16:48:36 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2015, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_read_ahead.3,v 1.3 2018/03/21 16:12:41 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2015, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 1 2016 $
.Dt SSL_CTX_SET_READ_AHEAD 3
.Os
.Sh NAME
.Nm SSL_CTX_set_read_ahead ,
.Nm SSL_CTX_get_read_ahead ,
.Nm SSL_set_read_ahead ,
.Nm SSL_get_read_ahead ,







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_CTX_SET_READ_AHEAD 3
.Os
.Sh NAME
.Nm SSL_CTX_set_read_ahead ,
.Nm SSL_CTX_get_read_ahead ,
.Nm SSL_set_read_ahead ,
.Nm SSL_get_read_ahead ,
121
122
123
124
125
126
127













128
129
130
131
and
.Fn SSL_get_read_ahead
return 0 if reading ahead is off or non-zero otherwise,
except that the return values are undefined for DTLS.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_pending 3













.Sh CAVEATS
Switching read ahead on can impact the behaviour of the
.Xr SSL_pending 3
function.







>
>
>
>
>
>
>
>
>
>
>
>
>




121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
and
.Fn SSL_get_read_ahead
return 0 if reading ahead is off or non-zero otherwise,
except that the return values are undefined for DTLS.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_pending 3
.Sh HISTORY
.Fn SSL_set_read_ahead
and
.Fn SSL_get_read_ahead
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp
.Fn SSL_CTX_set_read_ahead ,
.Fn SSL_CTX_get_read_ahead ,
and
.Fn SSL_CTX_get_default_read_ahead
first appeared in OpenSSL 0.9.2b and have been available since
.Ox 2.6 .
.Sh CAVEATS
Switching read ahead on can impact the behaviour of the
.Xr SSL_pending 3
function.
Changes to jni/libressl/man/SSL_CTX_set_session_cache_mode.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_session_cache_mode.3,v 1.4 2017/04/10 14:00:51 schwarze Exp $
.\"	OpenSSL 67adf0a7 Dec 25 19:58:38 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org> and
.\" Geoff Thorpe <geoff@openssl.org>.
.\" Copyright (c) 2001, 2002 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_session_cache_mode.3,v 1.5 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL 67adf0a7 Dec 25 19:58:38 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org> and
.\" Geoff Thorpe <geoff@openssl.org>.
.\" Copyright (c) 2001, 2002 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: April 10 2017 $
.Dt SSL_CTX_SET_SESSION_CACHE_MODE 3
.Os
.Sh NAME
.Nm SSL_CTX_set_session_cache_mode ,
.Nm SSL_CTX_get_session_cache_mode
.Nd enable/disable session caching
.Sh SYNOPSIS







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_CTX_SET_SESSION_CACHE_MODE 3
.Os
.Sh NAME
.Nm SSL_CTX_set_session_cache_mode ,
.Nm SSL_CTX_get_session_cache_mode
.Nd enable/disable session caching
.Sh SYNOPSIS
181
182
183
184
185
186
187






188
189
190
191
.Xr SSL_CTX_sess_set_cache_size 3 ,
.Xr SSL_CTX_sess_set_get_cb 3 ,
.Xr SSL_CTX_set_session_id_context 3 ,
.Xr SSL_CTX_set_timeout 3 ,
.Xr SSL_session_reused 3 ,
.Xr SSL_set_session 3
.Sh HISTORY






.Dv SSL_SESS_CACHE_NO_INTERNAL_STORE
and
.Dv SSL_SESS_CACHE_NO_INTERNAL
were introduced in OpenSSL 0.9.6h.







>
>
>
>
>
>




181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
.Xr SSL_CTX_sess_set_cache_size 3 ,
.Xr SSL_CTX_sess_set_get_cb 3 ,
.Xr SSL_CTX_set_session_id_context 3 ,
.Xr SSL_CTX_set_timeout 3 ,
.Xr SSL_session_reused 3 ,
.Xr SSL_set_session 3
.Sh HISTORY
.Fn SSL_CTX_set_session_cache_mode
and
.Fn SSL_CTX_get_session_cache_mode
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp
.Dv SSL_SESS_CACHE_NO_INTERNAL_STORE
and
.Dv SSL_SESS_CACHE_NO_INTERNAL
were introduced in OpenSSL 0.9.6h.
Changes to jni/libressl/man/SSL_CTX_set_session_id_context.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_session_id_context.3,v 1.3 2017/04/10 15:37:55 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2004 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_session_id_context.3,v 1.5 2018/03/21 17:58:58 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2004 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: April 10 2017 $
.Dt SSL_CTX_SET_SESSION_ID_CONTEXT 3
.Os
.Sh NAME
.Nm SSL_CTX_set_session_id_context ,
.Nm SSL_set_session_id_context
.Nd set context within which session can be reused (server side only)
.Sh SYNOPSIS







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_CTX_SET_SESSION_ID_CONTEXT 3
.Os
.Sh NAME
.Nm SSL_CTX_set_session_id_context ,
.Nm SSL_set_session_id_context
.Nd set context within which session can be reused (server side only)
.Sh SYNOPSIS
147
148
149
150
151
152
153







The error is logged to the error stack.
.It 1
The operation succeeded.
.El
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_SESSION_set1_id_context 3














>
>
>
>
>
>
>
147
148
149
150
151
152
153
154
155
156
157
158
159
160
The error is logged to the error stack.
.It 1
The operation succeeded.
.El
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_SESSION_set1_id_context 3
.Sh HISTORY
.Fn SSL_set_session_id_context
first appeared in OpenSSL 0.9.2b.
.Fn SSL_CTX_set_session_id_context
first appeared in OpenSSL 0.9.3.
Both functions have been available since
.Ox 2.6 .
Changes to jni/libressl/man/SSL_CTX_set_ssl_version.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_ssl_version.3,v 1.2 2016/12/01 19:50:12 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2001, 2005 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_ssl_version.3,v 1.3 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2001, 2005 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 1 2016 $
.Dt SSL_CTX_SET_SSL_VERSION 3
.Os
.Sh NAME
.Nm SSL_CTX_set_ssl_version ,
.Nm SSL_set_ssl_method ,
.Nm SSL_get_ssl_method
.Nd choose a new TLS/SSL method







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_CTX_SET_SSL_VERSION 3
.Os
.Sh NAME
.Nm SSL_CTX_set_ssl_version ,
.Nm SSL_set_ssl_method ,
.Nm SSL_get_ssl_method
.Nd choose a new TLS/SSL method
122
123
124
125
126
127
128







.El
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_clear 3 ,
.Xr SSL_CTX_new 3 ,
.Xr SSL_new 3 ,
.Xr SSL_set_connect_state 3














>
>
>
>
>
>
>
122
123
124
125
126
127
128
129
130
131
132
133
134
135
.El
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_clear 3 ,
.Xr SSL_CTX_new 3 ,
.Xr SSL_new 3 ,
.Xr SSL_set_connect_state 3
.Sh HISTORY
.Fn SSL_CTX_set_ssl_version ,
.Fn SSL_set_ssl_method ,
and
.Fn SSL_get_ssl_method
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_CTX_set_timeout.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_timeout.3,v 1.2 2016/12/01 19:50:12 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_timeout.3,v 1.3 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 1 2016 $
.Dt SSL_CTX_SET_TIMEOUT 3
.Os
.Sh NAME
.Nm SSL_CTX_set_timeout ,
.Nm SSL_CTX_get_timeout
.Nd manipulate timeout values for session caching
.Sh SYNOPSIS







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_CTX_SET_TIMEOUT 3
.Os
.Sh NAME
.Nm SSL_CTX_set_timeout ,
.Nm SSL_CTX_get_timeout
.Nd manipulate timeout values for session caching
.Sh SYNOPSIS
106
107
108
109
110
111
112






returns the currently set timeout value.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_flush_sessions 3 ,
.Xr SSL_CTX_set_session_cache_mode 3 ,
.Xr SSL_get_default_timeout 3 ,
.Xr SSL_SESSION_get_time 3













>
>
>
>
>
>
106
107
108
109
110
111
112
113
114
115
116
117
118
returns the currently set timeout value.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_flush_sessions 3 ,
.Xr SSL_CTX_set_session_cache_mode 3 ,
.Xr SSL_get_default_timeout 3 ,
.Xr SSL_SESSION_get_time 3
.Sh HISTORY
.Fn SSL_CTX_set_timeout
and
.Fn SSL_CTX_get_timeout
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_CTX_set_tlsext_servername_callback.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_tlsext_servername_callback.3,v 1.2 2017/08/21 09:41:15 schwarze Exp $
.\"	OpenSSL 190b9a03 Jun 28 15:46:13 2017 +0800
.\"	OpenSSL 8c55c461 Mar 29 08:34:37 2017 +1000
.\"
.\" This file was written by Jon Spillett <jon.spillett@oracle.com>
.\" and Paul Yang <yang dot yang at baishancloud dot com>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_tlsext_servername_callback.3,v 1.3 2018/03/23 01:06:56 schwarze Exp $
.\"	OpenSSL 190b9a03 Jun 28 15:46:13 2017 +0800
.\"	OpenSSL 8c55c461 Mar 29 08:34:37 2017 +1000
.\"
.\" This file was written by Jon Spillett <jon.spillett@oracle.com>
.\" and Paul Yang <yang dot yang at baishancloud dot com>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: August 21 2017 $
.Dt SSL_CTX_SET_TLSEXT_SERVERNAME_CALLBACK 3
.Os
.Sh NAME
.Nm SSL_CTX_set_tlsext_servername_callback ,
.Nm SSL_CTX_set_tlsext_servername_arg ,
.Nm SSL_get_servername_type ,
.Nm SSL_get_servername ,







|







46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt SSL_CTX_SET_TLSEXT_SERVERNAME_CALLBACK 3
.Os
.Sh NAME
.Nm SSL_CTX_set_tlsext_servername_callback ,
.Nm SSL_CTX_set_tlsext_servername_arg ,
.Nm SSL_get_servername_type ,
.Nm SSL_get_servername ,
142
143
144
145
146
147
148




.Dv TLSEXT_NAMETYPE_host_name .
.Pp
.Fn SSL_set_tlsext_host_name
returns 1 on success or 0 in case of an error.
.Sh SEE ALSO
.Xr SSL_CTX_callback_ctrl 3 ,
.Xr SSL_CTX_set_alpn_select_cb 3











>
>
>
>
142
143
144
145
146
147
148
149
150
151
152
.Dv TLSEXT_NAMETYPE_host_name .
.Pp
.Fn SSL_set_tlsext_host_name
returns 1 on success or 0 in case of an error.
.Sh SEE ALSO
.Xr SSL_CTX_callback_ctrl 3 ,
.Xr SSL_CTX_set_alpn_select_cb 3
.Sh HISTORY
These functions first appeared in OpenSSL 0.9.8f
and have been available since
.Ox 4.5 .
Changes to jni/libressl/man/SSL_CTX_set_tlsext_status_cb.3.
1
2

3
4
5
6
7
8
9
10
11
12
.\"	$OpenBSD: SSL_CTX_set_tlsext_status_cb.3,v 1.2 2017/04/10 14:00:51 schwarze Exp $
.\"	OpenSSL 43c34894 Nov 30 16:04:51 2015 +0000

.\"
.\" This file was written by Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
|
|
>


|







1
2
3
4
5
6
7
8
9
10
11
12
13
.\" $OpenBSD: SSL_CTX_set_tlsext_status_cb.3,v 1.6 2018/03/24 00:11:37 schwarze Exp $
.\" full merge up to: OpenSSL 43c34894 Nov 30 16:04:51 2015 +0000
.\" selective merge up to: OpenSSL e9b77246 Jan 20 19:58:49 2017 +0100
.\"
.\" This file was written by Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2015, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
44
45
46
47
48
49
50
51
52
53
54
55

56

57
58
59
60
61
62
63
64
65
66
67





68
69
70
71
72





73
74
75
76
77
78
79
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: April 10 2017 $
.Dt SSL_CTX_SET_TLSEXT_STATUS_CB 3
.Os
.Sh NAME
.Nm SSL_CTX_set_tlsext_status_cb ,

.Nm SSL_CTX_set_tlsext_status_arg ,

.Nm SSL_set_tlsext_status_type ,
.Nm SSL_get_tlsext_status_ocsp_resp ,
.Nm SSL_set_tlsext_status_ocsp_resp
.Nd OCSP Certificate Status Request functions
.Sh SYNOPSIS
.In openssl/tls1.h
.Ft long
.Fo SSL_CTX_set_tlsext_status_cb
.Fa "SSL_CTX *ctx"
.Fa "int (*callback)(SSL *, void *)"
.Fc





.Ft long
.Fo SSL_CTX_set_tlsext_status_arg
.Fa "SSL_CTX *ctx"
.Fa "void *arg"
.Fc





.Ft long
.Fo SSL_set_tlsext_status_type
.Fa "SSL *s"
.Fa "int type"
.Fc
.Ft long
.Fo SSL_get_tlsext_status_ocsp_resp







|




>

>











>
>
>
>
>





>
>
>
>
>







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 24 2018 $
.Dt SSL_CTX_SET_TLSEXT_STATUS_CB 3
.Os
.Sh NAME
.Nm SSL_CTX_set_tlsext_status_cb ,
.Nm SSL_CTX_get_tlsext_status_cb ,
.Nm SSL_CTX_set_tlsext_status_arg ,
.Nm SSL_CTX_get_tlsext_status_arg ,
.Nm SSL_set_tlsext_status_type ,
.Nm SSL_get_tlsext_status_ocsp_resp ,
.Nm SSL_set_tlsext_status_ocsp_resp
.Nd OCSP Certificate Status Request functions
.Sh SYNOPSIS
.In openssl/tls1.h
.Ft long
.Fo SSL_CTX_set_tlsext_status_cb
.Fa "SSL_CTX *ctx"
.Fa "int (*callback)(SSL *, void *)"
.Fc
.Ft long
.Fo SSL_CTX_get_tlsext_status_cb
.Fa "SSL_CTX *ctx"
.Fa "int (*callback)(SSL *, void *)"
.Fc
.Ft long
.Fo SSL_CTX_set_tlsext_status_arg
.Fa "SSL_CTX *ctx"
.Fa "void *arg"
.Fc
.Ft long
.Fo SSL_CTX_get_tlsext_status_arg
.Fa "SSL_CTX *ctx"
.Fa "void **arg"
.Fc
.Ft long
.Fo SSL_set_tlsext_status_type
.Fa "SSL *s"
.Fa "int type"
.Fc
.Ft long
.Fo SSL_get_tlsext_status_ocsp_resp
108
109
110
111
112
113
114







115
116
117
118
119
120
121
The callback will be passed as an argument the value previously set via
a call to
.Fn SSL_CTX_set_tlsext_status_arg .
Note that the callback will not be called in the event of a handshake
where session resumption occurs (because there are no Certificates
exchanged in such a handshake).
.Pp







The response returned by the server can be obtained via a call to
.Fn SSL_get_tlsext_status_ocsp_resp .
The value
.Pf * Fa resp
will be updated to point to the OCSP response data and the return value
will be the length of that data.
If the server has not provided any response data, then







>
>
>
>
>
>
>







121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
The callback will be passed as an argument the value previously set via
a call to
.Fn SSL_CTX_set_tlsext_status_arg .
Note that the callback will not be called in the event of a handshake
where session resumption occurs (because there are no Certificates
exchanged in such a handshake).
.Pp
The callback previously set via
.Fn SSL_CTX_set_tlsext_status_cb
can be retrieved by calling
.Fn SSL_CTX_get_tlsext_status_cb ,
and the argument by calling
.Fn SSL_CTX_get_tlsext_status_arg .
.Pp
The response returned by the server can be obtained via a call to
.Fn SSL_get_tlsext_status_ocsp_resp .
The value
.Pf * Fa resp
will be updated to point to the OCSP response data and the return value
will be the length of that data.
If the server has not provided any response data, then
151
152
153
154
155
156
157

158

159
160
161
162
163
164
165
166
167
168















(meaning that the OCSP response that has been set should be returned),
.Dv SSL_TLSEXT_ERR_NOACK
(meaning that an OCSP response should not be returned), or
.Dv SSL_TLSEXT_ERR_ALERT_FATAL
(meaning that a fatal error has occurred).
.Pp
.Fn SSL_CTX_set_tlsext_status_cb ,

.Fn SSL_CTX_set_tlsext_status_arg ,

.Fn SSL_set_tlsext_status_type ,
and
.Fn SSL_set_tlsext_status_ocsp_resp
return 0 on error or 1 on success.
.Pp
.Fn SSL_get_tlsext_status_ocsp_resp
returns the length of the OCSP response data or -1 if there is no OCSP
response data.
.Sh SEE ALSO
.Xr SSL_CTX_callback_ctrl 3






















>

>



|


|
|


>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
(meaning that the OCSP response that has been set should be returned),
.Dv SSL_TLSEXT_ERR_NOACK
(meaning that an OCSP response should not be returned), or
.Dv SSL_TLSEXT_ERR_ALERT_FATAL
(meaning that a fatal error has occurred).
.Pp
.Fn SSL_CTX_set_tlsext_status_cb ,
.Fn SSL_CTX_get_tlsext_status_cb ,
.Fn SSL_CTX_set_tlsext_status_arg ,
.Fn SSL_CTX_get_tlsext_status_arg ,
.Fn SSL_set_tlsext_status_type ,
and
.Fn SSL_set_tlsext_status_ocsp_resp
always return 1, indicating success.
.Pp
.Fn SSL_get_tlsext_status_ocsp_resp
returns the length of the OCSP response data
or \-1 if there is no OCSP response data.
.Sh SEE ALSO
.Xr SSL_CTX_callback_ctrl 3
.Sh HISTORY
.Fn SSL_CTX_set_tlsext_status_cb ,
.Fn SSL_CTX_set_tlsext_status_arg ,
.Fn SSL_set_tlsext_status_type ,
.Fn SSL_get_tlsext_status_ocsp_resp ,
and
.Fn SSL_set_tlsext_status_ocsp_resp
first appeared in OpenSSL 0.9.8h and have been available since
.Ox 4.5 .
.Pp
.Fn SSL_CTX_get_tlsext_status_cb
and
.Fn SSL_CTX_get_tlsext_status_arg
first appeared in OpenSSL 1.1.0 and have been available since
.Ox 6.3 .
Changes to jni/libressl/man/SSL_CTX_set_tlsext_ticket_key_cb.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_tlsext_ticket_key_cb.3,v 1.3 2017/04/10 14:00:51 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Rich Salz <rsalz@akamai.com>
.\" Copyright (c) 2014, 2015, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_tlsext_ticket_key_cb.3,v 1.4 2018/03/23 01:06:56 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Rich Salz <rsalz@akamai.com>
.\" Copyright (c) 2014, 2015, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: April 10 2017 $
.Dt SSL_CTX_SET_TLSEXT_TICKET_KEY_CB 3
.Os
.Sh NAME
.Nm SSL_CTX_set_tlsext_ticket_key_cb
.Nd set a callback for session ticket processing
.Sh SYNOPSIS
.In openssl/tls1.h







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt SSL_CTX_SET_TLSEXT_TICKET_KEY_CB 3
.Os
.Sh NAME
.Nm SSL_CTX_set_tlsext_ticket_key_cb
.Nd set a callback for session ticket processing
.Sh SYNOPSIS
.In openssl/tls1.h
289
290
291
292
293
294
295




.Xr SSL_CTX_add_session 3 ,
.Xr SSL_CTX_callback_ctrl 3 ,
.Xr SSL_CTX_sess_number 3 ,
.Xr SSL_CTX_sess_set_get_cb 3 ,
.Xr SSL_CTX_set_session_id_context 3 ,
.Xr SSL_session_reused 3 ,
.Xr SSL_set_session 3











>
>
>
>
289
290
291
292
293
294
295
296
297
298
299
.Xr SSL_CTX_add_session 3 ,
.Xr SSL_CTX_callback_ctrl 3 ,
.Xr SSL_CTX_sess_number 3 ,
.Xr SSL_CTX_sess_set_get_cb 3 ,
.Xr SSL_CTX_set_session_id_context 3 ,
.Xr SSL_session_reused 3 ,
.Xr SSL_set_session 3
.Sh HISTORY
.Fn SSL_CTX_set_tlsext_ticket_key_cb
first appeared in OpenSSL 0.9.8h and has been available since
.Ox 4.5 .
Added jni/libressl/man/SSL_CTX_set_tlsext_use_srtp.3.
































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
.\" $OpenBSD: SSL_CTX_set_tlsext_use_srtp.3,v 1.2 2018/03/24 00:55:37 schwarze Exp $
.\" full merge up to: OpenSSL 3733ce61 Aug 21 08:44:14 2017 +0100
.\"
.\" This file was written by Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2017 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\"
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in
.\"    the documentation and/or other materials provided with the
.\"    distribution.
.\"
.\" 3. All advertising materials mentioning features or use of this
.\"    software must display the following acknowledgment:
.\"    "This product includes software developed by the OpenSSL Project
.\"    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
.\"
.\" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
.\"    endorse or promote products derived from this software without
.\"    prior written permission. For written permission, please contact
.\"    openssl-core@openssl.org.
.\"
.\" 5. Products derived from this software may not be called "OpenSSL"
.\"    nor may "OpenSSL" appear in their names without prior written
.\"    permission of the OpenSSL Project.
.\"
.\" 6. Redistributions of any form whatsoever must retain the following
.\"    acknowledgment:
.\"    "This product includes software developed by the OpenSSL Project
.\"    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
.\" EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
.\" ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 24 2018 $
.Dt SSL_CTX_SET_TLSEXT_USE_SRTP 3
.Os
.Sh NAME
.Nm SSL_CTX_set_tlsext_use_srtp ,
.Nm SSL_set_tlsext_use_srtp ,
.Nm SSL_get_srtp_profiles ,
.Nm SSL_get_selected_srtp_profile
.Nd Configure and query SRTP support
.Sh SYNOPSIS
.In openssl/srtp.h
.Ft int
.Fo SSL_CTX_set_tlsext_use_srtp
.Fa "SSL_CTX *ctx"
.Fa "const char *profiles"
.Fc
.Ft int
.Fo SSL_set_tlsext_use_srtp
.Fa "SSL *ssl"
.Fa "const char *profiles"
.Fc
.Ft STACK_OF(SRTP_PROTECTION_PROFILE) *
.Fo SSL_get_srtp_profiles
.Fa "SSL *ssl"
.Fc
.Ft SRTP_PROTECTION_PROFILE *
.Fo SSL_get_selected_srtp_profile
.Fa "SSL *ssl"
.Fc
.Sh DESCRIPTION
SRTP is the Secure Real-Time Transport Protocol.
OpenSSL implements support for the "use_srtp" DTLS extension
defined in RFC5764.
This provides a mechanism for establishing SRTP keying material,
algorithms and parameters using DTLS.
This capability may be used as part of an implementation that
conforms to RFC5763.
OpenSSL does not implement SRTP itself or RFC5763.
Note that OpenSSL does not support the use of SRTP Master Key
Identifiers (MKIs).
Also note that this extension is only supported in DTLS.
Any SRTP configuration is ignored if a TLS connection is attempted.
.Pp
An OpenSSL client wishing to send the "use_srtp" extension should call
.Fn SSL_CTX_set_tlsext_use_srtp
to set its use for all
.Vt SSL
objects subsequently created from
.Fa ctx .
Alternatively a client may call
.Fn SSL_set_tlsext_use_srtp
to set its use for an individual
.Vt SSL
object.
The
.Fa profiles
parameter should point to a NUL-terminated, colon delimited list of
SRTP protection profile names.
.Pp
The currently supported protection profile names are:
.Bl -tag -width Ds
.It Dv SRTP_AES128_CM_SHA1_80
This corresponds to SRTP_AES128_CM_HMAC_SHA1_80 defined in RFC5764.
.It Dv SRTP_AES128_CM_SHA1_32
This corresponds to SRTP_AES128_CM_HMAC_SHA1_32 defined in RFC5764.
.El
.Pp
Supplying an unrecognised protection profile name results in an error.
.Pp
An OpenSSL server wishing to support the "use_srtp" extension should
also call
.Fn SSL_CTX_set_tlsext_use_srtp
or
.Fn SSL_set_tlsext_use_srtp
to indicate the protection profiles that it is willing to negotiate.
.Pp
The currently configured list of protection profiles for either a client
or a server can be obtained by calling
.Fn SSL_get_srtp_profiles .
This returns a stack of
.Vt SRTP_PROTECTION_PROFILE
objects.
The memory pointed to in the return value of this function should not be
freed by the caller.
.Pp
After a handshake has been completed, the negotiated SRTP protection
profile (if any) can be obtained (on the client or the server) by
calling
.Fn SSL_get_selected_srtp_profile .
This function returns
.Dv NULL
if no SRTP protection profile was negotiated.
The memory returned from this function should not be freed by the
caller.
.Pp
If an SRTP protection profile has been sucessfully negotiated,
then the SRTP keying material (on both the client and server)
should be obtained by calling
.Xr SSL_export_keying_material 3
with a
.Fa label
of
.Qq EXTRACTOR-dtls_srtp ,
a
.Fa context
of
.Dv NULL ,
and a
.Fa use_context
argument of 0.
The total length of keying material obtained should be equal to two
times the sum of the master key length and the salt length as defined
for the protection profile in use.
This provides the client write master key, the server write master key,
the client write master salt and the server write master salt in that
order.
.Sh RETURN VALUES
Contrary to OpenSSL conventions,
.Fn SSL_CTX_set_tlsext_use_srtp
and
.Fn SSL_set_tlsext_use_srtp
return 0 on success or 1 on error.
.Pp
.Fn SSL_get_srtp_profiles
returns a stack of
.Vt SRTP_PROTECTION_PROFILE
objects on success or
.Dv NULL
on error or if no protection profiles have been configured.
.Pp
.Fn SSL_get_selected_srtp_profile
returns a pointer to an
.Vt SRTP_PROTECTION_PROFILE
object if one has been negotiated or
.Dv NULL
otherwise.
.Sh SEE ALSO
.Xr SSL_export_keying_material 3
.Sh HISTORY
These functions first appeared in OpenSSL 1.0.1
and have been available since
.Ox 5.3 .
Changes to jni/libressl/man/SSL_CTX_set_tmp_dh_callback.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_tmp_dh_callback.3,v 1.4 2017/08/12 12:31:30 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2014, 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_tmp_dh_callback.3,v 1.6 2018/03/21 16:12:41 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2014, 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: August 12 2017 $
.Dt SSL_CTX_SET_TMP_DH_CALLBACK 3
.Os
.Sh NAME
.Nm SSL_CTX_set_tmp_dh_callback ,
.Nm SSL_CTX_set_tmp_dh ,
.Nm SSL_set_tmp_dh_callback ,
.Nm SSL_set_tmp_dh







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_CTX_SET_TMP_DH_CALLBACK 3
.Os
.Sh NAME
.Nm SSL_CTX_set_tmp_dh_callback ,
.Nm SSL_CTX_set_tmp_dh ,
.Nm SSL_set_tmp_dh_callback ,
.Nm SSL_set_tmp_dh
217
218
219
220
221
222
223












.Ed
.Sh SEE ALSO
.Xr openssl 1 ,
.Xr ssl 3 ,
.Xr SSL_CTX_set_cipher_list 3 ,
.Xr SSL_CTX_set_options 3 ,
.Xr SSL_set_tmp_ecdh 3



















>
>
>
>
>
>
>
>
>
>
>
>
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
.Ed
.Sh SEE ALSO
.Xr openssl 1 ,
.Xr ssl 3 ,
.Xr SSL_CTX_set_cipher_list 3 ,
.Xr SSL_CTX_set_options 3 ,
.Xr SSL_set_tmp_ecdh 3
.Sh HISTORY
.Fn SSL_CTX_set_tmp_dh_callback
and
.Fn SSL_CTX_set_tmp_dh
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp
.Fn SSL_set_tmp_dh_callback
and
.Fn SSL_set_tmp_dh
first appeared in OpenSSL 0.9.2b and have been available since
.Ox 2.6 .
Changes to jni/libressl/man/SSL_CTX_set_tmp_rsa_callback.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_tmp_rsa_callback.3,v 1.4 2017/08/12 12:21:55 schwarze Exp $
.\"	OpenSSL 0b30fc90 Dec 19 15:23:05 2013 -0500
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2006, 2013 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_set_tmp_rsa_callback.3,v 1.7 2018/03/24 00:55:37 schwarze Exp $
.\"	OpenSSL 0b30fc90 Dec 19 15:23:05 2013 -0500
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2006, 2013 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100














.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: August 12 2017 $
.Dt SSL_CTX_SET_TMP_RSA_CALLBACK 3
.Os
.Sh NAME
.Nm SSL_CTX_set_tmp_rsa_callback ,
.Nm SSL_CTX_set_tmp_rsa ,
.Nm SSL_CTX_need_tmp_RSA ,
.Nm SSL_set_tmp_rsa_callback ,
.Nm SSL_set_tmp_rsa ,
.Nm SSL_need_tmp_rsa
.Nd handle RSA keys for ephemeral key exchange
.Sh SYNOPSIS
.In openssl/ssl.h
.Ft void
.Fo SSL_CTX_set_tmp_rsa_callback
.Fa "SSL_CTX *ctx"
.Fa "RSA *(*tmp_rsa_callback)(SSL *ssl, int is_export, int keylength)"
.Fc
.Ft long
.Fn SSL_CTX_set_tmp_rsa "SSL_CTX *ctx" "RSA *rsa"
.Ft long
.Fn SSL_CTX_need_tmp_RSA "SSL_CTX *ctx"
.Ft void
.Fo SSL_set_tmp_rsa_callback
.Fa "SSL_CTX *ctx"
.Fa "RSA *(*tmp_rsa_callback)(SSL *ssl, int is_export, int keylength)"
.Fc
.Ft long
.Fn SSL_set_tmp_rsa "SSL *ssl" "RSA *rsa"
.Ft long
.Fn SSL_need_tmp_rsa "SSL *ssl"
.Sh DESCRIPTION
Since they mattered only for deliberately insecure RSA authentication
mandated by historical U.S. export restrictions, these functions
are all deprecated and have no effect except that
.Fn SSL_CTX_set_tmp_rsa_callback ,
.Fn SSL_CTX_set_tmp_rsa ,
.Fn SSL_set_tmp_rsa_callback ,
and
.Fn SSL_set_tmp_rsa
issue error messages when called.
.Sh RETURN VALUES
These functions always return 0, indicating failure.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_set_cipher_list 3 ,
.Xr SSL_CTX_set_options 3 ,
.Xr SSL_CTX_set_tmp_dh_callback 3 ,
.Xr SSL_new 3 ,
.Xr SSL_set_tmp_ecdh 3





















|








|




















|



















>
>
>
>
>
>
>
>
>
>
>
>
>
>
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 24 2018 $
.Dt SSL_CTX_SET_TMP_RSA_CALLBACK 3
.Os
.Sh NAME
.Nm SSL_CTX_set_tmp_rsa_callback ,
.Nm SSL_CTX_set_tmp_rsa ,
.Nm SSL_CTX_need_tmp_RSA ,
.Nm SSL_set_tmp_rsa_callback ,
.Nm SSL_set_tmp_rsa ,
.Nm SSL_need_tmp_RSA
.Nd handle RSA keys for ephemeral key exchange
.Sh SYNOPSIS
.In openssl/ssl.h
.Ft void
.Fo SSL_CTX_set_tmp_rsa_callback
.Fa "SSL_CTX *ctx"
.Fa "RSA *(*tmp_rsa_callback)(SSL *ssl, int is_export, int keylength)"
.Fc
.Ft long
.Fn SSL_CTX_set_tmp_rsa "SSL_CTX *ctx" "RSA *rsa"
.Ft long
.Fn SSL_CTX_need_tmp_RSA "SSL_CTX *ctx"
.Ft void
.Fo SSL_set_tmp_rsa_callback
.Fa "SSL_CTX *ctx"
.Fa "RSA *(*tmp_rsa_callback)(SSL *ssl, int is_export, int keylength)"
.Fc
.Ft long
.Fn SSL_set_tmp_rsa "SSL *ssl" "RSA *rsa"
.Ft long
.Fn SSL_need_tmp_RSA "SSL *ssl"
.Sh DESCRIPTION
Since they mattered only for deliberately insecure RSA authentication
mandated by historical U.S. export restrictions, these functions
are all deprecated and have no effect except that
.Fn SSL_CTX_set_tmp_rsa_callback ,
.Fn SSL_CTX_set_tmp_rsa ,
.Fn SSL_set_tmp_rsa_callback ,
and
.Fn SSL_set_tmp_rsa
issue error messages when called.
.Sh RETURN VALUES
These functions always return 0, indicating failure.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_set_cipher_list 3 ,
.Xr SSL_CTX_set_options 3 ,
.Xr SSL_CTX_set_tmp_dh_callback 3 ,
.Xr SSL_new 3 ,
.Xr SSL_set_tmp_ecdh 3
.Sh HISTORY
.Fn SSL_CTX_set_tmp_rsa_callback ,
.Fn SSL_CTX_set_tmp_rsa ,
and
.Fn SSL_CTX_need_tmp_RSA
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp
.Fn SSL_set_tmp_rsa_callback
.Fn SSL_set_tmp_rsa ,
and
.Fn SSL_need_tmp_RSA
first appeared in OpenSSL 0.9.2b and have been available since
.Ox 2.6 .
Changes to jni/libressl/man/SSL_CTX_set_verify.3.
1
2

3
4
5
6
7
8
9
.\"	$OpenBSD: SSL_CTX_set_verify.3,v 1.3 2016/12/16 15:39:08 jmc Exp $
.\"	OpenSSL 9b86974e Aug 17 15:21:33 2015 -0400

.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2001, 2002, 2003, 2014 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|
|
>







1
2
3
4
5
6
7
8
9
10
.\" $OpenBSD: SSL_CTX_set_verify.3,v 1.6 2018/03/21 17:58:58 schwarze Exp $
.\" full merge up to: OpenSSL 9b86974e Aug 17 15:21:33 2015 -0400
.\" selective merge up to: OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2001, 2002, 2003, 2014 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 16 2016 $
.Dt SSL_CTX_SET_VERIFY 3
.Os
.Sh NAME
.Nm SSL_CTX_set_verify ,
.Nm SSL_set_verify ,
.Nm SSL_CTX_set_verify_depth ,
.Nm SSL_set_verify_depth







|







46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_CTX_SET_VERIFY 3
.Os
.Sh NAME
.Nm SSL_CTX_set_verify ,
.Nm SSL_set_verify ,
.Nm SSL_CTX_set_verify_depth ,
.Nm SSL_set_verify_depth
112
113
114
115
116
117
118





119
120
121
122
123
124
125
remains.
If no special callback was set before, the default callback for the underlying
.Fa ctx
is used, that was valid at the time
.Fa ssl
was created with
.Xr SSL_new 3 .





.Pp
.Fn SSL_CTX_set_verify_depth
sets the maximum
.Fa depth
for the certificate chain verification that shall be allowed for
.Fa ctx .
(See the







>
>
>
>
>







113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
remains.
If no special callback was set before, the default callback for the underlying
.Fa ctx
is used, that was valid at the time
.Fa ssl
was created with
.Xr SSL_new 3 .
Within the callback function,
.Xr SSL_get_ex_data_X509_STORE_CTX_idx 3
can be called to get the data index of the current
.Vt SSL
object that is doing the verification.
.Pp
.Fn SSL_CTX_set_verify_depth
sets the maximum
.Fa depth
for the certificate chain verification that shall be allowed for
.Fa ctx .
(See the
434
435
436
437
438
439
440












441
442
443
444
445
446
447
.Xr SSL_CTX_load_verify_locations 3 ,
.Xr SSL_CTX_set_cert_verify_callback 3 ,
.Xr SSL_get_ex_data_X509_STORE_CTX_idx 3 ,
.Xr SSL_get_ex_new_index 3 ,
.Xr SSL_get_peer_certificate 3 ,
.Xr SSL_get_verify_result 3 ,
.Xr SSL_new 3












.Sh BUGS
In client mode, it is not checked whether the
.Dv SSL_VERIFY_PEER
flag is set, but whether
.Dv SSL_VERIFY_NONE
is not set.
This can lead to unexpected behaviour, if the







>
>
>
>
>
>
>
>
>
>
>
>







440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
.Xr SSL_CTX_load_verify_locations 3 ,
.Xr SSL_CTX_set_cert_verify_callback 3 ,
.Xr SSL_get_ex_data_X509_STORE_CTX_idx 3 ,
.Xr SSL_get_ex_new_index 3 ,
.Xr SSL_get_peer_certificate 3 ,
.Xr SSL_get_verify_result 3 ,
.Xr SSL_new 3
.Sh HISTORY
.Fn SSL_CTX_set_verify
and
.Fn SSL_set_verify
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp
.Fn SSL_CTX_set_verify_depth
and
.Fn SSL_set_verify_depth
first appeared in OpenSSL 0.9.3 and have been available since
.Ox 2.6 .
.Sh BUGS
In client mode, it is not checked whether the
.Dv SSL_VERIFY_PEER
flag is set, but whether
.Dv SSL_VERIFY_NONE
is not set.
This can lead to unexpected behaviour, if the
Changes to jni/libressl/man/SSL_CTX_use_certificate.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_use_certificate.3,v 1.5 2017/08/20 23:18:53 schwarze Exp $
.\"	OpenSSL e248596b Apr 8 22:49:57 2005 +0000
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2001, 2002, 2003, 2005 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_CTX_use_certificate.3,v 1.7 2018/03/24 00:55:37 schwarze Exp $
.\"	OpenSSL e248596b Apr 8 22:49:57 2005 +0000
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2001, 2002, 2003, 2005 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: August 20 2017 $
.Dt SSL_CTX_USE_CERTIFICATE 3
.Os
.Sh NAME
.Nm SSL_CTX_use_certificate ,
.Nm SSL_CTX_use_certificate_ASN1 ,
.Nm SSL_CTX_use_certificate_file ,
.Nm SSL_use_certificate ,







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 24 2018 $
.Dt SSL_CTX_USE_CERTIFICATE 3
.Os
.Sh NAME
.Nm SSL_CTX_use_certificate ,
.Nm SSL_CTX_use_certificate_ASN1 ,
.Nm SSL_CTX_use_certificate_file ,
.Nm SSL_use_certificate ,
388
389
390
391
392
393
394




























395
396
397
398
399
400
401




.Xr SSL_CTX_load_verify_locations 3 ,
.Xr SSL_CTX_set_cipher_list 3 ,
.Xr SSL_CTX_set_client_cert_cb 3 ,
.Xr SSL_CTX_set_default_passwd_cb 3 ,
.Xr SSL_new 3 ,
.Xr X509_check_private_key 3
.Sh HISTORY




























Support for DER encoded private keys
.Pq Dv SSL_FILETYPE_ASN1
in
.Fn SSL_CTX_use_PrivateKey_file
and
.Fn SSL_use_PrivateKey_file
was added in 0.9.8.











>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







>
>
>
>
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
.Xr SSL_CTX_load_verify_locations 3 ,
.Xr SSL_CTX_set_cipher_list 3 ,
.Xr SSL_CTX_set_client_cert_cb 3 ,
.Xr SSL_CTX_set_default_passwd_cb 3 ,
.Xr SSL_new 3 ,
.Xr X509_check_private_key 3
.Sh HISTORY
.Fn SSL_CTX_use_certificate ,
.Fn SSL_CTX_use_certificate_ASN1 ,
.Fn SSL_CTX_use_certificate_file ,
.Fn SSL_use_certificate ,
.Fn SSL_use_certificate_ASN1 ,
.Fn SSL_use_certificate_file ,
.Fn SSL_CTX_use_PrivateKey ,
.Fn SSL_CTX_use_PrivateKey_ASN1 ,
.Fn SSL_CTX_use_PrivateKey_file ,
.Fn SSL_CTX_use_RSAPrivateKey ,
.Fn SSL_CTX_use_RSAPrivateKey_ASN1 ,
.Fn SSL_CTX_use_RSAPrivateKey_file ,
.Fn SSL_use_PrivateKey_file ,
.Fn SSL_use_PrivateKey_ASN1 ,
.Fn SSL_use_PrivateKey ,
.Fn SSL_use_RSAPrivateKey ,
.Fn SSL_use_RSAPrivateKey_ASN1 ,
.Fn SSL_use_RSAPrivateKey_file ,
.Fn SSL_CTX_check_private_key ,
and
.Fn SSL_check_private_key
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp
.Fn SSL_CTX_use_certificate_chain_file
first appeared in OpenSSL 0.9.4 and has been available since
.Ox 2.6 .
.Pp
Support for DER encoded private keys
.Pq Dv SSL_FILETYPE_ASN1
in
.Fn SSL_CTX_use_PrivateKey_file
and
.Fn SSL_use_PrivateKey_file
was added in 0.9.8.
.Pp
.Fn SSL_CTX_use_certificate_chain_mem
first appeared in
.Ox 5.7 .
Changes to jni/libressl/man/SSL_SESSION_free.3.
1
2
3
4

5

6
7
8
9
10
11
12
.\"	$OpenBSD: SSL_SESSION_free.3,v 1.2 2016/12/06 18:53:55 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.

.\" Copyright (c) 2000, 2001, 2009 The OpenSSL Project.  All rights reserved.

.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
|
|

|
>
|
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
.\" $OpenBSD: SSL_SESSION_free.3,v 1.5 2018/03/24 00:55:37 schwarze Exp $
.\" full merge up to: OpenSSL b31db505 Mar 24 16:01:50 2017 +0000
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>
.\" and Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2000, 2001, 2009, 2017 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
44
45
46
47
48
49
50
51
52
53
54

55
56
57
58


59
60
61
62
63
64
65

66
67

68

69

70
71
72
73
74
75
76
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 6 2016 $
.Dt SSL_SESSION_FREE 3
.Os
.Sh NAME

.Nm SSL_SESSION_free
.Nd free an allocated SSL_SESSION structure
.Sh SYNOPSIS
.In openssl/ssl.h


.Ft void
.Fn SSL_SESSION_free "SSL_SESSION *session"
.Sh DESCRIPTION
.Fn SSL_SESSION_free
decrements the reference count of
.Fa session
and removes the

.Vt SSL_SESSION
structure pointed to by

.Fa session

and frees up the allocated memory, if the reference count has reached 0.

If
.Fa session
is a
.Dv NULL
pointer, no action occurs.
.Pp
.Vt SSL_SESSION







|



>

|


>
>



|
|

|
>
|
<
>

>
|
>







46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72

73
74
75
76
77
78
79
80
81
82
83
84
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 24 2018 $
.Dt SSL_SESSION_FREE 3
.Os
.Sh NAME
.Nm SSL_SESSION_up_ref ,
.Nm SSL_SESSION_free
.Nd SSL_SESSION reference counting
.Sh SYNOPSIS
.In openssl/ssl.h
.Ft int
.Fn SSL_SESSION_up_ref "SSL_SESSION *session"
.Ft void
.Fn SSL_SESSION_free "SSL_SESSION *session"
.Sh DESCRIPTION
.Fn SSL_SESSION_up_ref
increments the reference count of the given
.Fa session
by 1.
.Pp
.Fn SSL_SESSION_free

decrements the reference count of the given
.Fa session
by 1.
If the reference count reaches 0, it frees the memory used by the
.Fa session .
If
.Fa session
is a
.Dv NULL
pointer, no action occurs.
.Pp
.Vt SSL_SESSION
116
117
118
119
120
121
122



123
124
125
126
127
128








.Vt SSL_SESSION
object was generated outside a TLS handshake operation, e.g., by using
.Xr d2i_SSL_SESSION 3 .
It must not be called on other
.Vt SSL_SESSION
objects, as this would cause incorrect reference counts and therefore program
failures.



.Sh SEE ALSO
.Xr d2i_SSL_SESSION 3 ,
.Xr SSL_CTX_flush_sessions 3 ,
.Xr SSL_CTX_set_session_cache_mode 3 ,
.Xr SSL_get_session 3 ,
.Xr SSL_SESSION_new 3















>
>
>






>
>
>
>
>
>
>
>
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
.Vt SSL_SESSION
object was generated outside a TLS handshake operation, e.g., by using
.Xr d2i_SSL_SESSION 3 .
It must not be called on other
.Vt SSL_SESSION
objects, as this would cause incorrect reference counts and therefore program
failures.
.Sh RETURN VALUES
.Fn SSL_SESSION_up_ref
returns 1 on success or 0 on error.
.Sh SEE ALSO
.Xr d2i_SSL_SESSION 3 ,
.Xr SSL_CTX_flush_sessions 3 ,
.Xr SSL_CTX_set_session_cache_mode 3 ,
.Xr SSL_get_session 3 ,
.Xr SSL_SESSION_new 3
.Sh HISTORY
.Fn SSL_SESSION_free
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
.Pp
.Fn SSL_SESSION_up_ref
first appeared in OpenSSL 1.1.0 and has been available since
.Ox 6.3 .
Changes to jni/libressl/man/SSL_SESSION_get0_peer.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_SESSION_get0_peer.3,v 1.1 2017/04/10 15:37:55 schwarze Exp $
.\"	OpenSSL SSL_SESSION_get0_peer.pod b31db505 Mar 24 16:01:50 2017 +0000
.\"
.\" This file was written by Matt Caswell <matt@openssl.org>
.\" Copyright (c) 2017 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_SESSION_get0_peer.3,v 1.2 2018/03/23 05:50:30 schwarze Exp $
.\"	OpenSSL SSL_SESSION_get0_peer.pod b31db505 Mar 24 16:01:50 2017 +0000
.\"
.\" This file was written by Matt Caswell <matt@openssl.org>
.\" Copyright (c) 2017 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: April 10 2017 $
.Dt SSL_SESSION_GET0_PEER 3
.Os
.Sh NAME
.Nm SSL_SESSION_get0_peer
.Nd get details about peer's certificate for a session
.Sh SYNOPSIS
.In openssl/ssl.h







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt SSL_SESSION_GET0_PEER 3
.Os
.Sh NAME
.Nm SSL_SESSION_get0_peer
.Nd get details about peer's certificate for a session
.Sh SYNOPSIS
.In openssl/ssl.h
70
71
72
73
74
75
76




The caller should not free the returned value, unless
.Xr X509_up_ref 3
has also been called.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_get_session 3 ,
.Xr SSL_SESSION_new 3











>
>
>
>
70
71
72
73
74
75
76
77
78
79
80
The caller should not free the returned value, unless
.Xr X509_up_ref 3
has also been called.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_get_session 3 ,
.Xr SSL_SESSION_new 3
.Sh HISTORY
.Fn SSL_SESSION_get0_peer
first appeared in OpenSSL 1.0.1 and has been available since
.Ox 5.3 .
Changes to jni/libressl/man/SSL_SESSION_get_compress_id.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_SESSION_get_compress_id.3,v 1.1 2017/04/10 15:37:55 schwarze Exp $
.\"	OpenSSL SSL_SESSION_get_compress_id.pod b31db505 Mar 24 16:01:50 2017
.\"
.\" This file was written by Matt Caswell <matt@openssl.org>
.\" Copyright (c) 2017 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_SESSION_get_compress_id.3,v 1.3 2018/03/23 05:50:30 schwarze Exp $
.\"	OpenSSL SSL_SESSION_get_compress_id.pod b31db505 Mar 24 16:01:50 2017
.\"
.\" This file was written by Matt Caswell <matt@openssl.org>
.\" Copyright (c) 2017 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71


72




.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: April 10 2017 $
.Dt SSL_SESSION_GET_COMPRESS_ID 3
.Os
.Sh NAME
.Nm SSL_SESSION_get_compress_id
.Nd get details about the compression associated with a session
.Sh SYNOPSIS
.In openssl/ssl.h
.Ft unsigned int
.Fo SSL_SESSION_get_compress_id
.Fa "const SSL_SESSION *s"
.Fc
.Sh DESCRIPTION
If compression has been negotiated for an ssl session,
.Fn SSL_SESSION_get_compress_id
returns the id for the compression method, or 0 otherwise.
The only built-in supported compression method is zlib,
which has an id of 1.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_get_session 3 ,


.Xr SSL_SESSION_new 3











|




















>
>

>
>
>
>
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt SSL_SESSION_GET_COMPRESS_ID 3
.Os
.Sh NAME
.Nm SSL_SESSION_get_compress_id
.Nd get details about the compression associated with a session
.Sh SYNOPSIS
.In openssl/ssl.h
.Ft unsigned int
.Fo SSL_SESSION_get_compress_id
.Fa "const SSL_SESSION *s"
.Fc
.Sh DESCRIPTION
If compression has been negotiated for an ssl session,
.Fn SSL_SESSION_get_compress_id
returns the id for the compression method, or 0 otherwise.
The only built-in supported compression method is zlib,
which has an id of 1.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_get_session 3 ,
.Xr SSL_SESSION_get_id 3 ,
.Xr SSL_SESSION_get_protocol_version 3 ,
.Xr SSL_SESSION_new 3
.Sh HISTORY
.Fn SSL_SESSION_get_compress_id
first appeared in OpenSSL 1.0.1 and has been available since
.Ox 5.3 .
Changes to jni/libressl/man/SSL_SESSION_get_ex_new_index.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_SESSION_get_ex_new_index.3,v 1.2 2016/12/06 22:41:16 schwarze Exp $
.\"	OpenSSL 9b86974e Aug 17 15:21:33 2015 -0400
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2005 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_SESSION_get_ex_new_index.3,v 1.3 2018/03/21 08:06:34 schwarze Exp $
.\"	OpenSSL 9b86974e Aug 17 15:21:33 2015 -0400
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2005 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 6 2016 $
.Dt SSL_SESSION_GET_EX_NEW_INDEX 3
.Os
.Sh NAME
.Nm SSL_SESSION_get_ex_new_index ,
.Nm SSL_SESSION_set_ex_data ,
.Nm SSL_SESSION_get_ex_data
.Nd internal application specific data functions







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_SESSION_GET_EX_NEW_INDEX 3
.Os
.Sh NAME
.Nm SSL_SESSION_get_ex_new_index ,
.Nm SSL_SESSION_set_ex_data ,
.Nm SSL_SESSION_get_ex_data
.Nd internal application specific data functions
121
122
123
124
125
126
127







and
.Xr PEM_write_bio_SSL_SESSION 3 )
and can therefore not be restored.
.Sh SEE ALSO
.Xr CRYPTO_set_ex_data 3 ,
.Xr RSA_get_ex_new_index 3 ,
.Xr ssl 3














>
>
>
>
>
>
>
121
122
123
124
125
126
127
128
129
130
131
132
133
134
and
.Xr PEM_write_bio_SSL_SESSION 3 )
and can therefore not be restored.
.Sh SEE ALSO
.Xr CRYPTO_set_ex_data 3 ,
.Xr RSA_get_ex_new_index 3 ,
.Xr ssl 3
.Sh HISTORY
.Fn SSL_SESSION_get_ex_new_index ,
.Fn SSL_SESSION_set_ex_data ,
and
.Fn SSL_SESSION_get_ex_data
first appeared in SSLeay 0.9.0 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_SESSION_get_id.3.
1

2
3

4
5
6
7
8
9
10
11
12
.\"	$OpenBSD: SSL_SESSION_get_id.3,v 1.1 2017/04/10 15:37:55 schwarze Exp $

.\"	OpenSSL SSL_SESSION_set1_id.pod b31db505 Mar 24 16:01:50 2017 +0000
.\"

.\" This file was written by Matt Caswell <matt@openssl.org>
.\" Copyright (c) 2017 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
|
>
|

>
|
|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
.\" $OpenBSD: SSL_SESSION_get_id.3,v 1.6 2018/03/24 00:55:37 schwarze Exp $
.\" full merge up to:
.\" OpenSSL SSL_SESSION_set1_id 17b60280 Dec 21 09:08:25 2017 +0100
.\"
.\" This file was written by Remi Gacogne <rgacogne-github@coredump.fr>
.\" and Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2016, 2017 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
44
45
46
47
48
49
50
51
52
53
54
55

56
57
58
59
60
61
62
63






64
65
66
67
68
69
70
71
















72
73
74
75



76








.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: April 10 2017 $
.Dt SSL_SESSION_GET_ID 3
.Os
.Sh NAME
.Nm SSL_SESSION_get_id

.Nd get the SSL session ID
.Sh SYNOPSIS
.In openssl/ssl.h
.Ft const unsigned char *
.Fo SSL_SESSION_get_id
.Fa "const SSL_SESSION *s"
.Fa "unsigned int *len"
.Fc






.Sh DESCRIPTION
.Fn SSL_SESSION_get_id
returns a pointer to the internal session id value for the session
.Fa s .
The length of the id in bytes is stored in
.Pf * Fa len .
The length may be 0.
The caller should not free the returned pointer directly.
















.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_copy_session_id 3 ,
.Xr SSL_get_session 3 ,



.Xr SSL_SESSION_new 3















|



|
>
|







>
>
>
>
>
>


|

|



>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>




>
>
>

>
>
>
>
>
>
>
>
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 24 2018 $
.Dt SSL_SESSION_GET_ID 3
.Os
.Sh NAME
.Nm SSL_SESSION_get_id ,
.Nm SSL_SESSION_set1_id
.Nd get and set the SSL session ID
.Sh SYNOPSIS
.In openssl/ssl.h
.Ft const unsigned char *
.Fo SSL_SESSION_get_id
.Fa "const SSL_SESSION *s"
.Fa "unsigned int *len"
.Fc
.Ft int
.Fo SSL_SESSION_set1_id
.Fa "SSL_SESSION *s"
.Fa "const unsigned char *sid"
.Fa "unsigned int sid_len"
.Fc
.Sh DESCRIPTION
.Fn SSL_SESSION_get_id
returns a pointer to the internal session ID value for the session
.Fa s .
The length of the ID in bytes is stored in
.Pf * Fa len .
The length may be 0.
The caller should not free the returned pointer directly.
.Pp
.Fn SSL_SESSION_set1_id
sets the session ID for
.Fa s
to a copy of the
.Fa sid
of length
.Fa sid_len .
.Sh RETURN VALUES
.Fn SSL_SESSION_get_id
returns a pointer to the session ID value.
.Pp
.Fn SSL_SESSION_set1_id
returns 1 for success and 0 for failure,
for example if the supplied session ID length exceeds
.Dv SSL_MAX_SSL_SESSION_ID_LENGTH .
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_copy_session_id 3 ,
.Xr SSL_get_session 3 ,
.Xr SSL_SESSION_get_compress_id 3 ,
.Xr SSL_SESSION_get_protocol_version 3 ,
.Xr SSL_SESSION_has_ticket 3 ,
.Xr SSL_SESSION_new 3
.Sh HISTORY
.Fn SSL_SESSION_get_id
first appeared in OpenSSL 0.9.8 and has been available since
.Ox 4.5 .
.Pp
.Fn SSL_SESSION_set1_id
first appeared in OpenSSL 1.1.0 and has been available since
.Ox 6.3 .
Added jni/libressl/man/SSL_SESSION_get_protocol_version.3.








































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
.\" $OpenBSD: SSL_SESSION_get_protocol_version.3,v 1.2 2018/03/24 00:55:37 schwarze Exp $
.\" full merge up to: OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by TJ Saunders <tj@castaglia.org>
.\" Copyright (c) 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\"
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in
.\"    the documentation and/or other materials provided with the
.\"    distribution.
.\"
.\" 3. All advertising materials mentioning features or use of this
.\"    software must display the following acknowledgment:
.\"    "This product includes software developed by the OpenSSL Project
.\"    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
.\"
.\" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
.\"    endorse or promote products derived from this software without
.\"    prior written permission. For written permission, please contact
.\"    openssl-core@openssl.org.
.\"
.\" 5. Products derived from this software may not be called "OpenSSL"
.\"    nor may "OpenSSL" appear in their names without prior written
.\"    permission of the OpenSSL Project.
.\"
.\" 6. Redistributions of any form whatsoever must retain the following
.\"    acknowledgment:
.\"    "This product includes software developed by the OpenSSL Project
.\"    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
.\" EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
.\" ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 24 2018 $
.Dt SSL_SESSION_GET_PROTOCOL_VERSION 3
.Os
.Sh NAME
.Nm SSL_SESSION_get_protocol_version
.Nd get the session protocol version
.Sh SYNOPSIS
.In openssl/ssl.h
.Ft int
.Fo SSL_SESSION_get_protocol_version
.Fa "const SSL_SESSION *s"
.Fc
.Sh DESCRIPTION
.Fn SSL_SESSION_get_protocol_version
returns the protocol version number used by the session
.Fa s .
.Sh RETURN VALUES
.Fn SSL_SESSION_get_protocol_version
returns a constant like
.Dv TLS1_VERSION
or
.Dv TLS1_2_VERSION .
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_get_session 3 ,
.Xr SSL_SESSION_get0_peer 3 ,
.Xr SSL_SESSION_get_compress_id 3 ,
.Xr SSL_SESSION_get_id 3 ,
.Xr SSL_SESSION_get_time 3 ,
.Xr SSL_SESSION_new 3
.Sh HISTORY
.Fn SSL_SESSION_get_protocol_version
first appeared in OpenSSL 1.1.0 and has been available since
.Ox 6.3 .
Changes to jni/libressl/man/SSL_SESSION_get_time.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_SESSION_get_time.3,v 1.3 2017/04/10 15:37:55 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2005, 2006, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_SESSION_get_time.3,v 1.6 2018/03/21 08:06:34 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2005, 2006, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: April 10 2017 $
.Dt SSL_SESSION_GET_TIME 3
.Os
.Sh NAME
.Nm SSL_SESSION_get_time ,
.Nm SSL_SESSION_set_time ,
.Nm SSL_SESSION_get_timeout ,
.Nm SSL_SESSION_set_timeout ,







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_SESSION_GET_TIME 3
.Os
.Sh NAME
.Nm SSL_SESSION_get_time ,
.Nm SSL_SESSION_set_time ,
.Nm SSL_SESSION_get_timeout ,
.Nm SSL_SESSION_set_timeout ,
141
142
143
144
145
146
147

148















.Fa s ,
0 is returned.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_set_timeout 3 ,
.Xr SSL_get_default_timeout 3 ,
.Xr SSL_get_session 3 ,

.Xr SSL_SESSION_new 3






















>

>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
.Fa s ,
0 is returned.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_set_timeout 3 ,
.Xr SSL_get_default_timeout 3 ,
.Xr SSL_get_session 3 ,
.Xr SSL_SESSION_has_ticket 3 ,
.Xr SSL_SESSION_new 3
.Sh HISTORY
.Fn SSL_get_time ,
.Fn SSL_set_time ,
.Fn SSL_get_timeout ,
and
.Fn SSL_set_timeout
appeared before SSLeay 0.8.
.Fn SSL_SESSION_get_time ,
.Fn SSL_SESSION_set_time ,
.Fn SSL_SESSION_get_timeout ,
and
.Fn SSL_SESSION_set_timeout
first appeared in SSLeay 0.9.0.
All these functions have been available since
.Ox 2.4 .
Added jni/libressl/man/SSL_SESSION_has_ticket.3.










































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
.\" $OpenBSD: SSL_SESSION_has_ticket.3,v 1.2 2018/03/24 00:55:37 schwarze Exp $
.\" full merge up to: OpenSSL f2baac27 Feb 8 15:43:16 2015 +0000
.\" selective merge up to: OpenSSL 61f805c1 Jan 16 01:01:46 2018 +0800
.\"
.\" This file was written by Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\"
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in
.\"    the documentation and/or other materials provided with the
.\"    distribution.
.\"
.\" 3. All advertising materials mentioning features or use of this
.\"    software must display the following acknowledgment:
.\"    "This product includes software developed by the OpenSSL Project
.\"    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
.\"
.\" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
.\"    endorse or promote products derived from this software without
.\"    prior written permission. For written permission, please contact
.\"    openssl-core@openssl.org.
.\"
.\" 5. Products derived from this software may not be called "OpenSSL"
.\"    nor may "OpenSSL" appear in their names without prior written
.\"    permission of the OpenSSL Project.
.\"
.\" 6. Redistributions of any form whatsoever must retain the following
.\"    acknowledgment:
.\"    "This product includes software developed by the OpenSSL Project
.\"    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
.\" EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
.\" ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 24 2018 $
.Dt SSL_SESSION_HAS_TICKET 3
.Os
.Sh NAME
.Nm SSL_SESSION_has_ticket ,
.Nm SSL_SESSION_get_ticket_lifetime_hint
.Nd get details about the ticket associated with a session
.Sh SYNOPSIS
.In openssl/ssl.h
.Ft int
.Fo SSL_SESSION_has_ticket
.Fa "const SSL_SESSION *s"
.Fc
.Ft unsigned long
.Fo SSL_SESSION_get_ticket_lifetime_hint
.Fa "const SSL_SESSION *s"
.Fc
.Sh DESCRIPTION
.Fn SSL_SESSION_has_ticket
returns 1 if there is a Session Ticket associated with
.Fa s
or 0 otherwise.
.Pp
.Fn SSL_SESSION_get_ticket_lifetime_hint
returns the lifetime hint in seconds associated with the session ticket.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_SESSION_get_id 3 ,
.Xr SSL_SESSION_get_time 3 ,
.Xr SSL_SESSION_new 3
.Sh HISTORY
These functions first appeared in OpenSSL 1.1.0
and have been available since
.Ox 6.3 .
Changes to jni/libressl/man/SSL_SESSION_new.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: SSL_SESSION_new.3,v 1.2 2017/04/10 15:37:55 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: April 10 2017 $
.Dt SSL_SESSION_NEW 3
.Os
.Sh NAME
.Nm SSL_SESSION_new
.Nd construct a new SSL_SESSION object
.Sh SYNOPSIS
.In openssl/ssl.h
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: SSL_SESSION_new.3,v 1.5 2018/03/21 05:07:04 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_SESSION_NEW 3
.Os
.Sh NAME
.Nm SSL_SESSION_new
.Nd construct a new SSL_SESSION object
.Sh SYNOPSIS
.In openssl/ssl.h
59
60
61
62
63
64
65


66

67
68
69




.Xr SSL_CTX_sess_set_get_cb 3 ,
.Xr SSL_get_session 3 ,
.Xr SSL_SESSION_free 3 ,
.Xr SSL_SESSION_get0_peer 3 ,
.Xr SSL_SESSION_get_compress_id 3 ,
.Xr SSL_SESSION_get_ex_new_index 3 ,
.Xr SSL_SESSION_get_id 3 ,


.Xr SSL_SESSION_get_time 3 ,

.Xr SSL_SESSION_print 3 ,
.Xr SSL_SESSION_set1_id_context 3 ,
.Xr SSL_set_session 3











>
>

>



>
>
>
>
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
.Xr SSL_CTX_sess_set_get_cb 3 ,
.Xr SSL_get_session 3 ,
.Xr SSL_SESSION_free 3 ,
.Xr SSL_SESSION_get0_peer 3 ,
.Xr SSL_SESSION_get_compress_id 3 ,
.Xr SSL_SESSION_get_ex_new_index 3 ,
.Xr SSL_SESSION_get_id 3 ,
.Xr SSL_SESSION_get_master_key 3 ,
.Xr SSL_SESSION_get_protocol_version 3 ,
.Xr SSL_SESSION_get_time 3 ,
.Xr SSL_SESSION_has_ticket 3 ,
.Xr SSL_SESSION_print 3 ,
.Xr SSL_SESSION_set1_id_context 3 ,
.Xr SSL_set_session 3
.Sh HISTORY
.Fn SSL_SESSION_new
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_SESSION_print.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: SSL_SESSION_print.3,v 1.1 2016/12/06 23:45:34 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 6 2016 $
.Dt SSL_SESSION_PRINT 3
.Os
.Sh NAME
.Nm SSL_SESSION_print ,
.Nm SSL_SESSION_print_fp
.Nd print some properties of an SSL_SESSION object
.Sh SYNOPSIS
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: SSL_SESSION_print.3,v 1.2 2018/03/21 05:07:04 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_SESSION_PRINT 3
.Os
.Sh NAME
.Nm SSL_SESSION_print ,
.Nm SSL_SESSION_print_fp
.Nd print some properties of an SSL_SESSION object
.Sh SYNOPSIS
60
61
62
63
64
65
66






.Xr d2i_SSL_SESSION 3 ,
.Xr PEM_read_SSL_SESSION 3 ,
.Xr SSL_get_session 3 ,
.Xr SSL_SESSION_free 3 ,
.Xr SSL_SESSION_get_ex_new_index 3 ,
.Xr SSL_SESSION_get_time 3 ,
.Xr SSL_SESSION_new 3













>
>
>
>
>
>
60
61
62
63
64
65
66
67
68
69
70
71
72
.Xr d2i_SSL_SESSION 3 ,
.Xr PEM_read_SSL_SESSION 3 ,
.Xr SSL_get_session 3 ,
.Xr SSL_SESSION_free 3 ,
.Xr SSL_SESSION_get_ex_new_index 3 ,
.Xr SSL_SESSION_get_time 3 ,
.Xr SSL_SESSION_new 3
.Sh HISTORY
.Fn SSL_SESSION_print
and
.Fn SSL_SESSION_print_fp
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_SESSION_set1_id_context.3.
1

2
3
4
5
6
7
8
9
.\"	$OpenBSD: SSL_SESSION_set1_id_context.3,v 1.1 2017/04/10 15:37:55 schwarze Exp $

.\"	OpenSSL SSL_SESSION_get0_id_context.pod b31db505 Mar 24 16:01:50 2017
.\"
.\" This file was written by Matt Caswell <matt@openssl.org>
.\" Copyright (c) 2017 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
|
>
|







1
2
3
4
5
6
7
8
9
10
.\" $OpenBSD: SSL_SESSION_set1_id_context.3,v 1.4 2018/03/24 00:55:37 schwarze Exp $
.\" full merge up to:
.\" OpenSSL SSL_SESSION_get0_id_context b31db505 Mar 24 16:01:50 2017
.\"
.\" This file was written by Matt Caswell <matt@openssl.org>
.\" Copyright (c) 2017 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
44
45
46
47
48
49
50
51
52
53
54

55
56
57
58





59
60
61
62
63
64
65










66
67
68
69
70
71
72
73
74
75
76





77
78
79
80
81
82
83








.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: April 10 2017 $
.Dt SSL_SESSION_SET1_ID_CONTEXT 3
.Os
.Sh NAME

.Nm SSL_SESSION_set1_id_context
.Nd set the SSL ID context associated with a session
.Sh SYNOPSIS
.In openssl/ssl.h





.Ft int
.Fo SSL_SESSION_set1_id_context
.Fa "SSL_SESSION *s"
.Fa "const unsigned char *sid_ctx"
.Fa "unsigned int sid_ctx_len"
.Fc
.Sh DESCRIPTION










.Fn SSL_SESSION_set1_id_context
takes a copy of the provided ID context given in
.Fa sid_ctx
and associates it with the session
.Fa s .
The length of the ID context is given by
.Fa sid_ctx_len
which must not exceed
.Dv SSL_MAX_SID_CTX_LENGTH
bytes.
.Sh RETURN VALUES





.Fn SSL_SESSION_set1_id_context
returns 1 on success or 0 on error.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_set_session_id_context 3 ,
.Xr SSL_get_session 3 ,
.Xr SSL_SESSION_new 3















|



>

|


>
>
>
>
>







>
>
>
>
>
>
>
>
>
>











>
>
>
>
>







>
>
>
>
>
>
>
>
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 24 2018 $
.Dt SSL_SESSION_SET1_ID_CONTEXT 3
.Os
.Sh NAME
.Nm SSL_SESSION_get0_id_context ,
.Nm SSL_SESSION_set1_id_context
.Nd get and set the SSL ID context associated with a session
.Sh SYNOPSIS
.In openssl/ssl.h
.Ft const unsigned char *
.Fo SSL_SESSION_get0_id_context
.Fa "const SSL_SESSION *s"
.Fa "unsigned int *len"
.Fc
.Ft int
.Fo SSL_SESSION_set1_id_context
.Fa "SSL_SESSION *s"
.Fa "const unsigned char *sid_ctx"
.Fa "unsigned int sid_ctx_len"
.Fc
.Sh DESCRIPTION
.Fn SSL_SESSION_get0_id_context
returns the ID context associated with
.Fa s .
The length of the ID context in bytes is written to
.Pf * Fa len
if
.Fa len
is not
.Dv NULL .
.Pp
.Fn SSL_SESSION_set1_id_context
takes a copy of the provided ID context given in
.Fa sid_ctx
and associates it with the session
.Fa s .
The length of the ID context is given by
.Fa sid_ctx_len
which must not exceed
.Dv SSL_MAX_SID_CTX_LENGTH
bytes.
.Sh RETURN VALUES
.Fn SSL_SESSION_get0_id_context
returns an internal pointer to an object maintained within
.Fa s
that should not be freed by the caller.
.Pp
.Fn SSL_SESSION_set1_id_context
returns 1 on success or 0 on error.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_set_session_id_context 3 ,
.Xr SSL_get_session 3 ,
.Xr SSL_SESSION_new 3
.Sh HISTORY
.Fn SSL_SESSION_set1_id_context
first appeared in OpenSSL 1.0.1 and has been available since
.Ox 5.3 .
.Pp
.Fn SSL_SESSION_get0_id_context
first appeared in OpenSSL 1.1.0 and has been available since
.Ox 6.3 .
Changes to jni/libressl/man/SSL_accept.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_accept.3,v 1.3 2016/12/06 12:24:33 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2001, 2002, 2003 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_accept.3,v 1.4 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2001, 2002, 2003 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 6 2016 $
.Dt SSL_ACCEPT 3
.Os
.Sh NAME
.Nm SSL_accept
.Nd wait for a TLS/SSL client to initiate a TLS/SSL handshake
.Sh SYNOPSIS
.In openssl/ssl.h







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_ACCEPT 3
.Os
.Sh NAME
.Nm SSL_accept
.Nd wait for a TLS/SSL client to initiate a TLS/SSL handshake
.Sh SYNOPSIS
.In openssl/ssl.h
145
146
147
148
149
150
151




.Xr ssl 3 ,
.Xr SSL_connect 3 ,
.Xr SSL_CTX_new 3 ,
.Xr SSL_do_handshake 3 ,
.Xr SSL_get_error 3 ,
.Xr SSL_set_connect_state 3 ,
.Xr SSL_shutdown 3











>
>
>
>
145
146
147
148
149
150
151
152
153
154
155
.Xr ssl 3 ,
.Xr SSL_connect 3 ,
.Xr SSL_CTX_new 3 ,
.Xr SSL_do_handshake 3 ,
.Xr SSL_get_error 3 ,
.Xr SSL_set_connect_state 3 ,
.Xr SSL_shutdown 3
.Sh HISTORY
.Fn SSL_accept
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_alert_type_string.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_alert_type_string.3,v 1.3 2017/08/11 22:12:40 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2011 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_alert_type_string.3,v 1.4 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2011 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: August 11 2017 $
.Dt SSL_ALERT_TYPE_STRING 3
.Os
.Sh NAME
.Nm SSL_alert_type_string ,
.Nm SSL_alert_type_string_long ,
.Nm SSL_alert_desc_string ,
.Nm SSL_alert_desc_string_long







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_ALERT_TYPE_STRING 3
.Os
.Sh NAME
.Nm SSL_alert_type_string ,
.Nm SSL_alert_type_string_long ,
.Nm SSL_alert_desc_string ,
.Nm SSL_alert_desc_string_long
234
235
236
237
238
239
240



Probably
.Fa value
does not contain a correct alert message.
.El
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_set_info_callback 3










>
>
>
234
235
236
237
238
239
240
241
242
243
Probably
.Fa value
does not contain a correct alert message.
.El
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_set_info_callback 3
.Sh HISTORY
These functions appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_clear.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_clear.3,v 1.2 2016/12/01 22:45:28 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2001, 2002, 2011, 2015 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_clear.3,v 1.3 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2001, 2002, 2011, 2015 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 1 2016 $
.Dt SSL_CLEAR 3
.Os
.Sh NAME
.Nm SSL_clear
.Nd reset SSL object to allow another connection
.Sh SYNOPSIS
.In openssl/ssl.h







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_CLEAR 3
.Os
.Sh NAME
.Nm SSL_clear
.Nd reset SSL object to allow another connection
.Sh SYNOPSIS
.In openssl/ssl.h
115
116
117
118
119
120
121




122
123
124
125
126
127
128
.Xr ssl 3 ,
.Xr SSL_CTX_set_client_cert_cb 3 ,
.Xr SSL_CTX_set_options 3 ,
.Xr SSL_free 3 ,
.Xr SSL_new 3 ,
.Xr SSL_set_shutdown 3 ,
.Xr SSL_shutdown 3




.Sh CAVEATS
.Fn SSL_clear
resets the
.Vt SSL
object to allow for another connection.
The reset operation however keeps several settings of the last sessions
(some of these settings were made automatically during the last handshake).







>
>
>
>







115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
.Xr ssl 3 ,
.Xr SSL_CTX_set_client_cert_cb 3 ,
.Xr SSL_CTX_set_options 3 ,
.Xr SSL_free 3 ,
.Xr SSL_new 3 ,
.Xr SSL_set_shutdown 3 ,
.Xr SSL_shutdown 3
.Sh HISTORY
.Fn SSL_clear
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
.Sh CAVEATS
.Fn SSL_clear
resets the
.Vt SSL
object to allow for another connection.
The reset operation however keeps several settings of the last sessions
(some of these settings were made automatically during the last handshake).
Changes to jni/libressl/man/SSL_connect.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_connect.3,v 1.4 2016/12/16 15:39:08 jmc Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2001, 2002, 2003 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_connect.3,v 1.5 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2001, 2002, 2003 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 16 2016 $
.Dt SSL_CONNECT 3
.Os
.Sh NAME
.Nm SSL_connect
.Nd initiate the TLS/SSL handshake with a TLS/SSL server
.Sh SYNOPSIS
.In openssl/ssl.h







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_CONNECT 3
.Os
.Sh NAME
.Nm SSL_connect
.Nd initiate the TLS/SSL handshake with a TLS/SSL server
.Sh SYNOPSIS
.In openssl/ssl.h
144
145
146
147
148
149
150




.Xr ssl 3 ,
.Xr SSL_accept 3 ,
.Xr SSL_CTX_new 3 ,
.Xr SSL_do_handshake 3 ,
.Xr SSL_get_error 3 ,
.Xr SSL_set_connect_state 3 ,
.Xr SSL_shutdown 3











>
>
>
>
144
145
146
147
148
149
150
151
152
153
154
.Xr ssl 3 ,
.Xr SSL_accept 3 ,
.Xr SSL_CTX_new 3 ,
.Xr SSL_do_handshake 3 ,
.Xr SSL_get_error 3 ,
.Xr SSL_set_connect_state 3 ,
.Xr SSL_shutdown 3
.Sh HISTORY
.Fn SSL_connect
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_copy_session_id.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: SSL_copy_session_id.3,v 1.2 2017/04/10 15:37:55 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: April 10 2017 $
.Dt SSL_COPY_SESSION_ID 3
.Os
.Sh NAME
.Nm SSL_copy_session_id
.Nd copy session details between SSL objects
.Sh SYNOPSIS
.In openssl/ssl.h
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: SSL_copy_session_id.3,v 1.3 2018/03/21 05:07:04 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_COPY_SESSION_ID 3
.Os
.Sh NAME
.Nm SSL_copy_session_id
.Nd copy session details between SSL objects
.Sh SYNOPSIS
.In openssl/ssl.h
61
62
63
64
65
66
67
68

69
70
71
72
73
74
75
76
77
78
.Xr SSL_get_session 3 ,
.Xr SSL_SESSION_get_id 3 ,
.Xr SSL_SESSION_new 3 ,
.Xr SSL_set_session 3 ,
.Xr SSL_set_session_id_context 3
.Sh HISTORY
.Fn SSL_copy_session_id
is available in all versions of OpenSSL.

.Sh BUGS
Failures of
.Xr SSL_set_session 3 ,
.Xr SSL_set_session_id_context 3 ,
.Xr CRYPTO_add 3 ,
and reinitialization of protocol-specific data are silently ignored
and may leave
.Fa to
in an invalid or inconsistent state.
An improved version reporting failure is available in OpenSSL 1.1.0.







|
>










61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
.Xr SSL_get_session 3 ,
.Xr SSL_SESSION_get_id 3 ,
.Xr SSL_SESSION_new 3 ,
.Xr SSL_set_session 3 ,
.Xr SSL_set_session_id_context 3
.Sh HISTORY
.Fn SSL_copy_session_id
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
.Sh BUGS
Failures of
.Xr SSL_set_session 3 ,
.Xr SSL_set_session_id_context 3 ,
.Xr CRYPTO_add 3 ,
and reinitialization of protocol-specific data are silently ignored
and may leave
.Fa to
in an invalid or inconsistent state.
An improved version reporting failure is available in OpenSSL 1.1.0.
Changes to jni/libressl/man/SSL_do_handshake.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_do_handshake.3,v 1.4 2016/12/16 15:39:08 jmc Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Martin Sjoegren <martin@strakt.com>.
.\" Copyright (c) 2002 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_do_handshake.3,v 1.5 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Martin Sjoegren <martin@strakt.com>.
.\" Copyright (c) 2002 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 16 2016 $
.Dt SSL_DO_HANDSHAKE 3
.Os
.Sh NAME
.Nm SSL_do_handshake
.Nd perform a TLS/SSL handshake
.Sh SYNOPSIS
.In openssl/ssl.h







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_DO_HANDSHAKE 3
.Os
.Sh NAME
.Nm SSL_do_handshake
.Nd perform a TLS/SSL handshake
.Sh SYNOPSIS
.In openssl/ssl.h
142
143
144
145
146
147
148




.Sh SEE ALSO
.Xr BIO_new 3 ,
.Xr ssl 3 ,
.Xr SSL_accept 3 ,
.Xr SSL_connect 3 ,
.Xr SSL_get_error 3 ,
.Xr SSL_set_connect_state 3











>
>
>
>
142
143
144
145
146
147
148
149
150
151
152
.Sh SEE ALSO
.Xr BIO_new 3 ,
.Xr ssl 3 ,
.Xr SSL_accept 3 ,
.Xr SSL_connect 3 ,
.Xr SSL_get_error 3 ,
.Xr SSL_set_connect_state 3
.Sh HISTORY
.Fn SSL_do_handshake
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_dup.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: SSL_dup.3,v 1.1 2016/12/07 17:09:07 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 7 2016 $
.Dt SSL_DUP 3
.Os
.Sh NAME
.Nm SSL_dup
.Nd deep copy of an SSL object
.Sh SYNOPSIS
.In openssl/ssl.h
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: SSL_dup.3,v 1.2 2018/03/21 05:07:04 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_DUP 3
.Os
.Sh NAME
.Nm SSL_dup
.Nd deep copy of an SSL object
.Sh SYNOPSIS
.In openssl/ssl.h
52
53
54
55
56
57
58
59

.Sh SEE ALSO
.Xr SSL_clear 3 ,
.Xr SSL_copy_session_id 3 ,
.Xr SSL_free 3 ,
.Xr SSL_new 3
.Sh HISTORY
.Fn SSL_dup
is available in all versions of OpenSSL.








|
>
52
53
54
55
56
57
58
59
60
.Sh SEE ALSO
.Xr SSL_clear 3 ,
.Xr SSL_copy_session_id 3 ,
.Xr SSL_free 3 ,
.Xr SSL_new 3
.Sh HISTORY
.Fn SSL_dup
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_dup_CA_list.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: SSL_dup_CA_list.3,v 1.2 2016/12/14 16:20:28 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 14 2016 $
.Dt SSL_DUP_CA_LIST 3
.Os
.Sh NAME
.Nm SSL_dup_CA_list
.Nd deep copy of a stack of X.509 Name objects
.\" The capital "N" in "Name" is intentional (X.509 syntax).
.Sh SYNOPSIS
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: SSL_dup_CA_list.3,v 1.3 2018/03/21 05:07:04 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_DUP_CA_LIST 3
.Os
.Sh NAME
.Nm SSL_dup_CA_list
.Nd deep copy of a stack of X.509 Name objects
.\" The capital "N" in "Name" is intentional (X.509 syntax).
.Sh SYNOPSIS
45
46
47
48
49
50
51
52

.Sh SEE ALSO
.Xr SSL_CTX_set_client_CA_list 3 ,
.Xr SSL_get_client_CA_list 3 ,
.Xr SSL_load_client_CA_file 3 ,
.Xr X509_NAME_new 3
.Sh HISTORY
.Fn SSL_dup_CA_list
is available in all versions of OpenSSL.








|
>
45
46
47
48
49
50
51
52
53
.Sh SEE ALSO
.Xr SSL_CTX_set_client_CA_list 3 ,
.Xr SSL_get_client_CA_list 3 ,
.Xr SSL_load_client_CA_file 3 ,
.Xr X509_NAME_new 3
.Sh HISTORY
.Fn SSL_dup_CA_list
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_export_keying_material.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_export_keying_material.3,v 1.1 2017/08/21 10:10:25 schwarze Exp $
.\"	OpenSSL a599574b Jun 28 17:18:27 2017 +0100
.\"	OpenSSL 23cec1f4 Jun 21 13:55:02 2017 +0100
.\"
.\" This file was written by Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2017 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_export_keying_material.3,v 1.2 2018/03/23 05:50:30 schwarze Exp $
.\"	OpenSSL a599574b Jun 28 17:18:27 2017 +0100
.\"	OpenSSL 23cec1f4 Jun 21 13:55:02 2017 +0100
.\"
.\" This file was written by Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2017 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: August 21 2017 $
.Dt SSL_EXPORT_KEYING_MATERIAL 3
.Os
.Sh NAME
.Nm SSL_export_keying_material
.Nd obtain keying material for application use
.Sh SYNOPSIS
.In openssl/ssl.h







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt SSL_EXPORT_KEYING_MATERIAL 3
.Os
.Sh NAME
.Nm SSL_export_keying_material
.Nd obtain keying material for application use
.Sh SYNOPSIS
.In openssl/ssl.h
121
122
123
124
125
126
127




.Lk https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#exporter-labels "IANA Exporter Label Registry" .
.Pp
Alternatively, labels beginning with "EXPERIMENTAL" are permitted by the
standard to be used without registration.
.Sh RETURN VALUES
.Fn SSL_export_keying_material
returns 1 on success or 0 or -1 on failure.











>
>
>
>
121
122
123
124
125
126
127
128
129
130
131
.Lk https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#exporter-labels "IANA Exporter Label Registry" .
.Pp
Alternatively, labels beginning with "EXPERIMENTAL" are permitted by the
standard to be used without registration.
.Sh RETURN VALUES
.Fn SSL_export_keying_material
returns 1 on success or 0 or -1 on failure.
.Sh HISTORY
.Fn SSL_export_keying_material
first appeared in OpenSSL 1.0.1 and has been available since
.Ox 5.3 .
Changes to jni/libressl/man/SSL_free.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_free.3,v 1.2 2016/12/01 22:46:21 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2001 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_free.3,v 1.3 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2001 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 1 2016 $
.Dt SSL_FREE 3
.Os
.Sh NAME
.Nm SSL_free
.Nd free an allocated SSL structure
.Sh SYNOPSIS
.In openssl/ssl.h







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_FREE 3
.Os
.Sh NAME
.Nm SSL_free
.Nd free an allocated SSL structure
.Sh SYNOPSIS
.In openssl/ssl.h
108
109
110
111
112
113
114




does not provide diagnostic information.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_clear 3 ,
.Xr SSL_new 3 ,
.Xr SSL_set_shutdown 3 ,
.Xr SSL_shutdown 3











>
>
>
>
108
109
110
111
112
113
114
115
116
117
118
does not provide diagnostic information.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_clear 3 ,
.Xr SSL_new 3 ,
.Xr SSL_set_shutdown 3 ,
.Xr SSL_shutdown 3
.Sh HISTORY
.Fn SSL_free
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_get_SSL_CTX.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_get_SSL_CTX.3,v 1.2 2016/12/03 08:54:21 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2005 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_get_SSL_CTX.3,v 1.3 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2005 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 3 2016 $
.Dt SSL_GET_SSL_CTX 3
.Os
.Sh NAME
.Nm SSL_get_SSL_CTX
.Nd get the SSL_CTX from which an SSL is created
.Sh SYNOPSIS
.In openssl/ssl.h







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_GET_SSL_CTX 3
.Os
.Sh NAME
.Nm SSL_get_SSL_CTX
.Nd get the SSL_CTX from which an SSL is created
.Sh SYNOPSIS
.In openssl/ssl.h
69
70
71
72
73
74
75




.Sh RETURN VALUES
The pointer to the
.Vt SSL_CTX
object is returned.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_new 3











>
>
>
>
69
70
71
72
73
74
75
76
77
78
79
.Sh RETURN VALUES
The pointer to the
.Vt SSL_CTX
object is returned.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_new 3
.Sh HISTORY
.Fn SSL_get_SSL_CTX
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_get_certificate.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: SSL_get_certificate.3,v 1.1 2016/12/10 13:54:32 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 10 2016 $
.Dt SSL_GET_CERTIFICATE 3
.Os
.Sh NAME
.Nm SSL_get_certificate ,
.Nm SSL_get_privatekey
.Nd get SSL certificate and private key
.Sh SYNOPSIS
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: SSL_get_certificate.3,v 1.2 2018/03/21 05:07:04 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_GET_CERTIFICATE 3
.Os
.Sh NAME
.Nm SSL_get_certificate ,
.Nm SSL_get_privatekey
.Nd get SSL certificate and private key
.Sh SYNOPSIS
54
55
56
57
58
59
60
61

.Sh SEE ALSO
.Xr SSL_check_private_key 3 ,
.Xr SSL_use_certificate 3
.Sh HISTORY
.Fn SSL_get_certificate
and
.Fn SSL_get_privatekey
are available in all versions of OpenSSL.








|
>
54
55
56
57
58
59
60
61
62
.Sh SEE ALSO
.Xr SSL_check_private_key 3 ,
.Xr SSL_use_certificate 3
.Sh HISTORY
.Fn SSL_get_certificate
and
.Fn SSL_get_privatekey
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_get_ciphers.3.
1
2

3
4

5

6
7
8
9
10
11
12
.\"	$OpenBSD: SSL_get_ciphers.3,v 1.2 2016/12/03 09:00:46 schwarze Exp $
.\"	OpenSSL c3e64028 Mar 30 11:50:14 2005 +0000

.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.

.\" Copyright (c) 2000, 2005, 2015 The OpenSSL Project.  All rights reserved.

.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
|
|
>

|
>
|
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
.\" $OpenBSD: SSL_get_ciphers.3,v 1.5 2018/03/24 00:55:37 schwarze Exp $
.\" full merge up to: OpenSSL c3e64028 Mar 30 11:50:14 2005 +0000
.\" selective merge up to: OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>,
.\" Nick Mathewson <nickm@torproject.org>, and Kazuki Yamaguchi <k@rhe.jp>.
.\" Copyright (c) 2000, 2005, 2015, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
44
45
46
47
48
49
50
51
52
53
54
55

56
57
58
59
60
61


62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78






79


80
81
82


83
84
85
86
87


88
89
90
91
92
93
94
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 3 2016 $
.Dt SSL_GET_CIPHERS 3
.Os
.Sh NAME
.Nm SSL_get_ciphers ,

.Nm SSL_get_cipher_list
.Nd get list of available SSL_CIPHERs
.Sh SYNOPSIS
.In openssl/ssl.h
.Ft STACK_OF(SSL_CIPHER) *
.Fn SSL_get_ciphers "const SSL *ssl"


.Ft const char *
.Fn SSL_get_cipher_list "const SSL *ssl" "int priority"
.Sh DESCRIPTION
.Fn SSL_get_ciphers
returns the stack of available
.Vt SSL_CIPHER Ns s
for
.Fa ssl ,
sorted by preference.
If
.Fa ssl
is
.Dv NULL
or no ciphers are available,
.Dv NULL
is returned.
.Pp






.Fn SSL_get_ciphers


returns a pointer to an internal cipher stack, which will be freed
later on when the
.Vt SSL


object is freed.
Therefore, the calling code must not free the return value itself.
.Pp
The details of the ciphers obtained by
.Fn SSL_get_ciphers


can be obtained using the
.Xr SSL_CIPHER_get_name 3
family of functions.
.Pp
.Fn SSL_get_cipher_list
returns a pointer to the name of the
.Vt SSL_CIPHER







|




>






>
>

















>
>
>
>
>
>

>
>
|


>
>





>
>







47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 24 2018 $
.Dt SSL_GET_CIPHERS 3
.Os
.Sh NAME
.Nm SSL_get_ciphers ,
.Nm SSL_CTX_get_ciphers ,
.Nm SSL_get_cipher_list
.Nd get list of available SSL_CIPHERs
.Sh SYNOPSIS
.In openssl/ssl.h
.Ft STACK_OF(SSL_CIPHER) *
.Fn SSL_get_ciphers "const SSL *ssl"
.Ft STACK_OF(SSL_CIPHER) *
.Fn SSL_CTX_get_ciphers "const SSL_CTX *ctx"
.Ft const char *
.Fn SSL_get_cipher_list "const SSL *ssl" "int priority"
.Sh DESCRIPTION
.Fn SSL_get_ciphers
returns the stack of available
.Vt SSL_CIPHER Ns s
for
.Fa ssl ,
sorted by preference.
If
.Fa ssl
is
.Dv NULL
or no ciphers are available,
.Dv NULL
is returned.
.Pp
.Fn SSL_CTX_get_ciphers
returns the stack of available
.Vt SSL_CIPHER Ns s
for
.Fa ctx .
.Pp
.Fn SSL_get_ciphers
and
.Fn SSL_CTX_get_ciphers
return pointers to internal cipher stacks, which will be freed
later on when the
.Vt SSL
or
.Vt SSL_CTX
object is freed.
Therefore, the calling code must not free the return value itself.
.Pp
The details of the ciphers obtained by
.Fn SSL_get_ciphers
and
.Fn SSL_CTX_get_ciphers
can be obtained using the
.Xr SSL_CIPHER_get_name 3
family of functions.
.Pp
.Fn SSL_get_cipher_list
returns a pointer to the name of the
.Vt SSL_CIPHER
113
114
115
116
117
118
119










starting from 0 to obtain the sorted list of available ciphers, until
.Dv NULL
is returned.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CIPHER_get_name 3 ,
.Xr SSL_CTX_set_cipher_list 3

















>
>
>
>
>
>
>
>
>
>
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
starting from 0 to obtain the sorted list of available ciphers, until
.Dv NULL
is returned.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CIPHER_get_name 3 ,
.Xr SSL_CTX_set_cipher_list 3
.Sh HISTORY
.Fn SSL_get_ciphers
and
.Fn SSL_get_cipher_list
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp
.Fn SSL_CTX_get_ciphers
first appeared in OpenSSL 1.1.0 and has been available since
.Ox 6.3 .
Changes to jni/libressl/man/SSL_get_client_CA_list.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_get_client_CA_list.3,v 1.3 2016/12/14 16:20:28 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2001, 2002, 2005 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_get_client_CA_list.3,v 1.4 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2001, 2002, 2005 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 14 2016 $
.Dt SSL_GET_CLIENT_CA_LIST 3
.Os
.Sh NAME
.Nm SSL_get_client_CA_list ,
.Nm SSL_CTX_get_client_CA_list
.Nd get list of client CAs
.Sh SYNOPSIS







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_GET_CLIENT_CA_LIST 3
.Os
.Sh NAME
.Nm SSL_get_client_CA_list ,
.Nm SSL_CTX_get_client_CA_list
.Nd get list of client CAs
.Sh SYNOPSIS
84
85
86
87
88
89
90






.Fn SSL_get_client_CA_list
returns the list of client CAs sent from the server, if any.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_set_client_CA_list 3 ,
.Xr SSL_CTX_set_client_cert_cb 3 ,
.Xr X509_NAME_new 3













>
>
>
>
>
>
84
85
86
87
88
89
90
91
92
93
94
95
96
.Fn SSL_get_client_CA_list
returns the list of client CAs sent from the server, if any.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_set_client_CA_list 3 ,
.Xr SSL_CTX_set_client_cert_cb 3 ,
.Xr X509_NAME_new 3
.Sh HISTORY
.Fn SSL_get_client_CA_list
and
.Fn SSL_CTX_get_client_CA_list
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
Added jni/libressl/man/SSL_get_client_random.3.












































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
.\" $OpenBSD: SSL_get_client_random.3,v 1.2 2018/03/24 00:55:37 schwarze Exp $
.\" full merge up to: OpenSSL e9b77246 Jan 20 19:58:49 2017 +0100
.\"
.\" This file was written by Nick Mathewson <nickm@torproject.org>
.\" Copyright (c) 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\"
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in
.\"    the documentation and/or other materials provided with the
.\"    distribution.
.\"
.\" 3. All advertising materials mentioning features or use of this
.\"    software must display the following acknowledgment:
.\"    "This product includes software developed by the OpenSSL Project
.\"    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
.\"
.\" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
.\"    endorse or promote products derived from this software without
.\"    prior written permission. For written permission, please contact
.\"    openssl-core@openssl.org.
.\"
.\" 5. Products derived from this software may not be called "OpenSSL"
.\"    nor may "OpenSSL" appear in their names without prior written
.\"    permission of the OpenSSL Project.
.\"
.\" 6. Redistributions of any form whatsoever must retain the following
.\"    acknowledgment:
.\"    "This product includes software developed by the OpenSSL Project
.\"    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
.\" EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
.\" ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 24 2018 $
.Dt SSL_GET_CLIENT_RANDOM 3
.Os
.Sh NAME
.Nm SSL_get_client_random ,
.Nm SSL_get_server_random ,
.Nm SSL_SESSION_get_master_key
.Nd get internal TLS handshake random values and master key
.Sh SYNOPSIS
.In openssl/ssl.h
.Ft size_t
.Fo SSL_get_client_random
.Fa "const SSL *ssl"
.Fa "unsigned char *out"
.Fa "size_t outlen"
.Fc
.Ft size_t
.Fo SSL_get_server_random
.Fa "const SSL *ssl"
.Fa "unsigned char *out"
.Fa "size_t outlen"
.Fc
.Ft size_t
.Fo SSL_SESSION_get_master_key
.Fa "const SSL_SESSION *session"
.Fa "unsigned char *out"
.Fa "size_t outlen"
.Fc
.Sh DESCRIPTION
.Fn SSL_get_client_random
extracts the random value that was sent from the client to the server
during the initial TLS handshake.
It copies at most
.Fa outlen
bytes of this value into the buffer
.Fa out .
If
.Fa outlen
is zero, nothing is copied.
.Pp
.Fn SSL_get_server_random
behaves the same, but extracts the random value that was sent
from the server to the client during the initial TLS handshake.
.Pp
.Fn SSL_SESSION_get_master_key
behaves the same, but extracts the master secret used to guarantee the
security of the TLS session.
The security of the TLS session depends on keeping the master key
secret: do not expose it, or any information about it, to anybody.
To calculate another secret value that depends on the master secret,
use
.Xr SSL_export_keying_material 3
instead.
.Pp
All these functions expose internal values from the TLS handshake,
for use in low-level protocols.
Avoid using them unless implementing a feature
that requires access to the internal protocol details.
.Pp
Despite the names of
.Fn SSL_get_client_random
and
.Fn SSL_get_server_random ,
they are not random number generators.
Instead, they return the mostly-random values that were already
generated and used in the TLS protocol.
.Pp
In current versions of the TLS protocols,
the length of client_random and server_random is always
.Dv SSL3_RANDOM_SIZE
bytes.
Support for other
.Fa outlen
arguments is provided for the unlikely event that a future
version or variant of TLS uses some other length.
.Pp
Finally, though the client_random and server_random values are called
.Dq random ,
many TLS implementations generate four bytes of those values
based on their view of the current time.
.Sh RETURN VALUES
If
.Fa outlen
is greater than 0, these functions return the number of bytes
actually copied, which is less than or equal to
.Fa outlen .
If
.Fa outlen
is 0, these functions return the maximum number of bytes they would
copy \(em that is, the length of the underlying field.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_export_keying_material 3 ,
.Xr SSL_SESSION_get_id 3 ,
.Xr SSL_SESSION_get_time 3 ,
.Xr SSL_SESSION_new 3
.Sh HISTORY
These functions first appeared in OpenSSL 1.1.0
and have been available since
.Ox 6.3 .
Changes to jni/libressl/man/SSL_get_current_cipher.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_get_current_cipher.3,v 1.2 2016/12/03 09:07:56 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2005, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_get_current_cipher.3,v 1.3 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2005, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 3 2016 $
.Dt SSL_GET_CURRENT_CIPHER 3
.Os
.Sh NAME
.Nm SSL_get_current_cipher ,
.Nm SSL_get_cipher ,
.Nm SSL_get_cipher_name ,
.Nm  SSL_get_cipher_bits ,







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_GET_CURRENT_CIPHER 3
.Os
.Sh NAME
.Nm SSL_get_current_cipher ,
.Nm SSL_get_cipher ,
.Nm SSL_get_cipher_name ,
.Nm  SSL_get_cipher_bits ,
103
104
105
106
107
108
109



.Fn SSL_get_current_cipher
returns the cipher actually used, or
.Dv NULL
if no session has been established.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CIPHER_get_name 3










>
>
>
103
104
105
106
107
108
109
110
111
112
.Fn SSL_get_current_cipher
returns the cipher actually used, or
.Dv NULL
if no session has been established.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CIPHER_get_name 3
.Sh HISTORY
These functions appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_get_default_timeout.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_get_default_timeout.3,v 1.2 2016/12/03 09:10:29 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2005 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_get_default_timeout.3,v 1.3 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2005 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 3 2016 $
.Dt SSL_GET_DEFAULT_TIMEOUT 3
.Os
.Sh NAME
.Nm SSL_get_default_timeout
.Nd get default session timeout value
.Sh SYNOPSIS
.In openssl/ssl.h







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_GET_DEFAULT_TIMEOUT 3
.Os
.Sh NAME
.Nm SSL_get_default_timeout
.Nd get default session timeout value
.Sh SYNOPSIS
.In openssl/ssl.h
75
76
77
78
79
80
81




return this hardcoded value, which is 300 seconds for all currently supported
protocols (SSLv2, SSLv3, and TLSv1).
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_flush_sessions 3 ,
.Xr SSL_CTX_set_session_cache_mode 3 ,
.Xr SSL_SESSION_get_time 3











>
>
>
>
75
76
77
78
79
80
81
82
83
84
85
return this hardcoded value, which is 300 seconds for all currently supported
protocols (SSLv2, SSLv3, and TLSv1).
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_flush_sessions 3 ,
.Xr SSL_CTX_set_session_cache_mode 3 ,
.Xr SSL_SESSION_get_time 3
.Sh HISTORY
.Fn SSL_get_default_timeout
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_get_error.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_get_error.3,v 1.2 2016/12/03 08:54:21 schwarze Exp $
.\"	OpenSSL a528d4f0 Oct 27 13:40:11 2015 -0400
.\"
.\" This file was written by Bodo Moeller <bodo@openssl.org>.
.\" Copyright (c) 2000, 2001, 2002, 2005 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_get_error.3,v 1.3 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL a528d4f0 Oct 27 13:40:11 2015 -0400
.\"
.\" This file was written by Bodo Moeller <bodo@openssl.org>.
.\" Copyright (c) 2000, 2001, 2002, 2005 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 3 2016 $
.Dt SSL_GET_ERROR 3
.Os
.Sh NAME
.Nm SSL_get_error
.Nd obtain result code for TLS/SSL I/O operation
.Sh SYNOPSIS
.In openssl/ssl.h







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_GET_ERROR 3
.Os
.Sh NAME
.Nm SSL_get_error
.Nd obtain result code for TLS/SSL I/O operation
.Sh SYNOPSIS
.In openssl/ssl.h
209
210
211
212
213
214
215
216

The OpenSSL error queue contains more information on the error.
.El
.Sh SEE ALSO
.Xr err 3 ,
.Xr ssl 3
.Sh HISTORY
.Fn SSL_get_error
was added in SSLeay 0.8.








|
>
209
210
211
212
213
214
215
216
217
The OpenSSL error queue contains more information on the error.
.El
.Sh SEE ALSO
.Xr err 3 ,
.Xr ssl 3
.Sh HISTORY
.Fn SSL_get_error
first appeared in SSLeay 0.8 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_get_ex_data_X509_STORE_CTX_idx.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_get_ex_data_X509_STORE_CTX_idx.3,v 1.2 2016/12/06 22:41:16 schwarze Exp $
.\"	OpenSSL 9b86974e Aug 17 15:21:33 2015 -0400
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_get_ex_data_X509_STORE_CTX_idx.3,v 1.3 2018/03/21 09:05:04 schwarze Exp $
.\"	OpenSSL 9b86974e Aug 17 15:21:33 2015 -0400
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 6 2016 $
.Dt SSL_GET_EX_DATA_X509_STORE_CTX_IDX 3
.Os
.Sh NAME
.Nm SSL_get_ex_data_X509_STORE_CTX_idx
.Nd get ex_data index to access SSL structure from X509_STORE_CTX
.Sh SYNOPSIS
.In openssl/ssl.h







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_GET_EX_DATA_X509_STORE_CTX_IDX 3
.Os
.Sh NAME
.Nm SSL_get_ex_data_X509_STORE_CTX_idx
.Nd get ex_data index to access SSL structure from X509_STORE_CTX
.Sh SYNOPSIS
.In openssl/ssl.h
106
107
108
109
110
111
112




when checking the peer's certificate.
Please check the example in
.Xr SSL_CTX_set_verify 3 .
.Sh SEE ALSO
.Xr CRYPTO_set_ex_data 3 ,
.Xr ssl 3 ,
.Xr SSL_CTX_set_verify 3











>
>
>
>
106
107
108
109
110
111
112
113
114
115
116
when checking the peer's certificate.
Please check the example in
.Xr SSL_CTX_set_verify 3 .
.Sh SEE ALSO
.Xr CRYPTO_set_ex_data 3 ,
.Xr ssl 3 ,
.Xr SSL_CTX_set_verify 3
.Sh HISTORY
.Fn SSL_get_ex_data_X509_STORE_CTX_idx
first appeared in SSLeay 0.9.1 and has been available since
.Ox 2.6 .
Changes to jni/libressl/man/SSL_get_ex_new_index.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_get_ex_new_index.3,v 1.2 2016/12/06 22:41:16 schwarze Exp $
.\"	OpenSSL 9b86974e Aug 17 15:21:33 2015 -0400
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2005 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_get_ex_new_index.3,v 1.3 2018/03/21 08:06:34 schwarze Exp $
.\"	OpenSSL 9b86974e Aug 17 15:21:33 2015 -0400
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2005 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 6 2016 $
.Dt SSL_GET_EX_NEW_INDEX 3
.Os
.Sh NAME
.Nm SSL_get_ex_new_index ,
.Nm SSL_set_ex_data ,
.Nm SSL_get_ex_data
.Nd internal application specific data functions







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_GET_EX_NEW_INDEX 3
.Os
.Sh NAME
.Nm SSL_get_ex_new_index ,
.Nm SSL_set_ex_data ,
.Nm SSL_get_ex_data
.Nd internal application specific data functions
117
118
119
120
121
122
123







in
.Xr SSL_CTX_set_verify 3 .
.Sh SEE ALSO
.Xr CRYPTO_set_ex_data 3 ,
.Xr RSA_get_ex_new_index 3 ,
.Xr ssl 3 ,
.Xr SSL_CTX_set_verify 3














>
>
>
>
>
>
>
117
118
119
120
121
122
123
124
125
126
127
128
129
130
in
.Xr SSL_CTX_set_verify 3 .
.Sh SEE ALSO
.Xr CRYPTO_set_ex_data 3 ,
.Xr RSA_get_ex_new_index 3 ,
.Xr ssl 3 ,
.Xr SSL_CTX_set_verify 3
.Sh HISTORY
.Fn SSL_get_ex_new_index ,
.Fn SSL_set_ex_data ,
and
.Fn SSL_get_ex_data
first appeared in SSLeay 0.9.0 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_get_fd.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_get_fd.3,v 1.3 2016/12/06 12:24:33 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2005, 2013 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_get_fd.3,v 1.5 2018/03/22 17:38:41 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2005, 2013 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 6 2016 $
.Dt SSL_GET_FD 3
.Os
.Sh NAME
.Nm SSL_get_fd ,
.Nm SSL_get_rfd ,
.Nm SSL_get_wfd
.Nd get file descriptor linked to an SSL object







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt SSL_GET_FD 3
.Os
.Sh NAME
.Nm SSL_get_fd ,
.Nm SSL_get_rfd ,
.Nm SSL_get_wfd
.Nd get file descriptor linked to an SSL object
87
88
89
90
91
92
93










The file descriptor linked to
.Fa ssl .
.El
.Sh SEE ALSO
.Xr BIO_new 3 ,
.Xr ssl 3 ,
.Xr SSL_set_fd 3

















>
>
>
>
>
>
>
>
>
>
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
The file descriptor linked to
.Fa ssl .
.El
.Sh SEE ALSO
.Xr BIO_new 3 ,
.Xr ssl 3 ,
.Xr SSL_set_fd 3
.Sh HISTORY
.Fn SSL_get_fd
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
.Pp
.Fn SSL_get_rfd
and
.Fn SSL_get_wfd
first appeared in OpenSSL 0.9.6c and have been available since
.Ox 3.2 .
Changes to jni/libressl/man/SSL_get_peer_cert_chain.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_get_peer_cert_chain.3,v 1.3 2017/03/28 18:21:55 schwarze Exp $
.\"	OpenSSL SSL_get_peer_cert_chain.pod 1f164c6f Jan 18 01:40:36 2017 +0100
.\"	OpenSSL SSL_get_peer_cert_chain.pod 9b86974e Aug 17 15:21:33 2015 -0400
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2005, 2014, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_get_peer_cert_chain.3,v 1.4 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL SSL_get_peer_cert_chain.pod 1f164c6f Jan 18 01:40:36 2017 +0100
.\"	OpenSSL SSL_get_peer_cert_chain.pod 9b86974e Aug 17 15:21:33 2015 -0400
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2005, 2014, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 28 2017 $
.Dt SSL_GET_PEER_CERT_CHAIN 3
.Os
.Sh NAME
.Nm SSL_get_peer_cert_chain
.Nd get the X509 certificate chain sent by the peer
.Sh SYNOPSIS
.In openssl/ssl.h







|







46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_GET_PEER_CERT_CHAIN 3
.Os
.Sh NAME
.Nm SSL_get_peer_cert_chain
.Nd get the X509 certificate chain sent by the peer
.Sh SYNOPSIS
.In openssl/ssl.h
97
98
99
100
101
102
103




the certificate chain is no longer available when a session is reused.
.It Pointer to a Dv STACK_OF Ns Po X509 Pc
The return value points to the certificate chain presented by the peer.
.El
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_get_peer_certificate 3











>
>
>
>
97
98
99
100
101
102
103
104
105
106
107
the certificate chain is no longer available when a session is reused.
.It Pointer to a Dv STACK_OF Ns Po X509 Pc
The return value points to the certificate chain presented by the peer.
.El
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_get_peer_certificate 3
.Sh HISTORY
.Fn SSL_get_peer_cert_chain
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_get_peer_certificate.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_get_peer_certificate.3,v 1.2 2016/12/03 08:54:21 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2001, 2005 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_get_peer_certificate.3,v 1.3 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2001, 2005 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 3 2016 $
.Dt SSL_GET_PEER_CERTIFICATE 3
.Os
.Sh NAME
.Nm SSL_get_peer_certificate
.Nd get the X509 certificate of the peer
.Sh SYNOPSIS
.In openssl/ssl.h







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_GET_PEER_CERTIFICATE 3
.Os
.Sh NAME
.Nm SSL_get_peer_certificate
.Nd get the X509 certificate of the peer
.Sh SYNOPSIS
.In openssl/ssl.h
94
95
96
97
98
99
100




.It Pointer to an X509 certificate
The return value points to the certificate presented by the peer.
.El
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_set_verify 3 ,
.Xr SSL_get_verify_result 3











>
>
>
>
94
95
96
97
98
99
100
101
102
103
104
.It Pointer to an X509 certificate
The return value points to the certificate presented by the peer.
.El
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_set_verify 3 ,
.Xr SSL_get_verify_result 3
.Sh HISTORY
.Fn SSL_get_peer_certificate
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_get_rbio.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_get_rbio.3,v 1.3 2016/12/06 12:24:33 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2013 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_get_rbio.3,v 1.4 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2013 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 6 2016 $
.Dt SSL_GET_RBIO 3
.Os
.Sh NAME
.Nm SSL_get_rbio ,
.Nm SSL_get_wbio
.Nd get BIO linked to an SSL object
.Sh SYNOPSIS







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_GET_RBIO 3
.Os
.Sh NAME
.Nm SSL_get_rbio ,
.Nm SSL_get_wbio
.Nd get BIO linked to an SSL object
.Sh SYNOPSIS
86
87
88
89
90
91
92






linked to
.Fa ssl .
.El
.Sh SEE ALSO
.Xr BIO_new 3 ,
.Xr ssl 3 ,
.Xr SSL_set_bio 3













>
>
>
>
>
>
86
87
88
89
90
91
92
93
94
95
96
97
98
linked to
.Fa ssl .
.El
.Sh SEE ALSO
.Xr BIO_new 3 ,
.Xr ssl 3 ,
.Xr SSL_set_bio 3
.Sh HISTORY
.Fn SSL_get_rbio
and
.Fn SSL_get_wbio
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_get_server_tmp_key.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_get_server_tmp_key.3,v 1.1 2017/04/10 15:54:46 schwarze Exp $
.\"	OpenSSL SSL_get_server_tmp_key.pod 508fafd8 Apr 3 15:41:21 2017 +0100
.\"
.\" This file was written by Matt Caswell <matt@openssl.org>
.\" Copyright (c) 2017 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_get_server_tmp_key.3,v 1.3 2018/03/24 00:55:37 schwarze Exp $
.\"	OpenSSL SSL_get_server_tmp_key.pod 508fafd8 Apr 3 15:41:21 2017 +0100
.\"
.\" This file was written by Matt Caswell <matt@openssl.org>
.\" Copyright (c) 2017 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: April 10 2017 $
.Dt SSL_GET_SERVER_TMP_KEY 3
.Os
.Sh NAME
.Nm SSL_get_server_tmp_key
.Nd temporary server key during a handshake
.Sh SYNOPSIS
.In openssl/ssl.h







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 24 2018 $
.Dt SSL_GET_SERVER_TMP_KEY 3
.Os
.Sh NAME
.Nm SSL_get_server_tmp_key
.Nd temporary server key during a handshake
.Sh SYNOPSIS
.In openssl/ssl.h
78
79
80
81
82
83
84




This function is implemented as a macro.
.Sh RETURN VALUES
.Fn SSL_get_server_tmp_key
returns 1 on success or 0 on failure.
.Sh SEE ALSO
.Xr EVP_PKEY_free 3 ,
.Xr SSL_ctrl 3











>
>
>
>
78
79
80
81
82
83
84
85
86
87
88
This function is implemented as a macro.
.Sh RETURN VALUES
.Fn SSL_get_server_tmp_key
returns 1 on success or 0 on failure.
.Sh SEE ALSO
.Xr EVP_PKEY_free 3 ,
.Xr SSL_ctrl 3
.Sh HISTORY
.Fn SSL_get_server_tmp_key
first appeared in OpenSSL 1.0.2 and has been available since
.Ox 6.1 .
Changes to jni/libressl/man/SSL_get_session.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_get_session.3,v 1.3 2017/04/10 15:37:55 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2001, 2005, 2013, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_get_session.3,v 1.6 2018/03/22 16:07:53 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2001, 2005, 2013, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: April 10 2017 $
.Dt SSL_GET_SESSION 3
.Os
.Sh NAME
.Nm SSL_get_session ,
.Nm SSL_get0_session ,
.Nm SSL_get1_session
.Nd retrieve TLS/SSL session data







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt SSL_GET_SESSION 3
.Os
.Sh NAME
.Nm SSL_get_session ,
.Nm SSL_get0_session ,
.Nm SSL_get1_session
.Nd retrieve TLS/SSL session data
142
143
144
145
146
147
148

149
150
151











.Xr ssl 3 ,
.Xr SSL_clear 3 ,
.Xr SSL_free 3 ,
.Xr SSL_SESSION_free 3 ,
.Xr SSL_SESSION_get0_peer 3 ,
.Xr SSL_SESSION_get_compress_id 3 ,
.Xr SSL_SESSION_get_id 3 ,

.Xr SSL_SESSION_get_time 3 ,
.Xr SSL_SESSION_new 3 ,
.Xr SSL_SESSION_print 3


















>


|
>
>
>
>
>
>
>
>
>
>
>
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
.Xr ssl 3 ,
.Xr SSL_clear 3 ,
.Xr SSL_free 3 ,
.Xr SSL_SESSION_free 3 ,
.Xr SSL_SESSION_get0_peer 3 ,
.Xr SSL_SESSION_get_compress_id 3 ,
.Xr SSL_SESSION_get_id 3 ,
.Xr SSL_SESSION_get_protocol_version 3 ,
.Xr SSL_SESSION_get_time 3 ,
.Xr SSL_SESSION_new 3 ,
.Xr SSL_SESSION_print 3 ,
.Xr SSL_set_session 3
.Sh HISTORY
.Fn SSL_get_session
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
.Pp
.Fn SSL_get0_session
and
.Fn SSL_get1_session
first appeared in OpenSSL 0.9.5 and have been available since
.Ox 2.7 .
Changes to jni/libressl/man/SSL_get_shared_ciphers.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: SSL_get_shared_ciphers.3,v 1.1 2016/12/10 14:56:56 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 10 2016 $
.Dt SSL_GET_SHARED_CIPHERS 3
.Os
.Sh NAME
.Nm SSL_get_shared_ciphers
.Nd ciphers supported by both client and server
.Sh SYNOPSIS
.In openssl/ssl.h
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: SSL_get_shared_ciphers.3,v 1.2 2018/03/21 05:07:04 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_GET_SHARED_CIPHERS 3
.Os
.Sh NAME
.Nm SSL_get_shared_ciphers
.Nd ciphers supported by both client and server
.Sh SYNOPSIS
.In openssl/ssl.h
51
52
53
54
55
56
57
58

59
60
61
62
63
64
65
66
67
68
69
70
.Fn SSL_get_shared_ciphers
returns
.Dv NULL .
Otherwise, it returns
.Fa buf .
.Sh HISTORY
.Fn SSL_get_shared_ciphers
is available in all versions of OpenSSL.

.Sh BUGS
If the list is too long to fit into
.Fa len
bytes, it is silently truncated after the last cipher name that fits,
and all following ciphers are skipped.
If the buffer is very short such that even the first cipher name
does not fit, an empty string is returned even when some shared
ciphers are actually available.
.Pp
There is no easy way to find out how much space is required for
.Fa buf
or whether the supplied space was sufficient.







|
>












51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
.Fn SSL_get_shared_ciphers
returns
.Dv NULL .
Otherwise, it returns
.Fa buf .
.Sh HISTORY
.Fn SSL_get_shared_ciphers
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
.Sh BUGS
If the list is too long to fit into
.Fa len
bytes, it is silently truncated after the last cipher name that fits,
and all following ciphers are skipped.
If the buffer is very short such that even the first cipher name
does not fit, an empty string is returned even when some shared
ciphers are actually available.
.Pp
There is no easy way to find out how much space is required for
.Fa buf
or whether the supplied space was sufficient.
Changes to jni/libressl/man/SSL_get_state.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: SSL_get_state.3,v 1.1 2016/12/10 13:54:32 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 10 2016 $
.Dt SSL_GET_STATE 3
.Os
.Sh NAME
.Nm SSL_get_state ,
.Nm SSL_state ,
.Nm SSL_in_accept_init ,
.Nm SSL_in_before ,
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: SSL_get_state.3,v 1.3 2018/03/21 08:06:34 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_GET_STATE 3
.Os
.Sh NAME
.Nm SSL_get_state ,
.Nm SSL_state ,
.Nm SSL_in_accept_init ,
.Nm SSL_in_before ,
139
140
141
142
143
144
145










146

other bits.
.Pp
All these functions may be implemented as macros.
.Sh SEE ALSO
.Xr SSL_renegotiate 3 ,
.Xr SSL_set_connect_state 3
.Sh HISTORY










These functions are available in all versions of OpenSSL.








>
>
>
>
>
>
>
>
>
>
|
>
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
other bits.
.Pp
All these functions may be implemented as macros.
.Sh SEE ALSO
.Xr SSL_renegotiate 3 ,
.Xr SSL_set_connect_state 3
.Sh HISTORY
.Fn SSL_state ,
.Fn SSL_in_accept_init ,
.Fn SSL_in_before ,
.Fn SSL_in_connect_init ,
.Fn SSL_in_init ,
and
.Fn SSL_is_init_finished
appeared before SSLeay 0.8.
.Fn SSL_get_state
first appeared in SSLeay 0.9.0.
These functions have been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_get_verify_result.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_get_verify_result.3,v 1.2 2016/12/03 08:54:21 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2001, 2005 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_get_verify_result.3,v 1.3 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2001, 2005 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 3 2016 $
.Dt SSL_GET_VERIFY_RESULT 3
.Os
.Sh NAME
.Nm SSL_get_verify_result
.Nd get result of peer certificate verification
.Sh SYNOPSIS
.In openssl/ssl.h







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_GET_VERIFY_RESULT 3
.Os
.Sh NAME
.Nm SSL_get_verify_result
.Nd get result of peer certificate verification
.Sh SYNOPSIS
.In openssl/ssl.h
82
83
84
85
86
87
88




89
90
91
92
93
94
95
96
.Xr openssl 1 .
.El
.Sh SEE ALSO
.Xr openssl 1 ,
.Xr ssl 3 ,
.Xr SSL_get_peer_certificate 3 ,
.Xr SSL_set_verify_result 3




.Sh BUGS
If no peer certificate was presented, the returned result code is
.Dv X509_V_OK .
This is because no verification error occurred;
however, it does not indicate success.
.Fn SSL_get_verify_result
is only useful in connection with
.Xr SSL_get_peer_certificate 3 .







>
>
>
>








82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
.Xr openssl 1 .
.El
.Sh SEE ALSO
.Xr openssl 1 ,
.Xr ssl 3 ,
.Xr SSL_get_peer_certificate 3 ,
.Xr SSL_set_verify_result 3
.Sh HISTORY
.Fn SSL_get_verify_result
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
.Sh BUGS
If no peer certificate was presented, the returned result code is
.Dv X509_V_OK .
This is because no verification error occurred;
however, it does not indicate success.
.Fn SSL_get_verify_result
is only useful in connection with
.Xr SSL_get_peer_certificate 3 .
Changes to jni/libressl/man/SSL_get_version.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_get_version.3,v 1.3 2016/12/10 13:12:08 schwarze Exp $
.\"	OpenSSL bb9ad09e Jun 6 00:43:05 2016 -0400
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2005, 2014 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_get_version.3,v 1.4 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL bb9ad09e Jun 6 00:43:05 2016 -0400
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2005, 2014 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 10 2016 $
.Dt SSL_GET_VERSION 3
.Os
.Sh NAME
.Nm SSL_get_version ,
.Nm SSL_version
.Nd get the protocol version of a connection
.Sh SYNOPSIS







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_GET_VERSION 3
.Os
.Sh NAME
.Nm SSL_get_version ,
.Nm SSL_version
.Nd get the protocol version of a connection
.Sh SYNOPSIS
84
85
86
87
88
89
90
91

.El
.Sh SEE ALSO
.Xr ssl 3
.Sh HISTORY
.Fn SSL_get_version
and
.Fn SSL_version
are available in all versions of OpenSSL.








|
>
84
85
86
87
88
89
90
91
92
.El
.Sh SEE ALSO
.Xr ssl 3
.Sh HISTORY
.Fn SSL_get_version
and
.Fn SSL_version
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_library_init.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_library_init.3,v 1.2 2016/12/04 12:13:43 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2006, 2010 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_library_init.3,v 1.5 2018/03/22 16:07:53 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2006, 2010 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 4 2016 $
.Dt SSL_LIBRARY_INIT 3
.Os
.Sh NAME
.Nm SSL_library_init ,
.Nm OpenSSL_add_ssl_algorithms ,
.Nm SSLeay_add_ssl_algorithms
.Nd initialize SSL library by registering algorithms







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt SSL_LIBRARY_INIT 3
.Os
.Sh NAME
.Nm SSL_library_init ,
.Nm OpenSSL_add_ssl_algorithms ,
.Nm SSLeay_add_ssl_algorithms
.Nd initialize SSL library by registering algorithms
92
93
94
95
96
97
98












SSL_load_error_strings();                /* readable error messages */
SSL_library_init();                      /* initialize library */
.Ed
.Sh SEE ALSO
.Xr RAND_add 3 ,
.Xr ssl 3 ,
.Xr SSL_load_error_strings 3



















>
>
>
>
>
>
>
>
>
>
>
>
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
SSL_load_error_strings();                /* readable error messages */
SSL_library_init();                      /* initialize library */
.Ed
.Sh SEE ALSO
.Xr RAND_add 3 ,
.Xr ssl 3 ,
.Xr SSL_load_error_strings 3
.Sh HISTORY
.Fn SSLeay_add_ssl_algorithms
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
.Pp
.Fn SSL_library_init
first appeared in OpenSSL 0.9.2b and has been available since
.Ox 2.6 .
.Pp
.Fn OpenSSL_add_ssl_algorithms
first appeared in OpenSSL 0.9.5 and has been available since
.Ox 2.7 .
Changes to jni/libressl/man/SSL_load_client_CA_file.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_load_client_CA_file.3,v 1.5 2016/12/16 15:39:08 jmc Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_load_client_CA_file.3,v 1.7 2018/03/21 16:12:41 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 16 2016 $
.Dt SSL_LOAD_CLIENT_CA_FILE 3
.Os
.Sh NAME
.Nm SSL_load_client_CA_file ,
.Nm SSL_add_file_cert_subjects_to_stack ,
.Nm SSL_add_dir_cert_subjects_to_stack
.Nd load certificate names from files







|







61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_LOAD_CLIENT_CA_FILE 3
.Os
.Sh NAME
.Nm SSL_load_client_CA_file ,
.Nm SSL_add_file_cert_subjects_to_stack ,
.Nm SSL_add_dir_cert_subjects_to_stack
.Nd load certificate names from files
141
142
143
144
145
146
147




148
149
150
151

152
153
154
155
156
157
158
.Ed
.Sh SEE ALSO
.Xr PEM_read_bio_X509 3 ,
.Xr SSL_CTX_set_client_CA_list 3 ,
.Xr X509_get_subject_name 3 ,
.Xr X509_NAME_new 3
.Sh HISTORY




.Fn SSL_add_file_cert_subjects_to_stack
and
.Fn SSL_add_dir_cert_subjects_to_stack
first appeared in OpenSSL 0.9.2b.

.Sh AUTHORS
.Fn SSL_add_file_cert_subjects_to_stack
and
.Fn SSL_add_dir_cert_subjects_to_stack
were written by
.An Ben Laurie Aq Mt ben@openssl.org
in 1999.







>
>
>
>



|
>







141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
.Ed
.Sh SEE ALSO
.Xr PEM_read_bio_X509 3 ,
.Xr SSL_CTX_set_client_CA_list 3 ,
.Xr X509_get_subject_name 3 ,
.Xr X509_NAME_new 3
.Sh HISTORY
.Fn SSL_load_client_CA_file
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
.Pp
.Fn SSL_add_file_cert_subjects_to_stack
and
.Fn SSL_add_dir_cert_subjects_to_stack
first appeared in OpenSSL 0.9.2b and have been available since
.Ox 2.6 .
.Sh AUTHORS
.Fn SSL_add_file_cert_subjects_to_stack
and
.Fn SSL_add_dir_cert_subjects_to_stack
were written by
.An Ben Laurie Aq Mt ben@openssl.org
in 1999.
Changes to jni/libressl/man/SSL_new.3.
1
2
3
4

5
6
7
8
9
10
11
12
.\"	$OpenBSD: SSL_new.3,v 1.2 2016/12/04 12:22:48 schwarze Exp $
.\"	OpenSSL 9b86974e Aug 17 15:21:33 2015 -0400
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.

.\" Copyright (c) 2000, 2001 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
|
|

|
>
|







1
2
3
4
5
6
7
8
9
10
11
12
13
.\" $OpenBSD: SSL_new.3,v 1.5 2018/03/24 00:55:37 schwarze Exp $
.\" full merge up to: OpenSSL 1c7ae3dd Mar 29 19:17:55 2017 +1000
.\"
.\" This file was written by Richard Levitte <levitte@openssl.org>
.\" and Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2000, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
44
45
46
47
48
49
50
51
52
53
54
55

56
57
58
59
60


61
62
63
64
65
66
67
68
69






70
71
72
73
74
75
76
77
78
79
80
81
82



83
84
85
86
87
88








.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 4 2016 $
.Dt SSL_NEW 3
.Os
.Sh NAME
.Nm SSL_new

.Nd create a new SSL structure for a connection
.Sh SYNOPSIS
.In openssl/ssl.h
.Ft SSL *
.Fn SSL_new "SSL_CTX *ctx"


.Sh DESCRIPTION
.Fn SSL_new
creates a new
.Vt SSL
structure which is needed to hold the data for a TLS/SSL connection.
The new structure inherits the settings of the underlying context
.Fa ctx :
connection method, options, verification settings,
timeout settings.






.Sh RETURN VALUES
The following return values can occur:
.Bl -tag -width Ds
.It Dv NULL
The creation of a new
.Vt SSL
structure failed.
Check the error stack to find out the reason.
.It Pointer to an Vt SSL No structure
The return value points to an allocated
.Vt SSL
structure.
.El



.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_clear 3 ,
.Xr SSL_CTX_set_options 3 ,
.Xr SSL_free 3 ,
.Xr SSL_get_SSL_CTX 3















|



|
>





>
>









>
>
>
>
>
>













>
>
>






>
>
>
>
>
>
>
>
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 24 2018 $
.Dt SSL_NEW 3
.Os
.Sh NAME
.Nm SSL_new ,
.Nm SSL_up_ref
.Nd create a new SSL structure for a connection
.Sh SYNOPSIS
.In openssl/ssl.h
.Ft SSL *
.Fn SSL_new "SSL_CTX *ctx"
.Ft int
.Fn SSL_up_ref "SSL *ssl"
.Sh DESCRIPTION
.Fn SSL_new
creates a new
.Vt SSL
structure which is needed to hold the data for a TLS/SSL connection.
The new structure inherits the settings of the underlying context
.Fa ctx :
connection method, options, verification settings,
timeout settings.
The reference count of the new structure is set to 1.
.Pp
.Fn SSL_up_ref
increments the reference count of
.Fa ssl
by 1.
.Sh RETURN VALUES
The following return values can occur:
.Bl -tag -width Ds
.It Dv NULL
The creation of a new
.Vt SSL
structure failed.
Check the error stack to find out the reason.
.It Pointer to an Vt SSL No structure
The return value points to an allocated
.Vt SSL
structure.
.El
.Pp
.Fn SSL_up_ref
returns 1 for success or 0 for failure.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_clear 3 ,
.Xr SSL_CTX_set_options 3 ,
.Xr SSL_free 3 ,
.Xr SSL_get_SSL_CTX 3
.Sh HISTORY
.Fn SSL_new
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
.Pp
.Fn SSL_up_ref
first appeared in OpenSSL 1.1.0 and has been available since
.Ox 6.3 .
Changes to jni/libressl/man/SSL_num_renegotiations.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: SSL_num_renegotiations.3,v 1.3 2017/07/05 11:43:09 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: July 5 2017 $
.Dt SSL_NUM_RENEGOTIATIONS 3
.Os
.Sh NAME
.Nm SSL_num_renegotiations ,
.Nm SSL_clear_num_renegotiations ,
.Nm SSL_total_renegotiations
.Nd renegotiation counters
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: SSL_num_renegotiations.3,v 1.4 2018/03/21 08:06:34 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_NUM_RENEGOTIATIONS 3
.Os
.Sh NAME
.Nm SSL_num_renegotiations ,
.Nm SSL_clear_num_renegotiations ,
.Nm SSL_total_renegotiations
.Nd renegotiation counters
65
66
67
68
69
70
71
72


.Sh SEE ALSO
.Xr BIO_set_ssl_renegotiate_bytes 3 ,
.Xr SSL_ctrl 3 ,
.Xr SSL_read 3 ,
.Xr SSL_renegotiate 3 ,
.Xr SSL_write 3
.Sh HISTORY
These functions are available in all versions of OpenSSL.









|
>
>
65
66
67
68
69
70
71
72
73
74
.Sh SEE ALSO
.Xr BIO_set_ssl_renegotiate_bytes 3 ,
.Xr SSL_ctrl 3 ,
.Xr SSL_read 3 ,
.Xr SSL_renegotiate 3 ,
.Xr SSL_write 3
.Sh HISTORY
These functions first appeared in SSLeay 0.9.0
and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_pending.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_pending.3,v 1.2 2016/12/04 12:26:05 schwarze Exp $
.\"	OpenSSL a528d4f0 Oct 27 13:40:11 2015 -0400
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>,
.\" Bodo Moeller <bodo@openssl.org>, and Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2000, 2005, 2015, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_pending.3,v 1.3 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL a528d4f0 Oct 27 13:40:11 2015 -0400
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>,
.\" Bodo Moeller <bodo@openssl.org>, and Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2000, 2005, 2015, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 4 2016 $
.Dt SSL_PENDING 3
.Os
.Sh NAME
.Nm SSL_pending
.Nd obtain number of readable bytes buffered in an SSL object
.Sh SYNOPSIS
.In openssl/ssl.h







|







46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_PENDING 3
.Os
.Sh NAME
.Nm SSL_pending
.Nd obtain number of readable bytes buffered in an SSL object
.Sh SYNOPSIS
.In openssl/ssl.h
95
96
97
98
99
100
101




102
103
104
105
.Fn SSL_pending
returns the number of buffered and processed application data
bytes that are pending and are available for immediate read.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_set_read_ahead 3 ,
.Xr SSL_read 3




.Sh BUGS
Up to OpenSSL 0.9.6,
.Fn SSL_pending
did not check if the record type of pending data is application data.







>
>
>
>




95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
.Fn SSL_pending
returns the number of buffered and processed application data
bytes that are pending and are available for immediate read.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_set_read_ahead 3 ,
.Xr SSL_read 3
.Sh HISTORY
.Fn SSL_pending
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
.Sh BUGS
Up to OpenSSL 0.9.6,
.Fn SSL_pending
did not check if the record type of pending data is application data.
Changes to jni/libressl/man/SSL_read.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_read.3,v 1.4 2016/12/07 18:47:23 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org> and
.\" Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2000, 2001, 2008, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_read.3,v 1.5 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org> and
.\" Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2000, 2001, 2008, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 7 2016 $
.Dt SSL_READ 3
.Os
.Sh NAME
.Nm SSL_read ,
.Nm SSL_peek
.Nd read bytes from a TLS/SSL connection
.Sh SYNOPSIS







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_READ 3
.Os
.Sh NAME
.Nm SSL_read ,
.Nm SSL_peek
.Nd read bytes from a TLS/SSL connection
.Sh SYNOPSIS
219
220
221
222
223
224
225






.Xr SSL_CTX_set_mode 3 ,
.Xr SSL_get_error 3 ,
.Xr SSL_pending 3 ,
.Xr SSL_set_connect_state 3 ,
.Xr SSL_set_shutdown 3 ,
.Xr SSL_shutdown 3 ,
.Xr SSL_write 3













>
>
>
>
>
>
219
220
221
222
223
224
225
226
227
228
229
230
231
.Xr SSL_CTX_set_mode 3 ,
.Xr SSL_get_error 3 ,
.Xr SSL_pending 3 ,
.Xr SSL_set_connect_state 3 ,
.Xr SSL_set_shutdown 3 ,
.Xr SSL_shutdown 3 ,
.Xr SSL_write 3
.Sh HISTORY
.Fn SSL_read
and
.Fn SSL_peek
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_renegotiate.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_renegotiate.3,v 1.4 2017/03/29 00:24:42 jmc Exp $
.\"	OpenSSL SSL_key_update.pod 4fbfe86a Feb 16 17:04:40 2017 +0000
.\"
.\" This file is a derived work.
.\" Some parts are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2016, 2017 Ingo Schwarze <schwarze@openbsd.org>
.\"
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_renegotiate.3,v 1.7 2018/03/23 05:50:30 schwarze Exp $
.\"	OpenSSL SSL_key_update.pod 4fbfe86a Feb 16 17:04:40 2017 +0000
.\"
.\" This file is a derived work.
.\" Some parts are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2016, 2017 Ingo Schwarze <schwarze@openbsd.org>
.\"
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 29 2017 $
.Dt SSL_RENEGOTIATE 3
.Os
.Sh NAME
.Nm SSL_renegotiate ,
.Nm SSL_renegotiate_abbreviated ,
.Nm SSL_renegotiate_pending
.Nd initiate a new TLS handshake







|







61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt SSL_RENEGOTIATE 3
.Os
.Sh NAME
.Nm SSL_renegotiate ,
.Nm SSL_renegotiate_abbreviated ,
.Nm SSL_renegotiate_pending
.Nd initiate a new TLS handshake
149
150
151
152
153
154
155
156









.Sh SEE ALSO
.Xr SSL_do_handshake 3 ,
.Xr SSL_num_renegotiations 3 ,
.Xr SSL_read 3 ,
.Xr SSL_write 3
.Sh HISTORY
.Fn SSL_renegotiate
is available in all versions of OpenSSL.
















|
>
>
>
>
>
>
>
>
>
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
.Sh SEE ALSO
.Xr SSL_do_handshake 3 ,
.Xr SSL_num_renegotiations 3 ,
.Xr SSL_read 3 ,
.Xr SSL_write 3
.Sh HISTORY
.Fn SSL_renegotiate
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
.Pp
.Fn SSL_renegotiate_pending
first appeared in OpenSSL 0.9.7 and has been available since
.Ox 3.2 .
.Pp
.Fn SSL_renegotiate_abbreviated
first appeared in OpenSSL 1.0.1 and has been available since
.Ox 5.3 .
Changes to jni/libressl/man/SSL_rstate_string.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_rstate_string.3,v 1.2 2016/12/04 12:20:54 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_rstate_string.3,v 1.3 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 4 2016 $
.Dt SSL_RSTATE_STRING 3
.Os
.Sh NAME
.Nm SSL_rstate_string ,
.Nm SSL_rstate_string_long
.Nd get textual description of state of an SSL object during read operation
.Sh SYNOPSIS







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_RSTATE_STRING 3
.Os
.Sh NAME
.Nm SSL_rstate_string ,
.Nm SSL_rstate_string_long
.Nd get textual description of state of an SSL object during read operation
.Sh SYNOPSIS
96
97
98
99
100
101
102






The record has been completely processed.
.It Qo unknown Qc Ns / Ns Qo unknown Qc
The read state is unknown.
This should never happen.
.El
.Sh SEE ALSO
.Xr ssl 3













>
>
>
>
>
>
96
97
98
99
100
101
102
103
104
105
106
107
108
The record has been completely processed.
.It Qo unknown Qc Ns / Ns Qo unknown Qc
The read state is unknown.
This should never happen.
.El
.Sh SEE ALSO
.Xr ssl 3
.Sh HISTORY
.Fn SSL_rstate_string
and
.Fn SSL_rstate_string_long
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_session_reused.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_session_reused.3,v 1.3 2017/04/10 14:00:51 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_session_reused.3,v 1.4 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: April 10 2017 $
.Dt SSL_SESSION_REUSED 3
.Os
.Sh NAME
.Nm SSL_session_reused
.Nd query whether a reused session was negotiated during handshake
.Sh SYNOPSIS
.In openssl/ssl.h







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_SESSION_REUSED 3
.Os
.Sh NAME
.Nm SSL_session_reused
.Nd query whether a reused session was negotiated during handshake
.Sh SYNOPSIS
.In openssl/ssl.h
73
74
75
76
77
78
79




.It 1
A session was reused.
.El
.Sh SEE ALSO
.Xr SSL_ctrl 3 ,
.Xr SSL_CTX_set_session_cache_mode 3 ,
.Xr SSL_set_session 3











>
>
>
>
73
74
75
76
77
78
79
80
81
82
83
.It 1
A session was reused.
.El
.Sh SEE ALSO
.Xr SSL_ctrl 3 ,
.Xr SSL_CTX_set_session_cache_mode 3 ,
.Xr SSL_set_session 3
.Sh HISTORY
.Fn SSL_session_reused
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_set1_param.3.
1

2
3
4
5
6
7
8
9
.\"	$OpenBSD: SSL_set1_param.3,v 1.1 2016/11/30 13:39:38 schwarze Exp $

.\"	OpenSSL SSL_CTX_get0_param.pod 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
|
>
|







1
2
3
4
5
6
7
8
9
10
.\" $OpenBSD: SSL_set1_param.3,v 1.4 2018/03/23 14:28:16 schwarze Exp $
.\" full merge up to:
.\" OpenSSL man3/SSL_CTX_get0_param 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
44
45
46
47
48
49
50
51
52
53
54


55
56
57
58
59








60
61
62
63
64
65
66
67
68
69
70












71
72
73
74
75
76
77
78
79
80







81
82
83
84








85
86
87









88

.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: November 30 2016 $
.Dt SSL_SET1_PARAM 3
.Os
.Sh NAME


.Nm SSL_CTX_set1_param ,
.Nm SSL_set1_param
.Nd set verification parameters
.Sh SYNOPSIS
.In openssl/ssl.h








.Ft int
.Fo SSL_CTX_set1_param
.Fa "SSL_CTX *ctx"
.Fa "X509_VERIFY_PARAM *vpm"
.Fc
.Ft int
.Fo SSL_set1_param
.Fa "SSL *ssl"
.Fa "X509_VERIFY_PARAM *vpm"
.Fc
.Sh DESCRIPTION












.Fn SSL_CTX_set1_param
and
.Fn SSL_set1_param
set the verification parameters to
.Fa vpm
for
.Fa ctx
or
.Fa ssl .
.Sh RETURN VALUES







.Fn SSL_CTX_set1_param
and
.Fn SSL_set1_param
return 1 for success or 0 for failure.








.Sh SEE ALSO
.Xr X509_VERIFY_PARAM_set_flags 3
.Sh HISTORY









These functions were first added to OpenSSL 1.0.2.








|



>
>


|


>
>
>
>
>
>
>
>











>
>
>
>
>
>
>
>
>
>
>
>










>
>
>
>
>
>
>




>
>
>
>
>
>
>
>



>
>
>
>
>
>
>
>
>
|
>
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt SSL_SET1_PARAM 3
.Os
.Sh NAME
.Nm SSL_CTX_get0_param ,
.Nm SSL_get0_param ,
.Nm SSL_CTX_set1_param ,
.Nm SSL_set1_param
.Nd get and set verification parameters
.Sh SYNOPSIS
.In openssl/ssl.h
.Ft X509_VERIFY_PARAM *
.Fo SSL_CTX_get0_param
.Fa "SSL_CTX *ctx"
.Fc
.Ft X509_VERIFY_PARAM *
.Fo SSL_get0_param
.Fa "SSL *ssl"
.Fc
.Ft int
.Fo SSL_CTX_set1_param
.Fa "SSL_CTX *ctx"
.Fa "X509_VERIFY_PARAM *vpm"
.Fc
.Ft int
.Fo SSL_set1_param
.Fa "SSL *ssl"
.Fa "X509_VERIFY_PARAM *vpm"
.Fc
.Sh DESCRIPTION
.Fn SSL_CTX_get0_param
and
.Fn SSL_get0_param
retrieve an internal pointer to the verification parameters for
.Fa ctx
or
.Fa ssl ,
respectively.
The returned pointer must not be freed by the calling application,
but the application can modify the parameters pointed to
to suit its needs: for example to add a hostname check.
.Pp
.Fn SSL_CTX_set1_param
and
.Fn SSL_set1_param
set the verification parameters to
.Fa vpm
for
.Fa ctx
or
.Fa ssl .
.Sh RETURN VALUES
.Fn SSL_CTX_get0_param
and
.Fn SSL_get0_param
return a pointer to an
.Vt X509_VERIFY_PARAM
structure.
.Pp
.Fn SSL_CTX_set1_param
and
.Fn SSL_set1_param
return 1 for success or 0 for failure.
.Sh EXAMPLES
Check that the hostname matches
.Pa www.foo.com
in the peer certificate:
.Bd -literal -offset indent
X509_VERIFY_PARAM *vpm = SSL_get0_param(ssl);
X509_VERIFY_PARAM_set1_host(vpm, "www.foo.com", 0);
.Ed
.Sh SEE ALSO
.Xr X509_VERIFY_PARAM_set_flags 3
.Sh HISTORY
.Fn SSL_CTX_set1_param
and
.Fn SSL_set1_param
first appeared in OpenSSL 1.0.0 and have been available since
.Ox 4.9 .
.Pp
.Fn SSL_CTX_get0_param
and
.Fn SSL_get0_param
first appeared in OpenSSL 1.0.2 and have been available since
.Ox 6.3 .
Changes to jni/libressl/man/SSL_set_bio.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_set_bio.3,v 1.3 2016/12/06 12:24:33 schwarze Exp $
.\"	OpenSSL acb5b343 Sep 16 16:00:38 2000 +0000
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_set_bio.3,v 1.4 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL acb5b343 Sep 16 16:00:38 2000 +0000
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 6 2016 $
.Dt SSL_SET_BIO 3
.Os
.Sh NAME
.Nm SSL_set_bio
.Nd connect the SSL object with a BIO
.Sh SYNOPSIS
.In openssl/ssl.h







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_SET_BIO 3
.Os
.Sh NAME
.Nm SSL_set_bio
.Nd connect the SSL object with a BIO
.Sh SYNOPSIS
.In openssl/ssl.h
92
93
94
95
96
97
98




.Sh SEE ALSO
.Xr BIO_new 3 ,
.Xr ssl 3 ,
.Xr SSL_accept 3 ,
.Xr SSL_connect 3 ,
.Xr SSL_get_rbio 3 ,
.Xr SSL_shutdown 3











>
>
>
>
92
93
94
95
96
97
98
99
100
101
102
.Sh SEE ALSO
.Xr BIO_new 3 ,
.Xr ssl 3 ,
.Xr SSL_accept 3 ,
.Xr SSL_connect 3 ,
.Xr SSL_get_rbio 3 ,
.Xr SSL_shutdown 3
.Sh HISTORY
.Fn SSL_set_bio
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_set_connect_state.3.
1
2

3
4

5
6
7
8
9
10
11
12
.\"	$OpenBSD: SSL_set_connect_state.3,v 1.2 2016/12/04 12:20:54 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100

.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.

.\" Copyright (c) 2001, 2002 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
|
|
>

|
>
|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
.\" $OpenBSD: SSL_set_connect_state.3,v 1.5 2018/03/23 14:28:16 schwarze Exp $
.\" full merge up to OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\" selective merge up to: OpenSSL dbd007d7 Jul 28 13:31:27 2017 +0800
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>
.\" and Paul Yang <yang.yang@baishancloud.com>.
.\" Copyright (c) 2001, 2017 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
44
45
46
47
48
49
50
51
52
53
54
55
56

57
58
59
60
61
62
63


64
65
66
67
68
69
70
71
72
73
74





75
76
77
78
79
80
81
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 4 2016 $
.Dt SSL_SET_CONNECT_STATE 3
.Os
.Sh NAME
.Nm SSL_set_connect_state ,
.Nm SSL_set_accept_state

.Nd prepare SSL object to work in client or server mode
.Sh SYNOPSIS
.In openssl/ssl.h
.Ft void
.Fn SSL_set_connect_state "SSL *ssl"
.Ft void
.Fn SSL_set_accept_state "SSL *ssl"


.Sh DESCRIPTION
.Fn SSL_set_connect_state
sets
.Fa ssl
to work in client mode.
.Pp
.Fn SSL_set_accept_state
sets
.Fa ssl
to work in server mode.
.Pp





When the
.Vt SSL_CTX
object was created with
.Xr SSL_CTX_new 3 ,
it was either assigned a dedicated client method, a dedicated server method, or
a generic method, that can be used for both client and server connections.
(The method might have been changed with







|




|
>







>
>











>
>
>
>
>







46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt SSL_SET_CONNECT_STATE 3
.Os
.Sh NAME
.Nm SSL_set_connect_state ,
.Nm SSL_set_accept_state ,
.Nm SSL_is_server
.Nd prepare SSL object to work in client or server mode
.Sh SYNOPSIS
.In openssl/ssl.h
.Ft void
.Fn SSL_set_connect_state "SSL *ssl"
.Ft void
.Fn SSL_set_accept_state "SSL *ssl"
.Ft int
.Fn SSL_is_server "const SSL *ssl"
.Sh DESCRIPTION
.Fn SSL_set_connect_state
sets
.Fa ssl
to work in client mode.
.Pp
.Fn SSL_set_accept_state
sets
.Fa ssl
to work in server mode.
.Pp
.Fn SSL_is_server
checks whether
.Fa ssl
is set to server mode.
.Pp
When the
.Vt SSL_CTX
object was created with
.Xr SSL_CTX_new 3 ,
it was either assigned a dedicated client method, a dedicated server method, or
a generic method, that can be used for both client and server connections.
(The method might have been changed with
97
98
99
100
101
102
103
104



105
106

107










108


109
110
111
112
113
114
115
116
117
118










.Xr SSL_write 3
or
.Xr SSL_read 3 ,
the handshake routines must be explicitly set in advance using either
.Fn SSL_set_connect_state
or
.Fn SSL_set_accept_state .
.Sh RETURN VALUES



.Fn SSL_set_connect_state
and

.Fn SSL_set_accept_state










do not return diagnostic information.


.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_accept 3 ,
.Xr SSL_connect 3 ,
.Xr SSL_CTX_new 3 ,
.Xr SSL_CTX_set_ssl_version 3 ,
.Xr SSL_do_handshake 3 ,
.Xr SSL_new 3 ,
.Xr SSL_read 3 ,
.Xr SSL_write 3

















|
>
>
>

<
>

>
>
>
>
>
>
>
>
>
>
|
>
>










>
>
>
>
>
>
>
>
>
>
107
108
109
110
111
112
113
114
115
116
117
118

119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
.Xr SSL_write 3
or
.Xr SSL_read 3 ,
the handshake routines must be explicitly set in advance using either
.Fn SSL_set_connect_state
or
.Fn SSL_set_accept_state .
.Pp
If
.Fn SSL_is_server
is called before
.Fn SSL_set_connect_state

or
.Fn SSL_set_accept_state
was called either automatically or explicitly,
the result depends on what method was used when the
.Fa SSL_CTX
was created.
If a generic method or a dedicated server method was passed to
.Xr SSL_CTX_new 3 ,
.Fn SSL_is_server
returns 1; otherwise, it returns 0.
.Sh RETURN VALUES
.Fn SSL_is_server
returns 1 if
.Fa ssl
is set to server mode or 0 if it is set to client mode.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_accept 3 ,
.Xr SSL_connect 3 ,
.Xr SSL_CTX_new 3 ,
.Xr SSL_CTX_set_ssl_version 3 ,
.Xr SSL_do_handshake 3 ,
.Xr SSL_new 3 ,
.Xr SSL_read 3 ,
.Xr SSL_write 3
.Sh HISTORY
.Fn SSL_set_connect_state
and
.Fn SSL_set_accept_state
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp
.Fn SSL_is_server
first appeared in OpenSSL 1.0.2 and has been available since
.Ox 6.3 .
Changes to jni/libressl/man/SSL_set_fd.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_set_fd.3,v 1.3 2016/12/06 12:24:33 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2013 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_set_fd.3,v 1.4 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2013 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 6 2016 $
.Dt SSL_SET_FD 3
.Os
.Sh NAME
.Nm SSL_set_fd ,
.Nm SSL_set_rfd ,
.Nm SSL_set_wfd
.Nd connect the SSL object with a file descriptor







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_SET_FD 3
.Os
.Sh NAME
.Nm SSL_set_fd ,
.Nm SSL_set_rfd ,
.Nm SSL_set_wfd
.Nd connect the SSL object with a file descriptor
114
115
116
117
118
119
120



.Xr BIO_new 3 ,
.Xr ssl 3 ,
.Xr SSL_accept 3 ,
.Xr SSL_connect 3 ,
.Xr SSL_get_fd 3 ,
.Xr SSL_set_bio 3 ,
.Xr SSL_shutdown 3










>
>
>
114
115
116
117
118
119
120
121
122
123
.Xr BIO_new 3 ,
.Xr ssl 3 ,
.Xr SSL_accept 3 ,
.Xr SSL_connect 3 ,
.Xr SSL_get_fd 3 ,
.Xr SSL_set_bio 3 ,
.Xr SSL_shutdown 3
.Sh HISTORY
These functions appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_set_max_send_fragment.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_set_max_send_fragment.3,v 1.3 2017/04/10 14:00:51 schwarze Exp $
.\"	OpenSSL doc/man3/SSL_CTX_set_split_send_fragment.pod
.\"	OpenSSL 6782e5fd Oct 21 16:16:20 2016 +0100
.\"
.\" This file was written by Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_set_max_send_fragment.3,v 1.4 2018/03/23 04:35:09 schwarze Exp $
.\"	OpenSSL doc/man3/SSL_CTX_set_split_send_fragment.pod
.\"	OpenSSL 6782e5fd Oct 21 16:16:20 2016 +0100
.\"
.\" This file was written by Matt Caswell <matt@openssl.org>.
.\" Copyright (c) 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: April 10 2017 $
.Dt SSL_SET_MAX_SEND_FRAGMENT 3
.Os
.Sh NAME
.Nm SSL_CTX_set_max_send_fragment ,
.Nm SSL_set_max_send_fragment
.Nd control fragment sizes
.Sh SYNOPSIS







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt SSL_SET_MAX_SEND_FRAGMENT 3
.Os
.Sh NAME
.Nm SSL_CTX_set_max_send_fragment ,
.Nm SSL_set_max_send_fragment
.Nd control fragment sizes
.Sh SYNOPSIS
84
85
86
87
88
89
90






These functions are implemented using macros.
.Sh RETURN VALUES
These functions return 1 on success or 0 on failure.
.Sh SEE ALSO
.Xr SSL_ctrl 3 ,
.Xr SSL_CTX_set_read_ahead 3 ,
.Xr SSL_pending 3













>
>
>
>
>
>
84
85
86
87
88
89
90
91
92
93
94
95
96
These functions are implemented using macros.
.Sh RETURN VALUES
These functions return 1 on success or 0 on failure.
.Sh SEE ALSO
.Xr SSL_ctrl 3 ,
.Xr SSL_CTX_set_read_ahead 3 ,
.Xr SSL_pending 3
.Sh HISTORY
.Fn SSL_CTX_set_max_send_fragment
and
.Fn SSL_set_max_send_fragment
first appeared in OpenSSL 1.0.0 and have been available since
.Ox 4.9 .
Changes to jni/libressl/man/SSL_set_session.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_set_session.3,v 1.2 2016/12/04 12:20:54 schwarze Exp $
.\"	OpenSSL 05ea606a May 20 20:52:46 2016 -0400
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2001, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_set_session.3,v 1.3 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL 05ea606a May 20 20:52:46 2016 -0400
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2001, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 4 2016 $
.Dt SSL_SET_SESSION 3
.Os
.Sh NAME
.Nm SSL_set_session
.Nd set a TLS/SSL session to be used during TLS/SSL connect
.Sh SYNOPSIS
.In openssl/ssl.h







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_SET_SESSION 3
.Os
.Sh NAME
.Nm SSL_set_session
.Nd set a TLS/SSL session to be used during TLS/SSL connect
.Sh SYNOPSIS
.In openssl/ssl.h
109
110
111
112
113
114
115




.El
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_set_session_cache_mode 3 ,
.Xr SSL_get_session 3 ,
.Xr SSL_SESSION_free 3 ,
.Xr SSL_session_reused 3











>
>
>
>
109
110
111
112
113
114
115
116
117
118
119
.El
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_set_session_cache_mode 3 ,
.Xr SSL_get_session 3 ,
.Xr SSL_SESSION_free 3 ,
.Xr SSL_session_reused 3
.Sh HISTORY
.Fn SSL_set_session
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_set_shutdown.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_set_shutdown.3,v 1.2 2016/12/04 12:20:54 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2005 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_set_shutdown.3,v 1.3 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2005 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 4 2016 $
.Dt SSL_SET_SHUTDOWN 3
.Os
.Sh NAME
.Nm SSL_set_shutdown ,
.Nm SSL_get_shutdown
.Nd manipulate shutdown state of an SSL connection
.Sh SYNOPSIS







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_SET_SHUTDOWN 3
.Os
.Sh NAME
.Nm SSL_set_shutdown ,
.Nm SSL_get_shutdown
.Nd manipulate shutdown state of an SSL connection
.Sh SYNOPSIS
129
130
131
132
133
134
135






returns the current setting.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_clear 3 ,
.Xr SSL_CTX_set_quiet_shutdown 3 ,
.Xr SSL_free 3 ,
.Xr SSL_shutdown 3













>
>
>
>
>
>
129
130
131
132
133
134
135
136
137
138
139
140
141
returns the current setting.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_clear 3 ,
.Xr SSL_CTX_set_quiet_shutdown 3 ,
.Xr SSL_free 3 ,
.Xr SSL_shutdown 3
.Sh HISTORY
.Fn SSL_set_shutdown
and
.Fn SSL_get_shutdown
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_set_tmp_ecdh.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: SSL_set_tmp_ecdh.3,v 1.3 2017/08/19 23:47:33 schwarze Exp $
.\"
.\" Copyright (c) 2017 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: August 19 2017 $
.Dt SSL_SET_TMP_ECDH 3
.Os
.Sh NAME
.Nm SSL_set_tmp_ecdh ,
.Nm SSL_CTX_set_tmp_ecdh ,
.Nm SSL_set_ecdh_auto ,
.Nm SSL_CTX_set_ecdh_auto ,
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: SSL_set_tmp_ecdh.3,v 1.5 2018/03/23 14:28:16 schwarze Exp $
.\"
.\" Copyright (c) 2017 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt SSL_SET_TMP_ECDH 3
.Os
.Sh NAME
.Nm SSL_set_tmp_ecdh ,
.Nm SSL_CTX_set_tmp_ecdh ,
.Nm SSL_set_ecdh_auto ,
.Nm SSL_CTX_set_ecdh_auto ,
99
100
101
102
103
104
105














.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_set1_groups 3 ,
.Xr SSL_CTX_set_cipher_list 3 ,
.Xr SSL_CTX_set_options 3 ,
.Xr SSL_CTX_set_tmp_dh_callback 3 ,
.Xr SSL_new 3





















>
>
>
>
>
>
>
>
>
>
>
>
>
>
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_set1_groups 3 ,
.Xr SSL_CTX_set_cipher_list 3 ,
.Xr SSL_CTX_set_options 3 ,
.Xr SSL_CTX_set_tmp_dh_callback 3 ,
.Xr SSL_new 3
.Sh HISTORY
.Fn SSL_set_tmp_ecdh ,
.Fn SSL_CTX_set_tmp_ecdh ,
.Fn SSL_set_tmp_ecdh_callback ,
and
.Fn SSL_CTX_set_tmp_ecdh_callback
first appeared in OpenSSL 0.9.8 and have been available since
.Ox 4.5 .
.Pp
.Fn SSL_CTX_set_ecdh_auto
and
.Fn SSL_set_ecdh_auto
first appeared in OpenSSL 1.0.2 and have been available since
.Ox 5.7 .
Changes to jni/libressl/man/SSL_set_verify_result.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_set_verify_result.3,v 1.2 2016/12/04 12:20:54 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_set_verify_result.3,v 1.3 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 4 2016 $
.Dt SSL_SET_VERIFY_RESULT 3
.Os
.Sh NAME
.Nm SSL_set_verify_result
.Nd override result of peer certificate verification
.Sh SYNOPSIS
.In openssl/ssl.h







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_SET_VERIFY_RESULT 3
.Os
.Sh NAME
.Nm SSL_set_verify_result
.Nd override result of peer certificate verification
.Sh SYNOPSIS
.In openssl/ssl.h
83
84
85
86
87
88
89




.Fn SSL_set_verify_result
does not provide a return value.
.Sh SEE ALSO
.Xr openssl 1 ,
.Xr ssl 3 ,
.Xr SSL_get_peer_certificate 3 ,
.Xr SSL_get_verify_result 3











>
>
>
>
83
84
85
86
87
88
89
90
91
92
93
.Fn SSL_set_verify_result
does not provide a return value.
.Sh SEE ALSO
.Xr openssl 1 ,
.Xr ssl 3 ,
.Xr SSL_get_peer_certificate 3 ,
.Xr SSL_get_verify_result 3
.Sh HISTORY
.Fn SSL_set_verify_result
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_shutdown.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_shutdown.3,v 1.3 2016/12/06 12:24:33 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2001, 2004, 2014 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_shutdown.3,v 1.4 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2001, 2004, 2014 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 6 2016 $
.Dt SSL_SHUTDOWN 3
.Os
.Sh NAME
.Nm SSL_shutdown
.Nd shut down a TLS/SSL connection
.Sh SYNOPSIS
.In openssl/ssl.h







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_SHUTDOWN 3
.Os
.Sh NAME
.Nm SSL_shutdown
.Nd shut down a TLS/SSL connection
.Sh SYNOPSIS
.In openssl/ssl.h
243
244
245
246
247
248
249




.Xr SSL_accept 3 ,
.Xr SSL_clear 3 ,
.Xr SSL_connect 3 ,
.Xr SSL_CTX_set_quiet_shutdown 3 ,
.Xr SSL_free 3 ,
.Xr SSL_get_error 3 ,
.Xr SSL_set_shutdown 3











>
>
>
>
243
244
245
246
247
248
249
250
251
252
253
.Xr SSL_accept 3 ,
.Xr SSL_clear 3 ,
.Xr SSL_connect 3 ,
.Xr SSL_CTX_set_quiet_shutdown 3 ,
.Xr SSL_free 3 ,
.Xr SSL_get_error 3 ,
.Xr SSL_set_shutdown 3
.Sh HISTORY
.Fn SSL_shutdown
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_state_string.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_state_string.3,v 1.2 2016/12/04 12:20:54 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2005 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_state_string.3,v 1.3 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2005 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 4 2016 $
.Dt SSL_STATE_STRING 3
.Os
.Sh NAME
.Nm SSL_state_string ,
.Nm SSL_state_string_long
.Nd get textual description of state of an SSL object
.Sh SYNOPSIS







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_STATE_STRING 3
.Os
.Sh NAME
.Nm SSL_state_string ,
.Nm SSL_state_string_long
.Nd get textual description of state of an SSL object
.Sh SYNOPSIS
98
99
100
101
102
103
104






.Xr SSL_set_info_callback 3
call.
.Sh RETURN VALUES
Detailed description of possible states to be included later.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_set_info_callback 3













>
>
>
>
>
>
98
99
100
101
102
103
104
105
106
107
108
109
110
.Xr SSL_set_info_callback 3
call.
.Sh RETURN VALUES
Detailed description of possible states to be included later.
.Sh SEE ALSO
.Xr ssl 3 ,
.Xr SSL_CTX_set_info_callback 3
.Sh HISTORY
.Fn SSL_state_string
and
.Fn SSL_state_string_long
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_want.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_want.3,v 1.3 2016/12/16 15:39:08 jmc Exp $
.\"	OpenSSL 9b86974e Aug 17 15:21:33 2015 -0400
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2005 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_want.3,v 1.4 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL 9b86974e Aug 17 15:21:33 2015 -0400
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2005 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 16 2016 $
.Dt SSL_WANT 3
.Os
.Sh NAME
.Nm SSL_want ,
.Nm SSL_want_nothing ,
.Nm SSL_want_read ,
.Nm SSL_want_write ,







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_WANT 3
.Os
.Sh NAME
.Nm SSL_want ,
.Nm SSL_want_nothing ,
.Nm SSL_want_read ,
.Nm SSL_want_write ,
144
145
146
147
148
149
150



and
.Fn SSL_want_x509_lookup
return 1 when the corresponding condition is true or 0 otherwise.
.Sh SEE ALSO
.Xr err 3 ,
.Xr ssl 3 ,
.Xr SSL_get_error 3










>
>
>
144
145
146
147
148
149
150
151
152
153
and
.Fn SSL_want_x509_lookup
return 1 when the corresponding condition is true or 0 otherwise.
.Sh SEE ALSO
.Xr err 3 ,
.Xr ssl 3 ,
.Xr SSL_get_error 3
.Sh HISTORY
These functions appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/SSL_write.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_write.3,v 1.3 2016/12/06 12:24:33 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2001, 2002 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: SSL_write.3,v 1.4 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2000, 2001, 2002 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 6 2016 $
.Dt SSL_WRITE 3
.Os
.Sh NAME
.Nm SSL_write
.Nd write bytes to a TLS/SSL connection
.Sh SYNOPSIS
.In openssl/ssl.h







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SSL_WRITE 3
.Os
.Sh NAME
.Nm SSL_write
.Nd write bytes to a TLS/SSL connection
.Sh SYNOPSIS
.In openssl/ssl.h
214
215
216
217
218
219
220




.Xr SSL_accept 3 ,
.Xr SSL_connect 3 ,
.Xr SSL_CTX_new 3 ,
.Xr SSL_CTX_set_mode 3 ,
.Xr SSL_get_error 3 ,
.Xr SSL_read 3 ,
.Xr SSL_set_connect_state 3











>
>
>
>
214
215
216
217
218
219
220
221
222
223
224
.Xr SSL_accept 3 ,
.Xr SSL_connect 3 ,
.Xr SSL_CTX_new 3 ,
.Xr SSL_CTX_set_mode 3 ,
.Xr SSL_get_error 3 ,
.Xr SSL_read 3 ,
.Xr SSL_set_connect_state 3
.Sh HISTORY
.Fn SSL_write
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
Added jni/libressl/man/STACK_OF.3.
























































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
.\" $OpenBSD: STACK_OF.3,v 1.2 2018/03/21 17:57:48 schwarze Exp $
.\"
.\" Copyright (c) 2018 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt STACK_OF 3
.Os
.Sh NAME
.Nm STACK_OF
.Nd variable-sized arrays of pointers, called OpenSSL stacks
.Sh SYNOPSIS
.In openssl/safestack.h
.Fn STACK_OF type
.Sh DESCRIPTION
The
.In openssl/safestack.h
header provides a fragile, unusually complicated system of
macro-generated wrappers around the functions described in the
.Xr OPENSSL_sk_new 3
manual page.
It is intended to implement superficially type-safe variable-sized
arrays of pointers, somewhat misleadingly called
.Dq stacks
by OpenSSL.
Due to the excessive number of API functions, it is impossible to
properly document this system.
In particular, calling
.Xr man 1
for any of the functions operating on stacks cannot yield any result.
.Pp
Unfortunately, application programs can hardly avoid using the concept
because several important OpenSSL APIs rely on it; see the
.Sx SEE ALSO
section for examples.
Even though both pages are more complicated than any manual page
ought to be, using the concept safely requires a complete understanding
of all the details in both this manual page and in
.Xr OPENSSL_sk_new 3 .
.Pp
The
.Fn STACK_OF
macro takes a
.Fa type
name as its argument, typically the name of a type
that has been defined as an alias for a specific
.Vt struct
type using a
.Sy typedef
declaration.
It expands to an incomplete
.Vt struct
type which is intended to represent a
.Dq stack
of objects of the given
.Fa type .
That type does not actually exist, so it is not possible to define,
for example, an automatic variable
.Ql STACK_OF(X509) my_certificates ;
it is only possible to define pointers to stacks, for example
.Ql STACK_OF(X509) *my_certificates .
The only way such pointers can ever be used is by wrapper functions
casting them to the type
.Vt _STACK *
described in
.Xr OPENSSL_sk_new 3 .
.Pp
For a considerable number of types, OpenSSL provides one wrapper
function for each function described in
.Xr OPENSSL_sk_new 3 .
The names of these wrapper functions are usually constructed by
inserting the name of the type and an underscore after the
.Sq sk_
prefix of the function name.
Usually, where the real functions take
.Vt void *
arguments, the wrappers take pointers to the
.Fa type
in questions, and where the real functions take
.Vt _STACK *
arguments, the wrappers take pointers to
.Fn STACK_OF type .
The same applies to return values.
Various exceptions to all this exist, but the above applies to
all the types listed below.
.Pp
Using the above may make sense for the following types because
public API functions exist that take stacks of these types as
arguments or return them:
.Vt ACCESS_DESCRIPTION ,
.Vt ASN1_INTEGER ,
.Vt ASN1_OBJECT ,
.Vt ASN1_TYPE ,
.Vt ASN1_UTF8STRING ,
.Vt CONF_VALUE ,
.Vt DIST_POINT ,
.Vt GENERAL_NAME ,
.Vt GENERAL_SUBTREE ,
.Vt PKCS12_SAFEBAG ,
.Vt PKCS7 ,
.Vt PKCS7_RECIP_INFO ,
.Vt PKCS7_SIGNER_INFO ,
.Vt POLICY_MAPPING ,
.Vt POLICYINFO ,
.Vt POLICYQUALINFO ,
.Vt X509 ,
.Vt X509_ALGOR ,
.Vt X509_ATTRIBUTE ,
.Vt X509_CRL ,
.Vt X509_EXTENSION ,
.Vt X509_INFO ,
.Vt X509_OBJECT ,
.Vt X509_POLICY_NODE ,
.Vt X509_PURPOSE ,
.Vt X509_REVOKED .
.Pp
Even though the OpenSSL headers declare wrapper functions for many
more types and even though the OpenSSL documentation says that users
can declare their own stack types, using
.Fn STACK_OF
with any type not listed here is strongly discouraged.
For other types, there may be subtle, undocumented differences
in syntax and semantics, and attempting to declare custom stack
types is very error prone; using plain C arrays of pointers to
the desired type is much simpler and less dangerous.
.Sh EXAMPLES
The following program creates a certificate object, puts two
pointers to it on a stack, and uses
.Xr X509_free 3
to clean up properly:
.Bd -literal
#include <err.h>
#include <stdio.h>
#include <openssl/x509.h>

int
main(void)
{
	STACK_OF(X509)	*stack;
	X509		*x;

	if ((stack = sk_X509_new_null()) == NULL)
		err(1, NULL);
	if ((x = X509_new()) == NULL)
		err(1, NULL);
	if (sk_X509_push(stack, x) == 0)
		err(1, NULL);
	if (X509_up_ref(x) == 0)
		errx(1, "X509_up_ref failed");
	if (sk_X509_push(stack, x) == 0)
		err(1, NULL);
	printf("%d pointers: %p, %p\en", sk_X509_num(stack),
	    sk_X509_value(stack, 0), sk_X509_value(stack, 1));
	sk_X509_pop_free(stack, X509_free);

	return 0;
}
.Ed
.Pp
The output looks similar to:
.Pp
.Dl 2 pointers: 0x4693ff24c00, 0x4693ff24c00
.Sh SEE ALSO
.Xr OCSP_request_sign 3 ,
.Xr PKCS12_parse 3 ,
.Xr PKCS7_encrypt 3 ,
.Xr SSL_CTX_set_client_CA_list 3 ,
.Xr SSL_get_ciphers 3 ,
.Xr SSL_get_peer_cert_chain 3 ,
.Xr SSL_load_client_CA_file 3 ,
.Xr X509_CRL_get_REVOKED 3 ,
.Xr X509_STORE_CTX_get0_chain 3
.Sh HISTORY
The
.Fn STACK_OF
macro first appeared in OpenSSL 0.9.3 and has been available since
.Ox 2.6 .
Changes to jni/libressl/man/SXNET_new.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: SXNET_new.3,v 1.2 2016/12/28 20:36:33 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 28 2016 $
.Dt SXNET_NEW 3
.Os
.Sh NAME
.Nm SXNET_new ,
.Nm SXNET_free ,
.Nm SXNETID_new ,
.Nm SXNETID_free ,
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: SXNET_new.3,v 1.3 2018/03/21 17:57:48 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt SXNET_NEW 3
.Os
.Sh NAME
.Nm SXNET_new ,
.Nm SXNET_free ,
.Nm SXNETID_new ,
.Nm SXNETID_free ,
113
114
115
116
117
118
119




120
121
122
123
124
125
126
.Rs
.%A M. Shuttleworth
.%R The Strong Extranet: real-world personal certification
.%Q Thawte Consulting
.%C South Africa
.%D 1998
.Re




.Sh BUGS
This manual page does not explain what the extension actually does
because no authoritative information was found online so far.
.Pp
The only hint was found in an ancient white paper "Securing IBM
Applications with Public Key Infrastructure" on the IBM website,
dated June 13, 2001: "Thawte also has a technology called Strong







>
>
>
>







113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
.Rs
.%A M. Shuttleworth
.%R The Strong Extranet: real-world personal certification
.%Q Thawte Consulting
.%C South Africa
.%D 1998
.Re
.Sh HISTORY
These functions first appeared in OpenSSL 0.9.3
and have been available since
.Ox 2.6 .
.Sh BUGS
This manual page does not explain what the extension actually does
because no authoritative information was found online so far.
.Pp
The only hint was found in an ancient white paper "Securing IBM
Applications with Public Key Infrastructure" on the IBM website,
dated June 13, 2001: "Thawte also has a technology called Strong
Changes to jni/libressl/man/TS_REQ_new.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: TS_REQ_new.3,v 1.4 2016/12/25 22:15:10 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 25 2016 $
.Dt TS_REQ_NEW 3
.Os
.Sh NAME
.Nm TS_REQ_new ,
.Nm TS_REQ_free ,
.Nm TS_RESP_new ,
.Nm TS_RESP_free ,
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: TS_REQ_new.3,v 1.5 2018/03/23 04:34:23 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt TS_REQ_NEW 3
.Os
.Sh NAME
.Nm TS_REQ_new ,
.Nm TS_REQ_free ,
.Nm TS_RESP_new ,
.Nm TS_RESP_free ,
171
172
173
174
175
176
177




Note that RFC 3161 has been updated
by RFC 5816: ESSCertIDv2 Update for RFC 3161.
That update allows using the Signing Certificate Attribute Definition
Version 2 according to RFC 5035, but the current implementation
only supports the Signing Certificate Attribute Definition Version
1 according to RFC 2634, and hence only supports RFC 3161, but not
RFC 5816 functionality.











>
>
>
>
171
172
173
174
175
176
177
178
179
180
181
Note that RFC 3161 has been updated
by RFC 5816: ESSCertIDv2 Update for RFC 3161.
That update allows using the Signing Certificate Attribute Definition
Version 2 according to RFC 5035, but the current implementation
only supports the Signing Certificate Attribute Definition Version
1 according to RFC 2634, and hence only supports RFC 3161, but not
RFC 5816 functionality.
.Sh HISTORY
These functions first appeared in OpenSSL 1.0.0
and have been available since
.Ox 4.9 .
Changes to jni/libressl/man/UI_UTIL_read_pw.3.
1
2

3
4
5
6
7
8
9
.\"	$OpenBSD: UI_UTIL_read_pw.3,v 1.1 2017/03/26 00:06:10 schwarze Exp $
.\"	OpenSSL UI_UTIL_read_pw.pod 23103a52 Jan 12 15:17:42 2017 +0100

.\"
.\" This file was written by Richard Levitte <levitte@openssl.org>.
.\" Copyright (c) 2017 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
|
|
>







1
2
3
4
5
6
7
8
9
10
.\" $OpenBSD: UI_UTIL_read_pw.3,v 1.3 2018/03/22 21:08:22 schwarze Exp $
.\" full merge up to: OpenSSL 23103a52 Jan 12 15:17:42 2017 +0100
.\" selective merge up to: OpenSSL 61f805c1 Jan 16 01:01:46 2018 +0800
.\"
.\" This file was written by Richard Levitte <levitte@openssl.org>.
.\" Copyright (c) 2017 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 26 2017 $
.Dt UI_UTIL_READ_PW 3
.Os
.Sh NAME
.Nm UI_UTIL_read_pw ,
.Nm UI_UTIL_read_pw_string
.Nd get a password from the user
.Sh SYNOPSIS







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt UI_UTIL_READ_PW 3
.Os
.Sh NAME
.Nm UI_UTIL_read_pw ,
.Nm UI_UTIL_read_pw_string
.Nd get a password from the user
.Sh SYNOPSIS
87
88
89
90
91
92
93





94
95






.Pp
.Fn UI_UTIL_read_pw
does the same as
.Fn UI_UTIL_read_pw_string ,
but takes an external buffer
.Fa buff
for the verification passphrase.





.Sh SEE ALSO
.Xr UI_new 3













>
>
>
>
>


>
>
>
>
>
>
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
.Pp
.Fn UI_UTIL_read_pw
does the same as
.Fn UI_UTIL_read_pw_string ,
but takes an external buffer
.Fa buff
for the verification passphrase.
.Sh RETURN VALUES
.Fn UI_UTIL_read_pw_string
and
.Fn UI_UTIL_read_pw
return 0 on success or a negative value on error.
.Sh SEE ALSO
.Xr UI_new 3
.Sh HISTORY
.Fn UI_UTIL_read_pw
and
.Fn UI_UTIL_read_pw_string
first appeared in OpenSSL 0.9.7 and have been available since
.Ox 3.2 .
Changes to jni/libressl/man/UI_create_method.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: UI_create_method.3,v 1.2 2017/03/26 12:31:27 jmc Exp $
.\"	OpenSSL UI_create_method.pod 8e3d46e5 Mar 11 10:51:04 2017 +0100
.\"
.\" This file was written by Richard Levitte <levitte@openssl.org>.
.\" Copyright (c) 2017 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: UI_create_method.3,v 1.4 2018/03/23 04:34:23 schwarze Exp $
.\"	OpenSSL UI_create_method.pod 8e3d46e5 Mar 11 10:51:04 2017 +0100
.\"
.\" This file was written by Richard Levitte <levitte@openssl.org>.
.\" Copyright (c) 2017 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 26 2017 $
.Dt UI_CREATE_METHOD 3
.Os
.Sh NAME
.Nm UI_create_method ,
.Nm UI_destroy_method ,
.Nm UI_method_set_opener ,
.Nm UI_method_set_writer ,







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt UI_CREATE_METHOD 3
.Os
.Sh NAME
.Nm UI_create_method ,
.Nm UI_destroy_method ,
.Nm UI_method_set_opener ,
.Nm UI_method_set_writer ,
256
257
258
259
260
261
262






















.Fn UI_method_get_prompt_constructor
return the requested function pointer if it is set in the method,
or otherwise
.Dv NULL .
.Sh SEE ALSO
.Xr UI_get_string_type 3 ,
.Xr UI_new 3





























>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
.Fn UI_method_get_prompt_constructor
return the requested function pointer if it is set in the method,
or otherwise
.Dv NULL .
.Sh SEE ALSO
.Xr UI_get_string_type 3 ,
.Xr UI_new 3
.Sh HISTORY
.Fn UI_create_method ,
.Fn UI_destroy_method ,
.Fn UI_method_set_opener ,
.Fn UI_method_set_writer ,
.Fn UI_method_set_flusher ,
.Fn UI_method_set_reader ,
.Fn UI_method_set_closer ,
.Fn UI_method_get_opener ,
.Fn UI_method_get_writer ,
.Fn UI_method_get_flusher ,
.Fn UI_method_get_reader ,
and
.Fn UI_method_get_closer
first appeared in OpenSSL 0.9.7 and have been available since
.Ox 3.2 .
.Pp
.Fn UI_method_set_prompt_constructor
and
.Fn UI_method_get_prompt_constructor
first appeared in OpenSSL 1.0.0 and have been available since
.Ox 4.9 .
Changes to jni/libressl/man/UI_get_string_type.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: UI_get_string_type.3,v 1.3 2017/08/20 22:24:30 schwarze Exp $
.\"	OpenSSL UI_STRING.pod e9c9971b Jul 1 18:28:50 2017 +0200
.\"
.\" This file was written by Richard Levitte <levitte@openssl.org>
.\" Copyright (c) 2017 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: UI_get_string_type.3,v 1.4 2018/03/22 21:08:22 schwarze Exp $
.\"	OpenSSL UI_STRING.pod e9c9971b Jul 1 18:28:50 2017 +0200
.\"
.\" This file was written by Richard Levitte <levitte@openssl.org>
.\" Copyright (c) 2017 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: August 20 2017 $
.Dt UI_GET_STRING_TYPE 3
.Os
.Sh NAME
.Nm UI_get_string_type ,
.Nm UI_get_input_flags ,
.Nm UI_get0_output_string ,
.Nm UI_get0_action_string ,







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt UI_GET_STRING_TYPE 3
.Os
.Sh NAME
.Nm UI_get_string_type ,
.Nm UI_get_input_flags ,
.Nm UI_get0_output_string ,
.Nm UI_get0_action_string ,
271
272
273
274
275
276
277




.Dv UIT_PROMPT ,
.Dv UIT_VERIFY ,
or
.Dv UIT_BOOLEAN ,
or -1 on error.
.Sh SEE ALSO
.Xr UI_new 3











>
>
>
>
271
272
273
274
275
276
277
278
279
280
281
.Dv UIT_PROMPT ,
.Dv UIT_VERIFY ,
or
.Dv UIT_BOOLEAN ,
or -1 on error.
.Sh SEE ALSO
.Xr UI_new 3
.Sh HISTORY
These functions first appeared in OpenSSL 0.9.7
and have been available since
.Ox 3.2 .
Changes to jni/libressl/man/UI_new.3.
1
2
3
4
5
6
7
8
9
10
.\"	$OpenBSD: UI_new.3,v 1.6 2017/03/26 00:06:10 schwarze Exp $
.\"	OpenSSL UI_new.pod 5469600e Mar 11 00:51:53 2017 +0100
.\"	OpenSSL UI_new.pod 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Richard Levitte <levitte@openssl.org>.
.\" Copyright (c) 2001, 2016, 2017 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
|
|
|







1
2
3
4
5
6
7
8
9
10
.\" $OpenBSD: UI_new.3,v 1.8 2018/03/22 21:08:22 schwarze Exp $
.\" full merge up to: OpenSSL 78b19e90 Jan 11 00:12:01 2017 +0100
.\" selective merge up to: OpenSSL 61f805c1 Jan 16 01:01:46 2018 +0800
.\"
.\" This file was written by Richard Levitte <levitte@openssl.org>.
.\" Copyright (c) 2001, 2016, 2017 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 26 2017 $
.Dt UI_NEW 3
.Os
.Sh NAME
.Nm UI_new ,
.Nm UI_new_method ,
.Nm UI_free ,
.Nm UI_add_input_string ,







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt UI_NEW 3
.Os
.Sh NAME
.Nm UI_new ,
.Nm UI_new_method ,
.Nm UI_free ,
.Nm UI_add_input_string ,
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
creates a new
.Vt UI
using the given UI method.
When done with this UI, it should be freed using
.Fn UI_free .
.Pp
.Fn UI_OpenSSL
returns the built-in UI method (note: not the default one, since
the default can be changed.
See further on).
This method is the most machine/OS dependent part of OpenSSL and
normally generates the most problems when porting.
.Pp
.Fn UI_free
removes
.Fa ui







|
|







288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
creates a new
.Vt UI
using the given UI method.
When done with this UI, it should be freed using
.Fn UI_free .
.Pp
.Fn UI_OpenSSL
returns the built-in UI method (note: not necessarily the default one,
since the default can be changed.
See further on).
This method is the most machine/OS dependent part of OpenSSL and
normally generates the most problems when porting.
.Pp
.Fn UI_free
removes
.Fa ui
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
.Em name Ns :".
With the description "pass phrase" and the file name "foo.key", that
becomes "Enter pass phrase for foo.key:". Other methods may create
whatever string and may include encodings that will be processed by the
other method functions.
.Pp
.Fn UI_add_user_data
adds a piece of memory for the method to use at any time.
The builtin UI method doesn't care about this info.
Note that several calls to this function doesn't add data -
the previous blob is replaced with the one given as argument.
.Pp
.Fn UI_get0_user_data
retrieves the data that has last been given to the
.Fa ui







|







377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
.Em name Ns :".
With the description "pass phrase" and the file name "foo.key", that
becomes "Enter pass phrase for foo.key:". Other methods may create
whatever string and may include encodings that will be processed by the
other method functions.
.Pp
.Fn UI_add_user_data
adds a user data pointer for the method to use at any time.
The builtin UI method doesn't care about this info.
Note that several calls to this function doesn't add data -
the previous blob is replaced with the one given as argument.
.Pp
.Fn UI_get0_user_data
retrieves the data that has last been given to the
.Fa ui
414
415
416
417
418
419
420


421
422
423
424
425
426
427
428
429
430
431





































































432
433
434
435
436
437
438


439
440
441
.Dv UI_CTRL_IS_REDOABLE ,
which returns a flag saying if the used
.Fa ui
can be used again or not.
.Pp
.Fn UI_set_default_method
changes the default UI method to the one given.


.Pp
.Fn UI_get_default_method
returns a pointer to the current default UI method.
.Pp
.Fn UI_get_method
returns the UI method associated with a given
.Fa ui .
.Pp
.Fn UI_set_method
changes the UI method associated with a given
.Fa ui .





































































.Sh SEE ALSO
.Xr des_read_pw 3 ,
.Xr UI_create_method 3 ,
.Xr UI_get_string_type 3 ,
.Xr UI_UTIL_read_pw 3
.Sh HISTORY
The UI section was first introduced in OpenSSL 0.9.7.


.Sh AUTHORS
.An Richard Levitte Aq Mt richard@levitte.org
for the OpenSSL project.







>
>











>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>






|
>
>



414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
.Dv UI_CTRL_IS_REDOABLE ,
which returns a flag saying if the used
.Fa ui
can be used again or not.
.Pp
.Fn UI_set_default_method
changes the default UI method to the one given.
This function is not thread-safe and should not be called at the
same time as other OpenSSL functions.
.Pp
.Fn UI_get_default_method
returns a pointer to the current default UI method.
.Pp
.Fn UI_get_method
returns the UI method associated with a given
.Fa ui .
.Pp
.Fn UI_set_method
changes the UI method associated with a given
.Fa ui .
.Sh RETURN VALUES
.Fn UI_new
and
.Fn UI_new_method
return a valid
.Vt UI
structure or
.Dv NULL
if an error occurred.
.Pp
.Fn UI_add_input_string ,
.Fn UI_dup_input_string ,
.Fn UI_add_verify_string ,
.Fn UI_dup_verify_string ,
.Fn UI_add_input_boolean ,
.Fn UI_dup_input_boolean ,
.Fn UI_add_info_string ,
.Fn UI_dup_info_string ,
.Fn UI_add_error_string ,
and
.Fn UI_dup_error_string
return a positive number on success or a number
less than or equal to zero otherwise.
.Pp
.Fn UI_construct_prompt
and
.Fn UI_get0_result
return a string or
.Dv NULL
if an error occurred.
.Pp
.Fn UI_add_user_data
and
.Fn UI_get0_user_data
return a pointer to the user data that was contained in
.Fa ui
before the call.
In particular,
.Dv NULL
is a valid return value.
.Pp
.Fn UI_process
returns 0 on success or a negative value on error.
.Pp
.Fn UI_ctrl
returns a mask on success or \-1 on error.
.Pp
.Fn UI_get_default_method
and
.Fn UI_OpenSSL
always return a pointer to a valid
.Vt UI_METHOD
structure.
.Pp
.Fn UI_get_method
and
.Fn UI_set_method
return a pointer to the
.Vt UI_METHOD
structure that is installed in
.Fa ui
after the call.
The OpenSSL documentation says that they can fail and return
.Dv NULL ,
but currently, this can only happen when and after
.Fn UI_set_method
is called with an explicit
.Dv NULL
argument.
.Sh SEE ALSO
.Xr des_read_pw 3 ,
.Xr UI_create_method 3 ,
.Xr UI_get_string_type 3 ,
.Xr UI_UTIL_read_pw 3
.Sh HISTORY
These functions first appeared in  OpenSSL 0.9.7
and have been available since
.Ox 3.2 .
.Sh AUTHORS
.An Richard Levitte Aq Mt richard@levitte.org
for the OpenSSL project.
Changes to jni/libressl/man/X509V3_get_d2i.3.
1
2

3
4
5
6
7
8
9
10
11
12
.\"	$OpenBSD: X509V3_get_d2i.3,v 1.6 2017/07/05 11:43:09 schwarze Exp $
.\"	OpenSSL 047dd81e Jul 4 23:03:17 2014 +0100

.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2014, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
|
|
>


|







1
2
3
4
5
6
7
8
9
10
11
12
13
.\" $OpenBSD: X509V3_get_d2i.3,v 1.14 2018/03/23 23:18:17 schwarze Exp $
.\" full merge up to: OpenSSL ff7fbfd5 Nov 2 11:52:01 2015 +0000
.\" selective merge up to: OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2014, 2015, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64



65
66
67
68
69
70
71
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: July 5 2017 $
.Dt X509V3_GET_D2I 3
.Os
.Sh NAME
.Nm X509V3_get_d2i ,
.Nm X509V3_add1_i2d ,
.Nm X509V3_EXT_d2i ,
.Nm X509V3_EXT_i2d ,
.Nm X509_get_ext_d2i ,
.Nm X509_add1_ext_i2d ,
.Nm X509_CRL_get_ext_d2i ,
.Nm X509_CRL_add1_ext_i2d ,
.Nm X509_REVOKED_get_ext_d2i ,
.Nm X509_REVOKED_add1_ext_i2d



.Nd X509 extension decode and encode functions
.Sh SYNOPSIS
.In openssl/x509v3.h
.Ft void *
.Fo X509V3_get_d2i
.Fa "const STACK_OF(X509_EXTENSION) *x"
.Fa "int nid"







|












|
>
>
>







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt X509V3_GET_D2I 3
.Os
.Sh NAME
.Nm X509V3_get_d2i ,
.Nm X509V3_add1_i2d ,
.Nm X509V3_EXT_d2i ,
.Nm X509V3_EXT_i2d ,
.Nm X509_get_ext_d2i ,
.Nm X509_add1_ext_i2d ,
.Nm X509_CRL_get_ext_d2i ,
.Nm X509_CRL_add1_ext_i2d ,
.Nm X509_REVOKED_get_ext_d2i ,
.Nm X509_REVOKED_add1_ext_i2d ,
.Nm X509_get0_extensions ,
.Nm X509_CRL_get0_extensions ,
.Nm X509_REVOKED_get0_extensions
.Nd X509 extension decode and encode functions
.Sh SYNOPSIS
.In openssl/x509v3.h
.Ft void *
.Fo X509V3_get_d2i
.Fa "const STACK_OF(X509_EXTENSION) *x"
.Fa "int nid"
131
132
133
134
135
136
137












138
139
140
141
142
143
144
.Fo X509_REVOKED_add1_ext_i2d
.Fa "X509_REVOKED *r"
.Fa "int nid"
.Fa "void *value"
.Fa "int crit"
.Fa "unsigned long flags"
.Fc












.Sh DESCRIPTION
.Fn X509V3_get_d2i
looks for an extension with OID
.Fa nid
in the extensions
.Fa x
and, if found, decodes it.







>
>
>
>
>
>
>
>
>
>
>
>







135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
.Fo X509_REVOKED_add1_ext_i2d
.Fa "X509_REVOKED *r"
.Fa "int nid"
.Fa "void *value"
.Fa "int crit"
.Fa "unsigned long flags"
.Fc
.Ft const STACK_OF(X509_EXTENSION) *
.Fo X509_get0_extensions
.Fa "const X509 *x"
.Fc
.Ft const STACK_OF(X509_EXTENSION) *
.Fo X509_CRL_get0_extensions
.Fa "const X509_CRL *crl"
.Fc
.Ft const STACK_OF(X509_EXTENSION) *
.Fo X509_REVOKED_get0_extensions
.Fa "const X509_REVOKED *r"
.Fc
.Sh DESCRIPTION
.Fn X509V3_get_d2i
looks for an extension with OID
.Fa nid
in the extensions
.Fa x
and, if found, decodes it.
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229







230
231
232
233
234
235
236
and
.Fn X509_add1_ext_i2d
operate on the extensions of certificate
.Fa x ,
and are otherwise identical to
.Fn X509V3_get_d2i
and
.Fn X509V3_add1_i2d 3 .
.Pp
.Fn X509_CRL_get_ext_d2i
and
.Fn X509_CRL_add1_ext_i2d
operate on the extensions of CRL
.Fa crl ,
and are otherwise identical to
.Fn X509V3_get_d2i
and
.Fn X509V3_add1_i2d 3 .
.Pp
.Fn X509_REVOKED_get_ext_d2i
and
.Fn X509_REVOKED_add1_ext_i2d
operate on the extensions of the
.Vt X509_REVOKED
structure
.Fa r
(i.e. for CRL entry extensions), and are otherwise identical to
.Fn X509V3_get_d2i
and
.Fn X509V3_add1_i2d 3 .







.Pp
In almost all cases an extension can occur at most once and multiple
occurrences is an error.
Therefore the
.Fa idx
parameter is usually
.Dv NULL .







|









|











|
>
>
>
>
>
>
>







216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
and
.Fn X509_add1_ext_i2d
operate on the extensions of certificate
.Fa x ,
and are otherwise identical to
.Fn X509V3_get_d2i
and
.Fn X509V3_add1_i2d .
.Pp
.Fn X509_CRL_get_ext_d2i
and
.Fn X509_CRL_add1_ext_i2d
operate on the extensions of CRL
.Fa crl ,
and are otherwise identical to
.Fn X509V3_get_d2i
and
.Fn X509V3_add1_i2d .
.Pp
.Fn X509_REVOKED_get_ext_d2i
and
.Fn X509_REVOKED_add1_ext_i2d
operate on the extensions of the
.Vt X509_REVOKED
structure
.Fa r
(i.e. for CRL entry extensions), and are otherwise identical to
.Fn X509V3_get_d2i
and
.Fn X509V3_add1_i2d .
.Pp
.Fn X509_get0_extensions ,
.Fn X509_CRL_get0_extensions ,
and
.Fn X509_REVOKED_get0_extensions
return a stack of all the extensions of a certificate, a CRL,
or a CRL entry, respectively.
.Pp
In almost all cases an extension can occur at most once and multiple
occurrences is an error.
Therefore the
.Fa idx
parameter is usually
.Dv NULL .
359
360
361
362
363
364
365








366
367
368
369
370
371
372
373
374
375































.Dv NULL
if an error occurs.
.Pp
.Fn X509V3_add1_i2d
returns 1 if the operation is successful, 0 if it fails due to a
non-fatal error (extension not found, already exists, cannot be encoded),
or -1 due to a fatal error such as a memory allocation failure.








.Sh SEE ALSO
.Xr d2i_X509 3 ,
.Xr d2i_X509_EXTENSION 3 ,
.Xr ERR_get_error 3 ,
.Xr X509_CRL_get0_by_serial 3 ,
.Xr X509_EXTENSION_new 3 ,
.Xr X509_get_pubkey 3 ,
.Xr X509_get_subject_name 3 ,
.Xr X509_get_version 3 ,
.Xr X509_new 3






































>
>
>
>
>
>
>
>









|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
.Dv NULL
if an error occurs.
.Pp
.Fn X509V3_add1_i2d
returns 1 if the operation is successful, 0 if it fails due to a
non-fatal error (extension not found, already exists, cannot be encoded),
or -1 due to a fatal error such as a memory allocation failure.
.Pp
.Fn X509_get0_extensions ,
.Fn X509_CRL_get0_extensions ,
and
.Fn X509_REVOKED_get0_extensions
return a stack of extensions, or
.Dv NULL
if no extensions are present.
.Sh SEE ALSO
.Xr d2i_X509 3 ,
.Xr d2i_X509_EXTENSION 3 ,
.Xr ERR_get_error 3 ,
.Xr X509_CRL_get0_by_serial 3 ,
.Xr X509_EXTENSION_new 3 ,
.Xr X509_get_pubkey 3 ,
.Xr X509_get_subject_name 3 ,
.Xr X509_get_version 3 ,
.Xr X509_new 3 ,
.Xr X509_REVOKED_new 3
.Sh HISTORY
.Fn X509V3_EXT_d2i
first appeared in OpenSSL 0.9.2b.
.Fn X509V3_EXT_i2d
first appeared in OpenSSL 0.9.3.
Both functions have been available since
.Ox 2.6 .
.Pp
.Fn X509V3_get_d2i ,
.Fn X509_get_ext_d2i ,
.Fn X509_CRL_get_ext_d2i ,
and
.Fn X509_REVOKED_get_ext_d2i
first appeared in OpenSSL 0.9.5 and have been available since
.Ox 2.7 .
.Pp
.Fn X509V3_add1_i2d ,
.Fn X509_add1_ext_i2d ,
.Fn X509_CRL_add1_ext_i2d ,
and
.Fn X509_REVOKED_add1_ext_i2d
first appeared in OpenSSL 0.9.7 and have been available since
.Ox 3.2 .
.Pp
.Fn X509_get0_extensions ,
.Fn X509_CRL_get0_extensions ,
and
.Fn X509_REVOKED_get0_extensions
first appeared in OpenSSL 1.1.0 and have been available since
.Ox 6.3 .
Changes to jni/libressl/man/X509_ALGOR_dup.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: X509_ALGOR_dup.3,v 1.5 2016/12/25 22:15:10 schwarze Exp $
.\"	OpenSSL 4692340e Jun 7 15:49:08 2016 -0400
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: X509_ALGOR_dup.3,v 1.11 2018/03/23 05:48:56 schwarze Exp $
.\"	OpenSSL 4692340e Jun 7 15:49:08 2016 -0400
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 25 2016 $
.Dt X509_ALGOR_DUP 3
.Os
.Sh NAME
.Nm X509_ALGOR_new ,
.Nm X509_ALGOR_free ,
.Nm X509_ALGOR_dup ,
.Nm X509_ALGOR_set0 ,







|







61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt X509_ALGOR_DUP 3
.Os
.Sh NAME
.Nm X509_ALGOR_new ,
.Nm X509_ALGOR_free ,
.Nm X509_ALGOR_dup ,
.Nm X509_ALGOR_set0 ,
203
204
205
206
207
208
209

210
211
212
213
























.Fa a
and
.Fa b
have identical encodings or non-zero otherwise.
.Sh SEE ALSO
.Xr ASN1_TYPE_set 3 ,
.Xr d2i_X509_ALGOR 3 ,

.Xr X509_PUBKEY_get0_param 3
.Sh STANDARDS
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile































>




>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
.Fa a
and
.Fa b
have identical encodings or non-zero otherwise.
.Sh SEE ALSO
.Xr ASN1_TYPE_set 3 ,
.Xr d2i_X509_ALGOR 3 ,
.Xr X509_get0_signature 3 ,
.Xr X509_PUBKEY_get0_param 3
.Sh STANDARDS
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile
.Sh HISTORY
.Fn X509_ALGOR_new
and
.Fn X509_ALGOR_free
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp
.Fn X509_ALGOR_dup
first appeared in SSLeay 0.9.1 and has been avialable since
.Ox 2.6 .
.Pp
.Fn X509_ALGOR_set0
and
.Fn X509_ALGOR_get0
first appeared in OpenSSL 0.9.8h and have been available since
.Ox 4.5 .
.Pp
.Fn X509_ALGOR_cmp
first appeared in OpenSSL 0.9.8zd and 1.0.0p and has been available since
.Ox 4.9 .
.Pp
.Fn X509_ALGOR_set_md
first appeared in OpenSSL 1.0.1 and has been available since
.Ox 5.3 .
Changes to jni/libressl/man/X509_ATTRIBUTE_new.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: X509_ATTRIBUTE_new.3,v 1.4 2016/12/28 20:29:15 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 28 2016 $
.Dt X509_ATTRIBUTE_NEW 3
.Os
.Sh NAME
.Nm X509_ATTRIBUTE_new ,
.Nm X509_ATTRIBUTE_free
.\" In the following line, "X.501" and "Attribute" are not typos.
.\" The "Attribute" type is defined in X.501, not in X.509.
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: X509_ATTRIBUTE_new.3,v 1.5 2018/03/21 03:16:08 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt X509_ATTRIBUTE_NEW 3
.Os
.Sh NAME
.Nm X509_ATTRIBUTE_new ,
.Nm X509_ATTRIBUTE_free
.\" In the following line, "X.501" and "Attribute" are not typos.
.\" The "Attribute" type is defined in X.501, not in X.509.
84
85
86
87
88
89
90






91
92
93
94
95
96
97
.It For the specific use in the context of private key information:
RFC 5208: Public-Key Cryptography Standards (PKCS) #8:
Private-Key Information Syntax Specification
.It For the specific definition in the context of PFX:
RFC 7292: PKCS #12: Personal Information Exchange Syntax,
section 4.2: The SafeBag Type
.El






.Sh BUGS
A data type designed to hold arbitrary data is an oxymoron.
.Pp
While it may occasionally be useful for abstract syntax specification
or for generic container objects, using it for the representation
of specific data in a specific data structure feels like dubious
design.







>
>
>
>
>
>







84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
.It For the specific use in the context of private key information:
RFC 5208: Public-Key Cryptography Standards (PKCS) #8:
Private-Key Information Syntax Specification
.It For the specific definition in the context of PFX:
RFC 7292: PKCS #12: Personal Information Exchange Syntax,
section 4.2: The SafeBag Type
.El
.Sh HISTORY
.Fn X509_ATTRIBUTE_new
and
.Fn X509_ATTRIBUTE_free
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Sh BUGS
A data type designed to hold arbitrary data is an oxymoron.
.Pp
While it may occasionally be useful for abstract syntax specification
or for generic container objects, using it for the representation
of specific data in a specific data structure feels like dubious
design.
Changes to jni/libressl/man/X509_CINF_new.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: X509_CINF_new.3,v 1.2 2016/12/25 22:15:10 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 25 2016 $
.Dt X509_CINF_NEW 3
.Os
.Sh NAME
.Nm X509_CINF_new ,
.Nm X509_CINF_free ,
.Nm X509_VAL_new ,
.Nm X509_VAL_free ,
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: X509_CINF_new.3,v 1.4 2018/03/22 16:06:33 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt X509_CINF_NEW 3
.Os
.Sh NAME
.Nm X509_CINF_new ,
.Nm X509_CINF_free ,
.Nm X509_VAL_new ,
.Nm X509_VAL_free ,
93
94
95
96
97
98
99














.Dv NULL
if an error occurs.
.Sh SEE ALSO
.Xr X509_new 3
.Sh STANDARDS
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile





















>
>
>
>
>
>
>
>
>
>
>
>
>
>
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
.Dv NULL
if an error occurs.
.Sh SEE ALSO
.Xr X509_new 3
.Sh STANDARDS
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile
.Sh HISTORY
.Fn X509_CINF_new ,
.Fn X509_CINF_free ,
.Fn X509_VAL_new ,
and
.Fn X509_VAL_free
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp
.Fn X509_CERT_AUX_new
and
.Fn X509_CERT_AUX_free
first appeared in OpenSSL 0.9.5 and have been available since
.Ox 2.7 .
Changes to jni/libressl/man/X509_CRL_get0_by_serial.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: X509_CRL_get0_by_serial.3,v 1.5 2017/03/25 18:35:33 schwarze Exp $
.\"	OpenSSL X509_CRL_get0_by_serial.pod cdd6c8c5 Mar 20 12:29:37 2017 +0100
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2015, 2017 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: X509_CRL_get0_by_serial.3,v 1.8 2018/03/23 04:34:23 schwarze Exp $
.\"	OpenSSL X509_CRL_get0_by_serial.pod cdd6c8c5 Mar 20 12:29:37 2017 +0100
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2015, 2017 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 25 2017 $
.Dt X509_CRL_GET0_BY_SERIAL 3
.Os
.Sh NAME
.Nm X509_CRL_get0_by_serial ,
.Nm X509_CRL_get0_by_cert ,
.Nm X509_CRL_get_REVOKED ,
.Nm X509_CRL_add0_revoked ,







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt X509_CRL_GET0_BY_SERIAL 3
.Os
.Sh NAME
.Nm X509_CRL_get0_by_serial ,
.Nm X509_CRL_get0_by_cert ,
.Nm X509_CRL_get_REVOKED ,
.Nm X509_CRL_add0_revoked ,
153
154
155
156
157
158
159
















.Xr d2i_X509_CRL 3 ,
.Xr ERR_get_error 3 ,
.Xr X509_CRL_get_ext 3 ,
.Xr X509_CRL_get_issuer 3 ,
.Xr X509_CRL_get_version 3 ,
.Xr X509_REVOKED_new 3 ,
.Xr X509V3_get_d2i 3























>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
.Xr d2i_X509_CRL 3 ,
.Xr ERR_get_error 3 ,
.Xr X509_CRL_get_ext 3 ,
.Xr X509_CRL_get_issuer 3 ,
.Xr X509_CRL_get_version 3 ,
.Xr X509_REVOKED_new 3 ,
.Xr X509V3_get_d2i 3
.Sh HISTORY
.Fn X509_CRL_get_REVOKED
first appeared in OpenSSL 0.9.2b and has been available since
.Ox 2.6 .
.Pp
.Fn X509_CRL_add0_revoked
and
.Fn X509_CRL_sort
first appeared in OpenSSL 0.9.7 and have been available since
.Ox 3.2 .
.Pp
.Fn X509_CRL_get0_by_serial
and
.Fn X509_CRL_get0_by_cert
first appeared in OpenSSL 1.0.0 and have been available since
.Ox 4.9 .
Changes to jni/libressl/man/X509_CRL_new.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21


22
23
24
25
26
27
28
29




30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46











47



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66

67
68
69
70
71
72
73
74
75



76
77
78
79
80
81
82
.\"	$OpenBSD: X509_CRL_new.3,v 1.3 2016/12/25 22:15:10 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 25 2016 $
.Dt X509_CRL_NEW 3
.Os
.Sh NAME
.Nm X509_CRL_new ,


.Nm X509_CRL_free ,
.Nm X509_CRL_INFO_new ,
.Nm X509_CRL_INFO_free
.Nd X.509 certificate revocation lists
.Sh SYNOPSIS
.In openssl/x509.h
.Ft X509_CRL *
.Fn X509_CRL_new void




.Ft void
.Fn X509_CRL_free "X509_CRL *crl"
.Ft X509_CRL_INFO *
.Fn X509_CRL_INFO_new void
.Ft void
.Fn X509_CRL_INFO_free "X509_CRL_INFO *crl_info"
.Sh DESCRIPTION
.Fn X509_CRL_new
allocates and initializes an empty
.Vt X509_CRL
object, representing an ASN.1
.Vt CertificateList
structure defined in RFC 5280 section 5.1.
It can hold a pointer to an
.Vt X509_CRL_INFO
object discussed below together with a cryptographic signature
and information about the signature algorithm used.











.Fn X509_CRL_free



frees
.Fa crl .
.Pp
.Fn X509_CRL_INFO_new
allocates and initializes an empty
.Vt X509_CRL_INFO
object, representing an ASN.1
.Vt TBSCertList
structure defined in RFC 5280 section 5.1.
It is used inside the
.Vt X509_CRL
object and can hold a list of revoked certificates, an issuer name,
the time the list was issued, the time when the next update of the
list is due, and optional extensions.
.Fn X509_CRL_INFO_free
frees
.Fa crl_info .
.Sh RETURN VALUES
.Fn X509_CRL_new

and
.Fn X509_CRL_INFO_new
return the new
.Vt X509_CRL
or
.Vt X509_CRL_INFO
object, respectively, or
.Dv NULL
if an error occurs.



.Sh SEE ALSO
.Xr ACCESS_DESCRIPTION_new 3 ,
.Xr AUTHORITY_KEYID_new 3 ,
.Xr d2i_X509_CRL 3 ,
.Xr DIST_POINT_new 3 ,
.Xr PEM_read_X509_CRL 3 ,
.Xr X509_CRL_get0_by_serial 3 ,
|

|













|




>
>








>
>
>
>

















>
>
>
>
>
>
>
>
>
>
>

>
>
>
|

















|
>









>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
.\"	$OpenBSD: X509_CRL_new.3,v 1.6 2018/03/23 23:18:17 schwarze Exp $
.\"
.\" Copyright (c) 2016, 2018 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt X509_CRL_NEW 3
.Os
.Sh NAME
.Nm X509_CRL_new ,
.Nm X509_CRL_dup ,
.Nm X509_CRL_up_ref ,
.Nm X509_CRL_free ,
.Nm X509_CRL_INFO_new ,
.Nm X509_CRL_INFO_free
.Nd X.509 certificate revocation lists
.Sh SYNOPSIS
.In openssl/x509.h
.Ft X509_CRL *
.Fn X509_CRL_new void
.Ft X509_CRL *
.Fn X509_CRL_dup "X509_CRL *crl"
.Ft int
.Fn X509_CRL_up_ref "X509_CRL *crl"
.Ft void
.Fn X509_CRL_free "X509_CRL *crl"
.Ft X509_CRL_INFO *
.Fn X509_CRL_INFO_new void
.Ft void
.Fn X509_CRL_INFO_free "X509_CRL_INFO *crl_info"
.Sh DESCRIPTION
.Fn X509_CRL_new
allocates and initializes an empty
.Vt X509_CRL
object, representing an ASN.1
.Vt CertificateList
structure defined in RFC 5280 section 5.1.
It can hold a pointer to an
.Vt X509_CRL_INFO
object discussed below together with a cryptographic signature
and information about the signature algorithm used.
The reference count is set to 1.
.Pp
.Fn X509_CRL_dup
creates a deep copy of
.Fa crl .
.Pp
.Fn X509_CRL_up_ref
increments the reference count of
.Fa crl
by 1.
.Pp
.Fn X509_CRL_free
decrements the reference count of
.Fa crl
by 1.
If the reference count reaches 0, it frees
.Fa crl .
.Pp
.Fn X509_CRL_INFO_new
allocates and initializes an empty
.Vt X509_CRL_INFO
object, representing an ASN.1
.Vt TBSCertList
structure defined in RFC 5280 section 5.1.
It is used inside the
.Vt X509_CRL
object and can hold a list of revoked certificates, an issuer name,
the time the list was issued, the time when the next update of the
list is due, and optional extensions.
.Fn X509_CRL_INFO_free
frees
.Fa crl_info .
.Sh RETURN VALUES
.Fn X509_CRL_new ,
.Fn X509_CRL_dup ,
and
.Fn X509_CRL_INFO_new
return the new
.Vt X509_CRL
or
.Vt X509_CRL_INFO
object, respectively, or
.Dv NULL
if an error occurs.
.Pp
.Fn X509_CRL_up_ref
returns 1 on success or 0 on error.
.Sh SEE ALSO
.Xr ACCESS_DESCRIPTION_new 3 ,
.Xr AUTHORITY_KEYID_new 3 ,
.Xr d2i_X509_CRL 3 ,
.Xr DIST_POINT_new 3 ,
.Xr PEM_read_X509_CRL 3 ,
.Xr X509_CRL_get0_by_serial 3 ,
90
91
92
93
94
95
96













.Xr X509_new 3 ,
.Xr X509_REVOKED_new 3 ,
.Xr X509_STORE_CTX_set0_crls 3
.Sh STANDARDS
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile, section 5: CRL and CRL
Extensions Profile




















>
>
>
>
>
>
>
>
>
>
>
>
>
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
.Xr X509_new 3 ,
.Xr X509_REVOKED_new 3 ,
.Xr X509_STORE_CTX_set0_crls 3
.Sh STANDARDS
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile, section 5: CRL and CRL
Extensions Profile
.Sh HISTORY
.Fn X509_CRL_new ,
.Fn X509_CRL_dup ,
.Fn X509_CRL_free ,
.Fn X509_CRL_INFO_new ,
and
.Fn X509_CRL_INFO_free
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp
.Fn X509_CRL_up_ref
first appeared in OpenSSL 1.1.0 and has been available since
.Ox 6.3 .
Changes to jni/libressl/man/X509_EXTENSION_set_object.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: X509_EXTENSION_set_object.3,v 1.6 2016/12/28 13:45:30 schwarze Exp $
.\"	OpenSSL bb9ad09e Jun 6 00:43:05 2016 -0400
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: X509_EXTENSION_set_object.3,v 1.7 2018/03/21 03:16:08 schwarze Exp $
.\"	OpenSSL bb9ad09e Jun 6 00:43:05 2016 -0400
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 28 2016 $
.Dt X509_EXTENSION_SET_OBJECT 3
.Os
.Sh NAME
.Nm X509_EXTENSION_new ,
.Nm X509_EXTENSION_free ,
.Nm X509_EXTENSION_create_by_NID ,
.Nm X509_EXTENSION_create_by_OBJ ,







|







61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt X509_EXTENSION_SET_OBJECT 3
.Os
.Sh NAME
.Nm X509_EXTENSION_new ,
.Nm X509_EXTENSION_free ,
.Nm X509_EXTENSION_create_by_NID ,
.Nm X509_EXTENSION_create_by_OBJ ,
282
283
284
285
286
287
288



.Xr PROXY_POLICY_new 3 ,
.Xr SXNET_new 3 ,
.Xr X509V3_get_d2i 3 ,
.Xr X509v3_get_ext_by_NID 3
.Sh STANDARDS
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile










>
>
>
282
283
284
285
286
287
288
289
290
291
.Xr PROXY_POLICY_new 3 ,
.Xr SXNET_new 3 ,
.Xr X509V3_get_d2i 3 ,
.Xr X509v3_get_ext_by_NID 3
.Sh STANDARDS
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile
.Sh HISTORY
These functions appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/X509_LOOKUP_hash_dir.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
.\"	$OpenBSD: X509_LOOKUP_hash_dir.3,v 1.3 2017/01/06 22:46:06 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Victor B. Wagner <vitus@cryptocom.ru>
.\" and Claus Assmann.
.\" Copyright (c) 2015, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
|
|



|







1
2
3
4
5
6
7
8
9
10
11
12
13
.\" $OpenBSD: X509_LOOKUP_hash_dir.3,v 1.7 2018/03/22 16:06:33 schwarze Exp $
.\" full merge up to: OpenSSL 61f805c1 Jan 16 01:01:46 2018 +0800
.\"
.\" This file was written by Victor B. Wagner <vitus@cryptocom.ru>
.\" and Claus Assmann.
.\" Copyright (c) 2015, 2016, 2017 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: January 6 2017 $
.Dt X509_LOOKUP_HASH_DIR 3
.Os
.Sh NAME
.Nm X509_LOOKUP_hash_dir ,
.Nm X509_LOOKUP_file ,
.Nm X509_load_cert_file ,
.Nm X509_load_crl_file ,







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt X509_LOOKUP_HASH_DIR 3
.Os
.Sh NAME
.Nm X509_LOOKUP_hash_dir ,
.Nm X509_LOOKUP_file ,
.Nm X509_load_cert_file ,
.Nm X509_load_crl_file ,
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
.Dv FILETYPE_DEFAULT
with
.Dv NULL
filename causes these functions to load the default certificate
store file (see
.Xr X509_STORE_set_default_paths 3 ) .
.Pp
These functions return the number of objects loaded from file or 0
in case of error.
.Pp
Both methods support adding several certificate locations into one
.Sy X509_STORE .
.Pp
This page documents certificate store formats used by these methods and
caching policy.
.Ss File Method
The







<
<
<







137
138
139
140
141
142
143



144
145
146
147
148
149
150
.Dv FILETYPE_DEFAULT
with
.Dv NULL
filename causes these functions to load the default certificate
store file (see
.Xr X509_STORE_set_default_paths 3 ) .
.Pp



Both methods support adding several certificate locations into one
.Sy X509_STORE .
.Pp
This page documents certificate store formats used by these methods and
caching policy.
.Ss File Method
The
207
208
209
210
211
212
213















214
215
216
217
218














When checking for new CRLs, once one CRL for a given hash value is
loaded, hash_dir lookup method checks only for certificates with
sequence number greater than that of the already cached CRL.
.Pp
Note that the hash algorithm used for subject name hashing changed in
OpenSSL 1.0.0, and all certificate stores have to be rehashed when
moving from OpenSSL 0.9.8 to 1.0.0.















.Sh SEE ALSO
.Xr d2i_X509_bio 3 ,
.Xr PEM_read_PrivateKey 3 ,
.Xr SSL_CTX_load_verify_locations 3 ,
.Xr X509_STORE_load_locations 3





















>
>
>
>
>
>
>
>
>
>
>
>
>
>
>





>
>
>
>
>
>
>
>
>
>
>
>
>
>
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
When checking for new CRLs, once one CRL for a given hash value is
loaded, hash_dir lookup method checks only for certificates with
sequence number greater than that of the already cached CRL.
.Pp
Note that the hash algorithm used for subject name hashing changed in
OpenSSL 1.0.0, and all certificate stores have to be rehashed when
moving from OpenSSL 0.9.8 to 1.0.0.
.Sh RETURN VALUES
.Fn X509_LOOKUP_hash_dir
and
.Fn X509_LOOKUP_file
always return a pointer to a static
.Vt X509_LOOKUP_METHOD
structure.
.Pp
.Fn X509_load_cert_file ,
.Fn X509_load_crl_file ,
and
.Fn X509_load_cert_crl_file
return the number of objects loaded from the
.Fa file
or 0 on error.
.Sh SEE ALSO
.Xr d2i_X509_bio 3 ,
.Xr PEM_read_PrivateKey 3 ,
.Xr SSL_CTX_load_verify_locations 3 ,
.Xr X509_STORE_load_locations 3
.Sh HISTORY
.Fn X509_LOOKUP_hash_dir ,
.Fn X509_LOOKUP_file ,
and
.Fn X509_load_cert_file
appeared before SSLeay 0.8.
.Fn X509_load_crl_file
first appeared in SSLeay 0.9.0.
These functions have been available since
.Ox 2.4 .
.Pp
.Fn X509_load_cert_crl_file
first appeared in OpenSSL 0.9.5 and has been available since
.Ox 2.7 .
Changes to jni/libressl/man/X509_NAME_ENTRY_get_object.3.
1
2

3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

23
24
25
26
27
28
29
.\"	$OpenBSD: X509_NAME_ENTRY_get_object.3,v 1.6 2016/12/25 22:15:10 schwarze Exp $
.\"	OpenSSL aebb9aac Jul 19 09:27:53 2016 -0400

.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" The original file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2002, 2005, 2006 The OpenSSL Project.  All rights reserved.

.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
|
|
>



















|
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
.\" $OpenBSD: X509_NAME_ENTRY_get_object.3,v 1.9 2018/03/22 16:06:33 schwarze Exp $
.\" full merge up to: OpenSSL aebb9aac Jul 19 09:27:53 2016 -0400
.\" selective merge up to: OpenSSL 61f805c1 Jan 16 01:01:46 2018 +0800
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" The original file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2002, 2005, 2006, 2017 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 25 2016 $
.Dt X509_NAME_ENTRY_GET_OBJECT 3
.Os
.Sh NAME
.Nm X509_NAME_ENTRY_new ,
.Nm X509_NAME_ENTRY_free ,
.Nm X509_NAME_ENTRY_get_object ,
.Nm X509_NAME_ENTRY_get_data ,







|







63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt X509_NAME_ENTRY_GET_OBJECT 3
.Os
.Sh NAME
.Nm X509_NAME_ENTRY_new ,
.Nm X509_NAME_ENTRY_free ,
.Nm X509_NAME_ENTRY_get_object ,
.Nm X509_NAME_ENTRY_get_data ,
216
217
218
219
220
221
222






























223
224
225
226
227
228
229
230
231
232
233
234
235
















.Fa type
can be set to
.Dv MBSTRING_ASC ,
but in the case of
.Fn X509_NAME_ENTRY_set_data
the field type must be set first so the relevant field information
can be looked up internally.






























.Sh SEE ALSO
.Xr ERR_get_error 3 ,
.Xr OBJ_nid2obj 3 ,
.Xr X509_NAME_add_entry 3 ,
.Xr X509_NAME_get_entry 3 ,
.Xr X509_NAME_new 3
.Sh STANDARDS
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile
.Pp
ITU-T Recommendation X.501, also known as ISO/IEC 9594-2: Information
Technology  Open Systems Interconnection  The Directory: Models,
section 9.3: Relative distinguished name























>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>













>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
.Fa type
can be set to
.Dv MBSTRING_ASC ,
but in the case of
.Fn X509_NAME_ENTRY_set_data
the field type must be set first so the relevant field information
can be looked up internally.
.Sh RETURN VALUES
.Fn X509_NAME_ENTRY_new ,
.Fn X509_NAME_ENTRY_create_by_txt ,
.Fn X509_NAME_ENTRY_create_by_NID ,
and
.Fn X509_NAME_ENTRY_create_by_OBJ
return a valid
.Vt X509_NAME_ENTRY
structure on success or
.Dv NULL
if an error occurred.
.Pp
.Fn X509_NAME_ENTRY_get_object
returns a valid
.Vt ASN1_OBJECT
structure if it is set or
.Dv NULL
if an error occurred.
.Pp
.Fn X509_NAME_ENTRY_get_data
returns a valid
.Vt ASN1_STRING
structure if it is set or
.Dv NULL
if an error occurred.
.Pp
.Fn X509_NAME_ENTRY_set_object
and
.Fn X509_NAME_ENTRY_set_data
return 1 on success or 0 on error.
.Sh SEE ALSO
.Xr ERR_get_error 3 ,
.Xr OBJ_nid2obj 3 ,
.Xr X509_NAME_add_entry 3 ,
.Xr X509_NAME_get_entry 3 ,
.Xr X509_NAME_new 3
.Sh STANDARDS
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile
.Pp
ITU-T Recommendation X.501, also known as ISO/IEC 9594-2: Information
Technology  Open Systems Interconnection  The Directory: Models,
section 9.3: Relative distinguished name
.Sh HISTORY
.Fn X509_NAME_ENTRY_new ,
.Fn X509_NAME_ENTRY_free ,
.Fn X509_NAME_ENTRY_get_object ,
.Fn X509_NAME_ENTRY_get_data ,
.Fn X509_NAME_ENTRY_set_object ,
.Fn X509_NAME_ENTRY_set_data ,
.Fn X509_NAME_ENTRY_create_by_NID ,
and
.Fn X509_NAME_ENTRY_create_by_OBJ
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp
.Fn X509_NAME_ENTRY_create_by_txt
first appeared in OpenSSL 0.9.5 and has been available since
.Ox 2.7 .
Changes to jni/libressl/man/X509_NAME_add_entry_by_txt.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: X509_NAME_add_entry_by_txt.3,v 1.7 2017/01/06 03:00:56 schwarze Exp $
.\"	OpenSSL aebb9aac Jul 19 09:27:53 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2002, 2005, 2006, 2013, 2014 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: X509_NAME_add_entry_by_txt.3,v 1.9 2018/03/22 16:06:33 schwarze Exp $
.\"	OpenSSL aebb9aac Jul 19 09:27:53 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2002, 2005, 2006, 2013, 2014 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: January 6 2017 $
.Dt X509_NAME_ADD_ENTRY_BY_TXT 3
.Os
.Sh NAME
.Nm X509_NAME_add_entry_by_txt ,
.Nm X509_NAME_add_entry_by_OBJ ,
.Nm X509_NAME_add_entry_by_NID ,
.Nm X509_NAME_add_entry ,







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt X509_NAME_ADD_ENTRY_BY_TXT 3
.Os
.Sh NAME
.Nm X509_NAME_add_entry_by_txt ,
.Nm X509_NAME_add_entry_by_OBJ ,
.Nm X509_NAME_add_entry_by_NID ,
.Nm X509_NAME_add_entry ,
251
252
253
254
255
256
257













258
259
260
261
262
263
264
265
	/* Error */
.Ed
.Sh SEE ALSO
.Xr d2i_X509_NAME 3 ,
.Xr ERR_get_error 3 ,
.Xr X509_NAME_get_index_by_NID 3 ,
.Xr X509_NAME_new 3













.Sh BUGS
.Fa type
can still be set to
.Dv V_ASN1_APP_CHOOSE
to use a different algorithm to determine field types.
Since this form does not understand multicharacter types, performs
no length checks, and can result in invalid field types, its use
is strongly discouraged.







>
>
>
>
>
>
>
>
>
>
>
>
>








251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
	/* Error */
.Ed
.Sh SEE ALSO
.Xr d2i_X509_NAME 3 ,
.Xr ERR_get_error 3 ,
.Xr X509_NAME_get_index_by_NID 3 ,
.Xr X509_NAME_new 3
.Sh HISTORY
.Fn X509_NAME_add_entry
and
.Fn X509_NAME_delete_entry
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp
.Fn X509_NAME_add_entry_by_txt ,
.Fn X509_NAME_add_entry_by_OBJ ,
and
.Fn X509_NAME_add_entry_by_NID
first appeared in OpenSSL 0.9.5 and have been available since
.Ox 2.7 .
.Sh BUGS
.Fa type
can still be set to
.Dv V_ASN1_APP_CHOOSE
to use a different algorithm to determine field types.
Since this form does not understand multicharacter types, performs
no length checks, and can result in invalid field types, its use
is strongly discouraged.
Changes to jni/libressl/man/X509_NAME_get_index_by_NID.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: X509_NAME_get_index_by_NID.3,v 1.6 2016/12/25 22:15:10 schwarze Exp $
.\"	OpenSSL aebb9aac Jul 19 09:27:53 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2002, 2006, 2014, 2015, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: X509_NAME_get_index_by_NID.3,v 1.7 2018/03/21 03:16:08 schwarze Exp $
.\"	OpenSSL aebb9aac Jul 19 09:27:53 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2002, 2006, 2014, 2015, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 25 2016 $
.Dt X509_NAME_GET_INDEX_BY_NID 3
.Os
.Sh NAME
.Nm X509_NAME_get_index_by_NID ,
.Nm X509_NAME_get_index_by_OBJ ,
.Nm X509_NAME_entry_count ,
.Nm X509_NAME_get_entry ,







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt X509_NAME_GET_INDEX_BY_NID 3
.Os
.Sh NAME
.Nm X509_NAME_get_index_by_NID ,
.Nm X509_NAME_get_index_by_OBJ ,
.Nm X509_NAME_entry_count ,
.Nm X509_NAME_get_entry ,
223
224
225
226
227
228
229



230
231
232
233
234
235
236
	/* Do something with e */
}
.Ed
.Sh SEE ALSO
.Xr d2i_X509_NAME 3 ,
.Xr ERR_get_error 3 ,
.Xr X509_NAME_new 3



.Sh CAVEATS
.Fn X509_NAME_get_text_by_NID
and
.Fn X509_NAME_get_text_by_OBJ
are legacy functions which have various limitations which make them of
minimal use in practice.
They can only find the first matching entry and will copy the contents







>
>
>







223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
	/* Do something with e */
}
.Ed
.Sh SEE ALSO
.Xr d2i_X509_NAME 3 ,
.Xr ERR_get_error 3 ,
.Xr X509_NAME_new 3
.Sh HISTORY
These functions appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Sh CAVEATS
.Fn X509_NAME_get_text_by_NID
and
.Fn X509_NAME_get_text_by_OBJ
are legacy functions which have various limitations which make them of
minimal use in practice.
They can only find the first matching entry and will copy the contents
Changes to jni/libressl/man/X509_NAME_new.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: X509_NAME_new.3,v 1.3 2016/12/25 22:15:10 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 25 2016 $
.Dt X509_NAME_NEW 3
.Os
.Sh NAME
.Nm X509_NAME_new ,
.Nm X509_NAME_free
.\" In the following line, "X.501" and "Name" are not typos.
.\" The "Name" type is defined in X.501, not in X.509.
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: X509_NAME_new.3,v 1.4 2018/03/21 03:16:08 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt X509_NAME_NEW 3
.Os
.Sh NAME
.Nm X509_NAME_new ,
.Nm X509_NAME_free
.\" In the following line, "X.501" and "Name" are not typos.
.\" The "Name" type is defined in X.501, not in X.509.
82
83
84
85
86
87
88






.Sh STANDARDS
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile
.Pp
ITU-T Recommendation X.501, also known as ISO/IEC 9594-2:
Information Technology \(en Open Systems Interconnection \(en
The Directory: Models, section 9: Names













>
>
>
>
>
>
82
83
84
85
86
87
88
89
90
91
92
93
94
.Sh STANDARDS
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile
.Pp
ITU-T Recommendation X.501, also known as ISO/IEC 9594-2:
Information Technology \(en Open Systems Interconnection \(en
The Directory: Models, section 9: Names
.Sh HISTORY
.Fn X509_NAME_new
and
.Fn X509_NAME_free
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/X509_NAME_print_ex.3.
1
2

3
4
5
6
7
8
9
10
11
12
.\"	$OpenBSD: X509_NAME_print_ex.3,v 1.6 2016/12/25 22:15:10 schwarze Exp $
.\"	OpenSSL aebb9aac Jul 19 09:27:53 2016 -0400

.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2002, 2004, 2007, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
|
|
>


|







1
2
3
4
5
6
7
8
9
10
11
12
13
.\" $OpenBSD: X509_NAME_print_ex.3,v 1.9 2018/03/22 17:11:04 schwarze Exp $
.\" full merge up to: OpenSSL aebb9aac Jul 19 09:27:53 2016 -0400
.\" selective merge up to: OpenSSL 61f805c1 Jan 16 01:01:46 2018 +0800
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2002, 2004, 2007, 2016, 2017 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 25 2016 $
.Dt X509_NAME_PRINT_EX 3
.Os
.Sh NAME
.Nm X509_NAME_print_ex ,
.Nm X509_NAME_print_ex_fp ,
.Nm X509_NAME_oneline ,
.Nm X509_NAME_print







|







46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt X509_NAME_PRINT_EX 3
.Os
.Sh NAME
.Nm X509_NAME_print_ex ,
.Nm X509_NAME_print_ex_fp ,
.Nm X509_NAME_oneline ,
.Nm X509_NAME_print
244
245
246
247
248
249
250


















251
252
253
254
255












.Pp
.Dv XN_FLAG_COMPAT
uses a format identical to
.Fn X509_NAME_print :
in fact it calls
.Fn X509_NAME_print
internally.


















.Sh SEE ALSO
.Xr ASN1_STRING_print_ex 3 ,
.Xr d2i_X509_NAME 3 ,
.Xr X509_NAME_get_index_by_NID 3 ,
.Xr X509_NAME_new 3



















>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>





>
>
>
>
>
>
>
>
>
>
>
>
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
.Pp
.Dv XN_FLAG_COMPAT
uses a format identical to
.Fn X509_NAME_print :
in fact it calls
.Fn X509_NAME_print
internally.
.Sh RETURN VALUES
.Fn X509_NAME_print_ex
and
.Fn X509_NAME_print_ex_fp
return 1 on success or 0 on error if
.Dv XN_FLAG_COMPAT
is set in
.Fa flags .
Otherwise, they return the number of printed bytes including the
indentation or \-1 on error.
.Pp
.Fn X509_NAME_oneline
returns a valid string on success or
.Dv NULL
on error.
.Pp
.Fn X509_NAME_print
returns 1 on success or 0 on error.
.Sh SEE ALSO
.Xr ASN1_STRING_print_ex 3 ,
.Xr d2i_X509_NAME 3 ,
.Xr X509_NAME_get_index_by_NID 3 ,
.Xr X509_NAME_new 3
.Sh HISTORY
.Fn X509_NAME_oneline
and
.Fn X509_NAME_print
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp
.Fn X509_NAME_print_ex
and
.Fn X509_NAME_print_ex_fp
first appeared in OpenSSL 0.9.6 and have been available since
.Ox 2.9 .
Added jni/libressl/man/X509_OBJECT_get0_X509.3.
























































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
.\" $OpenBSD: X509_OBJECT_get0_X509.3,v 1.5 2018/03/23 23:18:17 schwarze Exp $
.\" Copyright (c) 2018 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt X509_OBJECT_GET0_X509 3
.Os
.Sh NAME
.Nm X509_OBJECT_up_ref_count ,
.Nm X509_OBJECT_free_contents ,
.Nm X509_OBJECT_get0_X509 ,
.Nm X509_OBJECT_get0_X509_CRL ,
.Nm X509_OBJECT_idx_by_subject ,
.Nm X509_OBJECT_retrieve_by_subject ,
.Nm X509_OBJECT_retrieve_match
.Nd certificate, CRL, private key, and string wrapper for certificate stores
.Sh SYNOPSIS
.In openssl/x509_vfy.h
.Ft void
.Fo X509_OBJECT_up_ref_count
.Fa "X509_OBJECT *obj"
.Fc
.Ft void
.Fo X509_OBJECT_free_contents
.Fa "X509_OBJECT *obj"
.Fc
.Ft X509 *
.Fo X509_OBJECT_get0_X509
.Fa "const X509_OBJECT *obj"
.Fc
.Ft X509_CRL *
.Fo X509_OBJECT_get0_X509_CRL
.Fa "X509_OBJECT *obj"
.Fc
.Ft int
.Fo X509_OBJECT_idx_by_subject
.Fa "STACK_OF(X509_OBJECT) *stack"
.Fa "int type"
.Fa "X509_NAME *name"
.Fc
.Ft X509_OBJECT *
.Fo X509_OBJECT_retrieve_by_subject
.Fa "STACK_OF(X509_OBJECT) *stack"
.Fa "int type"
.Fa "X509_NAME *name"
.Fc
.Ft X509_OBJECT *
.Fo X509_OBJECT_retrieve_match
.Fa "STACK_OF(X509_OBJECT) *stack"
.Fa "X509_OBJECT *obj"
.Fc
.Sh DESCRIPTION
The
.Vt X509_OBJECT
structure is a shallow wrapper around one
.Vt X509
certificate object, one
.Vt X509_CRL
certificate revocation list object, one
.Vt EVP_PKEY
private key object, or one
.Vt char *
string.
It also remembers which type of object it contains at any given time.
.Pp
Each
.Vt X509_STORE
object uses one stack of
.Vt X509_OBJECT
structures as its main storage area.
.Pp
If
.Fa obj
contains an
.Vt X509
certificate or an
.Vt X509_CRL
certificate revocation list,
.Fn X509_OBJECT_up_ref_count
increments the reference count of that inner object by 1.
Otherwise, no action occurs.
.Pp
If
.Fa obj
contains an
.Vt X509
certificate,
.Fn X509_OBJECT_free_contents
calls
.Xr X509_free 3
on that inner object.
If
.Fa obj
contains an
.Vt X509_CRL
certificate revocation list, it calls
.Xr X509_CRL_free 3
on that inner list.
Otherwise, no action occurs.
.Fn X509_OBJECT_free_contents
does not free
.Fa obj
itself.
.Pp
If
.Fa type
is
.Dv X509_LU_X509 ,
.Fn X509_OBJECT_idx_by_subject
and
.Fn X509_OBJECT_retrieve_by_subject
search the given
.Fa stack
for a certificate with the subject
.Fa name .
If
.Fa type
is
.Dv X509_LU_CRL ,
they search for a certificate revocation list with the issuer
.Fa name
instead.
.Pp
If
.Fa obj
contains a certificate,
.Fn X509_OBJECT_retrieve_match
searches the given
.Fa stack
for a certificate with a matching subject name;
if it contains a certificate revocation list, it searches for a
certificate revocation list with a matching issuer name instead;
otherwise, it searches for an
.Vt X509_OBJECT
with a matching type.
.Sh RETURN VALUES
.Fn X509_OBJECT_get0_X509
returns an internal pointer to the certificate contained in
.Fa obj
or
.Dv NULL
if
.Fa obj
is
.Dv NULL
or contains no certificate.
.Pp
.Fn X509_OBJECT_get0_X509_CRL
returns an internal pointer to the certificate revocation list contained in
.Fa obj
or
.Dv NULL
if
.Fa obj
is
.Dv NULL
or contains no certificate revocation list.
.Pp
.Fn X509_OBJECT_idx_by_subject
returns the zero-based index of the first matching certificate
or revocation list in the
.Fa stack
or \-1 if
.Fa type
is neither
.Dv X509_LU_X509
nor
.Dv X509_LU_CRL
or if no match is found.
.Pp
.Fn X509_OBJECT_retrieve_by_subject
returns the first matching certificate or revocation list in the
.Fa stack
or
.Dv NULL
if
.Fa type
is neither
.Dv X509_LU_X509
nor
.Dv X509_LU_CRL
or if no match is found.
.Pp
.Fn X509_OBJECT_retrieve_match
returns the first mathching
.Vt X509_OBJECT
or
.Dv NULL
if
.Fa stack
or
.Fa obj
is
.Dv NULL
or no match is found.
.Sh SEE ALSO
.Xr X509_STORE_get0_objects 3 ,
.Xr X509_STORE_load_locations 3 ,
.Xr X509_STORE_new 3
.\" The type X509_OBJECT is also used
.\" by the following undocumented public functions:
.\" X509_STORE_get_by_subject
.\" X509_LOOKUP_by_subject
.\" X509_LOOKUP_by_issuer_serial
.\" X509_LOOKUP_by_fingerprint
.\" X509_LOOKUP_by_alias
.Sh HISTORY
.Fn X509_OBJECT_up_ref_count
and
.Fn X509_OBJECT_free_contents
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp
.Fn X509_OBJECT_idx_by_subject ,
.Fn X509_OBJECT_retrieve_by_subject ,
and
.Fn X509_OBJECT_retrieve_match
first appeared in OpenSSL 0.9.6 and have been available since
.Ox 2.9 .
.Pp
.Fn X509_OBJECT_get0_X509
and
.Fn X509_OBJECT_get0_X509_CRL
first appeared in OpenSSL 1.1.0 and have been available since
.Ox 6.3 .
Changes to jni/libressl/man/X509_PUBKEY_new.3.
1
2
3
4
5
6
7
8
9
.\"	$OpenBSD: X509_PUBKEY_new.3,v 1.5 2016/12/28 14:06:06 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
|
|







1
2
3
4
5
6
7
8
9
.\" $OpenBSD: X509_PUBKEY_new.3,v 1.12 2018/03/23 23:18:17 schwarze Exp $
.\" full merge up to: OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
44
45
46
47
48
49
50
51
52
53
54
55
56
57

58
59
60
61
62
63
64
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 28 2016 $
.Dt X509_PUBKEY_NEW 3
.Os
.Sh NAME
.Nm X509_PUBKEY_new ,
.Nm X509_PUBKEY_free ,
.Nm X509_PUBKEY_set ,

.Nm X509_PUBKEY_get ,
.Nm d2i_PUBKEY ,
.Nm i2d_PUBKEY ,
.Nm d2i_PUBKEY_bio ,
.Nm d2i_PUBKEY_fp ,
.Nm i2d_PUBKEY_fp ,
.Nm i2d_PUBKEY_bio ,







|






>







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt X509_PUBKEY_NEW 3
.Os
.Sh NAME
.Nm X509_PUBKEY_new ,
.Nm X509_PUBKEY_free ,
.Nm X509_PUBKEY_set ,
.Nm X509_PUBKEY_get0 ,
.Nm X509_PUBKEY_get ,
.Nm d2i_PUBKEY ,
.Nm i2d_PUBKEY ,
.Nm d2i_PUBKEY_bio ,
.Nm d2i_PUBKEY_fp ,
.Nm i2d_PUBKEY_fp ,
.Nm i2d_PUBKEY_bio ,
74
75
76
77
78
79
80




81
82
83
84
85
86
87
.Fa "X509_PUBKEY *a"
.Fc
.Ft int
.Fo X509_PUBKEY_set
.Fa "X509_PUBKEY **x"
.Fa "EVP_PKEY *pkey"
.Fc




.Ft EVP_PKEY *
.Fo X509_PUBKEY_get
.Fa "X509_PUBKEY *key"
.Fc
.Ft EVP_PKEY *
.Fo d2i_PUBKEY
.Fa "EVP_PKEY **a"







>
>
>
>







75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
.Fa "X509_PUBKEY *a"
.Fc
.Ft int
.Fo X509_PUBKEY_set
.Fa "X509_PUBKEY **x"
.Fa "EVP_PKEY *pkey"
.Fc
.Ft EVP_PKEY *
.Fo X509_PUBKEY_get0
.Fa "X509_PUBKEY *key"
.Fc
.Ft EVP_PKEY *
.Fo X509_PUBKEY_get
.Fa "X509_PUBKEY *key"
.Fc
.Ft EVP_PKEY *
.Fo d2i_PUBKEY
.Fa "EVP_PKEY **a"
163
164
165
166
167
168
169
170
171
172





173
174
175
176
177
178
179
180
.Fa pkey .
If
.Pf * Fa x
is not
.Dv NULL ,
any existing public key structure will be freed.
.Pp
.Fn X509_PUBKEY_get
returns the public key contained in
.Fa key .





The reference
count on the returned key is incremented so it must be freed using
.Xr EVP_PKEY_free 3
after use.
.Pp
.Fn d2i_PUBKEY
and
.Fn i2d_PUBKEY







|


>
>
>
>
>
|







168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
.Fa pkey .
If
.Pf * Fa x
is not
.Dv NULL ,
any existing public key structure will be freed.
.Pp
.Fn X509_PUBKEY_get0
returns the public key contained in
.Fa key .
The returned value is an internal pointer which must not be freed after use.
.Pp
.Fn X509_PUBKEY_get
is similar to
.Fn X509_PUBKEY_get0
except that the reference
count on the returned key is incremented so it must be freed using
.Xr EVP_PKEY_free 3
after use.
.Pp
.Fn d2i_PUBKEY
and
.Fn i2d_PUBKEY
236
237
238
239
240
241
242

243
244
245
246
247
248
249
.Fn X509_PUBKEY_new
returns
.Dv NULL
and sets an error code that can be obtained by
.Xr ERR_get_error 3 .
Otherwise it returns a pointer to the newly allocated structure.
.Pp

.Fn X509_PUBKEY_get ,
.Fn d2i_PUBKEY ,
.Fn d2i_PUBKEY_bio ,
and
.Fn d2i_PUBKEY_fp
return a pointer to an
.Vt EVP_PKEY







>







246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
.Fn X509_PUBKEY_new
returns
.Dv NULL
and sets an error code that can be obtained by
.Xr ERR_get_error 3 .
Otherwise it returns a pointer to the newly allocated structure.
.Pp
.Fn X509_PUBKEY_get0 ,
.Fn X509_PUBKEY_get ,
.Fn d2i_PUBKEY ,
.Fn d2i_PUBKEY_bio ,
and
.Fn d2i_PUBKEY_fp
return a pointer to an
.Vt EVP_PKEY
261
262
263
264
265
266
267

268
269
270
271
272
































.Fn i2d_PUBKEY_fp ,
and
.Fn i2d_PUBKEY_bio
return 1 for success and 0 if an error occurred.
.Sh SEE ALSO
.Xr d2i_X509 3 ,
.Xr ERR_get_error 3 ,

.Xr X509_ALGOR_new 3 ,
.Xr X509_get_pubkey 3
.Sh STANDARDS
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile







































>





>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
.Fn i2d_PUBKEY_fp ,
and
.Fn i2d_PUBKEY_bio
return 1 for success and 0 if an error occurred.
.Sh SEE ALSO
.Xr d2i_X509 3 ,
.Xr ERR_get_error 3 ,
.Xr EVP_PKEY_asn1_set_public 3 ,
.Xr X509_ALGOR_new 3 ,
.Xr X509_get_pubkey 3
.Sh STANDARDS
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile
.Sh HISTORY
.Fn X509_PUBKEY_new ,
.Fn X509_PUBKEY_free ,
.Fn X509_PUBKEY_set ,
and
.Fn X509_PUBKEY_get
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp
.Fn d2i_PUBKEY
and
.Fn i2d_PUBKEY
first appeared in OpenSSL 0.9.5 and have been available since
.Ox 2.7 .
.Pp
.Fn d2i_PUBKEY_bio ,
.Fn d2i_PUBKEY_fp ,
.Fn i2d_PUBKEY_fp ,
and
.Fn i2d_PUBKEY_bio
first appeared in OpenSSL 0.9.6 and have been available since
.Ox 2.9 .
.Pp
.Fn X509_PUBKEY_set0_param
and
.Fn X509_PUBKEY_get0_param
first appeared in OpenSSL 1.0.0 and have been available since
.Ox 4.9 .
.Pp
.Fn X509_PUBKEY_get0
first appeared in OpenSSL 1.1.0 and has been available since
.Ox 6.3 .
Changes to jni/libressl/man/X509_REQ_new.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: X509_REQ_new.3,v 1.2 2016/12/25 22:15:10 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 25 2016 $
.Dt X509_REQ_NEW 3
.Os
.Sh NAME
.Nm X509_REQ_new ,
.Nm X509_REQ_free ,
.Nm X509_REQ_INFO_new ,
.Nm X509_REQ_INFO_free
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: X509_REQ_new.3,v 1.3 2018/03/21 03:16:08 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt X509_REQ_NEW 3
.Os
.Sh NAME
.Nm X509_REQ_new ,
.Nm X509_REQ_free ,
.Nm X509_REQ_INFO_new ,
.Nm X509_REQ_INFO_free
78
79
80
81
82
83
84








.Xr X509_new 3 ,
.Xr X509_REQ_get_pubkey 3 ,
.Xr X509_REQ_get_subject_name 3 ,
.Xr X509_REQ_get_version 3 ,
.Xr X509_REQ_sign 3
.Sh STANDARDS
RFC 2986: PKCS #10: Certification Request Syntax Specification















>
>
>
>
>
>
>
>
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
.Xr X509_new 3 ,
.Xr X509_REQ_get_pubkey 3 ,
.Xr X509_REQ_get_subject_name 3 ,
.Xr X509_REQ_get_version 3 ,
.Xr X509_REQ_sign 3
.Sh STANDARDS
RFC 2986: PKCS #10: Certification Request Syntax Specification
.Sh HISTORY
.Fn X509_REQ_new ,
.Fn X509_REQ_free ,
.Fn X509_REQ_INFO_new ,
and
.Fn X509_REQ_INFO_free
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/X509_REVOKED_new.3.
1

2
3
4
5
6
7
8
9
.\"	$OpenBSD: X509_REVOKED_new.3,v 1.2 2016/12/25 22:15:10 schwarze Exp $

.\"	OpenSSL X509_CRL_get0_by_serial.pod 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
|
>
|







1
2
3
4
5
6
7
8
9
10
.\" $OpenBSD: X509_REVOKED_new.3,v 1.8 2018/03/23 23:18:17 schwarze Exp $
.\" full merge up to:
.\" OpenSSL man3/X509_CRL_get0_by_serial cdd6c8c5 Mar 20 12:29:37 2017 +0100
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
61
62
63
64
65
66
67
68
69
70
71
72

73


74
75
76
77
78
79
80




81
82








83
84
85
86
87
88
89
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 25 2016 $
.Dt X509_REVOKED_NEW 3
.Os
.Sh NAME
.Nm X509_REVOKED_new ,

.Nm X509_REVOKED_free ,


.Nm X509_REVOKED_set_serialNumber ,
.Nm X509_REVOKED_set_revocationDate
.Nd create and change an X.509 CRL revoked entry
.Sh SYNOPSIS
.In openssl/x509.h
.Ft X509_REVOKED *
.Fn X509_REVOKED_new void




.Ft void
.Fn X509_REVOKED_free "X509_REVOKED *r"








.Ft int
.Fo X509_REVOKED_set_serialNumber
.Fa "X509_REVOKED *r"
.Fa "ASN1_INTEGER *serial"
.Fc
.Ft int
.Fo X509_REVOKED_set_revocationDate







|




>

>
>


|




>
>
>
>


>
>
>
>
>
>
>
>







62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt X509_REVOKED_NEW 3
.Os
.Sh NAME
.Nm X509_REVOKED_new ,
.Nm X509_REVOKED_dup ,
.Nm X509_REVOKED_free ,
.Nm X509_REVOKED_get0_serialNumber ,
.Nm X509_REVOKED_get0_revocationDate ,
.Nm X509_REVOKED_set_serialNumber ,
.Nm X509_REVOKED_set_revocationDate
.Nd create, change, and inspect an X.509 CRL revoked entry
.Sh SYNOPSIS
.In openssl/x509.h
.Ft X509_REVOKED *
.Fn X509_REVOKED_new void
.Ft X509_REVOKED *
.Fo X509_REVOKED_dup
.Fa "X509_REVOKED *r"
.Fc
.Ft void
.Fn X509_REVOKED_free "X509_REVOKED *r"
.Ft const ASN1_INTEGER *
.Fo X509_REVOKED_get0_serialNumber
.Fa "const X509_REVOKED *r"
.Fc
.Ft const ASN1_TIME *
.Fo X509_REVOKED_get0_revocationDate
.Fa "const X509_REVOKED *r"
.Fc
.Ft int
.Fo X509_REVOKED_set_serialNumber
.Fa "X509_REVOKED *r"
.Fa "ASN1_INTEGER *serial"
.Fc
.Ft int
.Fo X509_REVOKED_set_revocationDate
99
100
101
102
103
104
105




106
107
108
109
110
111
112
.Vt TBSCertList
structure defined in RFC 5280 section 5.1.
It is used by
.Vt X509_CRL
objects and can hold information about one revoked certificate
including issuer names, serial number, revocation date, and revocation
reason.




.Pp
.Fn X509_REVOKED_free
frees
.Fa r .
.Pp
.Fn X509_REVOKED_set_serialNumber
sets the serial number of







>
>
>
>







115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
.Vt TBSCertList
structure defined in RFC 5280 section 5.1.
It is used by
.Vt X509_CRL
objects and can hold information about one revoked certificate
including issuer names, serial number, revocation date, and revocation
reason.
.Pp
.Fn X509_REVOKED_dup
creates a deep copy of
.Fa r .
.Pp
.Fn X509_REVOKED_free
frees
.Fa r .
.Pp
.Fn X509_REVOKED_set_serialNumber
sets the serial number of
123
124
125
126
127
128
129


130
131
132
133
134








135
136
137
138
139
140
141
142
143
144



145
146
147





















to
.Fa tm .
The supplied
.Fa tm
pointer is not used internally so it should be freed up after use.
.Sh RETURN VALUES
.Fn X509_REVOKED_new


returns the new
.Vt X509_REVOKED
object or
.Dv NULL
if an error occurs.








.Pp
.Fn X509_REVOKED_set_serialNumber
and
.Fn X509_REVOKED_set_revocationDate
return 1 for success or 0 for failure.
.Sh SEE ALSO
.Xr d2i_X509_CRL 3 ,
.Xr ERR_get_error 3 ,
.Xr PEM_read_X509_CRL 3 ,
.Xr X509_CRL_get0_by_serial 3



.Sh STANDARDS
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile, section 5.1: CRL Fields




























>
>
|




>
>
>
>
>
>
>
>









|
>
>
>



>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
to
.Fa tm .
The supplied
.Fa tm
pointer is not used internally so it should be freed up after use.
.Sh RETURN VALUES
.Fn X509_REVOKED_new
and
.Fn X509_REVOKED_dup
return the new
.Vt X509_REVOKED
object or
.Dv NULL
if an error occurs.
.Pp
.Fn X509_REVOKED_get0_serialNumber
returns an internal pointer to the serial number of
.Fa r .
.Pp
.Fn X509_REVOKED_get0_revocationDate
returns an internal pointer to the revocation date of
.Fa r .
.Pp
.Fn X509_REVOKED_set_serialNumber
and
.Fn X509_REVOKED_set_revocationDate
return 1 for success or 0 for failure.
.Sh SEE ALSO
.Xr d2i_X509_CRL 3 ,
.Xr ERR_get_error 3 ,
.Xr PEM_read_X509_CRL 3 ,
.Xr X509_CRL_get0_by_serial 3 ,
.Xr X509_EXTENSION_new 3 ,
.Xr X509_REVOKED_get_ext 3 ,
.Xr X509_REVOKED_get_ext_d2i 3
.Sh STANDARDS
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile, section 5.1: CRL Fields
.Sh HISTORY
.Fn X509_REVOKED_new
and
.Fn X509_REVOKED_free
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp
.Fn X509_REVOKED_set_serialNumber
and
.Fn X509_REVOKED_set_revocationDate
first appeared in OpenSSL 0.9.7 and have been available since
.Ox 3.2 .
.Pp
.Fn X509_REVOKED_dup
first appeared in OpenSSL 1.0.2.
.Fn X509_REVOKED_get0_serialNumber
and
.Fn X509_REVOKED_get0_revocationDate
first appeared in OpenSSL 1.1.0.
These functions have been available since
.Ox 6.3 .
Changes to jni/libressl/man/X509_SIG_new.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: X509_SIG_new.3,v 1.2 2016/12/25 22:15:10 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 25 2016 $
.Dt X509_SIG_NEW 3
.Os
.Sh NAME
.Nm X509_SIG_new ,
.Nm X509_SIG_free
.Nd PKCS#7 digest information
.Sh SYNOPSIS
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: X509_SIG_new.3,v 1.3 2018/03/21 03:16:08 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt X509_SIG_NEW 3
.Os
.Sh NAME
.Nm X509_SIG_new ,
.Nm X509_SIG_free
.Nd PKCS#7 digest information
.Sh SYNOPSIS
55
56
57
58
59
60
61






.Xr X509_new 3
.Sh STANDARDS
RFC 2315: PKCS #7: Cryptographic Message Syntax,
section 9: Signed-data content type
.Pp
RFC 8017: PKCS #1: RSA Cryptography Specifications,
section 9: Encoding Methods for Signatures













>
>
>
>
>
>
55
56
57
58
59
60
61
62
63
64
65
66
67
.Xr X509_new 3
.Sh STANDARDS
RFC 2315: PKCS #7: Cryptographic Message Syntax,
section 9: Signed-data content type
.Pp
RFC 8017: PKCS #1: RSA Cryptography Specifications,
section 9: Encoding Methods for Signatures
.Sh HISTORY
.Fn X509_SIG_new
and
.Fn X509_SIG_free
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/X509_STORE_CTX_get_error.3.
1

2



3
4
5
6
7
8
9
.\"	$OpenBSD: X509_STORE_CTX_get_error.3,v 1.5 2016/12/25 22:15:10 schwarze Exp $

.\"	OpenSSL 9b86974e Aug 17 15:21:33 2015 -0400



.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2009, 2013, 2015, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|
>
|
>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
.\" $OpenBSD: X509_STORE_CTX_get_error.3,v 1.10 2018/03/23 23:18:17 schwarze Exp $
.\" full merge up to:
.\" OpenSSL crypto/X509_STORE_CTX_get_error f0e0fd51 Apr 14 23:59:26 2016 -0400
.\" selective merge up to:
.\" OpenSSL man3/X509_STORE_CTX_get_error 2947af32 Nov 19 00:10:05 2016 +0100
.\" OpenSSL man3/X509_STORE_CTX_new 7643a172 Apr 21 13:35:51 2017 +0200
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2009, 2013, 2015, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59


60
61
62
63
64
65
66
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 25 2016 $
.Dt X509_STORE_CTX_GET_ERROR 3
.Os
.Sh NAME
.Nm X509_STORE_CTX_get_error ,
.Nm X509_STORE_CTX_set_error ,
.Nm X509_STORE_CTX_get_error_depth ,
.Nm X509_STORE_CTX_get_current_cert ,


.Nm X509_STORE_CTX_get1_chain ,
.Nm X509_verify_cert_error_string
.Nd get or set certificate verification status information
.Sh SYNOPSIS
.In openssl/x509.h
.Ft int
.Fo X509_STORE_CTX_get_error







|







>
>







49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt X509_STORE_CTX_GET_ERROR 3
.Os
.Sh NAME
.Nm X509_STORE_CTX_get_error ,
.Nm X509_STORE_CTX_set_error ,
.Nm X509_STORE_CTX_get_error_depth ,
.Nm X509_STORE_CTX_get_current_cert ,
.Nm X509_STORE_CTX_get0_cert ,
.Nm X509_STORE_CTX_get0_chain ,
.Nm X509_STORE_CTX_get1_chain ,
.Nm X509_verify_cert_error_string
.Nd get or set certificate verification status information
.Sh SYNOPSIS
.In openssl/x509.h
.Ft int
.Fo X509_STORE_CTX_get_error
75
76
77
78
79
80
81








82
83
84
85
86
87
88
.Fo X509_STORE_CTX_get_error_depth
.Fa "X509_STORE_CTX *ctx"
.Fc
.Ft X509 *
.Fo X509_STORE_CTX_get_current_cert
.Fa "X509_STORE_CTX *ctx"
.Fc








.Ft STACK_OF(X509) *
.Fo X509_STORE_CTX_get1_chain
.Fa "X509_STORE_CTX *ctx"
.Fc
.Ft const char *
.Fo X509_verify_cert_error_string
.Fa "long n"







>
>
>
>
>
>
>
>







81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
.Fo X509_STORE_CTX_get_error_depth
.Fa "X509_STORE_CTX *ctx"
.Fc
.Ft X509 *
.Fo X509_STORE_CTX_get_current_cert
.Fa "X509_STORE_CTX *ctx"
.Fc
.Ft X509 *
.Fo X509_STORE_CTX_get0_cert
.Fa "X509_STORE_CTX *ctx"
.Fc
.Ft STACK_OF(X509) *
.Fo X509_STORE_CTX_get0_chain
.Fa "X509_STORE_CTX *ctx"
.Fc
.Ft STACK_OF(X509) *
.Fo X509_STORE_CTX_get1_chain
.Fa "X509_STORE_CTX *ctx"
.Fc
.Ft const char *
.Fo X509_verify_cert_error_string
.Fa "long n"
118
119
120
121
122
123
124
125

126
127
128
129
130
131
132
133
134

135
136
137
138
139
140
141
142
143
144
.Fn X509_STORE_CTX_get_current_cert
returns the certificate in
.Fa ctx
which caused the error or
.Dv NULL
if no certificate is relevant.
.Pp
.Fn X509_STORE_CTX_get1_chain

returns a complete validate chain if a previous call to
.Xr X509_verify_cert 3
is successful.
If the call to
.Xr X509_verify_cert 3
is
.Sy not
successful, the returned chain may be incomplete or invalid.
The returned chain persists after the

.Fa ctx
structure is freed.
When it is no longer needed, it should be freed up using
.Fn sk_X509_pop_free chain X509_free .
.Pp
.Fn X509_verify_cert_error_string
returns a human readable error string for verification error
.Fa n .
.Pp
The above functions should be used instead of directly referencing the







|
>
|

|


<
<
|
|
>


|







132
133
134
135
136
137
138
139
140
141
142
143
144
145


146
147
148
149
150
151
152
153
154
155
156
157
158
.Fn X509_STORE_CTX_get_current_cert
returns the certificate in
.Fa ctx
which caused the error or
.Dv NULL
if no certificate is relevant.
.Pp
.Fn X509_STORE_CTX_get0_chain
returns an internal pointer to a complete validate chain
if a previous call to
.Xr X509_verify_cert 3
was successful.
If the call to
.Xr X509_verify_cert 3


was not successful, the returned chain may be incomplete or invalid.
.Fn X509_STORE_CTX_get1_chain
returns a deep copy of the same chain which persists even after the
.Fa ctx
structure is freed.
When it is no longer needed, it should be freed using
.Fn sk_X509_pop_free chain X509_free .
.Pp
.Fn X509_verify_cert_error_string
returns a human readable error string for verification error
.Fa n .
.Pp
The above functions should be used instead of directly referencing the
167
168
169
170
171
172
173











174
175
176
177
178
179
180
.Fn X509_STORE_CTX_get_error_depth
returns a non-negative error depth.
.Pp
.Fn X509_STORE_CTX_get_current_cert
returns the certificate which caused the error or
.Dv NULL
if no certificate is relevant to the error.











.Pp
.Fn X509_verify_cert_error_string
returns a human readable error string for verification error
.Fa n .
.Sh ERROR CODES
A list of error codes and messages is shown below.
Some of the error codes are defined but currently never returned:







>
>
>
>
>
>
>
>
>
>
>







181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
.Fn X509_STORE_CTX_get_error_depth
returns a non-negative error depth.
.Pp
.Fn X509_STORE_CTX_get_current_cert
returns the certificate which caused the error or
.Dv NULL
if no certificate is relevant to the error.
.Pp
.Fn X509_STORE_CTX_get0_cert
retrieves an internal pointer to the certificate being verified by
.Fa ctx .
.Pp
.Fn X509_STORE_CTX_get0_chain
and
.Fn X509_STORE_CTX_get1_chain
return a pointer to a stack of certificates or
.Dv NULL
if an error occurs.
.Pp
.Fn X509_verify_cert_error_string
returns a human readable error string for verification error
.Fa n .
.Sh ERROR CODES
A list of error codes and messages is shown below.
Some of the error codes are defined but currently never returned:
342
343
344
345
346
347
348


349



















This error can only happen if extended CRL checking is enabled.
.It Dv X509_V_ERR_APPLICATION_VERIFICATION : \
 No application verification failure
An application specific error.
This will never be returned unless explicitly set by an application.
.El
.Sh SEE ALSO


.Xr X509_verify_cert 3


























>
>

>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
This error can only happen if extended CRL checking is enabled.
.It Dv X509_V_ERR_APPLICATION_VERIFICATION : \
 No application verification failure
An application specific error.
This will never be returned unless explicitly set by an application.
.El
.Sh SEE ALSO
.Xr X509_STORE_CTX_new 3 ,
.Xr X509_up_ref 3 ,
.Xr X509_verify_cert 3
.Sh HISTORY
.Fn X509_STORE_CTX_get_error ,
.Fn X509_STORE_CTX_set_error ,
.Fn X509_STORE_CTX_get_error_depth ,
.Fn X509_STORE_CTX_get_current_cert ,
and
.Fn X509_verify_cert_error_string
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp
.Fn X509_STORE_CTX_get1_chain
first appeared in OpenSSL 0.9.5 and has been available since
.Ox 2.7 .
.Pp
.Fn X509_STORE_CTX_get0_cert
and
.Fn X509_STORE_CTX_get0_chain
first appeared in OpenSSL 1.1.0 and have been available since
.Ox 6.3 .
Changes to jni/libressl/man/X509_STORE_CTX_get_ex_new_index.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: X509_STORE_CTX_get_ex_new_index.3,v 1.3 2016/12/10 20:13:59 schwarze Exp $
.\"	OpenSSL a528d4f0 Oct 27 13:40:11 2015 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2009, 2014 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: X509_STORE_CTX_get_ex_new_index.3,v 1.4 2018/03/21 07:41:44 schwarze Exp $
.\"	OpenSSL a528d4f0 Oct 27 13:40:11 2015 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2009, 2014 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 10 2016 $
.Dt X509_STORE_CTX_GET_EX_NEW_INDEX 3
.Os
.Sh NAME
.Nm X509_STORE_CTX_get_ex_new_index ,
.Nm X509_STORE_CTX_set_ex_data ,
.Nm X509_STORE_CTX_get_ex_data
.Nd add application specific data to X509_STORE_CTX structures







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt X509_STORE_CTX_GET_EX_NEW_INDEX 3
.Os
.Sh NAME
.Nm X509_STORE_CTX_get_ex_new_index ,
.Nm X509_STORE_CTX_set_ex_data ,
.Nm X509_STORE_CTX_get_ex_data
.Nd add application specific data to X509_STORE_CTX structures
97
98
99
100
101
102
103
104

.Sh SEE ALSO
.Xr RSA_get_ex_new_index 3
.Sh HISTORY
.Fn X509_STORE_CTX_get_ex_new_index ,
.Fn X509_STORE_CTX_set_ex_data ,
and
.Fn X509_STORE_CTX_get_ex_data
are available since OpenSSL 0.9.5.








|
>
97
98
99
100
101
102
103
104
105
.Sh SEE ALSO
.Xr RSA_get_ex_new_index 3
.Sh HISTORY
.Fn X509_STORE_CTX_get_ex_new_index ,
.Fn X509_STORE_CTX_set_ex_data ,
and
.Fn X509_STORE_CTX_get_ex_data
first appeared in SSLeay 0.9.0 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/X509_STORE_CTX_new.3.
1
2

3
4

5
6
7
8
9
10
11
12
.\"	$OpenBSD: X509_STORE_CTX_new.3,v 1.5 2017/01/07 03:01:44 schwarze Exp $
.\"	OpenSSL 186bb907 Apr 13 11:05:13 2015 -0700

.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.

.\" Copyright (c) 2009, 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
|
|
>

|
>
|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
.\" $OpenBSD: X509_STORE_CTX_new.3,v 1.17 2018/03/23 23:18:17 schwarze Exp $
.\" full merge up to: OpenSSL 186bb907 Apr 13 11:05:13 2015 -0700
.\" selective merge up to: OpenSSL 7643a172 Apr 21 13:35:51 2017 +0200
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>
.\" and Rich Salz <rsalz@openssl.org>.
.\" Copyright (c) 2009, 2015, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58


59
60

61
62
63
64


65
66
67
68
69
70
71
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: January 7 2017 $
.Dt X509_STORE_CTX_NEW 3
.Os
.Sh NAME
.Nm X509_STORE_CTX_new ,
.Nm X509_STORE_CTX_cleanup ,
.Nm X509_STORE_CTX_free ,
.Nm X509_STORE_CTX_init ,


.Nm X509_STORE_CTX_trusted_stack ,
.Nm X509_STORE_CTX_set_cert ,

.Nm X509_STORE_CTX_set_chain ,
.Nm X509_STORE_CTX_set0_crls ,
.Nm X509_STORE_CTX_get0_param ,
.Nm X509_STORE_CTX_set0_param ,


.Nm X509_STORE_CTX_set_default
.Nd X509_STORE_CTX initialisation
.Sh SYNOPSIS
.In openssl/x509_vfy.h
.Ft X509_STORE_CTX *
.Fn X509_STORE_CTX_new void
.Ft void







|







>
>


>




>
>







46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt X509_STORE_CTX_NEW 3
.Os
.Sh NAME
.Nm X509_STORE_CTX_new ,
.Nm X509_STORE_CTX_cleanup ,
.Nm X509_STORE_CTX_free ,
.Nm X509_STORE_CTX_init ,
.Nm X509_STORE_CTX_get0_store ,
.Nm X509_STORE_CTX_set0_trusted_stack ,
.Nm X509_STORE_CTX_trusted_stack ,
.Nm X509_STORE_CTX_set_cert ,
.\" X509_STORE_CTX_get0_chain moved to X509_STORE_CTX_get_error(3)
.Nm X509_STORE_CTX_set_chain ,
.Nm X509_STORE_CTX_set0_crls ,
.Nm X509_STORE_CTX_get0_param ,
.Nm X509_STORE_CTX_set0_param ,
.Nm X509_STORE_CTX_get0_untrusted ,
.Nm X509_STORE_CTX_set0_untrusted ,
.Nm X509_STORE_CTX_set_default
.Nd X509_STORE_CTX initialisation
.Sh SYNOPSIS
.In openssl/x509_vfy.h
.Ft X509_STORE_CTX *
.Fn X509_STORE_CTX_new void
.Ft void
79
80
81
82
83
84
85









86
87
88
89
90
91
92
.Ft int
.Fo X509_STORE_CTX_init
.Fa "X509_STORE_CTX *ctx"
.Fa "X509_STORE *store"
.Fa "X509 *x509"
.Fa "STACK_OF(X509) *chain"
.Fc









.Ft void
.Fo X509_STORE_CTX_trusted_stack
.Fa "X509_STORE_CTX *ctx"
.Fa "STACK_OF(X509) *sk"
.Fc
.Ft void
.Fo X509_STORE_CTX_set_cert







>
>
>
>
>
>
>
>
>







86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
.Ft int
.Fo X509_STORE_CTX_init
.Fa "X509_STORE_CTX *ctx"
.Fa "X509_STORE *store"
.Fa "X509 *x509"
.Fa "STACK_OF(X509) *chain"
.Fc
.Ft X509_STORE *
.Fo X509_STORE_CTX_get0_store
.Fa "X509_STORE_CTX *ctx"
.Fc
.Ft void
.Fo X509_STORE_CTX_set0_trusted_stack
.Fa "X509_STORE_CTX *ctx"
.Fa "STACK_OF(X509) *sk"
.Fc
.Ft void
.Fo X509_STORE_CTX_trusted_stack
.Fa "X509_STORE_CTX *ctx"
.Fa "STACK_OF(X509) *sk"
.Fc
.Ft void
.Fo X509_STORE_CTX_set_cert
113
114
115
116
117
118
119









120
121
122
123
124
125
126
.Fa "X509_VERIFY_PARAM *param"
.Fc
.Ft int
.Fo X509_STORE_CTX_set_default
.Fa "X509_STORE_CTX *ctx"
.Fa "const char *name"
.Fc









.Sh DESCRIPTION
These functions initialise an
.Vt X509_STORE_CTX
structure for subsequent use by
.Xr X509_verify_cert 3 .
.Pp
.Fn X509_STORE_CTX_new







>
>
>
>
>
>
>
>
>







129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
.Fa "X509_VERIFY_PARAM *param"
.Fc
.Ft int
.Fo X509_STORE_CTX_set_default
.Fa "X509_STORE_CTX *ctx"
.Fa "const char *name"
.Fc
.Ft STACK_OF(X509)*
.Fo X509_STORE_CTX_get0_untrusted
.Fa "X509_STORE_CTX *ctx"
.Fc
.Ft void
.Fo X509_STORE_CTX_set0_untrusted
.Fa "X509_STORE_CTX *ctx"
.Fa "STACK_OF(X509) *sk"
.Fc
.Sh DESCRIPTION
These functions initialise an
.Vt X509_STORE_CTX
structure for subsequent use by
.Xr X509_verify_cert 3 .
.Pp
.Fn X509_STORE_CTX_new
162
163
164
165
166
167
168
169






170
171
172
173
174
175
176



177
178
179
180
181
182
183
.Fa store ,
.Fa x509 ,
and
.Fa chain
parameters can be
.Dv NULL .
.Pp
.Fn X509_STORE_CTX_trusted_stack






sets the set of trusted certificates of
.Fa ctx
to
.Fa sk .
This is an alternative way of specifying trusted certificates instead of
using an
.Vt X509_STORE .



.Pp
.Fn X509_STORE_CTX_set_cert
sets the certificate to be verified in
.Fa ctx
to
.Fa x .
.Pp







|
>
>
>
>
>
>







>
>
>







187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
.Fa store ,
.Fa x509 ,
and
.Fa chain
parameters can be
.Dv NULL .
.Pp
.Fn X509_STORE_CTX_get0_store
returns an internal pointer to the trusted certificate
.Fa store
that was set with
.Fn X509_STORE_CTX_init .
.Pp
.Fn X509_STORE_CTX_set0_trusted_stack
sets the set of trusted certificates of
.Fa ctx
to
.Fa sk .
This is an alternative way of specifying trusted certificates instead of
using an
.Vt X509_STORE .
.Fn X509_STORE_CTX_trusted_stack
is a deprecated alias for
.Fn X509_STORE_CTX_set0_trusted_stack .
.Pp
.Fn X509_STORE_CTX_set_cert
sets the certificate to be verified in
.Fa ctx
to
.Fa x .
.Pp
209
210
211
212
213
214
215
216
217
218












219
220
221
222
223
224
225
.Fa param
should not be used.
.Pp
.Fn X509_STORE_CTX_set_default
looks up and sets the default verification method to
.Fa name .
This uses the function
.Fn X509_VERIFY_PARAM_lookup
to find an appropriate set of parameters from
.Fa name .












.Pp
The certificates and CRLs in a store are used internally and should
.Sy not
be freed up until after the associated
.Vt X509_STORE_CTX
is freed.
Legacy applications might implicitly use an







|


>
>
>
>
>
>
>
>
>
>
>
>







243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
.Fa param
should not be used.
.Pp
.Fn X509_STORE_CTX_set_default
looks up and sets the default verification method to
.Fa name .
This uses the function
.Xr X509_VERIFY_PARAM_lookup 3
to find an appropriate set of parameters from
.Fa name .
.Pp
.Fn X509_STORE_CTX_get0_untrusted
retrieves an internal pointer
to the stack of untrusted certificates associated with
.Fa ctx .
.Pp
.Fn X509_STORE_CTX_set0_untrusted
sets the internal pointer
to the stack of untrusted certificates associated with
.Fa ctx
to
.Fa sk .
.Pp
The certificates and CRLs in a store are used internally and should
.Sy not
be freed up until after the associated
.Vt X509_STORE_CTX
is freed.
Legacy applications might implicitly use an
245
246
247
248
249
250
251







252
253
254
255
256
257
258
259
260


261









262
263

264



265
266




267
268


269




270
271


272
273

274
275

276
277


278
279
280
281
282
283
284
.Fn X509_STORE_CTX_new
returns a newly allocated context or
.Dv NULL
if an error occurred.
.Pp
.Fn X509_STORE_CTX_init
returns 1 for success or 0 if an error occurred.







.Pp
.Fn X509_STORE_CTX_get0_param
returns a pointer to an
.Vt X509_VERIFY_PARAM
structure or
.Dv NULL
if an error occurred.
.Pp
.Fn X509_STORE_CTX_cleanup ,


.Fn X509_STORE_CTX_free ,









.Fn X509_STORE_CTX_trusted_stack ,
.Fn X509_STORE_CTX_set_cert ,

.Fn X509_STORE_CTX_set_chain ,



.Fn X509_STORE_CTX_set0_crls ,
and




.Fn X509_STORE_CTX_set0_param
do not return values.


.Pp




.Fn X509_STORE_CTX_set_default
returns 1 for success or 0 if an error occurred.


.Sh SEE ALSO
.Xr X509_verify_cert 3 ,

.Xr X509_VERIFY_PARAM_set_flags 3
.Sh HISTORY

.Fn X509_STORE_CTX_set0_crls
was first added to OpenSSL 1.0.0.


.Sh BUGS
The certificates and CRLs in a context are used internally and should
.Sy not
be freed up until after the associated
.Vt X509_STORE_CTX
is freed.
Copies should be made or reference counts increased instead.







>
>
>
>
>
>
>








|
>
>
|
>
>
>
>
>
>
>
>
>
|

>
|
>
>
>
|

>
>
>
>
|
<
>
>

>
>
>
>

<
>
>
|
|
>
|
|
>
|
|
>
>







291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339

340
341
342
343
344
345
346
347

348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
.Fn X509_STORE_CTX_new
returns a newly allocated context or
.Dv NULL
if an error occurred.
.Pp
.Fn X509_STORE_CTX_init
returns 1 for success or 0 if an error occurred.
.Pp
.Fn X509_STORE_CTX_get0_store
returns a pointer to the trusted certificate store or
.Dv NULL
if
.Fa ctx
was not initialised.
.Pp
.Fn X509_STORE_CTX_get0_param
returns a pointer to an
.Vt X509_VERIFY_PARAM
structure or
.Dv NULL
if an error occurred.
.Pp
.Fn X509_STORE_CTX_set_default
returns 1 for success or 0 if an error occurred.
.Pp
.Fn X509_STORE_CTX_get0_untrusted
returns an internal pointer.
.Sh SEE ALSO
.Xr X509_STORE_CTX_get_error 3 ,
.Xr X509_STORE_new 3 ,
.Xr X509_STORE_set1_param 3 ,
.Xr X509_verify_cert 3 ,
.Xr X509_VERIFY_PARAM_set_flags 3
.Sh HISTORY
.Fn X509_STORE_CTX_cleanup ,
.Fn X509_STORE_CTX_init ,
.Fn X509_STORE_CTX_set_cert ,
and
.Fn X509_STORE_CTX_set_chain
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp
.Fn X509_STORE_CTX_new
and
.Fn X509_STORE_CTX_free
first appeared in OpenSSL 0.9.5 and have been available since
.Ox 2.7 .
.Pp
.Fn X509_STORE_CTX_trusted_stack

first appeared in OpenSSL 0.9.6 and has been available since
.Ox 2.9 .
.Pp
.Fn X509_STORE_CTX_set0_crls ,
.Fn X509_STORE_CTX_get0_param ,
.Fn X509_STORE_CTX_set0_param ,
and
.Fn X509_STORE_CTX_set_default

first appeared in OpenSSL 0.9.8 and have been available since
.Ox 4.5 .
.Pp
.Fn X509_STORE_CTX_get0_store
first appeared in OpenSSL 1.0.2.
.Fn X509_STORE_CTX_set0_trusted_stack ,
.Fn X509_STORE_CTX_get0_untrusted ,
and
.Fn X509_STORE_CTX_set0_untrusted
first appeared in OpenSSL 1.1.0.
These functions have been available since
.Ox 6.3 .
.Sh BUGS
The certificates and CRLs in a context are used internally and should
.Sy not
be freed up until after the associated
.Vt X509_STORE_CTX
is freed.
Copies should be made or reference counts increased instead.
Changes to jni/libressl/man/X509_STORE_CTX_set_verify_cb.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: X509_STORE_CTX_set_verify_cb.3,v 1.3 2016/12/05 13:39:33 schwarze Exp $
.\"	OpenSSL a528d4f0 Oct 27 13:40:11 2015 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2009, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: X509_STORE_CTX_set_verify_cb.3,v 1.4 2018/03/22 17:38:08 schwarze Exp $
.\"	OpenSSL a528d4f0 Oct 27 13:40:11 2015 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2009, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 5 2016 $
.Dt X509_STORE_CTX_SET_VERIFY_CB 3
.Os
.Sh NAME
.Nm X509_STORE_CTX_set_verify_cb
.Nd set verification callback
.Sh SYNOPSIS
.In openssl/x509_vfy.h







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt X509_STORE_CTX_SET_VERIFY_CB 3
.Os
.Sh NAME
.Nm X509_STORE_CTX_set_verify_cb
.Nd set verification callback
.Sh SYNOPSIS
.In openssl/x509_vfy.h
220
221
222
223
224
225
226
227

228
229
230
231
232
233
234
235
.Ed
.Sh SEE ALSO
.Xr X509_STORE_CTX_get_error 3 ,
.Xr X509_STORE_CTX_get_ex_new_index 3 ,
.Xr X509_STORE_set_verify_cb_func 3
.Sh HISTORY
.Fn X509_STORE_CTX_set_verify_cb
is available in all versions of SSLeay and OpenSSL.

.Sh CAVEATS
In general a verification callback should
.Sy NOT
unconditionally return 1 in all circumstances because this will allow
verification to succeed no matter what the error.
This effectively removes all security from the application because
.Sy any
certificate (including untrusted generated ones) will be accepted.







|
>








220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
.Ed
.Sh SEE ALSO
.Xr X509_STORE_CTX_get_error 3 ,
.Xr X509_STORE_CTX_get_ex_new_index 3 ,
.Xr X509_STORE_set_verify_cb_func 3
.Sh HISTORY
.Fn X509_STORE_CTX_set_verify_cb
first appeared in OpenSSL 0.9.6c and has been available since
.Ox 3.2 .
.Sh CAVEATS
In general a verification callback should
.Sy NOT
unconditionally return 1 in all circumstances because this will allow
verification to succeed no matter what the error.
This effectively removes all security from the application because
.Sy any
certificate (including untrusted generated ones) will be accepted.
Changes to jni/libressl/man/X509_STORE_load_locations.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: X509_STORE_load_locations.3,v 1.2 2017/01/07 08:46:13 jmc Exp $
.\"
.\" Copyright (c) 2017 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: January 7 2017 $
.Dt X509_STORE_LOAD_LOCATIONS 3
.Os
.Sh NAME
.Nm X509_STORE_load_locations ,
.Nm X509_STORE_set_default_paths
.Nd configure files and directories used by a certificate store
.Sh SYNOPSIS
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: X509_STORE_load_locations.3,v 1.4 2018/03/21 03:28:40 schwarze Exp $
.\"
.\" Copyright (c) 2017 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt X509_STORE_LOAD_LOCATIONS 3
.Os
.Sh NAME
.Nm X509_STORE_load_locations ,
.Nm X509_STORE_set_default_paths
.Nd configure files and directories used by a certificate store
.Sh SYNOPSIS
101
102
103
104
105
106
107

108
109






110
111
112
113
114
115
116
117
.It Pa /etc/ssl/certs/
default directory for
.Fn X509_STORE_set_default_paths
.El
.Sh SEE ALSO
.Xr SSL_CTX_load_verify_locations 3 ,
.Xr X509_LOOKUP_hash_dir 3 ,

.Xr X509_STORE_set1_param 3 ,
.Xr X509_STORE_set_verify_cb 3






.Sh BUGS
By the time that adding a directory is found to have failed,
the file and some other directories may already have been successfully loaded,
so these functions may change the state of the store even when they fail.
.Pp
.Fn X509_STORE_set_default_paths
clears the error queue, deleting even error information that was
already present when it was called.







>


>
>
>
>
>
>








101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
.It Pa /etc/ssl/certs/
default directory for
.Fn X509_STORE_set_default_paths
.El
.Sh SEE ALSO
.Xr SSL_CTX_load_verify_locations 3 ,
.Xr X509_LOOKUP_hash_dir 3 ,
.Xr X509_STORE_new 3 ,
.Xr X509_STORE_set1_param 3 ,
.Xr X509_STORE_set_verify_cb 3
.Sh HISTORY
.Fn X509_STORE_load_locations
and
.Fn X509_STORE_set_default_paths
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Sh BUGS
By the time that adding a directory is found to have failed,
the file and some other directories may already have been successfully loaded,
so these functions may change the state of the store even when they fail.
.Pp
.Fn X509_STORE_set_default_paths
clears the error queue, deleting even error information that was
already present when it was called.
Added jni/libressl/man/X509_STORE_new.3.
























































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
.\" $OpenBSD: X509_STORE_new.3,v 1.3 2018/03/23 23:18:17 schwarze Exp $
.\" full merge up to: OpenSSL 05ea606a May 20 20:52:46 2016 -0400
.\" selective merge up to: OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2018 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" The original file was written by
.\" Alessandro Ghedini <alessandro@ghedini.me>.
.\" Copyright (c) 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\"
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in
.\"    the documentation and/or other materials provided with the
.\"    distribution.
.\"
.\" 3. All advertising materials mentioning features or use of this
.\"    software must display the following acknowledgment:
.\"    "This product includes software developed by the OpenSSL Project
.\"    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
.\"
.\" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
.\"    endorse or promote products derived from this software without
.\"    prior written permission. For written permission, please contact
.\"    openssl-core@openssl.org.
.\"
.\" 5. Products derived from this software may not be called "OpenSSL"
.\"    nor may "OpenSSL" appear in their names without prior written
.\"    permission of the OpenSSL Project.
.\"
.\" 6. Redistributions of any form whatsoever must retain the following
.\"    acknowledgment:
.\"    "This product includes software developed by the OpenSSL Project
.\"    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
.\" EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
.\" ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt X509_STORE_NEW 3
.Os
.Sh NAME
.Nm X509_STORE_new ,
.Nm X509_STORE_up_ref ,
.Nm X509_STORE_free
.Nd allocate and free X.509 certificate stores
.Sh SYNOPSIS
.In openssl/x509_vfy.h
.Ft X509_STORE *
.Fn X509_STORE_new void
.Ft int
.Fo X509_STORE_up_ref
.Fa "X509_STORE *store"
.Fc
.Ft void
.Fo X509_STORE_free
.Fa "X509_STORE *store"
.Fc
.Sh DESCRIPTION
.Fn X509_STORE_new
allocates and initializes an empty X.509 certificate store
and sets its reference count to 1.
.Pp
.Fn X509_STORE_up_ref
increments the reference count of
.Fa store
by 1.
.Pp
.Fn X509_STORE_free
decrements the reference count of
.Fa store
by 1.
If the reference count reaches 0,
all resources used by the store, including all certificates
contained in it, are released and
.Fa store
itself is freed.
If
.Fa store
is a
.Dv NULL
pointer, no action occurs.
.Sh RETURN VALUES
.Fn X509_STORE_new
returns a newly created
.Vt X509_STORE
object or
.Dv NULL
if an error occurs.
.Pp
.Fn X509_STORE_up_ref
returns 1 for success and 0 for failure.
.Sh SEE ALSO
.Xr PKCS7_verify 3 ,
.Xr SSL_CTX_set_cert_store 3 ,
.Xr X509_STORE_CTX_new 3 ,
.Xr X509_STORE_load_locations 3 ,
.Xr X509_STORE_set1_param 3 ,
.Xr X509_STORE_set_verify_cb 3
.Sh HISTORY
.Fn X509_STORE_new
and
.Fn X509_STORE_free
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp
.Fn X509_STORE_up_ref
first appeared in OpenSSL 1.1.0 and has been available since
.Ox 6.3 .
Changes to jni/libressl/man/X509_STORE_set1_param.3.
1

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55










56
57
58
59
60
61
62
63





















































64
65
66
67

68





















69
















70
71




72








































































.\"	$OpenBSD: X509_STORE_set1_param.3,v 1.3 2017/01/06 22:46:06 schwarze Exp $

.\"	OpenSSL 99d63d46
.\"
.\" This file was written by Christian Heimes <cheimes@redhat.com>.
.\" Copyright (c) 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\"
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in
.\"    the documentation and/or other materials provided with the
.\"    distribution.
.\"
.\" 3. All advertising materials mentioning features or use of this
.\"    software must display the following acknowledgment:
.\"    "This product includes software developed by the OpenSSL Project
.\"    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
.\"
.\" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
.\"    endorse or promote products derived from this software without
.\"    prior written permission. For written permission, please contact
.\"    openssl-core@openssl.org.
.\"
.\" 5. Products derived from this software may not be called "OpenSSL"
.\"    nor may "OpenSSL" appear in their names without prior written
.\"    permission of the OpenSSL Project.
.\"
.\" 6. Redistributions of any form whatsoever must retain the following
.\"    acknowledgment:
.\"    "This product includes software developed by the OpenSSL Project
.\"    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
.\" EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
.\" ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: January 6 2017 $
.Dt X509_STORE_SET1_PARAM 3
.Os
.Sh NAME
.Nm X509_STORE_set1_param










.Nd set X509_STORE verification parameters
.Sh SYNOPSIS
.In openssl/x509_vfy.h
.Ft int
.Fo X509_STORE_set1_param
.Fa "X509_STORE *ctx"
.Fa "X509_VERIFY_PARAM *pm"
.Fc





















































.Sh DESCRIPTION
.Fn X509_STORE_set1_param
sets the verification parameters to
.Fa pm

for





















.Fa ctx .
















.Sh RETURN VALUES
.Fn X509_STORE_set1_param




returns 1 for success and 0 for failure.








































































|
>
|

<
|

<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
|
<
<
<
<
|
|

<
<
<
<
<
|
|
|
<
<
|
<
|
<
|
<
|

|



|
>
>
>
>
>
>
>
>
>
>
|




|


>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>


|

>
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

|
>
>
>
>
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4

5
6


















7




8
9
10





11
12
13


14

15

16

17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
.\" $OpenBSD: X509_STORE_set1_param.3,v 1.12 2018/03/23 23:18:17 schwarze Exp $
.\" content checked up to:
.\" OpenSSL man3/X509_STORE_get0_param e90fc053 Jul 15 09:39:45 2017 -0400
.\"

.\" Copyright (c) 2018 Ingo Schwarze <schwarze@openbsd.org>
.\"


















.\" Permission to use, copy, modify, and distribute this software for any




.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"





.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR


.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES

.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN

.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF

.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt X509_STORE_SET1_PARAM 3
.Os
.Sh NAME
.Nm X509_STORE_set1_param ,
.Nm X509_STORE_set_flags ,
.Nm X509_STORE_set_purpose ,
.Nm X509_STORE_set_trust ,
.Nm X509_STORE_set_depth ,
.Nm X509_STORE_add_cert ,
.Nm X509_STORE_add_crl ,
.Nm X509_STORE_get0_objects ,
.Nm X509_STORE_get_ex_new_index ,
.Nm X509_STORE_set_ex_data ,
.Nm X509_STORE_get_ex_data
.Nd get and set X509_STORE data
.Sh SYNOPSIS
.In openssl/x509_vfy.h
.Ft int
.Fo X509_STORE_set1_param
.Fa "X509_STORE *store"
.Fa "X509_VERIFY_PARAM *pm"
.Fc
.Ft int
.Fo X509_STORE_set_flags
.Fa "X509_STORE *store"
.Fa "unsigned long flags"
.Fc
.Ft int
.Fo X509_STORE_set_purpose
.Fa "X509_STORE *store"
.Fa "int purpose"
.Fc
.Ft int
.Fo X509_STORE_set_trust
.Fa "X509_STORE *store"
.Fa "int trust"
.Fc
.Ft int
.Fo X509_STORE_set_depth
.Fa "X509_STORE *store"
.Fa "int depth"
.Fc
.Ft int
.Fo X509_STORE_add_cert
.Fa "X509_STORE *store"
.Fa "X509 *x"
.Fc
.Ft int
.Fo X509_STORE_add_crl
.Fa "X509_STORE *store"
.Fa "X509_CRL *crl"
.Fc
.Ft STACK_OF(X509_OBJECT) *
.Fo X509_STORE_get0_objects
.Fa "X509_STORE *store"
.Fc
.Ft int
.Fo X509_STORE_get_ex_new_index
.Fa "long argl"
.Fa "void *argp"
.Fa "CRYPTO_EX_new *new_func"
.Fa "CRYPTO_EX_dup *dup_func"
.Fa "CRYPTO_EX_free *free_func"
.Fc
.Ft int
.Fo X509_STORE_set_ex_data
.Fa "X509_STORE *store"
.Fa "int idx"
.Fa "void *arg"
.Fc
.Ft void *
.Fo X509_STORE_get_ex_data
.Fa "X509_STORE *store"
.Fa "int idx"
.Fc
.Sh DESCRIPTION
.Fn X509_STORE_set1_param
copies the verification parameters from
.Fa pm
into the verification parameter object contained in the
.Fa store .
.Pp
.Fn X509_VERIFY_PARAM_set_flags ,
.Fn X509_STORE_set_purpose ,
.Fn X509_STORE_set_trust ,
and
.Fn X509_STORE_set_depth
call
.Fn X509_VERIFY_PARAM_set_flags ,
.Fn X509_VERIFY_PARAM_set_purpose ,
.Fn X509_VERIFY_PARAM_set_trust ,
and
.Fn X509_VERIFY_PARAM_set_depth
on the verification parameter object contained in the
.Fa store .
.Pp
.Fn X509_STORE_add_cert
and
.Fn X509_STORE_add_crl
add the certificate
.Fa x
or the certificate revocation list
.Fa crl
to the
.Fa store ,
increasing its reference count by 1 in case of success.
.Pp
.Fn X509_STORE_get_ex_new_index ,
.Fn X509_STORE_set_ex_data ,
and
.Fn X509_STORE_get_ex_data
handle application specific data in
.Vt X509_STORE
objects.
Their usage is identical to that of
.Xr RSA_get_ex_new_index 3 ,
.Xr RSA_set_ex_data 3 ,
and
.Xr RSA_get_ex_data 3 .
.Sh RETURN VALUES
.Fn X509_STORE_set1_param ,
.Fn X509_STORE_set_purpose ,
.Fn X509_STORE_set_trust ,
and
.Fn X509_STORE_set_ex_data
return 1 for success or 0 for failure.
.Pp
.Fn X509_STORE_set_flags
and
.Fn X509_STORE_set_depth
always return 1, indicating success.
.Pp
.Fn X509_STORE_add_cert
and
.Fn X509_STORE_add_crl
return 1 for success or 0 for failure.
For example, they fail if
.Fa x
or
.Fa crl
is a
.Dv NULL
pointer, if a certificate with the same subject name as
.Fa x
or a revocation list with the same issuer name as
.Fa crl
are already contained in the
.Fa store ,
or if memory allocation fails.
.Pp
.Fn X509_STORE_get0_objects
returns an internal pointer to the stack of certificates, revocation lists,
and private keys contained in the
.Fa store .
The returned pointer must not be freed by the calling application.
.Pp
.Fn X509_STORE_get_ex_new_index
returns a new index or \-1 on failure.
.Pp
.Fn X509_STORE_get_ex_data
returns the application data or
.Dv NULL
on failure.
.Sh SEE ALSO
.Xr SSL_set1_param 3 ,
.Xr X509_OBJECT_get0_X509 3 ,
.Xr X509_STORE_CTX_set0_param 3 ,
.Xr X509_STORE_load_locations 3 ,
.Xr X509_STORE_new 3 ,
.Xr X509_VERIFY_PARAM_set_flags 3
.Sh HISTORY
.Fn X509_STORE_add_cert
appeared before SSLeay 0.8.
.Fn X509_STORE_add_crl
first appeared in SSLeay 0.9.0.
These functions have been available since
.Ox 2.4 .
.Pp
.Fn X509_STORE_set_flags ,
.Fn X509_STORE_set_purpose ,
and
.Fn X509_STORE_set_trust
first appeared in OpenSSL 0.9.7 and have been available since
.Ox 3.2 .
.Pp
.Fn X509_STORE_set1_param
and
.Fn X509_STORE_set_depth
first appeared in OpenSSL 0.9.8 and have been available since
.Ox 4.5 .
.Pp
.Fn X509_STORE_get0_objects ,
.Fn X509_STORE_get_ex_new_index ,
.Fn X509_STORE_set_ex_data ,
and
.Fn X509_STORE_get_ex_data
first appeared in OpenSSL 1.1.0 and have been available since
.Ox 6.3 .
Changes to jni/libressl/man/X509_STORE_set_verify_cb_func.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: X509_STORE_set_verify_cb_func.3,v 1.4 2016/12/10 20:34:57 schwarze Exp $
.\"	OpenSSL 05ea606a May 20 20:52:46 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2009 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: X509_STORE_set_verify_cb_func.3,v 1.7 2018/03/23 23:18:17 schwarze Exp $
.\"	OpenSSL 05ea606a May 20 20:52:46 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2009 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 10 2016 $
.Dt X509_STORE_SET_VERIFY_CB_FUNC 3
.Os
.Sh NAME
.Nm X509_STORE_set_verify_cb ,
.Nm X509_STORE_set_verify_cb_func
.Nd set verification callback
.Sh SYNOPSIS







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt X509_STORE_SET_VERIFY_CB_FUNC 3
.Os
.Sh NAME
.Nm X509_STORE_set_verify_cb ,
.Nm X509_STORE_set_verify_cb_func
.Nd set verification callback
.Sh SYNOPSIS
88
89
90
91
92
93
94
95

96
97
98

99
100
101

102
103
104
is otherwise inaccessible (for example during S/MIME verification).
.Sh RETURN VALUES
.Fn X509_STORE_set_verify_cb
and
.Fn X509_STORE_set_verify_cb_func
do not return a value.
.Sh SEE ALSO
.Xr X509_STORE_CTX_set_verify_cb 3

.Sh HISTORY
.Fn X509_STORE_set_verify_cb_func
is available in all versions of SSLeay and OpenSSL.

.Pp
.Fn X509_STORE_set_verify_cb
was added to OpenSSL 1.0.0.

.Sh BUGS
The macro version of this function was the only one available before
OpenSSL 1.0.0.







|
>


|
>


|
>



88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
is otherwise inaccessible (for example during S/MIME verification).
.Sh RETURN VALUES
.Fn X509_STORE_set_verify_cb
and
.Fn X509_STORE_set_verify_cb_func
do not return a value.
.Sh SEE ALSO
.Xr X509_STORE_CTX_set_verify_cb 3 ,
.Xr X509_STORE_new 3
.Sh HISTORY
.Fn X509_STORE_set_verify_cb_func
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
.Pp
.Fn X509_STORE_set_verify_cb
first appeared in OpenSSL 1.0.0 and has been available since
.Ox 4.9 .
.Sh BUGS
The macro version of this function was the only one available before
OpenSSL 1.0.0.
Changes to jni/libressl/man/X509_VERIFY_PARAM_set_flags.3.
1
2

3

















4


5
6
7
8
9
10
11
12
.\"	$OpenBSD: X509_VERIFY_PARAM_set_flags.3,v 1.5 2017/01/06 21:30:27 schwarze Exp $
.\"	OpenSSL 2b4ffc65 Dec 23 19:28:30 2013 +0100

.\"

















.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.


.\" Copyright (c) 2009, 2013 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
|
|
>

>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
>
>
|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
.\" $OpenBSD: X509_VERIFY_PARAM_set_flags.3,v 1.12 2018/03/23 14:26:40 schwarze Exp $
.\" full merge up to: OpenSSL d33def66 Feb 9 14:17:13 2016 -0500
.\" selective merge up to: OpenSSL 48e5119a Jan 19 10:49:22 2018 +0100
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2018 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" The original file was written by Dr. Stephen Henson <steve@openssl.org>
.\" and Viktor Dukhovni <viktor@dukhovni.org>.
.\" Copyright (c) 2009, 2013, 2014, 2015, 2016, 2017 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
44
45
46
47
48
49
50
51
52
53
54




55
56
57
58
59
60
61
62
63
64












65
66
67

















68
69
70
71
72
73
74
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: January 6 2017 $
.Dt X509_VERIFY_PARAM_SET_FLAGS 3
.Os
.Sh NAME




.Nm X509_VERIFY_PARAM_set_flags ,
.Nm X509_VERIFY_PARAM_clear_flags ,
.Nm X509_VERIFY_PARAM_get_flags ,
.Nm X509_VERIFY_PARAM_set_purpose ,
.Nm X509_VERIFY_PARAM_set_trust ,
.Nm X509_VERIFY_PARAM_set_time ,
.Nm X509_VERIFY_PARAM_add0_policy ,
.Nm X509_VERIFY_PARAM_set1_policies ,
.Nm X509_VERIFY_PARAM_set_depth ,
.Nm X509_VERIFY_PARAM_get_depth












.Nd X509 verification parameters
.Sh SYNOPSIS
.In openssl/x509_vfy.h

















.Ft int
.Fo X509_VERIFY_PARAM_set_flags
.Fa "X509_VERIFY_PARAM *param"
.Fa "unsigned long flags"
.Fc
.Ft int
.Fo X509_VERIFY_PARAM_clear_flags







|



>
>
>
>









|
>
>
>
>
>
>
>
>
>
>
>
>



>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt X509_VERIFY_PARAM_SET_FLAGS 3
.Os
.Sh NAME
.Nm X509_VERIFY_PARAM_new ,
.Nm X509_VERIFY_PARAM_free ,
.Nm X509_VERIFY_PARAM_get0_name ,
.Nm X509_VERIFY_PARAM_set1_name ,
.Nm X509_VERIFY_PARAM_set_flags ,
.Nm X509_VERIFY_PARAM_clear_flags ,
.Nm X509_VERIFY_PARAM_get_flags ,
.Nm X509_VERIFY_PARAM_set_purpose ,
.Nm X509_VERIFY_PARAM_set_trust ,
.Nm X509_VERIFY_PARAM_set_time ,
.Nm X509_VERIFY_PARAM_add0_policy ,
.Nm X509_VERIFY_PARAM_set1_policies ,
.Nm X509_VERIFY_PARAM_set_depth ,
.Nm X509_VERIFY_PARAM_get_depth ,
.Nm X509_VERIFY_PARAM_set1_host ,
.Nm X509_VERIFY_PARAM_add1_host ,
.Nm X509_VERIFY_PARAM_set_hostflags ,
.Nm X509_VERIFY_PARAM_get0_peername ,
.Nm X509_VERIFY_PARAM_set1_email ,
.Nm X509_VERIFY_PARAM_set1_ip ,
.Nm X509_VERIFY_PARAM_set1_ip_asc ,
.Nm X509_VERIFY_PARAM_add0_table ,
.Nm X509_VERIFY_PARAM_lookup ,
.Nm X509_VERIFY_PARAM_get_count ,
.Nm X509_VERIFY_PARAM_get0 ,
.Nm X509_VERIFY_PARAM_table_cleanup
.Nd X509 verification parameters
.Sh SYNOPSIS
.In openssl/x509_vfy.h
.Ft X509_VERIFY_PARAM *
.Fo X509_VERIFY_PARAM_new
.Fa void
.Fc
.Ft void
.Fo X509_VERIFY_PARAM_free
.Fa "X509_VERIFY_PARAM *param"
.Fc
.Ft const char *
.Fo X509_VERIFY_PARAM_get0_name
.Fa "const X509_VERIFY_PARAM *param"
.Fc
.Ft int
.Fo X509_VERIFY_PARAM_set1_name
.Fa "X509_VERIFY_PARAM *param"
.Fa "const char *name"
.Fc
.Ft int
.Fo X509_VERIFY_PARAM_set_flags
.Fa "X509_VERIFY_PARAM *param"
.Fa "unsigned long flags"
.Fc
.Ft int
.Fo X509_VERIFY_PARAM_clear_flags
109
110
111
112
113
114
115


























































116
117
118
119
120






























121










122
123
124
125
126
127
128
129
130
.Fa "X509_VERIFY_PARAM *param"
.Fa "int depth"
.Fc
.Ft int
.Fo X509_VERIFY_PARAM_get_depth
.Fa "const X509_VERIFY_PARAM *param"
.Fc


























































.Sh DESCRIPTION
These functions manipulate the
.Vt X509_VERIFY_PARAM
structure associated with a certificate verification operation.
.Pp






























The










.Fn X509_VERIFY_PARAM_set_flags
function sets the flags in
.Fa param
by OR'ing it with
.Fa flags .
See the
.Sx VERIFICATION FLAGS
section for a complete description of values the
.Fa flags







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

|

|

>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
>
>
>
>
>
>
>
>
>
>

|







162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
.Fa "X509_VERIFY_PARAM *param"
.Fa "int depth"
.Fc
.Ft int
.Fo X509_VERIFY_PARAM_get_depth
.Fa "const X509_VERIFY_PARAM *param"
.Fc
.Ft int
.Fo X509_VERIFY_PARAM_set1_host
.Fa "X509_VERIFY_PARAM *param"
.Fa "const char *name"
.Fa "size_t namelen"
.Fc
.Ft int
.Fo X509_VERIFY_PARAM_add1_host
.Fa "X509_VERIFY_PARAM *param"
.Fa "const char *name"
.Fa "size_t namelen"
.Fc
.Ft void
.Fo X509_VERIFY_PARAM_set_hostflags
.Fa "X509_VERIFY_PARAM *param"
.Fa "unsigned int flags"
.Fc
.Ft char *
.Fo X509_VERIFY_PARAM_get0_peername
.Fa "X509_VERIFY_PARAM *param"
.Fc
.Ft int
.Fo X509_VERIFY_PARAM_set1_email
.Fa "X509_VERIFY_PARAM *param"
.Fa "const char *email"
.Fa "size_t emaillen"
.Fc
.Ft int
.Fo X509_VERIFY_PARAM_set1_ip
.Fa "X509_VERIFY_PARAM *param"
.Fa "const unsigned char *ip"
.Fa "size_t iplen"
.Fc
.Ft int
.Fo X509_VERIFY_PARAM_set1_ip_asc
.Fa "X509_VERIFY_PARAM *param"
.Fa "const char *ipasc"
.Fc
.Ft int
.Fo X509_VERIFY_PARAM_add0_table
.Fa "X509_VERIFY_PARAM *param"
.Fc
.Ft const X509_VERIFY_PARAM *
.Fo X509_VERIFY_PARAM_lookup
.Fa "const char *name"
.Fc
.Ft int
.Fo X509_VERIFY_PARAM_get_count
.Fa void
.Fc
.Ft const X509_VERIFY_PARAM *
.Fo X509_VERIFY_PARAM_get0
.Fa "int id"
.Fc
.Ft void
.Fo X509_VERIFY_PARAM_table_cleanup
.Fa void
.Fc
.Sh DESCRIPTION
These functions manipulate an
.Vt X509_VERIFY_PARAM
object associated with a certificate verification operation.
.Pp
.Fn X509_VERIFY_PARAM_new
allocates and initializes an empty
.Vt X509_VERIFY_PARAM
object.
.Pp
.Fn X509_VERIFY_PARAM_free
clears all data contained in
.Fa param
and releases all memory used by it.
If
.Fa param
is a
.Dv NULL
pointer, no action occurs.
.Pp
.Fn X509_VERIFY_PARAM_get0_name
returns the name of the given
.Fa param
object, usually describing its purpose, for example
.Qq default ,
.Qq pkcs7 ,
.Qq smime_sign ,
.Qq ssl_client ,
or
.Qq ssl_server .
For user-defined objects, the returned pointer may be
.Dv NULL
even if the object is otherwise valid.
.Pp
.Fn X509_VERIFY_PARAM_set1_name
sets the name of
.Fa param
to a copy of
.Fa name ,
or to
.Dv NULL
if
.Fa name
is
.Dv NULL .
.Pp
.Fn X509_VERIFY_PARAM_set_flags
sets the flags in
.Fa param
by OR'ing it with
.Fa flags .
See the
.Sx VERIFICATION FLAGS
section for a complete description of values the
.Fa flags
178
179
180
181
182
183
184


































































































































185






186
187
188
189
190






191
192
193
194
195
196
197
198



199
200
201



202










203


204
205
206
207
208
209
210
211
to clear an existing policy set.
.Pp
.Fn X509_VERIFY_PARAM_set_depth
sets the maximum verification depth to
.Fa depth .
That is the maximum number of untrusted CA certificates that can appear
in a chain.


































































































































.Sh RETURN VALUES






.Fn X509_VERIFY_PARAM_set_flags ,
.Fn X509_VERIFY_PARAM_clear_flags ,
.Fn X509_VERIFY_PARAM_set_purpose ,
.Fn X509_VERIFY_PARAM_set_trust ,
.Fn X509_VERIFY_PARAM_add0_policy ,






and
.Fn X509_VERIFY_PARAM_set1_policies
return 1 for success or 0 for failure.
.Pp
.Fn X509_VERIFY_PARAM_get_flags
returns the current verification flags.
.Pp
.Fn X509_VERIFY_PARAM_set_time



and
.Fn X509_VERIFY_PARAM_set_depth
do not return values.



.Pp










.Fn X509_VERIFY_PARAM_get_depth


returns the current verification depth.
.Sh VERIFICATION FLAGS
The verification flags consists of zero or more of the following
flags OR'ed together.
.Pp
.Dv X509_V_FLAG_CRL_CHECK
enables CRL checking for the certificate chain leaf certificate.
An error occurs if a suitable CRL cannot be found.







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

>
>
>
>
>
>





>
>
>
>
>
>

|





|
>
>
>

|
|
>
>
>

>
>
>
>
>
>
>
>
>
>
|
>
>
|







329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
to clear an existing policy set.
.Pp
.Fn X509_VERIFY_PARAM_set_depth
sets the maximum verification depth to
.Fa depth .
That is the maximum number of untrusted CA certificates that can appear
in a chain.
.Pp
.Fn X509_VERIFY_PARAM_set1_host
sets the expected DNS hostname to
.Fa name
clearing any previously specified host name or names.
If
.Fa name
is
.Dv NULL
or empty, the list of hostnames is cleared, and name checks are not
performed on the peer certificate.
If
.Fa name
is NUL-terminated,
.Fa namelen
may be zero, otherwise
.Fa namelen
must be set to the length of
.Fa name .
When a hostname is specified, certificate verification automatically
invokes
.Xr X509_check_host 3
with flags equal to the
.Fa flags
argument given to
.Fn X509_VERIFY_PARAM_set_hostflags
(default zero).
.Pp
.Fn X509_VERIFY_PARAM_add1_host
adds
.Fa name
as an additional reference identifier that can match the peer's
certificate.
Any previous names set via
.Fn X509_VERIFY_PARAM_set1_host
and
.Fn X509_VERIFY_PARAM_add1_host
are retained.
No change is made if
.Fa name
is
.Dv NULL
or empty.
When multiple names are configured, the peer is considered verified when
any name matches.
.Pp
.Fn X509_VERIFY_PARAM_get0_peername
returns the DNS hostname or subject CommonName from the peer certificate
that matched one of the reference identifiers.
When wildcard matching is not disabled, or when a reference identifier
specifies a parent domain (starts with ".") rather than a hostname, the
peer name may be a wildcard name or a sub-domain of the reference
identifier respectively.
.Pp
.Fn X509_VERIFY_PARAM_set1_email
sets the expected RFC822 email address to
.Fa email .
If
.Fa email
is NUL-terminated,
.Fa emaillen
may be zero, otherwise
.Fa emaillen
must be set to the length of
.Fa email .
When an email address is specified, certificate verification
automatically invokes
.Xr X509_check_email 3 .
.Pp
.Fn X509_VERIFY_PARAM_set1_ip
sets the expected IP address to
.Fa ip .
The
.Fa ip
argument is in binary format, in network byte-order, and
.Fa iplen
must be set to 4 for IPv4 and 16 for IPv6.
When an IP address is specified,
certificate verification automatically invokes
.Xr X509_check_ip 3 .
.Pp
.Fn X509_VERIFY_PARAM_set1_ip_asc
sets the expected IP address to
.Fa ipasc .
The
.Fa ipasc
argument is a NUL-terminal ASCII string:
dotted decimal quad for IPv4 and colon-separated hexadecimal for IPv6.
The condensed "::" notation is supported for IPv6 addresses.
.Pp
.Fn X509_VERIFY_PARAM_add0_table
adds
.Fa param
to a static list of
.Vt X509_VERIFY_PARAM
objects maintained by the library.
This function is extremely dangerous because contrary to the name
of the function, if the list already contains an object that happens
to have the same name, that old object is not only silently removed
from the list, but also silently freed, which may silently invalidate
various pointers existing elsewhere in the program.
.Pp
.Fn X509_VERIFY_PARAM_lookup
searches this list for an object of the given
.Fa name .
If no match is found, the predefined objects built-in to the library
are also inspected.
.Pp
.Fn X509_VERIFY_PARAM_get_count
returns the sum of the number of objects on this list and the number
of predefined objects built-in to the library.
Note that this is not necessarily the total number of
.Vt X509_VERIFY_PARAM
objects existing in the program because there may be additional such
objects that were never added to the list.
.Pp
.Fn X509_VERIFY_PARAM_get0
accesses predefined and user-defined objects using
.Fa id
as an index, useful for looping over objects without knowing their names.
An argument less than the number of predefined objects selects
one of the predefined objects; a higher argument selects an object
from the list.
.Pp
.Fn X509_VERIFY_PARAM_table_cleanup
deletes all objects from this list.
It is extremely dangerous because it also invalidates all data that
was contained in all objects that were on the list and because it
frees all these objects, which may invalidate various pointers
existing elsewhere in the program.
.Sh RETURN VALUES
.Fn X509_VERIFY_PARAM_new
returns a pointer to the new object, or
.Dv NULL
on allocation failure.
.Pp
.Fn X509_VERIFY_PARAM_set1_name ,
.Fn X509_VERIFY_PARAM_set_flags ,
.Fn X509_VERIFY_PARAM_clear_flags ,
.Fn X509_VERIFY_PARAM_set_purpose ,
.Fn X509_VERIFY_PARAM_set_trust ,
.Fn X509_VERIFY_PARAM_add0_policy ,
.Fn X509_VERIFY_PARAM_set1_policies ,
.Fn X509_VERIFY_PARAM_set1_host ,
.Fn X509_VERIFY_PARAM_add1_host ,
.Fn X509_VERIFY_PARAM_set1_email ,
.Fn X509_VERIFY_PARAM_set1_ip ,
.Fn X509_VERIFY_PARAM_set1_ip_asc ,
and
.Fn X509_VERIFY_PARAM_add0_table
return 1 for success or 0 for failure.
.Pp
.Fn X509_VERIFY_PARAM_get_flags
returns the current verification flags.
.Pp
.Fn X509_VERIFY_PARAM_get_depth
returns the current verification depth.
.Pp
.Fn X509_VERIFY_PARAM_get0_name
and
.Fn X509_VERIFY_PARAM_get0_peername
return pointers to strings that are only valid
during the lifetime of the given
.Fa param
object and that must not be freed by the application program.
.Pp
.Fn X509_VERIFY_PARAM_lookup
and
.Fn X509_VERIFY_PARAM_get0
return a pointer to an existing built-in or user-defined object, or
.Dv NULL
if no object with the given
.Fa name
is found, or if
.Fa id
is at least
.Fn X509_VERIFY_PARAM_get_count .
.Pp
.Fn X509_VERIFY_PARAM_get_count
returns a number of objects.
.Sh VERIFICATION FLAGS
The verification flags consists of zero or more of the following
flags OR'ed together.
.Pp
.Dv X509_V_FLAG_CRL_CHECK
enables CRL checking for the certificate chain leaf certificate.
An error occurs if a suitable CRL cannot be found.
284
285
286
287
288
289
290








































291
292
293
294
295
296
297
298

299
300
301
302
303
304




305





































306
307
308
309
310
311
312
313
314
315
316
317
It is
.Sy not
needed unless you are logging certificate verification.
If this flag is set then additional status codes will be sent to the
verification callback and it
.Sy must
be prepared to handle such cases without assuming they are hard errors.








































.Sh EXAMPLES
Enable CRL checking when performing certificate verification during
SSL connections associated with an
.Vt SSL_CTX
structure
.Fa ctx :
.Bd -literal -offset indent
X509_VERIFY_PARAM *param;

param = X509_VERIFY_PARAM_new();
X509_VERIFY_PARAM_set_flags(param, X509_V_FLAG_CRL_CHECK);
SSL_CTX_set1_param(ctx, param);
X509_VERIFY_PARAM_free(param);
.Ed
.Sh SEE ALSO




.Xr X509_verify_cert 3





































.Sh BUGS
Delta CRL checking is currently primitive.
Only a single delta can be used and (partly due to limitations of
.Vt X509_STORE )
constructed CRLs are not maintained.
.Pp
If CRLs checking is enabled, CRLs are expected to be available in
the corresponding
.Vt X509_STORE
structure.
No attempt is made to download CRLs from the CRL distribution points
extension.







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>








>






>
>
>
>

>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>












595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
It is
.Sy not
needed unless you are logging certificate verification.
If this flag is set then additional status codes will be sent to the
verification callback and it
.Sy must
be prepared to handle such cases without assuming they are hard errors.
.Pp
When
.Dv X509_V_FLAG_TRUSTED_FIRST
is set, construction of the certificate chain in
.Xr X509_verify_cert 3
will search the trust store for issuer certificates before searching the
provided untrusted certificates.
Local issuer certificates are often more likely to satisfy local
security requirements and lead to a locally trusted root.
This is especially important when some certificates in the trust store
have explicit trust settings; see the trust settings options of the
.Cm x509
command in
.Xr openssl 1 .
.Pp
The
.Dv X509_V_FLAG_NO_ALT_CHAINS
flag suppresses checking for alternative chains.
By default, unless
.Dv X509_V_FLAG_TRUSTED_FIRST
is set, when building a certificate chain, if the first certificate
chain found is not trusted, then OpenSSL will attempt to replace
untrusted certificates supplied by the peer with certificates from the
trust store to see if an alternative chain can be found that is trusted.
.Pp
The
.Dv X509_V_FLAG_PARTIAL_CHAIN
flag causes intermediate certificates in the trust store to be treated
as trust-anchors, in the same way as the self-signed root CA
certificates.
This makes it possible to trust certificates issued by an intermediate
CA without having to trust its ancestor root CA.
.Pp
The
.Dv X509_V_FLAG_NO_CHECK_TIME
flag suppresses checking the validity period of certificates and CRLs
against the current time.
If
.Fn X509_VERIFY_PARAM_set_time
is used to specify a verification time, the check is not suppressed.
.Sh EXAMPLES
Enable CRL checking when performing certificate verification during
SSL connections associated with an
.Vt SSL_CTX
structure
.Fa ctx :
.Bd -literal -offset indent
X509_VERIFY_PARAM *param;

param = X509_VERIFY_PARAM_new();
X509_VERIFY_PARAM_set_flags(param, X509_V_FLAG_CRL_CHECK);
SSL_CTX_set1_param(ctx, param);
X509_VERIFY_PARAM_free(param);
.Ed
.Sh SEE ALSO
.Xr SSL_set1_param 3 ,
.Xr X509_check_host 3 ,
.Xr X509_STORE_CTX_set0_param 3 ,
.Xr X509_STORE_set1_param 3 ,
.Xr X509_verify_cert 3
.Sh HISTORY
.Fn X509_VERIFY_PARAM_new ,
.Fn X509_VERIFY_PARAM_free ,
.Fn X509_VERIFY_PARAM_set1_name ,
.Fn X509_VERIFY_PARAM_set_flags ,
.Fn X509_VERIFY_PARAM_set_purpose ,
.Fn X509_VERIFY_PARAM_set_trust ,
.Fn X509_VERIFY_PARAM_set_time ,
.Fn X509_VERIFY_PARAM_add0_policy ,
.Fn X509_VERIFY_PARAM_set1_policies ,
.Fn X509_VERIFY_PARAM_set_depth ,
.Fn X509_VERIFY_PARAM_get_depth ,
.Fn X509_VERIFY_PARAM_add0_table ,
.Fn X509_VERIFY_PARAM_lookup ,
and
.Fn X509_VERIFY_PARAM_table_cleanup
first appeared in OpenSSL 0.9.8.
.Fn X509_VERIFY_PARAM_clear_flags
and
.Fn X509_VERIFY_PARAM_get_flags
first appeared in OpenSSL 0.9.8a.
All these functions have been available since
.Ox 4.5 .
.Pp
.Fn X509_VERIFY_PARAM_get0_name
.Fn X509_VERIFY_PARAM_set1_host ,
.Fn X509_VERIFY_PARAM_add1_host ,
.Fn X509_VERIFY_PARAM_set_hostflags ,
.Fn X509_VERIFY_PARAM_get0_peername ,
.Fn X509_VERIFY_PARAM_set1_email ,
.Fn X509_VERIFY_PARAM_set1_ip ,
.Fn X509_VERIFY_PARAM_set1_ip_asc ,
.Fn X509_VERIFY_PARAM_get_count ,
and
.Fn X509_VERIFY_PARAM_get0
first appeared in OpenSSL 1.0.2 and have been available since
.Ox 6.3 .
.Sh BUGS
Delta CRL checking is currently primitive.
Only a single delta can be used and (partly due to limitations of
.Vt X509_STORE )
constructed CRLs are not maintained.
.Pp
If CRLs checking is enabled, CRLs are expected to be available in
the corresponding
.Vt X509_STORE
structure.
No attempt is made to download CRLs from the CRL distribution points
extension.
Changes to jni/libressl/man/X509_check_ca.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: X509_check_ca.3,v 1.3 2017/01/06 19:19:54 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Victor B. Wagner <vitus@cryptocom.ru>.
.\" Copyright (c) 2015, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: X509_check_ca.3,v 1.4 2018/03/22 22:07:12 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Victor B. Wagner <vitus@cryptocom.ru>.
.\" Copyright (c) 2015, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: January 6 2017 $
.Dt X509_CHECK_CA 3
.Os
.Sh NAME
.Nm X509_check_ca
.Nd check whether a certificate is a CA certificate
.Sh SYNOPSIS
.In openssl/x509v3.h







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt X509_CHECK_CA 3
.Os
.Sh NAME
.Nm X509_check_ca
.Nd check whether a certificate is a CA certificate
.Sh SYNOPSIS
.In openssl/x509v3.h
86
87
88
89
90
91
92




.It 5
a certificate with an outdated Netscape Certificate Type extension telling
that it is a CA certificate
.El
.Sh SEE ALSO
.Xr X509_check_issued 3 ,
.Xr X509_verify_cert 3











>
>
>
>
86
87
88
89
90
91
92
93
94
95
96
.It 5
a certificate with an outdated Netscape Certificate Type extension telling
that it is a CA certificate
.El
.Sh SEE ALSO
.Xr X509_check_issued 3 ,
.Xr X509_verify_cert 3
.Sh HISTORY
.Fn X509_check_ca
first appeared in OpenSSL 0.9.7f and has been available since
.Ox 3.8 .
Changes to jni/libressl/man/X509_check_host.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: X509_check_host.3,v 1.2 2016/12/05 16:38:24 jmc Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Florian Weimer <fweimer@redhat.com> and
.\" Viktor Dukhovni <openssl-users@dukhovni.org>.
.\" Copyright (c) 2012, 2014, 2015, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: X509_check_host.3,v 1.3 2018/03/23 14:26:40 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Florian Weimer <fweimer@redhat.com> and
.\" Viktor Dukhovni <openssl-users@dukhovni.org>.
.\" Copyright (c) 2012, 2014, 2015, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 5 2016 $
.Dt X509_CHECK_HOST 3
.Os
.Sh NAME
.Nm X509_check_host ,
.Nm X509_check_email ,
.Nm X509_check_ip ,
.Nm X509_check_ip_asc







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt X509_CHECK_HOST 3
.Os
.Sh NAME
.Nm X509_check_host ,
.Nm X509_check_email ,
.Nm X509_check_ip ,
.Nm X509_check_ip_asc
229
230
231
232
233
234
235
236


All functions can also return -2 if the input is malformed.
For example,
.Fn X509_check_host
returns -2 if the provided
.Fa name
contains embedded NUL bytes.
.Sh HISTORY
These functions were added in OpenSSL 1.0.2.









|
>
>
229
230
231
232
233
234
235
236
237
238
All functions can also return -2 if the input is malformed.
For example,
.Fn X509_check_host
returns -2 if the provided
.Fa name
contains embedded NUL bytes.
.Sh HISTORY
These functions first appeared in OpenSSL 1.0.2
and have been available since
.Ox 6.1 .
Changes to jni/libressl/man/X509_check_issued.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: X509_check_issued.3,v 1.2 2016/12/05 16:38:24 jmc Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Victor B. Wagner <vitus@cryptocom.ru>.
.\" Copyright (c) 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: X509_check_issued.3,v 1.3 2018/03/22 17:11:04 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Victor B. Wagner <vitus@cryptocom.ru>.
.\" Copyright (c) 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 5 2016 $
.Dt X509_CHECK_ISSUED 3
.Os
.Sh NAME
.Nm X509_check_issued
.Nd check whether a certificate was issued using a given CA certificate
.Sh SYNOPSIS
.In openssl/x509v3.h







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt X509_CHECK_ISSUED 3
.Os
.Sh NAME
.Nm X509_check_issued
.Nd check whether a certificate was issued using a given CA certificate
.Sh SYNOPSIS
.In openssl/x509v3.h
98
99
100
101
102
103
104




.Fa issuer ,
or some
.Dv X509_V_ERR*
constant to indicate an error.
.Sh SEE ALSO
.Xr X509_check_ca 3 ,
.Xr X509_verify_cert 3











>
>
>
>
98
99
100
101
102
103
104
105
106
107
108
.Fa issuer ,
or some
.Dv X509_V_ERR*
constant to indicate an error.
.Sh SEE ALSO
.Xr X509_check_ca 3 ,
.Xr X509_verify_cert 3
.Sh HISTORY
.Fn X509_check_issued
first appeared in OpenSSL 0.9.6 and has been available since
.Ox 2.9 .
Changes to jni/libressl/man/X509_check_private_key.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
.\"	$OpenBSD: X509_check_private_key.3,v 1.1 2017/08/20 23:18:53 schwarze Exp $
.\"	OpenSSL X509_check_private_key.pod 09ddb878 Jun 5 03:56:07 2017 +0800
.\"
.\" Copyright (c) 2017 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: August 20 2017 $
.Dt X509_CHECK_PRIVATE_KEY 3
.Os
.Sh NAME
.Nm X509_check_private_key ,
.Nm X509_REQ_check_private_key
.Nd compare public key components
.Sh SYNOPSIS
|
















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
.\"	$OpenBSD: X509_check_private_key.3,v 1.3 2018/03/23 00:09:11 schwarze Exp $
.\"	OpenSSL X509_check_private_key.pod 09ddb878 Jun 5 03:56:07 2017 +0800
.\"
.\" Copyright (c) 2017 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt X509_CHECK_PRIVATE_KEY 3
.Os
.Sh NAME
.Nm X509_check_private_key ,
.Nm X509_REQ_check_private_key
.Nd compare public key components
.Sh SYNOPSIS
57
58
59
60
61
62
63








.Sh RETURN VALUES
These functions return 1 if the public key components and parameters
match, or 0 if they do not or if an error occurs.
On error or mismatch, a reason code can be obtained using
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr SSL_check_private_key 3















>
>
>
>
>
>
>
>
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
.Sh RETURN VALUES
These functions return 1 if the public key components and parameters
match, or 0 if they do not or if an error occurs.
On error or mismatch, a reason code can be obtained using
.Xr ERR_get_error 3 .
.Sh SEE ALSO
.Xr SSL_check_private_key 3
.Sh HISTORY
.Fn X509_check_private_key
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
.Pp
.Fn X509_REQ_check_private_key
first appeared in OpenSSL 0.9.8 and has been available since
.Ox 4.5 .
Changes to jni/libressl/man/X509_cmp_time.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: X509_cmp_time.3,v 1.4 2017/04/10 17:14:44 schwarze Exp $
.\"	OpenSSL X509_cmp_time.pod 24053693 Mar 28 14:27:37 2017 +0200
.\"
.\" This file was written by Emilia Kasper <emilia@openssl.org>
.\" Copyright (c) 2017 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: X509_cmp_time.3,v 1.7 2018/03/23 04:34:23 schwarze Exp $
.\"	OpenSSL X509_cmp_time.pod 24053693 Mar 28 14:27:37 2017 +0200
.\"
.\" This file was written by Emilia Kasper <emilia@openssl.org>
.\" Copyright (c) 2017 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: April 10 2017 $
.Dt X509_CMP_TIME 3
.Os
.Sh NAME
.Nm X509_cmp_time ,
.Nm X509_cmp_current_time ,
.Nm X509_time_adj_ex ,
.Nm X509_time_adj







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt X509_CMP_TIME 3
.Os
.Sh NAME
.Nm X509_cmp_time ,
.Nm X509_cmp_current_time ,
.Nm X509_time_adj_ex ,
.Nm X509_time_adj
133
134
135
136
137
138
139














.Vt ASN1_TIME
structure or
.Dv NULL
on error.
.Sh SEE ALSO
.Xr ASN1_time_parse 3 ,
.Xr time 3





















>
>
>
>
>
>
>
>
>
>
>
>
>
>
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
.Vt ASN1_TIME
structure or
.Dv NULL
on error.
.Sh SEE ALSO
.Xr ASN1_time_parse 3 ,
.Xr time 3
.Sh HISTORY
.Fn X509_cmp_current_time
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
.Pp
.Fn X509_cmp_time
and
.Fn X509_time_adj
first appeared in OpenSSL 0.9.6 and have been available since
.Ox 2.9 .
.Pp
.Fn X509_time_adj_ex
first appeared in OpenSSL 1.0.0 and has been available since
.Ox 4.9 .
Changes to jni/libressl/man/X509_digest.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: X509_digest.3,v 1.1 2017/03/25 22:21:21 schwarze Exp $
.\"	OpenSSL X509_digest.pod 3ba4dac6 Mar 23 13:04:52 2017 -0400
.\"
.\" This file was written by Rich Salz <rsalz@openssl.org>
.\" Copyright (c) 2017 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: X509_digest.3,v 1.5 2018/03/22 21:08:22 schwarze Exp $
.\"	OpenSSL X509_digest.pod 3ba4dac6 Mar 23 13:04:52 2017 -0400
.\"
.\" This file was written by Rich Salz <rsalz@openssl.org>
.\" Copyright (c) 2017 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 25 2017 $
.Dt X509_DIGEST 3
.Os
.Sh NAME
.Nm X509_digest ,
.Nm X509_CRL_digest ,
.Nm X509_pubkey_digest ,
.Nm X509_NAME_digest ,







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt X509_DIGEST 3
.Os
.Sh NAME
.Nm X509_digest ,
.Nm X509_CRL_digest ,
.Nm X509_pubkey_digest ,
.Nm X509_NAME_digest ,
127
128
129
130
131
132
133

















parameter, if not
.Dv NULL ,
points to a place where the digest size will be stored.
.Sh RETURN VALUES
These functions return 1 for success or 0 for failure.
.Sh SEE ALSO
.Xr EVP_get_digestbyname 3
























>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
parameter, if not
.Dv NULL ,
points to a place where the digest size will be stored.
.Sh RETURN VALUES
These functions return 1 for success or 0 for failure.
.Sh SEE ALSO
.Xr EVP_get_digestbyname 3
.Sh HISTORY
.Fn X509_digest ,
.Fn X509_NAME_digest ,
and
.Fn PKCS7_ISSUER_AND_SERIAL_digest
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp
.Fn X509_CRL_digest
and
.Fn X509_REQ_digest
first appeared in OpenSSL 0.9.6 and have been available since
.Ox 2.9 .
.Pp
.Fn X509_pubkey_digest
first appeared in OpenSSL 0.9.7 and has been available since
.Ox 3.2 .
Added jni/libressl/man/X509_get0_notBefore.3.




























































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
.\" $OpenBSD: X509_get0_notBefore.3,v 1.4 2018/03/23 23:18:17 schwarze Exp $
.\" content checked up to: OpenSSL 27b138e9 May 19 00:16:38 2017 +0000
.\"
.\" Copyright (c) 2018 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt X509_GET0_NOTBEFORE 3
.Os
.Sh NAME
.Nm X509_get0_notBefore ,
.Nm X509_get0_notAfter ,
.Nm X509_getm_notBefore ,
.Nm X509_getm_notAfter ,
.Nm X509_CRL_get0_lastUpdate ,
.Nm X509_CRL_get0_nextUpdate ,
.Nm X509_set1_notBefore ,
.Nm X509_set1_notAfter ,
.Nm X509_CRL_set1_lastUpdate ,
.Nm X509_CRL_set1_nextUpdate
.Nd get and set certificate and CRL validity dates
.Sh SYNOPSIS
.In openssl/x509.h
.Ft const ASN1_TIME *
.Fo X509_get0_notBefore
.Fa "const X509 *x"
.Fc
.Ft const ASN1_TIME *
.Fo X509_get0_notAfter
.Fa "const X509 *x"
.Fc
.Ft ASN1_TIME *
.Fo X509_getm_notBefore
.Fa "const X509 *x"
.Fc
.Ft ASN1_TIME *
.Fo X509_getm_notAfter
.Fa "const X509 *x"
.Fc
.Ft ASN1_TIME *
.Fo X509_CRL_get0_lastUpdate
.Fa "const X509_CRL *crl"
.Fc
.Ft ASN1_TIME *
.Fo X509_CRL_get0_nextUpdate
.Fa "const X509_CRL *crl"
.Fc
.Ft int
.Fo X509_set1_notBefore
.Fa "X509 *x"
.Fa "const ASN1_TIME *tm"
.Fc
.Ft int
.Fo X509_set1_notAfter
.Fa "X509 *x"
.Fa "const ASN1_TIME *tm"
.Fc
.Ft int
.Fo X509_CRL_set1_lastUpdate
.Fa "X509_CRL *crl"
.Fa "const ASN1_TIME *tm"
.Fc
.Ft int
.Fo X509_CRL_set1_nextUpdate
.Fa "X509_CRL *crl"
.Fa "const ASN1_TIME *tm"
.Fc
.Sh DESCRIPTION
.Fn X509_getm_notBefore
and
.Fn X509_getm_notAfter
return pointers to the
.Fa notBefore
and
.Fa notAfter
fields of the validity period of the certificate
.Fa x ,
respectively.
.Pp
.Fn X509_get0_notBefore
and
.Fn X509_get0_notAfter
are identical except for the const qualifier on the return type.
.Pp
.Fn X509_CRL_get0_lastUpdate
and
.Fn X509_CRL_get0_nextUpdate
return pointers to the
.Fa lastUpdate
and
.Fa nextUpdate
fields of
.Fa crl .
.Pp
.Fn X509_set1_notBefore ,
.Fn X509_set1_notAfter ,
.Fn X509_CRL_set1_lastUpdate ,
and
.Fn X509_CRL_set1_nextUpdate
set the
.Fa notBefore ,
.Fa notAfter ,
.Fa lastUpdate ,
or
.Fa nextUpdate
field of
.Fa x
or
.Fa crl ,
respectively, to a deep copy of
.Fa tm
and free the
.Vt ASN1_TIME
value that they replace.
.Sh RETURN VALUES
.Fn X509_get0_notBefore ,
.Fn X509_get0_notAfter ,
.Fn X509_getm_notBefore ,
.Fn X509_getm_notAfter ,
.Fn X509_CRL_get0_lastUpdate ,
and
.Fn X509_CRL_get0_nextUpdate
return internal pointers which must not be freed by the application, or
.Dv NULL
if the requested fields are not available.
.Pp
.Fn X509_set1_notBefore ,
.Fn X509_set1_notAfter ,
.Fn X509_CRL_set1_lastUpdate ,
and
.Fn X509_CRL_set1_nextUpdate
return 1 on success or 0 on failure.
.Sh SEE ALSO
.Xr ASN1_TIME_set 3 ,
.Xr ASN1_TIME_set_tm 3 ,
.Xr X509_cmp_time 3 ,
.Xr X509_CRL_get0_by_serial 3 ,
.Xr X509_CRL_new 3 ,
.Xr X509_get_subject_name 3 ,
.Xr X509_new 3 ,
.Xr X509_sign 3 ,
.Xr X509_VAL_new 3 ,
.Xr X509_verify_cert 3
.Sh HISTORY
These functions first appeared in OpenSSL 1.1.0
and have been available since
.Ox 6.3 .
Added jni/libressl/man/X509_get0_signature.3.




































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
.\" $OpenBSD: X509_get0_signature.3,v 1.5 2018/03/23 23:18:17 schwarze Exp $
.\" selective merge up to:
.\" OpenSSL man3/X509_get0_signature 2f7a2520 Apr 25 17:28:08 2017 +0100
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\"
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in
.\"    the documentation and/or other materials provided with the
.\"    distribution.
.\"
.\" 3. All advertising materials mentioning features or use of this
.\"    software must display the following acknowledgment:
.\"    "This product includes software developed by the OpenSSL Project
.\"    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
.\"
.\" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
.\"    endorse or promote products derived from this software without
.\"    prior written permission. For written permission, please contact
.\"    openssl-core@openssl.org.
.\"
.\" 5. Products derived from this software may not be called "OpenSSL"
.\"    nor may "OpenSSL" appear in their names without prior written
.\"    permission of the OpenSSL Project.
.\"
.\" 6. Redistributions of any form whatsoever must retain the following
.\"    acknowledgment:
.\"    "This product includes software developed by the OpenSSL Project
.\"    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
.\" EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
.\" ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt X509_GET0_SIGNATURE 3
.Os
.Sh NAME
.Nm X509_get0_signature ,
.Nm X509_REQ_get0_signature ,
.Nm X509_CRL_get0_signature ,
.Nm X509_get0_tbs_sigalg ,
.Nm X509_get_signature_nid ,
.Nm X509_REQ_get_signature_nid ,
.Nm X509_CRL_get_signature_nid
.Nd signature information
.Sh SYNOPSIS
.In openssl/x509.h
.Ft void
.Fo X509_get0_signature
.Fa "const ASN1_BIT_STRING **psig"
.Fa "const X509_ALGOR **palg"
.Fa "const X509 *x"
.Fc
.Ft void
.Fo X509_REQ_get0_signature
.Fa "const X509_REQ *req"
.Fa "const ASN1_BIT_STRING **psig"
.Fa "const X509_ALGOR **palg"
.Fc
.Ft void
.Fo X509_CRL_get0_signature
.Fa "const X509_CRL *crl"
.Fa "const ASN1_BIT_STRING **psig"
.Fa "const X509_ALGOR **palg"
.Fc
.Ft const X509_ALGOR *
.Fo X509_get0_tbs_sigalg
.Fa "const X509 *x"
.Fc
.Ft int
.Fo X509_get_signature_nid
.Fa "const X509 *x"
.Fc
.Ft int
.Fo X509_REQ_get_signature_nid
.Fa "const X509_REQ *req"
.Fc
.Ft int
.Fo X509_CRL_get_signature_nid
.Fa "const X509_CRL *crl"
.Fc
.Sh DESCRIPTION
.Fn X509_get0_signature ,
.Fn X509_REQ_get0_signature ,
and
.Fn X509_CRL_get0_signature
set
.Pf * Fa psig
to the signature and
.Pf * Fa palg
to the signature algorithm of
.Fa x ,
.Fa req ,
or
.Fa crl ,
respectively.
.Fn X509_get0_tbs_sigalg
returns the signature algorithm in the signed portion of
.Fa x .
The values returned are internal pointers
that must not be freed by the caller.
.Pp
.Fn X509_get_signature_nid ,
.Fn X509_REQ_get_signature_nid ,
and
.Fn X509_CRL_get_signature_nid
return the NID corresponding to the signature algorithm of
.Fa x ,
.Fa req ,
or
.Fa crl ,
respectively.
.Pp
These functions provide lower level access to the signature
for cases where an application wishes to analyse or generate a
signature in a form where
.Xr X509_sign 3
is not appropriate, for example in a non-standard or unsupported format.
.Sh SEE ALSO
.Xr OBJ_obj2nid 3 ,
.Xr X509_ALGOR_new 3 ,
.Xr X509_CRL_get0_by_serial 3 ,
.Xr X509_CRL_new 3 ,
.Xr X509_get_pubkey 3 ,
.Xr X509_get_subject_name 3 ,
.Xr X509_get_version 3 ,
.Xr X509_new 3 ,
.Xr X509_REQ_new 3 ,
.Xr X509_sign 3 ,
.Xr X509_verify_cert 3
.Sh HISTORY
.Fn X509_get0_signature
and
.Fn X509_get_signature_nid
first appeared in OpenSSL 1.0.2.
.Fn X509_REQ_get0_signature ,
.Fn X509_CRL_get0_signature ,
.Fn X509_get0_tbs_sigalg ,
.Fn X509_REQ_get_signature_nid ,
and
.Fn X509_CRL_get_signature_nid
first appeared in OpenSSL 1.1.0.
All these functions have been available since
.Ox 6.3 .
Changes to jni/libressl/man/X509_get_pubkey.3.
1
2
3
4
5
6
7
8
9
.\"	$OpenBSD: X509_get_pubkey.3,v 1.1 2016/12/05 18:24:08 schwarze Exp $
.\"	OpenSSL e7fabc5e Sep 7 13:41:20 2015 +0100
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
|
|







1
2
3
4
5
6
7
8
9
.\" $OpenBSD: X509_get_pubkey.3,v 1.4 2018/03/23 23:18:17 schwarze Exp $
.\" selective merge up to: OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
44
45
46
47
48
49
50
51
52
53
54
55

56
57
58
59
60
61
62
63
64
65
66




67
68
69
70
71
72
73
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 5 2016 $
.Dt X509_GET_PUBKEY 3
.Os
.Sh NAME
.Nm X509_get_pubkey ,

.Nm X509_set_pubkey ,
.Nm X509_get_X509_PUBKEY ,
.Nm X509_REQ_get_pubkey ,
.Nm X509_REQ_set_pubkey
.Nd get or set certificate or certificate request public key
.Sh SYNOPSIS
.In openssl/x509.h
.Ft EVP_PKEY *
.Fo X509_get_pubkey
.Fa "X509 *x"
.Fc




.Ft int
.Fo X509_set_pubkey
.Fa "X509 *x"
.Fa "EVP_PKEY *pkey"
.Fc
.Ft X509_PUBKEY *
.Fo X509_get_X509_PUBKEY







|




>











>
>
>
>







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt X509_GET_PUBKEY 3
.Os
.Sh NAME
.Nm X509_get_pubkey ,
.Nm X509_get0_pubkey ,
.Nm X509_set_pubkey ,
.Nm X509_get_X509_PUBKEY ,
.Nm X509_REQ_get_pubkey ,
.Nm X509_REQ_set_pubkey
.Nd get or set certificate or certificate request public key
.Sh SYNOPSIS
.In openssl/x509.h
.Ft EVP_PKEY *
.Fo X509_get_pubkey
.Fa "X509 *x"
.Fc
.Ft EVP_PKEY *
.Fo X509_get0_pubkey
.Fa "const X509 *x"
.Fc
.Ft int
.Fo X509_set_pubkey
.Fa "X509 *x"
.Fa "EVP_PKEY *pkey"
.Fc
.Ft X509_PUBKEY *
.Fo X509_get_X509_PUBKEY
86
87
88
89
90
91
92





93
94
95
96
97
98
99
.Fn X509_get_pubkey
attempts to decode the public key for certificate
.Fa x .
If successful it returns the public key as an
.Vt EVP_PKEY
pointer with its reference count incremented: this means the returned
key must be freed up after use.





.Pp
.Fn X509_get_X509_PUBKEY
returns an internal pointer to the
.Vt X509_PUBKEY
structure which encodes the certificate of
.Fa x .
The returned value must not be freed up after use.







>
>
>
>
>







91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
.Fn X509_get_pubkey
attempts to decode the public key for certificate
.Fa x .
If successful it returns the public key as an
.Vt EVP_PKEY
pointer with its reference count incremented: this means the returned
key must be freed up after use.
.Fn X509_get0_pubkey
is similar except that it does not increment the reference count
of the returned
.Vt EVP_PKEY ,
so it must not be freed up after use.
.Pp
.Fn X509_get_X509_PUBKEY
returns an internal pointer to the
.Vt X509_PUBKEY
structure which encodes the certificate of
.Fa x .
The returned value must not be freed up after use.
118
119
120
121
122
123
124

125
126
127
128
129
130
131
The first time a public key is decoded, the
.Vt EVP_PKEY
structure is cached in the certificate or certificate request itself.
Subsequent calls return the cached structure with its reference count
incremented to improve performance.
.Sh RETURN VALUES
.Fn X509_get_pubkey ,

.Fn X509_get_X509_PUBKEY ,
and
.Fn X509_REQ_get_pubkey
return a public key or
.Dv NULL
if an error occurred.
.Pp







>







128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
The first time a public key is decoded, the
.Vt EVP_PKEY
structure is cached in the certificate or certificate request itself.
Subsequent calls return the cached structure with its reference count
incremented to improve performance.
.Sh RETURN VALUES
.Fn X509_get_pubkey ,
.Fn X509_get0_pubkey ,
.Fn X509_get_X509_PUBKEY ,
and
.Fn X509_REQ_get_pubkey
return a public key or
.Dv NULL
if an error occurred.
.Pp
141
142
143
144
145
146
147













.Xr X509_NAME_ENTRY_get_object 3 ,
.Xr X509_NAME_get_index_by_NID 3 ,
.Xr X509_NAME_print_ex 3 ,
.Xr X509_new 3 ,
.Xr X509_sign 3 ,
.Xr X509_verify_cert 3 ,
.Xr X509V3_get_d2i 3




















>
>
>
>
>
>
>
>
>
>
>
>
>
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
.Xr X509_NAME_ENTRY_get_object 3 ,
.Xr X509_NAME_get_index_by_NID 3 ,
.Xr X509_NAME_print_ex 3 ,
.Xr X509_new 3 ,
.Xr X509_sign 3 ,
.Xr X509_verify_cert 3 ,
.Xr X509V3_get_d2i 3
.Sh HISTORY
.Fn X509_get_pubkey ,
.Fn X509_set_pubkey ,
.Fn X509_get_X509_PUBKEY ,
.Fn X509_REQ_get_pubkey ,
and
.Fn X509_REQ_set_pubkey
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp
.Fn X509_get0_pubkey
first appeared in OpenSSL 1.1.0 and has been available since
.Ox 6.3 .
Changes to jni/libressl/man/X509_get_serialNumber.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: X509_get_serialNumber.3,v 1.1 2016/12/05 18:24:08 schwarze Exp $
.\"	OpenSSL bb9ad09e Jun 6 00:43:05 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: X509_get_serialNumber.3,v 1.2 2018/03/21 03:16:08 schwarze Exp $
.\"	OpenSSL bb9ad09e Jun 6 00:43:05 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 5 2016 $
.Dt X509_GET_SERIALNUMBER 3
.Os
.Sh NAME
.Nm X509_get_serialNumber ,
.Nm X509_set_serialNumber
.Nd get or set certificate serial number
.Sh SYNOPSIS







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt X509_GET_SERIALNUMBER 3
.Os
.Sh NAME
.Nm X509_get_serialNumber ,
.Nm X509_set_serialNumber
.Nd get or set certificate serial number
.Sh SYNOPSIS
105
106
107
108
109
110
111
112

.Xr X509_sign 3 ,
.Xr X509_verify_cert 3 ,
.Xr X509V3_get_d2i 3
.Sh HISTORY
.Fn X509_get_serialNumber
and
.Fn X509_set_serialNumber
are available in all versions of OpenSSL.








|
>
105
106
107
108
109
110
111
112
113
.Xr X509_sign 3 ,
.Xr X509_verify_cert 3 ,
.Xr X509V3_get_d2i 3
.Sh HISTORY
.Fn X509_get_serialNumber
and
.Fn X509_set_serialNumber
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/X509_get_subject_name.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: X509_get_subject_name.3,v 1.2 2016/12/14 16:20:28 schwarze Exp $
.\"	OpenSSL 0ad69cd6 Jun 14 23:02:16 2016 +0200
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: X509_get_subject_name.3,v 1.5 2018/03/22 21:08:22 schwarze Exp $
.\"	OpenSSL 0ad69cd6 Jun 14 23:02:16 2016 +0200
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 14 2016 $
.Dt X509_GET_SUBJECT_NAME 3
.Os
.Sh NAME
.Nm X509_get_subject_name ,
.Nm X509_set_subject_name ,
.Nm X509_get_issuer_name ,
.Nm X509_set_issuer_name ,







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt X509_GET_SUBJECT_NAME 3
.Os
.Sh NAME
.Nm X509_get_subject_name ,
.Nm X509_set_subject_name ,
.Nm X509_get_issuer_name ,
.Nm X509_set_issuer_name ,
164
165
166
167
168
169
170


















.Xr X509_NAME_get_index_by_NID 3 ,
.Xr X509_NAME_new 3 ,
.Xr X509_NAME_print_ex 3 ,
.Xr X509_new 3 ,
.Xr X509_sign 3 ,
.Xr X509_verify_cert 3 ,
.Xr X509V3_get_d2i 3

























>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
.Xr X509_NAME_get_index_by_NID 3 ,
.Xr X509_NAME_new 3 ,
.Xr X509_NAME_print_ex 3 ,
.Xr X509_new 3 ,
.Xr X509_sign 3 ,
.Xr X509_verify_cert 3 ,
.Xr X509V3_get_d2i 3
.Sh HISTORY
.Fn X509_get_subject_name ,
.Fn X509_set_subject_name ,
.Fn X509_get_issuer_name ,
.Fn X509_set_issuer_name ,
.Fn X509_REQ_get_subject_name ,
and
.Fn X509_REQ_set_subject_name
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp
.Fn X509_CRL_get_issuer
first appeared in OpenSSL 0.9.2b and has been available since
.Ox 2.6 .
.Pp
.Fn X509_CRL_set_issuer_name
first appeared in OpenSSL 0.9.7 and has been available since
.Ox 3.2 .
Changes to jni/libressl/man/X509_get_version.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: X509_get_version.3,v 1.1 2016/12/05 18:24:08 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2015, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: X509_get_version.3,v 1.4 2018/03/22 21:08:22 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2015, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 5 2016 $
.Dt X509_GET_VERSION 3
.Os
.Sh NAME
.Nm X509_get_version ,
.Nm X509_set_version ,
.Nm X509_REQ_get_version ,
.Nm X509_REQ_set_version ,







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt X509_GET_VERSION 3
.Os
.Sh NAME
.Nm X509_get_version ,
.Nm X509_set_version ,
.Nm X509_REQ_get_version ,
.Nm X509_REQ_set_version ,
143
144
145
146
147
148
149
















.Xr X509_NAME_ENTRY_get_object 3 ,
.Xr X509_NAME_get_index_by_NID 3 ,
.Xr X509_NAME_print_ex 3 ,
.Xr X509_new 3 ,
.Xr X509_sign 3 ,
.Xr X509_verify_cert 3 ,
.Xr X509V3_get_d2i 3























>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
.Xr X509_NAME_ENTRY_get_object 3 ,
.Xr X509_NAME_get_index_by_NID 3 ,
.Xr X509_NAME_print_ex 3 ,
.Xr X509_new 3 ,
.Xr X509_sign 3 ,
.Xr X509_verify_cert 3 ,
.Xr X509V3_get_d2i 3
.Sh HISTORY
.Fn X509_get_version ,
.Fn X509_set_version ,
.Fn X509_REQ_get_version ,
and
.Fn X509_REQ_set_version
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp
.Fn X509_CRL_get_version
first appeared in OpenSSL 0.9.2b and has been available since
.Ox 2.6 .
.Pp
.Fn X509_CRL_set_version
first appeared in OpenSSL 0.9.7 and has been available since
.Ox 3.2 .
Changes to jni/libressl/man/X509_new.3.
1
2
3
4
5

6
7
8
9
10
11
12
.\"	$OpenBSD: X509_new.3,v 1.10 2016/12/25 22:15:10 schwarze Exp $
.\"	OpenSSL 3a59ad98 Dec 11 00:36:06 2015 +0000
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2002, 2006, 2015 The OpenSSL Project.  All rights reserved.

.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
|
|


|
>







1
2
3
4
5
6
7
8
9
10
11
12
13
.\" $OpenBSD: X509_new.3,v 1.14 2018/03/23 23:18:17 schwarze Exp $
.\" full merge up to: OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2002, 2006, 2015, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
44
45
46
47
48
49
50
51
52
53
54
55
56
57

58
59
60
61
62
63
64
65
66
67
68
69
70




71
72
73
74
75
76
77
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 25 2016 $
.Dt X509_NEW 3
.Os
.Sh NAME
.Nm X509_new ,
.Nm X509_free ,
.Nm X509_up_ref

.Nd X.509 certificate object
.Sh SYNOPSIS
.In openssl/x509.h
.Ft X509 *
.Fn X509_new void
.Ft void
.Fo X509_free
.Fa "X509 *a"
.Fc
.Ft int
.Fo X509_up_ref
.Fa "X509 *a"
.Fc




.Sh DESCRIPTION
.Fn X509_new
allocates and initializes an empty
.Vt X509
object with reference count 1.
It represents an ASN.1
.Vt Certificate







|





|
>













>
>
>
>







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt X509_NEW 3
.Os
.Sh NAME
.Nm X509_new ,
.Nm X509_free ,
.Nm X509_up_ref ,
.Nm X509_chain_up_ref
.Nd X.509 certificate object
.Sh SYNOPSIS
.In openssl/x509.h
.Ft X509 *
.Fn X509_new void
.Ft void
.Fo X509_free
.Fa "X509 *a"
.Fc
.Ft int
.Fo X509_up_ref
.Fa "X509 *a"
.Fc
.Ft STACK_OF(X509) *
.Fo X509_chain_up_ref
.Fa "STACK_OF(X509) *chain"
.Fc
.Sh DESCRIPTION
.Fn X509_new
allocates and initializes an empty
.Vt X509
object with reference count 1.
It represents an ASN.1
.Vt Certificate
89
90
91
92
93
94
95
96

97
98
99
100
101











102
103
104
105
106
107
108
109
110
111
112
113
114
115
116







117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135




136





137
138
139
140
141
142
143
144
145
.Fa a
is a
.Dv NULL
pointer, no action occurs.
.Pp
.Fn X509_up_ref
increments the reference count of
.Fa a .

This function is useful if a certificate structure is being used
by several different operations each of which will free it up after
use: this avoids the need to duplicate the entire certificate
structure.
.Pp











The object
.Vt X509_INFO ,
which can hold a certificate, the corresponding private key,
and a certificate revocation list, is not yet documented.
.Sh RETURN VALUES
If the allocation fails,
.Fn X509_new
returns
.Dv NULL
and sets an error code that can be obtained by
.Xr ERR_get_error 3 .
Otherwise it returns a pointer to the newly allocated structure.
.Pp
.Fn X509_up_ref
returns 1 for success or 0 for failure.







.Sh SEE ALSO
.Xr AUTHORITY_KEYID_new 3 ,
.Xr BASIC_CONSTRAINTS_new 3 ,
.Xr crypto 3 ,
.Xr d2i_X509 3 ,
.Xr ERR_get_error 3 ,
.Xr X509_ALGOR_new 3 ,
.Xr X509_CRL_new 3 ,
.Xr X509_EXTENSION_new 3 ,
.Xr X509_NAME_new 3 ,
.Xr X509_REQ_new 3 ,
.Xr X509_SIG_new 3
.Sh STANDARDS
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile
.Sh HISTORY
.Fn X509_new
and
.Fn X509_free




are available in all versions of SSLeay and OpenSSL.





.Sh BUGS
The X.509 public key infrastructure and its data types contain too
many design bugs to list them.
For lots of examples, see the classic
.Lk https://www.cs.auckland.ac.nz/~pgut001/pubs/x509guide.txt\
 "X.509 Style Guide"
that
.An Peter Gutmann
published in 2000.







|
>





>
>
>
>
>
>
>
>
>
>
>















>
>
>
>
>
>
>



















>
>
>
>
|
>
>
>
>
>









95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
.Fa a
is a
.Dv NULL
pointer, no action occurs.
.Pp
.Fn X509_up_ref
increments the reference count of
.Fa a
by 1.
This function is useful if a certificate structure is being used
by several different operations each of which will free it up after
use: this avoids the need to duplicate the entire certificate
structure.
.Pp
.Fn X509_chain_up_ref
performs a shallow copy of the given
.Fa chain
using
.Fn sk_X509_dup
and increments the reference count of each contained certificate
by 1.
Its purpose is similar to
.Fn X509_up_ref :
The returned chain persists after the original is freed.
.Pp
The object
.Vt X509_INFO ,
which can hold a certificate, the corresponding private key,
and a certificate revocation list, is not yet documented.
.Sh RETURN VALUES
If the allocation fails,
.Fn X509_new
returns
.Dv NULL
and sets an error code that can be obtained by
.Xr ERR_get_error 3 .
Otherwise it returns a pointer to the newly allocated structure.
.Pp
.Fn X509_up_ref
returns 1 for success or 0 for failure.
.Pp
.Fn X509_chain_up_ref
returns the copy of the
.Fa chain
or
.Dv NULL
if an error occurs.
.Sh SEE ALSO
.Xr AUTHORITY_KEYID_new 3 ,
.Xr BASIC_CONSTRAINTS_new 3 ,
.Xr crypto 3 ,
.Xr d2i_X509 3 ,
.Xr ERR_get_error 3 ,
.Xr X509_ALGOR_new 3 ,
.Xr X509_CRL_new 3 ,
.Xr X509_EXTENSION_new 3 ,
.Xr X509_NAME_new 3 ,
.Xr X509_REQ_new 3 ,
.Xr X509_SIG_new 3
.Sh STANDARDS
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile
.Sh HISTORY
.Fn X509_new
and
.Fn X509_free
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp
.Fn X509_up_ref
first appeared in OpenSSL 1.1.0 and has been available since
.Ox 6.1 .
.Pp
.Fn X509_chain_up_ref
first appeared in OpenSSL 1.0.2 and has been available since
.Ox 6.3 .
.Sh BUGS
The X.509 public key infrastructure and its data types contain too
many design bugs to list them.
For lots of examples, see the classic
.Lk https://www.cs.auckland.ac.nz/~pgut001/pubs/x509guide.txt\
 "X.509 Style Guide"
that
.An Peter Gutmann
published in 2000.
Changes to jni/libressl/man/X509_sign.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: X509_sign.3,v 1.1 2016/12/05 18:24:08 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2015, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: X509_sign.3,v 1.4 2018/03/23 23:18:17 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2015, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 5 2016 $
.Dt X509_SIGN 3
.Os
.Sh NAME
.Nm X509_sign ,
.Nm X509_sign_ctx ,
.Nm X509_verify ,
.Nm X509_REQ_sign ,







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt X509_SIGN 3
.Os
.Sh NAME
.Nm X509_sign ,
.Nm X509_sign_ctx ,
.Nm X509_verify ,
.Nm X509_REQ_sign ,
186
187
188
189
190
191
192

193


194
195
196

197
198
199
200
201
202

.Xr X509_NAME_get_index_by_NID 3 ,
.Xr X509_NAME_print_ex 3 ,
.Xr X509_new 3 ,
.Xr X509_verify_cert 3 ,
.Xr X509V3_get_d2i 3
.Sh HISTORY
.Fn X509_sign ,

.Fn X509_REQ_sign ,


and
.Fn X509_CRL_sign
are available in all versions of OpenSSL.

.Pp
.Fn X509_sign_ctx ,
.Fn X509_REQ_sign_ctx ,
and
.Fn X509_CRL_sign_ctx
were first added to OpenSSL 1.0.1.








>

>
>

|
|
>





|
>
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
.Xr X509_NAME_get_index_by_NID 3 ,
.Xr X509_NAME_print_ex 3 ,
.Xr X509_new 3 ,
.Xr X509_verify_cert 3 ,
.Xr X509V3_get_d2i 3
.Sh HISTORY
.Fn X509_sign ,
.Fn X509_verify ,
.Fn X509_REQ_sign ,
.Fn X509_REQ_verify ,
.Fn X509_CRL_sign ,
and
.Fn X509_CRL_verify
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp
.Fn X509_sign_ctx ,
.Fn X509_REQ_sign_ctx ,
and
.Fn X509_CRL_sign_ctx
first appeared in OpenSSL 1.0.1 and have been available since
.Ox 5.3 .
Changes to jni/libressl/man/X509_verify_cert.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: X509_verify_cert.3,v 1.5 2017/01/03 06:29:04 beck Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2009, 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: X509_verify_cert.3,v 1.6 2018/03/21 03:16:08 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2009, 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: January 3 2017 $
.Dt X509_VERIFY_CERT 3
.Os
.Sh NAME
.Nm X509_verify_cert
.Nd discover and verify X509 certificate chain
.Sh SYNOPSIS
.In openssl/x509.h







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt X509_VERIFY_CERT 3
.Os
.Sh NAME
.Nm X509_verify_cert
.Nd discover and verify X509 certificate chain
.Sh SYNOPSIS
.In openssl/x509.h
79
80
81
82
83
84
85
86

87
88
89
90
91
using
.Xr X509_STORE_CTX_get_error 3 .
.Sh SEE ALSO
.Xr openssl 1 ,
.Xr X509_STORE_CTX_get_error 3
.Sh HISTORY
.Fn X509_verify_cert
is available in all versions of SSLeay and OpenSSL.

.Sh BUGS
This function uses the header
.In openssl/x509.h
as opposed to most chain verification functions which use
.In openssl/x509_vfy.h .







|
>





79
80
81
82
83
84
85
86
87
88
89
90
91
92
using
.Xr X509_STORE_CTX_get_error 3 .
.Sh SEE ALSO
.Xr openssl 1 ,
.Xr X509_STORE_CTX_get_error 3
.Sh HISTORY
.Fn X509_verify_cert
appeared before SSLeay 0.8 and has been available since
.Ox 2.4 .
.Sh BUGS
This function uses the header
.In openssl/x509.h
as opposed to most chain verification functions which use
.In openssl/x509_vfy.h .
Changes to jni/libressl/man/X509v3_get_ext_by_NID.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: X509v3_get_ext_by_NID.3,v 1.4 2017/07/05 11:43:09 schwarze Exp $
.\"	OpenSSL c952780c Jun 21 07:03:34 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: X509v3_get_ext_by_NID.3,v 1.6 2018/03/21 03:16:08 schwarze Exp $
.\"	OpenSSL c952780c Jun 21 07:03:34 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2015 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: July 5 2017 $
.Dt X509V3_GET_EXT_BY_NID 3
.Os
.Sh NAME
.Nm X509v3_get_ext_count ,
.Nm X509v3_get_ext ,
.Nm X509v3_get_ext_by_NID ,
.Nm X509v3_get_ext_by_OBJ ,







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt X509V3_GET_EXT_BY_NID 3
.Os
.Sh NAME
.Nm X509v3_get_ext_count ,
.Nm X509v3_get_ext ,
.Nm X509v3_get_ext_by_NID ,
.Nm X509v3_get_ext_by_OBJ ,
381
382
383
384
385
386
387

388



.Pp
.Fn X509v3_add_ext
returns a stack of extensions or
.Dv NULL
on error.
.Sh SEE ALSO
.Xr X509_EXTENSION_new 3 ,

.Xr X509V3_get_d2i 3










>

>
>
>
381
382
383
384
385
386
387
388
389
390
391
392
.Pp
.Fn X509v3_add_ext
returns a stack of extensions or
.Dv NULL
on error.
.Sh SEE ALSO
.Xr X509_EXTENSION_new 3 ,
.Xr X509_REVOKED_new 3 ,
.Xr X509V3_get_d2i 3
.Sh HISTORY
These functions appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/crypto.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: crypto.3,v 1.16 2017/01/07 08:46:13 jmc Exp $
.\"	OpenSSL a9c85cea Nov 11 09:33:55 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org> and
.\" Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2002 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: crypto.3,v 1.18 2018/02/27 20:43:41 schwarze Exp $
.\"	OpenSSL a9c85cea Nov 11 09:33:55 2016 +0100
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org> and
.\" Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2002 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: January 7 2017 $
.Dt CRYPTO 3
.Os
.Sh NAME
.Nm crypto
.Nd OpenSSL cryptographic library
.Sh DESCRIPTION
The OpenSSL crypto library implements a wide range of cryptographic
algorithms used in various Internet standards.
The services provided by this library are used by the OpenSSL
implementations of TLS and S/MIME, and they have also been used to
implement SSH, OpenPGP, and other cryptographic standards.
.Pp
.Sy Symmetric ciphers
including AES, Blowfish, CAST, Chacha20, IDEA, DES, RC2, RC4, and
RC5 are provided by the generic interface
.Xr EVP_EncryptInit 3 .
Low-level stand-alone interfaces include
.Xr BF_set_key 3 ,
.Xr DES_set_key 3 ,
and
.Xr RC4 3 .
.Pp







|













|
|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: February 27 2018 $
.Dt CRYPTO 3
.Os
.Sh NAME
.Nm crypto
.Nd OpenSSL cryptographic library
.Sh DESCRIPTION
The OpenSSL crypto library implements a wide range of cryptographic
algorithms used in various Internet standards.
The services provided by this library are used by the OpenSSL
implementations of TLS and S/MIME, and they have also been used to
implement SSH, OpenPGP, and other cryptographic standards.
.Pp
.Sy Symmetric ciphers
including AES, Blowfish, CAST, Chacha20, IDEA, DES, RC2, and RC4
are provided by the generic interface
.Xr EVP_EncryptInit 3 .
Low-level stand-alone interfaces include
.Xr BF_set_key 3 ,
.Xr DES_set_key 3 ,
and
.Xr RC4 3 .
.Pp
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
.Xr X509_new 3
and
.Xr X509v3_add_ext 3 .
.Pp
.Sy Authentication codes and hash functions
offered include
.Xr HMAC 3 ,
.Xr MD2 3 ,
.Xr MD4 3 ,
.Xr MD5 3 ,
.Xr RIPEMD160 3 ,
.Xr SHA1 3 ,
and
.Xr SHA256 3 .
.Pp







<







85
86
87
88
89
90
91

92
93
94
95
96
97
98
.Xr X509_new 3
and
.Xr X509v3_add_ext 3 .
.Pp
.Sy Authentication codes and hash functions
offered include
.Xr HMAC 3 ,

.Xr MD4 3 ,
.Xr MD5 3 ,
.Xr RIPEMD160 3 ,
.Xr SHA1 3 ,
and
.Xr SHA256 3 .
.Pp
Changes to jni/libressl/man/d2i_ASN1_NULL.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: d2i_ASN1_NULL.3,v 1.1 2016/12/29 17:42:54 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 29 2016 $
.Dt D2I_ASN1_NULL 3
.Os
.Sh NAME
.Nm d2i_ASN1_NULL ,
.Nm i2d_ASN1_NULL
.Nd decode and encode an ASN.1 NULL type
.Sh SYNOPSIS
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: d2i_ASN1_NULL.3,v 1.2 2018/03/22 16:06:33 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt D2I_ASN1_NULL 3
.Os
.Sh NAME
.Nm d2i_ASN1_NULL ,
.Nm i2d_ASN1_NULL
.Nd decode and encode an ASN.1 NULL type
.Sh SYNOPSIS
78
79
80
81
82
83
84






.Xr ASN1_item_new 3
.Sh STANDARDS
ITU-T Recommendation X.690, also known as ISO/IEC 8825-1:
Information technology - ASN.1 encoding rules:
Specification of Basic Encoding Rules (BER), Canonical Encoding
Rules (CER) and Distinguished Encoding Rules (DER),
section 8.8: Encoding of null value













>
>
>
>
>
>
78
79
80
81
82
83
84
85
86
87
88
89
90
.Xr ASN1_item_new 3
.Sh STANDARDS
ITU-T Recommendation X.690, also known as ISO/IEC 8825-1:
Information technology - ASN.1 encoding rules:
Specification of Basic Encoding Rules (BER), Canonical Encoding
Rules (CER) and Distinguished Encoding Rules (DER),
section 8.8: Encoding of null value
.Sh HISTORY
.Fn d2i_ASN1_NULL
and
.Fn i2d_ASN1_NULL
first appeared in OpenSSL 0.9.5 and have been available since
.Ox 2.7 .
Changes to jni/libressl/man/d2i_ASN1_OBJECT.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
.\"	$OpenBSD: d2i_ASN1_OBJECT.3,v 1.6 2017/01/05 08:24:38 jmc Exp $
.\"	OpenSSL 05ea606a May 20 20:52:46 2016 -0400
.\"
.\" Copyright (c) 2017 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: January 5 2017 $
.Dt D2I_ASN1_OBJECT 3
.Os
.Sh NAME
.Nm d2i_ASN1_OBJECT ,
.Nm i2d_ASN1_OBJECT
.Nd decode and encode ASN.1 object identifiers
.Sh SYNOPSIS
|
















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
.\"	$OpenBSD: d2i_ASN1_OBJECT.3,v 1.7 2018/03/20 18:35:13 schwarze Exp $
.\"	OpenSSL 05ea606a May 20 20:52:46 2016 -0400
.\"
.\" Copyright (c) 2017 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 20 2018 $
.Dt D2I_ASN1_OBJECT 3
.Os
.Sh NAME
.Nm d2i_ASN1_OBJECT ,
.Nm i2d_ASN1_OBJECT
.Nd decode and encode ASN.1 object identifiers
.Sh SYNOPSIS
70
71
72
73
74
75
76






77
78
79
80
81
82
83
.Fn i2d_ASN1_OBJECT
returns the number of bytes successfully encoded
or a value <= 0 if an error occurs.
.Sh SEE ALSO
.Xr ASN1_item_d2i 3 ,
.Xr ASN1_OBJECT_new 3 ,
.Xr OBJ_nid2obj 3






.Sh CAVEATS
.Fn d2i_ASN1_OBJECT
never sets the long and short names of the object, not even if the
object identifier matches one that is built into the library.
To find the names of an object identifier parsed from DER or BER
input, call
.Xr OBJ_obj2nid 3







>
>
>
>
>
>







70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
.Fn i2d_ASN1_OBJECT
returns the number of bytes successfully encoded
or a value <= 0 if an error occurs.
.Sh SEE ALSO
.Xr ASN1_item_d2i 3 ,
.Xr ASN1_OBJECT_new 3 ,
.Xr OBJ_nid2obj 3
.Sh HISTORY
.Fn d2i_ASN1_OBJECT
and
.Fn i2d_ASN1_OBJECT
appeared in SSLeay 0.8.1b or earlier and have been available since
.Ox 2.4 .
.Sh CAVEATS
.Fn d2i_ASN1_OBJECT
never sets the long and short names of the object, not even if the
object identifier matches one that is built into the library.
To find the names of an object identifier parsed from DER or BER
input, call
.Xr OBJ_obj2nid 3
Changes to jni/libressl/man/d2i_ASN1_OCTET_STRING.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: d2i_ASN1_OCTET_STRING.3,v 1.5 2017/08/01 14:57:03 schwarze Exp $
.\"
.\" Copyright (c) 2017 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: August 1 2017 $
.Dt D2I_ASN1_OCTET_STRING 3
.Os
.Sh NAME
.Nm d2i_ASN1_OCTET_STRING ,
.Nm i2d_ASN1_OCTET_STRING ,
.Nm d2i_ASN1_BIT_STRING ,
.Nm i2d_ASN1_BIT_STRING ,
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: d2i_ASN1_OCTET_STRING.3,v 1.11 2018/03/23 23:18:17 schwarze Exp $
.\"
.\" Copyright (c) 2017 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt D2I_ASN1_OCTET_STRING 3
.Os
.Sh NAME
.Nm d2i_ASN1_OCTET_STRING ,
.Nm i2d_ASN1_OCTET_STRING ,
.Nm d2i_ASN1_BIT_STRING ,
.Nm i2d_ASN1_BIT_STRING ,
380
381
382
383
384
385
386
























































.Sh STANDARDS
ITU-T Recommendation X.680, also known as ISO/IEC 8824-1:
Information technology - Abstract Syntax Notation One (ASN.1):
Specification of basic notation
.Pp
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
.Sh STANDARDS
ITU-T Recommendation X.680, also known as ISO/IEC 8824-1:
Information technology - Abstract Syntax Notation One (ASN.1):
Specification of basic notation
.Pp
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile
.Sh HISTORY
.Fn d2i_ASN1_OCTET_STRING ,
.Fn i2d_ASN1_OCTET_STRING ,
.Fn d2i_ASN1_BIT_STRING ,
.Fn i2d_ASN1_BIT_STRING ,
.Fn d2i_ASN1_INTEGER ,
.Fn i2d_ASN1_INTEGER ,
.Fn d2i_ASN1_IA5STRING ,
.Fn i2d_ASN1_IA5STRING ,
.Fn d2i_ASN1_T61STRING ,
.Fn d2i_ASN1_PRINTABLESTRING ,
.Fn d2i_ASN1_PRINTABLE ,
.Fn i2d_ASN1_PRINTABLE ,
.Fn d2i_ASN1_UTCTIME ,
and
.Fn i2d_ASN1_UTCTIME
appeared in SSLeay 0.8.1b or earlier and have been available since
.Ox 2.4 .
.Pp
.Fn d2i_ASN1_BMPSTRING
and
.Fn i2d_ASN1_BMPSTRING
first appeared in SSLeay 0.9.1.
.Fn d2i_ASN1_ENUMERATED ,
.Fn i2d_ASN1_ENUMERATED ,
.Fn d2i_ASN1_GENERALIZEDTIME ,
.Fn i2d_ASN1_GENERALIZEDTIME ,
.Fn d2i_ASN1_TIME ,
and
.Fn i2d_ASN1_TIME
first appeared in OpenSSL 0.9.2b.
.Fn d2i_ASN1_UINTEGER ,
.Fn d2i_ASN1_UTF8STRING ,
.Fn i2d_ASN1_UTF8STRING ,
.Fn d2i_ASN1_VISIBLESTRING ,
.Fn i2d_ASN1_VISIBLESTRING ,
.Fn d2i_DIRECTORYSTRING ,
.Fn i2d_DIRECTORYSTRING ,
.Fn d2i_DISPLAYTEXT
and
.Fn i2d_DISPLAYTEXT
first appeared in OpenSSL 0.9.3.
These functions have been available since
.Ox 2.6 .
.Pp
.Fn i2d_ASN1_PRINTABLESTRING
first appeared in OpenSSL 0.9.5 and has been available since
.Ox 2.7 .
.Pp
.Fn d2i_ASN1_UNIVERSALSTRING ,
.Fn i2d_ASN1_UNIVERSALSTRING ,
.Fn d2i_ASN1_GENERALSTRING ,
and
.Fn i2d_ASN1_GENERALSTRING
first appeared in OpenSSL 0.9.7 and have been available since
.Ox 3.2 .
Changes to jni/libressl/man/d2i_ASN1_SEQUENCE_ANY.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: d2i_ASN1_SEQUENCE_ANY.3,v 1.1 2017/01/04 21:14:26 schwarze Exp $
.\"
.\" Copyright (c) 2017 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: January 4 2017 $
.Dt D2I_ASN1_SEQUENCE_ANY 3
.Os
.Sh NAME
.Nm d2i_ASN1_SEQUENCE_ANY ,
.Nm i2d_ASN1_SEQUENCE_ANY ,
.Nm d2i_ASN1_SET_ANY ,
.Nm i2d_ASN1_SET_ANY
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: d2i_ASN1_SEQUENCE_ANY.3,v 1.2 2018/03/23 04:34:23 schwarze Exp $
.\"
.\" Copyright (c) 2017 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt D2I_ASN1_SEQUENCE_ANY 3
.Os
.Sh NAME
.Nm d2i_ASN1_SEQUENCE_ANY ,
.Nm i2d_ASN1_SEQUENCE_ANY ,
.Nm d2i_ASN1_SET_ANY ,
.Nm i2d_ASN1_SET_ANY
79
80
81
82
83
84
85








.Pp
.Fn i2d_ASN1_SEQUENCE_ANY
returns the number of bytes written or a negative value if an error
occurs.
.Sh SEE ALSO
.Xr ASN1_item_d2i 3 ,
.Xr ASN1_TYPE_new 3















>
>
>
>
>
>
>
>
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
.Pp
.Fn i2d_ASN1_SEQUENCE_ANY
returns the number of bytes written or a negative value if an error
occurs.
.Sh SEE ALSO
.Xr ASN1_item_d2i 3 ,
.Xr ASN1_TYPE_new 3
.Sh HISTORY
.Fn d2i_ASN1_SEQUENCE_ANY ,
.Fn i2d_ASN1_SEQUENCE_ANY ,
.Fn d2i_ASN1_SET_ANY ,
and
.Fn i2d_ASN1_SET_ANY
first appeared in OpenSSL 1.0.0 and have been available since
.Ox 4.9 .
Changes to jni/libressl/man/d2i_AUTHORITY_KEYID.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: d2i_AUTHORITY_KEYID.3,v 1.1 2016/12/28 20:36:33 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 28 2016 $
.Dt D2I_AUTHORITY_KEYID 3
.Os
.Sh NAME
.Nm d2i_AUTHORITY_KEYID ,
.Nm i2d_AUTHORITY_KEYID
.Nd decode and encode X.509 authority key identifiers
.Sh SYNOPSIS
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: d2i_AUTHORITY_KEYID.3,v 1.2 2018/03/21 16:09:51 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt D2I_AUTHORITY_KEYID 3
.Os
.Sh NAME
.Nm d2i_AUTHORITY_KEYID ,
.Nm i2d_AUTHORITY_KEYID
.Nd decode and encode X.509 authority key identifiers
.Sh SYNOPSIS
63
64
65
66
67
68
69






Certificate Revocation List (CRL) Profile:
.Bl -dash -compact
.It
section 4.2.1.1: Certificate Extensions: Authority Key Identifier
.It
section 5.2.1: CRL Extensions: Authority Key Identifier
.El













>
>
>
>
>
>
63
64
65
66
67
68
69
70
71
72
73
74
75
Certificate Revocation List (CRL) Profile:
.Bl -dash -compact
.It
section 4.2.1.1: Certificate Extensions: Authority Key Identifier
.It
section 5.2.1: CRL Extensions: Authority Key Identifier
.El
.Sh HISTORY
.Fn d2i_AUTHORITY_KEYID
and
.Fn i2d_AUTHORITY_KEYID
first appeared in OpenSSL 0.9.2b and have been available since
.Ox 2.6 .
Changes to jni/libressl/man/d2i_BASIC_CONSTRAINTS.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: d2i_BASIC_CONSTRAINTS.3,v 1.1 2016/12/28 20:36:33 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 28 2016 $
.Dt D2I_BASIC_CONSTRAINTS 3
.Os
.Sh NAME
.Nm d2i_BASIC_CONSTRAINTS ,
.Nm i2d_BASIC_CONSTRAINTS ,
.Nm d2i_EXTENDED_KEY_USAGE ,
.Nm i2d_EXTENDED_KEY_USAGE
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: d2i_BASIC_CONSTRAINTS.3,v 1.3 2018/03/22 21:08:22 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt D2I_BASIC_CONSTRAINTS 3
.Os
.Sh NAME
.Nm d2i_BASIC_CONSTRAINTS ,
.Nm i2d_BASIC_CONSTRAINTS ,
.Nm d2i_EXTENDED_KEY_USAGE ,
.Nm i2d_EXTENDED_KEY_USAGE
88
89
90
91
92
93
94












.Xr ASN1_item_d2i 3 ,
.Xr BASIC_CONSTRAINTS_new 3 ,
.Xr EXTENDED_KEY_USAGE_new 3 ,
.Xr X509_EXTENSION_new 3
.Sh STANDARDS
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile



















>
>
>
>
>
>
>
>
>
>
>
>
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
.Xr ASN1_item_d2i 3 ,
.Xr BASIC_CONSTRAINTS_new 3 ,
.Xr EXTENDED_KEY_USAGE_new 3 ,
.Xr X509_EXTENSION_new 3
.Sh STANDARDS
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile
.Sh HISTORY
.Fn d2i_BASIC_CONSTRAINTS
and
.Fn i2d_BASIC_CONSTRAINTS
first appeared in OpenSSL 0.9.2b and have been available since
.Ox 2.6 .
.Pp
.Fn d2i_EXTENDED_KEY_USAGE
and
.Fn i2d_EXTENDED_KEY_USAGE
first appeared in OpenSSL 0.9.7 and have been available since
.Ox 3.2 .
Changes to jni/libressl/man/d2i_DHparams.3.
1
2
3
4
5
6

7
8
9
10
11
12
13
.\"	$OpenBSD: d2i_DHparams.3,v 1.5 2016/12/10 22:22:59 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org> and
.\" Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2002, 2015 The OpenSSL Project.  All rights reserved.

.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
|
|



|
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
.\" $OpenBSD: d2i_DHparams.3,v 1.7 2018/03/20 22:22:10 schwarze Exp $
.\" full merge up to: OpenSSL 61f805c1 Jan 16 01:01:46 2018 +0800
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org> and
.\" Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2000, 2002, 2015, 2017 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 10 2016 $
.Dt D2I_DHPARAMS 3
.Os
.Sh NAME
.Nm d2i_DHparams ,
.Nm i2d_DHparams
.Nd PKCS#3 DH parameter functions
.Sh SYNOPSIS







|







46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 20 2018 $
.Dt D2I_DHPARAMS 3
.Os
.Sh NAME
.Nm d2i_DHparams ,
.Nm i2d_DHparams
.Nd PKCS#3 DH parameter functions
.Sh SYNOPSIS
72
73
74
75
76
77
78











79
80
81






.Sh DESCRIPTION
These functions decode and encode PKCS#3 DH parameters using the
DHparameter structure described in PKCS#3.
They otherwise behave in a way similar to
.Xr d2i_X509 3
and
.Xr i2d_X509 3 .











.Sh SEE ALSO
.Xr d2i_X509 3 ,
.Xr DH_new 3













>
>
>
>
>
>
>
>
>
>
>



>
>
>
>
>
>
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
.Sh DESCRIPTION
These functions decode and encode PKCS#3 DH parameters using the
DHparameter structure described in PKCS#3.
They otherwise behave in a way similar to
.Xr d2i_X509 3
and
.Xr i2d_X509 3 .
.Sh RETURN VALUES
.Fn d2i_DHparams
returns a
.Vt DH
object or
.Dv NULL
if an error occurs.
.Pp
.Fn i2d_DHparams
returns the number of bytes successfully encoded or a value <= 0
if an error occurs.
.Sh SEE ALSO
.Xr d2i_X509 3 ,
.Xr DH_new 3
.Sh HISTORY
.Fn d2i_DHparams
and
.Fn i2d_DHparams
appeared in SSLeay 0.8.1b or earlier and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/d2i_DIST_POINT.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: d2i_DIST_POINT.3,v 1.1 2016/12/28 20:36:33 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 28 2016 $
.Dt D2I_DIST_POINT 3
.Os
.Sh NAME
.Nm d2i_DIST_POINT ,
.Nm i2d_DIST_POINT ,
.Nm d2i_CRL_DIST_POINTS ,
.Nm i2d_CRL_DIST_POINTS ,
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: d2i_DIST_POINT.3,v 1.4 2018/03/23 04:34:23 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt D2I_DIST_POINT 3
.Os
.Sh NAME
.Nm d2i_DIST_POINT ,
.Nm i2d_DIST_POINT ,
.Nm d2i_CRL_DIST_POINTS ,
.Nm i2d_CRL_DIST_POINTS ,
171
172
173
174
175
176
177
























.Xr ACCESS_DESCRIPTION_new 3 ,
.Xr ASN1_item_d2i 3 ,
.Xr DIST_POINT_new 3 ,
.Xr X509_EXTENSION_new 3
.Sh STANDARDS
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
.Xr ACCESS_DESCRIPTION_new 3 ,
.Xr ASN1_item_d2i 3 ,
.Xr DIST_POINT_new 3 ,
.Xr X509_EXTENSION_new 3
.Sh STANDARDS
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile
.Sh HISTORY
.Fn d2i_DIST_POINT ,
.Fn i2d_DIST_POINT ,
.Fn d2i_CRL_DIST_POINTS ,
.Fn i2d_CRL_DIST_POINTS ,
.Fn d2i_DIST_POINT_NAME ,
and
.Fn i2d_DIST_POINT_NAME
first appeared in OpenSSL 0.9.3 and have been available since
.Ox 2.6 .
.Pp
.Fn d2i_ACCESS_DESCRIPTION ,
.Fn i2d_ACCESS_DESCRIPTION ,
.Fn d2i_AUTHORITY_INFO_ACCESS ,
and
.Fn i2d_AUTHORITY_INFO_ACCESS
first appeared in OpenSSL 0.9.5 and have been available since
.Ox 2.7 .
.Pp
.Fn d2i_ISSUING_DIST_POINT
and
.Fn i2d_ISSUING_DIST_POINT
first appeared in OpenSSL 1.0.0 and have been available since
.Ox 4.9 .
Changes to jni/libressl/man/d2i_DSAPublicKey.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: d2i_DSAPublicKey.3,v 1.8 2016/12/25 14:38:55 schwarze Exp $
.\"	OpenSSL bb9ad09e Jun 6 00:43:05 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2002, 2003, 2013, 2015, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: d2i_DSAPublicKey.3,v 1.12 2018/03/22 16:06:33 schwarze Exp $
.\"	OpenSSL bb9ad09e Jun 6 00:43:05 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2002, 2003, 2013, 2015, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 25 2016 $
.Dt D2I_DSAPUBLICKEY 3
.Os
.Sh NAME
.Nm d2i_DSAPublicKey ,
.Nm i2d_DSAPublicKey ,
.Nm d2i_DSA_PUBKEY ,
.Nm i2d_DSA_PUBKEY ,







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt D2I_DSAPUBLICKEY 3
.Os
.Sh NAME
.Nm d2i_DSAPublicKey ,
.Nm i2d_DSAPublicKey ,
.Nm d2i_DSA_PUBKEY ,
.Nm i2d_DSA_PUBKEY ,
330
331
332
333
334
335
336































Profile:
.Bl -dash -compact
.It
section 2.2.2: DSA Signature Algorithm
.It
section 2.3.2: DSA Signature Keys
.El






































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
Profile:
.Bl -dash -compact
.It
section 2.2.2: DSA Signature Algorithm
.It
section 2.3.2: DSA Signature Keys
.El
.Sh HISTORY
.Fn d2i_DSAPublicKey ,
.Fn i2d_DSAPublicKey ,
.Fn d2i_DSAPrivateKey ,
.Fn i2d_DSAPrivateKey ,
.Fn d2i_DSAPrivateKey_bio ,
.Fn d2i_DSAPrivateKey_fp ,
.Fn i2d_DSAPrivateKey_bio ,
.Fn i2d_DSAPrivateKey_fp ,
.Fn d2i_DSAparams ,
.Fn i2d_DSAparams ,
and
.Fn DSAparams_dup
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp
.Fn d2i_DSA_SIG
and
.Fn i2d_DSA_SIG
first appeared in OpenSSL 0.9.3 and have been available since
.Ox 2.6 .
.Pp
.Fn d2i_DSA_PUBKEY ,
.Fn i2d_DSA_PUBKEY ,
.Fn d2i_DSA_PUBKEY_bio ,
.Fn d2i_DSA_PUBKEY_fp ,
.Fn i2d_DSA_PUBKEY_bio ,
and
.Fn i2d_DSA_PUBKEY_fp
first appeared in OpenSSL 0.9.5 and have been available since
.Ox 2.7 .
Changes to jni/libressl/man/d2i_ECPKParameters.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: d2i_ECPKParameters.3,v 1.10 2017/08/01 14:57:03 schwarze Exp $
.\"	OpenSSL 05ea606a May 20 20:52:46 2016 -0400
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: d2i_ECPKParameters.3,v 1.11 2018/03/23 00:09:11 schwarze Exp $
.\"	OpenSSL 05ea606a May 20 20:52:46 2016 -0400
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: August 1 2017 $
.Dt D2I_ECPKPARAMETERS 3
.Os
.Sh NAME
.Nm d2i_ECPKParameters ,
.Nm i2d_ECPKParameters ,
.Nm d2i_ECPKParameters_bio ,
.Nm i2d_ECPKParameters_bio ,







|







61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt D2I_ECPKPARAMETERS 3
.Os
.Sh NAME
.Nm d2i_ECPKParameters ,
.Nm i2d_ECPKParameters ,
.Nm d2i_ECPKParameters_bio ,
.Nm i2d_ECPKParameters_bio ,
430
431
432
433
434
435
436































.Pp
RFC 5208: Public-Key Cryptography Standards (PKCS) #8:
Private-Key Information Syntax Specification
.Pp
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile,
section 4.1: Basic Certificate Fields






































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
.Pp
RFC 5208: Public-Key Cryptography Standards (PKCS) #8:
Private-Key Information Syntax Specification
.Pp
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile,
section 4.1: Basic Certificate Fields
.Sh HISTORY
.Fn d2i_ECPKParameters ,
.Fn i2d_ECPKParameters ,
.Fn d2i_ECPKParameters_bio ,
.Fn i2d_ECPKParameters_bio ,
.Fn d2i_ECPKParameters_fP ,
.Fn i2d_ECPKParameters_fp ,
.Fn d2i_ECParameters ,
.Fn i2d_ECParameters ,
.Fn ECParameters_dup ,
.Fn d2i_ECPrivateKey ,
.Fn i2d_ECPrivateKey ,
.Fn d2i_ECPrivateKey_bio ,
.Fn i2d_ECPrivateKey_bio ,
.Fn d2i_ECPrivateKey_fp ,
.Fn i2d_ECPrivateKey_fp ,
.Fn o2i_ECPublicKey ,
.Fn i2o_ECPublicKey ,
.Fn ECPKParameters_print ,
.Fn ECPKParameters_print_fp ,
.Fn ECParameters_print ,
.Fn ECParameters_print_fp ,
.Fn d2i_EC_PUBKEY ,
.Fn i2d_EC_PUBKEY ,
.Fn d2i_EC_PUBKEY_bio ,
.Fn i2d_EC_PUBKEY_bio ,
.Fn d2i_EC_PUBKEY_fp ,
and
.Fn i2d_EC_PUBKEY_fp
first appeared in OpenSSL 0.9.8 and have been available since
.Ox 4.5 .
Changes to jni/libressl/man/d2i_ESS_SIGNING_CERT.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: d2i_ESS_SIGNING_CERT.3,v 1.1 2016/12/27 20:56:18 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 27 2016 $
.Dt D2I_ESS_SIGNING_CERT 3
.Os
.Sh NAME
.Nm d2i_ESS_SIGNING_CERT ,
.Nm i2d_ESS_SIGNING_CERT ,
.Nm d2i_ESS_CERT_ID ,
.Nm i2d_ESS_CERT_ID ,
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: d2i_ESS_SIGNING_CERT.3,v 1.2 2018/03/23 04:34:23 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt D2I_ESS_SIGNING_CERT 3
.Os
.Sh NAME
.Nm d2i_ESS_SIGNING_CERT ,
.Nm i2d_ESS_SIGNING_CERT ,
.Nm d2i_ESS_CERT_ID ,
.Nm i2d_ESS_CERT_ID ,
108
109
110
111
112
113
114




if an error occurs.
.Sh SEE ALSO
.Xr ASN1_item_d2i 3 ,
.Xr ESS_SIGNING_CERT_new 3
.Sh STANDARDS
RFC 2634: Enhanced Security Services for S/MIME,
section 5: Signing Certificate Attribute











>
>
>
>
108
109
110
111
112
113
114
115
116
117
118
if an error occurs.
.Sh SEE ALSO
.Xr ASN1_item_d2i 3 ,
.Xr ESS_SIGNING_CERT_new 3
.Sh STANDARDS
RFC 2634: Enhanced Security Services for S/MIME,
section 5: Signing Certificate Attribute
.Sh HISTORY
These functions first appeared in OpenSSL 1.0.0
and have been available since
.Ox 4.9 .
Changes to jni/libressl/man/d2i_GENERAL_NAME.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: d2i_GENERAL_NAME.3,v 1.1 2016/12/28 20:36:33 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 28 2016 $
.Dt D2I_GENERAL_NAME 3
.Os
.Sh NAME
.Nm d2i_GENERAL_NAME ,
.Nm i2d_GENERAL_NAME ,
.Nm d2i_GENERAL_NAMES ,
.Nm i2d_GENERAL_NAMES ,
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: d2i_GENERAL_NAME.3,v 1.4 2018/03/22 21:08:22 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt D2I_GENERAL_NAME 3
.Os
.Sh NAME
.Nm d2i_GENERAL_NAME ,
.Nm i2d_GENERAL_NAME ,
.Nm d2i_GENERAL_NAMES ,
.Nm i2d_GENERAL_NAMES ,
134
135
136
137
138
139
140




















.Xr d2i_X509_NAME 3 ,
.Xr GENERAL_NAME_new 3 ,
.Xr X509_EXTENSION_new 3
.Sh STANDARDS
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile,
section 4.2: Certificate Extensions



























>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
.Xr d2i_X509_NAME 3 ,
.Xr GENERAL_NAME_new 3 ,
.Xr X509_EXTENSION_new 3
.Sh STANDARDS
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile,
section 4.2: Certificate Extensions
.Sh HISTORY
.Fn d2i_GENERAL_NAME ,
.Fn i2d_GENERAL_NAME ,
.Fn d2i_GENERAL_NAMES ,
and
.Fn i2d_GENERAL_NAMES
first appeared in OpenSSL 0.9.2b and have been available since
.Ox 2.6 .
.Pp
.Fn d2i_OTHERNAME
and
.Fn i2d_OTHERNAME
first appeared in OpenSSL 0.9.5 and have been available since
.Ox 2.7 .
.Pp
.Fn d2i_EDIPARTYNAME
and
.Fn i2d_EDIPARTYNAME
first appeared in OpenSSL 0.9.7 and have been available since
.Ox 3.2 .
Changes to jni/libressl/man/d2i_OCSP_REQUEST.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: d2i_OCSP_REQUEST.3,v 1.1 2016/12/27 22:06:55 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 27 2016 $
.Dt D2I_OCSP_REQUEST 3
.Os
.Sh NAME
.Nm d2i_OCSP_REQUEST ,
.Nm i2d_OCSP_REQUEST ,
.Nm d2i_OCSP_SIGNATURE ,
.Nm i2d_OCSP_SIGNATURE ,
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: d2i_OCSP_REQUEST.3,v 1.2 2018/03/22 21:08:22 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt D2I_OCSP_REQUEST 3
.Os
.Sh NAME
.Nm d2i_OCSP_REQUEST ,
.Nm i2d_OCSP_REQUEST ,
.Nm d2i_OCSP_SIGNATURE ,
.Nm i2d_OCSP_SIGNATURE ,
171
172
173
174
175
176
177




.Xr ASN1_item_d2i 3 ,
.Xr OCSP_CERTID_new 3 ,
.Xr OCSP_REQUEST_new 3 ,
.Xr OCSP_SERVICELOC_new 3
.Sh STANDARDS
RFC 6960: X.509 Internet Public Key Infrastructure Online Certificate
Status Protocol, section 4.1: Request Syntax











>
>
>
>
171
172
173
174
175
176
177
178
179
180
181
.Xr ASN1_item_d2i 3 ,
.Xr OCSP_CERTID_new 3 ,
.Xr OCSP_REQUEST_new 3 ,
.Xr OCSP_SERVICELOC_new 3
.Sh STANDARDS
RFC 6960: X.509 Internet Public Key Infrastructure Online Certificate
Status Protocol, section 4.1: Request Syntax
.Sh HISTORY
These functions first appeared in OpenSSL 0.9.7
and have been available since
.Ox 3.2 .
Changes to jni/libressl/man/d2i_OCSP_RESPONSE.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: d2i_OCSP_RESPONSE.3,v 1.1 2016/12/27 22:06:55 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 27 2016 $
.Dt D2I_OCSP_RESPONSE 3
.Os
.Sh NAME
.Nm d2i_OCSP_RESPONSE ,
.Nm i2d_OCSP_RESPONSE ,
.Nm d2i_OCSP_RESPBYTES ,
.Nm i2d_OCSP_RESPBYTES ,
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: d2i_OCSP_RESPONSE.3,v 1.2 2018/03/22 21:08:22 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt D2I_OCSP_RESPONSE 3
.Os
.Sh NAME
.Nm d2i_OCSP_RESPONSE ,
.Nm i2d_OCSP_RESPONSE ,
.Nm d2i_OCSP_RESPBYTES ,
.Nm i2d_OCSP_RESPBYTES ,
237
238
239
240
241
242
243




.Xr ASN1_item_d2i 3 ,
.Xr OCSP_CRLID_new 3 ,
.Xr OCSP_RESPONSE_new 3 ,
.Xr OCSP_SINGLERESP_new 3
.Sh STANDARDS
RFC 6960: X.509 Internet Public Key Infrastructure Online Certificate
Status Protocol, section 4.2: Response Syntax











>
>
>
>
237
238
239
240
241
242
243
244
245
246
247
.Xr ASN1_item_d2i 3 ,
.Xr OCSP_CRLID_new 3 ,
.Xr OCSP_RESPONSE_new 3 ,
.Xr OCSP_SINGLERESP_new 3
.Sh STANDARDS
RFC 6960: X.509 Internet Public Key Infrastructure Online Certificate
Status Protocol, section 4.2: Response Syntax
.Sh HISTORY
These functions first appeared in OpenSSL 0.9.7
and have been available since
.Ox 3.2 .
Changes to jni/libressl/man/d2i_PKCS12.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: d2i_PKCS12.3,v 1.1 2016/12/26 18:04:45 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 26 2016 $
.Dt D2I_PKCS12 3
.Os
.Sh NAME
.Nm d2i_PKCS12 ,
.Nm i2d_PKCS12 ,
.Nm d2i_PKCS12_bio ,
.Nm i2d_PKCS12_bio ,
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: d2i_PKCS12.3,v 1.2 2018/03/21 17:57:48 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt D2I_PKCS12 3
.Os
.Sh NAME
.Nm d2i_PKCS12 ,
.Nm i2d_PKCS12 ,
.Nm d2i_PKCS12_bio ,
.Nm i2d_PKCS12_bio ,
180
181
182
183
184
185
186
















.Xr ASN1_item_d2i 3 ,
.Xr PKCS12_create 3 ,
.Xr PKCS12_new 3 ,
.Xr PKCS12_parse 3 ,
.Xr PKCS12_SAFEBAG_new 3
.Sh STANDARDS
RFC 7292: PKCS #12: Personal Information Exchange Syntax























>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
.Xr ASN1_item_d2i 3 ,
.Xr PKCS12_create 3 ,
.Xr PKCS12_new 3 ,
.Xr PKCS12_parse 3 ,
.Xr PKCS12_SAFEBAG_new 3
.Sh STANDARDS
RFC 7292: PKCS #12: Personal Information Exchange Syntax
.Sh HISTORY
.Fn d2i_PKCS12 ,
.Fn i2d_PKCS12 ,
.Fn d2i_PKCS12_bio ,
.Fn i2d_PKCS12_bio ,
.Fn d2i_PKCS12_fp ,
.Fn i2d_PKCS12_fp ,
.Fn d2i_PKCS12_MAC_DATA ,
.Fn i2d_PKCS12_MAC_DATA ,
.Fn d2i_PKCS12_SAFEBAG ,
.Fn i2d_PKCS12_SAFEBAG ,
.Fn d2i_PKCS12_BAGS ,
and
.Fn i2d_PKCS12_BAGS
first appeared in OpenSSL 0.9.3 and have been available since
.Ox 2.6 .
Changes to jni/libressl/man/d2i_PKCS7.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: d2i_PKCS7.3,v 1.4 2016/12/27 13:10:26 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 27 2016 $
.Dt D2I_PKCS7 3
.Os
.Sh NAME
.Nm d2i_PKCS7 ,
.Nm i2d_PKCS7 ,
.Nm d2i_PKCS7_bio ,
.Nm i2d_PKCS7_bio ,
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: d2i_PKCS7.3,v 1.5 2018/03/21 00:54:31 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt D2I_PKCS7 3
.Os
.Sh NAME
.Nm d2i_PKCS7 ,
.Nm i2d_PKCS7 ,
.Nm d2i_PKCS7_bio ,
.Nm i2d_PKCS7_bio ,
320
321
322
323
324
325
326




























.Xr i2d_PKCS7_bio_stream 3 ,
.Xr PEM_write_bio_PKCS7_stream 3 ,
.Xr PEM_write_PKCS7 3 ,
.Xr PKCS7_new 3 ,
.Xr SMIME_write_PKCS7 3
.Sh STANDARDS
RFC 2315: PKCS #7: Cryptographic Message Syntax Version 1.5



































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
.Xr i2d_PKCS7_bio_stream 3 ,
.Xr PEM_write_bio_PKCS7_stream 3 ,
.Xr PEM_write_PKCS7 3 ,
.Xr PKCS7_new 3 ,
.Xr SMIME_write_PKCS7 3
.Sh STANDARDS
RFC 2315: PKCS #7: Cryptographic Message Syntax Version 1.5
.Sh HISTORY
.Fn d2i_PKCS7 ,
.Fn i2d_PKCS7 ,
.Fn d2i_PKCS7_bio ,
.Fn i2d_PKCS7_bio ,
.Fn d2i_PKCS7_fp ,
.Fn i2d_PKCS7_fp ,
.Fn d2i_PKCS7_DIGEST ,
.Fn i2d_PKCS7_DIGEST ,
.Fn d2i_PKCS7_ENCRYPT ,
.Fn i2d_PKCS7_ENCRYPT ,
.Fn d2i_PKCS7_ENC_CONTENT ,
.Fn i2d_PKCS7_ENC_CONTENT ,
.Fn d2i_PKCS7_ENVELOPE ,
.Fn i2d_PKCS7_ENVELOPE ,
.Fn d2i_PKCS7_ISSUER_AND_SERIAL ,
.Fn i2d_PKCS7_ISSUER_AND_SERIAL ,
.Fn d2i_PKCS7_RECIP_INFO ,
.Fn i2d_PKCS7_RECIP_INFO ,
.Fn d2i_PKCS7_SIGNED ,
.Fn i2d_PKCS7_SIGNED ,
.Fn d2i_PKCS7_SIGNER_INFO ,
.Fn i2d_PKCS7_SIGNER_INFO ,
.Fn d2i_PKCS7_SIGN_ENVELOPE ,
and
.Fn i2d_PKCS7_SIGN_ENVELOPE
appeared in SSLeay 0.8.1b or earlier and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/d2i_PKCS8PrivateKey_bio.3.
1
2
3
4
5
6
7
8
9
10
11
12
.\"	$OpenBSD: d2i_PKCS8PrivateKey_bio.3,v 1.8 2017/01/07 17:27:15 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2002, 2016 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
|
|


|







1
2
3
4
5
6
7
8
9
10
11
12
.\" $OpenBSD: d2i_PKCS8PrivateKey_bio.3,v 1.10 2018/03/22 16:06:33 schwarze Exp $
.\" full merge up to: OpenSSL 61f805c1 Jan 16 01:01:46 2018 +0800
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2002, 2016, 2017 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: January 7 2017 $
.Dt D2I_PKCS8PRIVATEKEY_BIO 3
.Os
.Sh NAME
.Nm d2i_PKCS8PrivateKey_bio ,
.Nm d2i_PKCS8PrivateKey_fp ,
.Nm i2d_PKCS8PrivateKey_bio ,
.Nm i2d_PKCS8PrivateKey_fp ,







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt D2I_PKCS8PRIVATEKEY_BIO 3
.Os
.Sh NAME
.Nm d2i_PKCS8PrivateKey_bio ,
.Nm d2i_PKCS8PrivateKey_fp ,
.Nm i2d_PKCS8PrivateKey_bio ,
.Nm i2d_PKCS8PrivateKey_fp ,
140
141
142
143
144
145
146
















147
148
149
150




151
152
153
154
155
156
157
158
pointers.
There are no functions which work directly on memory,
though this can be readily worked around
by converting the buffers to memory BIOs;
see
.Xr BIO_s_mem 3
for details.
















.Sh SEE ALSO
.Xr d2i_X509_SIG 3 ,
.Xr PEM_write_PKCS8PrivateKey 3 ,
.Xr PKCS8_PRIV_KEY_INFO_new 3




.Sh CAVEATS
Do not confuse these functions with
.Xr i2d_PKCS8PrivateKeyInfo_bio 3
and
.Xr i2d_PKCS8PrivateKeyInfo_fp 3 ,
which write out private keys in
.Sy unencrypted
DER format.







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>




>
>
>
>








140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
pointers.
There are no functions which work directly on memory,
though this can be readily worked around
by converting the buffers to memory BIOs;
see
.Xr BIO_s_mem 3
for details.
.Sh RETURN VALUES
.Fn d2i_PKCS8PrivateKey_bio
and
.Fn d2i_PKCS8PrivateKey_fp
return a
.Vt EVP_PKEY
object or
.Dv NULL
if an error occurs.
.Pp
.Fn i2d_PKCS8PrivateKey_bio ,
.Fn i2d_PKCS8PrivateKey_fp ,
.Fn i2d_PKCS8PrivateKey_nid_bio ,
and
.Fn i2d_PKCS8PrivateKey_nid_fp
return 1 on success or 0 on error.
.Sh SEE ALSO
.Xr d2i_X509_SIG 3 ,
.Xr PEM_write_PKCS8PrivateKey 3 ,
.Xr PKCS8_PRIV_KEY_INFO_new 3
.Sh HISTORY
These functions first appeared in OpenSSL 0.9.5
and have been available since
.Ox 2.7 .
.Sh CAVEATS
Do not confuse these functions with
.Xr i2d_PKCS8PrivateKeyInfo_bio 3
and
.Xr i2d_PKCS8PrivateKeyInfo_fp 3 ,
which write out private keys in
.Sy unencrypted
DER format.
Changes to jni/libressl/man/d2i_PKCS8_PRIV_KEY_INFO.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: d2i_PKCS8_PRIV_KEY_INFO.3,v 1.1 2016/12/28 00:55:05 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 28 2016 $
.Dt D2I_PKCS8_PRIV_KEY_INFO 3
.Os
.Sh NAME
.Nm d2i_PKCS8_PRIV_KEY_INFO ,
.Nm i2d_PKCS8_PRIV_KEY_INFO ,
.Nm d2i_PKCS8_PRIV_KEY_INFO_bio ,
.Nm i2d_PKCS8_PRIV_KEY_INFO_bio ,
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: d2i_PKCS8_PRIV_KEY_INFO.3,v 1.3 2018/03/21 21:18:08 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt D2I_PKCS8_PRIV_KEY_INFO 3
.Os
.Sh NAME
.Nm d2i_PKCS8_PRIV_KEY_INFO ,
.Nm i2d_PKCS8_PRIV_KEY_INFO ,
.Nm d2i_PKCS8_PRIV_KEY_INFO_bio ,
.Nm i2d_PKCS8_PRIV_KEY_INFO_bio ,
108
109
110
111
112
113
114













.Xr ASN1_item_d2i 3 ,
.Xr d2i_PKCS8PrivateKey_bio 3 ,
.Xr d2i_PrivateKey 3 ,
.Xr PEM_write_PKCS8_PRIV_KEY_INFO 3 ,
.Xr PKCS8_PRIV_KEY_INFO_new 3
.Sh STANDARDS
RFC 5208: PKCS#8: Private-Key Information Syntax Specification




















>
>
>
>
>
>
>
>
>
>
>
>
>
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
.Xr ASN1_item_d2i 3 ,
.Xr d2i_PKCS8PrivateKey_bio 3 ,
.Xr d2i_PrivateKey 3 ,
.Xr PEM_write_PKCS8_PRIV_KEY_INFO 3 ,
.Xr PKCS8_PRIV_KEY_INFO_new 3
.Sh STANDARDS
RFC 5208: PKCS#8: Private-Key Information Syntax Specification
.Sh HISTORY
.Fn d2i_PKCS8_PRIV_KEY_INFO
and
.Fn i2d_PKCS8_PRIV_KEY_INFO
first appeared in OpenSSL 0.9.3.
.Fn d2i_PKCS8_PRIV_KEY_INFO_bio ,
.Fn i2d_PKCS8_PRIV_KEY_INFO_bio ,
.Fn d2i_PKCS8_PRIV_KEY_INFO_fp ,
and
.Fn i2d_PKCS8_PRIV_KEY_INFO_fp
first appeared in OpenSSL 0.9.4.
All these functions have been available since
.Ox 2.6 .
Changes to jni/libressl/man/d2i_PKEY_USAGE_PERIOD.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: d2i_PKEY_USAGE_PERIOD.3,v 1.1 2016/12/28 20:36:33 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 28 2016 $
.Dt D2I_PKEY_USAGE_PERIOD 3
.Os
.Sh NAME
.Nm d2i_PKEY_USAGE_PERIOD ,
.Nm i2d_PKEY_USAGE_PERIOD
.Nd decode and encode X.509 key usage period extensions
.Sh SYNOPSIS
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: d2i_PKEY_USAGE_PERIOD.3,v 1.2 2018/03/21 16:09:51 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt D2I_PKEY_USAGE_PERIOD 3
.Os
.Sh NAME
.Nm d2i_PKEY_USAGE_PERIOD ,
.Nm i2d_PKEY_USAGE_PERIOD
.Nd decode and encode X.509 key usage period extensions
.Sh SYNOPSIS
62
63
64
65
66
67
68






RFC 3280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile,
section 4.2.1.4: Private Key Usage Period
.Pp
RFC 3280 was obsoleted by RFC 5280; see
.Xr PKEY_USAGE_PERIOD_new 3
for details.













>
>
>
>
>
>
62
63
64
65
66
67
68
69
70
71
72
73
74
RFC 3280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile,
section 4.2.1.4: Private Key Usage Period
.Pp
RFC 3280 was obsoleted by RFC 5280; see
.Xr PKEY_USAGE_PERIOD_new 3
for details.
.Sh HISTORY
.Fn d2i_PKEY_USAGE_PERIOD
and
.Fn i2d_PKEY_USAGE_PERIOD
first appeared in OpenSSL 0.9.2b and have been available since
.Ox 2.6 .
Changes to jni/libressl/man/d2i_POLICYINFO.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: d2i_POLICYINFO.3,v 1.1 2016/12/28 20:36:33 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 28 2016 $
.Dt D2I_POLICYINFO 3
.Os
.Sh NAME
.Nm d2i_POLICYINFO ,
.Nm i2d_POLICYINFO ,
.Nm d2i_CERTIFICATEPOLICIES ,
.Nm i2d_CERTIFICATEPOLICIES ,
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: d2i_POLICYINFO.3,v 1.2 2018/03/21 17:57:48 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt D2I_POLICYINFO 3
.Os
.Sh NAME
.Nm d2i_POLICYINFO ,
.Nm i2d_POLICYINFO ,
.Nm d2i_CERTIFICATEPOLICIES ,
.Nm i2d_CERTIFICATEPOLICIES ,
155
156
157
158
159
160
161




.Xr ASN1_item_d2i 3 ,
.Xr POLICYINFO_new 3 ,
.Xr X509_EXTENSION_new 3
.Sh STANDARDS
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile,
section 4.2.1.4: Certificate Policies











>
>
>
>
155
156
157
158
159
160
161
162
163
164
165
.Xr ASN1_item_d2i 3 ,
.Xr POLICYINFO_new 3 ,
.Xr X509_EXTENSION_new 3
.Sh STANDARDS
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile,
section 4.2.1.4: Certificate Policies
.Sh HISTORY
These functions first appeared in OpenSSL 0.9.3
and have been available since
.Ox 2.6 .
Changes to jni/libressl/man/d2i_PROXY_POLICY.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: d2i_PROXY_POLICY.3,v 1.1 2016/12/28 20:36:33 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 28 2016 $
.Dt D2I_PROXY_POLICY 3
.Os
.Sh NAME
.Nm d2i_PROXY_POLICY ,
.Nm i2d_PROXY_POLICY ,
.Nm d2i_PROXY_CERT_INFO_EXTENSION ,
.Nm i2d_PROXY_CERT_INFO_EXTENSION
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: d2i_PROXY_POLICY.3,v 1.2 2018/03/22 22:07:12 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt D2I_PROXY_POLICY 3
.Os
.Sh NAME
.Nm d2i_PROXY_POLICY ,
.Nm i2d_PROXY_POLICY ,
.Nm d2i_PROXY_CERT_INFO_EXTENSION ,
.Nm i2d_PROXY_CERT_INFO_EXTENSION
87
88
89
90
91
92
93




.Sh SEE ALSO
.Xr ASN1_item_d2i 3 ,
.Xr PROXY_POLICY_new 3 ,
.Xr X509_EXTENSION_new 3
.Sh STANDARDS
RFC 3820: Internet X.509 Public Key Infrastructure (PKI) Proxy
Certificate Profile











>
>
>
>
87
88
89
90
91
92
93
94
95
96
97
.Sh SEE ALSO
.Xr ASN1_item_d2i 3 ,
.Xr PROXY_POLICY_new 3 ,
.Xr X509_EXTENSION_new 3
.Sh STANDARDS
RFC 3820: Internet X.509 Public Key Infrastructure (PKI) Proxy
Certificate Profile
.Sh HISTORY
These functions first appeared in OpenSSL 0.9.7g
and have been available since
.Ox 3.8 .
Changes to jni/libressl/man/d2i_PrivateKey.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: d2i_PrivateKey.3,v 1.5 2016/12/28 01:38:16 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: d2i_PrivateKey.3,v 1.7 2018/03/22 16:06:33 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 28 2016 $
.Dt D2I_PRIVATEKEY 3
.Os
.Sh NAME
.Nm d2i_PrivateKey ,
.Nm d2i_AutoPrivateKey ,
.Nm i2d_PrivateKey ,
.Nm d2i_PrivateKey_bio ,







|







61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt D2I_PRIVATEKEY 3
.Os
.Sh NAME
.Nm d2i_PrivateKey ,
.Nm d2i_AutoPrivateKey ,
.Nm i2d_PrivateKey ,
.Nm d2i_PrivateKey_bio ,
261
262
263
264
265
266
267



















.Xr d2i_PKCS8PrivateKey_bio 3 ,
.Xr EVP_PKEY_type 3 ,
.Xr PEM_write_PrivateKey 3 ,
.Xr PKCS8_PRIV_KEY_INFO_new 3
.Sh STANDARDS
RFC 5208: Public-Key Cryptography Standards (PKCS) #8: Private-Key
Information Syntax Specification


























>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
.Xr d2i_PKCS8PrivateKey_bio 3 ,
.Xr EVP_PKEY_type 3 ,
.Xr PEM_write_PrivateKey 3 ,
.Xr PKCS8_PRIV_KEY_INFO_new 3
.Sh STANDARDS
RFC 5208: Public-Key Cryptography Standards (PKCS) #8: Private-Key
Information Syntax Specification
.Sh HISTORY
.Fn d2i_PrivateKey ,
.Fn i2d_PrivateKey ,
.Fn d2i_PublicKey ,
and
.Fn i2d_PublicKey
appeared in SSLeay 0.8.1b or earlier and have been available since
.Ox 2.4 .
.Pp
.Fn d2i_AutoPrivateKey ,
.Fn d2i_PrivateKey_bio ,
.Fn i2d_PrivateKey_bio ,
.Fn d2i_PrivateKey_fp ,
.Fn i2d_PrivateKey_fp ,
.Fn i2d_PKCS8PrivateKeyInfo_bio ,
and
.Fn i2d_PKCS8PrivateKeyInfo_fp
first appeared in OpenSSL 0.9.5 and have been available since
.Ox 2.7 .
Changes to jni/libressl/man/d2i_RSAPublicKey.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: d2i_RSAPublicKey.3,v 1.9 2016/12/26 17:19:23 schwarze Exp $
.\"	OpenSSL bb9ad09e Jun 6 00:43:05 2016 -0400
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: d2i_RSAPublicKey.3,v 1.12 2018/03/23 05:48:56 schwarze Exp $
.\"	OpenSSL bb9ad09e Jun 6 00:43:05 2016 -0400
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 26 2016 $
.Dt D2I_RSAPUBLICKEY 3
.Os
.Sh NAME
.Nm d2i_RSAPublicKey ,
.Nm i2d_RSAPublicKey ,
.Nm d2i_RSAPrivateKey ,
.Nm i2d_RSAPrivateKey ,







|







63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt D2I_RSAPUBLICKEY 3
.Os
.Sh NAME
.Nm d2i_RSAPublicKey ,
.Nm i2d_RSAPublicKey ,
.Nm d2i_RSAPrivateKey ,
.Nm i2d_RSAPrivateKey ,
344
345
346
347
348
349
350


































.Xr X509_PUBKEY_new 3
.Sh STANDARDS
RFC 8017: PKCS #1: RSA Cryptography Specifications
.Pp
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile,
section 4.1: Basic Certificate Fields









































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
.Xr X509_PUBKEY_new 3
.Sh STANDARDS
RFC 8017: PKCS #1: RSA Cryptography Specifications
.Pp
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile,
section 4.1: Basic Certificate Fields
.Sh HISTORY
.Fn d2i_RSAPublicKey ,
.Fn i2d_RSAPublicKey ,
.Fn d2i_RSAPrivateKey ,
.Fn i2d_RSAPrivateKey ,
.Fn d2i_Netscape_RSA ,
.Fn i2d_Netscape_RSA ,
.Fn d2i_RSAPublicKey_bio ,
.Fn d2i_RSAPublicKey_fp ,
.Fn i2d_RSAPublicKey_bio ,
.Fn i2d_RSAPublicKey_fp ,
.Fn d2i_RSAPrivateKey_bio ,
.Fn d2i_RSAPrivateKey_fp ,
.Fn i2d_RSAPrivateKey_bio ,
and
.Fn i2d_RSAPrivateKey_fp
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp
.Fn d2i_RSA_PUBKEY ,
.Fn i2d_RSA_PUBKEY ,
.Fn d2i_RSA_PUBKEY_bio ,
.Fn d2i_RSA_PUBKEY_fp ,
.Fn i2d_RSA_PUBKEY_bio ,
and
.Fn i2d_RSA_PUBKEY_fp
first appeared in OpenSSL 0.9.5 and have been available since
.Ox 2.7 .
.Pp
.Fn d2i_RSA_PSS_PARAMS
and
.Fn i2d_RSA_PSS_PARAMS
first appeared in OpenSSL 1.0.1 and have been available since
.Ox 5.3 .
Changes to jni/libressl/man/d2i_SSL_SESSION.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: d2i_SSL_SESSION.3,v 1.3 2017/04/10 16:11:50 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2005, 2014 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: d2i_SSL_SESSION.3,v 1.4 2018/03/21 05:07:04 schwarze Exp $
.\"	OpenSSL b97fdb57 Nov 11 09:33:09 2016 +0100
.\"
.\" This file was written by Lutz Jaenicke <jaenicke@openssl.org>.
.\" Copyright (c) 2001, 2005, 2014 The OpenSSL Project.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: April 10 2017 $
.Dt D2I_SSL_SESSION 3
.Os
.Sh NAME
.Nm d2i_SSL_SESSION ,
.Nm i2d_SSL_SESSION
.Nd convert SSL_SESSION object from/to ASN1 representation
.Sh SYNOPSIS







|







44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt D2I_SSL_SESSION 3
.Os
.Sh NAME
.Nm d2i_SSL_SESSION ,
.Nm i2d_SSL_SESSION
.Nd convert SSL_SESSION object from/to ASN1 representation
.Sh SYNOPSIS
171
172
173
174
175
176
177






returns the size of the ASN1 representation in bytes.
When the session is not valid, 0 is returned and no operation is performed.
.Sh SEE ALSO
.Xr d2i_X509 3 ,
.Xr ssl 3 ,
.Xr SSL_CTX_sess_set_get_cb 3 ,
.Xr SSL_SESSION_free 3













>
>
>
>
>
>
171
172
173
174
175
176
177
178
179
180
181
182
183
returns the size of the ASN1 representation in bytes.
When the session is not valid, 0 is returned and no operation is performed.
.Sh SEE ALSO
.Xr d2i_X509 3 ,
.Xr ssl 3 ,
.Xr SSL_CTX_sess_set_get_cb 3 ,
.Xr SSL_SESSION_free 3
.Sh HISTORY
.Fn d2i_SSL_SESSION
and
.Fn i2d_SSL_SESSION
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/d2i_TS_REQ.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: d2i_TS_REQ.3,v 1.1 2016/12/27 20:56:18 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 27 2016 $
.Dt D2I_TS_REQ 3
.Os
.Sh NAME
.Nm d2i_TS_REQ ,
.Nm i2d_TS_REQ ,
.Nm d2i_TS_REQ_bio ,
.Nm i2d_TS_REQ_bio ,
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: d2i_TS_REQ.3,v 1.2 2018/03/23 04:34:23 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt D2I_TS_REQ 3
.Os
.Sh NAME
.Nm d2i_TS_REQ ,
.Nm i2d_TS_REQ ,
.Nm d2i_TS_REQ_bio ,
.Nm i2d_TS_REQ_bio ,
323
324
325
326
327
328
329




.Fn i2d_TS_MSG_IMPRINT_fp
return 1 for success or 0 if an error occurs.
.Sh SEE ALSO
.Xr ASN1_item_d2i 3 ,
.Xr TS_REQ_new 3
.Sh STANDARDS
RFC 3161: Internet X.509 Public Key Infrastructure Time-Stamp Protocol











>
>
>
>
323
324
325
326
327
328
329
330
331
332
333
.Fn i2d_TS_MSG_IMPRINT_fp
return 1 for success or 0 if an error occurs.
.Sh SEE ALSO
.Xr ASN1_item_d2i 3 ,
.Xr TS_REQ_new 3
.Sh STANDARDS
RFC 3161: Internet X.509 Public Key Infrastructure Time-Stamp Protocol
.Sh HISTORY
These functions first appeared in OpenSSL 1.0.0
and have been available since
.Ox 4.9 .
Changes to jni/libressl/man/d2i_X509.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: d2i_X509.3,v 1.6 2016/12/28 03:56:35 schwarze Exp $
.\"	OpenSSL 94480b57 Sep 12 23:34:41 2009 +0000
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: d2i_X509.3,v 1.8 2018/03/22 16:06:33 schwarze Exp $
.\"	OpenSSL 94480b57 Sep 12 23:34:41 2009 +0000
.\"
.\" This file is a derived work.
.\" The changes are covered by the following Copyright and license:
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 28 2016 $
.Dt D2I_X509 3
.Os
.Sh NAME
.Nm d2i_X509 ,
.Nm i2d_X509 ,
.Nm d2i_X509_bio ,
.Nm d2i_X509_fp ,







|







62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt D2I_X509 3
.Os
.Sh NAME
.Nm d2i_X509 ,
.Nm i2d_X509 ,
.Nm d2i_X509_bio ,
.Nm d2i_X509_fp ,
271
272
273
274
275
276
277




278








279
280

Certificate Revocation List (CRL) Profile
.Sh HISTORY
.Fn d2i_X509 ,
.Fn i2d_X509 ,
.Fn d2i_X509_bio ,
.Fn d2i_X509_fp ,
.Fn i2d_X509_bio ,




and








.Fn i2d_X509_fp
are available in all versions of SSLeay and OpenSSL.








>
>
>
>

>
>
>
>
>
>
>
>
|
|
>
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
Certificate Revocation List (CRL) Profile
.Sh HISTORY
.Fn d2i_X509 ,
.Fn i2d_X509 ,
.Fn d2i_X509_bio ,
.Fn d2i_X509_fp ,
.Fn i2d_X509_bio ,
.Fn i2d_X509_fp ,
.Fn d2i_X509_CINF ,
.Fn i2d_X509_CINF ,
.Fn d2i_X509_VAL ,
and
.Fn i2d_X509_VAL
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp
.Fn d2i_X509_AUX ,
.Fn i2d_X509_AUX ,
.Fn d2i_X509_CERT_AUX ,
and
.Fn i2d_X509_CERT_AUX
first appeared in OpenSSL 0.9.5 and have been available since
.Ox 2.7 .
Changes to jni/libressl/man/d2i_X509_ALGOR.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
.\"	$OpenBSD: d2i_X509_ALGOR.3,v 1.7 2016/12/28 14:17:47 schwarze Exp $
.\"	OpenSSL 186bb907 Apr 13 11:05:13 2015 -0700
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 28 2016 $
.Dt D2I_X509_ALGOR 3
.Os
.Sh NAME
.Nm d2i_X509_ALGOR ,
.Nm i2d_X509_ALGOR
.Nd decode and encode algorithm identifiers
.Sh SYNOPSIS
|
















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
.\"	$OpenBSD: d2i_X509_ALGOR.3,v 1.8 2018/03/21 03:16:08 schwarze Exp $
.\"	OpenSSL 186bb907 Apr 13 11:05:13 2015 -0700
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt D2I_X509_ALGOR 3
.Os
.Sh NAME
.Nm d2i_X509_ALGOR ,
.Nm i2d_X509_ALGOR
.Nd decode and encode algorithm identifiers
.Sh SYNOPSIS
46
47
48
49
50
51
52






.Xr ASN1_item_d2i 3 .
.Sh SEE ALSO
.Xr ASN1_item_d2i 3 ,
.Xr X509_ALGOR_new 3
.Sh STANDARDS
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile













>
>
>
>
>
>
46
47
48
49
50
51
52
53
54
55
56
57
58
.Xr ASN1_item_d2i 3 .
.Sh SEE ALSO
.Xr ASN1_item_d2i 3 ,
.Xr X509_ALGOR_new 3
.Sh STANDARDS
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile
.Sh HISTORY
.Fn d2i_X509_ALGOR
and
.Fn i2d_X509_ALGOR
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/d2i_X509_ATTRIBUTE.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: d2i_X509_ATTRIBUTE.3,v 1.1 2016/12/28 13:45:30 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 28 2016 $
.Dt D2I_X509_ATTRIBUTE 3
.Os
.Sh NAME
.Nm d2i_X509_ATTRIBUTE ,
.Nm i2d_X509_ATTRIBUTE
.\" In the following line, "X.501" and "Attribute" are not typos.
.\" The "Attribute" type is defined in X.501, not in X.509.
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: d2i_X509_ATTRIBUTE.3,v 1.2 2018/03/21 03:16:08 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt D2I_X509_ATTRIBUTE 3
.Os
.Sh NAME
.Nm d2i_X509_ATTRIBUTE ,
.Nm i2d_X509_ATTRIBUTE
.\" In the following line, "X.501" and "Attribute" are not typos.
.\" The "Attribute" type is defined in X.501, not in X.509.
64
65
66
67
68
69
70






.Xr d2i_X509_EXTENSION 3 ,
.Xr d2i_X509_REQ 3 ,
.Xr X509_ATTRIBUTE_new 3
.Sh STANDARDS
ITU-T Recommendation X.501, also known as ISO/IEC 9594-2: Information
Technology  Open Systems Interconnection  The Directory: Models,
section 8.2: Overall structure













>
>
>
>
>
>
64
65
66
67
68
69
70
71
72
73
74
75
76
.Xr d2i_X509_EXTENSION 3 ,
.Xr d2i_X509_REQ 3 ,
.Xr X509_ATTRIBUTE_new 3
.Sh STANDARDS
ITU-T Recommendation X.501, also known as ISO/IEC 9594-2: Information
Technology  Open Systems Interconnection  The Directory: Models,
section 8.2: Overall structure
.Sh HISTORY
.Fn d2i_X509_ATTRIBUTE
and
.Fn i2d_X509_ATTRIBUTE
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/d2i_X509_CRL.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
.\"	$OpenBSD: d2i_X509_CRL.3,v 1.5 2016/12/28 14:59:39 schwarze Exp $
.\"	OpenSSL bb9ad09e Jun 6 00:43:05 2016 -0400
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 28 2016 $
.Dt D2I_X509_CRL 3
.Os
.Sh NAME
.Nm d2i_X509_CRL ,
.Nm i2d_X509_CRL ,
.Nm d2i_X509_CRL_bio ,
.Nm d2i_X509_CRL_fp ,
|
















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
.\"	$OpenBSD: d2i_X509_CRL.3,v 1.6 2018/03/21 03:16:08 schwarze Exp $
.\"	OpenSSL bb9ad09e Jun 6 00:43:05 2016 -0400
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt D2I_X509_CRL 3
.Os
.Sh NAME
.Nm d2i_X509_CRL ,
.Nm i2d_X509_CRL ,
.Nm d2i_X509_CRL_bio ,
.Nm d2i_X509_CRL_fp ,
125
126
127
128
129
130
131














.Xr ASN1_item_d2i 3 ,
.Xr X509_CRL_new 3 ,
.Xr X509_REVOKED_new 3
.Sh STANDARDS
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile,
section 5: CRL and CRL Extensions Profile





















>
>
>
>
>
>
>
>
>
>
>
>
>
>
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
.Xr ASN1_item_d2i 3 ,
.Xr X509_CRL_new 3 ,
.Xr X509_REVOKED_new 3
.Sh STANDARDS
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile,
section 5: CRL and CRL Extensions Profile
.Sh HISTORY
.Fn d2i_X509_CRL ,
.Fn i2d_X509_CRL ,
.Fn d2i_X509_CRL_bio ,
.Fn d2i_X509_CRL_fp ,
.Fn i2d_X509_CRL_bio ,
.Fn i2d_X509_CRL_fp ,
.Fn d2i_X509_CRL_INFO ,
.Fn i2d_X509_CRL_INFO ,
.Fn d2i_X509_REVOKED ,
and
.Fn i2d_X509_REVOKED
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/d2i_X509_EXTENSION.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: d2i_X509_EXTENSION.3,v 1.1 2016/12/28 13:45:30 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 28 2016 $
.Dt D2I_X509_EXTENSION 3
.Os
.Sh NAME
.Nm d2i_X509_EXTENSION ,
.Nm i2d_X509_EXTENSION ,
.Nm d2i_X509_EXTENSIONS ,
.Nm i2d_X509_EXTENSIONS
|















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.\"	$OpenBSD: d2i_X509_EXTENSION.3,v 1.3 2018/03/23 01:05:50 schwarze Exp $
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt D2I_X509_EXTENSION 3
.Os
.Sh NAME
.Nm d2i_X509_EXTENSION ,
.Nm i2d_X509_EXTENSION ,
.Nm d2i_X509_EXTENSIONS ,
.Nm i2d_X509_EXTENSIONS
86
87
88
89
90
91
92












.Xr ASN1_item_d2i 3 ,
.Xr X509_EXTENSION_new 3 ,
.Xr X509V3_get_d2i 3 ,
.Xr X509v3_get_ext_by_NID 3
.Sh STANDARDS
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile



















>
>
>
>
>
>
>
>
>
>
>
>
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
.Xr ASN1_item_d2i 3 ,
.Xr X509_EXTENSION_new 3 ,
.Xr X509V3_get_d2i 3 ,
.Xr X509v3_get_ext_by_NID 3
.Sh STANDARDS
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile
.Sh HISTORY
.Fn d2i_X509_EXTENSION
and
.Fn i2d_X509_EXTENSION
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp
.Fn d2i_X509_EXTENSIONS
and
.Fn i2d_X509_EXTENSIONS
first appeared in OpenSSL 0.9.8h and have been available since
.Ox 4.5 .
Changes to jni/libressl/man/d2i_X509_NAME.3.
1

2

3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45






46
47
48
49
50
51
52
.\"	$OpenBSD: d2i_X509_NAME.3,v 1.10 2017/01/07 08:46:13 jmc Exp $

.\"	OpenSSL d900a015 Oct 8 14:40:42 2015 +0200

.\"
.\" Copyright (c) 2016, 2017 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: January 7 2017 $
.Dt D2I_X509_NAME 3
.Os
.Sh NAME
.Nm d2i_X509_NAME ,
.Nm i2d_X509_NAME ,

.Nm X509_NAME_dup ,
.Nm X509_NAME_hash ,
.Nm d2i_X509_NAME_ENTRY ,
.Nm i2d_X509_NAME_ENTRY ,
.Nm X509_NAME_ENTRY_dup
.\" In the following line, "X.501" and "Name" are not typos.
.\" The "Name" type is defined in X.501, not in X.509.
.\" The type in called "Name" with capital "N", not "name".
.Nd decode and encode X.501 Name objects
.Sh SYNOPSIS
.In openssl/x509.h
.Ft X509_NAME *
.Fo d2i_X509_NAME
.Fa "X509_NAME **val_out"
.Fa "unsigned char **der_in"
.Fa "long length"
.Fc
.Ft int
.Fo i2d_X509_NAME
.Fa "X509_NAME *val_in"
.Fa "unsigned char **der_out"
.Fc






.Ft X509_NAME *
.Fo X509_NAME_dup
.Fa "X509_NAME *val_in"
.Fc
.Ft unsigned long
.Fo X509_NAME_hash
.Fa "X509_NAME *val_in"
|
>
|
>

|













|





>







|














>
>
>
>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
.\" $OpenBSD: d2i_X509_NAME.3,v 1.13 2018/03/23 23:18:17 schwarze Exp $
.\" checked up to:
.\" OpenSSL crypto/d2i_X509_NAME 4692340e Jun 7 15:49:08 2016 -0400 and
.\" OpenSSL man3/X509_NAME_get0_der 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" Copyright (c) 2016, 2017, 2018 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt D2I_X509_NAME 3
.Os
.Sh NAME
.Nm d2i_X509_NAME ,
.Nm i2d_X509_NAME ,
.Nm X509_NAME_get0_der ,
.Nm X509_NAME_dup ,
.Nm X509_NAME_hash ,
.Nm d2i_X509_NAME_ENTRY ,
.Nm i2d_X509_NAME_ENTRY ,
.Nm X509_NAME_ENTRY_dup
.\" In the following line, "X.501" and "Name" are not typos.
.\" The "Name" type is defined in X.501, not in X.509.
.\" The type is called "Name" with capital "N", not "name".
.Nd decode and encode X.501 Name objects
.Sh SYNOPSIS
.In openssl/x509.h
.Ft X509_NAME *
.Fo d2i_X509_NAME
.Fa "X509_NAME **val_out"
.Fa "unsigned char **der_in"
.Fa "long length"
.Fc
.Ft int
.Fo i2d_X509_NAME
.Fa "X509_NAME *val_in"
.Fa "unsigned char **der_out"
.Fc
.Ft int
.Fo X509_NAME_get0_der
.Fa "X509_NAME *val_in"
.Fa "const unsigned char **der_out"
.Fa "size_t *out_len"
.Fc
.Ft X509_NAME *
.Fo X509_NAME_dup
.Fa "X509_NAME *val_in"
.Fc
.Ft unsigned long
.Fo X509_NAME_hash
.Fa "X509_NAME *val_in"
76
77
78
79
80
81
82











83
84
85
86
87
88
89
.Fn d2i_X509_NAME
and
.Fn i2d_X509_NAME
decode and encode an ASN.1
.Vt Name
structure defined in RFC 5280 section 4.1.2.4.
.Pp











.Fn X509_NAME_dup
copies
.Fa val_in
by calling
.Fn i2d_X509_NAME
and
.Fn d2i_X509_NAME .







>
>
>
>
>
>
>
>
>
>
>







85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
.Fn d2i_X509_NAME
and
.Fn i2d_X509_NAME
decode and encode an ASN.1
.Vt Name
structure defined in RFC 5280 section 4.1.2.4.
.Pp
.Fn X509_NAME_get0_der
is a variant of
.Fn i2d_X509_NAME
that does not copy the encoded output but instead returns a pointer
to the internally cached DER-encoded version of the name.
Also, it does not return the length of the output in bytes,
but instead stores it in
.Fa out_len .
If the cached encoded form happens to be out of date, both functions
update it before copying it or returning a pointer to it.
.Pp
.Fn X509_NAME_dup
copies
.Fa val_in
by calling
.Fn i2d_X509_NAME
and
.Fn d2i_X509_NAME .
117
118
119
120
121
122
123



124
125
126
127
128
129
130
.Fn X509_NAME_dup
return the new
.Vt X509_NAME
object or
.Dv NULL
if an error occurs.
.Pp



.Fn X509_NAME_hash
returns the hash value or 0 if an error occurs.
.Pp
.Fn d2i_X509_NAME_ENTRY
and
.Fn X509_NAME_ENTRY_dup
return the new







>
>
>







137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
.Fn X509_NAME_dup
return the new
.Vt X509_NAME
object or
.Dv NULL
if an error occurs.
.Pp
.Fn X509_NAME_get0_der
returns 1 on success or 0 if an error occurs.
.Pp
.Fn X509_NAME_hash
returns the hash value or 0 if an error occurs.
.Pp
.Fn d2i_X509_NAME_ENTRY
and
.Fn X509_NAME_ENTRY_dup
return the new
147
148
149
150
151
152
153















RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile
.Pp
ITU-T Recommendation X.690, also known as ISO/IEC 8825-1:
Information technology - ASN.1 encoding rules:
Specification of Basic Encoding Rules (BER), Canonical Encoding
Rules (CER) and Distinguished Encoding Rules (DER).






















>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
RFC 5280: Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile
.Pp
ITU-T Recommendation X.690, also known as ISO/IEC 8825-1:
Information technology - ASN.1 encoding rules:
Specification of Basic Encoding Rules (BER), Canonical Encoding
Rules (CER) and Distinguished Encoding Rules (DER).
.Sh HISTORY
.Fn d2i_X509_NAME ,
.Fn i2d_X509_NAME ,
.Fn X509_NAME_dup ,
.Fn X509_NAME_hash ,
.Fn d2i_X509_NAME_ENTRY ,
.Fn i2d_X509_NAME_ENTRY ,
and
.Fn X509_NAME_ENTRY_dup
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp
.Fn X509_NAME_get0_der
first appeared in OpenSSL 1.1.0 and has been available since
.Ox 6.3 .
Changes to jni/libressl/man/d2i_X509_REQ.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
.\"	$OpenBSD: d2i_X509_REQ.3,v 1.5 2016/12/28 15:18:05 schwarze Exp $
.\"	OpenSSL bb9ad09e Jun 6 00:43:05 2016 -0400
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 28 2016 $
.Dt D2I_X509_REQ 3
.Os
.Sh NAME
.Nm d2i_X509_REQ ,
.Nm i2d_X509_REQ ,
.Nm d2i_X509_REQ_bio ,
.Nm d2i_X509_REQ_fp ,
|
















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
.\"	$OpenBSD: d2i_X509_REQ.3,v 1.6 2018/03/21 03:16:08 schwarze Exp $
.\"	OpenSSL bb9ad09e Jun 6 00:43:05 2016 -0400
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt D2I_X509_REQ 3
.Os
.Sh NAME
.Nm d2i_X509_REQ ,
.Nm i2d_X509_REQ ,
.Nm d2i_X509_REQ_bio ,
.Nm d2i_X509_REQ_fp ,
130
131
132
133
134
135
136












return 1 for success or 0 if an error occurs.
.Sh SEE ALSO
.Xr ASN1_item_d2i 3 ,
.Xr PEM_read_X509_REQ 3 ,
.Xr X509_REQ_new 3
.Sh STANDARDS
RFC 2986: PKCS #10: Certification Request Syntax Specification



















>
>
>
>
>
>
>
>
>
>
>
>
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
return 1 for success or 0 if an error occurs.
.Sh SEE ALSO
.Xr ASN1_item_d2i 3 ,
.Xr PEM_read_X509_REQ 3 ,
.Xr X509_REQ_new 3
.Sh STANDARDS
RFC 2986: PKCS #10: Certification Request Syntax Specification
.Sh HISTORY
.Fn d2i_X509_REQ ,
.Fn i2d_X509_REQ ,
.Fn d2i_X509_REQ_bio ,
.Fn d2i_X509_REQ_fp ,
.Fn i2d_X509_REQ_bio ,
.Fn i2d_X509_REQ_fp ,
.Fn d2i_X509_REQ_INFO ,
and
.Fn i2d_X509_REQ_INFO
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
Changes to jni/libressl/man/d2i_X509_SIG.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
.\"	$OpenBSD: d2i_X509_SIG.3,v 1.6 2016/12/28 02:48:59 schwarze Exp $
.\"	OpenSSL 9b86974e Aug 17 15:21:33 2015 -0400
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: December 28 2016 $
.Dt D2I_X509_SIG 3
.Os
.Sh NAME
.Nm d2i_X509_SIG ,
.Nm i2d_X509_SIG ,
.Nm d2i_PKCS8_bio ,
.Nm i2d_PKCS8_bio ,
|
















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
.\"	$OpenBSD: d2i_X509_SIG.3,v 1.8 2018/03/21 21:18:08 schwarze Exp $
.\"	OpenSSL 9b86974e Aug 17 15:21:33 2015 -0400
.\"
.\" Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 21 2018 $
.Dt D2I_X509_SIG 3
.Os
.Sh NAME
.Nm d2i_X509_SIG ,
.Nm i2d_X509_SIG ,
.Nm d2i_PKCS8_bio ,
.Nm i2d_PKCS8_bio ,
119
120
121
122
123
124
125














126
127
128
129
130
131
132
.Xr X509_SIG_new 3
.Sh STANDARDS
RFC 2315: PKCS #7: Cryptographic Message Syntax,
section 9: Signed-data content type
.Pp
RFC 8017: PKCS #1: RSA Cryptography Specifications,
section 9: Encoding Methods for Signatures














.Sh BUGS
.Fn d2i_PKCS8_bio ,
.Fn i2d_PKCS8_bio ,
.Fn d2i_PKCS8_fp ,
and
.Fn i2d_PKCS8_fp
are severely misnamed and should have been called







>
>
>
>
>
>
>
>
>
>
>
>
>
>







119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
.Xr X509_SIG_new 3
.Sh STANDARDS
RFC 2315: PKCS #7: Cryptographic Message Syntax,
section 9: Signed-data content type
.Pp
RFC 8017: PKCS #1: RSA Cryptography Specifications,
section 9: Encoding Methods for Signatures
.Sh HISTORY
.Fn d2i_X509_SIG
and
.Fn i2d_X509_SIG
appeared before SSLeay 0.8 and have been available since
.Ox 2.4 .
.Pp
.Fn d2i_PKCS8_bio ,
.Fn i2d_PKCS8_bio ,
.Fn d2i_PKCS8_fp ,
and
.Fn i2d_PKCS8_fp
first appeared in OpenSSL 0.9.4 and have been available since
.Ox 2.6 .
.Sh BUGS
.Fn d2i_PKCS8_bio ,
.Fn i2d_PKCS8_bio ,
.Fn d2i_PKCS8_fp ,
and
.Fn i2d_PKCS8_fp
are severely misnamed and should have been called
Changes to jni/libressl/man/des_read_pw.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: des_read_pw.3,v 1.6 2017/01/06 17:17:29 schwarze Exp $
.\"	OpenSSL doc/crypto/ui_compat.pod May 14 11:28:00 2006 +0000
.\"	OpenSSL doc/crypto/des.pod 2a9aca32 Oct 25 08:44:10 2001 +0000
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org> and
.\" Richard Levitte <levitte@openssl.org>.
.\" Copyright (c) 2000, 2001 The OpenSSL Project.  All rights reserved.
.\"
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: des_read_pw.3,v 1.7 2018/03/20 22:06:59 schwarze Exp $
.\"	OpenSSL doc/crypto/ui_compat.pod May 14 11:28:00 2006 +0000
.\"	OpenSSL doc/crypto/des.pod 2a9aca32 Oct 25 08:44:10 2001 +0000
.\"
.\" This file was written by Ulf Moeller <ulf@openssl.org> and
.\" Richard Levitte <levitte@openssl.org>.
.\" Copyright (c) 2000, 2001 The OpenSSL Project.  All rights reserved.
.\"
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: January 6 2017 $
.Dt DES_READ_PW 3
.Os
.Sh NAME
.Nm des_read_pw ,
.Nm des_read_pw_string ,
.Nm EVP_read_pw_string
.Nd compatibility user interface functions







|







46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 20 2018 $
.Dt DES_READ_PW 3
.Os
.Sh NAME
.Nm des_read_pw ,
.Nm des_read_pw_string ,
.Nm EVP_read_pw_string
.Nd compatibility user interface functions
126
127
128
129
130
131
132




133
134
135
.Dv BUFSIZ .
.Pp
.Fn EVP_read_pw_string
is functionally similar to
.Fn des_read_pw_string .
.Sh SEE ALSO
.Xr UI_new 3




.Sh AUTHORS
.An Richard Levitte Aq Mt richard@levitte.org
for the OpenSSL project.







>
>
>
>



126
127
128
129
130
131
132
133
134
135
136
137
138
139
.Dv BUFSIZ .
.Pp
.Fn EVP_read_pw_string
is functionally similar to
.Fn des_read_pw_string .
.Sh SEE ALSO
.Xr UI_new 3
.Sh HISTORY
These functions appeared in SSLeay 0.8.1b or earlier
and have been available since
.Ox 2.4 .
.Sh AUTHORS
.An Richard Levitte Aq Mt richard@levitte.org
for the OpenSSL project.
Changes to jni/libressl/man/engine.3.
1
2

3
4

5
6
7
8
9
10
11
12
.\"	$OpenBSD: engine.3,v 1.10 2017/01/06 20:35:23 schwarze Exp $
.\"	OpenSSL a528d4f0 Oct 27 13:40:11 2015 -0400

.\"
.\" This file was written by Geoff Thorpe <geoff@openssl.org>.

.\" Copyright (c) 2002, 2004, 2007, 2015 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
|
|
>

|
>
|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
.\" $OpenBSD: engine.3,v 1.13 2018/03/22 21:08:22 schwarze Exp $
.\" full merge up to: OpenSSL crypto/engine e6390aca Jul 21 10:06:03 2015 -0400
.\" selective merge up to: man3/ENGINE_add 1f13ad31 Dec 25 17:50:39 2017 +0800
.\"
.\" This file was written by Geoff Thorpe <geoff@openssl.org>
.\" with contributions from Paul Yang <yang.yang@baishancloud.com>.
.\" Copyright (c) 2002, 2004, 2007, 2015, 2017 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62



63




64





















65













































































66
67
68
69
70
71
72
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: January 6 2017 $
.Dt ENGINE 3
.Os
.Sh NAME
.Nm ENGINE_add ,
.Nm ENGINE_by_id ,
.Nm ENGINE_finish ,
.Nm ENGINE_get_first ,
.Nm ENGINE_get_last ,
.Nm ENGINE_get_next ,
.Nm ENGINE_get_prev ,



.Nm ENGINE_init ,




.Nm ENGINE_load_builtin_engines ,





















.Nm ENGINE_remove













































































.Nd ENGINE cryptographic module support
.Sh SYNOPSIS
.In openssl/engine.h
.Ft ENGINE *
.Fn ENGINE_get_first void
.Ft ENGINE *
.Fn ENGINE_get_last void







|



<
<
<




>
>
>

>
>
>
>

>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







47
48
49
50
51
52
53
54
55
56
57



58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 22 2018 $
.Dt ENGINE 3
.Os
.Sh NAME



.Nm ENGINE_get_first ,
.Nm ENGINE_get_last ,
.Nm ENGINE_get_next ,
.Nm ENGINE_get_prev ,
.Nm ENGINE_add ,
.Nm ENGINE_remove ,
.Nm ENGINE_by_id ,
.Nm ENGINE_init ,
.Nm ENGINE_finish ,
.Nm ENGINE_load_openssl ,
.Nm ENGINE_load_dynamic ,
.Nm ENGINE_load_cryptodev ,
.Nm ENGINE_load_builtin_engines ,
.Nm ENGINE_cleanup ,
.Nm ENGINE_get_default_RSA ,
.Nm ENGINE_get_default_DSA ,
.Nm ENGINE_get_default_ECDH ,
.Nm ENGINE_get_default_ECDSA ,
.Nm ENGINE_get_default_DH ,
.Nm ENGINE_get_default_RAND ,
.Nm ENGINE_get_cipher_engine ,
.Nm ENGINE_get_digest_engine ,
.Nm ENGINE_set_default_RSA ,
.Nm ENGINE_set_default_DSA ,
.Nm ENGINE_set_default_ECDH ,
.Nm ENGINE_set_default_ECDSA ,
.Nm ENGINE_set_default_DH ,
.Nm ENGINE_set_default_RAND ,
.Nm ENGINE_set_default_ciphers ,
.Nm ENGINE_set_default_digests ,
.Nm ENGINE_set_default_string ,
.Nm ENGINE_set_default ,
.Nm ENGINE_get_table_flags ,
.Nm ENGINE_set_table_flags ,
.Nm ENGINE_register_RSA ,
.Nm ENGINE_unregister_RSA ,
.Nm ENGINE_register_all_RSA ,
.Nm ENGINE_register_DSA ,
.Nm ENGINE_unregister_DSA ,
.Nm ENGINE_register_all_DSA ,
.Nm ENGINE_register_ECDH ,
.Nm ENGINE_unregister_ECDH ,
.Nm ENGINE_register_all_ECDH ,
.Nm ENGINE_register_ECDSA ,
.Nm ENGINE_unregister_ECDSA ,
.Nm ENGINE_register_all_ECDSA ,
.Nm ENGINE_register_DH ,
.Nm ENGINE_unregister_DH ,
.Nm ENGINE_register_all_DH ,
.Nm ENGINE_register_RAND ,
.Nm ENGINE_unregister_RAND ,
.Nm ENGINE_register_all_RAND ,
.Nm ENGINE_register_STORE ,
.Nm ENGINE_unregister_STORE ,
.Nm ENGINE_register_all_STORE ,
.Nm ENGINE_register_ciphers ,
.Nm ENGINE_unregister_ciphers ,
.Nm ENGINE_register_all_ciphers ,
.Nm ENGINE_register_digests ,
.Nm ENGINE_unregister_digests ,
.Nm ENGINE_register_all_digests ,
.Nm ENGINE_register_complete ,
.Nm ENGINE_register_all_complete ,
.Nm ENGINE_ctrl ,
.Nm ENGINE_cmd_is_executable ,
.Nm ENGINE_ctrl_cmd ,
.Nm ENGINE_ctrl_cmd_string ,
.Nm ENGINE_new ,
.Nm ENGINE_free ,
.Nm ENGINE_up_ref ,
.Nm ENGINE_set_id ,
.Nm ENGINE_set_name ,
.Nm ENGINE_set_RSA ,
.Nm ENGINE_set_DSA ,
.Nm ENGINE_set_ECDH ,
.Nm ENGINE_set_ECDSA ,
.Nm ENGINE_set_DH ,
.Nm ENGINE_set_RAND ,
.Nm ENGINE_set_STORE ,
.Nm ENGINE_set_destroy_function ,
.Nm ENGINE_set_init_function ,
.Nm ENGINE_set_finish_function ,
.Nm ENGINE_set_ctrl_function ,
.Nm ENGINE_set_load_privkey_function ,
.Nm ENGINE_set_load_pubkey_function ,
.Nm ENGINE_set_ciphers ,
.Nm ENGINE_set_digests ,
.Nm ENGINE_set_flags ,
.Nm ENGINE_set_cmd_defns ,
.Nm ENGINE_get_id ,
.Nm ENGINE_get_name ,
.Nm ENGINE_get_RSA ,
.Nm ENGINE_get_DSA ,
.Nm ENGINE_get_ECDH ,
.Nm ENGINE_get_ECDSA ,
.Nm ENGINE_get_DH ,
.Nm ENGINE_get_RAND ,
.Nm ENGINE_get_STORE ,
.Nm ENGINE_get_destroy_function ,
.Nm ENGINE_get_init_function ,
.Nm ENGINE_get_finish_function ,
.Nm ENGINE_get_ctrl_function ,
.Nm ENGINE_get_load_privkey_function ,
.Nm ENGINE_get_load_pubkey_function ,
.Nm ENGINE_get_ciphers ,
.Nm ENGINE_get_digests ,
.Nm ENGINE_get_cipher ,
.Nm ENGINE_get_digest ,
.Nm ENGINE_get_flags ,
.Nm ENGINE_get_cmd_defns ,
.Nm ENGINE_load_private_key ,
.Nm ENGINE_load_public_key
.Nd ENGINE cryptographic module support
.Sh SYNOPSIS
.In openssl/engine.h
.Ft ENGINE *
.Fn ENGINE_get_first void
.Ft ENGINE *
.Fn ENGINE_get_last void
1193
1194
1195
1196
1197
1198
1199















































































































1200
1201
1202
1203
1204
1205




supports certain specific commands it might want to use (e.g.
application "foo" might query various
.Vt ENGINE Ns s
to see if they implement "FOO_GET_VENDOR_LOGO_GIF" - and
.Vt ENGINE
could therefore decide whether or not to support this "foo"-specific
extension).















































































































.Sh SEE ALSO
.Xr DH_new 3 ,
.Xr DSA_new 3 ,
.Xr ENGINE_add_conf_module 3 ,
.Xr ENGINE_set_ex_data 3 ,
.Xr RSA_new 3











>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>






>
>
>
>
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
supports certain specific commands it might want to use (e.g.
application "foo" might query various
.Vt ENGINE Ns s
to see if they implement "FOO_GET_VENDOR_LOGO_GIF" - and
.Vt ENGINE
could therefore decide whether or not to support this "foo"-specific
extension).
.Sh RETURN VALUES
.Fn ENGINE_get_first ,
.Fn ENGINE_get_last ,
.Fn ENGINE_get_next ,
.Fn ENGINE_get_prev ,
.Fn ENGINE_by_id ,
.Fn ENGINE_get_cipher_engine ,
.Fn ENGINE_get_digest_engine ,
.Fn ENGINE_new ,
and all
.Fn ENGINE_get_default_*
functions return a valid
.Vt ENGINE
structure or
.Dv NULL
if an error occurred.
.Pp
.Fn ENGINE_add ,
.Fn ENGINE_remove ,
.Fn ENGINE_init ,
.Fn ENGINE_finish ,
.Fn ENGINE_ctrl_cmd ,
.Fn ENGINE_ctrl_cmd_string ,
.Fn ENGINE_free ,
.Fn ENGINE_up_ref ,
and all
.Fn ENGINE_set_*
and
.Fn ENGINE_register_*
functions return 1 on success or 0 on error.
.Pp
.Fn ENGINE_get_table_flags
returns an unsigned integer value representing the global table
flags which are used to control the registration behaviour of
.Vt ENGINE
implementations.
.Pp
For
.Fn ENGINE_ctrl ,
positive return values indicate success and negative return values
indicate failure.
The meaning of a zero return value depends on the particular
.Fa cmd
and may indicate both success and failure, which is pathetic.
.Pp
.Fn ENGINE_cmd_is_executable
returns 1 if
.Fa cmd
is executable or 0 otherwise.
.Pp
.Fn ENGINE_get_id
and
.Fn ENGINE_get_name
return a pointer to an internal string representing the identifier
and the name of
.Fa e ,
respectively.
.Pp
.Fn ENGINE_get_RSA ,
.Fn ENGINE_get_DSA ,
.Fn ENGINE_get_DH ,
.Fn ENGINE_get_RAND ,
and
.Fn ENGINE_get_STORE
return a method structure for the respective algorithm.
.Pp
.Fn ENGINE_get_destroy_function ,
.Fn ENGINE_get_init_function ,
.Fn ENGINE_get_finish_function ,
.Fn ENGINE_get_ctrl_function ,
.Fn ENGINE_get_load_privkey_function ,
.Fn ENGINE_get_load_pubkey_function ,
.Fn ENGINE_get_ciphers ,
and
.Fn ENGINE_get_digests
return a function pointer to the respective callback.
.Pp
.Fn ENGINE_get_cipher
returns a valid
.Vt EVP_CIPHER
structure on success or
.Dv NULL
if an error occurred.
.Pp
.Fn ENGINE_get_digest
returns a valid
.Vt EVP_MD
structure on success or
.Dv NULL
if an error occurred.
.Pp
.Fn ENGINE_get_flags
returns an integer representing the flags
which are used to control various behaviours of an
.Vt ENGINE .
.Pp
.Fn ENGINE_get_cmd_defns
returns an
.Vt ENGINE_CMD_DEFN
structure or
.Dv NULL
if none is set.
.Pp
.Fn ENGINE_load_private_key
and
.Fn ENGINE_load_public_key
return a valid
.Vt EVP_PKEY
structure on success or
.Dv NULL
if an error occurred.
.Sh SEE ALSO
.Xr DH_new 3 ,
.Xr DSA_new 3 ,
.Xr ENGINE_add_conf_module 3 ,
.Xr ENGINE_set_ex_data 3 ,
.Xr RSA_new 3
.Sh HISTORY
The engine API first appeared in OpenSSL 0.9.7
and has been available since
.Ox 3.2 .
Changes to jni/libressl/man/get_rfc3526_prime_8192.3.
1

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28







29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
















48
49
50
51



52
53
54
55
56
57
58
.\"	$OpenBSD: get_rfc3526_prime_8192.3,v 1.1 2017/01/31 05:40:26 schwarze Exp $

.\"
.\" Copyright (c) 2017 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: January 31 2017 $
.Dt GET_RFC3526_PRIME_8192 3
.Os
.Sh NAME
.Nm get_rfc2409_prime_768 ,
.Nm get_rfc2409_prime_1024 ,
.Nm get_rfc3526_prime_1536 ,
.Nm get_rfc3526_prime_2048 ,
.Nm get_rfc3526_prime_3072 ,
.Nm get_rfc3526_prime_4096 ,
.Nm get_rfc3526_prime_6144 ,
.Nm get_rfc3526_prime_8192







.Nd standard moduli for Diffie-Hellmann key exchange
.Sh SYNOPSIS
.In openssl/bn.h
.Ft BIGNUM *
.Fn get_rfc2409_prime_768 "BIGNUM *bn"
.Ft BIGNUM *
.Fn get_rfc2409_prime_1024 "BIGNUM *bn"
.Ft BIGNUM *
.Fn get_rfc3526_prime_1536 "BIGNUM *bn"
.Ft BIGNUM *
.Fn get_rfc3526_prime_2048 "BIGNUM *bn"
.Ft BIGNUM *
.Fn get_rfc3526_prime_3072 "BIGNUM *bn"
.Ft BIGNUM *
.Fn get_rfc3526_prime_4096 "BIGNUM *bn"
.Ft BIGNUM *
.Fn get_rfc3526_prime_6144 "BIGNUM *bn"
.Ft BIGNUM *
.Fn get_rfc3526_prime_8192 "BIGNUM *bn"
















.Sh DESCRIPTION
Each of these functions returns one specific constant Sophie Germain
prime number
.Fa p .



.Pp
If
.Fa bn
is
.Dv NULL ,
a new
.Vt BIGNUM
|
>















|










|
>
>
>
>
>
>
>



















>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>




>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
.\" $OpenBSD: get_rfc3526_prime_8192.3,v 1.4 2018/03/23 23:18:17 schwarze Exp $
.\" checked up to: OpenSSL DH_get_1024_160 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" Copyright (c) 2017 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt GET_RFC3526_PRIME_8192 3
.Os
.Sh NAME
.Nm get_rfc2409_prime_768 ,
.Nm get_rfc2409_prime_1024 ,
.Nm get_rfc3526_prime_1536 ,
.Nm get_rfc3526_prime_2048 ,
.Nm get_rfc3526_prime_3072 ,
.Nm get_rfc3526_prime_4096 ,
.Nm get_rfc3526_prime_6144 ,
.Nm get_rfc3526_prime_8192 ,
.Nm BN_get_rfc2409_prime_768 ,
.Nm BN_get_rfc2409_prime_1024 ,
.Nm BN_get_rfc3526_prime_2048 ,
.Nm BN_get_rfc3526_prime_3072 ,
.Nm BN_get_rfc3526_prime_4096 ,
.Nm BN_get_rfc3526_prime_6144 ,
.Nm BN_get_rfc3526_prime_8192
.Nd standard moduli for Diffie-Hellmann key exchange
.Sh SYNOPSIS
.In openssl/bn.h
.Ft BIGNUM *
.Fn get_rfc2409_prime_768 "BIGNUM *bn"
.Ft BIGNUM *
.Fn get_rfc2409_prime_1024 "BIGNUM *bn"
.Ft BIGNUM *
.Fn get_rfc3526_prime_1536 "BIGNUM *bn"
.Ft BIGNUM *
.Fn get_rfc3526_prime_2048 "BIGNUM *bn"
.Ft BIGNUM *
.Fn get_rfc3526_prime_3072 "BIGNUM *bn"
.Ft BIGNUM *
.Fn get_rfc3526_prime_4096 "BIGNUM *bn"
.Ft BIGNUM *
.Fn get_rfc3526_prime_6144 "BIGNUM *bn"
.Ft BIGNUM *
.Fn get_rfc3526_prime_8192 "BIGNUM *bn"
.Ft BIGNUM *
.Fn BN_get_rfc2409_prime_768 "BIGNUM *bn"
.Ft BIGNUM *
.Fn BN_get_rfc2409_prime_1024 "BIGNUM *bn"
.Ft BIGNUM *
.Fn BN_get_rfc3526_prime_1536 "BIGNUM *bn"
.Ft BIGNUM *
.Fn BN_get_rfc3526_prime_2048 "BIGNUM *bn"
.Ft BIGNUM *
.Fn BN_get_rfc3526_prime_3072 "BIGNUM *bn"
.Ft BIGNUM *
.Fn BN_get_rfc3526_prime_4096 "BIGNUM *bn"
.Ft BIGNUM *
.Fn BN_get_rfc3526_prime_6144 "BIGNUM *bn"
.Ft BIGNUM *
.Fn BN_get_rfc3526_prime_8192 "BIGNUM *bn"
.Sh DESCRIPTION
Each of these functions returns one specific constant Sophie Germain
prime number
.Fa p .
The names with the prefix
.Sq BN_
are aliases for the names without that prefix.
.Pp
If
.Fa bn
is
.Dv NULL ,
a new
.Vt BIGNUM
120
121
122
123
124
125
126

















127
128
129
130
131
132
133
134
RFC 2409, "The Internet Key Exchange (IKE)", defines the Oakley Groups.
.Pp
RFC 2412, "The OAKLEY Key Determination Protocol", contains additional
information about these numbers.
.Pp
RFC 3526, "More Modular Exponential (MODP) Diffie-Hellman groups
for Internet Key Exchange (IKE)", defines the other six numbers.

















.Sh CAVEATS
As all the memory needed for storing the numbers is dynamically
allocated, the
.Dv BN_FLG_STATIC_DATA
flag is not set on the returned
.Vt BIGNUM
objects.
So be careful to not change the returned numbers.







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>








147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
RFC 2409, "The Internet Key Exchange (IKE)", defines the Oakley Groups.
.Pp
RFC 2412, "The OAKLEY Key Determination Protocol", contains additional
information about these numbers.
.Pp
RFC 3526, "More Modular Exponential (MODP) Diffie-Hellman groups
for Internet Key Exchange (IKE)", defines the other six numbers.
.Sh HISTORY
.Fn get_rfc2409_prime_768 ,
.Fn get_rfc2409_prime_1024 ,
.Fn get_rfc3526_prime_1536 ,
.Fn get_rfc3526_prime_2048 ,
.Fn get_rfc3526_prime_3072 ,
.Fn get_rfc3526_prime_4096 ,
.Fn get_rfc3526_prime_6144 ,
and
.Fn get_rfc3526_prime_8192
first appeared in OpenSSL 0.9.8a and have been available since
.Ox 4.5 .
.Pp
The
.Sy BN_
aliases first appeared in OpenSSL 1.1.0 and have been available since
.Ox 6.3 .
.Sh CAVEATS
As all the memory needed for storing the numbers is dynamically
allocated, the
.Dv BN_FLG_STATIC_DATA
flag is not set on the returned
.Vt BIGNUM
objects.
So be careful to not change the returned numbers.
Changes to jni/libressl/man/i2d_PKCS7_bio_stream.3.
1
2
3
4
5
6
7
8
.\"	$OpenBSD: i2d_PKCS7_bio_stream.3,v 1.6 2016/12/13 15:00:22 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2007, 2008, 2009, 2013 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|







1
2
3
4
5
6
7
8
.\"	$OpenBSD: i2d_PKCS7_bio_stream.3,v 1.7 2018/03/23 04:34:23 schwarze Exp $
.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2007, 2008, 2009, 2013 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 13 2016 $
.Dt I2D_PKCS7_BIO_STREAM 3
.Os
.Sh NAME
.Nm i2d_PKCS7_bio_stream
.Nd output PKCS7 structure in BER format
.Sh SYNOPSIS
.In openssl/pkcs7.h







|







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 23 2018 $
.Dt I2D_PKCS7_BIO_STREAM 3
.Os
.Sh NAME
.Nm i2d_PKCS7_bio_stream
.Nd output PKCS7 structure in BER format
.Sh SYNOPSIS
.In openssl/pkcs7.h
82
83
84
85
86
87
88
89

90
91
92
.Xr ERR_get_error 3 ,
.Xr PEM_write_bio_PKCS7_stream 3 ,
.Xr PEM_write_PKCS7 3 ,
.Xr PKCS7_new 3 ,
.Xr SMIME_write_PKCS7 3
.Sh HISTORY
.Fn i2d_PKCS7_bio_stream
was added to OpenSSL 1.0.0.

.Sh BUGS
The prefix "i2d" is arguably wrong because the function outputs BER
format.







|
>



82
83
84
85
86
87
88
89
90
91
92
93
.Xr ERR_get_error 3 ,
.Xr PEM_write_bio_PKCS7_stream 3 ,
.Xr PEM_write_PKCS7 3 ,
.Xr PKCS7_new 3 ,
.Xr SMIME_write_PKCS7 3
.Sh HISTORY
.Fn i2d_PKCS7_bio_stream
first appeared in OpenSSL 1.0.0 and has been available since
.Ox 4.9 .
.Sh BUGS
The prefix "i2d" is arguably wrong because the function outputs BER
format.
Changes to jni/libressl/man/openssl.cnf.5.
1

2
3
4
5
6
7
8
9
10
11
12
.\"	$OpenBSD: openssl.cnf.5,v 1.3 2017/07/06 15:42:04 schwarze Exp $

.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 1999, 2000, 2004, 2013, 2015, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
|
>
|


|







1
2
3
4
5
6
7
8
9
10
11
12
13
.\" $OpenBSD: openssl.cnf.5,v 1.4 2018/02/16 18:21:57 schwarze Exp $
.\" full merge up to: OpenSSL man5/config b53338cb Feb 28 12:30:28 2017 +0100
.\" selective merge up to: OpenSSL a8c5ed81 Jul 18 13:57:25 2017 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 1999, 2000, 2004, 2013, 2015, 2016, 2017 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: July 6 2017 $
.Dt OPENSSL.CNF 5
.Os
.Sh NAME
.Nm openssl.cnf
.Nd OpenSSL configuration files
.Sh DESCRIPTION
The OpenSSL CONF library can be used to read configuration files; see







|







46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: February 16 2018 $
.Dt OPENSSL.CNF 5
.Os
.Sh NAME
.Nm openssl.cnf
.Nd OpenSSL configuration files
.Sh DESCRIPTION
The OpenSSL CONF library can be used to read configuration files; see
165
166
167
168
169
170
171


172
173
174
175
176
177
178
179
180
181
182
183
184

185
186
187
188
189
190
191
The default name is
.Ic openssl_conf ,
which is used by the
.Xr openssl 1
utility.
Other applications may use an alternative name such as
.Sy myapplication_conf .


.Pp
The configuration section should consist of a set of name value pairs
which contain specific module configuration information.
The
.Ar name
represents the name of the configuration module.
The meaning of the
.Ar value
is module specific: it may, for example, represent a further
configuration section containing configuration module specific
information.
For example:
.Bd -literal -offset indent

openssl_conf = openssl_init

[openssl_init]
oid_section = new_oids
engines = engine_section

[new_oids]







>
>













>







166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
The default name is
.Ic openssl_conf ,
which is used by the
.Xr openssl 1
utility.
Other applications may use an alternative name such as
.Sy myapplication_conf .
All library configuration lines appear in the default section
at the start of the configuration file.
.Pp
The configuration section should consist of a set of name value pairs
which contain specific module configuration information.
The
.Ar name
represents the name of the configuration module.
The meaning of the
.Ar value
is module specific: it may, for example, represent a further
configuration section containing configuration module specific
information.
For example:
.Bd -literal -offset indent
# The following line must be in the default section.
openssl_conf = openssl_init

[openssl_init]
oid_section = new_oids
engines = engine_section

[new_oids]
Changes to jni/libressl/man/ssl.3.
1
2

3
4
5
6
7
8
9
.\"	$OpenBSD: ssl.3,v 1.11 2017/08/21 10:10:25 schwarze Exp $
.\"	OpenSSL e330f55d Nov 11 00:51:04 2016 +0100

.\"
.\" This file was written by Ralf S. Engelschall <rse@openssl.org>,
.\" Ben Laurie <ben@openssl.org>, and Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 1998-2002, 2005, 2013, 2015 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
|
|
>







1
2
3
4
5
6
7
8
9
10
.\" $OpenBSD: ssl.3,v 1.14 2018/03/17 18:19:49 schwarze Exp $
.\" full merge up to: OpenSSL e330f55d Nov 11 00:51:04 2016 +0100
.\" selective merge up to: OpenSSL cbade361 Dec 12 13:14:45 2017 +0100
.\"
.\" This file was written by Ralf S. Engelschall <rse@openssl.org>,
.\" Ben Laurie <ben@openssl.org>, and Ulf Moeller <ulf@openssl.org>.
.\" Copyright (c) 1998-2002, 2005, 2013, 2015 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: August 21 2017 $
.Dt SSL 3
.Os
.Sh NAME
.Nm ssl
.Nd OpenSSL SSL/TLS library
.Sh DESCRIPTION
The OpenSSL







|







47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: March 17 2018 $
.Dt SSL 3
.Os
.Sh NAME
.Nm ssl
.Nd OpenSSL SSL/TLS library
.Sh DESCRIPTION
The OpenSSL
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
connection:
.Vt SSL_CIPHER Ns s ,
client and server certificates, keys, etc.
.It Vt SSL No (SSL Connection)
That's the main SSL/TLS structure which is created by a server or client per
established connection.
This actually is the core structure in the SSL API.
Under run-time the application usually deals with this structure which has
links to mostly all other structures.
.El
.Sh HEADER FILES
Currently the OpenSSL
.Nm ssl
library provides the following C header files containing the prototypes for the
data structures and functions:







|







126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
connection:
.Vt SSL_CIPHER Ns s ,
client and server certificates, keys, etc.
.It Vt SSL No (SSL Connection)
That's the main SSL/TLS structure which is created by a server or client per
established connection.
This actually is the core structure in the SSL API.
At run-time the application usually deals with this structure which has
links to mostly all other structures.
.El
.Sh HEADER FILES
Currently the OpenSSL
.Nm ssl
library provides the following C header files containing the prototypes for the
data structures and functions:
241
242
243
244
245
246
247

248
249

250
251
252
253
254
255
256
.Xr SSL_SESSION_new 3 ,
.Xr SSL_SESSION_free 3
.Pp
Accessors:
.Xr SSL_SESSION_get_compress_id 3 ,
.Xr SSL_SESSION_get_ex_new_index 3 ,
.Xr SSL_SESSION_get_id 3 ,

.Xr SSL_SESSION_get_time 3 ,
.Xr SSL_SESSION_get0_peer 3 ,

.Xr SSL_SESSION_set1_id_context 3
.Pp
Encoding and decoding:
.Xr d2i_SSL_SESSION 3 ,
.Xr PEM_read_SSL_SESSION 3 ,
.Xr SSL_SESSION_print 3
.Pp







>


>







242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
.Xr SSL_SESSION_new 3 ,
.Xr SSL_SESSION_free 3
.Pp
Accessors:
.Xr SSL_SESSION_get_compress_id 3 ,
.Xr SSL_SESSION_get_ex_new_index 3 ,
.Xr SSL_SESSION_get_id 3 ,
.Xr SSL_SESSION_get_protocol_version 3 ,
.Xr SSL_SESSION_get_time 3 ,
.Xr SSL_SESSION_get0_peer 3 ,
.Xr SSL_SESSION_has_ticket 3 ,
.Xr SSL_SESSION_set1_id_context 3
.Pp
Encoding and decoding:
.Xr d2i_SSL_SESSION 3 ,
.Xr PEM_read_SSL_SESSION 3 ,
.Xr SSL_SESSION_print 3
.Pp
284
285
286
287
288
289
290

291
292
293
294
295
296
297
.Xr SSL_write 3
.Pp
Accessors:
.Xr SSL_copy_session_id 3 ,
.Xr SSL_export_keying_material 3 ,
.Xr SSL_get_SSL_CTX 3 ,
.Xr SSL_get_certificate 3 ,

.Xr SSL_get_default_timeout 3 ,
.Xr SSL_get_error 3 ,
.Xr SSL_get_ex_data_X509_STORE_CTX_idx 3 ,
.Xr SSL_get_ex_new_index 3 ,
.Xr SSL_get_fd 3 ,
.Xr SSL_get_peer_cert_chain 3 ,
.Xr SSL_get_peer_certificate 3 ,







>







287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
.Xr SSL_write 3
.Pp
Accessors:
.Xr SSL_copy_session_id 3 ,
.Xr SSL_export_keying_material 3 ,
.Xr SSL_get_SSL_CTX 3 ,
.Xr SSL_get_certificate 3 ,
.Xr SSL_get_client_random 3 ,
.Xr SSL_get_default_timeout 3 ,
.Xr SSL_get_error 3 ,
.Xr SSL_get_ex_data_X509_STORE_CTX_idx 3 ,
.Xr SSL_get_ex_new_index 3 ,
.Xr SSL_get_fd 3 ,
.Xr SSL_get_peer_cert_chain 3 ,
.Xr SSL_get_peer_certificate 3 ,
Changes to jni/libressl/man/tls_config_set_session_id.3.
1
2
3

4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

21
22
23
24
25
26





27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45













46
47
48
49
50
51
52
53
54
55
56
57

58
59
60
61
62
63
64
65
66
67
68
69
70
71




72
73




74
75

.\" $OpenBSD: tls_config_set_session_id.3,v 1.3 2017/01/28 00:59:36 schwarze Exp $
.\"
.\" Copyright (c) 2017 Claudio Jeker <claudio@openbsd.org>

.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: January 28 2017 $
.Dt TLS_CONFIG_SET_SESSION_ID 3
.Os
.Sh NAME

.Nm tls_config_set_session_id ,
.Nm tls_config_set_session_lifetime ,
.Nm tls_config_add_ticket_key
.Nd configure resuming of TLS handshakes
.Sh SYNOPSIS
.In tls.h





.Ft int
.Fo tls_config_set_session_id
.Fa "struct tls_config *config"
.Fa "const unsigned char *session_id"
.Fa "size_t len"
.Fc
.Ft int
.Fo tls_config_set_session_lifetime
.Fa "struct tls_config *config"
.Fa "int lifetime"
.Fc
.Ft int
.Fo tls_config_add_ticket_key
.Fa "struct tls_config *config"
.Fa "uint32_t keyrev"
.Fa "unsigned char *key"
.Fa "size_t keylen"
.Fc
.Sh DESCRIPTION













.Fn tls_config_set_session_id
sets the session identifier that will be used by the TLS server when
sessions are enabled.
By default a random value is used.
.Pp
.Fn tls_config_set_session_lifetime
sets the lifetime to be used for TLS sessions.
Session support is disabled if a lifetime of zero is specified, which is the
default.
.Pp
.Fn tls_config_add_ticket_key
adds a key used for the encryption and authentication of TLS tickets.

By default keys are generated and rotated automatically based on their lifetime.
This function should only be used to synchronise ticket encryption key across
multiple processes.
Re-adding a known key will result in an error, unless it is the most recently
added key.
.Sh RETURN VALUES
These functions return 0 on success or -1 on error.
.Sh SEE ALSO
.Xr tls_accept_socket 3 ,
.Xr tls_config_set_protocols 3 ,
.Xr tls_init 3 ,
.Xr tls_load_file 3 ,
.Xr tls_server 3
.Sh HISTORY




These functions appeared in
.Ox 6.1 .




.Sh AUTHORS
.An Claudio Jeker Aq Mt claudio@openbsd.org

|


>













|



>






>
>
>
>
>



















>
>
>
>
>
>
>
>
>
>
>
>
>


|



|




|
>














>
>
>
>
|

>
>
>
>


>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
.\" $OpenBSD: tls_config_set_session_id.3,v 1.5 2018/02/10 06:07:43 jsing Exp $
.\"
.\" Copyright (c) 2017 Claudio Jeker <claudio@openbsd.org>
.\" Copyright (c) 2018 Joel Sing <jsing@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: February 10 2018 $
.Dt TLS_CONFIG_SET_SESSION_ID 3
.Os
.Sh NAME
.Nm tls_config_set_session_fd ,
.Nm tls_config_set_session_id ,
.Nm tls_config_set_session_lifetime ,
.Nm tls_config_add_ticket_key
.Nd configure resuming of TLS handshakes
.Sh SYNOPSIS
.In tls.h
.Ft int
.Fo tls_config_set_session_fd
.Fa "struct tls_config *config"
.Fa "int session_fd"
.Fc
.Ft int
.Fo tls_config_set_session_id
.Fa "struct tls_config *config"
.Fa "const unsigned char *session_id"
.Fa "size_t len"
.Fc
.Ft int
.Fo tls_config_set_session_lifetime
.Fa "struct tls_config *config"
.Fa "int lifetime"
.Fc
.Ft int
.Fo tls_config_add_ticket_key
.Fa "struct tls_config *config"
.Fa "uint32_t keyrev"
.Fa "unsigned char *key"
.Fa "size_t keylen"
.Fc
.Sh DESCRIPTION
.Fn tls_config_set_session_fd
sets a file descriptor to be used to manage data for TLS sessions (client only).
The given file descriptor must be a regular file and be owned by the current
user, with permissions being restricted to only allow the owner to read and
write the file (0600).
If the file has a non-zero length, the client will attempt to read session
data from this file and resume the previous TLS session with the server.
Upon a successful handshake the file will be updated with current session
data, if available.
The caller is responsible for closing this file descriptor, after all TLS
contexts that have been configured to use it have been freed via
.Fn tls_free .
.Pp
.Fn tls_config_set_session_id
sets the session identifier that will be used by the TLS server when
sessions are enabled (server only).
By default a random value is used.
.Pp
.Fn tls_config_set_session_lifetime
sets the lifetime to be used for TLS sessions (server only).
Session support is disabled if a lifetime of zero is specified, which is the
default.
.Pp
.Fn tls_config_add_ticket_key
adds a key used for the encryption and authentication of TLS tickets
(server only).
By default keys are generated and rotated automatically based on their lifetime.
This function should only be used to synchronise ticket encryption key across
multiple processes.
Re-adding a known key will result in an error, unless it is the most recently
added key.
.Sh RETURN VALUES
These functions return 0 on success or -1 on error.
.Sh SEE ALSO
.Xr tls_accept_socket 3 ,
.Xr tls_config_set_protocols 3 ,
.Xr tls_init 3 ,
.Xr tls_load_file 3 ,
.Xr tls_server 3
.Sh HISTORY
.Fn tls_config_set_session_id ,
.Fn tls_config_set_session_lifetime
and
.Fn tls_config_add_ticket_key
appeared in
.Ox 6.1 .
.Pp
.Fn tls_config_set_session_fd
appeared in
.Ox 6.3 .
.Sh AUTHORS
.An Claudio Jeker Aq Mt claudio@openbsd.org
.An Joel Sing Aq Mt jsing@openbsd.org
Changes to jni/libressl/man/tls_conn_version.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

26
27

28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44


45
46
47
48
49





50
51
52
53
54
55
56
.\" $OpenBSD: tls_conn_version.3,v 1.4 2017/01/28 00:59:36 schwarze Exp $
.\"
.\" Copyright (c) 2015 Bob Beck <beck@openbsd.org>
.\" Copyright (c) 2016 Joel Sing <jsing@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: January 28 2017 $
.Dt TLS_CONN_VERSION 3
.Os
.Sh NAME
.Nm tls_conn_version ,
.Nm tls_conn_cipher ,
.Nm tls_conn_alpn_selected ,
.Nm tls_conn_servername ,

.Nm tls_peer_cert_provided ,
.Nm tls_peer_cert_contains_name ,

.Nm tls_peer_cert_issuer ,
.Nm tls_peer_cert_subject ,
.Nm tls_peer_cert_hash ,
.Nm tls_peer_cert_notbefore ,
.Nm tls_peer_cert_notafter
.Nd inspect an established TLS connection
.Sh SYNOPSIS
.In tls.h
.Ft const char *
.Fn tls_conn_version "struct tls *ctx"
.Ft const char *
.Fn tls_conn_cipher "struct tls *ctx"
.Ft const char *
.Fn tls_conn_alpn_selected "struct tls *ctx"
.Ft const char *
.Fn tls_conn_servername "struct tls *ctx"
.Ft int


.Fn tls_peer_cert_provided "struct tls *ctx"
.Ft int
.Fo tls_peer_cert_contains_name
.Fa "struct tls *ctx"
.Fa "const char *name"





.Fc
.Ft const char *
.Fn tls_peer_cert_issuer "struct tls *ctx"
.Ft const char *
.Fn tls_peer_cert_subject "struct tls *ctx"
.Ft const char *
.Fn tls_peer_cert_hash "struct tls *ctx"
|


|













|







>


>

















>
>





>
>
>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
.\" $OpenBSD: tls_conn_version.3,v 1.7 2018/02/10 04:43:16 jsing Exp $
.\"
.\" Copyright (c) 2015 Bob Beck <beck@openbsd.org>
.\" Copyright (c) 2016, 2018 Joel Sing <jsing@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: February 10 2018 $
.Dt TLS_CONN_VERSION 3
.Os
.Sh NAME
.Nm tls_conn_version ,
.Nm tls_conn_cipher ,
.Nm tls_conn_alpn_selected ,
.Nm tls_conn_servername ,
.Nm tls_conn_session_resumed ,
.Nm tls_peer_cert_provided ,
.Nm tls_peer_cert_contains_name ,
.Nm tls_peer_cert_chain_pem ,
.Nm tls_peer_cert_issuer ,
.Nm tls_peer_cert_subject ,
.Nm tls_peer_cert_hash ,
.Nm tls_peer_cert_notbefore ,
.Nm tls_peer_cert_notafter
.Nd inspect an established TLS connection
.Sh SYNOPSIS
.In tls.h
.Ft const char *
.Fn tls_conn_version "struct tls *ctx"
.Ft const char *
.Fn tls_conn_cipher "struct tls *ctx"
.Ft const char *
.Fn tls_conn_alpn_selected "struct tls *ctx"
.Ft const char *
.Fn tls_conn_servername "struct tls *ctx"
.Ft int
.Fn tls_conn_session_resumed "struct tls *ctx"
.Ft int
.Fn tls_peer_cert_provided "struct tls *ctx"
.Ft int
.Fo tls_peer_cert_contains_name
.Fa "struct tls *ctx"
.Fa "const char *name"
.Fc
.Ft const uint8_t *
.Fo tls_peer_cert_chain_pem
.Fa struct tls *ctx
.Fa size_t *size
.Fc
.Ft const char *
.Fn tls_peer_cert_issuer "struct tls *ctx"
.Ft const char *
.Fn tls_peer_cert_subject "struct tls *ctx"
.Ft const char *
.Fn tls_peer_cert_hash "struct tls *ctx"
79
80
81
82
83
84
85






86
87
88
89
90
91
92
93
94
95
96
97





98
99
100
101
102
103
104
.Ar ctx .
If no protocol was selected then NULL is returned.
.Pp
.Fn tls_conn_servername
returns a string corresponding to the servername that the client connected to
.Ar ctx
requested by sending a TLS Server Name Indication extension (server only).






.Pp
.Fn tls_peer_cert_provided
checks if the peer of
.Ar ctx
has provided a certificate.
.Pp
.Fn tls_peer_cert_contains_name
checks if the peer of a TLS
.Ar ctx
has provided a certificate that contains a
SAN or CN that matches
.Ar name .





.Pp
.Fn tls_peer_cert_subject
returns a string
corresponding to the subject of the peer certificate from
.Ar ctx .
.Pp
.Fn tls_peer_cert_issuer







>
>
>
>
>
>












>
>
>
>
>







88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
.Ar ctx .
If no protocol was selected then NULL is returned.
.Pp
.Fn tls_conn_servername
returns a string corresponding to the servername that the client connected to
.Ar ctx
requested by sending a TLS Server Name Indication extension (server only).
.Pp
.Fn tls_conn_session_resumed
indicates whether a TLS session has been resumed during the handshake with
the server connected to
.Ar ctx
(client only).
.Pp
.Fn tls_peer_cert_provided
checks if the peer of
.Ar ctx
has provided a certificate.
.Pp
.Fn tls_peer_cert_contains_name
checks if the peer of a TLS
.Ar ctx
has provided a certificate that contains a
SAN or CN that matches
.Ar name .
.Pp
.Fn tls_peer_cert_chain_pem
returns a pointer to memory containing a PEM-encoded certificate chain for the
peer certificate from
.Ar ctx .
.Pp
.Fn tls_peer_cert_subject
returns a string
corresponding to the subject of the peer certificate from
.Ar ctx .
.Pp
.Fn tls_peer_cert_issuer
130
131
132
133
134
135
136




137
138
139
140
141
142
143
returns the time corresponding to the end of the validity period of
the peer certificate from
.Ar ctx .
.Pp
POINTER TO
.Xr tls_ocsp_process_response 3
.Sh RETURN VALUES




The
.Fn tls_peer_cert_provided
and
.Fn tls_peer_cert_contains_name
functions return 1 if the check succeeds or 0 if it does not.
.Pp
.Fn tls_peer_cert_notbefore







>
>
>
>







150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
returns the time corresponding to the end of the validity period of
the peer certificate from
.Ar ctx .
.Pp
POINTER TO
.Xr tls_ocsp_process_response 3
.Sh RETURN VALUES
The
.Fn tls_conn_session_resumed
function returns 1 if a TLS session was resumed or 0 if it was not.
.Pp
The
.Fn tls_peer_cert_provided
and
.Fn tls_peer_cert_contains_name
functions return 1 if the check succeeds or 0 if it does not.
.Pp
.Fn tls_peer_cert_notbefore
168
169
170
171
172
173
174




175
176
177
.Ox 5.9 .
.Pp
.Fn tls_conn_servername
and
.Fn tls_conn_alpn_selected
appeared in
.Ox 6.1 .




.Sh AUTHORS
.An Bob Beck Aq Mt beck@openbsd.org
.An Joel Sing Aq Mt jsing@openbsd.org







>
>
>
>



192
193
194
195
196
197
198
199
200
201
202
203
204
205
.Ox 5.9 .
.Pp
.Fn tls_conn_servername
and
.Fn tls_conn_alpn_selected
appeared in
.Ox 6.1 .
.Pp
.Fn tls_conn_session_resumed
appeared in
.Ox 6.3 .
.Sh AUTHORS
.An Bob Beck Aq Mt beck@openbsd.org
.An Joel Sing Aq Mt jsing@openbsd.org
Changes to jni/libressl/man/tls_init.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
.\" $OpenBSD: tls_init.3,v 1.7 2017/05/06 21:18:48 jsing Exp $
.\"
.\" Copyright (c) 2014 Ted Unangst <tedu@openbsd.org>
.\" Copyright (c) 2016 Joel Sing <jsing@openbsd.org>
.\" Copyright (c) 2017 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: May 6 2017 $
.Dt TLS_INIT 3
.Os
.Sh NAME
.Nm tls_init ,
.Nm tls_config_new ,
.Nm tls_config_free ,
.Nm tls_config_error
|

















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
.\" $OpenBSD: tls_init.3,v 1.11 2018/03/19 16:34:47 jsing Exp $
.\"
.\" Copyright (c) 2014 Ted Unangst <tedu@openbsd.org>
.\" Copyright (c) 2016 Joel Sing <jsing@openbsd.org>
.\" Copyright (c) 2017 Ingo Schwarze <schwarze@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: March 19 2018 $
.Dt TLS_INIT 3
.Os
.Sh NAME
.Nm tls_init ,
.Nm tls_config_new ,
.Nm tls_config_free ,
.Nm tls_config_error
41
42
43
44
45
46
47
48

49
50
51
52
53
54
55
56
family of functions establishes a secure communications channel
using the TLS socket protocol.
Both clients and servers are supported.
.Pp
The
.Fn tls_init
function initializes global data structures.
It should be called once before any other functions.

It may be called more than once, but not concurrently.
.Pp
Before a connection is created, a configuration must be created.
The
.Fn tls_config_new
function allocates, initializes, and returns a new default configuration
object that can be used for future connections.
Several functions exist to change the options of the configuration; see







|
>
|







41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
family of functions establishes a secure communications channel
using the TLS socket protocol.
Both clients and servers are supported.
.Pp
The
.Fn tls_init
function initializes global data structures.
It may be called once before any other functions, however this is no
longer necessary since it will be handled internally on demand.
It may be called more than once, and may be called concurrently.
.Pp
Before a connection is created, a configuration must be created.
The
.Fn tls_config_new
function allocates, initializes, and returns a new default configuration
object that can be used for future connections.
Several functions exist to change the options of the configuration; see
Changes to jni/libressl/man/tls_load_file.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
.\" $OpenBSD: tls_load_file.3,v 1.8 2017/08/01 08:41:36 jmc Exp $
.\"
.\" Copyright (c) 2014 Ted Unangst <tedu@openbsd.org>
.\" Copyright (c) 2015 Reyk Floeter <reyk@openbsd.org>
.\" Copyright (c) 2015 Bob Beck <beck@openbsd.org>
.\" Copyright (c) 2016, 2017 Joel Sing <jsing@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: August 1 2017 $
.Dt TLS_LOAD_FILE 3
.Os
.Sh NAME
.Nm tls_load_file ,
.Nm tls_unload_file ,
.Nm tls_config_set_ca_file ,
.Nm tls_config_set_ca_path ,
|


















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
.\" $OpenBSD: tls_load_file.3,v 1.9 2017/10/08 06:56:36 jmc Exp $
.\"
.\" Copyright (c) 2014 Ted Unangst <tedu@openbsd.org>
.\" Copyright (c) 2015 Reyk Floeter <reyk@openbsd.org>
.\" Copyright (c) 2015 Bob Beck <beck@openbsd.org>
.\" Copyright (c) 2016, 2017 Joel Sing <jsing@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: October 8 2017 $
.Dt TLS_LOAD_FILE 3
.Os
.Sh NAME
.Nm tls_load_file ,
.Nm tls_unload_file ,
.Nm tls_config_set_ca_file ,
.Nm tls_config_set_ca_path ,
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
.Fn tls_config_set_keypair_file
sets the files from which the public certificate, and private key will be read.
.Pp
.Fn tls_config_set_keypair_mem
directly sets the public certificate, and private key from memory.
.Pp
.Fn tls_config_set_keypair_ocsp_file
sets the files from which the public certificate, private key, and DER encoded
OCSP staple will be read.
.Pp
.Fn tls_config_set_keypair_ocsp_mem
directly sets the public certificate, private key, and DER encoded OCSP staple
from memory.
.Pp
.Fn tls_config_add_keypair_file
adds an additional public certificate, and private key from the specified files,
used as an alternative certificate for Server Name Indication (server only).
.Pp
.Fn tls_config_add_keypair_mem
adds an additional public certificate, and private key from memory, used as an
alternative certificate for Server Name Indication (server only).
.Pp
.Fn tls_config_add_keypair_ocsp_file
adds an additional public certificate, private key, and DER encoded OCSP staple
from the specified files, used as an alternative certificate for Server Name
Indication (server only).
.Pp
.Fn tls_config_add_keypair_ocsp_mem
adds an additional public certificate, private key, and DER encoded OCSP staple
from memory, used as an alternative certificate for Server Name Indication
(server only).
.Pp
.Fn tls_config_clear_keys
clears any secret keys from memory.
.Pp
.Fn tls_config_set_verify_depth







|



|











|




|







251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
.Fn tls_config_set_keypair_file
sets the files from which the public certificate, and private key will be read.
.Pp
.Fn tls_config_set_keypair_mem
directly sets the public certificate, and private key from memory.
.Pp
.Fn tls_config_set_keypair_ocsp_file
sets the files from which the public certificate, private key, and DER-encoded
OCSP staple will be read.
.Pp
.Fn tls_config_set_keypair_ocsp_mem
directly sets the public certificate, private key, and DER-encoded OCSP staple
from memory.
.Pp
.Fn tls_config_add_keypair_file
adds an additional public certificate, and private key from the specified files,
used as an alternative certificate for Server Name Indication (server only).
.Pp
.Fn tls_config_add_keypair_mem
adds an additional public certificate, and private key from memory, used as an
alternative certificate for Server Name Indication (server only).
.Pp
.Fn tls_config_add_keypair_ocsp_file
adds an additional public certificate, private key, and DER-encoded OCSP staple
from the specified files, used as an alternative certificate for Server Name
Indication (server only).
.Pp
.Fn tls_config_add_keypair_ocsp_mem
adds an additional public certificate, private key, and DER-encoded OCSP staple
from memory, used as an alternative certificate for Server Name Indication
(server only).
.Pp
.Fn tls_config_clear_keys
clears any secret keys from memory.
.Pp
.Fn tls_config_set_verify_depth
Changes to jni/libressl/man/x509v3.cnf.5.
1

2

3
4
5
6
7
8
9
.\"	$OpenBSD: x509v3.cnf.5,v 1.3 2016/12/25 22:15:10 schwarze Exp $

.\"	OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400

.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2004, 2006, 2013, 2014, 2015, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
|
>
|
>







1
2
3
4
5
6
7
8
9
10
11
.\" $OpenBSD: x509v3.cnf.5,v 1.4 2018/02/16 18:48:55 schwarze Exp $
.\" full merge up to:
.\" OpenSSL man5/x509v3_config a41815f0 Mar 17 18:43:53 2017 -0700
.\" selective merge up to: OpenSSL 36cf10cf Oct 4 02:11:08 2017 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
.\" Copyright (c) 2004, 2006, 2013, 2014, 2015, 2016 The OpenSSL Project.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: December 25 2016 $
.Dt X509V3.CNF 5
.Os
.Sh NAME
.Nm x509v3.cnf
.Nd X.509 V3 certificate extension configuration format
.Sh DESCRIPTION
Several of the OpenSSL utilities can add extensions to a certificate or







|







47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: February 16 2018 $
.Dt X509V3.CNF 5
.Os
.Sh NAME
.Nm x509v3.cnf
.Nd X.509 V3 certificate extension configuration format
.Sh DESCRIPTION
Several of the OpenSSL utilities can add extensions to a certificate or
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
option because that would not make sense.
It does support an additional
.Ic issuer : Ns Cm copy
option that will copy all the subject alternative name values from
the issuer certificate (if possible).
Example:
.Pp
.Dl issuserAltName = issuer:copy
.Ss Authority info access
The authority information access extension gives details about how to
access certain information relating to the CA.
Its syntax is
.Ar accessOID ; location
where
.Ar location







|







316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
option because that would not make sense.
It does support an additional
.Ic issuer : Ns Cm copy
option that will copy all the subject alternative name values from
the issuer certificate (if possible).
Example:
.Pp
.Dl issuerAltName = issuer:copy
.Ss Authority info access
The authority information access extension gives details about how to
access certain information relating to the CA.
Its syntax is
.Ar accessOID ; location
where
.Ar location
Changes to jni/libressl/scripts/travis.
8
9
10
11
12
13
14
15


16
17
18
19
20
21
22





23
24
25
26
27
28





29
30
31
32
33
34
35
	./configure
	make -j 4 distcheck

	# make distribution
	make dist
	tar zxvf libressl-*.tar.gz
	cd libressl-*
	mkdir build


	cd build

	# test cmake and ninja
	if [ `uname` = "Darwin" ]; then
		cmake ..
		make
		make test





	else
		sudo apt-get update
		sudo apt-get install -y cmake ninja-build
		cmake -GNinja ..
		ninja
		ninja test





	fi
else
	CPU=i686
	if [ "x$ARCH" = "xmingw64" ]; then
		CPU=x86_64
	fi
	export CC=$CPU-w64-mingw32-gcc







|
>
>
|






>
>
>
>
>






>
>
>
>
>







8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
	./configure
	make -j 4 distcheck

	# make distribution
	make dist
	tar zxvf libressl-*.tar.gz
	cd libressl-*
	mkdir build-static
	mkdir build-shared

	cd build-static

	# test cmake and ninja
	if [ `uname` = "Darwin" ]; then
		cmake ..
		make
		make test

		cd ../build-shared
		cmake -DBUILD_SHARED_LIBS=ON ..
		make
		make test
	else
		sudo apt-get update
		sudo apt-get install -y cmake ninja-build
		cmake -GNinja ..
		ninja
		ninja test

		cd ../build-shared
		cmake -GNinja -DBUILD_SHARED_LIBS=ON ..
		ninja
		ninja test
	fi
else
	CPU=i686
	if [ "x$ARCH" = "xmingw64" ]; then
		CPU=x86_64
	fi
	export CC=$CPU-w64-mingw32-gcc
Changes to jni/libressl/ssl/CMakeLists.txt.
24
25
26
27
28
29
30

31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70


71
72
	ssl_algs.c
	ssl_asn1.c
	ssl_both.c
	ssl_cert.c
	ssl_ciph.c
	ssl_clnt.c
	ssl_err.c

	ssl_lib.c
	ssl_packet.c
	ssl_pkt.c
	ssl_rsa.c
	ssl_sess.c
	ssl_srvr.c
	ssl_stat.c
	ssl_tlsext.c
	ssl_txt.c
	ssl_versions.c
	t1_clnt.c
	t1_enc.c
	t1_hash.c
	t1_lib.c
	t1_meth.c
	t1_srvr.c
)

add_library(ssl-objects OBJECT ${SSL_SRC})
if (BUILD_SHARED)
	add_library(ssl STATIC $<TARGET_OBJECTS:ssl-objects>)
	add_library(ssl-shared SHARED $<TARGET_OBJECTS:ssl-objects>)
	export_symbol(ssl-shared ${CMAKE_CURRENT_SOURCE_DIR}/ssl.sym)
	target_link_libraries(ssl-shared crypto-shared)
	if (WIN32)
		target_link_libraries(ssl-shared Ws2_32.lib)
		set(SSL_POSTFIX -${SSL_MAJOR_VERSION})
	endif()
	set_target_properties(ssl-shared PROPERTIES
		OUTPUT_NAME ssl${SSL_POSTFIX}
		ARCHIVE_OUTPUT_NAME ssl${SSL_POSTFIX})
	set_target_properties(ssl-shared PROPERTIES VERSION ${SSL_VERSION}
		SOVERSION ${SSL_MAJOR_VERSION})
	if(ENABLE_LIBRESSL_INSTALL)
		install(TARGETS ssl ssl-shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
	endif(ENABLE_LIBRESSL_INSTALL)
else()
	add_library(ssl STATIC ${SSL_SRC})
	if(ENABLE_LIBRESSL_INSTALL)
		install(TARGETS ssl DESTINATION ${CMAKE_INSTALL_LIBDIR})


	endif(ENABLE_LIBRESSL_INSTALL)
endif()







>


















|
|
<
<
|
|

|


|


|

|
|
|
|
|
|
|
>
>
|
<
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51


52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72

	ssl_algs.c
	ssl_asn1.c
	ssl_both.c
	ssl_cert.c
	ssl_ciph.c
	ssl_clnt.c
	ssl_err.c
	ssl_init.c
	ssl_lib.c
	ssl_packet.c
	ssl_pkt.c
	ssl_rsa.c
	ssl_sess.c
	ssl_srvr.c
	ssl_stat.c
	ssl_tlsext.c
	ssl_txt.c
	ssl_versions.c
	t1_clnt.c
	t1_enc.c
	t1_hash.c
	t1_lib.c
	t1_meth.c
	t1_srvr.c
)

add_library(ssl ${SSL_SRC})
if (BUILD_SHARED_LIBS)


	export_symbol(ssl ${CMAKE_CURRENT_SOURCE_DIR}/ssl.sym)
	target_link_libraries(ssl crypto)
	if (WIN32)
		target_link_libraries(ssl Ws2_32.lib)
		set(SSL_POSTFIX -${SSL_MAJOR_VERSION})
	endif()
	set_target_properties(ssl PROPERTIES
		OUTPUT_NAME ssl${SSL_POSTFIX}
		ARCHIVE_OUTPUT_NAME ssl${SSL_POSTFIX})
	set_target_properties(ssl PROPERTIES VERSION ${SSL_VERSION}
		SOVERSION ${SSL_MAJOR_VERSION})
endif()

if(ENABLE_LIBRESSL_INSTALL)
	install(
		TARGETS ssl
		ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
		LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
		RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
	)
endif(ENABLE_LIBRESSL_INSTALL)

Changes to jni/libressl/ssl/Makefile.am.
27
28
29
30
31
32
33

34
35
36
37
38
39
40
libssl_la_SOURCES += ssl_algs.c
libssl_la_SOURCES += ssl_asn1.c
libssl_la_SOURCES += ssl_both.c
libssl_la_SOURCES += ssl_cert.c
libssl_la_SOURCES += ssl_ciph.c
libssl_la_SOURCES += ssl_clnt.c
libssl_la_SOURCES += ssl_err.c

libssl_la_SOURCES += ssl_lib.c
libssl_la_SOURCES += ssl_packet.c
libssl_la_SOURCES += ssl_pkt.c
libssl_la_SOURCES += ssl_rsa.c
libssl_la_SOURCES += ssl_sess.c
libssl_la_SOURCES += ssl_srvr.c
libssl_la_SOURCES += ssl_stat.c







>







27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
libssl_la_SOURCES += ssl_algs.c
libssl_la_SOURCES += ssl_asn1.c
libssl_la_SOURCES += ssl_both.c
libssl_la_SOURCES += ssl_cert.c
libssl_la_SOURCES += ssl_ciph.c
libssl_la_SOURCES += ssl_clnt.c
libssl_la_SOURCES += ssl_err.c
libssl_la_SOURCES += ssl_init.c
libssl_la_SOURCES += ssl_lib.c
libssl_la_SOURCES += ssl_packet.c
libssl_la_SOURCES += ssl_pkt.c
libssl_la_SOURCES += ssl_rsa.c
libssl_la_SOURCES += ssl_sess.c
libssl_la_SOURCES += ssl_srvr.c
libssl_la_SOURCES += ssl_stat.c
Changes to jni/libressl/ssl/Makefile.in.
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
am__installdirs = "$(DESTDIR)$(libdir)"
LTLIBRARIES = $(lib_LTLIBRARIES)
libssl_la_DEPENDENCIES = $(abs_top_builddir)/crypto/libcrypto.la
am_libssl_la_OBJECTS = bio_ssl.lo bs_ber.lo bs_cbb.lo bs_cbs.lo \
	d1_both.lo d1_clnt.lo d1_enc.lo d1_lib.lo d1_meth.lo d1_pkt.lo \
	d1_srtp.lo d1_srvr.lo pqueue.lo s3_cbc.lo s3_lib.lo \
	ssl_algs.lo ssl_asn1.lo ssl_both.lo ssl_cert.lo ssl_ciph.lo \
	ssl_clnt.lo ssl_err.lo ssl_lib.lo ssl_packet.lo ssl_pkt.lo \
	ssl_rsa.lo ssl_sess.lo ssl_srvr.lo ssl_stat.lo ssl_tlsext.lo \
	ssl_txt.lo ssl_versions.lo t1_clnt.lo t1_enc.lo t1_hash.lo \
	t1_lib.lo t1_meth.lo t1_srvr.lo
libssl_la_OBJECTS = $(am_libssl_la_OBJECTS)
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
am__v_lt_1 = 
libssl_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \







|
|
|
|







135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
am__installdirs = "$(DESTDIR)$(libdir)"
LTLIBRARIES = $(lib_LTLIBRARIES)
libssl_la_DEPENDENCIES = $(abs_top_builddir)/crypto/libcrypto.la
am_libssl_la_OBJECTS = bio_ssl.lo bs_ber.lo bs_cbb.lo bs_cbs.lo \
	d1_both.lo d1_clnt.lo d1_enc.lo d1_lib.lo d1_meth.lo d1_pkt.lo \
	d1_srtp.lo d1_srvr.lo pqueue.lo s3_cbc.lo s3_lib.lo \
	ssl_algs.lo ssl_asn1.lo ssl_both.lo ssl_cert.lo ssl_ciph.lo \
	ssl_clnt.lo ssl_err.lo ssl_init.lo ssl_lib.lo ssl_packet.lo \
	ssl_pkt.lo ssl_rsa.lo ssl_sess.lo ssl_srvr.lo ssl_stat.lo \
	ssl_tlsext.lo ssl_txt.lo ssl_versions.lo t1_clnt.lo t1_enc.lo \
	t1_hash.lo t1_lib.lo t1_meth.lo t1_srvr.lo
libssl_la_OBJECTS = $(am_libssl_la_OBJECTS)
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
am__v_lt_1 = 
libssl_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
Changes to jni/libressl/ssl/VERSION.
1
44:1:0
|
1
45:1:0
Changes to jni/libressl/ssl/bs_cbb.c.
1
2
3
4
5
6
7
8
/*	$OpenBSD: bs_cbb.c,v 1.17.4.1 2017/12/09 13:43:25 jsing Exp $	*/
/*
 * Copyright (c) 2014, Google Inc.
 *
 * Permission to use, copy, modify, and/or distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
|







1
2
3
4
5
6
7
8
/*	$OpenBSD: bs_cbb.c,v 1.18 2017/11/28 16:34:20 jsing Exp $	*/
/*
 * Copyright (c) 2014, Google Inc.
 *
 * Permission to use, copy, modify, and/or distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
Changes to jni/libressl/ssl/bytestring.h.
1
2
3
4
5
6
7
8
/*	$OpenBSD: bytestring.h,v 1.15.6.1 2017/12/09 13:43:25 jsing Exp $	*/
/*
 * Copyright (c) 2014, Google Inc.
 *
 * Permission to use, copy, modify, and/or distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
|







1
2
3
4
5
6
7
8
/*	$OpenBSD: bytestring.h,v 1.16 2017/11/28 16:34:20 jsing Exp $	*/
/*
 * Copyright (c) 2014, Google Inc.
 *
 * Permission to use, copy, modify, and/or distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
Changes to jni/libressl/ssl/d1_both.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: d1_both.c,v 1.51 2017/05/07 04:22:24 beck Exp $ */
/*
 * DTLS implementation written by Nagendra Modadugu
 * (nagendra@cs.stanford.edu) for the OpenSSL project 2005.
 */
/* ====================================================================
 * Copyright (c) 1998-2005 The OpenSSL Project.  All rights reserved.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: d1_both.c,v 1.52 2017/10/08 16:24:02 jsing Exp $ */
/*
 * DTLS implementation written by Nagendra Modadugu
 * (nagendra@cs.stanford.edu) for the OpenSSL project 2005.
 */
/* ====================================================================
 * Copyright (c) 1998-2005 The OpenSSL Project.  All rights reserved.
 *
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
/* XDTLS:  figure out the right values */
static unsigned int g_probable_mtu[] = {1500 - 28, 512 - 28, 256 - 28};

static unsigned int dtls1_guess_mtu(unsigned int curr_mtu);
static void dtls1_fix_message_header(SSL *s, unsigned long frag_off,
    unsigned long frag_len);
static unsigned char *dtls1_write_message_header(SSL *s, unsigned char *p);
static void dtls1_set_message_header_int(SSL *s, unsigned char mt,
    unsigned long len, unsigned short seq_num, unsigned long frag_off,
    unsigned long frag_len);
static long dtls1_get_message_fragment(SSL *s, int st1, int stn, long max,
    int *ok);

static hm_fragment *
dtls1_hm_fragment_new(unsigned long frag_len, int reassembly)
{
	hm_fragment *frag = NULL;







<
<
<







158
159
160
161
162
163
164



165
166
167
168
169
170
171
/* XDTLS:  figure out the right values */
static unsigned int g_probable_mtu[] = {1500 - 28, 512 - 28, 256 - 28};

static unsigned int dtls1_guess_mtu(unsigned int curr_mtu);
static void dtls1_fix_message_header(SSL *s, unsigned long frag_off,
    unsigned long frag_len);
static unsigned char *dtls1_write_message_header(SSL *s, unsigned char *p);



static long dtls1_get_message_fragment(SSL *s, int st1, int stn, long max,
    int *ok);

static hm_fragment *
dtls1_hm_fragment_new(unsigned long frag_len, int reassembly)
{
	hm_fragment *frag = NULL;
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
	ssl3_send_alert(s, SSL3_AL_FATAL, al);
	s->internal->init_num = 0;

	*ok = 0;
	return (-1);
}

/*
 * for these 2 messages, we need to
 * ssl->enc_read_ctx			re-init
 * ssl->s3->internal->read_sequence		zero
 * ssl->s3->internal->read_mac_secret		re-init
 * ssl->session->read_sym_enc		assign
 * ssl->session->read_hash		assign
 */
int
dtls1_send_change_cipher_spec(SSL *s, int a, int b)
{
	unsigned char *p;

	if (S3I(s)->hs.state == a) {
		p = (unsigned char *)s->internal->init_buf->data;
		*p++=SSL3_MT_CCS;
		D1I(s)->handshake_write_seq = D1I(s)->next_handshake_write_seq;
		s->internal->init_num = DTLS1_CCS_HEADER_LENGTH;

		s->internal->init_off = 0;

		dtls1_set_message_header_int(s, SSL3_MT_CCS, 0,
		    D1I(s)->handshake_write_seq, 0, 0);

		/* buffer the message to handle re-xmits */
		dtls1_buffer_message(s, 1);

		S3I(s)->hs.state = b;
	}

	/* SSL3_ST_CW_CHANGE_B */
	return (dtls1_do_write(s, SSL3_RT_CHANGE_CIPHER_SPEC));
}

int
dtls1_read_failed(SSL *s, int code)
{
	if (code > 0) {
#ifdef DEBUG
		fprintf(stderr, "invalid state reached %s:%d",
		    __FILE__, __LINE__);







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







888
889
890
891
892
893
894


































895
896
897
898
899
900
901
	ssl3_send_alert(s, SSL3_AL_FATAL, al);
	s->internal->init_num = 0;

	*ok = 0;
	return (-1);
}



































int
dtls1_read_failed(SSL *s, int code)
{
	if (code > 0) {
#ifdef DEBUG
		fprintf(stderr, "invalid state reached %s:%d",
		    __FILE__, __LINE__);
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
	}

	dtls1_set_message_header_int(s, mt, len, D1I(s)->handshake_write_seq,
	    frag_off, frag_len);
}

/* don't actually do the writing, wait till the MTU has been retrieved */
static void
dtls1_set_message_header_int(SSL *s, unsigned char mt, unsigned long len,
    unsigned short seq_num, unsigned long frag_off, unsigned long frag_len)
{
	struct hm_header_st *msg_hdr = &D1I(s)->w_msg_hdr;

	msg_hdr->type = mt;
	msg_hdr->msg_len = len;







|







1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
	}

	dtls1_set_message_header_int(s, mt, len, D1I(s)->handshake_write_seq,
	    frag_off, frag_len);
}

/* don't actually do the writing, wait till the MTU has been retrieved */
void
dtls1_set_message_header_int(SSL *s, unsigned char mt, unsigned long len,
    unsigned short seq_num, unsigned long frag_off, unsigned long frag_len)
{
	struct hm_header_st *msg_hdr = &D1I(s)->w_msg_hdr;

	msg_hdr->type = mt;
	msg_hdr->msg_len = len;
Changes to jni/libressl/ssl/d1_clnt.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: d1_clnt.c,v 1.76 2017/05/07 04:22:24 beck Exp $ */
/*
 * DTLS implementation written by Nagendra Modadugu
 * (nagendra@cs.stanford.edu) for the OpenSSL project 2005.
 */
/* ====================================================================
 * Copyright (c) 1999-2007 The OpenSSL Project.  All rights reserved.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: d1_clnt.c,v 1.79 2017/10/10 15:13:26 jsing Exp $ */
/*
 * DTLS implementation written by Nagendra Modadugu
 * (nagendra@cs.stanford.edu) for the OpenSSL project 2005.
 */
/* ====================================================================
 * Copyright (c) 1999-2007 The OpenSSL Project.  All rights reserved.
 *
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
#include <openssl/dh.h>
#include <openssl/evp.h>
#include <openssl/md5.h>
#include <openssl/objects.h>

#include "bytestring.h"

static int dtls1_get_hello_verify(SSL *s);

static const SSL_METHOD_INTERNAL DTLSv1_client_method_internal_data = {
	.version = DTLS1_VERSION,
	.min_version = DTLS1_VERSION,
	.max_version = DTLS1_VERSION,
	.ssl_new = dtls1_new,
	.ssl_clear = dtls1_clear,
	.ssl_free = dtls1_free,
	.ssl_accept = ssl_undefined_function,
	.ssl_connect = dtls1_connect,
	.ssl_read = ssl3_read,
	.ssl_peek = ssl3_peek,
	.ssl_write = ssl3_write,
	.ssl_shutdown = dtls1_shutdown,
	.ssl_pending = ssl3_pending,
	.get_ssl_method = dtls1_get_client_method,
	.get_timeout = dtls1_default_timeout,







<
<








|







123
124
125
126
127
128
129


130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
#include <openssl/dh.h>
#include <openssl/evp.h>
#include <openssl/md5.h>
#include <openssl/objects.h>

#include "bytestring.h"



static const SSL_METHOD_INTERNAL DTLSv1_client_method_internal_data = {
	.version = DTLS1_VERSION,
	.min_version = DTLS1_VERSION,
	.max_version = DTLS1_VERSION,
	.ssl_new = dtls1_new,
	.ssl_clear = dtls1_clear,
	.ssl_free = dtls1_free,
	.ssl_accept = ssl_undefined_function,
	.ssl_connect = ssl3_connect,
	.ssl_read = ssl3_read,
	.ssl_peek = ssl3_peek,
	.ssl_write = ssl3_write,
	.ssl_shutdown = dtls1_shutdown,
	.ssl_pending = ssl3_pending,
	.get_ssl_method = dtls1_get_client_method,
	.get_timeout = dtls1_default_timeout,
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
{
	if (ver == DTLS1_VERSION)
		return (DTLSv1_client_method());
	return (NULL);
}

int
dtls1_connect(SSL *s)
{
	void (*cb)(const SSL *ssl, int type, int val) = NULL;
	int ret = -1;
	int new_state, state, skip = 0;

	ERR_clear_error();
	errno = 0;

	if (s->internal->info_callback != NULL)
		cb = s->internal->info_callback;
	else if (s->ctx->internal->info_callback != NULL)
		cb = s->ctx->internal->info_callback;

	s->internal->in_handshake++;
	if (!SSL_in_init(s) || SSL_in_before(s))
		SSL_clear(s);


	for (;;) {
		state = S3I(s)->hs.state;

		switch (S3I(s)->hs.state) {
		case SSL_ST_RENEGOTIATE:
			s->internal->renegotiate = 1;
			S3I(s)->hs.state = SSL_ST_CONNECT;
			s->ctx->internal->stats.sess_connect_renegotiate++;
			/* break */
		case SSL_ST_BEFORE:
		case SSL_ST_CONNECT:
		case SSL_ST_BEFORE|SSL_ST_CONNECT:
		case SSL_ST_OK|SSL_ST_CONNECT:

			s->server = 0;
			if (cb != NULL)
				cb(s, SSL_CB_HANDSHAKE_START, 1);

			if ((s->version & 0xff00 ) != (DTLS1_VERSION & 0xff00)) {
				SSLerror(s, ERR_R_INTERNAL_ERROR);
				ret = -1;
				goto end;
			}

			/* s->version=SSL3_VERSION; */
			s->internal->type = SSL_ST_CONNECT;

			if (!ssl3_setup_init_buffer(s)) {
				ret = -1;
				goto end;
			}
			if (!ssl3_setup_buffers(s)) {
				ret = -1;
				goto end;
			}
			if (!ssl_init_wbio_buffer(s, 0)) {
				ret = -1;
				goto end;
			}

			/* don't push the buffering BIO quite yet */

			S3I(s)->hs.state = SSL3_ST_CW_CLNT_HELLO_A;
			s->ctx->internal->stats.sess_connect++;
			s->internal->init_num = 0;
			/* mark client_random uninitialized */
			memset(s->s3->client_random, 0,
			    sizeof(s->s3->client_random));
			D1I(s)->send_cookie = 0;
			s->internal->hit = 0;
			break;


		case SSL3_ST_CW_CLNT_HELLO_A:
		case SSL3_ST_CW_CLNT_HELLO_B:

			s->internal->shutdown = 0;

			/* every DTLS ClientHello resets Finished MAC */
			if (!tls1_init_finished_mac(s)) {
				ret = -1;
				goto end;
			}

			dtls1_start_timer(s);
			ret = ssl3_client_hello(s);
			if (ret <= 0)
				goto end;

			if (D1I(s)->send_cookie) {
				S3I(s)->hs.state = SSL3_ST_CW_FLUSH;
				S3I(s)->hs.next_state = SSL3_ST_CR_SRVR_HELLO_A;
			} else
				S3I(s)->hs.state = SSL3_ST_CR_SRVR_HELLO_A;

			s->internal->init_num = 0;

			/* turn on buffering for the next lot of output */
			if (s->bbio != s->wbio)
				s->wbio = BIO_push(s->bbio, s->wbio);

			break;

		case SSL3_ST_CR_SRVR_HELLO_A:
		case SSL3_ST_CR_SRVR_HELLO_B:
			ret = ssl3_get_server_hello(s);
			if (ret <= 0)
				goto end;
			else {
				if (s->internal->hit) {

					S3I(s)->hs.state = SSL3_ST_CR_FINISHED_A;
				} else
					S3I(s)->hs.state = DTLS1_ST_CR_HELLO_VERIFY_REQUEST_A;
			}
			s->internal->init_num = 0;
			break;

		case DTLS1_ST_CR_HELLO_VERIFY_REQUEST_A:
		case DTLS1_ST_CR_HELLO_VERIFY_REQUEST_B:

			ret = dtls1_get_hello_verify(s);
			if (ret <= 0)
				goto end;
			dtls1_stop_timer(s);
			if ( D1I(s)->send_cookie) /* start again, with a cookie */
				S3I(s)->hs.state = SSL3_ST_CW_CLNT_HELLO_A;
			else
				S3I(s)->hs.state = SSL3_ST_CR_CERT_A;
			s->internal->init_num = 0;
			break;

		case SSL3_ST_CR_CERT_A:
		case SSL3_ST_CR_CERT_B:
			ret = ssl3_check_finished(s);
			if (ret <= 0)
				goto end;
			if (ret == 2) {
				s->internal->hit = 1;
				if (s->internal->tlsext_ticket_expected)
					S3I(s)->hs.state = SSL3_ST_CR_SESSION_TICKET_A;
				else
					S3I(s)->hs.state = SSL3_ST_CR_FINISHED_A;
				s->internal->init_num = 0;
				break;
			}
			/* Check if it is anon DH. */
			if (!(S3I(s)->hs.new_cipher->algorithm_auth &
			    SSL_aNULL)) {
				ret = ssl3_get_server_certificate(s);
				if (ret <= 0)
					goto end;
				if (s->internal->tlsext_status_expected)
					S3I(s)->hs.state = SSL3_ST_CR_CERT_STATUS_A;
				else
					S3I(s)->hs.state = SSL3_ST_CR_KEY_EXCH_A;
			} else {
				skip = 1;
				S3I(s)->hs.state = SSL3_ST_CR_KEY_EXCH_A;
			}
			s->internal->init_num = 0;
			break;

		case SSL3_ST_CR_KEY_EXCH_A:
		case SSL3_ST_CR_KEY_EXCH_B:
			ret = ssl3_get_server_key_exchange(s);
			if (ret <= 0)
				goto end;
			S3I(s)->hs.state = SSL3_ST_CR_CERT_REQ_A;
			s->internal->init_num = 0;

			/* at this point we check that we have the
			 * required stuff from the server */
			if (!ssl3_check_cert_and_algorithm(s)) {
				ret = -1;
				goto end;
			}
			break;

		case SSL3_ST_CR_CERT_REQ_A:
		case SSL3_ST_CR_CERT_REQ_B:
			ret = ssl3_get_certificate_request(s);
			if (ret <= 0)
				goto end;
			S3I(s)->hs.state = SSL3_ST_CR_SRVR_DONE_A;
			s->internal->init_num = 0;
			break;

		case SSL3_ST_CR_SRVR_DONE_A:
		case SSL3_ST_CR_SRVR_DONE_B:
			ret = ssl3_get_server_done(s);
			if (ret <= 0)
				goto end;
			dtls1_stop_timer(s);
			if (S3I(s)->tmp.cert_req)
				S3I(s)->hs.next_state = SSL3_ST_CW_CERT_A;
			else
				S3I(s)->hs.next_state = SSL3_ST_CW_KEY_EXCH_A;
			s->internal->init_num = 0;
			S3I(s)->hs.state = S3I(s)->hs.next_state;
			break;

		case SSL3_ST_CW_CERT_A:
		case SSL3_ST_CW_CERT_B:
		case SSL3_ST_CW_CERT_C:
		case SSL3_ST_CW_CERT_D:
			dtls1_start_timer(s);
			ret = ssl3_send_client_certificate(s);
			if (ret <= 0)
				goto end;
			S3I(s)->hs.state = SSL3_ST_CW_KEY_EXCH_A;
			s->internal->init_num = 0;
			break;

		case SSL3_ST_CW_KEY_EXCH_A:
		case SSL3_ST_CW_KEY_EXCH_B:
			dtls1_start_timer(s);
			ret = ssl3_send_client_key_exchange(s);
			if (ret <= 0)
				goto end;

			/* EAY EAY EAY need to check for DH fix cert
			 * sent back */
			/* For TLS, cert_req is set to 2, so a cert chain
			 * of nothing is sent, but no verify packet is sent */
			if (S3I(s)->tmp.cert_req == 1) {
				S3I(s)->hs.state = SSL3_ST_CW_CERT_VRFY_A;
			} else {
				S3I(s)->hs.state = SSL3_ST_CW_CHANGE_A;
				S3I(s)->change_cipher_spec = 0;
			}

			s->internal->init_num = 0;
			break;

		case SSL3_ST_CW_CERT_VRFY_A:
		case SSL3_ST_CW_CERT_VRFY_B:
			dtls1_start_timer(s);
			ret = ssl3_send_client_verify(s);
			if (ret <= 0)
				goto end;
			S3I(s)->hs.state = SSL3_ST_CW_CHANGE_A;
			s->internal->init_num = 0;
			S3I(s)->change_cipher_spec = 0;
			break;

		case SSL3_ST_CW_CHANGE_A:
		case SSL3_ST_CW_CHANGE_B:
			if (!s->internal->hit)
				dtls1_start_timer(s);
			ret = dtls1_send_change_cipher_spec(s,
			    SSL3_ST_CW_CHANGE_A, SSL3_ST_CW_CHANGE_B);
			if (ret <= 0)
				goto end;

			S3I(s)->hs.state = SSL3_ST_CW_FINISHED_A;
			s->internal->init_num = 0;

			s->session->cipher = S3I(s)->hs.new_cipher;
			if (!tls1_setup_key_block(s)) {
				ret = -1;
				goto end;
			}

			if (!tls1_change_cipher_state(s,
			    SSL3_CHANGE_CIPHER_CLIENT_WRITE)) {
				ret = -1;
				goto end;
			}


			dtls1_reset_seq_numbers(s, SSL3_CC_WRITE);
			break;

		case SSL3_ST_CW_FINISHED_A:
		case SSL3_ST_CW_FINISHED_B:
			if (!s->internal->hit)
				dtls1_start_timer(s);
			ret = ssl3_send_finished(s,
			    SSL3_ST_CW_FINISHED_A, SSL3_ST_CW_FINISHED_B,
			    TLS_MD_CLIENT_FINISH_CONST,
			    TLS_MD_CLIENT_FINISH_CONST_SIZE);
			if (ret <= 0)
				goto end;
			S3I(s)->hs.state = SSL3_ST_CW_FLUSH;

			/* clear flags */
			s->s3->flags&= ~SSL3_FLAGS_POP_BUFFER;
			if (s->internal->hit) {
				S3I(s)->hs.next_state = SSL_ST_OK;
				if (s->s3->flags & SSL3_FLAGS_DELAY_CLIENT_FINISHED) {
					S3I(s)->hs.state = SSL_ST_OK;
					s->s3->flags |= SSL3_FLAGS_POP_BUFFER;
					S3I(s)->delay_buf_pop_ret = 0;
				}
			} else {

				/* Allow NewSessionTicket if ticket expected */
				if (s->internal->tlsext_ticket_expected)
					S3I(s)->hs.next_state =
					    SSL3_ST_CR_SESSION_TICKET_A;
				else
					S3I(s)->hs.next_state =
					    SSL3_ST_CR_FINISHED_A;
			}
			s->internal->init_num = 0;
			break;

		case SSL3_ST_CR_SESSION_TICKET_A:
		case SSL3_ST_CR_SESSION_TICKET_B:
			ret = ssl3_get_new_session_ticket(s);
			if (ret <= 0)
				goto end;
			S3I(s)->hs.state = SSL3_ST_CR_FINISHED_A;
			s->internal->init_num = 0;
			break;

		case SSL3_ST_CR_CERT_STATUS_A:
		case SSL3_ST_CR_CERT_STATUS_B:
			ret = ssl3_get_cert_status(s);
			if (ret <= 0)
				goto end;
			S3I(s)->hs.state = SSL3_ST_CR_KEY_EXCH_A;
			s->internal->init_num = 0;
			break;

		case SSL3_ST_CR_FINISHED_A:
		case SSL3_ST_CR_FINISHED_B:
			D1I(s)->change_cipher_spec_ok = 1;
			ret = ssl3_get_finished(s, SSL3_ST_CR_FINISHED_A,
			    SSL3_ST_CR_FINISHED_B);
			if (ret <= 0)
				goto end;
			dtls1_stop_timer(s);

			if (s->internal->hit)
				S3I(s)->hs.state = SSL3_ST_CW_CHANGE_A;
			else
				S3I(s)->hs.state = SSL_ST_OK;


			s->internal->init_num = 0;
			break;

		case SSL3_ST_CW_FLUSH:
			s->internal->rwstate = SSL_WRITING;
			if (BIO_flush(s->wbio) <= 0) {
				/* If the write error was fatal, stop trying */
				if (!BIO_should_retry(s->wbio)) {
					s->internal->rwstate = SSL_NOTHING;
					S3I(s)->hs.state = S3I(s)->hs.next_state;
				}

				ret = -1;
				goto end;
			}
			s->internal->rwstate = SSL_NOTHING;
			S3I(s)->hs.state = S3I(s)->hs.next_state;
			break;

		case SSL_ST_OK:
			/* clean a few things up */
			tls1_cleanup_key_block(s);

			/* If we are not 'joining' the last two packets,
			 * remove the buffering now */
			if (!(s->s3->flags & SSL3_FLAGS_POP_BUFFER))
				ssl_free_wbio_buffer(s);
			/* else do it later in ssl3_write */

			s->internal->init_num = 0;
			s->internal->renegotiate = 0;
			s->internal->new_session = 0;

			ssl_update_cache(s, SSL_SESS_CACHE_CLIENT);
			if (s->internal->hit)
				s->ctx->internal->stats.sess_hit++;

			ret = 1;
			/* s->server=0; */
			s->internal->handshake_func = dtls1_connect;
			s->ctx->internal->stats.sess_connect_good++;

			if (cb != NULL)
				cb(s, SSL_CB_HANDSHAKE_DONE, 1);

			/* done with handshaking */
			D1I(s)->handshake_read_seq = 0;
			D1I(s)->next_handshake_write_seq = 0;
			goto end;
			/* break; */

		default:
			SSLerror(s, SSL_R_UNKNOWN_STATE);
			ret = -1;
			goto end;
			/* break; */
		}

		/* did we do anything */
		if (!S3I(s)->tmp.reuse_message && !skip) {
			if (s->internal->debug) {
				if ((ret = BIO_flush(s->wbio)) <= 0)
					goto end;
			}

			if ((cb != NULL) && (S3I(s)->hs.state != state)) {
				new_state = S3I(s)->hs.state;
				S3I(s)->hs.state = state;
				cb(s, SSL_CB_CONNECT_LOOP, 1);
				S3I(s)->hs.state = new_state;
			}
		}
		skip = 0;
	}

end:
	s->internal->in_handshake--;
	if (cb != NULL)
		cb(s, SSL_CB_CONNECT_EXIT, ret);

	return (ret);
}

static int
dtls1_get_hello_verify(SSL *s)
{
	long n;
	int al, ok = 0;
	size_t cookie_len;
	uint16_t ssl_version;
	CBS hello_verify_request, cookie;







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







172
173
174
175
176
177
178








































































































































































































































































































































































































































179
180
181
182
183
184
185
{
	if (ver == DTLS1_VERSION)
		return (DTLSv1_client_method());
	return (NULL);
}

int








































































































































































































































































































































































































































dtls1_get_hello_verify(SSL *s)
{
	long n;
	int al, ok = 0;
	size_t cookie_len;
	uint16_t ssl_version;
	CBS hello_verify_request, cookie;
Changes to jni/libressl/ssl/d1_meth.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: d1_meth.c,v 1.13 2017/01/23 13:36:13 jsing Exp $ */
/*
 * DTLS implementation written by Nagendra Modadugu
 * (nagendra@cs.stanford.edu) for the OpenSSL project 2005.
 */
/* ====================================================================
 * Copyright (c) 1999-2005 The OpenSSL Project.  All rights reserved.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: d1_meth.c,v 1.15 2017/10/12 15:52:50 jsing Exp $ */
/*
 * DTLS implementation written by Nagendra Modadugu
 * (nagendra@cs.stanford.edu) for the OpenSSL project 2005.
 */
/* ====================================================================
 * Copyright (c) 1999-2005 The OpenSSL Project.  All rights reserved.
 *
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
static const SSL_METHOD_INTERNAL DTLSv1_method_internal_data = {
	.version = DTLS1_VERSION,
	.min_version = DTLS1_VERSION,
	.max_version = DTLS1_VERSION,
	.ssl_new = dtls1_new,
	.ssl_clear = dtls1_clear,
	.ssl_free = dtls1_free,
	.ssl_accept = dtls1_accept,
	.ssl_connect = dtls1_connect,
	.ssl_read = ssl3_read,
	.ssl_peek = ssl3_peek,
	.ssl_write = ssl3_write,
	.ssl_shutdown = dtls1_shutdown,
	.ssl_pending = ssl3_pending,
	.get_ssl_method = dtls1_get_method,
	.get_timeout = dtls1_default_timeout,







|
|







68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
static const SSL_METHOD_INTERNAL DTLSv1_method_internal_data = {
	.version = DTLS1_VERSION,
	.min_version = DTLS1_VERSION,
	.max_version = DTLS1_VERSION,
	.ssl_new = dtls1_new,
	.ssl_clear = dtls1_clear,
	.ssl_free = dtls1_free,
	.ssl_accept = ssl3_accept,
	.ssl_connect = ssl3_connect,
	.ssl_read = ssl3_read,
	.ssl_peek = ssl3_peek,
	.ssl_write = ssl3_write,
	.ssl_shutdown = dtls1_shutdown,
	.ssl_pending = ssl3_pending,
	.get_ssl_method = dtls1_get_method,
	.get_timeout = dtls1_default_timeout,
Changes to jni/libressl/ssl/d1_srvr.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: d1_srvr.c,v 1.88 2017/05/07 04:22:24 beck Exp $ */
/*
 * DTLS implementation written by Nagendra Modadugu
 * (nagendra@cs.stanford.edu) for the OpenSSL project 2005.
 */
/* ====================================================================
 * Copyright (c) 1999-2007 The OpenSSL Project.  All rights reserved.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: d1_srvr.c,v 1.91 2017/10/12 15:52:50 jsing Exp $ */
/*
 * DTLS implementation written by Nagendra Modadugu
 * (nagendra@cs.stanford.edu) for the OpenSSL project 2005.
 */
/* ====================================================================
 * Copyright (c) 1999-2007 The OpenSSL Project.  All rights reserved.
 *
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#include <openssl/buffer.h>
#include <openssl/dh.h>
#include <openssl/evp.h>
#include <openssl/md5.h>
#include <openssl/objects.h>
#include <openssl/x509.h>

static int dtls1_send_hello_verify_request(SSL *s);

static const SSL_METHOD_INTERNAL DTLSv1_server_method_internal_data = {
	.version = DTLS1_VERSION,
	.min_version = DTLS1_VERSION,
	.max_version = DTLS1_VERSION,
	.ssl_new = dtls1_new,
	.ssl_clear = dtls1_clear,
	.ssl_free = dtls1_free,
	.ssl_accept = dtls1_accept,
	.ssl_connect = ssl_undefined_function,
	.ssl_read = ssl3_read,
	.ssl_peek = ssl3_peek,
	.ssl_write = ssl3_write,
	.ssl_shutdown = dtls1_shutdown,
	.ssl_pending = ssl3_pending,
	.get_ssl_method = dtls1_get_server_method,







<
<







|







121
122
123
124
125
126
127


128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
#include <openssl/buffer.h>
#include <openssl/dh.h>
#include <openssl/evp.h>
#include <openssl/md5.h>
#include <openssl/objects.h>
#include <openssl/x509.h>



static const SSL_METHOD_INTERNAL DTLSv1_server_method_internal_data = {
	.version = DTLS1_VERSION,
	.min_version = DTLS1_VERSION,
	.max_version = DTLS1_VERSION,
	.ssl_new = dtls1_new,
	.ssl_clear = dtls1_clear,
	.ssl_free = dtls1_free,
	.ssl_accept = ssl3_accept,
	.ssl_connect = ssl_undefined_function,
	.ssl_read = ssl3_read,
	.ssl_peek = ssl3_peek,
	.ssl_write = ssl3_write,
	.ssl_shutdown = dtls1_shutdown,
	.ssl_pending = ssl3_pending,
	.get_ssl_method = dtls1_get_server_method,
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
dtls1_get_server_method(int ver)
{
	if (ver == DTLS1_VERSION)
		return (DTLSv1_server_method());
	return (NULL);
}

int
dtls1_accept(SSL *s)
{
	void (*cb)(const SSL *ssl, int type, int val) = NULL;
	unsigned long alg_k;
	int ret = -1;
	int new_state, state, skip = 0;
	int listen;

	ERR_clear_error();
	errno = 0;

	if (s->internal->info_callback != NULL)
		cb = s->internal->info_callback;
	else if (s->ctx->internal->info_callback != NULL)
		cb = s->ctx->internal->info_callback;

	listen = D1I(s)->listen;

	/* init things to blank */
	s->internal->in_handshake++;
	if (!SSL_in_init(s) || SSL_in_before(s))
		SSL_clear(s);

	D1I(s)->listen = listen;

	if (s->cert == NULL) {
		SSLerror(s, SSL_R_NO_CERTIFICATE_SET);
		ret = -1;
		goto end;
	}

	for (;;) {
		state = S3I(s)->hs.state;

		switch (S3I(s)->hs.state) {
		case SSL_ST_RENEGOTIATE:
			s->internal->renegotiate = 1;
			/* S3I(s)->hs.state=SSL_ST_ACCEPT; */

		case SSL_ST_BEFORE:
		case SSL_ST_ACCEPT:
		case SSL_ST_BEFORE|SSL_ST_ACCEPT:
		case SSL_ST_OK|SSL_ST_ACCEPT:

			s->server = 1;
			if (cb != NULL)
				cb(s, SSL_CB_HANDSHAKE_START, 1);

			if ((s->version & 0xff00) != (DTLS1_VERSION & 0xff00)) {
				SSLerror(s, ERR_R_INTERNAL_ERROR);
				ret = -1;
				goto end;
			}
			s->internal->type = SSL_ST_ACCEPT;

			if (!ssl3_setup_init_buffer(s)) {
				ret = -1;
				goto end;
			}
			if (!ssl3_setup_buffers(s)) {
				ret = -1;
				goto end;
			}

			s->internal->init_num = 0;

			if (S3I(s)->hs.state != SSL_ST_RENEGOTIATE) {
				/* Ok, we now need to push on a buffering BIO so that
				 * the output is sent in a way that TCP likes :-)
				 * ...but not with SCTP :-)
				 */
				if (!ssl_init_wbio_buffer(s, 1)) {
					ret = -1;
					goto end;
				}

				if (!tls1_init_finished_mac(s)) {
					ret = -1;
					goto end;
				}

				S3I(s)->hs.state = SSL3_ST_SR_CLNT_HELLO_A;
				s->ctx->internal->stats.sess_accept++;
			} else {
				/* S3I(s)->hs.state == SSL_ST_RENEGOTIATE,
				 * we will just send a HelloRequest */
				s->ctx->internal->stats.sess_accept_renegotiate++;
				S3I(s)->hs.state = SSL3_ST_SW_HELLO_REQ_A;
			}

			break;

		case SSL3_ST_SW_HELLO_REQ_A:
		case SSL3_ST_SW_HELLO_REQ_B:

			s->internal->shutdown = 0;
			dtls1_clear_record_buffer(s);
			dtls1_start_timer(s);
			ret = ssl3_send_hello_request(s);
			if (ret <= 0)
				goto end;
			S3I(s)->hs.next_state = SSL3_ST_SR_CLNT_HELLO_A;
			S3I(s)->hs.state = SSL3_ST_SW_FLUSH;
			s->internal->init_num = 0;

			if (!tls1_init_finished_mac(s)) {
				ret = -1;
				goto end;
			}
			break;

		case SSL3_ST_SW_HELLO_REQ_C:
			S3I(s)->hs.state = SSL_ST_OK;
			break;

		case SSL3_ST_SR_CLNT_HELLO_A:
		case SSL3_ST_SR_CLNT_HELLO_B:
		case SSL3_ST_SR_CLNT_HELLO_C:

			s->internal->shutdown = 0;
			ret = ssl3_get_client_hello(s);
			if (ret <= 0)
				goto end;
			dtls1_stop_timer(s);

			if (ret == 1 && (SSL_get_options(s) & SSL_OP_COOKIE_EXCHANGE))
				S3I(s)->hs.state = DTLS1_ST_SW_HELLO_VERIFY_REQUEST_A;
			else
				S3I(s)->hs.state = SSL3_ST_SW_SRVR_HELLO_A;

			s->internal->init_num = 0;

			/* Reflect ClientHello sequence to remain stateless while listening */
			if (listen) {
				memcpy(S3I(s)->write_sequence, S3I(s)->read_sequence, sizeof(S3I(s)->write_sequence));
			}

			/* If we're just listening, stop here */
			if (listen && S3I(s)->hs.state == SSL3_ST_SW_SRVR_HELLO_A) {
				ret = 2;
				D1I(s)->listen = 0;
				/* Set expected sequence numbers
				 * to continue the handshake.
				 */
				D1I(s)->handshake_read_seq = 2;
				D1I(s)->handshake_write_seq = 1;
				D1I(s)->next_handshake_write_seq = 1;
				goto end;
			}

			break;

		case DTLS1_ST_SW_HELLO_VERIFY_REQUEST_A:
		case DTLS1_ST_SW_HELLO_VERIFY_REQUEST_B:

			ret = dtls1_send_hello_verify_request(s);
			if (ret <= 0)
				goto end;
			S3I(s)->hs.state = SSL3_ST_SW_FLUSH;
			S3I(s)->hs.next_state = SSL3_ST_SR_CLNT_HELLO_A;

			/* HelloVerifyRequest resets Finished MAC */
			if (!tls1_init_finished_mac(s)) {
				ret = -1;
				goto end;
			}
			break;


		case SSL3_ST_SW_SRVR_HELLO_A:
		case SSL3_ST_SW_SRVR_HELLO_B:
			s->internal->renegotiate = 2;
			dtls1_start_timer(s);
			ret = ssl3_send_server_hello(s);
			if (ret <= 0)
				goto end;

			if (s->internal->hit) {
				if (s->internal->tlsext_ticket_expected)
					S3I(s)->hs.state = SSL3_ST_SW_SESSION_TICKET_A;
				else
					S3I(s)->hs.state = SSL3_ST_SW_CHANGE_A;
			} else
				S3I(s)->hs.state = SSL3_ST_SW_CERT_A;
			s->internal->init_num = 0;
			break;

		case SSL3_ST_SW_CERT_A:
		case SSL3_ST_SW_CERT_B:
			/* Check if it is anon DH. */
			if (!(S3I(s)->hs.new_cipher->algorithm_auth &
			    SSL_aNULL)) {
				dtls1_start_timer(s);
				ret = ssl3_send_server_certificate(s);
				if (ret <= 0)
					goto end;
				if (s->internal->tlsext_status_expected)
					S3I(s)->hs.state = SSL3_ST_SW_CERT_STATUS_A;
				else
					S3I(s)->hs.state = SSL3_ST_SW_KEY_EXCH_A;
			} else {
				skip = 1;
				S3I(s)->hs.state = SSL3_ST_SW_KEY_EXCH_A;
			}
			s->internal->init_num = 0;
			break;

		case SSL3_ST_SW_KEY_EXCH_A:
		case SSL3_ST_SW_KEY_EXCH_B:
			alg_k = S3I(s)->hs.new_cipher->algorithm_mkey;

			/* Only send if using a DH key exchange. */
			if (alg_k & (SSL_kDHE|SSL_kECDHE)) {
				dtls1_start_timer(s);
				ret = ssl3_send_server_key_exchange(s);
				if (ret <= 0)
					goto end;
			} else
				skip = 1;

			S3I(s)->hs.state = SSL3_ST_SW_CERT_REQ_A;
			s->internal->init_num = 0;
			break;

		case SSL3_ST_SW_CERT_REQ_A:
		case SSL3_ST_SW_CERT_REQ_B:
			/*
			 * Determine whether or not we need to request a
			 * certificate.
			 *
			 * Do not request a certificate if:
			 *
			 * - We did not ask for it (SSL_VERIFY_PEER is unset).
			 *
			 * - SSL_VERIFY_CLIENT_ONCE is set and we are
			 *   renegotiating.
			 *
			 * - We are using an anonymous ciphersuites
			 *   (see section "Certificate request" in SSL 3 drafts
			 *   and in RFC 2246) ... except when the application
			 *   insists on verification (against the specs, but
			 *   s3_clnt.c accepts this for SSL 3).
			 */
			if (!(s->verify_mode & SSL_VERIFY_PEER) ||
			    ((s->session->peer != NULL) &&
			     (s->verify_mode & SSL_VERIFY_CLIENT_ONCE)) ||
			    ((S3I(s)->hs.new_cipher->algorithm_auth &
			     SSL_aNULL) && !(s->verify_mode &
			     SSL_VERIFY_FAIL_IF_NO_PEER_CERT))) {
				/* no cert request */
				skip = 1;
				S3I(s)->tmp.cert_request = 0;
				S3I(s)->hs.state = SSL3_ST_SW_SRVR_DONE_A;
			} else {
				S3I(s)->tmp.cert_request = 1;
				dtls1_start_timer(s);
				ret = ssl3_send_certificate_request(s);
				if (ret <= 0)
					goto end;
				S3I(s)->hs.state = SSL3_ST_SW_SRVR_DONE_A;
				s->internal->init_num = 0;
			}
			break;

		case SSL3_ST_SW_SRVR_DONE_A:
		case SSL3_ST_SW_SRVR_DONE_B:
			dtls1_start_timer(s);
			ret = ssl3_send_server_done(s);
			if (ret <= 0)
				goto end;
			S3I(s)->hs.next_state = SSL3_ST_SR_CERT_A;
			S3I(s)->hs.state = SSL3_ST_SW_FLUSH;
			s->internal->init_num = 0;
			break;

		case SSL3_ST_SW_FLUSH:
			s->internal->rwstate = SSL_WRITING;
			if (BIO_flush(s->wbio) <= 0) {
				/* If the write error was fatal, stop trying */
				if (!BIO_should_retry(s->wbio)) {
					s->internal->rwstate = SSL_NOTHING;
					S3I(s)->hs.state = S3I(s)->hs.next_state;
				}

				ret = -1;
				goto end;
			}
			s->internal->rwstate = SSL_NOTHING;
			S3I(s)->hs.state = S3I(s)->hs.next_state;
			break;

		case SSL3_ST_SR_CERT_A:
		case SSL3_ST_SR_CERT_B:
			if (S3I(s)->tmp.cert_request) {
				ret = ssl3_get_client_certificate(s);
				if (ret <= 0)
					goto end;
			}
			s->internal->init_num = 0;
			S3I(s)->hs.state = SSL3_ST_SR_KEY_EXCH_A;
			break;

		case SSL3_ST_SR_KEY_EXCH_A:
		case SSL3_ST_SR_KEY_EXCH_B:
			ret = ssl3_get_client_key_exchange(s);
			if (ret <= 0)
				goto end;

			S3I(s)->hs.state = SSL3_ST_SR_CERT_VRFY_A;
			s->internal->init_num = 0;

			if (ret == 2) {
				/* For the ECDH ciphersuites when
				 * the client sends its ECDH pub key in
				 * a certificate, the CertificateVerify
				 * message is not sent.
				 */
				S3I(s)->hs.state = SSL3_ST_SR_FINISHED_A;
				s->internal->init_num = 0;
			} else if (SSL_USE_SIGALGS(s)) {
				S3I(s)->hs.state = SSL3_ST_SR_CERT_VRFY_A;
				s->internal->init_num = 0;
				if (!s->session->peer)
					break;

				/*
				 * For sigalgs freeze the handshake buffer
				 * at this point and digest cached records.
				 */
				if (!S3I(s)->handshake_buffer) {
					SSLerror(s, ERR_R_INTERNAL_ERROR);
					ret = -1;
					goto end;
				}
				s->s3->flags |= TLS1_FLAGS_KEEP_HANDSHAKE;
				if (!tls1_digest_cached_records(s)) {
					ret = -1;
					goto end;
				}
			} else {
				S3I(s)->hs.state = SSL3_ST_SR_CERT_VRFY_A;
				s->internal->init_num = 0;

				/*
				 * We need to get hashes here so if there is
				 * a client cert, it can be verified.
				 */
				if (S3I(s)->handshake_buffer) {
					if (!tls1_digest_cached_records(s)) {
						ret = -1;
						goto end;
					}
				}
				if (!tls1_handshake_hash_value(s,
				    S3I(s)->tmp.cert_verify_md,
				    sizeof(S3I(s)->tmp.cert_verify_md),
				    NULL)) {
					ret = -1;
					goto end;
				}
			}
			break;

		case SSL3_ST_SR_CERT_VRFY_A:
		case SSL3_ST_SR_CERT_VRFY_B:

			D1I(s)->change_cipher_spec_ok = 1;
			/* we should decide if we expected this one */
			ret = ssl3_get_cert_verify(s);
			if (ret <= 0)
				goto end;
			S3I(s)->hs.state = SSL3_ST_SR_FINISHED_A;
			s->internal->init_num = 0;
			break;

		case SSL3_ST_SR_FINISHED_A:
		case SSL3_ST_SR_FINISHED_B:
			D1I(s)->change_cipher_spec_ok = 1;
			ret = ssl3_get_finished(s, SSL3_ST_SR_FINISHED_A,
			SSL3_ST_SR_FINISHED_B);
			if (ret <= 0)
				goto end;
			dtls1_stop_timer(s);
			if (s->internal->hit)
				S3I(s)->hs.state = SSL_ST_OK;
			else if (s->internal->tlsext_ticket_expected)
				S3I(s)->hs.state = SSL3_ST_SW_SESSION_TICKET_A;
			else
				S3I(s)->hs.state = SSL3_ST_SW_CHANGE_A;
			s->internal->init_num = 0;
			break;

		case SSL3_ST_SW_SESSION_TICKET_A:
		case SSL3_ST_SW_SESSION_TICKET_B:
			ret = ssl3_send_newsession_ticket(s);
			if (ret <= 0)
				goto end;
			S3I(s)->hs.state = SSL3_ST_SW_CHANGE_A;
			s->internal->init_num = 0;
			break;

		case SSL3_ST_SW_CERT_STATUS_A:
		case SSL3_ST_SW_CERT_STATUS_B:
			ret = ssl3_send_cert_status(s);
			if (ret <= 0)
				goto end;
			S3I(s)->hs.state = SSL3_ST_SW_KEY_EXCH_A;
			s->internal->init_num = 0;
			break;


		case SSL3_ST_SW_CHANGE_A:
		case SSL3_ST_SW_CHANGE_B:

			s->session->cipher = S3I(s)->hs.new_cipher;
			if (!tls1_setup_key_block(s)) {
				ret = -1;
				goto end;
			}

			ret = dtls1_send_change_cipher_spec(s,
			SSL3_ST_SW_CHANGE_A, SSL3_ST_SW_CHANGE_B);

			if (ret <= 0)
				goto end;


			S3I(s)->hs.state = SSL3_ST_SW_FINISHED_A;
			s->internal->init_num = 0;

			if (!tls1_change_cipher_state(s,
				SSL3_CHANGE_CIPHER_SERVER_WRITE)) {
				ret = -1;
				goto end;
			}

			dtls1_reset_seq_numbers(s, SSL3_CC_WRITE);
			break;

		case SSL3_ST_SW_FINISHED_A:
		case SSL3_ST_SW_FINISHED_B:
			ret = ssl3_send_finished(s,
			    SSL3_ST_SW_FINISHED_A, SSL3_ST_SW_FINISHED_B,
			    TLS_MD_SERVER_FINISH_CONST,
			    TLS_MD_SERVER_FINISH_CONST_SIZE);
			if (ret <= 0)
				goto end;
			S3I(s)->hs.state = SSL3_ST_SW_FLUSH;
			if (s->internal->hit) {
				S3I(s)->hs.next_state = SSL3_ST_SR_FINISHED_A;

			} else {
				S3I(s)->hs.next_state = SSL_ST_OK;
			}
			s->internal->init_num = 0;
			break;

		case SSL_ST_OK:
			/* clean a few things up */
			tls1_cleanup_key_block(s);

			/* remove buffering on output */
			ssl_free_wbio_buffer(s);

			s->internal->init_num = 0;

			if (s->internal->renegotiate == 2) /* skipped if we just sent a HelloRequest */
			{
				s->internal->renegotiate = 0;
				s->internal->new_session = 0;

				ssl_update_cache(s, SSL_SESS_CACHE_SERVER);

				s->ctx->internal->stats.sess_accept_good++;
				/* s->server=1; */
				s->internal->handshake_func = dtls1_accept;

				if (cb != NULL)
					cb(s, SSL_CB_HANDSHAKE_DONE, 1);
			}

			ret = 1;

			/* done handshaking, next message is client hello */
			D1I(s)->handshake_read_seq = 0;
			/* next message is server hello */
			D1I(s)->handshake_write_seq = 0;
			D1I(s)->next_handshake_write_seq = 0;
			goto end;
			/* break; */

		default:
			SSLerror(s, SSL_R_UNKNOWN_STATE);
			ret = -1;
			goto end;
			/* break; */
		}

		if (!S3I(s)->tmp.reuse_message && !skip) {
			if (s->internal->debug) {
				if ((ret = BIO_flush(s->wbio)) <= 0)
					goto end;
			}

			if ((cb != NULL) && (S3I(s)->hs.state != state)) {
				new_state = S3I(s)->hs.state;
				S3I(s)->hs.state = state;
				cb(s, SSL_CB_ACCEPT_LOOP, 1);
				S3I(s)->hs.state = new_state;
			}
		}
		skip = 0;
	}
end:
	/* BIO_flush(s->wbio); */

	s->internal->in_handshake--;

	if (cb != NULL)
		cb(s, SSL_CB_ACCEPT_EXIT, ret);

	return (ret);
}

int
dtls1_send_hello_verify_request(SSL *s)
{
	CBB cbb, verify, cookie;

	memset(&cbb, 0, sizeof(cbb));








<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







169
170
171
172
173
174
175













































































































































































































































































































































































































































































































































176
177
178
179
180
181
182
dtls1_get_server_method(int ver)
{
	if (ver == DTLS1_VERSION)
		return (DTLSv1_server_method());
	return (NULL);
}














































































































































































































































































































































































































































































































































int
dtls1_send_hello_verify_request(SSL *s)
{
	CBB cbb, verify, cookie;

	memset(&cbb, 0, sizeof(cbb));

Changes to jni/libressl/ssl/s3_lib.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: s3_lib.c,v 1.161 2017/09/25 18:04:08 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: s3_lib.c,v 1.165 2018/03/15 12:27:00 jca Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
1549
1550
1551
1552
1553
1554
1555






1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566

	return (ret);
}

int
ssl3_handshake_write(SSL *s)
{






	if (SSL_IS_DTLS(s))
		return dtls1_do_write(s, SSL3_RT_HANDSHAKE);

	return ssl3_do_write(s, SSL3_RT_HANDSHAKE);
}

int
ssl3_new(SSL *s)
{
	if ((s->s3 = calloc(1, sizeof(*s->s3))) == NULL)
		return (0);







>
>
>
>
>
>

|

|







1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572

	return (ret);
}

int
ssl3_handshake_write(SSL *s)
{
	return ssl3_record_write(s, SSL3_RT_HANDSHAKE);
}

int
ssl3_record_write(SSL *s, int type)
{
	if (SSL_IS_DTLS(s))
		return dtls1_do_write(s, type);

	return ssl3_do_write(s, type);
}

int
ssl3_new(SSL *s)
{
	if ((s->s3 = calloc(1, sizeof(*s->s3))) == NULL)
		return (0);
1974
1975
1976
1977
1978
1979
1980






1981
1982
1983
1984
1985
1986
1987

	case SSL_CTRL_SET_GROUPS_LIST:
		return SSL_set1_groups_list(s, parg);

	case SSL_CTRL_GET_SERVER_TMP_KEY:
		return ssl_ctrl_get_server_tmp_key(s, parg);







	case SSL_CTRL_SET_MIN_PROTO_VERSION:
		if (larg < 0 || larg > UINT16_MAX)
			return 0;
		return SSL_set_min_proto_version(s, larg);

	case SSL_CTRL_SET_MAX_PROTO_VERSION:
		if (larg < 0 || larg > UINT16_MAX)







>
>
>
>
>
>







1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999

	case SSL_CTRL_SET_GROUPS_LIST:
		return SSL_set1_groups_list(s, parg);

	case SSL_CTRL_GET_SERVER_TMP_KEY:
		return ssl_ctrl_get_server_tmp_key(s, parg);

	case SSL_CTRL_GET_MIN_PROTO_VERSION:
		return SSL_get_min_proto_version(s);

	case SSL_CTRL_GET_MAX_PROTO_VERSION:
		return SSL_get_max_proto_version(s);

	case SSL_CTRL_SET_MIN_PROTO_VERSION:
		if (larg < 0 || larg > UINT16_MAX)
			return 0;
		return SSL_set_min_proto_version(s, larg);

	case SSL_CTRL_SET_MAX_PROTO_VERSION:
		if (larg < 0 || larg > UINT16_MAX)
2122
2123
2124
2125
2126
2127
2128







2129
2130
2131
2132
2133
2134
2135

	memcpy(ctx->internal->tlsext_tick_key_name, keys, 16);
	memcpy(ctx->internal->tlsext_tick_hmac_key, keys + 16, 16);
	memcpy(ctx->internal->tlsext_tick_aes_key, keys + 32, 16);

	return 1;
}








static int
_SSL_CTX_set_tlsext_status_arg(SSL_CTX *ctx, void *arg)
{
	ctx->internal->tlsext_status_arg = arg;
	return 1;
}







>
>
>
>
>
>
>







2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154

	memcpy(ctx->internal->tlsext_tick_key_name, keys, 16);
	memcpy(ctx->internal->tlsext_tick_hmac_key, keys + 16, 16);
	memcpy(ctx->internal->tlsext_tick_aes_key, keys + 32, 16);

	return 1;
}

static int
_SSL_CTX_get_tlsext_status_arg(SSL_CTX *ctx, void **arg)
{
	*arg = ctx->internal->tlsext_status_arg;
	return 1;
}

static int
_SSL_CTX_set_tlsext_status_arg(SSL_CTX *ctx, void *arg)
{
	ctx->internal->tlsext_status_arg = arg;
	return 1;
}
2205
2206
2207
2208
2209
2210
2211



2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229






2230
2231
2232
2233
2234
2235
2236

	case SSL_CTRL_GET_TLSEXT_TICKET_KEYS:
		return _SSL_CTX_get_tlsext_ticket_keys(ctx, parg, larg);

	case SSL_CTRL_SET_TLSEXT_TICKET_KEYS:
		return _SSL_CTX_set_tlsext_ticket_keys(ctx, parg, larg);




	case SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG:
		return _SSL_CTX_set_tlsext_status_arg(ctx, parg);

	case SSL_CTRL_EXTRA_CHAIN_CERT:
		return _SSL_CTX_add_extra_chain_cert(ctx, parg);

	case SSL_CTRL_GET_EXTRA_CHAIN_CERTS:
		return _SSL_CTX_get_extra_chain_certs(ctx, parg);

	case SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS:
		return _SSL_CTX_clear_extra_chain_certs(ctx);

	case SSL_CTRL_SET_GROUPS:
		return SSL_CTX_set1_groups(ctx, parg, larg);

	case SSL_CTRL_SET_GROUPS_LIST:
		return SSL_CTX_set1_groups_list(ctx, parg);







	case SSL_CTRL_SET_MIN_PROTO_VERSION:
		if (larg < 0 || larg > UINT16_MAX)
			return 0;
		return SSL_CTX_set_min_proto_version(ctx, larg);

	case SSL_CTRL_SET_MAX_PROTO_VERSION:
		if (larg < 0 || larg > UINT16_MAX)







>
>
>


















>
>
>
>
>
>







2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264

	case SSL_CTRL_GET_TLSEXT_TICKET_KEYS:
		return _SSL_CTX_get_tlsext_ticket_keys(ctx, parg, larg);

	case SSL_CTRL_SET_TLSEXT_TICKET_KEYS:
		return _SSL_CTX_set_tlsext_ticket_keys(ctx, parg, larg);

	case SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB_ARG:
		return _SSL_CTX_get_tlsext_status_arg(ctx, parg);

	case SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG:
		return _SSL_CTX_set_tlsext_status_arg(ctx, parg);

	case SSL_CTRL_EXTRA_CHAIN_CERT:
		return _SSL_CTX_add_extra_chain_cert(ctx, parg);

	case SSL_CTRL_GET_EXTRA_CHAIN_CERTS:
		return _SSL_CTX_get_extra_chain_certs(ctx, parg);

	case SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS:
		return _SSL_CTX_clear_extra_chain_certs(ctx);

	case SSL_CTRL_SET_GROUPS:
		return SSL_CTX_set1_groups(ctx, parg, larg);

	case SSL_CTRL_SET_GROUPS_LIST:
		return SSL_CTX_set1_groups_list(ctx, parg);

	case SSL_CTRL_GET_MIN_PROTO_VERSION:
		return SSL_CTX_get_min_proto_version(ctx);

	case SSL_CTRL_GET_MAX_PROTO_VERSION:
		return SSL_CTX_get_max_proto_version(ctx);

	case SSL_CTRL_SET_MIN_PROTO_VERSION:
		if (larg < 0 || larg > UINT16_MAX)
			return 0;
		return SSL_CTX_set_min_proto_version(ctx, larg);

	case SSL_CTRL_SET_MAX_PROTO_VERSION:
		if (larg < 0 || larg > UINT16_MAX)
2268
2269
2270
2271
2272
2273
2274




2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296

2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308


2309


2310
2311






2312



2313
2314




2315
2316
2317
2318
2319
2320
2321
	case SSL_CTRL_SET_TMP_ECDH_CB:
		return 1;

	case SSL_CTRL_SET_TLSEXT_SERVERNAME_CB:
		ctx->internal->tlsext_servername_callback =
		    (int (*)(SSL *, int *, void *))fp;
		return 1;





	case SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB:
		ctx->internal->tlsext_status_cb = (int (*)(SSL *, void *))fp;
		return 1;

	case SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB:
		ctx->internal->tlsext_ticket_key_cb = (int (*)(SSL *, unsigned char  *,
		    unsigned char *, EVP_CIPHER_CTX *, HMAC_CTX *, int))fp;
		return 1;
	}

	return 0;
}

/*
 * This function needs to check if the ciphers required are actually available.
 */
const SSL_CIPHER *
ssl3_get_cipher_by_char(const unsigned char *p)
{
	CBS cipher;
	uint16_t cipher_value;


	/* We have to assume it is at least 2 bytes due to existing API. */
	CBS_init(&cipher, p, 2);
	if (!CBS_get_u16(&cipher, &cipher_value))
		return NULL;

	return ssl3_get_cipher_by_value(cipher_value);
}

int
ssl3_put_cipher_by_char(const SSL_CIPHER *c, unsigned char *p)
{


	if (p != NULL) {


		if ((c->id & ~SSL3_CK_VALUE_MASK) != SSL3_CK_ID)
			return (0);






		s2n(ssl3_cipher_get_value(c), p); 



	}
	return (2);




}

SSL_CIPHER *
ssl3_choose_cipher(SSL *s, STACK_OF(SSL_CIPHER) *clnt,
    STACK_OF(SSL_CIPHER) *srvr)
{
	unsigned long alg_k, alg_a, mask_k, mask_a;







>
>
>
>




















<

>


|
|








>
>
|
>
>
|
|
>
>
>
>
>
>
|
>
>
>
|

>
>
>
>







2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326

2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
	case SSL_CTRL_SET_TMP_ECDH_CB:
		return 1;

	case SSL_CTRL_SET_TLSEXT_SERVERNAME_CB:
		ctx->internal->tlsext_servername_callback =
		    (int (*)(SSL *, int *, void *))fp;
		return 1;

	case SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB:
		*(int (**)(SSL *, void *))fp = ctx->internal->tlsext_status_cb;
		return 1;

	case SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB:
		ctx->internal->tlsext_status_cb = (int (*)(SSL *, void *))fp;
		return 1;

	case SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB:
		ctx->internal->tlsext_ticket_key_cb = (int (*)(SSL *, unsigned char  *,
		    unsigned char *, EVP_CIPHER_CTX *, HMAC_CTX *, int))fp;
		return 1;
	}

	return 0;
}

/*
 * This function needs to check if the ciphers required are actually available.
 */
const SSL_CIPHER *
ssl3_get_cipher_by_char(const unsigned char *p)
{

	uint16_t cipher_value;
	CBS cbs;

	/* We have to assume it is at least 2 bytes due to existing API. */
	CBS_init(&cbs, p, 2);
	if (!CBS_get_u16(&cbs, &cipher_value))
		return NULL;

	return ssl3_get_cipher_by_value(cipher_value);
}

int
ssl3_put_cipher_by_char(const SSL_CIPHER *c, unsigned char *p)
{
	CBB cbb;

	if (p == NULL)
		return (2);

	if ((c->id & ~SSL3_CK_VALUE_MASK) != SSL3_CK_ID)
		return (0);

	memset(&cbb, 0, sizeof(cbb));

	/* We have to assume it is at least 2 bytes due to existing API. */
	if (!CBB_init_fixed(&cbb, p, 2))
		goto err;
	if (!CBB_add_u16(&cbb, ssl3_cipher_get_value(c)))
		goto err;
	if (!CBB_finish(&cbb, NULL, NULL))
		goto err;

	return (2);

 err:
	CBB_cleanup(&cbb);
	return (0);
}

SSL_CIPHER *
ssl3_choose_cipher(SSL *s, STACK_OF(SSL_CIPHER) *clnt,
    STACK_OF(SSL_CIPHER) *srvr)
{
	unsigned long alg_k, alg_a, mask_k, mask_a;
Changes to jni/libressl/ssl/ssl.sym.
26
27
28
29
30
31
32

33
34
35


36

37
38
39

40
41
42
43
44
45
46
47
48
49


50

51
52


53
54
55


56
57
58
59
60
61
62
PEM_read_bio_SSL_SESSION
PEM_write_SSL_SESSION
PEM_write_bio_SSL_SESSION
d2i_SSL_SESSION
i2d_SSL_SESSION
ERR_load_SSL_strings
SSL_CIPHER_description

SSL_CIPHER_get_bits
SSL_CIPHER_get_by_id
SSL_CIPHER_get_by_value


SSL_CIPHER_get_id

SSL_CIPHER_get_name
SSL_CIPHER_get_value
SSL_CIPHER_get_version

SSL_COMP_add_compression_method
SSL_COMP_get_compression_methods
SSL_COMP_get_name
SSL_CTX_add_client_CA
SSL_CTX_add_session
SSL_CTX_callback_ctrl
SSL_CTX_check_private_key
SSL_CTX_ctrl
SSL_CTX_flush_sessions
SSL_CTX_free


SSL_CTX_get_cert_store

SSL_CTX_get_client_CA_list
SSL_CTX_get_client_cert_cb


SSL_CTX_get_ex_data
SSL_CTX_get_ex_new_index
SSL_CTX_get_info_callback


SSL_CTX_get_quiet_shutdown
SSL_CTX_get_timeout
SSL_CTX_get_verify_callback
SSL_CTX_get_verify_depth
SSL_CTX_get_verify_mode
SSL_CTX_load_verify_locations
SSL_CTX_load_verify_mem







>



>
>

>



>










>
>

>


>
>



>
>







26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
PEM_read_bio_SSL_SESSION
PEM_write_SSL_SESSION
PEM_write_bio_SSL_SESSION
d2i_SSL_SESSION
i2d_SSL_SESSION
ERR_load_SSL_strings
SSL_CIPHER_description
SSL_CIPHER_get_auth_nid
SSL_CIPHER_get_bits
SSL_CIPHER_get_by_id
SSL_CIPHER_get_by_value
SSL_CIPHER_get_cipher_nid
SSL_CIPHER_get_digest_nid
SSL_CIPHER_get_id
SSL_CIPHER_get_kx_nid
SSL_CIPHER_get_name
SSL_CIPHER_get_value
SSL_CIPHER_get_version
SSL_CIPHER_is_aead
SSL_COMP_add_compression_method
SSL_COMP_get_compression_methods
SSL_COMP_get_name
SSL_CTX_add_client_CA
SSL_CTX_add_session
SSL_CTX_callback_ctrl
SSL_CTX_check_private_key
SSL_CTX_ctrl
SSL_CTX_flush_sessions
SSL_CTX_free
SSL_CTX_get0_certificate
SSL_CTX_get0_param
SSL_CTX_get_cert_store
SSL_CTX_get_ciphers
SSL_CTX_get_client_CA_list
SSL_CTX_get_client_cert_cb
SSL_CTX_get_default_passwd_cb
SSL_CTX_get_default_passwd_cb_userdata
SSL_CTX_get_ex_data
SSL_CTX_get_ex_new_index
SSL_CTX_get_info_callback
SSL_CTX_get_max_proto_version
SSL_CTX_get_min_proto_version
SSL_CTX_get_quiet_shutdown
SSL_CTX_get_timeout
SSL_CTX_get_verify_callback
SSL_CTX_get_verify_depth
SSL_CTX_get_verify_mode
SSL_CTX_load_verify_locations
SSL_CTX_load_verify_mem
84
85
86
87
88
89
90
91
92

93
94
95
96
97
98
99
100
101
102
103
104
105
106
107

108
109
110
111
112
113
114
115
116
117
118
119

120
121
122
123
124



125
126

127
128
129

130
131
132
133

134
135
136
137
138
139
140
SSL_CTX_set_cookie_verify_cb
SSL_CTX_set_default_passwd_cb
SSL_CTX_set_default_passwd_cb_userdata
SSL_CTX_set_default_verify_paths
SSL_CTX_set_ex_data
SSL_CTX_set_generate_session_id
SSL_CTX_set_info_callback
SSL_CTX_set_min_proto_version
SSL_CTX_set_max_proto_version

SSL_CTX_set_msg_callback
SSL_CTX_set_next_proto_select_cb
SSL_CTX_set_next_protos_advertised_cb
SSL_CTX_set_purpose
SSL_CTX_set_quiet_shutdown
SSL_CTX_set_session_id_context
SSL_CTX_set_ssl_version
SSL_CTX_set_timeout
SSL_CTX_set_tlsext_use_srtp
SSL_CTX_set_tmp_dh_callback
SSL_CTX_set_tmp_ecdh_callback
SSL_CTX_set_tmp_rsa_callback
SSL_CTX_set_trust
SSL_CTX_set_verify
SSL_CTX_set_verify_depth

SSL_CTX_use_PrivateKey
SSL_CTX_use_PrivateKey_ASN1
SSL_CTX_use_PrivateKey_file
SSL_CTX_use_RSAPrivateKey
SSL_CTX_use_RSAPrivateKey_ASN1
SSL_CTX_use_RSAPrivateKey_file
SSL_CTX_use_certificate
SSL_CTX_use_certificate_ASN1
SSL_CTX_use_certificate_chain_file
SSL_CTX_use_certificate_chain_mem
SSL_CTX_use_certificate_file
SSL_SESSION_free

SSL_SESSION_get0_peer
SSL_SESSION_get_compress_id
SSL_SESSION_get_ex_data
SSL_SESSION_get_ex_new_index
SSL_SESSION_get_id



SSL_SESSION_get_time
SSL_SESSION_get_timeout

SSL_SESSION_new
SSL_SESSION_print
SSL_SESSION_print_fp

SSL_SESSION_set1_id_context
SSL_SESSION_set_ex_data
SSL_SESSION_set_time
SSL_SESSION_set_timeout

SSL_accept
SSL_add_client_CA
SSL_add_dir_cert_subjects_to_stack
SSL_add_file_cert_subjects_to_stack
SSL_alert_desc_string
SSL_alert_desc_string_long
SSL_alert_type_string







<

>















>












>





>
>
>


>



>




>







96
97
98
99
100
101
102

103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
SSL_CTX_set_cookie_verify_cb
SSL_CTX_set_default_passwd_cb
SSL_CTX_set_default_passwd_cb_userdata
SSL_CTX_set_default_verify_paths
SSL_CTX_set_ex_data
SSL_CTX_set_generate_session_id
SSL_CTX_set_info_callback

SSL_CTX_set_max_proto_version
SSL_CTX_set_min_proto_version
SSL_CTX_set_msg_callback
SSL_CTX_set_next_proto_select_cb
SSL_CTX_set_next_protos_advertised_cb
SSL_CTX_set_purpose
SSL_CTX_set_quiet_shutdown
SSL_CTX_set_session_id_context
SSL_CTX_set_ssl_version
SSL_CTX_set_timeout
SSL_CTX_set_tlsext_use_srtp
SSL_CTX_set_tmp_dh_callback
SSL_CTX_set_tmp_ecdh_callback
SSL_CTX_set_tmp_rsa_callback
SSL_CTX_set_trust
SSL_CTX_set_verify
SSL_CTX_set_verify_depth
SSL_CTX_up_ref
SSL_CTX_use_PrivateKey
SSL_CTX_use_PrivateKey_ASN1
SSL_CTX_use_PrivateKey_file
SSL_CTX_use_RSAPrivateKey
SSL_CTX_use_RSAPrivateKey_ASN1
SSL_CTX_use_RSAPrivateKey_file
SSL_CTX_use_certificate
SSL_CTX_use_certificate_ASN1
SSL_CTX_use_certificate_chain_file
SSL_CTX_use_certificate_chain_mem
SSL_CTX_use_certificate_file
SSL_SESSION_free
SSL_SESSION_get0_id_context
SSL_SESSION_get0_peer
SSL_SESSION_get_compress_id
SSL_SESSION_get_ex_data
SSL_SESSION_get_ex_new_index
SSL_SESSION_get_id
SSL_SESSION_get_master_key
SSL_SESSION_get_protocol_version
SSL_SESSION_get_ticket_lifetime_hint
SSL_SESSION_get_time
SSL_SESSION_get_timeout
SSL_SESSION_has_ticket
SSL_SESSION_new
SSL_SESSION_print
SSL_SESSION_print_fp
SSL_SESSION_set1_id
SSL_SESSION_set1_id_context
SSL_SESSION_set_ex_data
SSL_SESSION_set_time
SSL_SESSION_set_timeout
SSL_SESSION_up_ref
SSL_accept
SSL_add_client_CA
SSL_add_dir_cert_subjects_to_stack
SSL_add_file_cert_subjects_to_stack
SSL_alert_desc_string
SSL_alert_desc_string_long
SSL_alert_type_string
149
150
151
152
153
154
155

156
157
158
159
160
161

162
163
164
165
166
167
168
169
170
171
172


173
174
175
176
177
178
179
180
181

182
183
184
185
186
187
188
189
190
191
192
193
194
195
196

197
198
199
200
201
202
203
SSL_do_handshake
SSL_dup
SSL_dup_CA_list
SSL_export_keying_material
SSL_free
SSL_get0_alpn_selected
SSL_get0_next_proto_negotiated

SSL_get1_session
SSL_get_SSL_CTX
SSL_get_certificate
SSL_get_cipher_list
SSL_get_ciphers
SSL_get_client_CA_list

SSL_get_current_cipher
SSL_get_current_compression
SSL_get_current_expansion
SSL_get_default_timeout
SSL_get_error
SSL_get_ex_data
SSL_get_ex_data_X509_STORE_CTX_idx
SSL_get_ex_new_index
SSL_get_fd
SSL_get_finished
SSL_get_info_callback


SSL_get_peer_cert_chain
SSL_get_peer_certificate
SSL_get_peer_finished
SSL_get_privatekey
SSL_get_quiet_shutdown
SSL_get_rbio
SSL_get_read_ahead
SSL_get_rfd
SSL_get_selected_srtp_profile

SSL_get_servername
SSL_get_servername_type
SSL_get_session
SSL_get_shared_ciphers
SSL_get_shutdown
SSL_get_srtp_profiles
SSL_get_ssl_method
SSL_get_verify_callback
SSL_get_verify_depth
SSL_get_verify_mode
SSL_get_verify_result
SSL_get_version
SSL_get_wbio
SSL_get_wfd
SSL_has_matching_session_id

SSL_library_init
SSL_load_client_CA_file
SSL_load_error_strings
SSL_new
SSL_peek
SSL_pending
SSL_read







>






>











>
>









>















>







169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
SSL_do_handshake
SSL_dup
SSL_dup_CA_list
SSL_export_keying_material
SSL_free
SSL_get0_alpn_selected
SSL_get0_next_proto_negotiated
SSL_get0_param
SSL_get1_session
SSL_get_SSL_CTX
SSL_get_certificate
SSL_get_cipher_list
SSL_get_ciphers
SSL_get_client_CA_list
SSL_get_client_random
SSL_get_current_cipher
SSL_get_current_compression
SSL_get_current_expansion
SSL_get_default_timeout
SSL_get_error
SSL_get_ex_data
SSL_get_ex_data_X509_STORE_CTX_idx
SSL_get_ex_new_index
SSL_get_fd
SSL_get_finished
SSL_get_info_callback
SSL_get_max_proto_version
SSL_get_min_proto_version
SSL_get_peer_cert_chain
SSL_get_peer_certificate
SSL_get_peer_finished
SSL_get_privatekey
SSL_get_quiet_shutdown
SSL_get_rbio
SSL_get_read_ahead
SSL_get_rfd
SSL_get_selected_srtp_profile
SSL_get_server_random
SSL_get_servername
SSL_get_servername_type
SSL_get_session
SSL_get_shared_ciphers
SSL_get_shutdown
SSL_get_srtp_profiles
SSL_get_ssl_method
SSL_get_verify_callback
SSL_get_verify_depth
SSL_get_verify_mode
SSL_get_verify_result
SSL_get_version
SSL_get_wbio
SSL_get_wfd
SSL_has_matching_session_id
SSL_is_server
SSL_library_init
SSL_load_client_CA_file
SSL_load_error_strings
SSL_new
SSL_peek
SSL_pending
SSL_read
218
219
220
221
222
223
224
225
226

227
228
229
230
231
232
233
SSL_set_client_CA_list
SSL_set_connect_state
SSL_set_debug
SSL_set_ex_data
SSL_set_fd
SSL_set_generate_session_id
SSL_set_info_callback
SSL_set_min_proto_version
SSL_set_max_proto_version

SSL_set_msg_callback
SSL_set_purpose
SSL_set_quiet_shutdown
SSL_set_read_ahead
SSL_set_rfd
SSL_set_session
SSL_set_session_id_context







<

>







244
245
246
247
248
249
250

251
252
253
254
255
256
257
258
259
SSL_set_client_CA_list
SSL_set_connect_state
SSL_set_debug
SSL_set_ex_data
SSL_set_fd
SSL_set_generate_session_id
SSL_set_info_callback

SSL_set_max_proto_version
SSL_set_min_proto_version
SSL_set_msg_callback
SSL_set_purpose
SSL_set_quiet_shutdown
SSL_set_read_ahead
SSL_set_rfd
SSL_set_session
SSL_set_session_id_context
246
247
248
249
250
251
252

253
254
255
256
257
258
259
260
261
262
263
264
265

SSL_set_verify_depth
SSL_set_verify_result
SSL_set_wfd
SSL_shutdown
SSL_state
SSL_state_string
SSL_state_string_long

SSL_use_PrivateKey
SSL_use_PrivateKey_ASN1
SSL_use_PrivateKey_file
SSL_use_RSAPrivateKey
SSL_use_RSAPrivateKey_ASN1
SSL_use_RSAPrivateKey_file
SSL_use_certificate
SSL_use_certificate_ASN1
SSL_use_certificate_file
SSL_version
SSL_version_str
SSL_want
SSL_write








>













>
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
SSL_set_verify_depth
SSL_set_verify_result
SSL_set_wfd
SSL_shutdown
SSL_state
SSL_state_string
SSL_state_string_long
SSL_up_ref
SSL_use_PrivateKey
SSL_use_PrivateKey_ASN1
SSL_use_PrivateKey_file
SSL_use_RSAPrivateKey
SSL_use_RSAPrivateKey_ASN1
SSL_use_RSAPrivateKey_file
SSL_use_certificate
SSL_use_certificate_ASN1
SSL_use_certificate_file
SSL_version
SSL_version_str
SSL_want
SSL_write
OPENSSL_init_ssl
Changes to jni/libressl/ssl/ssl_asn1.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: ssl_asn1.c,v 1.55 2017/05/06 16:18:36 jsing Exp $ */
/*
 * Copyright (c) 2016 Joel Sing <jsing@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: ssl_asn1.c,v 1.56 2018/03/20 16:10:57 jsing Exp $ */
/*
 * Copyright (c) 2016 Joel Sing <jsing@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
			*pp += data_len;
		}
	}

	rv = (int)data_len;

 err:
	CBB_cleanup(&session);
	freezero(data, data_len);
	free(peer_cert_bytes);

	return rv;
}

SSL_SESSION *







|







200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
			*pp += data_len;
		}
	}

	rv = (int)data_len;

 err:
	CBB_cleanup(&cbb);
	freezero(data, data_len);
	free(peer_cert_bytes);

	return rv;
}

SSL_SESSION *
Changes to jni/libressl/ssl/ssl_both.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: ssl_both.c,v 1.10 2017/08/12 02:55:22 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: ssl_both.c,v 1.11 2017/10/08 16:24:02 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
307
308
309
310
311
312
313


314

315
316

317

318







319
320








321
322
323
324
325
326





327
328
329
330
331
332
333
 * ssl->s3->internal->read_mac_secret		re-init
 * ssl->session->read_sym_enc		assign
 * ssl->session->read_hash		assign
 */
int
ssl3_send_change_cipher_spec(SSL *s, int a, int b)
{


	unsigned char *p;


	if (S3I(s)->hs.state == a) {

		p = (unsigned char *)s->internal->init_buf->data;

		*p = SSL3_MT_CCS;







		s->internal->init_num = 1;
		s->internal->init_off = 0;









		S3I(s)->hs.state = b;
	}

	/* SSL3_ST_CW_CHANGE_B */
	return (ssl3_do_write(s, SSL3_RT_CHANGE_CIPHER_SPEC));





}

static int
ssl3_add_cert(CBB *cbb, X509 *x)
{
	unsigned char *data;
	int cert_len;







>
>
|
>


>
|
>
|
>
>
>
>
>
>
>
|

>
>
>
>
>
>
>
>





|
>
>
>
>
>







307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
 * ssl->s3->internal->read_mac_secret		re-init
 * ssl->session->read_sym_enc		assign
 * ssl->session->read_hash		assign
 */
int
ssl3_send_change_cipher_spec(SSL *s, int a, int b)
{
	size_t outlen;
	CBB cbb;

	memset(&cbb, 0, sizeof(cbb));

	if (S3I(s)->hs.state == a) {
		if (!CBB_init_fixed(&cbb, s->internal->init_buf->data,
		    s->internal->init_buf->length))
			goto err;
		if (!CBB_add_u8(&cbb, SSL3_MT_CCS))
			goto err;
		if (!CBB_finish(&cbb, NULL, &outlen))
			goto err;

		if (outlen > INT_MAX)
			goto err;

		s->internal->init_num = (int)outlen;
		s->internal->init_off = 0;

		if (SSL_IS_DTLS(s)) {
			D1I(s)->handshake_write_seq =
			    D1I(s)->next_handshake_write_seq;
			dtls1_set_message_header_int(s, SSL3_MT_CCS, 0,
			    D1I(s)->handshake_write_seq, 0, 0);
			dtls1_buffer_message(s, 1);
		}

		S3I(s)->hs.state = b;
	}

	/* SSL3_ST_CW_CHANGE_B */
	return ssl3_record_write(s, SSL3_RT_CHANGE_CIPHER_SPEC);

 err:
	CBB_cleanup(&cbb);

	return -1;
}

static int
ssl3_add_cert(CBB *cbb, X509 *x)
{
	unsigned char *data;
	int cert_len;
Changes to jni/libressl/ssl/ssl_ciph.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: ssl_ciph.c,v 1.97 2017/08/28 16:37:04 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: ssl_ciph.c,v 1.98 2018/03/17 14:40:45 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
1715
1716
1717
1718
1719
1720
1721


































































































1722
1723
1724
1725
1726
1727
1728
}

uint16_t
SSL_CIPHER_get_value(const SSL_CIPHER *c)
{
	return ssl3_cipher_get_value(c);
}



































































































void *
SSL_COMP_get_compression_methods(void)
{
	return NULL;
}








>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
}

uint16_t
SSL_CIPHER_get_value(const SSL_CIPHER *c)
{
	return ssl3_cipher_get_value(c);
}

int
SSL_CIPHER_get_cipher_nid(const SSL_CIPHER *c)
{
	switch (c->algorithm_enc) {
	case SSL_eNULL:
		return NID_undef;
	case SSL_3DES:
		return NID_des_ede3_cbc;
	case SSL_AES128:
		return NID_aes_128_cbc;
	case SSL_AES128GCM:
		return NID_aes_128_gcm;
	case SSL_AES256:
		return NID_aes_256_cbc;
	case SSL_AES256GCM:
		return NID_aes_256_gcm;
	case SSL_CAMELLIA128:
		return NID_camellia_128_cbc;
	case SSL_CAMELLIA256:
		return NID_camellia_256_cbc;
	case SSL_CHACHA20POLY1305:
		return NID_chacha20_poly1305;
	case SSL_DES:
		return NID_des_cbc;
	case SSL_RC4:
		return NID_rc4;
	case SSL_eGOST2814789CNT:
		return NID_gost89_cnt;
	default:
		return NID_undef;
	}
}

int
SSL_CIPHER_get_digest_nid(const SSL_CIPHER *c)
{
	switch (c->algorithm_mac) {
	case SSL_AEAD:
		return NID_undef;
	case SSL_GOST89MAC:
		return NID_id_Gost28147_89_MAC;
	case SSL_GOST94:
		return NID_id_GostR3411_94;
	case SSL_MD5:
		return NID_md5;
	case SSL_SHA1:
		return NID_sha1;
	case SSL_SHA256:
		return NID_sha256;
	case SSL_SHA384:
		return NID_sha384;
	case SSL_STREEBOG256:
		return NID_id_tc26_gost3411_2012_256;
	default:
		return NID_undef;
	}
}

int
SSL_CIPHER_get_kx_nid(const SSL_CIPHER *c)
{
	switch (c->algorithm_mkey) {
	case SSL_kDHE:
		return NID_kx_dhe;
	case SSL_kECDHE:
		return NID_kx_ecdhe;
	case SSL_kGOST:
		return NID_kx_gost;
	case SSL_kRSA:
		return NID_kx_rsa;
	default:
		return NID_undef;
	}
}

int
SSL_CIPHER_get_auth_nid(const SSL_CIPHER *c)
{
	switch (c->algorithm_auth) {
	case SSL_aNULL:
		return NID_auth_null;
	case SSL_aECDSA:
		return NID_auth_ecdsa;
	case SSL_aGOST01:
		return NID_auth_gost01;
	case SSL_aRSA:
		return NID_auth_rsa;
	default:
		return NID_undef;
	}
}

int
SSL_CIPHER_is_aead(const SSL_CIPHER *c)
{
	return (c->algorithm_mac & SSL_AEAD) == SSL_AEAD;
}

void *
SSL_COMP_get_compression_methods(void)
{
	return NULL;
}

Changes to jni/libressl/ssl/ssl_clnt.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: ssl_clnt.c,v 1.17 2017/08/12 21:47:59 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: ssl_clnt.c,v 1.23 2018/02/08 11:30:30 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
166
167
168
169
170
171
172

173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
#include <openssl/engine.h>
#endif
#ifndef OPENSSL_NO_GOST
#include <openssl/gost.h>
#endif

#include "bytestring.h"


static int ca_dn_cmp(const X509_NAME * const *a, const X509_NAME * const *b);

int
ssl3_connect(SSL *s)
{
	void   (*cb)(const SSL *ssl, int type, int val) = NULL;
	int	 ret = -1;
	int	 new_state, state, skip = 0;

	ERR_clear_error();
	errno = 0;

	if (s->internal->info_callback != NULL)
		cb = s->internal->info_callback;
	else if (s->ctx->internal->info_callback != NULL)







>






|
|
|







166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
#include <openssl/engine.h>
#endif
#ifndef OPENSSL_NO_GOST
#include <openssl/gost.h>
#endif

#include "bytestring.h"
#include "ssl_tlsext.h"

static int ca_dn_cmp(const X509_NAME * const *a, const X509_NAME * const *b);

int
ssl3_connect(SSL *s)
{
	void (*cb)(const SSL *ssl, int type, int val) = NULL;
	int ret = -1;
	int new_state, state, skip = 0;

	ERR_clear_error();
	errno = 0;

	if (s->internal->info_callback != NULL)
		cb = s->internal->info_callback;
	else if (s->ctx->internal->info_callback != NULL)
206
207
208
209
210
211
212







213
214
215
216

217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236

237
238
239

240
241
242
243
244








245
246
247
248

249






250



251
252
253





254

255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270

271
272
273
274



275














276
277
278
279
280
281
282
		case SSL_ST_BEFORE|SSL_ST_CONNECT:
		case SSL_ST_OK|SSL_ST_CONNECT:

			s->server = 0;
			if (cb != NULL)
				cb(s, SSL_CB_HANDSHAKE_START, 1);








			if ((s->version & 0xff00 ) != 0x0300) {
				SSLerror(s, ERR_R_INTERNAL_ERROR);
				ret = -1;
				goto end;

			}

			/* s->version=SSL3_VERSION; */
			s->internal->type = SSL_ST_CONNECT;

			if (!ssl3_setup_init_buffer(s)) {
				ret = -1;
				goto end;
			}
			if (!ssl3_setup_buffers(s)) {
				ret = -1;
				goto end;
			}
			if (!ssl_init_wbio_buffer(s, 0)) {
				ret = -1;
				goto end;
			}

			/* don't push the buffering BIO quite yet */


			if (!tls1_init_finished_mac(s)) {
				ret = -1;
				goto end;

			}

			S3I(s)->hs.state = SSL3_ST_CW_CLNT_HELLO_A;
			s->ctx->internal->stats.sess_connect++;
			s->internal->init_num = 0;








			break;

		case SSL3_ST_CW_CLNT_HELLO_A:
		case SSL3_ST_CW_CLNT_HELLO_B:








			s->internal->shutdown = 0;



			ret = ssl3_client_hello(s);
			if (ret <= 0)
				goto end;





			S3I(s)->hs.state = SSL3_ST_CR_SRVR_HELLO_A;

			s->internal->init_num = 0;

			/* turn on buffering for the next lot of output */
			if (s->bbio != s->wbio)
				s->wbio = BIO_push(s->bbio, s->wbio);

			break;

		case SSL3_ST_CR_SRVR_HELLO_A:
		case SSL3_ST_CR_SRVR_HELLO_B:
			ret = ssl3_get_server_hello(s);
			if (ret <= 0)
				goto end;

			if (s->internal->hit) {
				S3I(s)->hs.state = SSL3_ST_CR_FINISHED_A;

				if (s->internal->tlsext_ticket_expected) {
					/* receive renewed session ticket */
					S3I(s)->hs.state = SSL3_ST_CR_SESSION_TICKET_A;
				}



			} else














				S3I(s)->hs.state = SSL3_ST_CR_CERT_A;
			s->internal->init_num = 0;
			break;

		case SSL3_ST_CR_CERT_A:
		case SSL3_ST_CR_CERT_B:
			ret = ssl3_check_finished(s);







>
>
>
>
>
>
>
|
|
|
|
>




















>
|
|
|
>





>
>
>
>
>
>
>
>




>

>
>
>
>
>
>
|
>
>
>
|


>
>
>
>
>
|
>
















>
|
|
|
|
>
>
>
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>







207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
		case SSL_ST_BEFORE|SSL_ST_CONNECT:
		case SSL_ST_OK|SSL_ST_CONNECT:

			s->server = 0;
			if (cb != NULL)
				cb(s, SSL_CB_HANDSHAKE_START, 1);

			if (SSL_IS_DTLS(s)) {
				if ((s->version & 0xff00) != (DTLS1_VERSION & 0xff00)) {
					SSLerror(s, ERR_R_INTERNAL_ERROR);
					ret = -1;
					goto end;
				}
			} else {
				if ((s->version & 0xff00) != 0x0300) {
					SSLerror(s, ERR_R_INTERNAL_ERROR);
					ret = -1;
					goto end;
				}
			}

			/* s->version=SSL3_VERSION; */
			s->internal->type = SSL_ST_CONNECT;

			if (!ssl3_setup_init_buffer(s)) {
				ret = -1;
				goto end;
			}
			if (!ssl3_setup_buffers(s)) {
				ret = -1;
				goto end;
			}
			if (!ssl_init_wbio_buffer(s, 0)) {
				ret = -1;
				goto end;
			}

			/* don't push the buffering BIO quite yet */

			if (!SSL_IS_DTLS(s)) {
				if (!tls1_init_finished_mac(s)) {
					ret = -1;
					goto end;
				}
			}

			S3I(s)->hs.state = SSL3_ST_CW_CLNT_HELLO_A;
			s->ctx->internal->stats.sess_connect++;
			s->internal->init_num = 0;

			if (SSL_IS_DTLS(s)) {
				/* mark client_random uninitialized */
				memset(s->s3->client_random, 0,
				    sizeof(s->s3->client_random));
				D1I(s)->send_cookie = 0;
				s->internal->hit = 0;
			}
			break;

		case SSL3_ST_CW_CLNT_HELLO_A:
		case SSL3_ST_CW_CLNT_HELLO_B:
			s->internal->shutdown = 0;

			if (SSL_IS_DTLS(s)) {
				/* every DTLS ClientHello resets Finished MAC */
				if (!tls1_init_finished_mac(s)) {
					ret = -1;
					goto end;
				}

				dtls1_start_timer(s);
			}

			ret = ssl3_send_client_hello(s);
			if (ret <= 0)
				goto end;

			if (SSL_IS_DTLS(s) && D1I(s)->send_cookie) {
				S3I(s)->hs.state = SSL3_ST_CW_FLUSH;
				S3I(s)->hs.next_state = SSL3_ST_CR_SRVR_HELLO_A;
			} else
				S3I(s)->hs.state = SSL3_ST_CR_SRVR_HELLO_A;

			s->internal->init_num = 0;

			/* turn on buffering for the next lot of output */
			if (s->bbio != s->wbio)
				s->wbio = BIO_push(s->bbio, s->wbio);

			break;

		case SSL3_ST_CR_SRVR_HELLO_A:
		case SSL3_ST_CR_SRVR_HELLO_B:
			ret = ssl3_get_server_hello(s);
			if (ret <= 0)
				goto end;

			if (s->internal->hit) {
				S3I(s)->hs.state = SSL3_ST_CR_FINISHED_A;
				if (!SSL_IS_DTLS(s)) {
					if (s->internal->tlsext_ticket_expected) {
						/* receive renewed session ticket */
						S3I(s)->hs.state = SSL3_ST_CR_SESSION_TICKET_A;
					}
				}
			} else if (SSL_IS_DTLS(s)) {
				S3I(s)->hs.state = DTLS1_ST_CR_HELLO_VERIFY_REQUEST_A;
			} else {
				S3I(s)->hs.state = SSL3_ST_CR_CERT_A;
			}
			s->internal->init_num = 0;
			break;

		case DTLS1_ST_CR_HELLO_VERIFY_REQUEST_A:
		case DTLS1_ST_CR_HELLO_VERIFY_REQUEST_B:
			ret = dtls1_get_hello_verify(s);
			if (ret <= 0)
				goto end;
			dtls1_stop_timer(s);
			if (D1I(s)->send_cookie) /* start again, with a cookie */
				S3I(s)->hs.state = SSL3_ST_CW_CLNT_HELLO_A;
			else
				S3I(s)->hs.state = SSL3_ST_CR_CERT_A;
			s->internal->init_num = 0;
			break;

		case SSL3_ST_CR_CERT_A:
		case SSL3_ST_CR_CERT_B:
			ret = ssl3_check_finished(s);
336
337
338
339
340
341
342


343
344
345
346
347
348
349
350
351
352
353
354


355
356
357
358
359
360
361
362
363


364
365
366
367
368
369
370
			break;

		case SSL3_ST_CR_SRVR_DONE_A:
		case SSL3_ST_CR_SRVR_DONE_B:
			ret = ssl3_get_server_done(s);
			if (ret <= 0)
				goto end;


			if (S3I(s)->tmp.cert_req)
				S3I(s)->hs.state = SSL3_ST_CW_CERT_A;
			else
				S3I(s)->hs.state = SSL3_ST_CW_KEY_EXCH_A;
			s->internal->init_num = 0;

			break;

		case SSL3_ST_CW_CERT_A:
		case SSL3_ST_CW_CERT_B:
		case SSL3_ST_CW_CERT_C:
		case SSL3_ST_CW_CERT_D:


			ret = ssl3_send_client_certificate(s);
			if (ret <= 0)
				goto end;
			S3I(s)->hs.state = SSL3_ST_CW_KEY_EXCH_A;
			s->internal->init_num = 0;
			break;

		case SSL3_ST_CW_KEY_EXCH_A:
		case SSL3_ST_CW_KEY_EXCH_B:


			ret = ssl3_send_client_key_exchange(s);
			if (ret <= 0)
				goto end;
			/*
			 * EAY EAY EAY need to check for DH fix cert
			 * sent back
			 */







>
>












>
>









>
>







389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
			break;

		case SSL3_ST_CR_SRVR_DONE_A:
		case SSL3_ST_CR_SRVR_DONE_B:
			ret = ssl3_get_server_done(s);
			if (ret <= 0)
				goto end;
			if (SSL_IS_DTLS(s))
				dtls1_stop_timer(s);
			if (S3I(s)->tmp.cert_req)
				S3I(s)->hs.state = SSL3_ST_CW_CERT_A;
			else
				S3I(s)->hs.state = SSL3_ST_CW_KEY_EXCH_A;
			s->internal->init_num = 0;

			break;

		case SSL3_ST_CW_CERT_A:
		case SSL3_ST_CW_CERT_B:
		case SSL3_ST_CW_CERT_C:
		case SSL3_ST_CW_CERT_D:
			if (SSL_IS_DTLS(s))
				dtls1_start_timer(s);
			ret = ssl3_send_client_certificate(s);
			if (ret <= 0)
				goto end;
			S3I(s)->hs.state = SSL3_ST_CW_KEY_EXCH_A;
			s->internal->init_num = 0;
			break;

		case SSL3_ST_CW_KEY_EXCH_A:
		case SSL3_ST_CW_KEY_EXCH_B:
			if (SSL_IS_DTLS(s))
				dtls1_start_timer(s);
			ret = ssl3_send_client_key_exchange(s);
			if (ret <= 0)
				goto end;
			/*
			 * EAY EAY EAY need to check for DH fix cert
			 * sent back
			 */
382
383
384
385
386
387
388

389
390
391

392
393
394
395
396
397
398


399
400
401
402
403
404
405
406
407
408


409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428



429
430
431
432


433
434
435
436
437
438

439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
			 */
			if (S3I(s)->tmp.cert_req == 1) {
				S3I(s)->hs.state = SSL3_ST_CW_CERT_VRFY_A;
			} else {
				S3I(s)->hs.state = SSL3_ST_CW_CHANGE_A;
				S3I(s)->change_cipher_spec = 0;
			}

			if (s->s3->flags & TLS1_FLAGS_SKIP_CERT_VERIFY) {
				S3I(s)->hs.state = SSL3_ST_CW_CHANGE_A;
				S3I(s)->change_cipher_spec = 0;

			}

			s->internal->init_num = 0;
			break;

		case SSL3_ST_CW_CERT_VRFY_A:
		case SSL3_ST_CW_CERT_VRFY_B:


			ret = ssl3_send_client_verify(s);
			if (ret <= 0)
				goto end;
			S3I(s)->hs.state = SSL3_ST_CW_CHANGE_A;
			s->internal->init_num = 0;
			S3I(s)->change_cipher_spec = 0;
			break;

		case SSL3_ST_CW_CHANGE_A:
		case SSL3_ST_CW_CHANGE_B:


			ret = ssl3_send_change_cipher_spec(s,
			    SSL3_ST_CW_CHANGE_A, SSL3_ST_CW_CHANGE_B);
			if (ret <= 0)
				goto end;

			S3I(s)->hs.state = SSL3_ST_CW_FINISHED_A;
			s->internal->init_num = 0;

			s->session->cipher = S3I(s)->hs.new_cipher;
			if (!tls1_setup_key_block(s)) {
				ret = -1;
				goto end;
			}

			if (!tls1_change_cipher_state(s,
			    SSL3_CHANGE_CIPHER_CLIENT_WRITE)) {
				ret = -1;
				goto end;
			}




			break;

		case SSL3_ST_CW_FINISHED_A:
		case SSL3_ST_CW_FINISHED_B:


			ret = ssl3_send_finished(s, SSL3_ST_CW_FINISHED_A,
			    SSL3_ST_CW_FINISHED_B,
			    TLS_MD_CLIENT_FINISH_CONST,
			    TLS_MD_CLIENT_FINISH_CONST_SIZE);
			if (ret <= 0)
				goto end;

			s->s3->flags |= SSL3_FLAGS_CCS_OK;
			S3I(s)->hs.state = SSL3_ST_CW_FLUSH;

			/* clear flags */
			s->s3->flags &= ~SSL3_FLAGS_POP_BUFFER;
			if (s->internal->hit) {
				S3I(s)->hs.next_state = SSL_ST_OK;
				if (s->s3->flags &
				    SSL3_FLAGS_DELAY_CLIENT_FINISHED) {
					S3I(s)->hs.state = SSL_ST_OK;
					s->s3->flags|=SSL3_FLAGS_POP_BUFFER;
					S3I(s)->delay_buf_pop_ret = 0;
				}
			} else {
				/* Allow NewSessionTicket if ticket expected */
				if (s->internal->tlsext_ticket_expected)
					S3I(s)->hs.next_state =
					    SSL3_ST_CR_SESSION_TICKET_A;
				else

				S3I(s)->hs.next_state = SSL3_ST_CR_FINISHED_A;
			}
			s->internal->init_num = 0;
			break;

		case SSL3_ST_CR_SESSION_TICKET_A:
		case SSL3_ST_CR_SESSION_TICKET_B:
			ret = ssl3_get_new_session_ticket(s);







>
|
|
|
>







>
>










>
>




















>
>
>




>
>

|
<



>
|









|








|
|







441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504

505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
			 */
			if (S3I(s)->tmp.cert_req == 1) {
				S3I(s)->hs.state = SSL3_ST_CW_CERT_VRFY_A;
			} else {
				S3I(s)->hs.state = SSL3_ST_CW_CHANGE_A;
				S3I(s)->change_cipher_spec = 0;
			}
			if (!SSL_IS_DTLS(s)) {
				if (s->s3->flags & TLS1_FLAGS_SKIP_CERT_VERIFY) {
					S3I(s)->hs.state = SSL3_ST_CW_CHANGE_A;
					S3I(s)->change_cipher_spec = 0;
				}
			}

			s->internal->init_num = 0;
			break;

		case SSL3_ST_CW_CERT_VRFY_A:
		case SSL3_ST_CW_CERT_VRFY_B:
			if (SSL_IS_DTLS(s))
				dtls1_start_timer(s);
			ret = ssl3_send_client_verify(s);
			if (ret <= 0)
				goto end;
			S3I(s)->hs.state = SSL3_ST_CW_CHANGE_A;
			s->internal->init_num = 0;
			S3I(s)->change_cipher_spec = 0;
			break;

		case SSL3_ST_CW_CHANGE_A:
		case SSL3_ST_CW_CHANGE_B:
			if (SSL_IS_DTLS(s) && !s->internal->hit)
				dtls1_start_timer(s);
			ret = ssl3_send_change_cipher_spec(s,
			    SSL3_ST_CW_CHANGE_A, SSL3_ST_CW_CHANGE_B);
			if (ret <= 0)
				goto end;

			S3I(s)->hs.state = SSL3_ST_CW_FINISHED_A;
			s->internal->init_num = 0;

			s->session->cipher = S3I(s)->hs.new_cipher;
			if (!tls1_setup_key_block(s)) {
				ret = -1;
				goto end;
			}

			if (!tls1_change_cipher_state(s,
			    SSL3_CHANGE_CIPHER_CLIENT_WRITE)) {
				ret = -1;
				goto end;
			}

			if (SSL_IS_DTLS(s))
				dtls1_reset_seq_numbers(s, SSL3_CC_WRITE);

			break;

		case SSL3_ST_CW_FINISHED_A:
		case SSL3_ST_CW_FINISHED_B:
			if (SSL_IS_DTLS(s) && !s->internal->hit)
				dtls1_start_timer(s);
			ret = ssl3_send_finished(s, SSL3_ST_CW_FINISHED_A,
			    SSL3_ST_CW_FINISHED_B, TLS_MD_CLIENT_FINISH_CONST,

			    TLS_MD_CLIENT_FINISH_CONST_SIZE);
			if (ret <= 0)
				goto end;
			if (!SSL_IS_DTLS(s))
				s->s3->flags |= SSL3_FLAGS_CCS_OK;
			S3I(s)->hs.state = SSL3_ST_CW_FLUSH;

			/* clear flags */
			s->s3->flags &= ~SSL3_FLAGS_POP_BUFFER;
			if (s->internal->hit) {
				S3I(s)->hs.next_state = SSL_ST_OK;
				if (s->s3->flags &
				    SSL3_FLAGS_DELAY_CLIENT_FINISHED) {
					S3I(s)->hs.state = SSL_ST_OK;
					s->s3->flags |= SSL3_FLAGS_POP_BUFFER;
					S3I(s)->delay_buf_pop_ret = 0;
				}
			} else {
				/* Allow NewSessionTicket if ticket expected */
				if (s->internal->tlsext_ticket_expected)
					S3I(s)->hs.next_state =
					    SSL3_ST_CR_SESSION_TICKET_A;
				else
					S3I(s)->hs.next_state =
					    SSL3_ST_CR_FINISHED_A;
			}
			s->internal->init_num = 0;
			break;

		case SSL3_ST_CR_SESSION_TICKET_A:
		case SSL3_ST_CR_SESSION_TICKET_B:
			ret = ssl3_get_new_session_ticket(s);
477
478
479
480
481
482
483



484
485
486
487
488


489
490
491
492
493
494
495
496
497
498
499







500
501
502
503
504
505
506
507
508
509
510

511
512

513
514
515
516
517
518
519
				goto end;
			S3I(s)->hs.state = SSL3_ST_CR_KEY_EXCH_A;
			s->internal->init_num = 0;
			break;

		case SSL3_ST_CR_FINISHED_A:
		case SSL3_ST_CR_FINISHED_B:



			s->s3->flags |= SSL3_FLAGS_CCS_OK;
			ret = ssl3_get_finished(s, SSL3_ST_CR_FINISHED_A,
			    SSL3_ST_CR_FINISHED_B);
			if (ret <= 0)
				goto end;



			if (s->internal->hit)
				S3I(s)->hs.state = SSL3_ST_CW_CHANGE_A;
			else
				S3I(s)->hs.state = SSL_ST_OK;
			s->internal->init_num = 0;
			break;

		case SSL3_ST_CW_FLUSH:
			s->internal->rwstate = SSL_WRITING;
			if (BIO_flush(s->wbio) <= 0) {







				ret = -1;
				goto end;
			}
			s->internal->rwstate = SSL_NOTHING;
			S3I(s)->hs.state = S3I(s)->hs.next_state;
			break;

		case SSL_ST_OK:
			/* clean a few things up */
			tls1_cleanup_key_block(s);


			BUF_MEM_free(s->internal->init_buf);
			s->internal->init_buf = NULL;


			/*
			 * If we are not 'joining' the last two packets,
			 * remove the buffering now
			 */
			if (!(s->s3->flags & SSL3_FLAGS_POP_BUFFER))
				ssl_free_wbio_buffer(s);







>
>
>
|




>
>











>
>
>
>
>
>
>











>
|
|
>







547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
				goto end;
			S3I(s)->hs.state = SSL3_ST_CR_KEY_EXCH_A;
			s->internal->init_num = 0;
			break;

		case SSL3_ST_CR_FINISHED_A:
		case SSL3_ST_CR_FINISHED_B:
			if (SSL_IS_DTLS(s))
				D1I(s)->change_cipher_spec_ok = 1;
			else
				s->s3->flags |= SSL3_FLAGS_CCS_OK;
			ret = ssl3_get_finished(s, SSL3_ST_CR_FINISHED_A,
			    SSL3_ST_CR_FINISHED_B);
			if (ret <= 0)
				goto end;
			if (SSL_IS_DTLS(s))
				dtls1_stop_timer(s);

			if (s->internal->hit)
				S3I(s)->hs.state = SSL3_ST_CW_CHANGE_A;
			else
				S3I(s)->hs.state = SSL_ST_OK;
			s->internal->init_num = 0;
			break;

		case SSL3_ST_CW_FLUSH:
			s->internal->rwstate = SSL_WRITING;
			if (BIO_flush(s->wbio) <= 0) {
				if (SSL_IS_DTLS(s)) {
					/* If the write error was fatal, stop trying */
					if (!BIO_should_retry(s->wbio)) {
						s->internal->rwstate = SSL_NOTHING;
						S3I(s)->hs.state = S3I(s)->hs.next_state;
					}
				}
				ret = -1;
				goto end;
			}
			s->internal->rwstate = SSL_NOTHING;
			S3I(s)->hs.state = S3I(s)->hs.next_state;
			break;

		case SSL_ST_OK:
			/* clean a few things up */
			tls1_cleanup_key_block(s);

			if (!SSL_IS_DTLS(s)) {
				BUF_MEM_free(s->internal->init_buf);
				s->internal->init_buf = NULL;
			}

			/*
			 * If we are not 'joining' the last two packets,
			 * remove the buffering now
			 */
			if (!(s->s3->flags & SSL3_FLAGS_POP_BUFFER))
				ssl_free_wbio_buffer(s);
530
531
532
533
534
535
536






537
538
539
540
541
542
543
			ret = 1;
			/* s->server=0; */
			s->internal->handshake_func = ssl3_connect;
			s->ctx->internal->stats.sess_connect_good++;

			if (cb != NULL)
				cb(s, SSL_CB_HANDSHAKE_DONE, 1);







			goto end;
			/* break; */

		default:
			SSLerror(s, SSL_R_UNKNOWN_STATE);
			ret = -1;







>
>
>
>
>
>







614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
			ret = 1;
			/* s->server=0; */
			s->internal->handshake_func = ssl3_connect;
			s->ctx->internal->stats.sess_connect_good++;

			if (cb != NULL)
				cb(s, SSL_CB_HANDSHAKE_DONE, 1);

			if (SSL_IS_DTLS(s)) {
				/* done with handshaking */
				D1I(s)->handshake_read_seq = 0;
				D1I(s)->next_handshake_write_seq = 0;
			}

			goto end;
			/* break; */

		default:
			SSLerror(s, SSL_R_UNKNOWN_STATE);
			ret = -1;
567
568
569
570
571
572
573
574
575
576

577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608

609

610
611
612
613
614
615
616
	if (cb != NULL)
		cb(s, SSL_CB_CONNECT_EXIT, ret);

	return (ret);
}

int
ssl3_client_hello(SSL *s)
{
	unsigned char	*bufend, *p, *d;

	uint16_t	 max_version;
	size_t		 outlen;
	int		 i;

	bufend = (unsigned char *)s->internal->init_buf->data + SSL3_RT_MAX_PLAIN_LENGTH;

	if (S3I(s)->hs.state == SSL3_ST_CW_CLNT_HELLO_A) {
		SSL_SESSION *sess = s->session;

		if (ssl_supported_version_range(s, NULL, &max_version) != 1) {
			SSLerror(s, SSL_R_NO_PROTOCOLS_AVAILABLE);
			return (-1);
		}
		s->client_version = s->version = max_version;

		if ((sess == NULL) ||
		    (sess->ssl_version != s->version) ||
		    (!sess->session_id_length && !sess->tlsext_tick) ||
		    (sess->internal->not_resumable)) {
			if (!ssl_get_new_session(s, 0))
				goto err;
		}
		/* else use the pre-loaded session */

		/*
		 * If a DTLS ClientHello message is being resent after a
		 * HelloVerifyRequest, we must retain the original client
		 * random value.
		 */
		if (!SSL_IS_DTLS(s) || D1I(s)->send_cookie == 0)
			arc4random_buf(s->s3->client_random, SSL3_RANDOM_SIZE);


		d = p = ssl3_handshake_msg_start(s, SSL3_MT_CLIENT_HELLO);


		/*
		 * Version indicates the negotiated version: for example from
		 * an SSLv2/v3 compatible client hello). The client_version
		 * field is the maximum version we permit and it is also
		 * used in RSA encrypted premaster secrets. Some servers can
		 * choke if we initially report a higher version then







|

|
>
|
|
<

|










|
|

|













>
|
>







657
658
659
660
661
662
663
664
665
666
667
668
669

670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
	if (cb != NULL)
		cb(s, SSL_CB_CONNECT_EXIT, ret);

	return (ret);
}

int
ssl3_send_client_hello(SSL *s)
{
	CBB cbb, client_hello, session_id, cookie, cipher_suites;
	CBB compression_methods;
	uint16_t max_version;
	size_t sl;


	memset(&cbb, 0, sizeof(cbb));

	if (S3I(s)->hs.state == SSL3_ST_CW_CLNT_HELLO_A) {
		SSL_SESSION *sess = s->session;

		if (ssl_supported_version_range(s, NULL, &max_version) != 1) {
			SSLerror(s, SSL_R_NO_PROTOCOLS_AVAILABLE);
			return (-1);
		}
		s->client_version = s->version = max_version;

		if (sess == NULL ||
		    sess->ssl_version != s->version ||
		    (!sess->session_id_length && !sess->tlsext_tick) ||
		    sess->internal->not_resumable) {
			if (!ssl_get_new_session(s, 0))
				goto err;
		}
		/* else use the pre-loaded session */

		/*
		 * If a DTLS ClientHello message is being resent after a
		 * HelloVerifyRequest, we must retain the original client
		 * random value.
		 */
		if (!SSL_IS_DTLS(s) || D1I(s)->send_cookie == 0)
			arc4random_buf(s->s3->client_random, SSL3_RANDOM_SIZE);

		if (!ssl3_handshake_msg_start_cbb(s, &cbb, &client_hello,
		    SSL3_MT_CLIENT_HELLO))
			goto err;

		/*
		 * Version indicates the negotiated version: for example from
		 * an SSLv2/v3 compatible client hello). The client_version
		 * field is the maximum version we permit and it is also
		 * used in RSA encrypted premaster secrets. Some servers can
		 * choke if we initially report a higher version then
634
635
636
637
638
639
640
641
642
643
644
645

646
647
648
649


650
651
652
653
654
655
656
657
658
659

660
661
662
663
664
665
666
667
668
669
670

671
672

673
674
675


676
677
678
679
680
681
682
683
684
685
686


687
688

689
690
691
692
693
694
695
696

697
698
699
700
701
702
703
704


705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
		 * maximum version we support in client hello and then rely
		 * on the checking of version to ensure the servers isn't
		 * being inconsistent: for example initially negotiating with
		 * TLS 1.0 and renegotiating with TLS 1.2. We do this by using
		 * client_version in client hello and not resetting it to
		 * the negotiated version.
		 */

		*(p++) = s->client_version >> 8;
		*(p++) = s->client_version & 0xff;

		/* Random stuff */

		memcpy(p, s->s3->client_random, SSL3_RANDOM_SIZE);
		p += SSL3_RANDOM_SIZE;

		/* Session ID */


		if (s->internal->new_session)
			i = 0;
		else
			i = s->session->session_id_length;
		*(p++) = i;
		if (i != 0) {
			if (i > (int)sizeof(s->session->session_id)) {
				SSLerror(s, ERR_R_INTERNAL_ERROR);
				goto err;
			}

			memcpy(p, s->session->session_id, i);
			p += i;
		}

		/* DTLS Cookie. */
		if (SSL_IS_DTLS(s)) {
			if (D1I(s)->cookie_len > sizeof(D1I(s)->cookie)) {
				SSLerror(s, ERR_R_INTERNAL_ERROR);
				goto err;
			}
			*(p++) = D1I(s)->cookie_len;

			memcpy(p, D1I(s)->cookie, D1I(s)->cookie_len);
			p += D1I(s)->cookie_len;

		}

		/* Ciphers supported */


		if (!ssl_cipher_list_to_bytes(s, SSL_get_ciphers(s), &p[2],
		    bufend - &p[2], &outlen))
			goto err;
		if (outlen == 0) {
			SSLerror(s, SSL_R_NO_CIPHERS_AVAILABLE);
			goto err;
		}
		s2n(outlen, p);
		p += outlen;

		/* add in (no) COMPRESSION */


		*(p++) = 1;
		*(p++) = 0; /* Add the NULL method */


		/* TLS extensions*/
		if ((p = ssl_add_clienthello_tlsext(s, p, bufend)) == NULL) {
			SSLerror(s, ERR_R_INTERNAL_ERROR);
			goto err;
		}

		ssl3_handshake_msg_finish(s, p - d);


		S3I(s)->hs.state = SSL3_ST_CW_CLNT_HELLO_B;
	}

	/* SSL3_ST_CW_CLNT_HELLO_B */
	return (ssl3_handshake_write(s));

err:


	return (-1);
}

int
ssl3_get_server_hello(SSL *s)
{
	CBS cbs, server_random, session_id;
	uint16_t server_version, cipher_suite;
	uint16_t min_version, max_version;
	uint8_t compression_method;
	STACK_OF(SSL_CIPHER) *sk;
	const SSL_CIPHER *cipher;
	const SSL_METHOD *method;
	unsigned char *p;
	unsigned long alg_k;
	size_t outlen;
	int i, al, ok;
	long n;

	s->internal->first_packet = 1;
	n = s->method->internal->ssl_get_message(s, SSL3_ST_CR_SRVR_HELLO_A,







<
|
|


>
|
|


>
>
|
|
<
|
<
<
|



>
|
|








|
>
|
|
>



>
>
|
<
<
|



<
<

|
>
>
|
|
>

|
|




|
>








>
>













<







726
727
728
729
730
731
732

733
734
735
736
737
738
739
740
741
742
743
744
745

746


747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772


773
774
775
776


777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815

816
817
818
819
820
821
822
		 * maximum version we support in client hello and then rely
		 * on the checking of version to ensure the servers isn't
		 * being inconsistent: for example initially negotiating with
		 * TLS 1.0 and renegotiating with TLS 1.2. We do this by using
		 * client_version in client hello and not resetting it to
		 * the negotiated version.
		 */

		if (!CBB_add_u16(&client_hello, s->client_version))
			goto err;

		/* Random stuff */
		if (!CBB_add_bytes(&client_hello, s->s3->client_random,
		    sizeof(s->s3->client_random)))
			goto err;

		/* Session ID */
		if (!CBB_add_u8_length_prefixed(&client_hello, &session_id))
			goto err;
		if (!s->internal->new_session &&
		    s->session->session_id_length > 0) {

			sl = s->session->session_id_length;


			if (sl > sizeof(s->session->session_id)) {
				SSLerror(s, ERR_R_INTERNAL_ERROR);
				goto err;
			}
			if (!CBB_add_bytes(&session_id,
			    s->session->session_id, sl))
				goto err;
		}

		/* DTLS Cookie. */
		if (SSL_IS_DTLS(s)) {
			if (D1I(s)->cookie_len > sizeof(D1I(s)->cookie)) {
				SSLerror(s, ERR_R_INTERNAL_ERROR);
				goto err;
			}
			if (!CBB_add_u8_length_prefixed(&client_hello, &cookie))
				goto err;
			if (!CBB_add_bytes(&cookie, D1I(s)->cookie,
			    D1I(s)->cookie_len))
				goto err;
		}

		/* Ciphers supported */
		if (!CBB_add_u16_length_prefixed(&client_hello, &cipher_suites))
			return 0;
		if (!ssl_cipher_list_to_bytes(s, SSL_get_ciphers(s),


		    &cipher_suites)) {
			SSLerror(s, SSL_R_NO_CIPHERS_AVAILABLE);
			goto err;
		}



		/* Add in compression methods (null) */
		if (!CBB_add_u8_length_prefixed(&client_hello,
		    &compression_methods))
			goto err;
		if (!CBB_add_u8(&compression_methods, 0))
			goto err;

		/* TLS extensions */
		if (!tlsext_clienthello_build(s, &client_hello)) {
			SSLerror(s, ERR_R_INTERNAL_ERROR);
			goto err;
		}

		if (!ssl3_handshake_msg_finish_cbb(s, &cbb))
			goto err;

		S3I(s)->hs.state = SSL3_ST_CW_CLNT_HELLO_B;
	}

	/* SSL3_ST_CW_CLNT_HELLO_B */
	return (ssl3_handshake_write(s));

err:
	CBB_cleanup(&cbb);

	return (-1);
}

int
ssl3_get_server_hello(SSL *s)
{
	CBS cbs, server_random, session_id;
	uint16_t server_version, cipher_suite;
	uint16_t min_version, max_version;
	uint8_t compression_method;
	STACK_OF(SSL_CIPHER) *sk;
	const SSL_CIPHER *cipher;
	const SSL_METHOD *method;

	unsigned long alg_k;
	size_t outlen;
	int i, al, ok;
	long n;

	s->internal->first_packet = 1;
	n = s->method->internal->ssl_get_message(s, SSL3_ST_CR_SRVR_HELLO_A,
909
910
911
912
913
914
915
916
917
918
919
920
921
922
















923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938

	if (compression_method != 0) {
		al = SSL_AD_ILLEGAL_PARAMETER;
		SSLerror(s, SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM);
		goto f_err;
	}

	/* TLS extensions. */
	p = (unsigned char *)CBS_data(&cbs);
	if (!ssl_parse_serverhello_tlsext(s, &p, CBS_len(&cbs), &al)) {
		/* 'al' set by ssl_parse_serverhello_tlsext */
		SSLerror(s, SSL_R_PARSE_TLSEXT);
		goto f_err;
	}
















	if (ssl_check_serverhello_tlsext(s) <= 0) {
		SSLerror(s, SSL_R_SERVERHELLO_TLSEXT);
		goto err;
	}

	/* See if any data remains... */
	if (p - CBS_data(&cbs) != CBS_len(&cbs))
		goto truncated;

	return (1);

truncated:
	/* wrong packet length */
	al = SSL_AD_DECODE_ERROR;
	SSLerror(s, SSL_R_BAD_PACKET_LENGTH);
f_err:







<
<
<
|



>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>





<
<
<
<







1006
1007
1008
1009
1010
1011
1012



1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037




1038
1039
1040
1041
1042
1043
1044

	if (compression_method != 0) {
		al = SSL_AD_ILLEGAL_PARAMETER;
		SSLerror(s, SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM);
		goto f_err;
	}




	if (!tlsext_serverhello_parse(s, &cbs, &al)) {
		SSLerror(s, SSL_R_PARSE_TLSEXT);
		goto f_err;
	}

	/*
	 * Determine if we need to see RI. Strictly speaking if we want to
	 * avoid an attack we should *always* see RI even on initial server
	 * hello because the client doesn't see any renegotiation during an
	 * attack. However this would mean we could not connect to any server
	 * which doesn't support RI so for the immediate future tolerate RI
	 * absence on initial connect only.
	 */
	if (!S3I(s)->renegotiate_seen &&
	    !(s->internal->options & SSL_OP_LEGACY_SERVER_CONNECT)) {
		al = SSL_AD_HANDSHAKE_FAILURE;
		SSLerror(s, SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED);
		goto f_err;
	}

	if (ssl_check_serverhello_tlsext(s) <= 0) {
		SSLerror(s, SSL_R_SERVERHELLO_TLSEXT);
		goto err;
	}





	return (1);

truncated:
	/* wrong packet length */
	al = SSL_AD_DECODE_ERROR;
	SSLerror(s, SSL_R_BAD_PACKET_LENGTH);
f_err:
Changes to jni/libressl/ssl/ssl_err.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: ssl_err.c,v 1.35 2017/08/28 17:36:58 jsing Exp $ */
/* ====================================================================
 * Copyright (c) 1999-2011 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: ssl_err.c,v 1.36 2018/03/20 15:28:12 tb Exp $ */
/* ====================================================================
 * Copyright (c) 1999-2011 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
386
387
388
389
390
391
392

393
394
395
396
397
398
399
	{ERR_REASON(SSL_R_SSL_HANDSHAKE_FAILURE) , "ssl handshake failure"},
	{ERR_REASON(SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS), "ssl library has no ciphers"},
	{ERR_REASON(SSL_R_SSL_SESSION_ID_CALLBACK_FAILED), "ssl session id callback failed"},
	{ERR_REASON(SSL_R_SSL_SESSION_ID_CONFLICT), "ssl session id conflict"},
	{ERR_REASON(SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG), "ssl session id context too long"},
	{ERR_REASON(SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH), "ssl session id has bad length"},
	{ERR_REASON(SSL_R_SSL_SESSION_ID_IS_DIFFERENT), "ssl session id is different"},

	{ERR_REASON(SSL_R_TLSV1_ALERT_ACCESS_DENIED), "tlsv1 alert access denied"},
	{ERR_REASON(SSL_R_TLSV1_ALERT_DECODE_ERROR), "tlsv1 alert decode error"},
	{ERR_REASON(SSL_R_TLSV1_ALERT_DECRYPTION_FAILED), "tlsv1 alert decryption failed"},
	{ERR_REASON(SSL_R_TLSV1_ALERT_DECRYPT_ERROR), "tlsv1 alert decrypt error"},
	{ERR_REASON(SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION), "tlsv1 alert export restriction"},
	{ERR_REASON(SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK), "tlsv1 alert inappropriate fallback"},
	{ERR_REASON(SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY), "tlsv1 alert insufficient security"},







>







386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
	{ERR_REASON(SSL_R_SSL_HANDSHAKE_FAILURE) , "ssl handshake failure"},
	{ERR_REASON(SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS), "ssl library has no ciphers"},
	{ERR_REASON(SSL_R_SSL_SESSION_ID_CALLBACK_FAILED), "ssl session id callback failed"},
	{ERR_REASON(SSL_R_SSL_SESSION_ID_CONFLICT), "ssl session id conflict"},
	{ERR_REASON(SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG), "ssl session id context too long"},
	{ERR_REASON(SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH), "ssl session id has bad length"},
	{ERR_REASON(SSL_R_SSL_SESSION_ID_IS_DIFFERENT), "ssl session id is different"},
	{ERR_REASON(SSL_R_SSL_SESSION_ID_TOO_LONG), "ssl session id is too long"},
	{ERR_REASON(SSL_R_TLSV1_ALERT_ACCESS_DENIED), "tlsv1 alert access denied"},
	{ERR_REASON(SSL_R_TLSV1_ALERT_DECODE_ERROR), "tlsv1 alert decode error"},
	{ERR_REASON(SSL_R_TLSV1_ALERT_DECRYPTION_FAILED), "tlsv1 alert decryption failed"},
	{ERR_REASON(SSL_R_TLSV1_ALERT_DECRYPT_ERROR), "tlsv1 alert decrypt error"},
	{ERR_REASON(SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION), "tlsv1 alert export restriction"},
	{ERR_REASON(SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK), "tlsv1 alert inappropriate fallback"},
	{ERR_REASON(SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY), "tlsv1 alert insufficient security"},
Added jni/libressl/ssl/ssl_init.c.




































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/*
 * Copyright (c) 2018 Bob Beck <beck@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

/* OpenSSL style init */

#include <pthread.h>
#include <stdio.h>

#include <openssl/objects.h>

#include "ssl_locl.h"

static pthread_t ssl_init_thread;

static void
OPENSSL_init_ssl_internal(void)
{
	ssl_init_thread = pthread_self();
	SSL_load_error_strings();
	SSL_library_init();
}

int
OPENSSL_init_ssl(uint64_t opts, const void *settings)
{
	static pthread_once_t once = PTHREAD_ONCE_INIT;

	if (pthread_equal(pthread_self(), ssl_init_thread))
		return 1; /* don't recurse */

	OPENSSL_init_crypto(opts, settings);

	if (pthread_once(&once, OPENSSL_init_ssl_internal) != 0)
		return 0;

	return 1;
}
Changes to jni/libressl/ssl/ssl_lib.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: ssl_lib.c,v 1.170 2017/08/30 16:24:21 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: ssl_lib.c,v 1.182 2018/03/17 16:20:01 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
464
465
466
467
468
469
470






471
472
473
474
475
476






477
478
479
480
481
482
483
}

int
SSL_set_trust(SSL *s, int trust)
{
	return (X509_VERIFY_PARAM_set_trust(s->param, trust));
}







int
SSL_CTX_set1_param(SSL_CTX *ctx, X509_VERIFY_PARAM *vpm)
{
	return (X509_VERIFY_PARAM_set1(ctx->param, vpm));
}







int
SSL_set1_param(SSL *ssl, X509_VERIFY_PARAM *vpm)
{
	return (X509_VERIFY_PARAM_set1(ssl->param, vpm));
}








>
>
>
>
>
>






>
>
>
>
>
>







464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
}

int
SSL_set_trust(SSL *s, int trust)
{
	return (X509_VERIFY_PARAM_set_trust(s->param, trust));
}

X509_VERIFY_PARAM *
SSL_CTX_get0_param(SSL_CTX *ctx)
{
	return (ctx->param);
}

int
SSL_CTX_set1_param(SSL_CTX *ctx, X509_VERIFY_PARAM *vpm)
{
	return (X509_VERIFY_PARAM_set1(ctx->param, vpm));
}

X509_VERIFY_PARAM *
SSL_get0_param(SSL *ssl)
{
	return (ssl->param);
}

int
SSL_set1_param(SSL *ssl, X509_VERIFY_PARAM *vpm)
{
	return (X509_VERIFY_PARAM_set1(ssl->param, vpm));
}

551
552
553
554
555
556
557







558
559
560
561
562
563
564
#ifndef OPENSSL_NO_SRTP
	sk_SRTP_PROTECTION_PROFILE_free(s->internal->srtp_profiles);
#endif

	free(s->internal);
	free(s);
}








void
SSL_set_bio(SSL *s, BIO *rbio, BIO *wbio)
{
	/* If the output buffering BIO is still in place, remove it */
	if (s->bbio != NULL) {
		if (s->wbio == s->bbio) {







>
>
>
>
>
>
>







563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
#ifndef OPENSSL_NO_SRTP
	sk_SRTP_PROTECTION_PROFILE_free(s->internal->srtp_profiles);
#endif

	free(s->internal);
	free(s);
}

int
SSL_up_ref(SSL *s)
{
	int refs = CRYPTO_add(&s->references, 1, CRYPTO_LOCK_SSL);
	return (refs > 1) ? 1 : 0;
}

void
SSL_set_bio(SSL *s, BIO *rbio, BIO *wbio)
{
	/* If the output buffering BIO is still in place, remove it */
	if (s->bbio != NULL) {
		if (s->wbio == s->bbio) {
742
743
744
745
746
747
748

749
750
751
752
753
754
755
756

int
SSL_CTX_get_verify_depth(const SSL_CTX *ctx)
{
	return (X509_VERIFY_PARAM_get_depth(ctx->param));
}


int (*SSL_CTX_get_verify_callback(const SSL_CTX *ctx))(int, X509_STORE_CTX *)
{
	return (ctx->internal->default_verify_callback);
}

void
SSL_set_verify(SSL *s, int mode,
    int (*callback)(int ok, X509_STORE_CTX *ctx))







>
|







761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776

int
SSL_CTX_get_verify_depth(const SSL_CTX *ctx)
{
	return (X509_VERIFY_PARAM_get_depth(ctx->param));
}

int
(*SSL_CTX_get_verify_callback(const SSL_CTX *ctx))(int, X509_STORE_CTX *)
{
	return (ctx->internal->default_verify_callback);
}

void
SSL_set_verify(SSL *s, int mode,
    int (*callback)(int ok, X509_STORE_CTX *ctx))
915
916
917
918
919
920
921






922
923
924
925
926
927
928
SSL_connect(SSL *s)
{
	if (s->internal->handshake_func == NULL)
		SSL_set_connect_state(s); /* Not properly initialized yet */

	return (s->method->internal->ssl_connect(s));
}







long
SSL_get_default_timeout(const SSL *s)
{
	return (s->method->internal->get_timeout());
}








>
>
>
>
>
>







935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
SSL_connect(SSL *s)
{
	if (s->internal->handshake_func == NULL)
		SSL_set_connect_state(s); /* Not properly initialized yet */

	return (s->method->internal->ssl_connect(s));
}

int
SSL_is_server(const SSL *s)
{
	return s->server;
}

long
SSL_get_default_timeout(const SSL *s)
{
	return (s->method->internal->get_timeout());
}

1296
1297
1298
1299
1300
1301
1302






1303
1304
1305
1306
1307
1308
1309
	if ((sk == NULL) || (sk_SSL_CIPHER_num(sk) <= n))
		return (NULL);
	c = sk_SSL_CIPHER_value(sk, n);
	if (c == NULL)
		return (NULL);
	return (c->name);
}







/* Specify the ciphers to be used by default by the SSL_CTX. */
int
SSL_CTX_set_cipher_list(SSL_CTX *ctx, const char *str)
{
	STACK_OF(SSL_CIPHER)	*sk;








>
>
>
>
>
>







1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
	if ((sk == NULL) || (sk_SSL_CIPHER_num(sk) <= n))
		return (NULL);
	c = sk_SSL_CIPHER_value(sk, n);
	if (c == NULL)
		return (NULL);
	return (c->name);
}

STACK_OF(SSL_CIPHER) *
SSL_CTX_get_ciphers(const SSL_CTX *ctx)
{
	return ctx->cipher_list;
}

/* Specify the ciphers to be used by default by the SSL_CTX. */
int
SSL_CTX_set_cipher_list(SSL_CTX *ctx, const char *str)
{
	STACK_OF(SSL_CIPHER)	*sk;

1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400

1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437

1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
	/* remove trailing colon */
	if ((end = strrchr(buf, ':')) != NULL)
		*end = '\0';
	return (buf);
}

int
ssl_cipher_list_to_bytes(SSL *s, STACK_OF(SSL_CIPHER) *sk, unsigned char *p,
    size_t maxlen, size_t *outlen)
{
	SSL_CIPHER *cipher;
	int ciphers = 0;
	CBB cbb;
	int i;

	*outlen = 0;

	if (sk == NULL)
		return (0);

	if (!CBB_init_fixed(&cbb, p, maxlen))
		goto err;

	for (i = 0; i < sk_SSL_CIPHER_num(sk); i++) {
		cipher = sk_SSL_CIPHER_value(sk, i);


		/* Skip TLS v1.2 only ciphersuites if lower than v1.2 */
		if ((cipher->algorithm_ssl & SSL_TLSV1_2) &&
		    (TLS1_get_client_version(s) < TLS1_2_VERSION))
			continue;

		if (!CBB_add_u16(&cbb, ssl3_cipher_get_value(cipher)))
			goto err;

		ciphers++;
	}

	/* Add SCSV if there are other ciphers and we're not renegotiating. */
	if (ciphers > 0 && !s->internal->renegotiate) {
		if (!CBB_add_u16(&cbb, SSL3_CK_SCSV & SSL3_CK_VALUE_MASK))
			goto err;
	}

	if (!CBB_finish(&cbb, NULL, outlen))
		goto err;

	return 1;

 err:
	CBB_cleanup(&cbb);

	return 0;
}

STACK_OF(SSL_CIPHER) *
ssl_bytes_to_cipher_list(SSL *s, const unsigned char *p, int num)
{
	CBS			 cbs;
	const SSL_CIPHER	*c;
	STACK_OF(SSL_CIPHER)	*sk = NULL;
	unsigned long		 cipher_id;
	uint16_t		 cipher_value, max_version;


	if (s->s3)
		S3I(s)->send_connection_binding = 0;

	/*
	 * RFC 5246 section 7.4.1.2 defines the interval as [2,2^16-2].
	 */
	if (num < 2 || num > 0x10000 - 2) {
		SSLerror(s, SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST);
		return (NULL);
	}

	if ((sk = sk_SSL_CIPHER_new_null()) == NULL) {
		SSLerror(s, ERR_R_MALLOC_FAILURE);
		goto err;
	}

	CBS_init(&cbs, p, num);
	while (CBS_len(&cbs) > 0) {
		if (!CBS_get_u16(&cbs, &cipher_value)) {
			SSLerror(s, SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST);
			goto err;
		}

		cipher_id = SSL3_CK_ID | cipher_value;

		if (s->s3 != NULL && cipher_id == SSL3_CK_SCSV) {







|
<


|
<


<
<
|
|

<
<
<
|
|
>






|
|

|



|
|
|


|
<
<
|

<
<
<
|



|

<
<
|
|
|
>

|


<
<
<
<
<
<
<
<
|




<
|
|







1408
1409
1410
1411
1412
1413
1414
1415

1416
1417
1418

1419
1420


1421
1422
1423



1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445


1446
1447



1448
1449
1450
1451
1452
1453


1454
1455
1456
1457
1458
1459
1460
1461








1462
1463
1464
1465
1466

1467
1468
1469
1470
1471
1472
1473
1474
1475
	/* remove trailing colon */
	if ((end = strrchr(buf, ':')) != NULL)
		*end = '\0';
	return (buf);
}

int
ssl_cipher_list_to_bytes(SSL *s, STACK_OF(SSL_CIPHER) *ciphers, CBB *cbb)

{
	SSL_CIPHER *cipher;
	int num_ciphers = 0;

	int i;



	if (ciphers == NULL)
		return 0;




	for (i = 0; i < sk_SSL_CIPHER_num(ciphers); i++) {
		if ((cipher = sk_SSL_CIPHER_value(ciphers, i)) == NULL)
			return 0;

		/* Skip TLS v1.2 only ciphersuites if lower than v1.2 */
		if ((cipher->algorithm_ssl & SSL_TLSV1_2) &&
		    (TLS1_get_client_version(s) < TLS1_2_VERSION))
			continue;

		if (!CBB_add_u16(cbb, ssl3_cipher_get_value(cipher)))
			return 0;

		num_ciphers++;
	}

	/* Add SCSV if there are other ciphers and we're not renegotiating. */
	if (num_ciphers > 0 && !s->internal->renegotiate) {
		if (!CBB_add_u16(cbb, SSL3_CK_SCSV & SSL3_CK_VALUE_MASK))
			return 0;
	}

	if (!CBB_flush(cbb))


		return 0;




	return 1;
}

STACK_OF(SSL_CIPHER) *
ssl_bytes_to_cipher_list(SSL *s, CBS *cbs)
{


	STACK_OF(SSL_CIPHER) *ciphers = NULL;
	const SSL_CIPHER *cipher;
	uint16_t cipher_value, max_version;
	unsigned long cipher_id;

	if (s->s3 != NULL)
		S3I(s)->send_connection_binding = 0;









	if ((ciphers = sk_SSL_CIPHER_new_null()) == NULL) {
		SSLerror(s, ERR_R_MALLOC_FAILURE);
		goto err;
	}


	while (CBS_len(cbs) > 0) {
		if (!CBS_get_u16(cbs, &cipher_value)) {
			SSLerror(s, SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST);
			goto err;
		}

		cipher_id = SSL3_CK_ID | cipher_value;

		if (s->s3 != NULL && cipher_id == SSL3_CK_SCSV) {
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
					ssl3_send_alert(s, SSL3_AL_FATAL,
					    SSL_AD_INAPPROPRIATE_FALLBACK);
				goto err;
			}
			continue;
		}

		if ((c = ssl3_get_cipher_by_value(cipher_value)) != NULL) {
			if (!sk_SSL_CIPHER_push(sk, c)) {
				SSLerror(s, ERR_R_MALLOC_FAILURE);
				goto err;
			}
		}
	}

	return (sk);

err:
	sk_SSL_CIPHER_free(sk);

	return (NULL);
}


/*
 * Return a servername extension value if provided in Client Hello, or NULL.







|
|






|


|







1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
					ssl3_send_alert(s, SSL3_AL_FATAL,
					    SSL_AD_INAPPROPRIATE_FALLBACK);
				goto err;
			}
			continue;
		}

		if ((cipher = ssl3_get_cipher_by_value(cipher_value)) != NULL) {
			if (!sk_SSL_CIPHER_push(ciphers, cipher)) {
				SSLerror(s, ERR_R_MALLOC_FAILURE);
				goto err;
			}
		}
	}

	return (ciphers);

err:
	sk_SSL_CIPHER_free(ciphers);

	return (NULL);
}


/*
 * Return a servername extension value if provided in Client Hello, or NULL.
1775
1776
1777
1778
1779
1780
1781





1782
1783
1784
1785
1786
1787
1788
	return ssl_session_cmp(a, b);
}

SSL_CTX *
SSL_CTX_new(const SSL_METHOD *meth)
{
	SSL_CTX	*ret;






	if (meth == NULL) {
		SSLerrorx(SSL_R_NULL_SSL_METHOD_PASSED);
		return (NULL);
	}

	if ((ret = calloc(1, sizeof(*ret))) == NULL) {







>
>
>
>
>







1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
	return ssl_session_cmp(a, b);
}

SSL_CTX *
SSL_CTX_new(const SSL_METHOD *meth)
{
	SSL_CTX	*ret;

	if (!OPENSSL_init_ssl(0, NULL)) {
		SSLerrorx(SSL_R_LIBRARY_BUG);
		return (NULL);
	}

	if (meth == NULL) {
		SSLerrorx(SSL_R_NULL_SSL_METHOD_PASSED);
		return (NULL);
	}

	if ((ret = calloc(1, sizeof(*ret))) == NULL) {
1968
1969
1970
1971
1972
1973
1974













1975
1976
1977
1978
1979
1980






1981
1982
1983
1984
1985
1986
1987
	free(ctx->internal->tlsext_supportedgroups);

	free(ctx->internal->alpn_client_proto_list);

	free(ctx->internal);
	free(ctx);
}














void
SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx, pem_password_cb *cb)
{
	ctx->default_passwd_callback = cb;
}







void
SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx, void *u)
{
	ctx->default_passwd_callback_userdata = u;
}








>
>
>
>
>
>
>
>
>
>
>
>
>






>
>
>
>
>
>







1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
	free(ctx->internal->tlsext_supportedgroups);

	free(ctx->internal->alpn_client_proto_list);

	free(ctx->internal);
	free(ctx);
}

int
SSL_CTX_up_ref(SSL_CTX *ctx)
{
	int refs = CRYPTO_add(&ctx->references, 1, CRYPTO_LOCK_SSL_CTX);
	return ((refs > 1) ? 1 : 0);
}

pem_password_cb *
SSL_CTX_get_default_passwd_cb(SSL_CTX *ctx)
{
	return (ctx->default_passwd_callback);
}

void
SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx, pem_password_cb *cb)
{
	ctx->default_passwd_callback = cb;
}

void *
SSL_CTX_get_default_passwd_cb_userdata(SSL_CTX *ctx)
{
	return ctx->default_passwd_callback_userdata;
}

void
SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx, void *u)
{
	ctx->default_passwd_callback_userdata = u;
}

2642
2643
2644
2645
2646
2647
2648
































2649
2650
2651
2652
2653
2654
2655
}

const void *
SSL_get_current_expansion(SSL *s)
{
	return (NULL);
}

































int
ssl_init_wbio_buffer(SSL *s, int push)
{
	BIO	*bbio;

	if (s->bbio == NULL) {







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
}

const void *
SSL_get_current_expansion(SSL *s)
{
	return (NULL);
}

size_t
SSL_get_client_random(const SSL *s, unsigned char *out, size_t max_out)
{
	size_t len = sizeof(s->s3->client_random);

	if (out == NULL)
		return len;

	if (len > max_out)
		len = max_out;

	memcpy(out, s->s3->client_random, len);

	return len;
}

size_t
SSL_get_server_random(const SSL *s, unsigned char *out, size_t max_out)
{
	size_t len = sizeof(s->s3->server_random);

	if (out == NULL)
		return len;

	if (len > max_out)
		len = max_out;

	memcpy(out, s->s3->server_random, len);

	return len;
}

int
ssl_init_wbio_buffer(SSL *s, int push)
{
	BIO	*bbio;

	if (s->bbio == NULL) {
2874
2875
2876
2877
2878
2879
2880









2881
2882
2883
2884
2885
2886
2887

void
SSL_CTX_set_cert_store(SSL_CTX *ctx, X509_STORE *store)
{
	X509_STORE_free(ctx->cert_store);
	ctx->cert_store = store;
}










int
SSL_want(const SSL *s)
{
	return (s->internal->rwstate);
}








>
>
>
>
>
>
>
>
>







2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963

void
SSL_CTX_set_cert_store(SSL_CTX *ctx, X509_STORE *store)
{
	X509_STORE_free(ctx->cert_store);
	ctx->cert_store = store;
}

X509 *
SSL_CTX_get0_certificate(const SSL_CTX *ctx)
{
	if (ctx->internal->cert == NULL)
		return NULL;

	return ctx->internal->cert->key->x509;
}

int
SSL_want(const SSL *s)
{
	return (s->internal->rwstate);
}

2959
2960
2961
2962
2963
2964
2965






2966
2967
2968
2969
2970
2971
2972






2973
2974
2975
2976
2977
2978
2979






2980
2981
2982
2983
2984
2985
2986





2987
2988
2989
2990
2991
2992
2993
}

int
SSL_cache_hit(SSL *s)
{
	return (s->internal->hit);
}







int
SSL_CTX_set_min_proto_version(SSL_CTX *ctx, uint16_t version)
{
	return ssl_version_set_min(ctx->method, version,
	    ctx->internal->max_version, &ctx->internal->min_version);
}







int
SSL_CTX_set_max_proto_version(SSL_CTX *ctx, uint16_t version)
{
	return ssl_version_set_max(ctx->method, version,
	    ctx->internal->min_version, &ctx->internal->max_version);
}







int
SSL_set_min_proto_version(SSL *ssl, uint16_t version)
{
	return ssl_version_set_min(ssl->method, version,
	    ssl->internal->max_version, &ssl->internal->min_version);
}






int
SSL_set_max_proto_version(SSL *ssl, uint16_t version)
{
	return ssl_version_set_max(ssl->method, version,
	    ssl->internal->min_version, &ssl->internal->max_version);
}







>
>
>
>
>
>







>
>
>
>
>
>







>
>
>
>
>
>







>
>
>
>
>







3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
}

int
SSL_cache_hit(SSL *s)
{
	return (s->internal->hit);
}

int
SSL_CTX_get_min_proto_version(SSL_CTX *ctx)
{
	return ctx->internal->min_version;
}

int
SSL_CTX_set_min_proto_version(SSL_CTX *ctx, uint16_t version)
{
	return ssl_version_set_min(ctx->method, version,
	    ctx->internal->max_version, &ctx->internal->min_version);
}

int
SSL_CTX_get_max_proto_version(SSL_CTX *ctx)
{
	return ctx->internal->max_version;
}

int
SSL_CTX_set_max_proto_version(SSL_CTX *ctx, uint16_t version)
{
	return ssl_version_set_max(ctx->method, version,
	    ctx->internal->min_version, &ctx->internal->max_version);
}

int
SSL_get_min_proto_version(SSL *ssl)
{
	return ssl->internal->min_version;
}

int
SSL_set_min_proto_version(SSL *ssl, uint16_t version)
{
	return ssl_version_set_min(ssl->method, version,
	    ssl->internal->max_version, &ssl->internal->min_version);
}
int
SSL_get_max_proto_version(SSL *ssl)
{
	return ssl->internal->max_version;
}

int
SSL_set_max_proto_version(SSL *ssl, uint16_t version)
{
	return ssl_version_set_max(ssl->method, version,
	    ssl->internal->min_version, &ssl->internal->max_version);
}
Changes to jni/libressl/ssl/ssl_locl.h.
1
2
3
4
5
6
7
8
/* $OpenBSD: ssl_locl.h,v 1.193 2017/08/28 16:37:04 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: ssl_locl.h,v 1.202 2018/01/27 15:30:05 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
159
160
161
162
163
164
165



166
167
168
169
170
171
172
#include <openssl/rsa.h>
#include <openssl/ssl.h>
#include <openssl/stack.h>

#include "bytestring.h"

__BEGIN_HIDDEN_DECLS




#define l2n(l,c)	(*((c)++)=(unsigned char)(((l)>>24)&0xff), \
			 *((c)++)=(unsigned char)(((l)>>16)&0xff), \
			 *((c)++)=(unsigned char)(((l)>> 8)&0xff), \
			 *((c)++)=(unsigned char)(((l)    )&0xff))

#define l2n8(l,c)	(*((c)++)=(unsigned char)(((l)>>56)&0xff), \







>
>
>







159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
#include <openssl/rsa.h>
#include <openssl/ssl.h>
#include <openssl/stack.h>

#include "bytestring.h"

__BEGIN_HIDDEN_DECLS

#define CTASSERT(x)	extern char  _ctassert[(x) ? 1 : -1 ]   \
			    __attribute__((__unused__))

#define l2n(l,c)	(*((c)++)=(unsigned char)(((l)>>24)&0xff), \
			 *((c)++)=(unsigned char)(((l)>>16)&0xff), \
			 *((c)++)=(unsigned char)(((l)>> 8)&0xff), \
			 *((c)++)=(unsigned char)(((l)    )&0xff))

#define l2n8(l,c)	(*((c)++)=(unsigned char)(((l)>>56)&0xff), \
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070

1071
1072
1073
1074
1075
1076
1077
int ssl_get_new_session(SSL *s, int session);
int ssl_get_prev_session(SSL *s, unsigned char *session, int len,
    const unsigned char *limit);
int ssl_cipher_id_cmp(const SSL_CIPHER *a, const SSL_CIPHER *b);
SSL_CIPHER *OBJ_bsearch_ssl_cipher_id(SSL_CIPHER *key, SSL_CIPHER const *base, int num);
int ssl_cipher_ptr_id_cmp(const SSL_CIPHER * const *ap,
    const SSL_CIPHER * const *bp);
STACK_OF(SSL_CIPHER) *ssl_bytes_to_cipher_list(SSL *s, const unsigned char *p,
    int num);
int ssl_cipher_list_to_bytes(SSL *s, STACK_OF(SSL_CIPHER) *sk,
    unsigned char *p, size_t maxlen, size_t *outlen);

STACK_OF(SSL_CIPHER) *ssl_create_cipher_list(const SSL_METHOD *meth,
    STACK_OF(SSL_CIPHER) **pref, STACK_OF(SSL_CIPHER) **sorted,
    const char *rule_str);
void ssl_update_cache(SSL *s, int mode);
int ssl_cipher_get_evp(const SSL_SESSION *s, const EVP_CIPHER **enc,
    const EVP_MD **md, int *mac_pkey_type, int *mac_secret_size);
int ssl_cipher_get_evp_aead(const SSL_SESSION *s, const EVP_AEAD **aead);







<
<
|
<
>







1063
1064
1065
1066
1067
1068
1069


1070

1071
1072
1073
1074
1075
1076
1077
1078
int ssl_get_new_session(SSL *s, int session);
int ssl_get_prev_session(SSL *s, unsigned char *session, int len,
    const unsigned char *limit);
int ssl_cipher_id_cmp(const SSL_CIPHER *a, const SSL_CIPHER *b);
SSL_CIPHER *OBJ_bsearch_ssl_cipher_id(SSL_CIPHER *key, SSL_CIPHER const *base, int num);
int ssl_cipher_ptr_id_cmp(const SSL_CIPHER * const *ap,
    const SSL_CIPHER * const *bp);


int ssl_cipher_list_to_bytes(SSL *s, STACK_OF(SSL_CIPHER) *ciphers, CBB *cbb);

STACK_OF(SSL_CIPHER) *ssl_bytes_to_cipher_list(SSL *s, CBS *cbs);
STACK_OF(SSL_CIPHER) *ssl_create_cipher_list(const SSL_METHOD *meth,
    STACK_OF(SSL_CIPHER) **pref, STACK_OF(SSL_CIPHER) **sorted,
    const char *rule_str);
void ssl_update_cache(SSL *s, int mode);
int ssl_cipher_get_evp(const SSL_SESSION *s, const EVP_CIPHER **enc,
    const EVP_MD **md, int *mac_pkey_type, int *mac_secret_size);
int ssl_cipher_get_evp_aead(const SSL_SESSION *s, const EVP_AEAD **aead);
1143
1144
1145
1146
1147
1148
1149

1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168



1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
int ssl3_handshake_msg_hdr_len(SSL *s);
unsigned char *ssl3_handshake_msg_start(SSL *s, uint8_t htype);
void ssl3_handshake_msg_finish(SSL *s, unsigned int len);
int ssl3_handshake_msg_start_cbb(SSL *s, CBB *handshake, CBB *body,
    uint8_t msg_type);
int ssl3_handshake_msg_finish_cbb(SSL *s, CBB *handshake);
int ssl3_handshake_write(SSL *s);


void tls1_record_sequence_increment(unsigned char *seq);
int ssl3_do_change_cipher_spec(SSL *ssl);

int ssl23_read(SSL *s, void *buf, int len);
int ssl23_peek(SSL *s, void *buf, int len);
int ssl23_write(SSL *s, const void *buf, int len);
long ssl23_default_timeout(void);

long tls1_default_timeout(void);
int dtls1_do_write(SSL *s, int type);
int ssl3_packet_read(SSL *s, int plen);
int ssl3_packet_extend(SSL *s, int plen);
int ssl_server_legacy_first_packet(SSL *s);
int dtls1_read_bytes(SSL *s, int type, unsigned char *buf, int len, int peek);
int ssl3_write_pending(SSL *s, int type, const unsigned char *buf,
    unsigned int len);
void dtls1_set_message_header(SSL *s, unsigned char mt, unsigned long len,
    unsigned long frag_off, unsigned long frag_len);




int dtls1_write_app_data_bytes(SSL *s, int type, const void *buf, int len);
int dtls1_write_bytes(SSL *s, int type, const void *buf, int len);

int dtls1_send_change_cipher_spec(SSL *s, int a, int b);
unsigned long dtls1_output_cert_chain(SSL *s, X509 *x);
int dtls1_read_failed(SSL *s, int code);
int dtls1_buffer_message(SSL *s, int ccs);
int dtls1_retransmit_message(SSL *s, unsigned short seq,
    unsigned long frag_off, int *found);
int dtls1_get_queue_priority(unsigned short seq, int is_ccs);
int dtls1_retransmit_buffered_messages(SSL *s);
void dtls1_clear_record_buffer(SSL *s);







>




<
<
<
<
<










>
>
>




<
<







1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155





1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172


1173
1174
1175
1176
1177
1178
1179
int ssl3_handshake_msg_hdr_len(SSL *s);
unsigned char *ssl3_handshake_msg_start(SSL *s, uint8_t htype);
void ssl3_handshake_msg_finish(SSL *s, unsigned int len);
int ssl3_handshake_msg_start_cbb(SSL *s, CBB *handshake, CBB *body,
    uint8_t msg_type);
int ssl3_handshake_msg_finish_cbb(SSL *s, CBB *handshake);
int ssl3_handshake_write(SSL *s);
int ssl3_record_write(SSL *s, int type);

void tls1_record_sequence_increment(unsigned char *seq);
int ssl3_do_change_cipher_spec(SSL *ssl);






long tls1_default_timeout(void);
int dtls1_do_write(SSL *s, int type);
int ssl3_packet_read(SSL *s, int plen);
int ssl3_packet_extend(SSL *s, int plen);
int ssl_server_legacy_first_packet(SSL *s);
int dtls1_read_bytes(SSL *s, int type, unsigned char *buf, int len, int peek);
int ssl3_write_pending(SSL *s, int type, const unsigned char *buf,
    unsigned int len);
void dtls1_set_message_header(SSL *s, unsigned char mt, unsigned long len,
    unsigned long frag_off, unsigned long frag_len);
void dtls1_set_message_header_int(SSL *s, unsigned char mt,
    unsigned long len, unsigned short seq_num, unsigned long frag_off,
    unsigned long frag_len);

int dtls1_write_app_data_bytes(SSL *s, int type, const void *buf, int len);
int dtls1_write_bytes(SSL *s, int type, const void *buf, int len);



int dtls1_read_failed(SSL *s, int code);
int dtls1_buffer_message(SSL *s, int ccs);
int dtls1_retransmit_message(SSL *s, unsigned short seq,
    unsigned long frag_off, int *found);
int dtls1_get_queue_priority(unsigned short seq, int is_ccs);
int dtls1_retransmit_buffered_messages(SSL *s);
void dtls1_clear_record_buffer(SSL *s);
1193
1194
1195
1196
1197
1198
1199

1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215

1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
void dtls1_start_timer(SSL *s);
void dtls1_stop_timer(SSL *s);
int dtls1_is_timer_expired(SSL *s);
void dtls1_double_timeout(SSL *s);
unsigned int dtls1_min_mtu(void);

/* some client-only functions */

int ssl3_client_hello(SSL *s);
int ssl3_get_server_hello(SSL *s);
int ssl3_get_certificate_request(SSL *s);
int ssl3_get_new_session_ticket(SSL *s);
int ssl3_get_cert_status(SSL *s);
int ssl3_get_server_done(SSL *s);
int ssl3_send_client_verify(SSL *s);
int ssl3_send_client_certificate(SSL *s);
int ssl_do_client_cert_cb(SSL *s, X509 **px509, EVP_PKEY **ppkey);
int ssl3_send_client_key_exchange(SSL *s);
int ssl3_get_server_key_exchange(SSL *s);
int ssl3_get_server_certificate(SSL *s);
int ssl3_check_cert_and_algorithm(SSL *s);
int ssl3_check_finished(SSL *s);

/* some server-only functions */

int ssl3_get_client_hello(SSL *s);
int ssl3_send_server_hello(SSL *s);
int ssl3_send_hello_request(SSL *s);
int ssl3_send_server_key_exchange(SSL *s);
int ssl3_send_certificate_request(SSL *s);
int ssl3_send_server_done(SSL *s);
int ssl3_get_client_certificate(SSL *s);
int ssl3_get_client_key_exchange(SSL *s);
int ssl3_get_cert_verify(SSL *s);

int ssl23_accept(SSL *s);
int ssl23_connect(SSL *s);
int ssl23_read_bytes(SSL *s, int n);
int ssl23_write_bytes(SSL *s);

int tls1_new(SSL *s);
void tls1_free(SSL *s);
void tls1_clear(SSL *s);

int dtls1_new(SSL *s);
int dtls1_accept(SSL *s);
int dtls1_connect(SSL *s);
void dtls1_free(SSL *s);
void dtls1_clear(SSL *s);
long dtls1_ctrl(SSL *s, int cmd, long larg, void *parg);
int dtls1_shutdown(SSL *s);

long dtls1_get_message(SSL *s, int st1, int stn, int mt, long max, int *ok);
int dtls1_get_record(SSL *s);







>
|















>










<
<
<
<
<





<
<







1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225





1226
1227
1228
1229
1230


1231
1232
1233
1234
1235
1236
1237
void dtls1_start_timer(SSL *s);
void dtls1_stop_timer(SSL *s);
int dtls1_is_timer_expired(SSL *s);
void dtls1_double_timeout(SSL *s);
unsigned int dtls1_min_mtu(void);

/* some client-only functions */
int dtls1_get_hello_verify(SSL *s);
int ssl3_send_client_hello(SSL *s);
int ssl3_get_server_hello(SSL *s);
int ssl3_get_certificate_request(SSL *s);
int ssl3_get_new_session_ticket(SSL *s);
int ssl3_get_cert_status(SSL *s);
int ssl3_get_server_done(SSL *s);
int ssl3_send_client_verify(SSL *s);
int ssl3_send_client_certificate(SSL *s);
int ssl_do_client_cert_cb(SSL *s, X509 **px509, EVP_PKEY **ppkey);
int ssl3_send_client_key_exchange(SSL *s);
int ssl3_get_server_key_exchange(SSL *s);
int ssl3_get_server_certificate(SSL *s);
int ssl3_check_cert_and_algorithm(SSL *s);
int ssl3_check_finished(SSL *s);

/* some server-only functions */
int dtls1_send_hello_verify_request(SSL *s);
int ssl3_get_client_hello(SSL *s);
int ssl3_send_server_hello(SSL *s);
int ssl3_send_hello_request(SSL *s);
int ssl3_send_server_key_exchange(SSL *s);
int ssl3_send_certificate_request(SSL *s);
int ssl3_send_server_done(SSL *s);
int ssl3_get_client_certificate(SSL *s);
int ssl3_get_client_key_exchange(SSL *s);
int ssl3_get_cert_verify(SSL *s);






int tls1_new(SSL *s);
void tls1_free(SSL *s);
void tls1_clear(SSL *s);

int dtls1_new(SSL *s);


void dtls1_free(SSL *s);
void dtls1_clear(SSL *s);
long dtls1_ctrl(SSL *s, int cmd, long larg, void *parg);
int dtls1_shutdown(SSL *s);

long dtls1_get_message(SSL *s, int st1, int stn, int mt, long max, int *ok);
int dtls1_get_record(SSL *s);
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
    const char *groups);

int tls1_ec_curve_id2nid(const uint16_t curve_id);
uint16_t tls1_ec_nid2curve_id(const int nid);
int tls1_check_curve(SSL *s, const uint16_t curve_id);
int tls1_get_shared_curve(SSL *s);

unsigned char *ssl_add_clienthello_tlsext(SSL *s, unsigned char *p,
    unsigned char *limit);

unsigned char *ssl_add_serverhello_tlsext(SSL *s, unsigned char *p,
    unsigned char *limit);

int ssl_parse_clienthello_tlsext(SSL *s, unsigned char **data,
    unsigned char *d, int n, int *al);
int ssl_parse_serverhello_tlsext(SSL *s, unsigned char **data,
    size_t n, int *al);
int ssl_check_clienthello_tlsext_early(SSL *s);
int ssl_check_clienthello_tlsext_late(SSL *s);
int ssl_check_serverhello_tlsext(SSL *s);

#define tlsext_tick_md	EVP_sha256







<
<
<
<
<
<
<
<







1274
1275
1276
1277
1278
1279
1280








1281
1282
1283
1284
1285
1286
1287
    const char *groups);

int tls1_ec_curve_id2nid(const uint16_t curve_id);
uint16_t tls1_ec_nid2curve_id(const int nid);
int tls1_check_curve(SSL *s, const uint16_t curve_id);
int tls1_get_shared_curve(SSL *s);









int ssl_parse_serverhello_tlsext(SSL *s, unsigned char **data,
    size_t n, int *al);
int ssl_check_clienthello_tlsext_early(SSL *s);
int ssl_check_clienthello_tlsext_late(SSL *s);
int ssl_check_serverhello_tlsext(SSL *s);

#define tlsext_tick_md	EVP_sha256
Changes to jni/libressl/ssl/ssl_sess.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: ssl_sess.c,v 1.71 2017/04/10 17:27:33 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: ssl_sess.c,v 1.79 2018/03/20 15:28:12 tb Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
194
195
196
197
198
199
200





201
202
203
204
205
206
207
	return (CRYPTO_get_ex_data(&s->internal->ex_data, idx));
}

SSL_SESSION *
SSL_SESSION_new(void)
{
	SSL_SESSION *ss;






	if ((ss = calloc(1, sizeof(*ss))) == NULL) {
		SSLerrorx(ERR_R_MALLOC_FAILURE);
		return (NULL);
	}
	if ((ss->internal = calloc(1, sizeof(*ss->internal))) == NULL) {
		free(ss);







>
>
>
>
>







194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
	return (CRYPTO_get_ex_data(&s->internal->ex_data, idx));
}

SSL_SESSION *
SSL_SESSION_new(void)
{
	SSL_SESSION *ss;

	if (!OPENSSL_init_ssl(0, NULL)) {
		SSLerrorx(SSL_R_LIBRARY_BUG);
		return(NULL);
	}

	if ((ss = calloc(1, sizeof(*ss))) == NULL) {
		SSLerrorx(ERR_R_MALLOC_FAILURE);
		return (NULL);
	}
	if ((ss->internal = calloc(1, sizeof(*ss->internal))) == NULL) {
		free(ss);
224
225
226
227
228
229
230
231
232
233
234
235








236
237
238
239
240
241
242












243
244
245
246
247
248
249

	CRYPTO_new_ex_data(CRYPTO_EX_INDEX_SSL_SESSION, ss, &ss->internal->ex_data);

	return (ss);
}

const unsigned char *
SSL_SESSION_get_id(const SSL_SESSION *s, unsigned int *len)
{
	if (len)
		*len = s->session_id_length;
	return s->session_id;








}

unsigned int
SSL_SESSION_get_compress_id(const SSL_SESSION *s)
{
	return 0;
}













/*
 * SSLv3/TLSv1 has 32 bytes (256 bits) of session ID space. As such, filling
 * the ID with random gunk repeatedly until we have no conflict is going to
 * complete in one iteration pretty much "most" of the time (btw:
 * understatement). So, if it takes us 10 iterations and we still can't avoid
 * a conflict - well that's a reasonable point to call it quits. Either the







|

|
|
|
>
>
>
>
>
>
>
>



|



>
>
>
>
>
>
>
>
>
>
>
>







229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274

	CRYPTO_new_ex_data(CRYPTO_EX_INDEX_SSL_SESSION, ss, &ss->internal->ex_data);

	return (ss);
}

const unsigned char *
SSL_SESSION_get_id(const SSL_SESSION *ss, unsigned int *len)
{
	if (len != NULL)
		*len = ss->session_id_length;
	return ss->session_id;
}

const unsigned char *
SSL_SESSION_get0_id_context(const SSL_SESSION *ss, unsigned int *len)
{
	if (len != NULL)
		*len = (unsigned int)ss->sid_ctx_length;
	return ss->sid_ctx;
}

unsigned int
SSL_SESSION_get_compress_id(const SSL_SESSION *ss)
{
	return 0;
}

unsigned long
SSL_SESSION_get_ticket_lifetime_hint(const SSL_SESSION *s)
{
	return s->tlsext_tick_lifetime_hint;
}

int
SSL_SESSION_has_ticket(const SSL_SESSION *s)
{
	return (s->tlsext_ticklen > 0) ? 1 : 0;
}

/*
 * SSLv3/TLSv1 has 32 bytes (256 bits) of session ID space. As such, filling
 * the ID with random gunk repeatedly until we have no conflict is going to
 * complete in one iteration pretty much "most" of the time (btw:
 * understatement). So, if it takes us 10 iterations and we still can't avoid
 * a conflict - well that's a reasonable point to call it quits. Either the
704
705
706
707
708
709
710







711
712
713
714
715
716
717
	free(ss->tlsext_tick);
	free(ss->internal->tlsext_ecpointformatlist);
	free(ss->internal->tlsext_supportedgroups);

	freezero(ss->internal, sizeof(*ss->internal));
	freezero(ss, sizeof(*ss));
}








int
SSL_set_session(SSL *s, SSL_SESSION *session)
{
	int ret = 0;
	const SSL_METHOD *meth;








>
>
>
>
>
>
>







729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
	free(ss->tlsext_tick);
	free(ss->internal->tlsext_ecpointformatlist);
	free(ss->internal->tlsext_supportedgroups);

	freezero(ss->internal, sizeof(*ss->internal));
	freezero(ss, sizeof(*ss));
}

int
SSL_SESSION_up_ref(SSL_SESSION *ss)
{
	int refs = CRYPTO_add(&ss->references, 1, CRYPTO_LOCK_SSL_SESSION);
	return (refs > 1) ? 1 : 0;
}

int
SSL_set_session(SSL *s, SSL_SESSION *session)
{
	int ret = 0;
	const SSL_METHOD *meth;

748
749
750
751
752
753
754

















755
756
757
758
759
760
761
			if (!SSL_set_ssl_method(s, meth))
				return (0);
		}
		ret = 1;
	}
	return (ret);
}


















long
SSL_SESSION_set_timeout(SSL_SESSION *s, long t)
{
	if (s == NULL)
		return (0);
	s->timeout = t;







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
			if (!SSL_set_ssl_method(s, meth))
				return (0);
		}
		ret = 1;
	}
	return (ret);
}

size_t
SSL_SESSION_get_master_key(const SSL_SESSION *ss, unsigned char *out,
    size_t max_out)
{
	size_t len = ss->master_key_length;

	if (out == NULL)
		return len;

	if (len > max_out)
		len = max_out;

	memcpy(out, ss->master_key, len);

	return len;
}

long
SSL_SESSION_set_timeout(SSL_SESSION *s, long t)
{
	if (s == NULL)
		return (0);
	s->timeout = t;
784
785
786
787
788
789
790






791
792
793
794
795
796













797
798
799
800
801
802
803
SSL_SESSION_set_time(SSL_SESSION *s, long t)
{
	if (s == NULL)
		return (0);
	s->time = t;
	return (t);
}







X509 *
SSL_SESSION_get0_peer(SSL_SESSION *s)
{
	return s->peer;
}














int
SSL_SESSION_set1_id_context(SSL_SESSION *s, const unsigned char *sid_ctx,
    unsigned int sid_ctx_len)
{
	if (sid_ctx_len > SSL_MAX_SID_CTX_LENGTH) {
		SSLerrorx(SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG);







>
>
>
>
>
>






>
>
>
>
>
>
>
>
>
>
>
>
>







833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
SSL_SESSION_set_time(SSL_SESSION *s, long t)
{
	if (s == NULL)
		return (0);
	s->time = t;
	return (t);
}

int
SSL_SESSION_get_protocol_version(const SSL_SESSION *s)
{
	return s->ssl_version;
}

X509 *
SSL_SESSION_get0_peer(SSL_SESSION *s)
{
	return s->peer;
}

int
SSL_SESSION_set1_id(SSL_SESSION *s, const unsigned char *sid,
    unsigned int sid_len)
{
	if (sid_len > SSL_MAX_SSL_SESSION_ID_LENGTH) {
		SSLerrorx(SSL_R_SSL_SESSION_ID_TOO_LONG);
		return 0;
	}
	s->session_id_length = sid_len;
	memmove(s->session_id, sid, sid_len);
	return 1;
}

int
SSL_SESSION_set1_id_context(SSL_SESSION *s, const unsigned char *sid_ctx,
    unsigned int sid_ctx_len)
{
	if (sid_ctx_len > SSL_MAX_SID_CTX_LENGTH) {
		SSLerrorx(SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG);
Changes to jni/libressl/ssl/ssl_srvr.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: ssl_srvr.c,v 1.22 2017/08/12 21:47:59 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: ssl_srvr.c,v 1.28 2018/01/28 09:21:34 inoguchi Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
162
163
164
165
166
167
168

169
170
171
172
173
174

175
176

177
178
179
180
181
182
183
184
185



186
187
188
189
190



191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213







214
215
216
217

218
219
220
221
222
223
224
#endif
#include <openssl/hmac.h>
#include <openssl/md5.h>
#include <openssl/objects.h>
#include <openssl/x509.h>

#include "bytestring.h"


int
ssl3_accept(SSL *s)
{
	unsigned long alg_k;
	void (*cb)(const SSL *ssl, int type, int val) = NULL;

	int ret = -1;
	int new_state, state, skip = 0;


	ERR_clear_error();
	errno = 0;

	if (s->internal->info_callback != NULL)
		cb = s->internal->info_callback;
	else if (s->ctx->internal->info_callback != NULL)
		cb = s->ctx->internal->info_callback;




	/* init things to blank */
	s->internal->in_handshake++;
	if (!SSL_in_init(s) || SSL_in_before(s))
		SSL_clear(s);




	if (s->cert == NULL) {
		SSLerror(s, SSL_R_NO_CERTIFICATE_SET);
		ret = -1;
		goto end;
	}

	for (;;) {
		state = S3I(s)->hs.state;

		switch (S3I(s)->hs.state) {
		case SSL_ST_RENEGOTIATE:
			s->internal->renegotiate = 1;
			/* S3I(s)->hs.state=SSL_ST_ACCEPT; */

		case SSL_ST_BEFORE:
		case SSL_ST_ACCEPT:
		case SSL_ST_BEFORE|SSL_ST_ACCEPT:
		case SSL_ST_OK|SSL_ST_ACCEPT:

			s->server = 1;
			if (cb != NULL)
				cb(s, SSL_CB_HANDSHAKE_START, 1);








			if ((s->version >> 8) != 3) {
				SSLerror(s, ERR_R_INTERNAL_ERROR);
				ret = -1;
				goto end;

			}
			s->internal->type = SSL_ST_ACCEPT;

			if (!ssl3_setup_init_buffer(s)) {
				ret = -1;
				goto end;
			}







>




<

>


>









>
>
>





>
>
>


















<




>
>
>
>
>
>
>
|
|
|
|
>







162
163
164
165
166
167
168
169
170
171
172
173

174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216

217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
#endif
#include <openssl/hmac.h>
#include <openssl/md5.h>
#include <openssl/objects.h>
#include <openssl/x509.h>

#include "bytestring.h"
#include "ssl_tlsext.h"

int
ssl3_accept(SSL *s)
{

	void (*cb)(const SSL *ssl, int type, int val) = NULL;
	unsigned long alg_k;
	int ret = -1;
	int new_state, state, skip = 0;
	int listen = 0;

	ERR_clear_error();
	errno = 0;

	if (s->internal->info_callback != NULL)
		cb = s->internal->info_callback;
	else if (s->ctx->internal->info_callback != NULL)
		cb = s->ctx->internal->info_callback;

	if (SSL_IS_DTLS(s))
		listen = D1I(s)->listen;

	/* init things to blank */
	s->internal->in_handshake++;
	if (!SSL_in_init(s) || SSL_in_before(s))
		SSL_clear(s);

	if (SSL_IS_DTLS(s))
		D1I(s)->listen = listen;

	if (s->cert == NULL) {
		SSLerror(s, SSL_R_NO_CERTIFICATE_SET);
		ret = -1;
		goto end;
	}

	for (;;) {
		state = S3I(s)->hs.state;

		switch (S3I(s)->hs.state) {
		case SSL_ST_RENEGOTIATE:
			s->internal->renegotiate = 1;
			/* S3I(s)->hs.state=SSL_ST_ACCEPT; */

		case SSL_ST_BEFORE:
		case SSL_ST_ACCEPT:
		case SSL_ST_BEFORE|SSL_ST_ACCEPT:
		case SSL_ST_OK|SSL_ST_ACCEPT:

			s->server = 1;
			if (cb != NULL)
				cb(s, SSL_CB_HANDSHAKE_START, 1);

			if (SSL_IS_DTLS(s)) {
				if ((s->version & 0xff00) != (DTLS1_VERSION & 0xff00)) {
					SSLerror(s, ERR_R_INTERNAL_ERROR);
					ret = -1;
					goto end;
				}
			} else {
				if ((s->version >> 8) != 3) {
					SSLerror(s, ERR_R_INTERNAL_ERROR);
					ret = -1;
					goto end;
				}
			}
			s->internal->type = SSL_ST_ACCEPT;

			if (!ssl3_setup_init_buffer(s)) {
				ret = -1;
				goto end;
			}
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274




275
276
277



278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294






295






296

























297
298
299
300
301
302
303
304
305
















306
307
308
309




310
311
312
313
314
315
316
317
318
319
320

321
322
323
324
325
326
327
328


329
330
331
332
333
334
335
				 * so that the output is sent in a way that
				 * TCP likes :-)
				 */
				if (!ssl_init_wbio_buffer(s, 1)) {
					ret = -1;
					goto end;
				}

				if (!tls1_init_finished_mac(s)) {
					ret = -1;
					goto end;
				}

				S3I(s)->hs.state = SSL3_ST_SR_CLNT_HELLO_A;
				s->ctx->internal->stats.sess_accept++;
			} else if (!S3I(s)->send_connection_binding) {
				/*
				 * Server attempting to renegotiate with
				 * client that doesn't support secure
				 * renegotiation.
				 */
				SSLerror(s, SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED);
				ssl3_send_alert(s, SSL3_AL_FATAL,
				    SSL_AD_HANDSHAKE_FAILURE);
				ret = -1;
				goto end;
			} else {
				/*
				 * S3I(s)->hs.state == SSL_ST_RENEGOTIATE,
				 * we will just send a HelloRequest
				 */
				s->ctx->internal->stats.sess_accept_renegotiate++;
				S3I(s)->hs.state = SSL3_ST_SW_HELLO_REQ_A;
			}
			break;

		case SSL3_ST_SW_HELLO_REQ_A:
		case SSL3_ST_SW_HELLO_REQ_B:

			s->internal->shutdown = 0;




			ret = ssl3_send_hello_request(s);
			if (ret <= 0)
				goto end;



			S3I(s)->hs.next_state = SSL3_ST_SW_HELLO_REQ_C;
			S3I(s)->hs.state = SSL3_ST_SW_FLUSH;
			s->internal->init_num = 0;

			if (!tls1_init_finished_mac(s)) {
				ret = -1;
				goto end;
			}
			break;

		case SSL3_ST_SW_HELLO_REQ_C:
			S3I(s)->hs.state = SSL_ST_OK;
			break;

		case SSL3_ST_SR_CLNT_HELLO_A:
		case SSL3_ST_SR_CLNT_HELLO_B:
		case SSL3_ST_SR_CLNT_HELLO_C:













			s->internal->shutdown = 0;

























			if (s->internal->rwstate != SSL_X509_LOOKUP) {
				ret = ssl3_get_client_hello(s);
				if (ret <= 0)
					goto end;
			}

			s->internal->renegotiate = 2;
			S3I(s)->hs.state = SSL3_ST_SW_SRVR_HELLO_A;
			s->internal->init_num = 0;
















			break;

		case SSL3_ST_SW_SRVR_HELLO_A:
		case SSL3_ST_SW_SRVR_HELLO_B:




			ret = ssl3_send_server_hello(s);
			if (ret <= 0)
				goto end;
			if (s->internal->hit) {
				if (s->internal->tlsext_ticket_expected)
					S3I(s)->hs.state = SSL3_ST_SW_SESSION_TICKET_A;
				else
					S3I(s)->hs.state = SSL3_ST_SW_CHANGE_A;
			}
			else
				S3I(s)->hs.state = SSL3_ST_SW_CERT_A;

			s->internal->init_num = 0;
			break;

		case SSL3_ST_SW_CERT_A:
		case SSL3_ST_SW_CERT_B:
			/* Check if it is anon DH or anon ECDH. */
			if (!(S3I(s)->hs.new_cipher->algorithm_auth &
			    SSL_aNULL)) {


				ret = ssl3_send_server_certificate(s);
				if (ret <= 0)
					goto end;
				if (s->internal->tlsext_status_expected)
					S3I(s)->hs.state = SSL3_ST_SW_CERT_STATUS_A;
				else
					S3I(s)->hs.state = SSL3_ST_SW_KEY_EXCH_A;







<







|













|








<

>
>
>
>



>
>
>
|
















>
>
>
>
>
>

>
>
>
>
>
>
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
|
|
|
|

|
|
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>




>
>
>
>








<
|

>








>
>







250
251
252
253
254
255
256

257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286

287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394

395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
				 * so that the output is sent in a way that
				 * TCP likes :-)
				 */
				if (!ssl_init_wbio_buffer(s, 1)) {
					ret = -1;
					goto end;
				}

				if (!tls1_init_finished_mac(s)) {
					ret = -1;
					goto end;
				}

				S3I(s)->hs.state = SSL3_ST_SR_CLNT_HELLO_A;
				s->ctx->internal->stats.sess_accept++;
			} else if (!SSL_IS_DTLS(s) && !S3I(s)->send_connection_binding) {
				/*
				 * Server attempting to renegotiate with
				 * client that doesn't support secure
				 * renegotiation.
				 */
				SSLerror(s, SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED);
				ssl3_send_alert(s, SSL3_AL_FATAL,
				    SSL_AD_HANDSHAKE_FAILURE);
				ret = -1;
				goto end;
			} else {
				/*
				 * S3I(s)->hs.state == SSL_ST_RENEGOTIATE,
				 * we will just send a HelloRequest.
				 */
				s->ctx->internal->stats.sess_accept_renegotiate++;
				S3I(s)->hs.state = SSL3_ST_SW_HELLO_REQ_A;
			}
			break;

		case SSL3_ST_SW_HELLO_REQ_A:
		case SSL3_ST_SW_HELLO_REQ_B:

			s->internal->shutdown = 0;
			if (SSL_IS_DTLS(s)) {
				dtls1_clear_record_buffer(s);
				dtls1_start_timer(s);
			}
			ret = ssl3_send_hello_request(s);
			if (ret <= 0)
				goto end;
			if (SSL_IS_DTLS(s))
				S3I(s)->hs.next_state = SSL3_ST_SR_CLNT_HELLO_A;
			else
				S3I(s)->hs.next_state = SSL3_ST_SW_HELLO_REQ_C;
			S3I(s)->hs.state = SSL3_ST_SW_FLUSH;
			s->internal->init_num = 0;

			if (!tls1_init_finished_mac(s)) {
				ret = -1;
				goto end;
			}
			break;

		case SSL3_ST_SW_HELLO_REQ_C:
			S3I(s)->hs.state = SSL_ST_OK;
			break;

		case SSL3_ST_SR_CLNT_HELLO_A:
		case SSL3_ST_SR_CLNT_HELLO_B:
		case SSL3_ST_SR_CLNT_HELLO_C:
			s->internal->shutdown = 0;
			if (SSL_IS_DTLS(s)) {
				ret = ssl3_get_client_hello(s);
				if (ret <= 0)
					goto end;
				dtls1_stop_timer(s);

				if (ret == 1 &&
				    (SSL_get_options(s) & SSL_OP_COOKIE_EXCHANGE))
					S3I(s)->hs.state = DTLS1_ST_SW_HELLO_VERIFY_REQUEST_A;
				else
					S3I(s)->hs.state = SSL3_ST_SW_SRVR_HELLO_A;

				s->internal->init_num = 0;

				/*
				 * Reflect ClientHello sequence to remain
				 * stateless while listening.
				 */
				if (listen) {
					memcpy(S3I(s)->write_sequence,
					    S3I(s)->read_sequence,
					    sizeof(S3I(s)->write_sequence));
				}

				/* If we're just listening, stop here */
				if (listen && S3I(s)->hs.state == SSL3_ST_SW_SRVR_HELLO_A) {
					ret = 2;
					D1I(s)->listen = 0;
					/*
					 * Set expected sequence numbers to
					 * continue the handshake.
					 */
					D1I(s)->handshake_read_seq = 2;
					D1I(s)->handshake_write_seq = 1;
					D1I(s)->next_handshake_write_seq = 1;
					goto end;
				}				
			} else {
				if (s->internal->rwstate != SSL_X509_LOOKUP) {
					ret = ssl3_get_client_hello(s);
					if (ret <= 0)
						goto end;
				}

				s->internal->renegotiate = 2;
				S3I(s)->hs.state = SSL3_ST_SW_SRVR_HELLO_A;
				s->internal->init_num = 0;
			}
			break;

		case DTLS1_ST_SW_HELLO_VERIFY_REQUEST_A:
		case DTLS1_ST_SW_HELLO_VERIFY_REQUEST_B:
			ret = dtls1_send_hello_verify_request(s);
			if (ret <= 0)
				goto end;
			S3I(s)->hs.state = SSL3_ST_SW_FLUSH;
			S3I(s)->hs.next_state = SSL3_ST_SR_CLNT_HELLO_A;

			/* HelloVerifyRequest resets Finished MAC. */
			if (!tls1_init_finished_mac(s)) {
				ret = -1;
				goto end;
			}
			break;

		case SSL3_ST_SW_SRVR_HELLO_A:
		case SSL3_ST_SW_SRVR_HELLO_B:
			if (SSL_IS_DTLS(s)) {
				s->internal->renegotiate = 2;
				dtls1_start_timer(s);
			}
			ret = ssl3_send_server_hello(s);
			if (ret <= 0)
				goto end;
			if (s->internal->hit) {
				if (s->internal->tlsext_ticket_expected)
					S3I(s)->hs.state = SSL3_ST_SW_SESSION_TICKET_A;
				else
					S3I(s)->hs.state = SSL3_ST_SW_CHANGE_A;

			} else {
				S3I(s)->hs.state = SSL3_ST_SW_CERT_A;
			}
			s->internal->init_num = 0;
			break;

		case SSL3_ST_SW_CERT_A:
		case SSL3_ST_SW_CERT_B:
			/* Check if it is anon DH or anon ECDH. */
			if (!(S3I(s)->hs.new_cipher->algorithm_auth &
			    SSL_aNULL)) {
				if (SSL_IS_DTLS(s))
					dtls1_start_timer(s);
				ret = ssl3_send_server_certificate(s);
				if (ret <= 0)
					goto end;
				if (s->internal->tlsext_status_expected)
					S3I(s)->hs.state = SSL3_ST_SW_CERT_STATUS_A;
				else
					S3I(s)->hs.state = SSL3_ST_SW_KEY_EXCH_A;
349
350
351
352
353
354
355


356
357
358
359
360
361
362
			 *
			 * For ECC ciphersuites, we send a ServerKeyExchange
			 * message only if the cipher suite is ECDHE. In other
			 * cases, the server certificate contains the server's
			 * public key for key exchange.
			 */
			if (alg_k & (SSL_kDHE|SSL_kECDHE)) {


				ret = ssl3_send_server_key_exchange(s);
				if (ret <= 0)
					goto end;
			} else
				skip = 1;

			S3I(s)->hs.state = SSL3_ST_SW_CERT_REQ_A;







>
>







428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
			 *
			 * For ECC ciphersuites, we send a ServerKeyExchange
			 * message only if the cipher suite is ECDHE. In other
			 * cases, the server certificate contains the server's
			 * public key for key exchange.
			 */
			if (alg_k & (SSL_kDHE|SSL_kECDHE)) {
				if (SSL_IS_DTLS(s))
					dtls1_start_timer(s);
				ret = ssl3_send_server_key_exchange(s);
				if (ret <= 0)
					goto end;
			} else
				skip = 1;

			S3I(s)->hs.state = SSL3_ST_SW_CERT_REQ_A;
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402


403
404
405
406
407
408
409
410
411
412


413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435







436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459






460
461
462
463
464
465
466
			 */
			if (!(s->verify_mode & SSL_VERIFY_PEER) ||
			    ((s->session->peer != NULL) &&
			     (s->verify_mode & SSL_VERIFY_CLIENT_ONCE)) ||
			    ((S3I(s)->hs.new_cipher->algorithm_auth &
			     SSL_aNULL) && !(s->verify_mode &
			     SSL_VERIFY_FAIL_IF_NO_PEER_CERT))) {
				/* No cert request */
				skip = 1;
				S3I(s)->tmp.cert_request = 0;
				S3I(s)->hs.state = SSL3_ST_SW_SRVR_DONE_A;
				if (S3I(s)->handshake_buffer) {
					if (!tls1_digest_cached_records(s)) {
						ret = -1;
						goto end;
					}
				}
			} else {
				S3I(s)->tmp.cert_request = 1;


				ret = ssl3_send_certificate_request(s);
				if (ret <= 0)
					goto end;
				S3I(s)->hs.state = SSL3_ST_SW_SRVR_DONE_A;
				s->internal->init_num = 0;
			}
			break;

		case SSL3_ST_SW_SRVR_DONE_A:
		case SSL3_ST_SW_SRVR_DONE_B:


			ret = ssl3_send_server_done(s);
			if (ret <= 0)
				goto end;
			S3I(s)->hs.next_state = SSL3_ST_SR_CERT_A;
			S3I(s)->hs.state = SSL3_ST_SW_FLUSH;
			s->internal->init_num = 0;
			break;

		case SSL3_ST_SW_FLUSH:

			/*
			 * This code originally checked to see if
			 * any data was pending using BIO_CTRL_INFO
			 * and then flushed. This caused problems
			 * as documented in PR#1939. The proposed
			 * fix doesn't completely resolve this issue
			 * as buggy implementations of BIO_CTRL_PENDING
			 * still exist. So instead we just flush
			 * unconditionally.
			 */

			s->internal->rwstate = SSL_WRITING;
			if (BIO_flush(s->wbio) <= 0) {







				ret = -1;
				goto end;
			}
			s->internal->rwstate = SSL_NOTHING;

			S3I(s)->hs.state = S3I(s)->hs.next_state;
			break;

		case SSL3_ST_SR_CERT_A:
		case SSL3_ST_SR_CERT_B:
			if (S3I(s)->tmp.cert_request) {
				ret = ssl3_get_client_certificate(s);
				if (ret <= 0)
					goto end;
			}
			s->internal->init_num = 0;
			S3I(s)->hs.state = SSL3_ST_SR_KEY_EXCH_A;
			break;

		case SSL3_ST_SR_KEY_EXCH_A:
		case SSL3_ST_SR_KEY_EXCH_B:
			ret = ssl3_get_client_key_exchange(s);
			if (ret <= 0)
				goto end;






			alg_k = S3I(s)->hs.new_cipher->algorithm_mkey;
			if (ret == 2) {
				/*
				 * For the ECDH ciphersuites when
				 * the client sends its ECDH pub key in
				 * a certificate, the CertificateVerify
				 * message is not sent.







|



|







>
>










>
>









<










<


>
>
>
>
>
>
>




<



















>
>
>
>
>
>







465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506

507
508
509
510
511
512
513
514
515
516

517
518
519
520
521
522
523
524
525
526
527
528
529

530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
			 */
			if (!(s->verify_mode & SSL_VERIFY_PEER) ||
			    ((s->session->peer != NULL) &&
			     (s->verify_mode & SSL_VERIFY_CLIENT_ONCE)) ||
			    ((S3I(s)->hs.new_cipher->algorithm_auth &
			     SSL_aNULL) && !(s->verify_mode &
			     SSL_VERIFY_FAIL_IF_NO_PEER_CERT))) {
				/* No cert request. */
				skip = 1;
				S3I(s)->tmp.cert_request = 0;
				S3I(s)->hs.state = SSL3_ST_SW_SRVR_DONE_A;
				if (!SSL_IS_DTLS(s) && S3I(s)->handshake_buffer) {
					if (!tls1_digest_cached_records(s)) {
						ret = -1;
						goto end;
					}
				}
			} else {
				S3I(s)->tmp.cert_request = 1;
				if (SSL_IS_DTLS(s))
					dtls1_start_timer(s);
				ret = ssl3_send_certificate_request(s);
				if (ret <= 0)
					goto end;
				S3I(s)->hs.state = SSL3_ST_SW_SRVR_DONE_A;
				s->internal->init_num = 0;
			}
			break;

		case SSL3_ST_SW_SRVR_DONE_A:
		case SSL3_ST_SW_SRVR_DONE_B:
			if (SSL_IS_DTLS(s))
				dtls1_start_timer(s);
			ret = ssl3_send_server_done(s);
			if (ret <= 0)
				goto end;
			S3I(s)->hs.next_state = SSL3_ST_SR_CERT_A;
			S3I(s)->hs.state = SSL3_ST_SW_FLUSH;
			s->internal->init_num = 0;
			break;

		case SSL3_ST_SW_FLUSH:

			/*
			 * This code originally checked to see if
			 * any data was pending using BIO_CTRL_INFO
			 * and then flushed. This caused problems
			 * as documented in PR#1939. The proposed
			 * fix doesn't completely resolve this issue
			 * as buggy implementations of BIO_CTRL_PENDING
			 * still exist. So instead we just flush
			 * unconditionally.
			 */

			s->internal->rwstate = SSL_WRITING;
			if (BIO_flush(s->wbio) <= 0) {
				if (SSL_IS_DTLS(s)) {
					/* If the write error was fatal, stop trying. */
					if (!BIO_should_retry(s->wbio)) {
						s->internal->rwstate = SSL_NOTHING;
						S3I(s)->hs.state = S3I(s)->hs.next_state;
					}
				}
				ret = -1;
				goto end;
			}
			s->internal->rwstate = SSL_NOTHING;

			S3I(s)->hs.state = S3I(s)->hs.next_state;
			break;

		case SSL3_ST_SR_CERT_A:
		case SSL3_ST_SR_CERT_B:
			if (S3I(s)->tmp.cert_request) {
				ret = ssl3_get_client_certificate(s);
				if (ret <= 0)
					goto end;
			}
			s->internal->init_num = 0;
			S3I(s)->hs.state = SSL3_ST_SR_KEY_EXCH_A;
			break;

		case SSL3_ST_SR_KEY_EXCH_A:
		case SSL3_ST_SR_KEY_EXCH_B:
			ret = ssl3_get_client_key_exchange(s);
			if (ret <= 0)
				goto end;

			if (SSL_IS_DTLS(s)) {
				S3I(s)->hs.state = SSL3_ST_SR_CERT_VRFY_A;
				s->internal->init_num = 0;
			}

			alg_k = S3I(s)->hs.new_cipher->algorithm_mkey;
			if (ret == 2) {
				/*
				 * For the ECDH ciphersuites when
				 * the client sends its ECDH pub key in
				 * a certificate, the CertificateVerify
				 * message is not sent.
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517



518
519
520
521
522
523
524
525
526
527
528
529
530



531
532
533
534
535


536
537
538
539
540
541
542
						goto end;
					}
				}
				if (!tls1_handshake_hash_value(s,
				    S3I(s)->tmp.cert_verify_md,
				    sizeof(S3I(s)->tmp.cert_verify_md),
				    NULL)) {
				        ret = -1;
					goto end;
				}
			}
			break;

		case SSL3_ST_SR_CERT_VRFY_A:
		case SSL3_ST_SR_CERT_VRFY_B:



			s->s3->flags |= SSL3_FLAGS_CCS_OK;

			/* we should decide if we expected this one */
			ret = ssl3_get_cert_verify(s);
			if (ret <= 0)
				goto end;

			S3I(s)->hs.state = SSL3_ST_SR_FINISHED_A;
			s->internal->init_num = 0;
			break;

		case SSL3_ST_SR_FINISHED_A:
		case SSL3_ST_SR_FINISHED_B:



			s->s3->flags |= SSL3_FLAGS_CCS_OK;
			ret = ssl3_get_finished(s, SSL3_ST_SR_FINISHED_A,
			    SSL3_ST_SR_FINISHED_B);
			if (ret <= 0)
				goto end;


			if (s->internal->hit)
				S3I(s)->hs.state = SSL_ST_OK;
			else if (s->internal->tlsext_ticket_expected)
				S3I(s)->hs.state = SSL3_ST_SW_SESSION_TICKET_A;
			else
				S3I(s)->hs.state = SSL3_ST_SW_CHANGE_A;
			s->internal->init_num = 0;







|







>
>
>
|





<






>
>
>
|




>
>







598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621

622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
						goto end;
					}
				}
				if (!tls1_handshake_hash_value(s,
				    S3I(s)->tmp.cert_verify_md,
				    sizeof(S3I(s)->tmp.cert_verify_md),
				    NULL)) {
					ret = -1;
					goto end;
				}
			}
			break;

		case SSL3_ST_SR_CERT_VRFY_A:
		case SSL3_ST_SR_CERT_VRFY_B:
			if (SSL_IS_DTLS(s))
				D1I(s)->change_cipher_spec_ok = 1;
			else
				s->s3->flags |= SSL3_FLAGS_CCS_OK;

			/* we should decide if we expected this one */
			ret = ssl3_get_cert_verify(s);
			if (ret <= 0)
				goto end;

			S3I(s)->hs.state = SSL3_ST_SR_FINISHED_A;
			s->internal->init_num = 0;
			break;

		case SSL3_ST_SR_FINISHED_A:
		case SSL3_ST_SR_FINISHED_B:
			if (SSL_IS_DTLS(s))
				D1I(s)->change_cipher_spec_ok = 1;
			else
				s->s3->flags |= SSL3_FLAGS_CCS_OK;
			ret = ssl3_get_finished(s, SSL3_ST_SR_FINISHED_A,
			    SSL3_ST_SR_FINISHED_B);
			if (ret <= 0)
				goto end;
			if (SSL_IS_DTLS(s))
				dtls1_stop_timer(s);
			if (s->internal->hit)
				S3I(s)->hs.state = SSL_ST_OK;
			else if (s->internal->tlsext_ticket_expected)
				S3I(s)->hs.state = SSL3_ST_SW_SESSION_TICKET_A;
			else
				S3I(s)->hs.state = SSL3_ST_SW_CHANGE_A;
			s->internal->init_num = 0;
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586


587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608

609
610

611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632








633
634
635
636
637
638
639
			ret = ssl3_send_cert_status(s);
			if (ret <= 0)
				goto end;
			S3I(s)->hs.state = SSL3_ST_SW_KEY_EXCH_A;
			s->internal->init_num = 0;
			break;


		case SSL3_ST_SW_CHANGE_A:
		case SSL3_ST_SW_CHANGE_B:

			s->session->cipher = S3I(s)->hs.new_cipher;
			if (!tls1_setup_key_block(s)) {
				ret = -1;
				goto end;
			}

			ret = ssl3_send_change_cipher_spec(s,
			    SSL3_ST_SW_CHANGE_A, SSL3_ST_SW_CHANGE_B);

			if (ret <= 0)
				goto end;
			S3I(s)->hs.state = SSL3_ST_SW_FINISHED_A;
			s->internal->init_num = 0;

			if (!tls1_change_cipher_state(
			    s, SSL3_CHANGE_CIPHER_SERVER_WRITE)) {
				ret = -1;
				goto end;
			}



			break;

		case SSL3_ST_SW_FINISHED_A:
		case SSL3_ST_SW_FINISHED_B:
			ret = ssl3_send_finished(s,
			SSL3_ST_SW_FINISHED_A, SSL3_ST_SW_FINISHED_B,
			TLS_MD_SERVER_FINISH_CONST,
			TLS_MD_SERVER_FINISH_CONST_SIZE);
			if (ret <= 0)
				goto end;
			S3I(s)->hs.state = SSL3_ST_SW_FLUSH;
			if (s->internal->hit)
				S3I(s)->hs.next_state = SSL3_ST_SR_FINISHED_A;
			else
				S3I(s)->hs.next_state = SSL_ST_OK;
			s->internal->init_num = 0;
			break;

		case SSL_ST_OK:
			/* clean a few things up */
			tls1_cleanup_key_block(s);


			BUF_MEM_free(s->internal->init_buf);
			s->internal->init_buf = NULL;


			/* remove buffering on output */
			ssl_free_wbio_buffer(s);

			s->internal->init_num = 0;

			/* skipped if we just sent a HelloRequest */
			if (s->internal->renegotiate == 2) {
				s->internal->renegotiate = 0;
				s->internal->new_session = 0;

				ssl_update_cache(s, SSL_SESS_CACHE_SERVER);

				s->ctx->internal->stats.sess_accept_good++;
				/* s->server=1; */
				s->internal->handshake_func = ssl3_accept;

				if (cb != NULL)
					cb(s, SSL_CB_HANDSHAKE_DONE, 1);
			}

			ret = 1;








			goto end;
			/* break; */

		default:
			SSLerror(s, SSL_R_UNKNOWN_STATE);
			ret = -1;
			goto end;







<


<








<





|
|




>
>





|
|
|














>
|
|
>






|















>
>
>
>
>
>
>
>







658
659
660
661
662
663
664

665
666

667
668
669
670
671
672
673
674

675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
			ret = ssl3_send_cert_status(s);
			if (ret <= 0)
				goto end;
			S3I(s)->hs.state = SSL3_ST_SW_KEY_EXCH_A;
			s->internal->init_num = 0;
			break;


		case SSL3_ST_SW_CHANGE_A:
		case SSL3_ST_SW_CHANGE_B:

			s->session->cipher = S3I(s)->hs.new_cipher;
			if (!tls1_setup_key_block(s)) {
				ret = -1;
				goto end;
			}

			ret = ssl3_send_change_cipher_spec(s,
			    SSL3_ST_SW_CHANGE_A, SSL3_ST_SW_CHANGE_B);

			if (ret <= 0)
				goto end;
			S3I(s)->hs.state = SSL3_ST_SW_FINISHED_A;
			s->internal->init_num = 0;

			if (!tls1_change_cipher_state(s,
			    SSL3_CHANGE_CIPHER_SERVER_WRITE)) {
				ret = -1;
				goto end;
			}

			if (SSL_IS_DTLS(s))
				dtls1_reset_seq_numbers(s, SSL3_CC_WRITE);
			break;

		case SSL3_ST_SW_FINISHED_A:
		case SSL3_ST_SW_FINISHED_B:
			ret = ssl3_send_finished(s,
			    SSL3_ST_SW_FINISHED_A, SSL3_ST_SW_FINISHED_B,
			    TLS_MD_SERVER_FINISH_CONST,
			    TLS_MD_SERVER_FINISH_CONST_SIZE);
			if (ret <= 0)
				goto end;
			S3I(s)->hs.state = SSL3_ST_SW_FLUSH;
			if (s->internal->hit)
				S3I(s)->hs.next_state = SSL3_ST_SR_FINISHED_A;
			else
				S3I(s)->hs.next_state = SSL_ST_OK;
			s->internal->init_num = 0;
			break;

		case SSL_ST_OK:
			/* clean a few things up */
			tls1_cleanup_key_block(s);

			if (!SSL_IS_DTLS(s)) {
				BUF_MEM_free(s->internal->init_buf);
				s->internal->init_buf = NULL;
			}

			/* remove buffering on output */
			ssl_free_wbio_buffer(s);

			s->internal->init_num = 0;

			/* Skipped if we just sent a HelloRequest. */
			if (s->internal->renegotiate == 2) {
				s->internal->renegotiate = 0;
				s->internal->new_session = 0;

				ssl_update_cache(s, SSL_SESS_CACHE_SERVER);

				s->ctx->internal->stats.sess_accept_good++;
				/* s->server=1; */
				s->internal->handshake_func = ssl3_accept;

				if (cb != NULL)
					cb(s, SSL_CB_HANDSHAKE_DONE, 1);
			}

			ret = 1;

			if (SSL_IS_DTLS(s)) {
				/* Done handshaking, next message is client hello. */
				D1I(s)->handshake_read_seq = 0;
				/* Next message is server hello. */
				D1I(s)->handshake_write_seq = 0;
				D1I(s)->next_handshake_write_seq = 0;
			}
			goto end;
			/* break; */

		default:
			SSLerror(s, SSL_R_UNKNOWN_STATE);
			ret = -1;
			goto end;
654
655
656
657
658
659
660
661
662
663
664

665
666
667
668
669
670
671
				S3I(s)->hs.state = new_state;
			}
		}
		skip = 0;
	}
end:
	/* BIO_flush(s->wbio); */

	s->internal->in_handshake--;
	if (cb != NULL)
		cb(s, SSL_CB_ACCEPT_EXIT, ret);

	return (ret);
}

int
ssl3_send_hello_request(SSL *s)
{
	CBB cbb, hello;







<



>







765
766
767
768
769
770
771

772
773
774
775
776
777
778
779
780
781
782
				S3I(s)->hs.state = new_state;
			}
		}
		skip = 0;
	}
end:
	/* BIO_flush(s->wbio); */

	s->internal->in_handshake--;
	if (cb != NULL)
		cb(s, SSL_CB_ACCEPT_EXIT, ret);

	return (ret);
}

int
ssl3_send_hello_request(SSL *s)
{
	CBB cbb, hello;
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
	CBS compression_methods;
	uint16_t client_version;
	uint8_t comp_method;
	int comp_null;
	int i, j, ok, al, ret = -1, cookie_valid = 0;
	long n;
	unsigned long id;
	unsigned char *p, *d;
	SSL_CIPHER *c;
	STACK_OF(SSL_CIPHER) *ciphers = NULL;
	unsigned long alg_k;
	const SSL_METHOD *method;
	uint16_t shared_version;
	unsigned char *end;








<







809
810
811
812
813
814
815

816
817
818
819
820
821
822
	CBS compression_methods;
	uint16_t client_version;
	uint8_t comp_method;
	int comp_null;
	int i, j, ok, al, ret = -1, cookie_valid = 0;
	long n;
	unsigned long id;

	SSL_CIPHER *c;
	STACK_OF(SSL_CIPHER) *ciphers = NULL;
	unsigned long alg_k;
	const SSL_METHOD *method;
	uint16_t shared_version;
	unsigned char *end;

728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
	if (!ok)
		return ((int)n);
	s->internal->first_packet = 0;

	if (n < 0)
		goto err;

	d = p = (unsigned char *)s->internal->init_msg;
	end = d + n;

	CBS_init(&cbs, s->internal->init_msg, n);

	/*
	 * Use version from inside client hello, not from record header.
	 * (may differ: see RFC 2246, Appendix E, second paragraph)
	 */







|
<







838
839
840
841
842
843
844
845

846
847
848
849
850
851
852
	if (!ok)
		return ((int)n);
	s->internal->first_packet = 0;

	if (n < 0)
		goto err;

	end = (unsigned char *)s->internal->init_msg + n;


	CBS_init(&cbs, s->internal->init_msg, n);

	/*
	 * Use version from inside client hello, not from record header.
	 * (may differ: see RFC 2246, Appendix E, second paragraph)
	 */
879
880
881
882
883
884
885
886
887
888
889
890

891
892
893
894
895
896
897
		al = SSL_AD_ILLEGAL_PARAMETER;
		SSLerror(s, SSL_R_NO_CIPHERS_SPECIFIED);
		goto f_err;
	}

	if (CBS_len(&cipher_suites) > 0) {
		if ((ciphers = ssl_bytes_to_cipher_list(s,
		    CBS_data(&cipher_suites), CBS_len(&cipher_suites))) == NULL)
			goto err;
	}

	/* If it is a hit, check that the cipher is in the list */

	if (s->internal->hit && CBS_len(&cipher_suites) > 0) {
		j = 0;
		id = s->session->cipher->id;

		for (i = 0; i < sk_SSL_CIPHER_num(ciphers); i++) {
			c = sk_SSL_CIPHER_value(ciphers, i);
			if (c->id == id) {







|




>







988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
		al = SSL_AD_ILLEGAL_PARAMETER;
		SSLerror(s, SSL_R_NO_CIPHERS_SPECIFIED);
		goto f_err;
	}

	if (CBS_len(&cipher_suites) > 0) {
		if ((ciphers = ssl_bytes_to_cipher_list(s,
		    &cipher_suites)) == NULL)
			goto err;
	}

	/* If it is a hit, check that the cipher is in the list */
	/* XXX - CBS_len(&cipher_suites) will always be zero here... */
	if (s->internal->hit && CBS_len(&cipher_suites) > 0) {
		j = 0;
		id = s->session->cipher->id;

		for (i = 0; i < sk_SSL_CIPHER_num(ciphers); i++) {
			c = sk_SSL_CIPHER_value(ciphers, i);
			if (c->id == id) {
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936







937
938
939
940
941
942
943
	}
	if (comp_null == 0) {
		al = SSL_AD_DECODE_ERROR;
		SSLerror(s, SSL_R_NO_COMPRESSION_SPECIFIED);
		goto f_err;
	}

	p = (unsigned char *)CBS_data(&cbs);

	/* TLS extensions*/
	if (!ssl_parse_clienthello_tlsext(s, &p, d, n, &al)) {
		/* 'al' set by ssl_parse_clienthello_tlsext */
		SSLerror(s, SSL_R_PARSE_TLSEXT);
		goto f_err;
	}







	if (ssl_check_clienthello_tlsext_early(s) <= 0) {
		SSLerror(s, SSL_R_CLIENTHELLO_TLSEXT);
		goto err;
	}

	/*
	 * Check if we want to use external pre-shared secret for this







<
|
<
<
<



>
>
>
>
>
>
>







1032
1033
1034
1035
1036
1037
1038

1039



1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
	}
	if (comp_null == 0) {
		al = SSL_AD_DECODE_ERROR;
		SSLerror(s, SSL_R_NO_COMPRESSION_SPECIFIED);
		goto f_err;
	}


	if (!tlsext_clienthello_parse(s, &cbs, &al)) {



		SSLerror(s, SSL_R_PARSE_TLSEXT);
		goto f_err;
	}

	if (!S3I(s)->renegotiate_seen && s->internal->renegotiate) {
		al = SSL_AD_HANDSHAKE_FAILURE;
		SSLerror(s, SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED);
		goto f_err;
	}

	if (ssl_check_clienthello_tlsext_early(s) <= 0) {
		SSLerror(s, SSL_R_CLIENTHELLO_TLSEXT);
		goto err;
	}

	/*
	 * Check if we want to use external pre-shared secret for this
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084

	return (ret);
}

int
ssl3_send_server_hello(SSL *s)
{
	unsigned char *bufend;
	unsigned char *p, *d;
	CBB cbb, session_id;
	size_t outlen;
	int sl;

	memset(&cbb, 0, sizeof(cbb));

	bufend = (unsigned char *)s->internal->init_buf->data + SSL3_RT_MAX_PLAIN_LENGTH;

	if (S3I(s)->hs.state == SSL3_ST_SW_SRVR_HELLO_A) {
		d = p = ssl3_handshake_msg_start(s, SSL3_MT_SERVER_HELLO);

		if (!CBB_init_fixed(&cbb, p, bufend - p))
			goto err;

		if (!CBB_add_u16(&cbb, s->version))
			goto err;
		if (!CBB_add_bytes(&cbb, s->s3->server_random,
		    sizeof(s->s3->server_random)))
			goto err;

		/*
		 * There are several cases for the session ID to send
		 * back in the server hello:
		 *







<
<
|
|
<



<
<

|
|
<


|

|







1165
1166
1167
1168
1169
1170
1171


1172
1173

1174
1175
1176


1177
1178
1179

1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191

	return (ret);
}

int
ssl3_send_server_hello(SSL *s)
{


	CBB cbb, server_hello, session_id;
	size_t sl;


	memset(&cbb, 0, sizeof(cbb));



	if (S3I(s)->hs.state == SSL3_ST_SW_SRVR_HELLO_A) {
		if (!ssl3_handshake_msg_start_cbb(s, &cbb, &server_hello,
		    SSL3_MT_SERVER_HELLO))

			goto err;

		if (!CBB_add_u16(&server_hello, s->version))
			goto err;
		if (!CBB_add_bytes(&server_hello, s->s3->server_random,
		    sizeof(s->s3->server_random)))
			goto err;

		/*
		 * There are several cases for the session ID to send
		 * back in the server hello:
		 *
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132

1133
1134
1135
1136
1137
1138
1139
		 * to send back.
		 */
		if (!(s->ctx->internal->session_cache_mode & SSL_SESS_CACHE_SERVER)
		    && !s->internal->hit)
			s->session->session_id_length = 0;

		sl = s->session->session_id_length;
		if (sl > (int)sizeof(s->session->session_id)) {
			SSLerror(s, ERR_R_INTERNAL_ERROR);
			goto err;
		}

		if (!CBB_add_u8_length_prefixed(&cbb, &session_id))
			goto err;
		if (!CBB_add_bytes(&session_id, s->session->session_id, sl))
			goto err;

		/* Cipher suite. */
		if (!CBB_add_u16(&cbb,
		    ssl3_cipher_get_value(S3I(s)->hs.new_cipher)))
			goto err;

		/* Compression method. */
		if (!CBB_add_u8(&cbb, 0))
			goto err;

		if (!CBB_finish(&cbb, NULL, &outlen))
			goto err;

		if ((p = ssl_add_serverhello_tlsext(s, p + outlen,
		    bufend)) == NULL) {
			SSLerror(s, ERR_R_INTERNAL_ERROR);
			goto err;
		}

		ssl3_handshake_msg_finish(s, p - d);

	}

	/* SSL3_ST_SW_SRVR_HELLO_B */
	return (ssl3_handshake_write(s));

 err:
	CBB_cleanup(&cbb);







|



<
|





|



|
|


<
<
|
|
<




|
>







1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214

1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228


1229
1230

1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
		 * to send back.
		 */
		if (!(s->ctx->internal->session_cache_mode & SSL_SESS_CACHE_SERVER)
		    && !s->internal->hit)
			s->session->session_id_length = 0;

		sl = s->session->session_id_length;
		if (sl > sizeof(s->session->session_id)) {
			SSLerror(s, ERR_R_INTERNAL_ERROR);
			goto err;
		}

		if (!CBB_add_u8_length_prefixed(&server_hello, &session_id))
			goto err;
		if (!CBB_add_bytes(&session_id, s->session->session_id, sl))
			goto err;

		/* Cipher suite. */
		if (!CBB_add_u16(&server_hello,
		    ssl3_cipher_get_value(S3I(s)->hs.new_cipher)))
			goto err;

		/* Compression method (null). */
		if (!CBB_add_u8(&server_hello, 0))
			goto err;



		/* TLS extensions */
		if (!tlsext_serverhello_build(s, &server_hello)) {

			SSLerror(s, ERR_R_INTERNAL_ERROR);
			goto err;
		}

		if (!ssl3_handshake_msg_finish_cbb(s, &cbb))
			goto err;
	}

	/* SSL3_ST_SW_SRVR_HELLO_B */
	return (ssl3_handshake_write(s));

 err:
	CBB_cleanup(&cbb);
Changes to jni/libressl/ssl/ssl_tlsext.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: ssl_tlsext.c,v 1.17.4.1 2017/12/09 13:43:25 jsing Exp $ */
/*
 * Copyright (c) 2016, 2017 Joel Sing <jsing@openbsd.org>
 * Copyright (c) 2017 Doug Hogan <doug@openbsd.org>
 * Copyright (c) 2017 Bob Beck <beck@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
|







1
2
3
4
5
6
7
8
/* $OpenBSD: ssl_tlsext.c,v 1.21 2018/02/08 11:30:30 jsing Exp $ */
/*
 * Copyright (c) 2016, 2017 Joel Sing <jsing@openbsd.org>
 * Copyright (c) 2017 Doug Hogan <doug@openbsd.org>
 * Copyright (c) 2017 Bob Beck <beck@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
267
268
269
270
271
272
273
274
275
276

277
278
279
280
281
282
283
284
285

int
tlsext_ec_serverhello_parse(SSL *s, CBS *cbs, int *alert)
{
	/*
	 * Servers should not send this extension per the RFC.
	 *
	 * However, F5 sends it by mistake (case ID 492780) so we need to skip
	 * over it.  This bug is from at least 2014 but as of 2017, there
	 * are still large sites with this bug in production.

	 *
	 * https://devcentral.f5.com/questions/disable-supported-elliptic-curves-extension-from-server
	 */
	if (!CBS_skip(cbs, CBS_len(cbs))) {
		*alert = TLS1_AD_INTERNAL_ERROR;
		return 0;
	}

	return 1;







|
|
|
>

|







267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286

int
tlsext_ec_serverhello_parse(SSL *s, CBS *cbs, int *alert)
{
	/*
	 * Servers should not send this extension per the RFC.
	 *
	 * However, certain F5 BIG-IP systems incorrectly send it. This bug is
	 * from at least 2014 but as of 2017, there are still large sites with
	 * this unpatched in production. As a result, we need to currently skip
	 * over the extension and ignore its content:
	 *
	 *  https://support.f5.com/csp/article/K37345003
	 */
	if (!CBS_skip(cbs, CBS_len(cbs))) {
		*alert = TLS1_AD_INTERNAL_ERROR;
		return 0;
	}

	return 1;
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331

1332

1333
1334

1335
1336

1337

1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349


1350
1351

1352

1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375


1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393

1394


1395
1396



1397

1398


1399





1400








1401
1402


1403

1404



1405

1406
1407
1408
1409
1410
1411










1412



1413
































1414
		.serverhello_parse = tlsext_srtp_serverhello_parse,
	}
#endif /* OPENSSL_NO_SRTP */
};

#define N_TLS_EXTENSIONS (sizeof(tls_extensions) / sizeof(*tls_extensions))

int
tlsext_clienthello_build(SSL *s, CBB *cbb)
{
	CBB extensions, extension_data;
	struct tls_extension *tlsext;
	int extensions_present = 0;
	size_t i;

	if (!CBB_add_u16_length_prefixed(cbb, &extensions))
		return 0;

	for (i = 0; i < N_TLS_EXTENSIONS; i++) {
		tlsext = &tls_extensions[i];

		if (!tlsext->clienthello_needs(s))
			continue;

		if (!CBB_add_u16(&extensions, tlsext->type))
			return 0;
		if (!CBB_add_u16_length_prefixed(&extensions, &extension_data))
			return 0;
		if (!tls_extensions[i].clienthello_build(s, &extension_data))
			return 0;

		extensions_present = 1;
	}

	if (!extensions_present)
		CBB_discard_child(cbb);

	if (!CBB_flush(cbb))
		return 0;

	return 1;
}

int
tlsext_clienthello_parse_one(SSL *s, CBS *cbs, uint16_t type, int *alert)

{

	struct tls_extension *tlsext;
	size_t i;


	for (i = 0; i < N_TLS_EXTENSIONS; i++) {

		tlsext = &tls_extensions[i];


		if (tlsext->type != type)
			continue;
		if (!tlsext->clienthello_parse(s, cbs, alert))
			return 0;
		if (CBS_len(cbs) != 0) {
			*alert = SSL_AD_DECODE_ERROR;
			return 0;
		}

		return 1;
	}



	/* Not found. */

	return 2;

}

int
tlsext_serverhello_build(SSL *s, CBB *cbb)
{
	CBB extensions, extension_data;
	struct tls_extension *tlsext;
	int extensions_present = 0;
	size_t i;

	if (!CBB_add_u16_length_prefixed(cbb, &extensions))
		return 0;

	for (i = 0; i < N_TLS_EXTENSIONS; i++) {
		tlsext = &tls_extensions[i];

		if (!tlsext->serverhello_needs(s))
			continue;

		if (!CBB_add_u16(&extensions, tlsext->type))
			return 0;
		if (!CBB_add_u16_length_prefixed(&extensions, &extension_data))
			return 0;


		if (!tlsext->serverhello_build(s, &extension_data))
			return 0;

		extensions_present = 1;
	}

	if (!extensions_present)
		CBB_discard_child(cbb);

	if (!CBB_flush(cbb))
		return 0;

	return 1;
}

int
tlsext_serverhello_parse_one(SSL *s, CBS *cbs, uint16_t type, int *alert)
{

	struct tls_extension *tlsext;


	size_t i;




	for (i = 0; i < N_TLS_EXTENSIONS; i++) {

		tlsext = &tls_extensions[i];








		if (tlsext->type != type)








			continue;
		if (!tlsext->serverhello_parse(s, cbs, alert))


			return 0;

		if (CBS_len(cbs) != 0) {



			*alert = SSL_AD_DECODE_ERROR;

			return 0;
		}

		return 1;
	}











	/* Not found. */



	return 2;
































}







|
|
|
<
|
|
<
|
<
|


|
|
<
<
<
<
|
<
<
<
<
|
<


<
<
<
<
|
|
<
|
<
|
<
>

>
|
<
>
|
|
>
|
>
|
|
<
<
|
<
<
|
|

|
<
>
>
|
<
>
|
>


|
|












|






>
>
|














|
|

>

>
>
|

>
>
>
|
>
|
>
>

>
>
>
>
>
|
>
>
>
>
>
>
>
>

|
>
>

>
|
>
>
>
|
>

|

|
|

>
>
>
>
>
>
>
>
>
>
|
>
>
>
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

1288
1289
1290
1291
1292
1293
1294
1295
1296
1297

1298
1299

1300

1301
1302
1303
1304
1305




1306




1307

1308
1309




1310
1311

1312

1313

1314
1315
1316
1317

1318
1319
1320
1321
1322
1323
1324
1325


1326


1327
1328
1329
1330

1331
1332
1333

1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
		.serverhello_parse = tlsext_srtp_serverhello_parse,
	}
#endif /* OPENSSL_NO_SRTP */
};

#define N_TLS_EXTENSIONS (sizeof(tls_extensions) / sizeof(*tls_extensions))

/* Ensure that extensions fit in a uint32_t bitmask. */
CTASSERT(N_TLS_EXTENSIONS <= (sizeof(uint32_t) * 8));


static struct tls_extension *
tls_extension_find(uint16_t type, size_t *tls_extensions_idx)

{

	size_t i;

	for (i = 0; i < N_TLS_EXTENSIONS; i++) {
		if (tls_extensions[i].type == type) {
			*tls_extensions_idx = i;




			return &tls_extensions[i];




		}

	}





	return NULL;
}



static int

tls_extension_needs(struct tls_extension *tlsext, int is_serverhello, SSL *s)
{
	if (is_serverhello)
		return tlsext->serverhello_needs(s);

	return tlsext->clienthello_needs(s);
}

static int
tls_extension_build(struct tls_extension *tlsext, int is_serverhello, SSL *s,
    CBB *cbb)
{
	if (is_serverhello)


		return tlsext->serverhello_build(s, cbb);


	return tlsext->clienthello_build(s, cbb);
}

static int

tls_extension_parse(struct tls_extension *tlsext, int is_serverhello, SSL *s,
    CBS *cbs, int *alert)
{

	if (is_serverhello)
		return tlsext->serverhello_parse(s, cbs, alert);
	return tlsext->clienthello_parse(s, cbs, alert);
}

static int
tlsext_build(SSL *s, CBB *cbb, int is_serverhello)
{
	CBB extensions, extension_data;
	struct tls_extension *tlsext;
	int extensions_present = 0;
	size_t i;

	if (!CBB_add_u16_length_prefixed(cbb, &extensions))
		return 0;

	for (i = 0; i < N_TLS_EXTENSIONS; i++) {
		tlsext = &tls_extensions[i];

		if (!tls_extension_needs(tlsext, is_serverhello, s))
			continue;

		if (!CBB_add_u16(&extensions, tlsext->type))
			return 0;
		if (!CBB_add_u16_length_prefixed(&extensions, &extension_data))
			return 0;

		if (!tls_extension_build(tlsext, is_serverhello, s,
		    &extension_data))
			return 0;

		extensions_present = 1;
	}

	if (!extensions_present)
		CBB_discard_child(cbb);

	if (!CBB_flush(cbb))
		return 0;

	return 1;
}

static int
tlsext_parse(SSL *s, CBS *cbs, int *alert, int is_serverhello)
{
	CBS extensions, extension_data;
	struct tls_extension *tlsext;
	uint32_t extensions_seen = 0;
	uint16_t type;
	size_t idx;

	/* An empty extensions block is valid. */
	if (CBS_len(cbs) == 0)
		return 1;

	*alert = SSL_AD_DECODE_ERROR;

	if (!CBS_get_u16_length_prefixed(cbs, &extensions))
		return 0;

	while (CBS_len(&extensions) > 0) {
		if (!CBS_get_u16(&extensions, &type))
			return 0;
		if (!CBS_get_u16_length_prefixed(&extensions, &extension_data))
			return 0;

		if (s->internal->tlsext_debug_cb != NULL)
			s->internal->tlsext_debug_cb(s, is_serverhello, type,
			    (unsigned char *)CBS_data(&extension_data),
			    CBS_len(&extension_data),
			    s->internal->tlsext_debug_arg);

		/* Unknown extensions are ignored. */
		if ((tlsext = tls_extension_find(type, &idx)) == NULL)
			continue;

		/* Check for duplicate known extensions. */
		if ((extensions_seen & (1 << idx)) != 0)
			return 0;
		extensions_seen |= (1 << idx);

		if (!tls_extension_parse(tlsext, is_serverhello, s,
		    &extension_data, alert))
			return 0;

		if (CBS_len(&extension_data) != 0)
			return 0;
	}

	return 1;
}

static void
tlsext_clienthello_reset_state(SSL *s)
{
	s->internal->servername_done = 0;
	s->tlsext_status_type = -1;
	S3I(s)->renegotiate_seen = 0;
	free(S3I(s)->alpn_selected);
	S3I(s)->alpn_selected = NULL;
	s->internal->srtp_profile = NULL;
}

int
tlsext_clienthello_build(SSL *s, CBB *cbb)
{
	return tlsext_build(s, cbb, 0);
}

int
tlsext_clienthello_parse(SSL *s, CBS *cbs, int *alert)
{
	/* XXX - this possibly should be done by the caller... */
	tlsext_clienthello_reset_state(s);

	return tlsext_parse(s, cbs, alert, 0);
}

static void
tlsext_serverhello_reset_state(SSL *s)
{
	S3I(s)->renegotiate_seen = 0;   
	free(S3I(s)->alpn_selected);
	S3I(s)->alpn_selected = NULL;
}

int
tlsext_serverhello_build(SSL *s, CBB *cbb)
{
	return tlsext_build(s, cbb, 1);
}

int
tlsext_serverhello_parse(SSL *s, CBS *cbs, int *alert)
{
	/* XXX - this possibly should be done by the caller... */
	tlsext_serverhello_reset_state(s);

	return tlsext_parse(s, cbs, alert, 1);
}
Changes to jni/libressl/ssl/ssl_tlsext.h.
1
2
3
4
5
6
7
8
/* $OpenBSD: ssl_tlsext.h,v 1.10 2017/08/27 02:58:04 doug Exp $ */
/*
 * Copyright (c) 2016, 2017 Joel Sing <jsing@openbsd.org>
 * Copyright (c) 2017 Doug Hogan <doug@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
|







1
2
3
4
5
6
7
8
/* $OpenBSD: ssl_tlsext.h,v 1.12 2018/02/08 11:30:30 jsing Exp $ */
/*
 * Copyright (c) 2016, 2017 Joel Sing <jsing@openbsd.org>
 * Copyright (c) 2017 Doug Hogan <doug@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
78
79
80
81
82
83
84
85
86
87
88
89
90
int tlsext_srtp_clienthello_parse(SSL *s, CBS *cbs, int *alert);
int tlsext_srtp_serverhello_needs(SSL *s);
int tlsext_srtp_serverhello_build(SSL *s, CBB *cbb);
int tlsext_srtp_serverhello_parse(SSL *s, CBS *cbs, int *alert);
#endif

int tlsext_clienthello_build(SSL *s, CBB *cbb);
int tlsext_clienthello_parse_one(SSL *s, CBS *cbs, uint16_t tlsext_type,
    int *alert);

int tlsext_serverhello_build(SSL *s, CBB *cbb);
int tlsext_serverhello_parse_one(SSL *s, CBS *cbs, uint16_t tlsext_type,
    int *alert);







|
<


|
<
78
79
80
81
82
83
84
85

86
87
88

int tlsext_srtp_clienthello_parse(SSL *s, CBS *cbs, int *alert);
int tlsext_srtp_serverhello_needs(SSL *s);
int tlsext_srtp_serverhello_build(SSL *s, CBB *cbb);
int tlsext_srtp_serverhello_parse(SSL *s, CBS *cbs, int *alert);
#endif

int tlsext_clienthello_build(SSL *s, CBB *cbb);
int tlsext_clienthello_parse(SSL *s, CBS *cbs, int *alert);


int tlsext_serverhello_build(SSL *s, CBB *cbb);
int tlsext_serverhello_parse(SSL *s, CBS *cbs, int *alert);

Changes to jni/libressl/ssl/t1_lib.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: t1_lib.c,v 1.137 2017/08/30 16:44:37 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: t1_lib.c,v 1.141 2018/02/08 11:30:30 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
void
tls12_get_req_sig_algs(SSL *s, unsigned char **sigalgs, size_t *sigalgs_len)
{
	*sigalgs = tls12_sigalgs;
	*sigalgs_len = sizeof(tls12_sigalgs);
}

unsigned char *
ssl_add_clienthello_tlsext(SSL *s, unsigned char *p, unsigned char *limit)
{
	size_t len;
	CBB cbb;

	if (p >= limit)
		return NULL;

	if (!CBB_init_fixed(&cbb, p, limit - p))
		return NULL;
	if (!tlsext_clienthello_build(s, &cbb)) {
		CBB_cleanup(&cbb);
		return NULL;
	}
	if (!CBB_finish(&cbb, NULL, &len)) {
		CBB_cleanup(&cbb);
		return NULL;
	}

	return (p + len);
}

unsigned char *
ssl_add_serverhello_tlsext(SSL *s, unsigned char *p, unsigned char *limit)
{
	size_t len;
	CBB cbb;

	if (p >= limit)
		return NULL;

	if (!CBB_init_fixed(&cbb, p, limit - p))
		return NULL;
	if (!tlsext_serverhello_build(s, &cbb)) {
		CBB_cleanup(&cbb);
		return NULL;
	}
	if (!CBB_finish(&cbb, NULL, &len)) {
		CBB_cleanup(&cbb);
		return NULL;
	}

	return (p + len);
}

int
ssl_parse_clienthello_tlsext(SSL *s, unsigned char **p, unsigned char *d,
    int n, int *al)
{
	unsigned short type;
	unsigned short size;
	unsigned short len;
	unsigned char *data = *p;
	unsigned char *end = d + n;
	CBS cbs;

	s->internal->servername_done = 0;
	s->tlsext_status_type = -1;
	S3I(s)->renegotiate_seen = 0;
	free(S3I(s)->alpn_selected);
	S3I(s)->alpn_selected = NULL;
	s->internal->srtp_profile = NULL;

	if (data == end)
		goto ri_check;

	if (end - data < 2)
		goto err;
	n2s(data, len);

	if (end - data != len)
		goto err;

	while (end - data >= 4) {
		n2s(data, type);
		n2s(data, size);

		if (end - data < size)
			goto err;

		if (s->internal->tlsext_debug_cb)
			s->internal->tlsext_debug_cb(s, 0, type, data, size,
			    s->internal->tlsext_debug_arg);

		CBS_init(&cbs, data, size);
		if (!tlsext_clienthello_parse_one(s, &cbs, type, al))
			return 0;

		data += size;
	}

	/* Spurious data on the end */
	if (data != end)
		goto err;

	*p = data;

ri_check:

	/* Need RI if renegotiating */

	if (!S3I(s)->renegotiate_seen && s->internal->renegotiate) {
		*al = SSL_AD_HANDSHAKE_FAILURE;
		SSLerror(s, SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED);
		return 0;
	}

	return 1;

err:
	*al = SSL_AD_DECODE_ERROR;
	return 0;
}

int
ssl_parse_serverhello_tlsext(SSL *s, unsigned char **p, size_t n, int *al)
{
	unsigned short type;
	unsigned short size;
	unsigned short len;
	unsigned char *data = *p;
	unsigned char *end = *p + n;
	CBS cbs;

	S3I(s)->renegotiate_seen = 0;
	free(S3I(s)->alpn_selected);
	S3I(s)->alpn_selected = NULL;

	if (data == end)
		goto ri_check;

	if (end - data < 2)
		goto err;
	n2s(data, len);

	if (end - data != len)
		goto err;

	while (end - data >= 4) {
		n2s(data, type);
		n2s(data, size);

		if (end - data < size)
			goto err;

		if (s->internal->tlsext_debug_cb)
			s->internal->tlsext_debug_cb(s, 1, type, data, size,
			    s->internal->tlsext_debug_arg);

		CBS_init(&cbs, data, size);
		if (!tlsext_serverhello_parse_one(s, &cbs, type, al))
			return 0;

		data += size;

	}

	if (data != end) {
		*al = SSL_AD_DECODE_ERROR;
		return 0;
	}

	*p = data;

ri_check:

	/* Determine if we need to see RI. Strictly speaking if we want to
	 * avoid an attack we should *always* see RI even on initial server
	 * hello because the client doesn't see any renegotiation during an
	 * attack. However this would mean we could not connect to any server
	 * which doesn't support RI so for the immediate future tolerate RI
	 * absence on initial connect only.
	 */
	if (!S3I(s)->renegotiate_seen &&
	    !(s->internal->options & SSL_OP_LEGACY_SERVER_CONNECT)) {
		*al = SSL_AD_HANDSHAKE_FAILURE;
		SSLerror(s, SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED);
		return 0;
	}

	return 1;

err:
	*al = SSL_AD_DECODE_ERROR;
	return 0;
}

int
ssl_check_clienthello_tlsext_early(SSL *s)
{
	int ret = SSL_TLSEXT_ERR_NOACK;
	int al = SSL_AD_UNRECOGNIZED_NAME;

	/* The handling of the ECPointFormats extension is done elsewhere, namely in







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







657
658
659
660
661
662
663




























































































































































































664
665
666
667
668
669
670
void
tls12_get_req_sig_algs(SSL *s, unsigned char **sigalgs, size_t *sigalgs_len)
{
	*sigalgs = tls12_sigalgs;
	*sigalgs_len = sizeof(tls12_sigalgs);
}





























































































































































































int
ssl_check_clienthello_tlsext_early(SSL *s)
{
	int ret = SSL_TLSEXT_ERR_NOACK;
	int al = SSL_AD_UNRECOGNIZED_NAME;

	/* The handling of the ECPointFormats extension is done elsewhere, namely in
Deleted jni/libressl/ssl/t1_reneg.c.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
/* $OpenBSD: t1_reneg.c,v 1.15 2017/02/07 02:08:38 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
 * This library is free for commercial and non-commercial use as long as
 * the following conditions are aheared to.  The following conditions
 * apply to all code found in this distribution, be it the RC4, RSA,
 * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
 * included with this distribution is covered by the same copyright terms
 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
 *
 * Copyright remains Eric Young's, and as such any Copyright notices in
 * the code are not to be removed.
 * If this package is used in a product, Eric Young should be given attribution
 * as the author of the parts of the library used.
 * This can be in the form of a textual message at program startup or
 * in documentation (online or textual) provided with the package.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. All advertising materials mentioning features or use of this software
 *    must display the following acknowledgement:
 *    "This product includes cryptographic software written by
 *     Eric Young (eay@cryptsoft.com)"
 *    The word 'cryptographic' can be left out if the rouines from the library
 *    being used are not cryptographic related :-).
 * 4. If you include any Windows specific code (or a derivative thereof) from
 *    the apps directory (application code) you must include an acknowledgement:
 *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
 *
 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 *
 * The licence and distribution terms for any publically available version or
 * derivative of this code cannot be changed.  i.e. this code cannot simply be
 * copied and put under another distribution licence
 * [including the GNU Public Licence.]
 */
/* ====================================================================
 * Copyright (c) 1998-2009 The OpenSSL Project.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 *
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in
 *    the documentation and/or other materials provided with the
 *    distribution.
 *
 * 3. All advertising materials mentioning features or use of this
 *    software must display the following acknowledgment:
 *    "This product includes software developed by the OpenSSL Project
 *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
 *
 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
 *    endorse or promote products derived from this software without
 *    prior written permission. For written permission, please contact
 *    openssl-core@openssl.org.
 *
 * 5. Products derived from this software may not be called "OpenSSL"
 *    nor may "OpenSSL" appear in their names without prior written
 *    permission of the OpenSSL Project.
 *
 * 6. Redistributions of any form whatsoever must retain the following
 *    acknowledgment:
 *    "This product includes software developed by the OpenSSL Project
 *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
 *
 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 * OF THE POSSIBILITY OF SUCH DAMAGE.
 * ====================================================================
 *
 * This product includes cryptographic software written by Eric Young
 * (eay@cryptsoft.com).  This product includes software written by Tim
 * Hudson (tjh@cryptsoft.com).
 *
 */

#include <stdio.h>

#include <openssl/objects.h>

#include "ssl_locl.h"
#include "bytestring.h"

/* Add the client's renegotiation binding */
int
ssl_add_clienthello_renegotiate_ext(SSL *s, unsigned char *p, int *len,
    int maxlen)
{
	if (p) {
		if ((S3I(s)->previous_client_finished_len + 1) > maxlen) {
			SSLerror(s, SSL_R_RENEGOTIATE_EXT_TOO_LONG);
			return 0;
		}

		/* Length byte */
		*p = S3I(s)->previous_client_finished_len;
		p++;

		memcpy(p, S3I(s)->previous_client_finished,
		    S3I(s)->previous_client_finished_len);

	}

	*len = S3I(s)->previous_client_finished_len + 1;

	return 1;
}

/* Parse the client's renegotiation binding and abort if it's not
   right */
int
ssl_parse_clienthello_renegotiate_ext(SSL *s, const unsigned char *d, int len,
    int *al)
{
	CBS cbs, reneg;

	if (len < 0) {
		SSLerror(s, SSL_R_RENEGOTIATION_ENCODING_ERR);
		*al = SSL_AD_ILLEGAL_PARAMETER;
		return 0;
	}

	CBS_init(&cbs, d, len);
	if (!CBS_get_u8_length_prefixed(&cbs, &reneg) ||
	    /* Consistency check */
	    CBS_len(&cbs) != 0) {
		SSLerror(s, SSL_R_RENEGOTIATION_ENCODING_ERR);
		*al = SSL_AD_ILLEGAL_PARAMETER;
		return 0;
	}

	/* Check that the extension matches */
	if (CBS_len(&reneg) != S3I(s)->previous_client_finished_len) {
		SSLerror(s, SSL_R_RENEGOTIATION_MISMATCH);
		*al = SSL_AD_HANDSHAKE_FAILURE;
		return 0;
	}

	if (!CBS_mem_equal(&reneg, S3I(s)->previous_client_finished,
	    S3I(s)->previous_client_finished_len)) {
		SSLerror(s, SSL_R_RENEGOTIATION_MISMATCH);
		*al = SSL_AD_HANDSHAKE_FAILURE;
		return 0;
	}

	S3I(s)->send_connection_binding = 1;

	return 1;
}

/* Add the server's renegotiation binding */
int
ssl_add_serverhello_renegotiate_ext(SSL *s, unsigned char *p, int *len,
    int maxlen)
{
	if (p) {
		if ((S3I(s)->previous_client_finished_len +
		    S3I(s)->previous_server_finished_len + 1) > maxlen) {
			SSLerror(s, SSL_R_RENEGOTIATE_EXT_TOO_LONG);
			return 0;
		}

		/* Length byte */
		*p = S3I(s)->previous_client_finished_len +
		    S3I(s)->previous_server_finished_len;
		p++;

		memcpy(p, S3I(s)->previous_client_finished,
		    S3I(s)->previous_client_finished_len);
		p += S3I(s)->previous_client_finished_len;

		memcpy(p, S3I(s)->previous_server_finished,
		    S3I(s)->previous_server_finished_len);

	}

	*len = S3I(s)->previous_client_finished_len +
	    S3I(s)->previous_server_finished_len + 1;

	return 1;
}

/* Parse the server's renegotiation binding and abort if it's not
   right */
int
ssl_parse_serverhello_renegotiate_ext(SSL *s, const unsigned char *d, int len, int *al)
{
	CBS cbs, reneg, previous_client, previous_server;
	int expected_len = S3I(s)->previous_client_finished_len +
	    S3I(s)->previous_server_finished_len;

	/* Check for logic errors */
	OPENSSL_assert(!expected_len || S3I(s)->previous_client_finished_len);
	OPENSSL_assert(!expected_len || S3I(s)->previous_server_finished_len);

	if (len < 0) {
		SSLerror(s, SSL_R_RENEGOTIATION_ENCODING_ERR);
		*al = SSL_AD_ILLEGAL_PARAMETER;
		return 0;
	}

	CBS_init(&cbs, d, len);

	if (!CBS_get_u8_length_prefixed(&cbs, &reneg) ||
	    /* Consistency check */
	    CBS_len(&cbs) != 0) {
		SSLerror(s, SSL_R_RENEGOTIATION_ENCODING_ERR);
		*al = SSL_AD_ILLEGAL_PARAMETER;
		return 0;
	}

	/* Check that the extension matches */
	if (CBS_len(&reneg) != expected_len ||
	    !CBS_get_bytes(&reneg, &previous_client,
	    S3I(s)->previous_client_finished_len) ||
	    !CBS_get_bytes(&reneg, &previous_server,
	    S3I(s)->previous_server_finished_len) ||
	    CBS_len(&reneg) != 0) {
		SSLerror(s, SSL_R_RENEGOTIATION_MISMATCH);
		*al = SSL_AD_HANDSHAKE_FAILURE;
		return 0;
	}

	if (!CBS_mem_equal(&previous_client, S3I(s)->previous_client_finished,
	    CBS_len(&previous_client))) {
		SSLerror(s, SSL_R_RENEGOTIATION_MISMATCH);
		*al = SSL_AD_HANDSHAKE_FAILURE;
		return 0;
	}
	if (!CBS_mem_equal(&previous_server, S3I(s)->previous_server_finished,
	    CBS_len(&previous_server))) {
		SSLerror(s, SSL_R_RENEGOTIATION_MISMATCH);
		*al = SSL_AD_ILLEGAL_PARAMETER;
		return 0;
	}

	S3I(s)->send_connection_binding = 1;

	return 1;
}
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<






































































































































































































































































































































































































































































































































































Changes to jni/libressl/tests/CMakeLists.txt.
1
2
3
4
5
6
7

8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43





44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107





108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205








206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
include_directories(
	.
	../include
	../include/compat
	../crypto/modes
	../crypto/asn1
	../ssl

	../apps/openssl
	../apps/openssl/compat
)

add_definitions(-D_PATH_SSL_CA_FILE=\"${CMAKE_CURRENT_SOURCE_DIR}/../apps/openssl/cert.pem\")

foreach(lib IN LISTS OPENSSL_LIBS)
	if(${lib} STREQUAL "tls-shared")
		set(TESTS_LIBS ${TESTS_LIBS} tls)
	elseif(${lib} STREQUAL "ssl-shared")
		set(TESTS_LIBS ${TESTS_LIBS} ssl)
	elseif(${lib} STREQUAL "crypto-shared")
		set(TESTS_LIBS ${TESTS_LIBS} crypto)
	else()
		set(TESTS_LIBS ${TESTS_LIBS} ${lib})
	endif()
endforeach()

# aeadtest
add_executable(aeadtest aeadtest.c)
target_link_libraries(aeadtest ${TESTS_LIBS})
add_test(aeadtest aeadtest ${CMAKE_CURRENT_SOURCE_DIR}/aeadtests.txt)

# aes_wrap
add_executable(aes_wrap aes_wrap.c)
target_link_libraries(aes_wrap ${TESTS_LIBS})
add_test(aes_wrap aes_wrap)

# arc4randomforktest
# Windows/mingw does not have fork, but Cygwin does.
if(NOT CMAKE_HOST_WIN32 AND NOT CMAKE_SYSTEM_NAME MATCHES "MINGW")
	add_executable(arc4randomforktest arc4randomforktest.c)
	target_link_libraries(arc4randomforktest ${TESTS_LIBS})
	add_test(arc4randomforktest ${CMAKE_CURRENT_SOURCE_DIR}/arc4randomforktest.sh)
endif()






# asn1test
add_executable(asn1test asn1test.c)
target_link_libraries(asn1test ${TESTS_LIBS})
add_test(asn1test asn1test)

# asn1time
add_executable(asn1time asn1time.c)
target_link_libraries(asn1time ${TESTS_LIBS})
add_test(asn1time asn1time)

# base64test
add_executable(base64test base64test.c)
target_link_libraries(base64test ${TESTS_LIBS})
add_test(base64test base64test)

# bftest
add_executable(bftest bftest.c)
target_link_libraries(bftest ${TESTS_LIBS})
add_test(bftest bftest)

# biotest
# the BIO tests rely on resolver results that are OS and environment-specific
if(ENABLE_EXTRATESTS)
	add_executable(biotest biotest.c)
	target_link_libraries(biotest ${TESTS_LIBS})
	add_test(biotest biotest)
endif()

# bntest
add_executable(bntest bntest.c)
set_source_files_properties(bntest.c PROPERTIES COMPILE_FLAGS -ULIBRESSL_INTERNAL)
target_link_libraries(bntest ${TESTS_LIBS})
add_test(bntest bntest)

# bytestringtest
add_executable(bytestringtest bytestringtest.c)
target_link_libraries(bytestringtest ${TESTS_LIBS})
add_test(bytestringtest bytestringtest)

# casttest
add_executable(casttest casttest.c)
target_link_libraries(casttest ${TESTS_LIBS})
add_test(casttest casttest)

# chachatest
add_executable(chachatest chachatest.c)
target_link_libraries(chachatest ${TESTS_LIBS})
add_test(chachatest chachatest)

# cipher_list
add_executable(cipher_list cipher_list.c)
target_link_libraries(cipher_list ${TESTS_LIBS})
add_test(cipher_list cipher_list)

# cipherstest
add_executable(cipherstest cipherstest.c)
target_link_libraries(cipherstest ${TESTS_LIBS})
add_test(cipherstest cipherstest)

# clienttest
add_executable(clienttest clienttest.c)
target_link_libraries(clienttest ${TESTS_LIBS})
add_test(clienttest clienttest)






# cts128test
add_executable(cts128test cts128test.c)
target_link_libraries(cts128test ${TESTS_LIBS})
add_test(cts128test cts128test)

# destest
add_executable(destest destest.c)
target_link_libraries(destest ${TESTS_LIBS})
add_test(destest destest)

# dhtest
add_executable(dhtest dhtest.c)
target_link_libraries(dhtest ${TESTS_LIBS})
add_test(dhtest dhtest)

# dsatest
add_executable(dsatest dsatest.c)
target_link_libraries(dsatest ${TESTS_LIBS})
add_test(dsatest dsatest)

# ecdhtest
add_executable(ecdhtest ecdhtest.c)
target_link_libraries(ecdhtest ${TESTS_LIBS})
add_test(ecdhtest ecdhtest)

# ecdsatest
add_executable(ecdsatest ecdsatest.c)
target_link_libraries(ecdsatest ${TESTS_LIBS})
add_test(ecdsatest ecdsatest)

# ectest
add_executable(ectest ectest.c)
target_link_libraries(ectest ${TESTS_LIBS})
add_test(ectest ectest)

# enginetest
add_executable(enginetest enginetest.c)
target_link_libraries(enginetest ${TESTS_LIBS})
add_test(enginetest enginetest)

# evptest
add_executable(evptest evptest.c)
target_link_libraries(evptest ${TESTS_LIBS})
add_test(evptest evptest ${CMAKE_CURRENT_SOURCE_DIR}/evptests.txt)

# explicit_bzero
# explicit_bzero relies on SA_ONSTACK, which is unavailable on Windows
if(NOT CMAKE_HOST_WIN32)
	if(HAVE_MEMMEM)
		add_executable(explicit_bzero explicit_bzero.c)
	else()
		add_executable(explicit_bzero explicit_bzero.c compat/memmem.c)
	endif()
	target_link_libraries(explicit_bzero ${TESTS_LIBS})
	add_test(explicit_bzero explicit_bzero)
endif()

# exptest
add_executable(exptest exptest.c)
set_source_files_properties(exptest.c PROPERTIES COMPILE_FLAGS -ULIBRESSL_INTERNAL)
target_link_libraries(exptest ${TESTS_LIBS})
add_test(exptest exptest)

# freenull
add_executable(freenull freenull.c)
target_link_libraries(freenull ${TESTS_LIBS})
add_test(freenull freenull)

# gcm128test
add_executable(gcm128test gcm128test.c)
target_link_libraries(gcm128test ${TESTS_LIBS})
add_test(gcm128test gcm128test)

# gost2814789t
add_executable(gost2814789t gost2814789t.c)
target_link_libraries(gost2814789t ${TESTS_LIBS})
add_test(gost2814789t gost2814789t)

# hkdf_test
add_executable(hkdf_test hkdf_test.c)
target_link_libraries(hkdf_test ${TESTS_LIBS})
add_test(hkdf_test hkdf_test)

# hmactest
add_executable(hmactest hmactest.c)
target_link_libraries(hmactest ${TESTS_LIBS})
add_test(hmactest hmactest)

# ideatest
add_executable(ideatest ideatest.c)
target_link_libraries(ideatest ${TESTS_LIBS})
add_test(ideatest ideatest)

# igetest
add_executable(igetest igetest.c)
target_link_libraries(igetest ${TESTS_LIBS})
add_test(igetest igetest)









# md4test
add_executable(md4test md4test.c)
target_link_libraries(md4test ${TESTS_LIBS})
add_test(md4test md4test)

# md5test
add_executable(md5test md5test.c)
target_link_libraries(md5test ${TESTS_LIBS})
add_test(md5test md5test)

# mont
add_executable(mont mont.c)
target_link_libraries(mont ${TESTS_LIBS})
add_test(mont mont)

# ocsp_test
if(ENABLE_EXTRATESTS)
	add_executable(ocsp_test ocsp_test.c)
	target_link_libraries(ocsp_test ${TESTS_LIBS})
	if(NOT MSVC)
		add_test(ocsptest ${CMAKE_CURRENT_SOURCE_DIR}/ocsptest.sh)
	else()
		add_test(ocsptest ${CMAKE_CURRENT_SOURCE_DIR}/ocsptest.bat)
	endif()
endif()

# optionstest
add_executable(optionstest optionstest.c)
target_link_libraries(optionstest ${TESTS_LIBS})
add_test(optionstest optionstest)

# pbkdf2
add_executable(pbkdf2 pbkdf2.c)
target_link_libraries(pbkdf2 ${TESTS_LIBS})
add_test(pbkdf2 pbkdf2)

# pidwraptest
# pidwraptest relies on an OS-specific way to give out pids and is generally
# awkward on systems with slow fork
if(ENABLE_EXTRATESTS AND NOT MSVC)
	add_executable(pidwraptest pidwraptest.c)
	target_link_libraries(pidwraptest ${TESTS_LIBS})
	add_test(pidwraptest ${CMAKE_CURRENT_SOURCE_DIR}/pidwraptest.sh)
endif()

# pkcs7test
add_executable(pkcs7test pkcs7test.c)
target_link_libraries(pkcs7test ${TESTS_LIBS})
add_test(pkcs7test pkcs7test)

# poly1305test
add_executable(poly1305test poly1305test.c)
target_link_libraries(poly1305test ${TESTS_LIBS})
add_test(poly1305test poly1305test)

# pq_test
add_executable(pq_test pq_test.c)
target_link_libraries(pq_test ${TESTS_LIBS})
if(NOT MSVC)
	add_test(pq_test ${CMAKE_CURRENT_SOURCE_DIR}/pq_test.sh)
else()
	add_test(pq_test ${CMAKE_CURRENT_SOURCE_DIR}/pq_test.bat)
endif()
set_tests_properties(pq_test PROPERTIES ENVIRONMENT "srcdir=${CMAKE_CURRENT_SOURCE_DIR}")

# randtest
add_executable(randtest randtest.c)
target_link_libraries(randtest ${TESTS_LIBS})
add_test(randtest randtest)

# rc2test
add_executable(rc2test rc2test.c)
target_link_libraries(rc2test ${TESTS_LIBS})
add_test(rc2test rc2test)

# rc4test
add_executable(rc4test rc4test.c)
target_link_libraries(rc4test ${TESTS_LIBS})
add_test(rc4test rc4test)

# rfc5280time
add_executable(rfc5280time rfc5280time.c)
target_link_libraries(rfc5280time ${TESTS_LIBS})
if(SMALL_TIME_T)
	add_test(rfc5280time ${CMAKE_CURRENT_SOURCE_DIR}/rfc5280time_small.test)
else()
	add_test(rfc5280time rfc5280time)
endif()

# rmdtest
add_executable(rmdtest rmdtest.c)
target_link_libraries(rmdtest ${TESTS_LIBS})
add_test(rmdtest rmdtest)

# rsa_test
add_executable(rsa_test rsa_test.c)
target_link_libraries(rsa_test ${TESTS_LIBS})
add_test(rsa_test rsa_test)

# servertest
add_executable(servertest servertest.c)
target_link_libraries(servertest ${TESTS_LIBS})
if(NOT MSVC)
	add_test(servertest ${CMAKE_CURRENT_SOURCE_DIR}/servertest.sh)
else()
	add_test(servertest ${CMAKE_CURRENT_SOURCE_DIR}/servertest.bat)
endif()
set_tests_properties(servertest PROPERTIES ENVIRONMENT "srcdir=${CMAKE_CURRENT_SOURCE_DIR}")

# sha1test
add_executable(sha1test sha1test.c)
target_link_libraries(sha1test ${TESTS_LIBS})
add_test(sha1test sha1test)

# sha256test
add_executable(sha256test sha256test.c)
target_link_libraries(sha256test ${TESTS_LIBS})
add_test(sha256test sha256test)

# sha512test
add_executable(sha512test sha512test.c)
target_link_libraries(sha512test ${TESTS_LIBS})
add_test(sha512test sha512test)

# ssl_versions
add_executable(ssl_versions ssl_versions.c)
target_link_libraries(ssl_versions ${TESTS_LIBS})
add_test(ssl_versions ssl_versions)

# ssltest
add_executable(ssltest ssltest.c)
target_link_libraries(ssltest ${TESTS_LIBS})
if(NOT MSVC)
	add_test(ssltest ${CMAKE_CURRENT_SOURCE_DIR}/ssltest.sh)
else()
	add_test(ssltest ${CMAKE_CURRENT_SOURCE_DIR}/ssltest.bat)
endif()
set_tests_properties(ssltest PROPERTIES ENVIRONMENT "srcdir=${CMAKE_CURRENT_SOURCE_DIR}")

# testdsa
if(NOT MSVC)
	add_test(testdsa ${CMAKE_CURRENT_SOURCE_DIR}/testdsa.sh)
else()
	add_test(testdsa ${CMAKE_CURRENT_SOURCE_DIR}/testdsa.bat)
endif()
set_tests_properties(testdsa PROPERTIES ENVIRONMENT "srcdir=${CMAKE_CURRENT_SOURCE_DIR}")

# testenc
if(NOT MSVC)
	add_test(testenc ${CMAKE_CURRENT_SOURCE_DIR}/testenc.sh)
else()
	add_test(testenc ${CMAKE_CURRENT_SOURCE_DIR}/testenc.bat)
endif()
set_tests_properties(testenc PROPERTIES ENVIRONMENT "srcdir=${CMAKE_CURRENT_SOURCE_DIR}")

# testrsa
if(NOT MSVC)
	add_test(testrsa ${CMAKE_CURRENT_SOURCE_DIR}/testrsa.sh)
else()
	add_test(testrsa ${CMAKE_CURRENT_SOURCE_DIR}/testrsa.bat)
endif()
set_tests_properties(testrsa PROPERTIES ENVIRONMENT "srcdir=${CMAKE_CURRENT_SOURCE_DIR}")

# timingsafe
add_executable(timingsafe timingsafe.c)
target_link_libraries(timingsafe ${TESTS_LIBS})
add_test(timingsafe timingsafe)

# tlsexttest
add_executable(tlsexttest tlsexttest.c)
target_link_libraries(tlsexttest ${TESTS_LIBS})
add_test(tlsexttest tlsexttest)

# tlstest
set(TLSTEST_SRC tlstest.c)
check_function_exists(pipe2 HAVE_PIPE2)
if(HAVE_PIPE2)
	add_definitions(-DHAVE_PIPE2)
else()
	set(TLSTEST_SRC ${TLSTEST_SRC} compat/pipe2.c)
endif()

add_executable(tlstest ${TLSTEST_SRC})
target_link_libraries(tlstest ${TESTS_LIBS})
if(NOT MSVC)
	add_test(tlstest ${CMAKE_CURRENT_SOURCE_DIR}/tlstest.sh)
else()
	add_test(tlstest ${CMAKE_CURRENT_SOURCE_DIR}/tlstest.bat)
endif()
set_tests_properties(tlstest PROPERTIES ENVIRONMENT "srcdir=${CMAKE_CURRENT_SOURCE_DIR}")

# tls_ext_alpn
add_executable(tls_ext_alpn tls_ext_alpn.c)
target_link_libraries(tls_ext_alpn ${TESTS_LIBS})
add_test(tls_ext_alpn tls_ext_alpn)

# tls_prf
add_executable(tls_prf tls_prf.c)
target_link_libraries(tls_prf ${TESTS_LIBS})
add_test(tls_prf tls_prf)

# utf8test
add_executable(utf8test utf8test.c)
target_link_libraries(utf8test ${TESTS_LIBS})
add_test(utf8test utf8test)

# verifytest
add_executable(verifytest verifytest.c)
target_link_libraries(verifytest tls ${TESTS_LIBS})
add_test(verifytest verifytest)

# x25519test
add_executable(x25519test x25519test.c)
target_link_libraries(x25519test ${TESTS_LIBS})
add_test(x25519test x25519test)

if(ENABLE_VSTEST AND USE_SHARED)
	add_custom_command(TARGET x25519test POST_BUILD
		COMMAND "${CMAKE_COMMAND}" -E copy
		"$<TARGET_FILE:tls-shared>"
		"$<TARGET_FILE:ssl-shared>"
		"$<TARGET_FILE:crypto-shared>"
		"${CMAKE_CURRENT_BINARY_DIR}"
		COMMENT "Copying DLLs for regression tests")
endif()








>






|
<
<
<
<
<
<
<
<
<
<



|




|






|



>
>
>
>
>


|




|




|




|






|






|




|




|




|




|




|




|


>
>
>
>
>


|




|




|




|




|




|




|




|




|




|





|






|




|




|




|




|




|




|




|


>
>
>
>
>
>
>
>


|




|




|





|

|

|





|




|







|





|




|




|

|

|

|



|




|




|




|








|




|




|

|

|

|



|




|




|




|




|

|

|

|



|

|

|



|

|

|



|

|

|



|




|












|

|

|

|



|




|




|




|




|

<
<
<
<
<
<
<
<
<
<
<
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15










16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429











include_directories(
	.
	../include
	../include/compat
	../crypto/modes
	../crypto/asn1
	../ssl
	../tls
	../apps/openssl
	../apps/openssl/compat
)

add_definitions(-D_PATH_SSL_CA_FILE=\"${CMAKE_CURRENT_SOURCE_DIR}/../apps/openssl/cert.pem\")

file(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR} TEST_SOURCE_DIR)











# aeadtest
add_executable(aeadtest aeadtest.c)
target_link_libraries(aeadtest ${OPENSSL_LIBS})
add_test(aeadtest aeadtest ${CMAKE_CURRENT_SOURCE_DIR}/aeadtests.txt)

# aes_wrap
add_executable(aes_wrap aes_wrap.c)
target_link_libraries(aes_wrap ${OPENSSL_LIBS})
add_test(aes_wrap aes_wrap)

# arc4randomforktest
# Windows/mingw does not have fork, but Cygwin does.
if(NOT CMAKE_HOST_WIN32 AND NOT CMAKE_SYSTEM_NAME MATCHES "MINGW")
	add_executable(arc4randomforktest arc4randomforktest.c)
	target_link_libraries(arc4randomforktest ${OPENSSL_LIBS})
	add_test(arc4randomforktest ${CMAKE_CURRENT_SOURCE_DIR}/arc4randomforktest.sh)
endif()

# asn1evp
add_executable(asn1evp asn1evp.c)
target_link_libraries(asn1evp ${OPENSSL_LIBS})
add_test(asn1evp asn1evp)

# asn1test
add_executable(asn1test asn1test.c)
target_link_libraries(asn1test ${OPENSSL_LIBS})
add_test(asn1test asn1test)

# asn1time
add_executable(asn1time asn1time.c)
target_link_libraries(asn1time ${OPENSSL_LIBS})
add_test(asn1time asn1time)

# base64test
add_executable(base64test base64test.c)
target_link_libraries(base64test ${OPENSSL_LIBS})
add_test(base64test base64test)

# bftest
add_executable(bftest bftest.c)
target_link_libraries(bftest ${OPENSSL_LIBS})
add_test(bftest bftest)

# biotest
# the BIO tests rely on resolver results that are OS and environment-specific
if(ENABLE_EXTRATESTS)
	add_executable(biotest biotest.c)
	target_link_libraries(biotest ${OPENSSL_LIBS})
	add_test(biotest biotest)
endif()

# bntest
add_executable(bntest bntest.c)
set_source_files_properties(bntest.c PROPERTIES COMPILE_FLAGS -ULIBRESSL_INTERNAL)
target_link_libraries(bntest ${OPENSSL_LIBS})
add_test(bntest bntest)

# bytestringtest
add_executable(bytestringtest bytestringtest.c)
target_link_libraries(bytestringtest ${OPENSSL_LIBS})
add_test(bytestringtest bytestringtest)

# casttest
add_executable(casttest casttest.c)
target_link_libraries(casttest ${OPENSSL_LIBS})
add_test(casttest casttest)

# chachatest
add_executable(chachatest chachatest.c)
target_link_libraries(chachatest ${OPENSSL_LIBS})
add_test(chachatest chachatest)

# cipher_list
add_executable(cipher_list cipher_list.c)
target_link_libraries(cipher_list ${OPENSSL_LIBS})
add_test(cipher_list cipher_list)

# cipherstest
add_executable(cipherstest cipherstest.c)
target_link_libraries(cipherstest ${OPENSSL_LIBS})
add_test(cipherstest cipherstest)

# clienttest
add_executable(clienttest clienttest.c)
target_link_libraries(clienttest ${OPENSSL_LIBS})
add_test(clienttest clienttest)

# configtest
add_executable(configtest configtest.c)
target_link_libraries(configtest ${OPENSSL_LIBS})
add_test(configtest configtest)

# cts128test
add_executable(cts128test cts128test.c)
target_link_libraries(cts128test ${OPENSSL_LIBS})
add_test(cts128test cts128test)

# destest
add_executable(destest destest.c)
target_link_libraries(destest ${OPENSSL_LIBS})
add_test(destest destest)

# dhtest
add_executable(dhtest dhtest.c)
target_link_libraries(dhtest ${OPENSSL_LIBS})
add_test(dhtest dhtest)

# dsatest
add_executable(dsatest dsatest.c)
target_link_libraries(dsatest ${OPENSSL_LIBS})
add_test(dsatest dsatest)

# ecdhtest
add_executable(ecdhtest ecdhtest.c)
target_link_libraries(ecdhtest ${OPENSSL_LIBS})
add_test(ecdhtest ecdhtest)

# ecdsatest
add_executable(ecdsatest ecdsatest.c)
target_link_libraries(ecdsatest ${OPENSSL_LIBS})
add_test(ecdsatest ecdsatest)

# ectest
add_executable(ectest ectest.c)
target_link_libraries(ectest ${OPENSSL_LIBS})
add_test(ectest ectest)

# enginetest
add_executable(enginetest enginetest.c)
target_link_libraries(enginetest ${OPENSSL_LIBS})
add_test(enginetest enginetest)

# evptest
add_executable(evptest evptest.c)
target_link_libraries(evptest ${OPENSSL_LIBS})
add_test(evptest evptest ${CMAKE_CURRENT_SOURCE_DIR}/evptests.txt)

# explicit_bzero
# explicit_bzero relies on SA_ONSTACK, which is unavailable on Windows
if(NOT WIN32)
	if(HAVE_MEMMEM)
		add_executable(explicit_bzero explicit_bzero.c)
	else()
		add_executable(explicit_bzero explicit_bzero.c compat/memmem.c)
	endif()
	target_link_libraries(explicit_bzero ${OPENSSL_LIBS})
	add_test(explicit_bzero explicit_bzero)
endif()

# exptest
add_executable(exptest exptest.c)
set_source_files_properties(exptest.c PROPERTIES COMPILE_FLAGS -ULIBRESSL_INTERNAL)
target_link_libraries(exptest ${OPENSSL_LIBS})
add_test(exptest exptest)

# freenull
add_executable(freenull freenull.c)
target_link_libraries(freenull ${OPENSSL_LIBS})
add_test(freenull freenull)

# gcm128test
add_executable(gcm128test gcm128test.c)
target_link_libraries(gcm128test ${OPENSSL_LIBS})
add_test(gcm128test gcm128test)

# gost2814789t
add_executable(gost2814789t gost2814789t.c)
target_link_libraries(gost2814789t ${OPENSSL_LIBS})
add_test(gost2814789t gost2814789t)

# hkdf_test
add_executable(hkdf_test hkdf_test.c)
target_link_libraries(hkdf_test ${OPENSSL_LIBS})
add_test(hkdf_test hkdf_test)

# hmactest
add_executable(hmactest hmactest.c)
target_link_libraries(hmactest ${OPENSSL_LIBS})
add_test(hmactest hmactest)

# ideatest
add_executable(ideatest ideatest.c)
target_link_libraries(ideatest ${OPENSSL_LIBS})
add_test(ideatest ideatest)

# igetest
add_executable(igetest igetest.c)
target_link_libraries(igetest ${OPENSSL_LIBS})
add_test(igetest igetest)

# keypairtest
add_executable(keypairtest keypairtest.c)
target_link_libraries(keypairtest ${OPENSSL_LIBS})
add_test(keypairtest keypairtest
	${CMAKE_CURRENT_SOURCE_DIR}/ca.pem
	${CMAKE_CURRENT_SOURCE_DIR}/server.pem
	${CMAKE_CURRENT_SOURCE_DIR}/server.pem)

# md4test
add_executable(md4test md4test.c)
target_link_libraries(md4test ${OPENSSL_LIBS})
add_test(md4test md4test)

# md5test
add_executable(md5test md5test.c)
target_link_libraries(md5test ${OPENSSL_LIBS})
add_test(md5test md5test)

# mont
add_executable(mont mont.c)
target_link_libraries(mont ${OPENSSL_LIBS})
add_test(mont mont)

# ocsp_test
if(ENABLE_EXTRATESTS)
	add_executable(ocsp_test ocsp_test.c)
	target_link_libraries(ocsp_test ${OPENSSL_LIBS})
	if(NOT MSVC)
		add_test(NAME ocsptest COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/ocsptest.sh)
	else()
		add_test(NAME ocsptest COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/ocsptest.bat $<TARGET_FILE:ocsp_test>)
	endif()
endif()

# optionstest
add_executable(optionstest optionstest.c)
target_link_libraries(optionstest ${OPENSSL_LIBS})
add_test(optionstest optionstest)

# pbkdf2
add_executable(pbkdf2 pbkdf2.c)
target_link_libraries(pbkdf2 ${OPENSSL_LIBS})
add_test(pbkdf2 pbkdf2)

# pidwraptest
# pidwraptest relies on an OS-specific way to give out pids and is generally
# awkward on systems with slow fork
if(ENABLE_EXTRATESTS AND NOT MSVC)
	add_executable(pidwraptest pidwraptest.c)
	target_link_libraries(pidwraptest ${OPENSSL_LIBS})
	add_test(pidwraptest ${CMAKE_CURRENT_SOURCE_DIR}/pidwraptest.sh)
endif()

# pkcs7test
add_executable(pkcs7test pkcs7test.c)
target_link_libraries(pkcs7test ${OPENSSL_LIBS})
add_test(pkcs7test pkcs7test)

# poly1305test
add_executable(poly1305test poly1305test.c)
target_link_libraries(poly1305test ${OPENSSL_LIBS})
add_test(poly1305test poly1305test)

# pq_test
add_executable(pq_test pq_test.c)
target_link_libraries(pq_test ${OPENSSL_LIBS})
if(NOT MSVC)
	add_test(NAME pq_test COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/pq_test.sh)
else()
	add_test(NAME pq_test COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/pq_test.bat $<TARGET_FILE:pq_test>)
endif()
set_tests_properties(pq_test PROPERTIES ENVIRONMENT "srcdir=${TEST_SOURCE_DIR}")

# randtest
add_executable(randtest randtest.c)
target_link_libraries(randtest ${OPENSSL_LIBS})
add_test(randtest randtest)

# rc2test
add_executable(rc2test rc2test.c)
target_link_libraries(rc2test ${OPENSSL_LIBS})
add_test(rc2test rc2test)

# rc4test
add_executable(rc4test rc4test.c)
target_link_libraries(rc4test ${OPENSSL_LIBS})
add_test(rc4test rc4test)

# rfc5280time
add_executable(rfc5280time rfc5280time.c)
target_link_libraries(rfc5280time ${OPENSSL_LIBS})
if(SMALL_TIME_T)
	add_test(rfc5280time ${CMAKE_CURRENT_SOURCE_DIR}/rfc5280time_small.test)
else()
	add_test(rfc5280time rfc5280time)
endif()

# rmdtest
add_executable(rmdtest rmdtest.c)
target_link_libraries(rmdtest ${OPENSSL_LIBS})
add_test(rmdtest rmdtest)

# rsa_test
add_executable(rsa_test rsa_test.c)
target_link_libraries(rsa_test ${OPENSSL_LIBS})
add_test(rsa_test rsa_test)

# servertest
add_executable(servertest servertest.c)
target_link_libraries(servertest ${OPENSSL_LIBS})
if(NOT MSVC)
	add_test(NAME servertest COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/servertest.sh)
else()
	add_test(NAME servertest COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/servertest.bat $<TARGET_FILE:servertest>)
endif()
set_tests_properties(servertest PROPERTIES ENVIRONMENT "srcdir=${TEST_SOURCE_DIR}")

# sha1test
add_executable(sha1test sha1test.c)
target_link_libraries(sha1test ${OPENSSL_LIBS})
add_test(sha1test sha1test)

# sha256test
add_executable(sha256test sha256test.c)
target_link_libraries(sha256test ${OPENSSL_LIBS})
add_test(sha256test sha256test)

# sha512test
add_executable(sha512test sha512test.c)
target_link_libraries(sha512test ${OPENSSL_LIBS})
add_test(sha512test sha512test)

# ssl_versions
add_executable(ssl_versions ssl_versions.c)
target_link_libraries(ssl_versions ${OPENSSL_LIBS})
add_test(ssl_versions ssl_versions)

# ssltest
add_executable(ssltest ssltest.c)
target_link_libraries(ssltest ${OPENSSL_LIBS})
if(NOT MSVC)
	add_test(NAME ssltest COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/ssltest.sh)
else()
	add_test(NAME ssltest COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/ssltest.bat $<TARGET_FILE:ssltest> $<TARGET_FILE:openssl>)
endif()
set_tests_properties(ssltest PROPERTIES ENVIRONMENT "srcdir=${TEST_SOURCE_DIR}")

# testdsa
if(NOT MSVC)
	add_test(NAME testdsa COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/testdsa.sh)
else()
	add_test(NAME testdsa COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/testdsa.bat $<TARGET_FILE:openssl>)
endif()
set_tests_properties(testdsa PROPERTIES ENVIRONMENT "srcdir=${TEST_SOURCE_DIR}")

# testenc
if(NOT MSVC)
	add_test(NAME testenc COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/testenc.sh)
else()
	add_test(NAME testenc COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/testenc.bat $<TARGET_FILE:openssl>)
endif()
set_tests_properties(testenc PROPERTIES ENVIRONMENT "srcdir=${TEST_SOURCE_DIR}")

# testrsa
if(NOT MSVC)
	add_test(NAME testrsa COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/testrsa.sh)
else()
	add_test(NAME testrsa COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/testrsa.bat $<TARGET_FILE:openssl>)
endif()
set_tests_properties(testrsa PROPERTIES ENVIRONMENT "srcdir=${TEST_SOURCE_DIR}")

# timingsafe
add_executable(timingsafe timingsafe.c)
target_link_libraries(timingsafe ${OPENSSL_LIBS})
add_test(timingsafe timingsafe)

# tlsexttest
add_executable(tlsexttest tlsexttest.c)
target_link_libraries(tlsexttest ${OPENSSL_LIBS})
add_test(tlsexttest tlsexttest)

# tlstest
set(TLSTEST_SRC tlstest.c)
check_function_exists(pipe2 HAVE_PIPE2)
if(HAVE_PIPE2)
	add_definitions(-DHAVE_PIPE2)
else()
	set(TLSTEST_SRC ${TLSTEST_SRC} compat/pipe2.c)
endif()

add_executable(tlstest ${TLSTEST_SRC})
target_link_libraries(tlstest ${OPENSSL_LIBS})
if(NOT MSVC)
	add_test(NAME tlstest COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/tlstest.sh)
else()
	add_test(NAME tlstest COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/tlstest.bat $<TARGET_FILE:tlstest>)
endif()
set_tests_properties(tlstest PROPERTIES ENVIRONMENT "srcdir=${TEST_SOURCE_DIR}")

# tls_ext_alpn
add_executable(tls_ext_alpn tls_ext_alpn.c)
target_link_libraries(tls_ext_alpn ${OPENSSL_LIBS})
add_test(tls_ext_alpn tls_ext_alpn)

# tls_prf
add_executable(tls_prf tls_prf.c)
target_link_libraries(tls_prf ${OPENSSL_LIBS})
add_test(tls_prf tls_prf)

# utf8test
add_executable(utf8test utf8test.c)
target_link_libraries(utf8test ${OPENSSL_LIBS})
add_test(utf8test utf8test)

# verifytest
add_executable(verifytest verifytest.c)
target_link_libraries(verifytest tls ${OPENSSL_LIBS})
add_test(verifytest verifytest)

# x25519test
add_executable(x25519test x25519test.c)
target_link_libraries(x25519test ${OPENSSL_LIBS})
add_test(x25519test x25519test)











Changes to jni/libressl/tests/Makefile.am.
1
2
3
4
5

6
7
8
9
10
11
12
include $(top_srcdir)/Makefile.am.common

AM_CPPFLAGS += -I $(top_srcdir)/crypto/modes
AM_CPPFLAGS += -I $(top_srcdir)/crypto/asn1
AM_CPPFLAGS += -I $(top_srcdir)/ssl

AM_CPPFLAGS += -I $(top_srcdir)/apps/openssl
AM_CPPFLAGS += -I $(top_srcdir)/apps/openssl/compat
AM_CPPFLAGS += -D_PATH_SSL_CA_FILE=\"$(top_srcdir)/apps/openssl/cert.pem\"

LDADD = $(abs_top_builddir)/tls/.libs/libtls.a
LDADD += $(abs_top_builddir)/ssl/.libs/libssl.a
LDADD += $(abs_top_builddir)/crypto/.libs/libcrypto.a





>







1
2
3
4
5
6
7
8
9
10
11
12
13
include $(top_srcdir)/Makefile.am.common

AM_CPPFLAGS += -I $(top_srcdir)/crypto/modes
AM_CPPFLAGS += -I $(top_srcdir)/crypto/asn1
AM_CPPFLAGS += -I $(top_srcdir)/ssl
AM_CPPFLAGS += -I $(top_srcdir)/tls
AM_CPPFLAGS += -I $(top_srcdir)/apps/openssl
AM_CPPFLAGS += -I $(top_srcdir)/apps/openssl/compat
AM_CPPFLAGS += -D_PATH_SSL_CA_FILE=\"$(top_srcdir)/apps/openssl/cert.pem\"

LDADD = $(abs_top_builddir)/tls/.libs/libtls.a
LDADD += $(abs_top_builddir)/ssl/.libs/libssl.a
LDADD += $(abs_top_builddir)/crypto/.libs/libcrypto.a
39
40
41
42
43
44
45





46
47
48
49
50
51
52
if !HOST_WIN
TESTS += arc4randomforktest.sh
check_PROGRAMS += arc4randomforktest
arc4randomforktest_SOURCES = arc4randomforktest.c
endif
EXTRA_DIST += arc4randomforktest.sh






# asn1test
TESTS += asn1test
check_PROGRAMS += asn1test
asn1test_SOURCES = asn1test.c

# asn1time
TESTS += asn1time







>
>
>
>
>







40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
if !HOST_WIN
TESTS += arc4randomforktest.sh
check_PROGRAMS += arc4randomforktest
arc4randomforktest_SOURCES = arc4randomforktest.c
endif
EXTRA_DIST += arc4randomforktest.sh

# asn1evp
TESTS += asn1evp
check_PROGRAMS += asn1evp
asn1evp_SOURCES = asn1evp.c

# asn1test
TESTS += asn1test
check_PROGRAMS += asn1test
asn1test_SOURCES = asn1test.c

# asn1time
TESTS += asn1time
104
105
106
107
108
109
110





111
112
113
114
115
116
117
cipherstest_SOURCES = cipherstest.c

# clienttest
TESTS += clienttest
check_PROGRAMS += clienttest
clienttest_SOURCES = clienttest.c






# cts128test
TESTS += cts128test
check_PROGRAMS += cts128test
cts128test_SOURCES = cts128test.c

# destest
TESTS += destest







>
>
>
>
>







110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
cipherstest_SOURCES = cipherstest.c

# clienttest
TESTS += clienttest
check_PROGRAMS += clienttest
clienttest_SOURCES = clienttest.c

# configtest
TESTS += configtest
check_PROGRAMS += configtest
configtest_SOURCES = configtest.c

# cts128test
TESTS += cts128test
check_PROGRAMS += cts128test
cts128test_SOURCES = cts128test.c

# destest
TESTS += destest
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
check_PROGRAMS += exptest
exptest_CPPFLAGS = $(AM_CPPFLAGS) -ULIBRESSL_INTERNAL
exptest_SOURCES = exptest.c

# freenull
TESTS += freenull
check_PROGRAMS += freenull
freenull_CPPFLAGS = $(AM_CPPFLAGS) -ULIBRESSL_INTERNAL
freenull_SOURCES = freenull.c

# gcm128test
TESTS += gcm128test
check_PROGRAMS += gcm128test
gcm128test_SOURCES = gcm128test.c








<







184
185
186
187
188
189
190

191
192
193
194
195
196
197
check_PROGRAMS += exptest
exptest_CPPFLAGS = $(AM_CPPFLAGS) -ULIBRESSL_INTERNAL
exptest_SOURCES = exptest.c

# freenull
TESTS += freenull
check_PROGRAMS += freenull

freenull_SOURCES = freenull.c

# gcm128test
TESTS += gcm128test
check_PROGRAMS += gcm128test
gcm128test_SOURCES = gcm128test.c

206
207
208
209
210
211
212






213
214
215
216
217
218
219
ideatest_SOURCES = ideatest.c

# igetest
TESTS += igetest
check_PROGRAMS += igetest
igetest_SOURCES = igetest.c







# md4test
TESTS += md4test
check_PROGRAMS += md4test
md4test_SOURCES = md4test.c

# md5test
TESTS += md5test







>
>
>
>
>
>







216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
ideatest_SOURCES = ideatest.c

# igetest
TESTS += igetest
check_PROGRAMS += igetest
igetest_SOURCES = igetest.c

# keypairtest
TESTS += keypairtest.sh
check_PROGRAMS += keypairtest
keypairtest_SOURCES = keypairtest.c
EXTRA_DIST += keypairtest.sh

# md4test
TESTS += md4test
check_PROGRAMS += md4test
md4test_SOURCES = md4test.c

# md5test
TESTS += md5test
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
TESTS += timingsafe
check_PROGRAMS += timingsafe
timingsafe_SOURCES = timingsafe.c

# tlsexttest
TESTS += tlsexttest
check_PROGRAMS += tlsexttest
tlsexttest_CPPFLAGS = $(AM_CPPFLAGS) -ULIBRESSL_INTERNAL
tlsexttest_SOURCES = tlsexttest.c

# tlstest
TESTS += tlstest.sh
check_PROGRAMS += tlstest
tlstest_SOURCES = tlstest.c
if !HAVE_PIPE2







<







371
372
373
374
375
376
377

378
379
380
381
382
383
384
TESTS += timingsafe
check_PROGRAMS += timingsafe
timingsafe_SOURCES = timingsafe.c

# tlsexttest
TESTS += tlsexttest
check_PROGRAMS += tlsexttest

tlsexttest_SOURCES = tlsexttest.c

# tlstest
TESTS += tlstest.sh
check_PROGRAMS += tlstest
tlstest_SOURCES = tlstest.c
if !HAVE_PIPE2
Changes to jni/libressl/tests/Makefile.in.
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118

119
120
121
122
123
124
125
126
127
128
129
130
131
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
@HOST_ASM_MACOSX_X86_64_TRUE@am__append_1 = $(abs_top_builddir)/crypto/.libs/libcrypto_la-cpuid-macosx-x86_64.o
TESTS = aeadtest.sh aes_wrap$(EXEEXT) $(am__append_2) \
	asn1test$(EXEEXT) asn1time$(EXEEXT) base64test$(EXEEXT) \
	bftest$(EXEEXT) $(am__EXEEXT_2) bntest$(EXEEXT) \
	bytestringtest$(EXEEXT) casttest$(EXEEXT) chachatest$(EXEEXT) \
	cipher_list$(EXEEXT) cipherstest$(EXEEXT) clienttest$(EXEEXT) \
	cts128test$(EXEEXT) destest$(EXEEXT) dhtest$(EXEEXT) \
	dsatest$(EXEEXT) ecdhtest$(EXEEXT) ecdsatest$(EXEEXT) \
	ectest$(EXEEXT) enginetest$(EXEEXT) evptest.sh $(am__EXEEXT_3) \
	exptest$(EXEEXT) freenull$(EXEEXT) gcm128test$(EXEEXT) \
	gost2814789t$(EXEEXT) hkdftest$(EXEEXT) hmactest$(EXEEXT) \
	ideatest$(EXEEXT) igetest$(EXEEXT) md4test$(EXEEXT) \
	md5test$(EXEEXT) mont$(EXEEXT) $(am__append_9) \
	optionstest$(EXEEXT) pbkdf2$(EXEEXT) $(am__append_11) \
	pkcs7test$(EXEEXT) poly1305test$(EXEEXT) pq_test.sh \
	randtest$(EXEEXT) rc2test$(EXEEXT) rc4test$(EXEEXT) \
	$(am__append_13) $(am__EXEEXT_6) rmdtest$(EXEEXT) \
	rsa_test$(EXEEXT) servertest.sh sha1test$(EXEEXT) \
	sha256test$(EXEEXT) sha512test$(EXEEXT) ssl_versions$(EXEEXT) \
	ssltest.sh testdsa.sh testenc.sh testrsa.sh \
	timingsafe$(EXEEXT) tlsexttest$(EXEEXT) tlstest.sh \
	tls_ext_alpn$(EXEEXT) tls_prf$(EXEEXT) utf8test$(EXEEXT) \
	verifytest$(EXEEXT) x25519test$(EXEEXT)
check_PROGRAMS = aeadtest$(EXEEXT) aes_wrap$(EXEEXT) $(am__EXEEXT_1) \
	asn1test$(EXEEXT) asn1time$(EXEEXT) base64test$(EXEEXT) \
	bftest$(EXEEXT) $(am__EXEEXT_2) bntest$(EXEEXT) \
	bytestringtest$(EXEEXT) casttest$(EXEEXT) chachatest$(EXEEXT) \
	cipher_list$(EXEEXT) cipherstest$(EXEEXT) clienttest$(EXEEXT) \

	cts128test$(EXEEXT) destest$(EXEEXT) dhtest$(EXEEXT) \
	dsatest$(EXEEXT) ecdhtest$(EXEEXT) ecdsatest$(EXEEXT) \
	ectest$(EXEEXT) enginetest$(EXEEXT) evptest$(EXEEXT) \
	$(am__EXEEXT_3) exptest$(EXEEXT) freenull$(EXEEXT) \
	gcm128test$(EXEEXT) gost2814789t$(EXEEXT) hkdftest$(EXEEXT) \
	hmactest$(EXEEXT) ideatest$(EXEEXT) igetest$(EXEEXT) \
	md4test$(EXEEXT) md5test$(EXEEXT) mont$(EXEEXT) \
	$(am__EXEEXT_4) optionstest$(EXEEXT) pbkdf2$(EXEEXT) \
	$(am__EXEEXT_5) pkcs7test$(EXEEXT) poly1305test$(EXEEXT) \
	pq_test$(EXEEXT) randtest$(EXEEXT) rc2test$(EXEEXT) \
	rc4test$(EXEEXT) rfc5280time$(EXEEXT) rmdtest$(EXEEXT) \
	rsa_test$(EXEEXT) servertest$(EXEEXT) sha1test$(EXEEXT) \
	sha256test$(EXEEXT) sha512test$(EXEEXT) ssl_versions$(EXEEXT) \







|




|
|
|
|
|
|
|
|
|
|








|
|
|
|
>
|
|
|
|
|
|







85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
@HOST_ASM_MACOSX_X86_64_TRUE@am__append_1 = $(abs_top_builddir)/crypto/.libs/libcrypto_la-cpuid-macosx-x86_64.o
TESTS = aeadtest.sh aes_wrap$(EXEEXT) $(am__append_2) asn1evp$(EXEEXT) \
	asn1test$(EXEEXT) asn1time$(EXEEXT) base64test$(EXEEXT) \
	bftest$(EXEEXT) $(am__EXEEXT_2) bntest$(EXEEXT) \
	bytestringtest$(EXEEXT) casttest$(EXEEXT) chachatest$(EXEEXT) \
	cipher_list$(EXEEXT) cipherstest$(EXEEXT) clienttest$(EXEEXT) \
	configtest$(EXEEXT) cts128test$(EXEEXT) destest$(EXEEXT) \
	dhtest$(EXEEXT) dsatest$(EXEEXT) ecdhtest$(EXEEXT) \
	ecdsatest$(EXEEXT) ectest$(EXEEXT) enginetest$(EXEEXT) \
	evptest.sh $(am__EXEEXT_3) exptest$(EXEEXT) freenull$(EXEEXT) \
	gcm128test$(EXEEXT) gost2814789t$(EXEEXT) hkdftest$(EXEEXT) \
	hmactest$(EXEEXT) ideatest$(EXEEXT) igetest$(EXEEXT) \
	keypairtest.sh md4test$(EXEEXT) md5test$(EXEEXT) mont$(EXEEXT) \
	$(am__append_9) optionstest$(EXEEXT) pbkdf2$(EXEEXT) \
	$(am__append_11) pkcs7test$(EXEEXT) poly1305test$(EXEEXT) \
	pq_test.sh randtest$(EXEEXT) rc2test$(EXEEXT) rc4test$(EXEEXT) \
	$(am__append_13) $(am__EXEEXT_6) rmdtest$(EXEEXT) \
	rsa_test$(EXEEXT) servertest.sh sha1test$(EXEEXT) \
	sha256test$(EXEEXT) sha512test$(EXEEXT) ssl_versions$(EXEEXT) \
	ssltest.sh testdsa.sh testenc.sh testrsa.sh \
	timingsafe$(EXEEXT) tlsexttest$(EXEEXT) tlstest.sh \
	tls_ext_alpn$(EXEEXT) tls_prf$(EXEEXT) utf8test$(EXEEXT) \
	verifytest$(EXEEXT) x25519test$(EXEEXT)
check_PROGRAMS = aeadtest$(EXEEXT) aes_wrap$(EXEEXT) $(am__EXEEXT_1) \
	asn1evp$(EXEEXT) asn1test$(EXEEXT) asn1time$(EXEEXT) \
	base64test$(EXEEXT) bftest$(EXEEXT) $(am__EXEEXT_2) \
	bntest$(EXEEXT) bytestringtest$(EXEEXT) casttest$(EXEEXT) \
	chachatest$(EXEEXT) cipher_list$(EXEEXT) cipherstest$(EXEEXT) \
	clienttest$(EXEEXT) configtest$(EXEEXT) cts128test$(EXEEXT) \
	destest$(EXEEXT) dhtest$(EXEEXT) dsatest$(EXEEXT) \
	ecdhtest$(EXEEXT) ecdsatest$(EXEEXT) ectest$(EXEEXT) \
	enginetest$(EXEEXT) evptest$(EXEEXT) $(am__EXEEXT_3) \
	exptest$(EXEEXT) freenull$(EXEEXT) gcm128test$(EXEEXT) \
	gost2814789t$(EXEEXT) hkdftest$(EXEEXT) hmactest$(EXEEXT) \
	ideatest$(EXEEXT) igetest$(EXEEXT) keypairtest$(EXEEXT) \
	md4test$(EXEEXT) md5test$(EXEEXT) mont$(EXEEXT) \
	$(am__EXEEXT_4) optionstest$(EXEEXT) pbkdf2$(EXEEXT) \
	$(am__EXEEXT_5) pkcs7test$(EXEEXT) poly1305test$(EXEEXT) \
	pq_test$(EXEEXT) randtest$(EXEEXT) rc2test$(EXEEXT) \
	rc4test$(EXEEXT) rfc5280time$(EXEEXT) rmdtest$(EXEEXT) \
	rsa_test$(EXEEXT) servertest$(EXEEXT) sha1test$(EXEEXT) \
	sha256test$(EXEEXT) sha512test$(EXEEXT) ssl_versions$(EXEEXT) \
208
209
210
211
212
213
214







215
216
217
218
219
220
221
arc4randomforktest_OBJECTS = $(am_arc4randomforktest_OBJECTS)
arc4randomforktest_LDADD = $(LDADD)
arc4randomforktest_DEPENDENCIES =  \
	$(abs_top_builddir)/tls/.libs/libtls.a \
	$(abs_top_builddir)/ssl/.libs/libssl.a \
	$(abs_top_builddir)/crypto/.libs/libcrypto.a \
	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1)







am_asn1test_OBJECTS = asn1test.$(OBJEXT)
asn1test_OBJECTS = $(am_asn1test_OBJECTS)
asn1test_LDADD = $(LDADD)
asn1test_DEPENDENCIES = $(abs_top_builddir)/tls/.libs/libtls.a \
	$(abs_top_builddir)/ssl/.libs/libssl.a \
	$(abs_top_builddir)/crypto/.libs/libcrypto.a \
	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1)







>
>
>
>
>
>
>







209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
arc4randomforktest_OBJECTS = $(am_arc4randomforktest_OBJECTS)
arc4randomforktest_LDADD = $(LDADD)
arc4randomforktest_DEPENDENCIES =  \
	$(abs_top_builddir)/tls/.libs/libtls.a \
	$(abs_top_builddir)/ssl/.libs/libssl.a \
	$(abs_top_builddir)/crypto/.libs/libcrypto.a \
	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1)
am_asn1evp_OBJECTS = asn1evp.$(OBJEXT)
asn1evp_OBJECTS = $(am_asn1evp_OBJECTS)
asn1evp_LDADD = $(LDADD)
asn1evp_DEPENDENCIES = $(abs_top_builddir)/tls/.libs/libtls.a \
	$(abs_top_builddir)/ssl/.libs/libssl.a \
	$(abs_top_builddir)/crypto/.libs/libcrypto.a \
	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1)
am_asn1test_OBJECTS = asn1test.$(OBJEXT)
asn1test_OBJECTS = $(am_asn1test_OBJECTS)
asn1test_LDADD = $(LDADD)
asn1test_DEPENDENCIES = $(abs_top_builddir)/tls/.libs/libtls.a \
	$(abs_top_builddir)/ssl/.libs/libssl.a \
	$(abs_top_builddir)/crypto/.libs/libcrypto.a \
	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1)
291
292
293
294
295
296
297







298
299
300
301
302
303
304
	$(abs_top_builddir)/crypto/.libs/libcrypto.a \
	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1)
am_clienttest_OBJECTS = clienttest.$(OBJEXT)
clienttest_OBJECTS = $(am_clienttest_OBJECTS)
clienttest_LDADD = $(LDADD)
clienttest_DEPENDENCIES = $(abs_top_builddir)/tls/.libs/libtls.a \
	$(abs_top_builddir)/ssl/.libs/libssl.a \







	$(abs_top_builddir)/crypto/.libs/libcrypto.a \
	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1)
am_cts128test_OBJECTS = cts128test.$(OBJEXT)
cts128test_OBJECTS = $(am_cts128test_OBJECTS)
cts128test_LDADD = $(LDADD)
cts128test_DEPENDENCIES = $(abs_top_builddir)/tls/.libs/libtls.a \
	$(abs_top_builddir)/ssl/.libs/libssl.a \







>
>
>
>
>
>
>







299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
	$(abs_top_builddir)/crypto/.libs/libcrypto.a \
	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1)
am_clienttest_OBJECTS = clienttest.$(OBJEXT)
clienttest_OBJECTS = $(am_clienttest_OBJECTS)
clienttest_LDADD = $(LDADD)
clienttest_DEPENDENCIES = $(abs_top_builddir)/tls/.libs/libtls.a \
	$(abs_top_builddir)/ssl/.libs/libssl.a \
	$(abs_top_builddir)/crypto/.libs/libcrypto.a \
	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1)
am_configtest_OBJECTS = configtest.$(OBJEXT)
configtest_OBJECTS = $(am_configtest_OBJECTS)
configtest_LDADD = $(LDADD)
configtest_DEPENDENCIES = $(abs_top_builddir)/tls/.libs/libtls.a \
	$(abs_top_builddir)/ssl/.libs/libssl.a \
	$(abs_top_builddir)/crypto/.libs/libcrypto.a \
	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1)
am_cts128test_OBJECTS = cts128test.$(OBJEXT)
cts128test_OBJECTS = $(am_cts128test_OBJECTS)
cts128test_LDADD = $(LDADD)
cts128test_DEPENDENCIES = $(abs_top_builddir)/tls/.libs/libtls.a \
	$(abs_top_builddir)/ssl/.libs/libssl.a \
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
am_exptest_OBJECTS = exptest-exptest.$(OBJEXT)
exptest_OBJECTS = $(am_exptest_OBJECTS)
exptest_LDADD = $(LDADD)
exptest_DEPENDENCIES = $(abs_top_builddir)/tls/.libs/libtls.a \
	$(abs_top_builddir)/ssl/.libs/libssl.a \
	$(abs_top_builddir)/crypto/.libs/libcrypto.a \
	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1)
am_freenull_OBJECTS = freenull-freenull.$(OBJEXT)
freenull_OBJECTS = $(am_freenull_OBJECTS)
freenull_LDADD = $(LDADD)
freenull_DEPENDENCIES = $(abs_top_builddir)/tls/.libs/libtls.a \
	$(abs_top_builddir)/ssl/.libs/libssl.a \
	$(abs_top_builddir)/crypto/.libs/libcrypto.a \
	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1)
am_gcm128test_OBJECTS = gcm128test.$(OBJEXT)







|







390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
am_exptest_OBJECTS = exptest-exptest.$(OBJEXT)
exptest_OBJECTS = $(am_exptest_OBJECTS)
exptest_LDADD = $(LDADD)
exptest_DEPENDENCIES = $(abs_top_builddir)/tls/.libs/libtls.a \
	$(abs_top_builddir)/ssl/.libs/libssl.a \
	$(abs_top_builddir)/crypto/.libs/libcrypto.a \
	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1)
am_freenull_OBJECTS = freenull.$(OBJEXT)
freenull_OBJECTS = $(am_freenull_OBJECTS)
freenull_LDADD = $(LDADD)
freenull_DEPENDENCIES = $(abs_top_builddir)/tls/.libs/libtls.a \
	$(abs_top_builddir)/ssl/.libs/libssl.a \
	$(abs_top_builddir)/crypto/.libs/libcrypto.a \
	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1)
am_gcm128test_OBJECTS = gcm128test.$(OBJEXT)
422
423
424
425
426
427
428







429
430
431
432
433
434
435
	$(abs_top_builddir)/crypto/.libs/libcrypto.a \
	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1)
am_igetest_OBJECTS = igetest.$(OBJEXT)
igetest_OBJECTS = $(am_igetest_OBJECTS)
igetest_LDADD = $(LDADD)
igetest_DEPENDENCIES = $(abs_top_builddir)/tls/.libs/libtls.a \
	$(abs_top_builddir)/ssl/.libs/libssl.a \







	$(abs_top_builddir)/crypto/.libs/libcrypto.a \
	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1)
am_md4test_OBJECTS = md4test.$(OBJEXT)
md4test_OBJECTS = $(am_md4test_OBJECTS)
md4test_LDADD = $(LDADD)
md4test_DEPENDENCIES = $(abs_top_builddir)/tls/.libs/libtls.a \
	$(abs_top_builddir)/ssl/.libs/libssl.a \







>
>
>
>
>
>
>







437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
	$(abs_top_builddir)/crypto/.libs/libcrypto.a \
	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1)
am_igetest_OBJECTS = igetest.$(OBJEXT)
igetest_OBJECTS = $(am_igetest_OBJECTS)
igetest_LDADD = $(LDADD)
igetest_DEPENDENCIES = $(abs_top_builddir)/tls/.libs/libtls.a \
	$(abs_top_builddir)/ssl/.libs/libssl.a \
	$(abs_top_builddir)/crypto/.libs/libcrypto.a \
	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1)
am_keypairtest_OBJECTS = keypairtest.$(OBJEXT)
keypairtest_OBJECTS = $(am_keypairtest_OBJECTS)
keypairtest_LDADD = $(LDADD)
keypairtest_DEPENDENCIES = $(abs_top_builddir)/tls/.libs/libtls.a \
	$(abs_top_builddir)/ssl/.libs/libssl.a \
	$(abs_top_builddir)/crypto/.libs/libcrypto.a \
	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1)
am_md4test_OBJECTS = md4test.$(OBJEXT)
md4test_OBJECTS = $(am_md4test_OBJECTS)
md4test_LDADD = $(LDADD)
md4test_DEPENDENCIES = $(abs_top_builddir)/tls/.libs/libtls.a \
	$(abs_top_builddir)/ssl/.libs/libssl.a \
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
am_tls_prf_OBJECTS = tls_prf.$(OBJEXT)
tls_prf_OBJECTS = $(am_tls_prf_OBJECTS)
tls_prf_LDADD = $(LDADD)
tls_prf_DEPENDENCIES = $(abs_top_builddir)/tls/.libs/libtls.a \
	$(abs_top_builddir)/ssl/.libs/libssl.a \
	$(abs_top_builddir)/crypto/.libs/libcrypto.a \
	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1)
am_tlsexttest_OBJECTS = tlsexttest-tlsexttest.$(OBJEXT)
tlsexttest_OBJECTS = $(am_tlsexttest_OBJECTS)
tlsexttest_LDADD = $(LDADD)
tlsexttest_DEPENDENCIES = $(abs_top_builddir)/tls/.libs/libtls.a \
	$(abs_top_builddir)/ssl/.libs/libssl.a \
	$(abs_top_builddir)/crypto/.libs/libcrypto.a \
	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1)
am__tlstest_SOURCES_DIST = tlstest.c compat/pipe2.c







|







624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
am_tls_prf_OBJECTS = tls_prf.$(OBJEXT)
tls_prf_OBJECTS = $(am_tls_prf_OBJECTS)
tls_prf_LDADD = $(LDADD)
tls_prf_DEPENDENCIES = $(abs_top_builddir)/tls/.libs/libtls.a \
	$(abs_top_builddir)/ssl/.libs/libssl.a \
	$(abs_top_builddir)/crypto/.libs/libcrypto.a \
	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1)
am_tlsexttest_OBJECTS = tlsexttest.$(OBJEXT)
tlsexttest_OBJECTS = $(am_tlsexttest_OBJECTS)
tlsexttest_LDADD = $(LDADD)
tlsexttest_DEPENDENCIES = $(abs_top_builddir)/tls/.libs/libtls.a \
	$(abs_top_builddir)/ssl/.libs/libssl.a \
	$(abs_top_builddir)/crypto/.libs/libcrypto.a \
	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__append_1)
am__tlstest_SOURCES_DIST = tlstest.c compat/pipe2.c
674
675
676
677
678
679
680
681
682
683

684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711

712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730

731
732
733
734
735
736
737
738
	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
	$(AM_LDFLAGS) $(LDFLAGS) -o $@
AM_V_CCLD = $(am__v_CCLD_@AM_V@)
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
am__v_CCLD_0 = @echo "  CCLD    " $@;
am__v_CCLD_1 = 
SOURCES = $(aeadtest_SOURCES) $(aes_wrap_SOURCES) \
	$(arc4randomforktest_SOURCES) $(asn1test_SOURCES) \
	$(asn1time_SOURCES) $(base64test_SOURCES) $(bftest_SOURCES) \
	$(biotest_SOURCES) $(bntest_SOURCES) $(bytestringtest_SOURCES) \

	$(casttest_SOURCES) $(chachatest_SOURCES) \
	$(cipher_list_SOURCES) $(cipherstest_SOURCES) \
	$(clienttest_SOURCES) $(cts128test_SOURCES) $(destest_SOURCES) \
	$(dhtest_SOURCES) $(dsatest_SOURCES) $(ecdhtest_SOURCES) \
	$(ecdsatest_SOURCES) $(ectest_SOURCES) $(enginetest_SOURCES) \
	$(evptest_SOURCES) $(explicit_bzero_SOURCES) \
	$(exptest_SOURCES) $(freenull_SOURCES) $(gcm128test_SOURCES) \
	$(gost2814789t_SOURCES) $(hkdftest_SOURCES) \
	$(hmactest_SOURCES) $(ideatest_SOURCES) $(igetest_SOURCES) \
	$(md4test_SOURCES) $(md5test_SOURCES) $(mont_SOURCES) \
	$(ocsp_test_SOURCES) $(optionstest_SOURCES) $(pbkdf2_SOURCES) \
	$(pidwraptest_SOURCES) $(pkcs7test_SOURCES) \
	$(poly1305test_SOURCES) $(pq_test_SOURCES) $(randtest_SOURCES) \
	$(rc2test_SOURCES) $(rc4test_SOURCES) $(rfc5280time_SOURCES) \
	$(rmdtest_SOURCES) $(rsa_test_SOURCES) $(servertest_SOURCES) \
	$(sha1test_SOURCES) $(sha256test_SOURCES) \
	$(sha512test_SOURCES) $(ssl_versions_SOURCES) \
	$(ssltest_SOURCES) $(timingsafe_SOURCES) \
	$(tls_ext_alpn_SOURCES) $(tls_prf_SOURCES) \
	$(tlsexttest_SOURCES) $(tlstest_SOURCES) $(utf8test_SOURCES) \
	$(verifytest_SOURCES) $(x25519test_SOURCES)
DIST_SOURCES = $(aeadtest_SOURCES) $(aes_wrap_SOURCES) \
	$(am__arc4randomforktest_SOURCES_DIST) $(asn1test_SOURCES) \
	$(asn1time_SOURCES) $(base64test_SOURCES) $(bftest_SOURCES) \
	$(am__biotest_SOURCES_DIST) $(bntest_SOURCES) \
	$(bytestringtest_SOURCES) $(casttest_SOURCES) \
	$(chachatest_SOURCES) $(cipher_list_SOURCES) \
	$(cipherstest_SOURCES) $(clienttest_SOURCES) \

	$(cts128test_SOURCES) $(destest_SOURCES) $(dhtest_SOURCES) \
	$(dsatest_SOURCES) $(ecdhtest_SOURCES) $(ecdsatest_SOURCES) \
	$(ectest_SOURCES) $(enginetest_SOURCES) $(evptest_SOURCES) \
	$(am__explicit_bzero_SOURCES_DIST) $(exptest_SOURCES) \
	$(freenull_SOURCES) $(gcm128test_SOURCES) \
	$(gost2814789t_SOURCES) $(hkdftest_SOURCES) \
	$(hmactest_SOURCES) $(ideatest_SOURCES) $(igetest_SOURCES) \
	$(md4test_SOURCES) $(md5test_SOURCES) $(mont_SOURCES) \
	$(am__ocsp_test_SOURCES_DIST) $(optionstest_SOURCES) \
	$(pbkdf2_SOURCES) $(am__pidwraptest_SOURCES_DIST) \
	$(pkcs7test_SOURCES) $(poly1305test_SOURCES) \
	$(pq_test_SOURCES) $(randtest_SOURCES) $(rc2test_SOURCES) \
	$(rc4test_SOURCES) $(rfc5280time_SOURCES) $(rmdtest_SOURCES) \
	$(rsa_test_SOURCES) $(servertest_SOURCES) $(sha1test_SOURCES) \
	$(sha256test_SOURCES) $(sha512test_SOURCES) \
	$(ssl_versions_SOURCES) $(ssltest_SOURCES) \
	$(timingsafe_SOURCES) $(tls_ext_alpn_SOURCES) \
	$(tls_prf_SOURCES) $(tlsexttest_SOURCES) \
	$(am__tlstest_SOURCES_DIST) $(utf8test_SOURCES) \

	$(verifytest_SOURCES) $(x25519test_SOURCES)
am__can_run_installinfo = \
  case $$AM_UPDATE_INFO_DIR in \
    n|no|NO) false;; \
    *) (install-info --version) >/dev/null 2>&1;; \
  esac
HEADERS = $(noinst_HEADERS)
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)







|
|
|
>
|
|
|






|
|
|










|
|
|
|
|
|
>







|
|
|
|
|
|
|
|
|
|
|
|
>
|







696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
	$(AM_LDFLAGS) $(LDFLAGS) -o $@
AM_V_CCLD = $(am__v_CCLD_@AM_V@)
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
am__v_CCLD_0 = @echo "  CCLD    " $@;
am__v_CCLD_1 = 
SOURCES = $(aeadtest_SOURCES) $(aes_wrap_SOURCES) \
	$(arc4randomforktest_SOURCES) $(asn1evp_SOURCES) \
	$(asn1test_SOURCES) $(asn1time_SOURCES) $(base64test_SOURCES) \
	$(bftest_SOURCES) $(biotest_SOURCES) $(bntest_SOURCES) \
	$(bytestringtest_SOURCES) $(casttest_SOURCES) \
	$(chachatest_SOURCES) $(cipher_list_SOURCES) \
	$(cipherstest_SOURCES) $(clienttest_SOURCES) \
	$(configtest_SOURCES) $(cts128test_SOURCES) $(destest_SOURCES) \
	$(dhtest_SOURCES) $(dsatest_SOURCES) $(ecdhtest_SOURCES) \
	$(ecdsatest_SOURCES) $(ectest_SOURCES) $(enginetest_SOURCES) \
	$(evptest_SOURCES) $(explicit_bzero_SOURCES) \
	$(exptest_SOURCES) $(freenull_SOURCES) $(gcm128test_SOURCES) \
	$(gost2814789t_SOURCES) $(hkdftest_SOURCES) \
	$(hmactest_SOURCES) $(ideatest_SOURCES) $(igetest_SOURCES) \
	$(keypairtest_SOURCES) $(md4test_SOURCES) $(md5test_SOURCES) \
	$(mont_SOURCES) $(ocsp_test_SOURCES) $(optionstest_SOURCES) \
	$(pbkdf2_SOURCES) $(pidwraptest_SOURCES) $(pkcs7test_SOURCES) \
	$(poly1305test_SOURCES) $(pq_test_SOURCES) $(randtest_SOURCES) \
	$(rc2test_SOURCES) $(rc4test_SOURCES) $(rfc5280time_SOURCES) \
	$(rmdtest_SOURCES) $(rsa_test_SOURCES) $(servertest_SOURCES) \
	$(sha1test_SOURCES) $(sha256test_SOURCES) \
	$(sha512test_SOURCES) $(ssl_versions_SOURCES) \
	$(ssltest_SOURCES) $(timingsafe_SOURCES) \
	$(tls_ext_alpn_SOURCES) $(tls_prf_SOURCES) \
	$(tlsexttest_SOURCES) $(tlstest_SOURCES) $(utf8test_SOURCES) \
	$(verifytest_SOURCES) $(x25519test_SOURCES)
DIST_SOURCES = $(aeadtest_SOURCES) $(aes_wrap_SOURCES) \
	$(am__arc4randomforktest_SOURCES_DIST) $(asn1evp_SOURCES) \
	$(asn1test_SOURCES) $(asn1time_SOURCES) $(base64test_SOURCES) \
	$(bftest_SOURCES) $(am__biotest_SOURCES_DIST) \
	$(bntest_SOURCES) $(bytestringtest_SOURCES) \
	$(casttest_SOURCES) $(chachatest_SOURCES) \
	$(cipher_list_SOURCES) $(cipherstest_SOURCES) \
	$(clienttest_SOURCES) $(configtest_SOURCES) \
	$(cts128test_SOURCES) $(destest_SOURCES) $(dhtest_SOURCES) \
	$(dsatest_SOURCES) $(ecdhtest_SOURCES) $(ecdsatest_SOURCES) \
	$(ectest_SOURCES) $(enginetest_SOURCES) $(evptest_SOURCES) \
	$(am__explicit_bzero_SOURCES_DIST) $(exptest_SOURCES) \
	$(freenull_SOURCES) $(gcm128test_SOURCES) \
	$(gost2814789t_SOURCES) $(hkdftest_SOURCES) \
	$(hmactest_SOURCES) $(ideatest_SOURCES) $(igetest_SOURCES) \
	$(keypairtest_SOURCES) $(md4test_SOURCES) $(md5test_SOURCES) \
	$(mont_SOURCES) $(am__ocsp_test_SOURCES_DIST) \
	$(optionstest_SOURCES) $(pbkdf2_SOURCES) \
	$(am__pidwraptest_SOURCES_DIST) $(pkcs7test_SOURCES) \
	$(poly1305test_SOURCES) $(pq_test_SOURCES) $(randtest_SOURCES) \
	$(rc2test_SOURCES) $(rc4test_SOURCES) $(rfc5280time_SOURCES) \
	$(rmdtest_SOURCES) $(rsa_test_SOURCES) $(servertest_SOURCES) \
	$(sha1test_SOURCES) $(sha256test_SOURCES) \
	$(sha512test_SOURCES) $(ssl_versions_SOURCES) \
	$(ssltest_SOURCES) $(timingsafe_SOURCES) \
	$(tls_ext_alpn_SOURCES) $(tls_prf_SOURCES) \
	$(tlsexttest_SOURCES) $(am__tlstest_SOURCES_DIST) \
	$(utf8test_SOURCES) $(verifytest_SOURCES) \
	$(x25519test_SOURCES)
am__can_run_installinfo = \
  case $$AM_UPDATE_INFO_DIR in \
    n|no|NO) false;; \
    *) (install-info --version) >/dev/null 2>&1;; \
  esac
HEADERS = $(noinst_HEADERS)
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112

1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126

1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148

1149
1150
1151
1152
1153
1154
1155
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
AM_CFLAGS = 
AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/include/compat \
	-DLIBRESSL_INTERNAL -D__BEGIN_HIDDEN_DECLS= \
	-D__END_HIDDEN_DECLS= -I $(top_srcdir)/crypto/modes -I \
	$(top_srcdir)/crypto/asn1 -I $(top_srcdir)/ssl -I \
	$(top_srcdir)/apps/openssl -I \
	$(top_srcdir)/apps/openssl/compat \
	-D_PATH_SSL_CA_FILE=\"$(top_srcdir)/apps/openssl/cert.pem\"
LDADD = $(abs_top_builddir)/tls/.libs/libtls.a \
	$(abs_top_builddir)/ssl/.libs/libssl.a \
	$(abs_top_builddir)/crypto/.libs/libcrypto.a $(PLATFORM_LDADD) \
	$(PROG_LDADD) $(am__append_1)
TEST_LOG_DRIVER = env AM_TAP_AWK='$(AWK)' $(SHELL) $(top_srcdir)/tap-driver.sh
EXTRA_DIST = CMakeLists.txt aeadtest.sh aeadtests.txt \
	arc4randomforktest.sh evptest.sh evptests.txt ocsptest.sh \
	ocsptest.bat pidwraptest.sh pq_test.sh pq_test.bat \
	pq_expected.txt rfc5280time_small.test servertest.sh \
	servertest.bat ssltest.sh ssltest.bat testssl testssl.bat \
	ca.pem server.pem testdsa.sh testdsa.bat openssl.cnf \
	testenc.sh testenc.bat testrsa.sh testrsa.bat tlstest.sh \
	tlstest.bat
DISTCLEANFILES = pidwraptest.txt
aeadtest_SOURCES = aeadtest.c
aes_wrap_SOURCES = aes_wrap.c
@HOST_WIN_FALSE@arc4randomforktest_SOURCES = arc4randomforktest.c

asn1test_SOURCES = asn1test.c
asn1time_SOURCES = asn1time.c
base64test_SOURCES = base64test.c
bftest_SOURCES = bftest.c
@ENABLE_EXTRATESTS_TRUE@biotest_SOURCES = biotest.c
bntest_CPPFLAGS = $(AM_CPPFLAGS) -ULIBRESSL_INTERNAL
bntest_SOURCES = bntest.c
bytestringtest_SOURCES = bytestringtest.c
casttest_SOURCES = casttest.c
chachatest_SOURCES = chachatest.c
cipher_list_SOURCES = cipher_list.c
noinst_HEADERS = tests.h
cipherstest_SOURCES = cipherstest.c
clienttest_SOURCES = clienttest.c

cts128test_SOURCES = cts128test.c
destest_SOURCES = destest.c
dhtest_SOURCES = dhtest.c
dsatest_SOURCES = dsatest.c
ecdhtest_SOURCES = ecdhtest.c
ecdsatest_SOURCES = ecdsatest.c
ectest_SOURCES = ectest.c
enginetest_SOURCES = enginetest.c
evptest_SOURCES = evptest.c
@HOST_CYGWIN_FALSE@@HOST_WIN_FALSE@explicit_bzero_SOURCES =  \
@HOST_CYGWIN_FALSE@@HOST_WIN_FALSE@	explicit_bzero.c \
@HOST_CYGWIN_FALSE@@HOST_WIN_FALSE@	$(am__append_8)
exptest_CPPFLAGS = $(AM_CPPFLAGS) -ULIBRESSL_INTERNAL
exptest_SOURCES = exptest.c
freenull_CPPFLAGS = $(AM_CPPFLAGS) -ULIBRESSL_INTERNAL
freenull_SOURCES = freenull.c
gcm128test_SOURCES = gcm128test.c
gost2814789t_SOURCES = gost2814789t.c
hkdftest_SOURCES = hkdf_test.c
hmactest_SOURCES = hmactest.c
ideatest_SOURCES = ideatest.c
igetest_SOURCES = igetest.c

md4test_SOURCES = md4test.c
md5test_SOURCES = md5test.c
mont_SOURCES = mont.c
@ENABLE_EXTRATESTS_TRUE@ocsp_test_SOURCES = ocsp_test.c
optionstest_SOURCES = optionstest.c
pbkdf2_SOURCES = pbkdf2.c
@ENABLE_EXTRATESTS_TRUE@pidwraptest_SOURCES = pidwraptest.c







|








|
|









>














>














<







>







1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167

1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
AM_CFLAGS = 
AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/include/compat \
	-DLIBRESSL_INTERNAL -D__BEGIN_HIDDEN_DECLS= \
	-D__END_HIDDEN_DECLS= -I $(top_srcdir)/crypto/modes -I \
	$(top_srcdir)/crypto/asn1 -I $(top_srcdir)/ssl -I \
	$(top_srcdir)/tls -I $(top_srcdir)/apps/openssl -I \
	$(top_srcdir)/apps/openssl/compat \
	-D_PATH_SSL_CA_FILE=\"$(top_srcdir)/apps/openssl/cert.pem\"
LDADD = $(abs_top_builddir)/tls/.libs/libtls.a \
	$(abs_top_builddir)/ssl/.libs/libssl.a \
	$(abs_top_builddir)/crypto/.libs/libcrypto.a $(PLATFORM_LDADD) \
	$(PROG_LDADD) $(am__append_1)
TEST_LOG_DRIVER = env AM_TAP_AWK='$(AWK)' $(SHELL) $(top_srcdir)/tap-driver.sh
EXTRA_DIST = CMakeLists.txt aeadtest.sh aeadtests.txt \
	arc4randomforktest.sh evptest.sh evptests.txt keypairtest.sh \
	ocsptest.sh ocsptest.bat pidwraptest.sh pq_test.sh pq_test.bat \
	pq_expected.txt rfc5280time_small.test servertest.sh \
	servertest.bat ssltest.sh ssltest.bat testssl testssl.bat \
	ca.pem server.pem testdsa.sh testdsa.bat openssl.cnf \
	testenc.sh testenc.bat testrsa.sh testrsa.bat tlstest.sh \
	tlstest.bat
DISTCLEANFILES = pidwraptest.txt
aeadtest_SOURCES = aeadtest.c
aes_wrap_SOURCES = aes_wrap.c
@HOST_WIN_FALSE@arc4randomforktest_SOURCES = arc4randomforktest.c
asn1evp_SOURCES = asn1evp.c
asn1test_SOURCES = asn1test.c
asn1time_SOURCES = asn1time.c
base64test_SOURCES = base64test.c
bftest_SOURCES = bftest.c
@ENABLE_EXTRATESTS_TRUE@biotest_SOURCES = biotest.c
bntest_CPPFLAGS = $(AM_CPPFLAGS) -ULIBRESSL_INTERNAL
bntest_SOURCES = bntest.c
bytestringtest_SOURCES = bytestringtest.c
casttest_SOURCES = casttest.c
chachatest_SOURCES = chachatest.c
cipher_list_SOURCES = cipher_list.c
noinst_HEADERS = tests.h
cipherstest_SOURCES = cipherstest.c
clienttest_SOURCES = clienttest.c
configtest_SOURCES = configtest.c
cts128test_SOURCES = cts128test.c
destest_SOURCES = destest.c
dhtest_SOURCES = dhtest.c
dsatest_SOURCES = dsatest.c
ecdhtest_SOURCES = ecdhtest.c
ecdsatest_SOURCES = ecdsatest.c
ectest_SOURCES = ectest.c
enginetest_SOURCES = enginetest.c
evptest_SOURCES = evptest.c
@HOST_CYGWIN_FALSE@@HOST_WIN_FALSE@explicit_bzero_SOURCES =  \
@HOST_CYGWIN_FALSE@@HOST_WIN_FALSE@	explicit_bzero.c \
@HOST_CYGWIN_FALSE@@HOST_WIN_FALSE@	$(am__append_8)
exptest_CPPFLAGS = $(AM_CPPFLAGS) -ULIBRESSL_INTERNAL
exptest_SOURCES = exptest.c

freenull_SOURCES = freenull.c
gcm128test_SOURCES = gcm128test.c
gost2814789t_SOURCES = gost2814789t.c
hkdftest_SOURCES = hkdf_test.c
hmactest_SOURCES = hmactest.c
ideatest_SOURCES = ideatest.c
igetest_SOURCES = igetest.c
keypairtest_SOURCES = keypairtest.c
md4test_SOURCES = md4test.c
md5test_SOURCES = md5test.c
mont_SOURCES = mont.c
@ENABLE_EXTRATESTS_TRUE@ocsp_test_SOURCES = ocsp_test.c
optionstest_SOURCES = optionstest.c
pbkdf2_SOURCES = pbkdf2.c
@ENABLE_EXTRATESTS_TRUE@pidwraptest_SOURCES = pidwraptest.c
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
servertest_SOURCES = servertest.c
sha1test_SOURCES = sha1test.c
sha256test_SOURCES = sha256test.c
sha512test_SOURCES = sha512test.c
ssl_versions_SOURCES = ssl_versions.c
ssltest_SOURCES = ssltest.c
timingsafe_SOURCES = timingsafe.c
tlsexttest_CPPFLAGS = $(AM_CPPFLAGS) -ULIBRESSL_INTERNAL
tlsexttest_SOURCES = tlsexttest.c
tlstest_SOURCES = tlstest.c $(am__append_15)
tls_ext_alpn_SOURCES = tls_ext_alpn.c
tls_prf_SOURCES = tls_prf.c
utf8test_SOURCES = utf8test.c
verifytest_SOURCES = verifytest.c
x25519test_SOURCES = x25519test.c







<







1192
1193
1194
1195
1196
1197
1198

1199
1200
1201
1202
1203
1204
1205
servertest_SOURCES = servertest.c
sha1test_SOURCES = sha1test.c
sha256test_SOURCES = sha256test.c
sha512test_SOURCES = sha512test.c
ssl_versions_SOURCES = ssl_versions.c
ssltest_SOURCES = ssltest.c
timingsafe_SOURCES = timingsafe.c

tlsexttest_SOURCES = tlsexttest.c
tlstest_SOURCES = tlstest.c $(am__append_15)
tls_ext_alpn_SOURCES = tls_ext_alpn.c
tls_prf_SOURCES = tls_prf.c
utf8test_SOURCES = utf8test.c
verifytest_SOURCES = verifytest.c
x25519test_SOURCES = x25519test.c
1228
1229
1230
1231
1232
1233
1234




1235
1236
1237
1238
1239
1240
1241
aes_wrap$(EXEEXT): $(aes_wrap_OBJECTS) $(aes_wrap_DEPENDENCIES) $(EXTRA_aes_wrap_DEPENDENCIES) 
	@rm -f aes_wrap$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(aes_wrap_OBJECTS) $(aes_wrap_LDADD) $(LIBS)

arc4randomforktest$(EXEEXT): $(arc4randomforktest_OBJECTS) $(arc4randomforktest_DEPENDENCIES) $(EXTRA_arc4randomforktest_DEPENDENCIES) 
	@rm -f arc4randomforktest$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(arc4randomforktest_OBJECTS) $(arc4randomforktest_LDADD) $(LIBS)





asn1test$(EXEEXT): $(asn1test_OBJECTS) $(asn1test_DEPENDENCIES) $(EXTRA_asn1test_DEPENDENCIES) 
	@rm -f asn1test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(asn1test_OBJECTS) $(asn1test_LDADD) $(LIBS)

asn1time$(EXEEXT): $(asn1time_OBJECTS) $(asn1time_DEPENDENCIES) $(EXTRA_asn1time_DEPENDENCIES) 
	@rm -f asn1time$(EXEEXT)







>
>
>
>







1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
aes_wrap$(EXEEXT): $(aes_wrap_OBJECTS) $(aes_wrap_DEPENDENCIES) $(EXTRA_aes_wrap_DEPENDENCIES) 
	@rm -f aes_wrap$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(aes_wrap_OBJECTS) $(aes_wrap_LDADD) $(LIBS)

arc4randomforktest$(EXEEXT): $(arc4randomforktest_OBJECTS) $(arc4randomforktest_DEPENDENCIES) $(EXTRA_arc4randomforktest_DEPENDENCIES) 
	@rm -f arc4randomforktest$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(arc4randomforktest_OBJECTS) $(arc4randomforktest_LDADD) $(LIBS)

asn1evp$(EXEEXT): $(asn1evp_OBJECTS) $(asn1evp_DEPENDENCIES) $(EXTRA_asn1evp_DEPENDENCIES) 
	@rm -f asn1evp$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(asn1evp_OBJECTS) $(asn1evp_LDADD) $(LIBS)

asn1test$(EXEEXT): $(asn1test_OBJECTS) $(asn1test_DEPENDENCIES) $(EXTRA_asn1test_DEPENDENCIES) 
	@rm -f asn1test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(asn1test_OBJECTS) $(asn1test_LDADD) $(LIBS)

asn1time$(EXEEXT): $(asn1time_OBJECTS) $(asn1time_DEPENDENCIES) $(EXTRA_asn1time_DEPENDENCIES) 
	@rm -f asn1time$(EXEEXT)
1276
1277
1278
1279
1280
1281
1282




1283
1284
1285
1286
1287
1288
1289
cipherstest$(EXEEXT): $(cipherstest_OBJECTS) $(cipherstest_DEPENDENCIES) $(EXTRA_cipherstest_DEPENDENCIES) 
	@rm -f cipherstest$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(cipherstest_OBJECTS) $(cipherstest_LDADD) $(LIBS)

clienttest$(EXEEXT): $(clienttest_OBJECTS) $(clienttest_DEPENDENCIES) $(EXTRA_clienttest_DEPENDENCIES) 
	@rm -f clienttest$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(clienttest_OBJECTS) $(clienttest_LDADD) $(LIBS)





cts128test$(EXEEXT): $(cts128test_OBJECTS) $(cts128test_DEPENDENCIES) $(EXTRA_cts128test_DEPENDENCIES) 
	@rm -f cts128test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(cts128test_OBJECTS) $(cts128test_LDADD) $(LIBS)

destest$(EXEEXT): $(destest_OBJECTS) $(destest_DEPENDENCIES) $(EXTRA_destest_DEPENDENCIES) 
	@rm -f destest$(EXEEXT)







>
>
>
>







1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
cipherstest$(EXEEXT): $(cipherstest_OBJECTS) $(cipherstest_DEPENDENCIES) $(EXTRA_cipherstest_DEPENDENCIES) 
	@rm -f cipherstest$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(cipherstest_OBJECTS) $(cipherstest_LDADD) $(LIBS)

clienttest$(EXEEXT): $(clienttest_OBJECTS) $(clienttest_DEPENDENCIES) $(EXTRA_clienttest_DEPENDENCIES) 
	@rm -f clienttest$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(clienttest_OBJECTS) $(clienttest_LDADD) $(LIBS)

configtest$(EXEEXT): $(configtest_OBJECTS) $(configtest_DEPENDENCIES) $(EXTRA_configtest_DEPENDENCIES) 
	@rm -f configtest$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(configtest_OBJECTS) $(configtest_LDADD) $(LIBS)

cts128test$(EXEEXT): $(cts128test_OBJECTS) $(cts128test_DEPENDENCIES) $(EXTRA_cts128test_DEPENDENCIES) 
	@rm -f cts128test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(cts128test_OBJECTS) $(cts128test_LDADD) $(LIBS)

destest$(EXEEXT): $(destest_OBJECTS) $(destest_DEPENDENCIES) $(EXTRA_destest_DEPENDENCIES) 
	@rm -f destest$(EXEEXT)
1356
1357
1358
1359
1360
1361
1362




1363
1364
1365
1366
1367
1368
1369
ideatest$(EXEEXT): $(ideatest_OBJECTS) $(ideatest_DEPENDENCIES) $(EXTRA_ideatest_DEPENDENCIES) 
	@rm -f ideatest$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(ideatest_OBJECTS) $(ideatest_LDADD) $(LIBS)

igetest$(EXEEXT): $(igetest_OBJECTS) $(igetest_DEPENDENCIES) $(EXTRA_igetest_DEPENDENCIES) 
	@rm -f igetest$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(igetest_OBJECTS) $(igetest_LDADD) $(LIBS)





md4test$(EXEEXT): $(md4test_OBJECTS) $(md4test_DEPENDENCIES) $(EXTRA_md4test_DEPENDENCIES) 
	@rm -f md4test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(md4test_OBJECTS) $(md4test_LDADD) $(LIBS)

md5test$(EXEEXT): $(md5test_OBJECTS) $(md5test_DEPENDENCIES) $(EXTRA_md5test_DEPENDENCIES) 
	@rm -f md5test$(EXEEXT)







>
>
>
>







1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
ideatest$(EXEEXT): $(ideatest_OBJECTS) $(ideatest_DEPENDENCIES) $(EXTRA_ideatest_DEPENDENCIES) 
	@rm -f ideatest$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(ideatest_OBJECTS) $(ideatest_LDADD) $(LIBS)

igetest$(EXEEXT): $(igetest_OBJECTS) $(igetest_DEPENDENCIES) $(EXTRA_igetest_DEPENDENCIES) 
	@rm -f igetest$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(igetest_OBJECTS) $(igetest_LDADD) $(LIBS)

keypairtest$(EXEEXT): $(keypairtest_OBJECTS) $(keypairtest_DEPENDENCIES) $(EXTRA_keypairtest_DEPENDENCIES) 
	@rm -f keypairtest$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(keypairtest_OBJECTS) $(keypairtest_LDADD) $(LIBS)

md4test$(EXEEXT): $(md4test_OBJECTS) $(md4test_DEPENDENCIES) $(EXTRA_md4test_DEPENDENCIES) 
	@rm -f md4test$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(md4test_OBJECTS) $(md4test_LDADD) $(LIBS)

md5test$(EXEEXT): $(md5test_OBJECTS) $(md5test_DEPENDENCIES) $(EXTRA_md5test_DEPENDENCIES) 
	@rm -f md5test$(EXEEXT)
1489
1490
1491
1492
1493
1494
1495

1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507

1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525

1526
1527
1528
1529
1530
1531
1532

distclean-compile:
	-rm -f *.tab.c

@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/aeadtest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/aes_wrap.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/arc4randomforktest.Po@am__quote@

@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asn1test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asn1time.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/base64test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bftest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/biotest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bntest-bntest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bytestringtest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/casttest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chachatest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cipher_list.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cipherstest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clienttest.Po@am__quote@

@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cts128test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/destest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhtest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dsatest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecdhtest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecdsatest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ectest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/enginetest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evptest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/explicit_bzero.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exptest-exptest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/freenull-freenull.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gcm128test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gost2814789t.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hkdf_test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hmactest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ideatest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/igetest.Po@am__quote@

@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md4test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md5test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mont.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ocsp_test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/optionstest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pbkdf2.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidwraptest.Po@am__quote@







>












>











|






>







1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573

distclean-compile:
	-rm -f *.tab.c

@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/aeadtest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/aes_wrap.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/arc4randomforktest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asn1evp.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asn1test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asn1time.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/base64test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bftest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/biotest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bntest-bntest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bytestringtest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/casttest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chachatest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cipher_list.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cipherstest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clienttest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/configtest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cts128test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/destest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dhtest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dsatest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecdhtest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecdsatest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ectest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/enginetest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evptest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/explicit_bzero.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exptest-exptest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/freenull.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gcm128test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gost2814789t.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hkdf_test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hmactest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ideatest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/igetest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keypairtest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md4test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md5test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mont.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ocsp_test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/optionstest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pbkdf2.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidwraptest.Po@am__quote@
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sha256test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sha512test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ssl_versions.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ssltest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timingsafe.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tls_ext_alpn.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tls_prf.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tlsexttest-tlsexttest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tlstest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utf8test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/verifytest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/x25519test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/memmem.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/pipe2.Po@am__quote@








|







1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sha256test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sha512test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ssl_versions.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ssltest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timingsafe.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tls_ext_alpn.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tls_prf.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tlsexttest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tlstest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utf8test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/verifytest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/x25519test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/memmem.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/pipe2.Po@am__quote@

1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
exptest-exptest.obj: exptest.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(exptest_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT exptest-exptest.obj -MD -MP -MF $(DEPDIR)/exptest-exptest.Tpo -c -o exptest-exptest.obj `if test -f 'exptest.c'; then $(CYGPATH_W) 'exptest.c'; else $(CYGPATH_W) '$(srcdir)/exptest.c'; fi`
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/exptest-exptest.Tpo $(DEPDIR)/exptest-exptest.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='exptest.c' object='exptest-exptest.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(exptest_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o exptest-exptest.obj `if test -f 'exptest.c'; then $(CYGPATH_W) 'exptest.c'; else $(CYGPATH_W) '$(srcdir)/exptest.c'; fi`

freenull-freenull.o: freenull.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(freenull_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT freenull-freenull.o -MD -MP -MF $(DEPDIR)/freenull-freenull.Tpo -c -o freenull-freenull.o `test -f 'freenull.c' || echo '$(srcdir)/'`freenull.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/freenull-freenull.Tpo $(DEPDIR)/freenull-freenull.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='freenull.c' object='freenull-freenull.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(freenull_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o freenull-freenull.o `test -f 'freenull.c' || echo '$(srcdir)/'`freenull.c

freenull-freenull.obj: freenull.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(freenull_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT freenull-freenull.obj -MD -MP -MF $(DEPDIR)/freenull-freenull.Tpo -c -o freenull-freenull.obj `if test -f 'freenull.c'; then $(CYGPATH_W) 'freenull.c'; else $(CYGPATH_W) '$(srcdir)/freenull.c'; fi`
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/freenull-freenull.Tpo $(DEPDIR)/freenull-freenull.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='freenull.c' object='freenull-freenull.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(freenull_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o freenull-freenull.obj `if test -f 'freenull.c'; then $(CYGPATH_W) 'freenull.c'; else $(CYGPATH_W) '$(srcdir)/freenull.c'; fi`

tlsexttest-tlsexttest.o: tlsexttest.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(tlsexttest_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tlsexttest-tlsexttest.o -MD -MP -MF $(DEPDIR)/tlsexttest-tlsexttest.Tpo -c -o tlsexttest-tlsexttest.o `test -f 'tlsexttest.c' || echo '$(srcdir)/'`tlsexttest.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/tlsexttest-tlsexttest.Tpo $(DEPDIR)/tlsexttest-tlsexttest.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tlsexttest.c' object='tlsexttest-tlsexttest.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(tlsexttest_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o tlsexttest-tlsexttest.o `test -f 'tlsexttest.c' || echo '$(srcdir)/'`tlsexttest.c

tlsexttest-tlsexttest.obj: tlsexttest.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(tlsexttest_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tlsexttest-tlsexttest.obj -MD -MP -MF $(DEPDIR)/tlsexttest-tlsexttest.Tpo -c -o tlsexttest-tlsexttest.obj `if test -f 'tlsexttest.c'; then $(CYGPATH_W) 'tlsexttest.c'; else $(CYGPATH_W) '$(srcdir)/tlsexttest.c'; fi`
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/tlsexttest-tlsexttest.Tpo $(DEPDIR)/tlsexttest-tlsexttest.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tlsexttest.c' object='tlsexttest-tlsexttest.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(tlsexttest_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o tlsexttest-tlsexttest.obj `if test -f 'tlsexttest.c'; then $(CYGPATH_W) 'tlsexttest.c'; else $(CYGPATH_W) '$(srcdir)/tlsexttest.c'; fi`

mostlyclean-libtool:
	-rm -f *.lo

clean-libtool:
	-rm -rf .libs _libs

ID: $(am__tagged_files)







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







1645
1646
1647
1648
1649
1650
1651




























1652
1653
1654
1655
1656
1657
1658
exptest-exptest.obj: exptest.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(exptest_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT exptest-exptest.obj -MD -MP -MF $(DEPDIR)/exptest-exptest.Tpo -c -o exptest-exptest.obj `if test -f 'exptest.c'; then $(CYGPATH_W) 'exptest.c'; else $(CYGPATH_W) '$(srcdir)/exptest.c'; fi`
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/exptest-exptest.Tpo $(DEPDIR)/exptest-exptest.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='exptest.c' object='exptest-exptest.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(exptest_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o exptest-exptest.obj `if test -f 'exptest.c'; then $(CYGPATH_W) 'exptest.c'; else $(CYGPATH_W) '$(srcdir)/exptest.c'; fi`





























mostlyclean-libtool:
	-rm -f *.lo

clean-libtool:
	-rm -rf .libs _libs

ID: $(am__tagged_files)
1852
1853
1854
1855
1856
1857
1858







1859
1860
1861
1862
1863
1864
1865
arc4randomforktest.sh.log: arc4randomforktest.sh
	@p='arc4randomforktest.sh'; \
	b='arc4randomforktest.sh'; \
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)







asn1test.log: asn1test$(EXEEXT)
	@p='asn1test$(EXEEXT)'; \
	b='asn1test'; \
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)







>
>
>
>
>
>
>







1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
arc4randomforktest.sh.log: arc4randomforktest.sh
	@p='arc4randomforktest.sh'; \
	b='arc4randomforktest.sh'; \
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
asn1evp.log: asn1evp$(EXEEXT)
	@p='asn1evp$(EXEEXT)'; \
	b='asn1evp'; \
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
asn1test.log: asn1test$(EXEEXT)
	@p='asn1test$(EXEEXT)'; \
	b='asn1test'; \
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
1932
1933
1934
1935
1936
1937
1938







1939
1940
1941
1942
1943
1944
1945
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
clienttest.log: clienttest$(EXEEXT)
	@p='clienttest$(EXEEXT)'; \
	b='clienttest'; \







	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
cts128test.log: cts128test$(EXEEXT)
	@p='cts128test$(EXEEXT)'; \
	b='cts128test'; \







>
>
>
>
>
>
>







1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
clienttest.log: clienttest$(EXEEXT)
	@p='clienttest$(EXEEXT)'; \
	b='clienttest'; \
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
configtest.log: configtest$(EXEEXT)
	@p='configtest$(EXEEXT)'; \
	b='configtest'; \
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
cts128test.log: cts128test$(EXEEXT)
	@p='cts128test$(EXEEXT)'; \
	b='cts128test'; \
2058
2059
2060
2061
2062
2063
2064







2065
2066
2067
2068
2069
2070
2071
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
igetest.log: igetest$(EXEEXT)
	@p='igetest$(EXEEXT)'; \
	b='igetest'; \







	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
md4test.log: md4test$(EXEEXT)
	@p='md4test$(EXEEXT)'; \
	b='md4test'; \







>
>
>
>
>
>
>







2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
igetest.log: igetest$(EXEEXT)
	@p='igetest$(EXEEXT)'; \
	b='igetest'; \
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
keypairtest.sh.log: keypairtest.sh
	@p='keypairtest.sh'; \
	b='keypairtest.sh'; \
	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
	--log-file $$b.log --trs-file $$b.trs \
	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
	"$$tst" $(AM_TESTS_FD_REDIRECT)
md4test.log: md4test$(EXEEXT)
	@p='md4test$(EXEEXT)'; \
	b='md4test'; \
Added jni/libressl/tests/asn1evp.c.


































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
/* $OpenBSD: asn1evp.c,v 1.2 2017/12/09 14:34:09 jsing Exp $ */
/*
 * Copyright (c) 2017 Joel Sing <jsing@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

#include <limits.h>
#include <stdio.h>
#include <string.h>

#include <openssl/asn1.h>

#define TEST_NUM 0x7fffffffL

unsigned char asn1_atios[] = {
	0x30, 0x10, 0x02, 0x04, 0x7f, 0xff, 0xff, 0xff,
	0x04, 0x08, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
	0x06, 0x07,
};

unsigned char test_octetstring[] = {
	0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
};

static void
hexdump(const unsigned char *buf, size_t len)
{
        size_t i;

        for (i = 1; i <= len; i++)
                fprintf(stderr, " 0x%02hhx,%s", buf[i - 1], i % 8 ? "" : "\n");

        fprintf(stderr, "\n");
}

static int
compare_data(const char *label, const unsigned char *d1, size_t d1_len,
    const unsigned char *d2, size_t d2_len)
{
	if (d1_len != d2_len) {
		fprintf(stderr, "FAIL: got %s with length %zu, want %zu\n",
		    label, d1_len, d2_len);
		return -1;
	}
	if (memcmp(d1, d2, d1_len) != 0) {
		fprintf(stderr, "FAIL: %s differs\n", label);
		fprintf(stderr, "got:\n");
		hexdump(d1, d1_len);
		fprintf(stderr, "want:\n");
		hexdump(d2, d2_len);
		return -1;
	}
	return 0;
}

int
main(int argc, char **argv)
{
	unsigned char data[16];
	long num = TEST_NUM;
	int failed = 1;
	ASN1_TYPE at;
	int len;

	memset(&at, 0, sizeof(at));

	if (!ASN1_TYPE_set_int_octetstring(&at, num, test_octetstring,
	    sizeof(test_octetstring))) {
		fprintf(stderr, "FAIL: ASN1_TYPE_set_int_octetstring failed\n");
		goto done;
	}
	if (at.type != V_ASN1_SEQUENCE) {
		fprintf(stderr, "FAIL: not a V_ASN1_SEQUENCE (%i != %i)\n",
		    at.type, V_ASN1_SEQUENCE);
		goto done;
	}
	if (at.value.sequence->type != V_ASN1_OCTET_STRING) {
		fprintf(stderr, "FAIL: not a V_ASN1_OCTET_STRING (%i != %i)\n",
		    at.type, V_ASN1_OCTET_STRING);
		goto done;
	}
	if (compare_data("sequence", at.value.sequence->data,
	    at.value.sequence->length, asn1_atios, sizeof(asn1_atios)) == -1)
		goto done;

	memset(&data, 0, sizeof(data));
	num = 0;

	if ((len = ASN1_TYPE_get_int_octetstring(&at, &num, data,
	    sizeof(data))) < 0) {
		fprintf(stderr, "FAIL: ASN1_TYPE_get_int_octetstring failed\n");
		goto done;
	}
	if (num != TEST_NUM) {
		fprintf(stderr, "FAIL: got num %li, want %li\n", num, TEST_NUM);
		goto done;
	}
	if (compare_data("octet string", data, len,
	    test_octetstring, sizeof(test_octetstring)) == -1)
		goto done;
	if (data[len] != 0) {
		fprintf(stderr, "FAIL: octet string overflowed buffer\n");
		goto done;
	}

	memset(&data, 0, sizeof(data));
	num = 0;

	/* With a limit buffer, the output should be truncated... */
	if ((len = ASN1_TYPE_get_int_octetstring(&at, &num, data, 4)) < 0) {
		fprintf(stderr, "FAIL: ASN1_TYPE_get_int_octetstring failed\n");
		goto done;
	}
	if (num != TEST_NUM) {
		fprintf(stderr, "FAIL: got num %li, want %li\n", num, TEST_NUM);
		goto done;
	}
	if (len != sizeof(test_octetstring)) {
		fprintf(stderr, "FAIL: got length mismatch (%i != %zu)\n",
		    len, sizeof(test_octetstring));
		goto done;
	}
	if (compare_data("octet string", data, 4, test_octetstring, 4) == -1)
		goto done;
	if (data[4] != 0) {
		fprintf(stderr, "FAIL: octet string overflowed buffer\n");
		goto done;
	}

	failed = 0;

 done:
	return failed;
}
Changes to jni/libressl/tests/bytestringtest.c.
1
2
3
4
5
6
7
8
/*	$OpenBSD: bytestringtest.c,v 1.10 2015/10/25 20:15:06 doug Exp $	*/
/*
 * Copyright (c) 2014, Google Inc.
 *
 * Permission to use, copy, modify, and/or distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
|







1
2
3
4
5
6
7
8
/*	$OpenBSD: bytestringtest.c,v 1.11 2017/11/28 16:35:05 jsing Exp $	*/
/*
 * Copyright (c) 2014, Google Inc.
 *
 * Permission to use, copy, modify, and/or distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
346
347
348
349
350
351
352

353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371





















































372
373
374
375
376
377
378
}

static int
test_cbb_prefixed(void)
{
	static const uint8_t kExpected[] = {0, 1, 1, 0, 2, 2, 3, 0, 0, 3,
	    4, 5, 6, 5, 4, 1, 0, 1, 2};

	uint8_t *buf = NULL;
	size_t buf_len;
	CBB cbb, contents, inner_contents, inner_inner_contents;
	int ret = 0;

	CHECK(CBB_init(&cbb, 0));
	CHECK_GOTO(CBB_add_u8_length_prefixed(&cbb, &contents));
	CHECK_GOTO(CBB_add_u8_length_prefixed(&cbb, &contents));
	CHECK_GOTO(CBB_add_u8(&contents, 1));
	CHECK_GOTO(CBB_add_u16_length_prefixed(&cbb, &contents));
	CHECK_GOTO(CBB_add_u16(&contents, 0x203));
	CHECK_GOTO(CBB_add_u24_length_prefixed(&cbb, &contents));
	CHECK_GOTO(CBB_add_u24(&contents, 0x40506));
	CHECK_GOTO(CBB_add_u8_length_prefixed(&cbb, &contents));
	CHECK_GOTO(CBB_add_u8_length_prefixed(&contents, &inner_contents));
	CHECK_GOTO(CBB_add_u8(&inner_contents, 1));
	CHECK_GOTO(CBB_add_u16_length_prefixed(&inner_contents,
	    &inner_inner_contents));
	CHECK_GOTO(CBB_add_u8(&inner_inner_contents, 2));





















































	CHECK_GOTO(CBB_finish(&cbb, &buf, &buf_len));

	ret = (buf_len == sizeof(kExpected)
	    && memcmp(buf, kExpected, buf_len) == 0);

	if (0) {
err:







>


<
















>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







346
347
348
349
350
351
352
353
354
355

356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
}

static int
test_cbb_prefixed(void)
{
	static const uint8_t kExpected[] = {0, 1, 1, 0, 2, 2, 3, 0, 0, 3,
	    4, 5, 6, 5, 4, 1, 0, 1, 2};
	CBB cbb, contents, inner_contents, inner_inner_contents;
	uint8_t *buf = NULL;
	size_t buf_len;

	int ret = 0;

	CHECK(CBB_init(&cbb, 0));
	CHECK_GOTO(CBB_add_u8_length_prefixed(&cbb, &contents));
	CHECK_GOTO(CBB_add_u8_length_prefixed(&cbb, &contents));
	CHECK_GOTO(CBB_add_u8(&contents, 1));
	CHECK_GOTO(CBB_add_u16_length_prefixed(&cbb, &contents));
	CHECK_GOTO(CBB_add_u16(&contents, 0x203));
	CHECK_GOTO(CBB_add_u24_length_prefixed(&cbb, &contents));
	CHECK_GOTO(CBB_add_u24(&contents, 0x40506));
	CHECK_GOTO(CBB_add_u8_length_prefixed(&cbb, &contents));
	CHECK_GOTO(CBB_add_u8_length_prefixed(&contents, &inner_contents));
	CHECK_GOTO(CBB_add_u8(&inner_contents, 1));
	CHECK_GOTO(CBB_add_u16_length_prefixed(&inner_contents,
	    &inner_inner_contents));
	CHECK_GOTO(CBB_add_u8(&inner_inner_contents, 2));
	CHECK_GOTO(CBB_finish(&cbb, &buf, &buf_len));

	ret = (buf_len == sizeof(kExpected)
	    && memcmp(buf, kExpected, buf_len) == 0);

	if (0) {
err:
		CBB_cleanup(&cbb);
	}
	free(buf);
	return ret;
}

static int
test_cbb_discard_child(void)
{
	static const uint8_t kExpected[] = {
		0xaa,
		0,
		1, 0xbb,
		0, 2, 0xcc, 0xcc,
		0, 0, 3, 0xdd, 0xdd, 0xdd,
		1, 0xff,
	};
	CBB cbb, contents, inner_contents, inner_inner_contents;
	uint8_t *buf = NULL;
	size_t buf_len;
	int ret = 0;

	CHECK(CBB_init(&cbb, 0));
	CHECK_GOTO(CBB_add_u8(&cbb, 0xaa));

	// Discarding |cbb|'s children preserves the byte written.
	CBB_discard_child(&cbb);

	CHECK_GOTO(CBB_add_u8_length_prefixed(&cbb, &contents));
	CHECK_GOTO(CBB_add_u8_length_prefixed(&cbb, &contents));
	CHECK_GOTO(CBB_add_u8(&contents, 0xbb));
	CHECK_GOTO(CBB_add_u16_length_prefixed(&cbb, &contents));
	CHECK_GOTO(CBB_add_u16(&contents, 0xcccc));
	CHECK_GOTO(CBB_add_u24_length_prefixed(&cbb, &contents));
	CHECK_GOTO(CBB_add_u24(&contents, 0xdddddd));
	CHECK_GOTO(CBB_add_u8_length_prefixed(&cbb, &contents));
	CHECK_GOTO(CBB_add_u8(&contents, 0xff));
	CHECK_GOTO(CBB_add_u8_length_prefixed(&contents, &inner_contents));
	CHECK_GOTO(CBB_add_u8(&inner_contents, 0x42));
	CHECK_GOTO(CBB_add_u16_length_prefixed(&inner_contents,
	    &inner_inner_contents));
	CHECK_GOTO(CBB_add_u8(&inner_inner_contents, 0x99));

	// Discard everything from |inner_contents| down.
	CBB_discard_child(&contents);

	CHECK_GOTO(CBB_finish(&cbb, &buf, &buf_len));

	ret = (buf_len == sizeof(kExpected)
	    && memcmp(buf, kExpected, buf_len) == 0);

	if (0) {
err:
801
802
803
804
805
806
807

808
809
810
811
812
813
814
	failed |= !test_get_u();
	failed |= !test_get_prefixed();
	failed |= !test_get_prefixed_bad();
	failed |= !test_get_asn1();
	failed |= !test_cbb_basic();
	failed |= !test_cbb_fixed();
	failed |= !test_cbb_finish_child();

	failed |= !test_cbb_misuse();
	failed |= !test_cbb_prefixed();
	failed |= !test_cbb_asn1();
	failed |= !test_indefinite_convert();
	failed |= !test_asn1_uint64();
	failed |= !test_get_optional_asn1_bool();
	failed |= !test_offset();







>







854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
	failed |= !test_get_u();
	failed |= !test_get_prefixed();
	failed |= !test_get_prefixed_bad();
	failed |= !test_get_asn1();
	failed |= !test_cbb_basic();
	failed |= !test_cbb_fixed();
	failed |= !test_cbb_finish_child();
	failed |= !test_cbb_discard_child();
	failed |= !test_cbb_misuse();
	failed |= !test_cbb_prefixed();
	failed |= !test_cbb_asn1();
	failed |= !test_indefinite_convert();
	failed |= !test_asn1_uint64();
	failed |= !test_get_optional_asn1_bool();
	failed |= !test_offset();
Changes to jni/libressl/tests/cipher_list.c.
1
2
3
4
5
6
7
8
/*	$OpenBSD: cipher_list.c,v 1.6 2017/08/28 17:32:04 jsing Exp $	*/
/*
 * Copyright (c) 2015 Doug Hogan <doug@openbsd.org>
 * Copyright (c) 2015 Joel Sing <jsing@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
|







1
2
3
4
5
6
7
8
/*	$OpenBSD: cipher_list.c,v 1.8 2017/10/11 17:35:53 jsing Exp $	*/
/*
 * Copyright (c) 2015 Doug Hogan <doug@openbsd.org>
 * Copyright (c) 2015 Joel Sing <jsing@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75

76
77


78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94

95
96
97
98
99
100
101
102
103

104

105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120

121
122
123
124
125
126
127
128
129
130
131
132
133
134

135

136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151

152
153
154
155

156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
	0x009c,		/* AES128-GCM-SHA256 */
	0x003d,		/* AES256-SHA256 */
	0x0009,		/* DES-CBC-SHA */
};

#define N_CIPHERS (sizeof(cipher_bytes) / 2)

extern STACK_OF(SSL_CIPHER) *ssl_bytes_to_cipher_list(SSL *s,
    const unsigned char *p, int num);
extern int ssl_cipher_list_to_bytes(SSL *s, STACK_OF(SSL_CIPHER) *sk,
    unsigned char *p, size_t len, size_t *outlen);

static int
ssl_bytes_to_list_alloc(SSL *s, STACK_OF(SSL_CIPHER) **ciphers)
{
	SSL_CIPHER *cipher;
	uint16_t value;

	int i;



	*ciphers = ssl_bytes_to_cipher_list(s, cipher_bytes,
	    sizeof(cipher_bytes));
	CHECK(*ciphers != NULL);
	CHECK(sk_SSL_CIPHER_num(*ciphers) == N_CIPHERS);
	for (i = 0; i < sk_SSL_CIPHER_num(*ciphers); i++) {
		cipher = sk_SSL_CIPHER_value(*ciphers, i);
		CHECK(cipher != NULL);
		value = SSL_CIPHER_get_value(cipher);
		CHECK(value == cipher_values[i]);
	}

	return 1;
}

static int
ssl_list_to_bytes_scsv(SSL *s, STACK_OF(SSL_CIPHER) **ciphers)
{

	unsigned char *buf = NULL;
	size_t buflen, outlen;
	int ret = 0;

	/* Space for cipher bytes, plus reneg SCSV and two spare bytes. */
	CHECK(sk_SSL_CIPHER_num(*ciphers) == N_CIPHERS);
	buflen = sizeof(cipher_bytes) + 2 + 2;
	CHECK((buf = calloc(1, buflen)) != NULL);


	CHECK(ssl_cipher_list_to_bytes(s, *ciphers, buf, buflen, &outlen));


	CHECK_GOTO(outlen > 0 && outlen == buflen - 2);
	CHECK_GOTO(memcmp(buf, cipher_bytes, sizeof(cipher_bytes)) == 0);
	CHECK_GOTO(buf[buflen - 4] == 0x00 && buf[buflen - 3] == 0xff);
	CHECK_GOTO(buf[buflen - 2] == 0x00 && buf[buflen - 1] == 0x00);

	ret = 1;

err:
	free(buf);
	return ret;
}

static int
ssl_list_to_bytes_no_scsv(SSL *s, STACK_OF(SSL_CIPHER) **ciphers)
{

	unsigned char *buf = NULL;
	size_t buflen, outlen;
	int ret = 0;

	/* Space for cipher bytes and two spare bytes */
	CHECK(sk_SSL_CIPHER_num(*ciphers) == N_CIPHERS);
	buflen = sizeof(cipher_bytes) + 2;
	CHECK((buf = calloc(1, buflen)) != NULL);
	buf[buflen - 2] = 0xfe;
	buf[buflen - 1] = 0xab;

	/* Set renegotiate so it doesn't add SCSV */
	s->internal->renegotiate = 1;


	CHECK(ssl_cipher_list_to_bytes(s, *ciphers, buf, buflen, &outlen));


	CHECK_GOTO(outlen > 0 && outlen == buflen - 2);
	CHECK_GOTO(memcmp(buf, cipher_bytes, sizeof(cipher_bytes)) == 0);
	CHECK_GOTO(buf[buflen - 2] == 0xfe && buf[buflen - 1] == 0xab);

	ret = 1;

err:
	free(buf);
	return ret;
}

static int
ssl_bytes_to_list_invalid(SSL *s, STACK_OF(SSL_CIPHER) **ciphers)
{
	uint8_t empty_cipher_bytes[] = {0};


	sk_SSL_CIPHER_free(*ciphers);

	/* Invalid length: CipherSuite is 2 bytes so it must be even */

	*ciphers = ssl_bytes_to_cipher_list(s, cipher_bytes,
	    sizeof(cipher_bytes) - 1);
	CHECK(*ciphers == NULL);

	/* Invalid length: cipher_suites must be at least 2 */
	*ciphers = ssl_bytes_to_cipher_list(s, empty_cipher_bytes,
	    sizeof(empty_cipher_bytes));
	CHECK(*ciphers == NULL);

	/* Invalid length: cipher_suites must be at most 2^16-2 */
	*ciphers = ssl_bytes_to_cipher_list(s, cipher_bytes, 0x10000);
	CHECK(*ciphers == NULL);

	/* Invalid len: prototype is signed, but it shouldn't accept len < 0 */
	*ciphers = ssl_bytes_to_cipher_list(s, cipher_bytes, -2);
	CHECK(*ciphers == NULL);

	return 1;
}

int
main(void)







<
<
<
<
<





>


>
>
|
<















>









>
|
>
















>














>
|
>
















>




>
|
<



<
|
<
<
<
|
<
<
<
<







59
60
61
62
63
64
65





66
67
68
69
70
71
72
73
74
75
76

77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161

162
163
164

165



166




167
168
169
170
171
172
173
	0x009c,		/* AES128-GCM-SHA256 */
	0x003d,		/* AES256-SHA256 */
	0x0009,		/* DES-CBC-SHA */
};

#define N_CIPHERS (sizeof(cipher_bytes) / 2)






static int
ssl_bytes_to_list_alloc(SSL *s, STACK_OF(SSL_CIPHER) **ciphers)
{
	SSL_CIPHER *cipher;
	uint16_t value;
	CBS cbs;
	int i;

	CBS_init(&cbs, cipher_bytes, sizeof(cipher_bytes));

	*ciphers = ssl_bytes_to_cipher_list(s, &cbs);

	CHECK(*ciphers != NULL);
	CHECK(sk_SSL_CIPHER_num(*ciphers) == N_CIPHERS);
	for (i = 0; i < sk_SSL_CIPHER_num(*ciphers); i++) {
		cipher = sk_SSL_CIPHER_value(*ciphers, i);
		CHECK(cipher != NULL);
		value = SSL_CIPHER_get_value(cipher);
		CHECK(value == cipher_values[i]);
	}

	return 1;
}

static int
ssl_list_to_bytes_scsv(SSL *s, STACK_OF(SSL_CIPHER) **ciphers)
{
	CBB cbb;
	unsigned char *buf = NULL;
	size_t buflen, outlen;
	int ret = 0;

	/* Space for cipher bytes, plus reneg SCSV and two spare bytes. */
	CHECK(sk_SSL_CIPHER_num(*ciphers) == N_CIPHERS);
	buflen = sizeof(cipher_bytes) + 2 + 2;
	CHECK((buf = calloc(1, buflen)) != NULL);

	CHECK(CBB_init_fixed(&cbb, buf, buflen));
	CHECK(ssl_cipher_list_to_bytes(s, *ciphers, &cbb));
	CHECK(CBB_finish(&cbb, NULL, &outlen));

	CHECK_GOTO(outlen > 0 && outlen == buflen - 2);
	CHECK_GOTO(memcmp(buf, cipher_bytes, sizeof(cipher_bytes)) == 0);
	CHECK_GOTO(buf[buflen - 4] == 0x00 && buf[buflen - 3] == 0xff);
	CHECK_GOTO(buf[buflen - 2] == 0x00 && buf[buflen - 1] == 0x00);

	ret = 1;

err:
	free(buf);
	return ret;
}

static int
ssl_list_to_bytes_no_scsv(SSL *s, STACK_OF(SSL_CIPHER) **ciphers)
{
	CBB cbb;
	unsigned char *buf = NULL;
	size_t buflen, outlen;
	int ret = 0;

	/* Space for cipher bytes and two spare bytes */
	CHECK(sk_SSL_CIPHER_num(*ciphers) == N_CIPHERS);
	buflen = sizeof(cipher_bytes) + 2;
	CHECK((buf = calloc(1, buflen)) != NULL);
	buf[buflen - 2] = 0xfe;
	buf[buflen - 1] = 0xab;

	/* Set renegotiate so it doesn't add SCSV */
	s->internal->renegotiate = 1;

	CHECK(CBB_init_fixed(&cbb, buf, buflen));
	CHECK(ssl_cipher_list_to_bytes(s, *ciphers, &cbb));
	CHECK(CBB_finish(&cbb, NULL, &outlen));

	CHECK_GOTO(outlen > 0 && outlen == buflen - 2);
	CHECK_GOTO(memcmp(buf, cipher_bytes, sizeof(cipher_bytes)) == 0);
	CHECK_GOTO(buf[buflen - 2] == 0xfe && buf[buflen - 1] == 0xab);

	ret = 1;

err:
	free(buf);
	return ret;
}

static int
ssl_bytes_to_list_invalid(SSL *s, STACK_OF(SSL_CIPHER) **ciphers)
{
	uint8_t empty_cipher_bytes[] = {0};
	CBS cbs;

	sk_SSL_CIPHER_free(*ciphers);

	/* Invalid length: CipherSuite is 2 bytes so it must be even */
	CBS_init(&cbs, cipher_bytes, sizeof(cipher_bytes) - 1);
	*ciphers = ssl_bytes_to_cipher_list(s, &cbs);

	CHECK(*ciphers == NULL);

	/* Invalid length: cipher_suites must be at least 2 */

	CBS_init(&cbs, empty_cipher_bytes, sizeof(empty_cipher_bytes));



	*ciphers = ssl_bytes_to_cipher_list(s, &cbs);




	CHECK(*ciphers == NULL);

	return 1;
}

int
main(void)
Added jni/libressl/tests/configtest.c.






















































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
/* $OpenBSD: configtest.c,v 1.1 2017/12/09 16:43:09 jsing Exp $ */
/*
 * Copyright (c) 2017 Joel Sing <jsing@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

#include <err.h>
#include <stdio.h>
#include <stdlib.h>

#include <tls.h>

struct parse_protocols_test {
	const char *protostr;
	int want_return;
	uint32_t want_protocols;
};

struct parse_protocols_test parse_protocols_tests[] = {
	{
		.protostr = NULL,
		.want_return = 0,
		.want_protocols = TLS_PROTOCOLS_DEFAULT,
	},
	{
		.protostr = "default",
		.want_return = 0,
		.want_protocols = TLS_PROTOCOLS_DEFAULT,
	},
	{
		.protostr = "secure",
		.want_return = 0,
		.want_protocols = TLS_PROTOCOLS_DEFAULT,
	},
	{
		.protostr = "all",
		.want_return = 0,
		.want_protocols = TLS_PROTOCOLS_ALL,
	},
	{
		.protostr = "tlsv1",
		.want_return = 0,
		.want_protocols = TLS_PROTOCOL_TLSv1,
	},
	{
		.protostr = "tlsv1.2",
		.want_return = 0,
		.want_protocols = TLS_PROTOCOL_TLSv1_2,
	},
	{
		.protostr = "",
		.want_return = -1,
		.want_protocols = 0,
	},
	{
		.protostr = "tlsv1.0:tlsv1.1:tlsv1.2",
		.want_return = 0,
		.want_protocols = TLS_PROTOCOL_TLSv1_0 | TLS_PROTOCOL_TLSv1_1 |
		    TLS_PROTOCOL_TLSv1_2,
	},
	{
		.protostr = "tlsv1.0,tlsv1.1,tlsv1.2",
		.want_return = 0,
		.want_protocols = TLS_PROTOCOL_TLSv1_0 | TLS_PROTOCOL_TLSv1_1 |
		    TLS_PROTOCOL_TLSv1_2,
	},
	{
		.protostr = "tlsv1.1,tlsv1.2,tlsv1.0",
		.want_return = 0,
		.want_protocols = TLS_PROTOCOL_TLSv1_0 | TLS_PROTOCOL_TLSv1_1 |
		    TLS_PROTOCOL_TLSv1_2,
	},
	{
		.protostr = "tlsv1.1,tlsv1.2,tlsv1.1",
		.want_return = 0,
		.want_protocols = TLS_PROTOCOL_TLSv1_1 | TLS_PROTOCOL_TLSv1_2,
	},
	{
		.protostr = "tlsv1.1,tlsv1.2,!tlsv1.1",
		.want_return = 0,
		.want_protocols = TLS_PROTOCOL_TLSv1_2,
	},
	{
		.protostr = "unknown",
		.want_return = -1,
		.want_protocols = 0,
	},
	{
		.protostr = "all,!unknown",
		.want_return = -1,
		.want_protocols = 0,
	},
	{
		.protostr = "sslv3,tlsv1.0,tlsv1.1,tlsv1.2",
		.want_return = -1,
		.want_protocols = 0,
	},
	{
		.protostr = "all,!tlsv1.0",
		.want_return = 0,
		.want_protocols = TLS_PROTOCOL_TLSv1_1 | TLS_PROTOCOL_TLSv1_2,
	},
	{
		.protostr = "!tlsv1.0",
		.want_return = 0,
		.want_protocols = TLS_PROTOCOL_TLSv1_1 | TLS_PROTOCOL_TLSv1_2,
	},
	{
		.protostr = "!tlsv1.0,!tlsv1.1",
		.want_return = 0,
		.want_protocols = TLS_PROTOCOL_TLSv1_2,
	},
	{
		.protostr = "!tlsv1.0,!tlsv1.1,tlsv1.2",
		.want_return = 0,
		.want_protocols = TLS_PROTOCOL_TLSv1_2,
	},
};

#define N_PARSE_PROTOCOLS_TESTS \
    (sizeof(parse_protocols_tests) / sizeof(*parse_protocols_tests))

static int
do_parse_protocols_test(int test_no, struct parse_protocols_test *ppt)
{
	uint32_t protocols = 0;
	int failed = 1;
	int rv;

	rv = tls_config_parse_protocols(&protocols, ppt->protostr);
	if (rv != ppt->want_return) {
		fprintf(stderr, "FAIL: test %i - tls_config_parse_protocols() "
		    "returned %i, want %i\n", test_no, rv, ppt->want_return);
		goto done;
	}
	if (protocols != ppt->want_protocols) {
		fprintf(stderr, "FAIL: test %i - got protocols 0x%x, "
		    "want 0x%x\n", test_no, protocols, ppt->want_protocols);
		goto done;
	}

	failed = 0;

 done:
	return (failed);
}

int
main(int argc, char **argv)
{
	int failed = 0;
	size_t i;

	tls_init();

	for (i = 0; i < N_PARSE_PROTOCOLS_TESTS; i++)
		failed += do_parse_protocols_test(i, &parse_protocols_tests[i]);

	return (failed);
}
Changes to jni/libressl/tests/freenull.c.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18





19
20
21
22
23
24
25
26
27
28
29


30
31
32
33



34
35




36
37



38
39




40
41
42
43
44












45








46
47



48


























49
50
51
52
53
/* $OpenBSD: freenull.c,v 1.4 2017/05/06 21:23:57 jsing Exp $ */
/*
 * Copyright (c) 2017 Bob Beck <beck@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

#include <openssl/asn1.h>





#include <openssl/x509.h>
#include <openssl/x509v3.h>

#include <err.h>
#include <stdio.h>
#include <string.h>

/* Make sure we do the right thing. Add here if you convert ones in tree */
int
main(int argc, char **argv)
{


	ASN1_INTEGER_free(NULL);
	ASN1_OBJECT_free(NULL);
	ASN1_OCTET_STRING_free(NULL);




	BIO_free_all(NULL);





	DIST_POINT_free(NULL);




	EVP_PKEY_free(NULL);





	GENERAL_NAME_free(NULL);
	GENERAL_SUBTREE_free(NULL);

	NAME_CONSTRAINTS_free(NULL);













	sk_GENERAL_NAME_pop_free(NULL, GENERAL_NAME_free);








	sk_X509_NAME_ENTRY_pop_free(NULL, X509_NAME_ENTRY_free);




	X509_NAME_ENTRY_free(NULL);



























	printf("PASS\n");

	return (0);
}
|

















>
>
>
>
>











>
>



|
>
>
>

|
>
>
>
>

|
>
>
>
|
|
>
>
>
>


<

|
>
>
>
>
>
>
>
>
>
>
>
>
|
>
>
>
>
>
>
>
>
|
|
>
>
>

>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>





1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62

63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
/* $OpenBSD: freenull.c,v 1.6 2018/02/07 05:07:39 jsing Exp $ */
/*
 * Copyright (c) 2017 Bob Beck <beck@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

#include <openssl/asn1.h>
#include <openssl/ocsp.h>
#include <openssl/pkcs12.h>
#include <openssl/ts.h>
#include <openssl/ui.h>
#include <openssl/txt_db.h>
#include <openssl/x509.h>
#include <openssl/x509v3.h>

#include <err.h>
#include <stdio.h>
#include <string.h>

/* Make sure we do the right thing. Add here if you convert ones in tree */
int
main(int argc, char **argv)
{
	ASN1_ENUMERATED_free(NULL);
	ASN1_GENERALIZEDTIME_free(NULL);
	ASN1_INTEGER_free(NULL);
	ASN1_OBJECT_free(NULL);
	ASN1_OCTET_STRING_free(NULL);
	ASN1_TIME_free(NULL);
	ASN1_TYPE_free(NULL);
	ASN1_UTCTIME_free(NULL);
	BIO_free(NULL);
	BIO_free_all(NULL);
	BN_clear_free(NULL);
	BN_free(NULL);
	BUF_MEM_free(NULL);
	CONF_free(NULL);
	DH_free(NULL);
	DIST_POINT_free(NULL);
	DSA_SIG_free(NULL);
	DSA_free(NULL);
	ECDSA_SIG_free(NULL);
	EC_GROUP_free(NULL);
	EC_KEY_free(NULL);
	EC_POINT_clear_free(NULL);
	EC_POINT_free(NULL);
	EVP_CIPHER_CTX_free(NULL);
	EVP_PKEY_CTX_free(NULL);
	EVP_PKEY_free(NULL);
	GENERAL_NAME_free(NULL);
	GENERAL_SUBTREE_free(NULL);

	NAME_CONSTRAINTS_free(NULL);
	NCONF_free(NULL);
	NETSCAPE_CERT_SEQUENCE_free(NULL);
	NETSCAPE_SPKI_free(NULL);
	NETSCAPE_X509_free(NULL);
	OCSP_BASICRESP_free(NULL);
	OCSP_CERTID_free(NULL);
	OCSP_REQUEST_free(NULL);
	OCSP_REQ_CTX_free(NULL);
	OCSP_RESPONSE_free(NULL);
	PBEPARAM_free(NULL);
	PKCS12_free(NULL);
	PKCS7_free(NULL);
	PKCS8_PRIV_KEY_INFO_free(NULL);
	RSA_free(NULL);
	TS_MSG_IMPRINT_free(NULL);
	TS_REQ_free(NULL);
	TS_RESP_CTX_free(NULL);
	TS_RESP_free(NULL);
	TS_STATUS_INFO_free(NULL);
	TS_TST_INFO_free(NULL);
	TS_VERIFY_CTX_free(NULL);
	TXT_DB_free(NULL);
	UI_free(NULL);
	X509_ALGOR_free(NULL);
	X509_CRL_free(NULL);
	X509_EXTENSION_free(NULL);
	X509_INFO_free(NULL);
	X509_NAME_ENTRY_free(NULL);
	X509_NAME_free(NULL);
	X509_REQ_free(NULL);
	X509_SIG_free(NULL);
	X509_STORE_CTX_free(NULL);
	X509_STORE_free(NULL);
	X509_VERIFY_PARAM_free(NULL);
	X509_email_free(NULL);
	X509_free(NULL);

	lh_FUNCTION_free(NULL);

	sk_ASN1_OBJECT_pop_free(NULL, NULL);
	sk_CONF_VALUE_pop_free(NULL, NULL);
	sk_GENERAL_NAME_pop_free(NULL, NULL);
	sk_OCSP_CERTID_free(NULL);
	sk_OPENSSL_STRING_free(NULL);
	sk_PKCS12_SAFEBAG_pop_free(NULL, NULL);
	sk_PKCS7_pop_free(NULL, NULL);
	sk_X509_ATTRIBUTE_free(NULL);
	sk_X509_CRL_pop_free(NULL, NULL);
	sk_X509_EXTENSION_pop_free(NULL, NULL);
	sk_X509_INFO_free(NULL);
	sk_X509_INFO_pop_free(NULL, NULL);
	sk_X509_NAME_ENTRY_pop_free(NULL, NULL);
	sk_X509_free(NULL);
	sk_X509_pop_free(NULL, NULL);

	printf("PASS\n");

	return (0);
}
Added jni/libressl/tests/keypairtest.c.












































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
/* $OpenBSD: keypairtest.c,v 1.3 2018/02/14 15:59:50 jsing Exp $ */
/*
 * Copyright (c) 2018 Joel Sing <jsing@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

#ifdef _MSC_VER
#define NO_REDEF_POSIX_FUNCTIONS
#endif

#include <sys/stat.h>

#include <err.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

#include <openssl/x509.h>

#include <tls.h>
#include <tls_internal.h>

#define PUBKEY_HASH \
    "SHA256:858d0f94beb0a08eb4f13871ba57bf0a2e081287d0efbaeb3bbac59dd8f1a8e5"

char *cert_file, *key_file, *ocsp_staple_file;

static void
load_file(const char *filename, const uint8_t **data, size_t *data_len)
{
	struct stat sb;
	uint8_t *buf;
	size_t len;
	ssize_t n;
	int fd;

	if ((fd = open(filename, O_RDONLY)) == -1)
		err(1, "failed to open '%s'", filename);
	if ((fstat(fd, &sb)) == -1)
		err(1, "failed to stat '%s'", filename);
	if (sb.st_size < 0)
		err(1, "file size invalid for '%s'", filename);
	len = (size_t)sb.st_size;
	if ((buf = malloc(len)) == NULL)
		err(1, "out of memory");
	n = read(fd, buf, len);
	if (n < 0 || (size_t)n != len)
		err(1, "failed to read '%s'", filename);
	close(fd);

	*data = buf;
	*data_len = len;
}

static int
compare_mem(char *label, const uint8_t *data1, size_t data1_len,
    const uint8_t *data2, size_t data2_len)
{
	if (data1_len != data2_len) {
		fprintf(stderr, "FAIL: %s length mismatch (%zu != %zu)\n",
		    label, data1_len, data2_len);
		return -1;
	}
	if (data1 == data2) {
		fprintf(stderr, "FAIL: %s comparing same memory (%p == %p)\n",
		    label, data1, data2);
		return -1;
	}
	if (memcmp(data1, data2, data1_len) != 0) {
		fprintf(stderr, "FAIL: %s data mismatch\n", label);
		return -1;
	}
	return 0;
}

static int
do_keypair_tests(void)
{
	size_t cert_len, key_len, ocsp_staple_len;
	const uint8_t *cert, *key, *ocsp_staple;
	X509 *x509_cert = NULL;
	struct tls_keypair *kp;
	struct tls_error err;
	char *hash = NULL;
	int failed = 1;

	load_file(cert_file, &cert, &cert_len);
	load_file(key_file, &key, &key_len);
	load_file(ocsp_staple_file, &ocsp_staple, &ocsp_staple_len);

	if ((kp = tls_keypair_new()) == NULL) {
		fprintf(stderr, "FAIL: failed to create keypair\n");
		goto done;
	}

	if (tls_keypair_set_cert_file(kp, &err, cert_file) == -1) {
		fprintf(stderr, "FAIL: failed to load cert file: %s\n",
		    err.msg);
		goto done;
	}
	if (tls_keypair_set_key_file(kp, &err, key_file) == -1) {
		fprintf(stderr, "FAIL: failed to load key file: %s\n", err.msg);
		goto done;
	}
	if (tls_keypair_set_ocsp_staple_file(kp, &err, ocsp_staple_file) == -1) {
		fprintf(stderr, "FAIL: failed to load ocsp staple file: %s\n",
		    err.msg);
		goto done;
	}

	if (compare_mem("certificate", cert, cert_len, kp->cert_mem,
	    kp->cert_len) == -1)
		goto done;
	if (compare_mem("key", key, key_len, kp->key_mem, kp->cert_len) == -1)
		goto done;
	if (compare_mem("ocsp staple", ocsp_staple, ocsp_staple_len,
	    kp->ocsp_staple, kp->ocsp_staple_len) == -1)
		goto done;
	if (strcmp(kp->pubkey_hash, PUBKEY_HASH) != 0) {
		fprintf(stderr, "FAIL: got pubkey hash '%s', want '%s'",
		    hash, PUBKEY_HASH);
		goto done;
	}

	tls_keypair_clear(kp);

	if (kp->cert_mem != NULL || kp->cert_len != 0) {
		fprintf(stderr, "FAIL: cert not cleared (mem %p, len %zu)",
		    kp->cert_mem, kp->cert_len);
		goto done;
	}
	if (kp->key_mem != NULL || kp->key_len != 0) {
		fprintf(stderr, "FAIL: key not cleared (mem %p, len %zu)",
		    kp->key_mem, kp->key_len);
		goto done;
	}
	if (kp->ocsp_staple != NULL || kp->ocsp_staple_len != 0) {
		fprintf(stderr, "FAIL: ocsp staple not cleared (mem %p, "
		    "len %zu)", kp->ocsp_staple, kp->ocsp_staple_len);
		goto done;
	}
	if (kp->pubkey_hash != NULL) {
		fprintf(stderr, "FAIL: pubkey hash not cleared (mem %p)\n",
		    kp->pubkey_hash);
		goto done;
	}

	if (tls_keypair_set_cert_mem(kp, &err, cert, cert_len) == -1) {
		fprintf(stderr, "FAIL: failed to load cert: %s\n", err.msg);
		goto done;
	}
	if (tls_keypair_set_key_mem(kp, &err, key, key_len) == -1) {
		fprintf(stderr, "FAIL: failed to load key: %s\n", err.msg);
		goto done;
	}
	if (tls_keypair_set_ocsp_staple_mem(kp, &err, ocsp_staple,
	    ocsp_staple_len) == -1) {
		fprintf(stderr, "FAIL: failed to load ocsp staple: %s\n", err.msg);
		goto done;
	}
	if (compare_mem("certificate", cert, cert_len, kp->cert_mem,
	    kp->cert_len) == -1)
		goto done;
	if (compare_mem("key", key, key_len, kp->key_mem, kp->cert_len) == -1)
		goto done;
	if (compare_mem("ocsp staple", ocsp_staple, ocsp_staple_len,
	    kp->ocsp_staple, kp->ocsp_staple_len) == -1)
		goto done;
	if (strcmp(kp->pubkey_hash, PUBKEY_HASH) != 0) {
		fprintf(stderr, "FAIL: got pubkey hash '%s', want '%s'",
		    hash, PUBKEY_HASH);
		goto done;
	}

	if (tls_keypair_load_cert(kp, &err, &x509_cert) == -1) {
		fprintf(stderr, "FAIL: failed to load X509 certificate: %s\n",
		    err.msg);
		goto done;
	}

	tls_keypair_clear(kp);

	if (kp->key_mem != NULL || kp->key_len != 0) {
		fprintf(stderr, "FAIL: key not cleared (mem %p, len %zu)",
		    kp->key_mem, kp->key_len);
		goto done;
	}

	tls_keypair_free(kp);

	failed = 0;

 done:
	X509_free(x509_cert);
	free(hash);

	return (failed);
}

int
main(int argc, char **argv)
{
	int failure = 0;

	if (argc != 4) {
		fprintf(stderr, "usage: %s ocspstaplefile certfile keyfile\n",
		    argv[0]);
		return (1);
	}

	ocsp_staple_file = argv[1];
	cert_file = argv[2];
	key_file = argv[3];

	failure |= do_keypair_tests();

	return (failure);
}
Added jni/libressl/tests/keypairtest.sh.














>
>
>
>
>
>
>
1
2
3
4
5
6
7
#!/bin/sh
set -e
TEST=./keypairtest
if [ -e ./keypairtest.exe ]; then
	TEST=./keypairtest.exe
fi
$TEST $srcdir/ca.pem $srcdir/server.pem $srcdir/server.pem
Changes to jni/libressl/tests/ocsptest.bat.
1
2
3
4
5

6
7
8
9
10
11
@echo off
setlocal enabledelayedexpansion
REM	ocsptest.bat

set TEST=Debug\ocsp_test.exe

if not exist %TEST% exit /b 1

%TEST% www.amazon.com 443 & if !errorlevel! neq 0 exit /b 1
%TEST% cloudflare.com 443 & if !errorlevel! neq 0 exit /b 1

endlocal


|

|
>
|

|
|


1
2
3
4
5
6
7
8
9
10
11
12
@echo off
setlocal enabledelayedexpansion
REM	ocspocsp_test_bin.bat

set ocsp_test_bin=%1
set ocsp_test_bin=%ocsp_test_bin:/=\%
if not exist %ocsp_test_bin% exit /b 1

%ocsp_test_bin% www.amazon.com 443 & if !errorlevel! neq 0 exit /b 1
%ocsp_test_bin% cloudflare.com 443 & if !errorlevel! neq 0 exit /b 1

endlocal
Changes to jni/libressl/tests/pq_test.bat.
1
2
3
4
5

6
7
8
9
10
11
12
13
14
@echo off
setlocal enabledelayedexpansion
REM	pq_test.bat

set TEST=Debug\pq_test.exe

if not exist %TEST% exit /b 1

set pq_output=pq_output.txt
if exist %pq_output% del %pq_output%

%TEST% > %pq_output%
fc /b %pq_output% %srcdir%\pq_expected.txt

endlocal




|
>
|




|



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@echo off
setlocal enabledelayedexpansion
REM	pq_test.bat

set pq_test_bin=%1
set pq_test_bin=%pq_test_bin:/=\%
if not exist %pq_test_bin% exit /b 1

set pq_output=pq_output.txt
if exist %pq_output% del %pq_output%

%pq_test_bin% > %pq_output%
fc /b %pq_output% %srcdir%\pq_expected.txt

endlocal
Changes to jni/libressl/tests/servertest.bat.
1
2
3
4
5

6
7
8
9
10
11
12
13
14
15
16
17
@echo off
setlocal enabledelayedexpansion
REM	servertest.bat

set servertest_bin=Debug\servertest.exe

if not exist %servertest_bin% exit /b 1

if "%srcdir%"=="" (
	set srcdir=.
)

%servertest_bin% %srcdir%\server.pem %srcdir%\server.pem %srcdir%\ca.pem
if !errorlevel! neq 0 (
	exit /b 1
)

endlocal




|
>


<
<
<
<






1
2
3
4
5
6
7
8




9
10
11
12
13
14
@echo off
setlocal enabledelayedexpansion
REM	servertest.bat

set servertest_bin=%1
set servertest_bin=%servertest_bin:/=\%
if not exist %servertest_bin% exit /b 1





%servertest_bin% %srcdir%\server.pem %srcdir%\server.pem %srcdir%\ca.pem
if !errorlevel! neq 0 (
	exit /b 1
)

endlocal
Changes to jni/libressl/tests/ssl_versions.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: ssl_versions.c,v 1.4 2017/05/06 20:39:03 jsing Exp $ */
/*
 * Copyright (c) 2016, 2017 Joel Sing <jsing@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: ssl_versions.c,v 1.5 2018/03/15 12:27:01 jca Exp $ */
/*
 * Copyright (c) 2016, 2017 Joel Sing <jsing@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
		}
		if (mmvt->want_maxver == 0) {
			fprintf(stderr, "FAIL: test %zu - successfully set "
			    "SSL_CTX max version, should have failed\n", i);
			goto next;
		}

		if (ssl_ctx->internal->min_version != mmvt->want_minver) {
			fprintf(stderr, "FAIL: test %zu - got SSL_CTX min "
			    "version 0x%x, want 0x%x\n", i,
			    ssl_ctx->internal->min_version, mmvt->want_minver);
			goto next;
		}
		if (ssl_ctx->internal->max_version != mmvt->want_maxver) {
			fprintf(stderr, "FAIL: test %zu - got SSL_CTX max "
			    "version 0x%x, want 0x%x\n", i,
			    ssl_ctx->internal->max_version, mmvt->want_maxver);
			goto next;
		}

		if ((ssl = SSL_new(ssl_ctx)) == NULL) {
			fprintf(stderr, "SSL_new() returned NULL\n");
			return 1;
		}

		if (ssl->internal->min_version != mmvt->want_minver) {
			fprintf(stderr, "FAIL: test %zu - initial SSL min "
			    "version 0x%x, want 0x%x\n", i,
			    ssl_ctx->internal->min_version, mmvt->want_minver);
			goto next;
		}
		if (ssl->internal->max_version != mmvt->want_maxver) {
			fprintf(stderr, "FAIL: test %zu - initial SSL max "
			    "version 0x%x, want 0x%x\n", i,
			    ssl_ctx->internal->max_version, mmvt->want_maxver);
			goto next;
		}

		if (SSL_set_min_proto_version(ssl, mmvt->minver) != 1) {
			if (mmvt->want_minver != 0) {
				fprintf(stderr, "FAIL: test %zu - failed to set "
				    "SSL min version\n", i);







|


|


|


|








|


|


|


|







616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
		}
		if (mmvt->want_maxver == 0) {
			fprintf(stderr, "FAIL: test %zu - successfully set "
			    "SSL_CTX max version, should have failed\n", i);
			goto next;
		}

		if (SSL_CTX_get_min_proto_version(ssl_ctx) != mmvt->want_minver) {
			fprintf(stderr, "FAIL: test %zu - got SSL_CTX min "
			    "version 0x%x, want 0x%x\n", i,
			    SSL_CTX_get_min_proto_version(ssl_ctx), mmvt->want_minver);
			goto next;
		}
		if (SSL_CTX_get_max_proto_version(ssl_ctx) != mmvt->want_maxver) {
			fprintf(stderr, "FAIL: test %zu - got SSL_CTX max "
			    "version 0x%x, want 0x%x\n", i,
			    SSL_CTX_get_max_proto_version(ssl_ctx), mmvt->want_maxver);
			goto next;
		}

		if ((ssl = SSL_new(ssl_ctx)) == NULL) {
			fprintf(stderr, "SSL_new() returned NULL\n");
			return 1;
		}

		if (SSL_get_min_proto_version(ssl) != mmvt->want_minver) {
			fprintf(stderr, "FAIL: test %zu - initial SSL min "
			    "version 0x%x, want 0x%x\n", i,
			    SSL_get_min_proto_version(ssl), mmvt->want_minver);
			goto next;
		}
		if (SSL_get_max_proto_version(ssl) != mmvt->want_maxver) {
			fprintf(stderr, "FAIL: test %zu - initial SSL max "
			    "version 0x%x, want 0x%x\n", i,
			    SSL_get_max_proto_version(ssl), mmvt->want_maxver);
			goto next;
		}

		if (SSL_set_min_proto_version(ssl, mmvt->minver) != 1) {
			if (mmvt->want_minver != 0) {
				fprintf(stderr, "FAIL: test %zu - failed to set "
				    "SSL min version\n", i);
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
		}
		if (mmvt->want_maxver == 0) {
			fprintf(stderr, "FAIL: test %zu - successfully set SSL "
			    "max version, should have failed\n", i);
			goto next;
		}

		if (ssl->internal->min_version != mmvt->want_minver) {
			fprintf(stderr, "FAIL: test %zu - got SSL min "
			    "version 0x%x, want 0x%x\n", i,
			    ssl_ctx->internal->min_version, mmvt->want_minver);
			goto next;
		}
		if (ssl->internal->max_version != mmvt->want_maxver) {
			fprintf(stderr, "FAIL: test %zu - got SSL max "
			    "version 0x%x, want 0x%x\n", i,
			    ssl->internal->max_version, mmvt->want_maxver);
			goto next;
		}

 next:
		SSL_CTX_free(ssl_ctx);
		SSL_free(ssl);








|


|


|


|







675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
		}
		if (mmvt->want_maxver == 0) {
			fprintf(stderr, "FAIL: test %zu - successfully set SSL "
			    "max version, should have failed\n", i);
			goto next;
		}

		if (SSL_get_min_proto_version(ssl) != mmvt->want_minver) {
			fprintf(stderr, "FAIL: test %zu - got SSL min "
			    "version 0x%x, want 0x%x\n", i,
			    SSL_get_min_proto_version(ssl), mmvt->want_minver);
			goto next;
		}
		if (SSL_get_max_proto_version(ssl) != mmvt->want_maxver) {
			fprintf(stderr, "FAIL: test %zu - got SSL max "
			    "version 0x%x, want 0x%x\n", i,
			    SSL_get_max_proto_version(ssl), mmvt->want_maxver);
			goto next;
		}

 next:
		SSL_CTX_free(ssl_ctx);
		SSL_free(ssl);

Changes to jni/libressl/tests/ssltest.bat.
1
2
3
4
5

6
7
8

9
10
11
12
13
14
15
16
17
18
19
20
21
@echo off
setlocal enabledelayedexpansion
REM	ssltest.bat

set ssltest_bin=Debug\ssltest.exe

if not exist %ssltest_bin% exit /b 1

set openssl_bin=..\apps\openssl\Debug\openssl.exe

if not exist %openssl_bin% exit /b 1

if "%srcdir%"=="" (
	set srcdir=.
)

%srcdir%\testssl.bat %srcdir%\server.pem %srcdir%\server.pem %srcdir%\ca.pem ^
    %ssltest_bin% %openssl_bin%
if !errorlevel! neq 0 (
	exit /b 1
)

endlocal




|
>


|
>


<
<
<
<







1
2
3
4
5
6
7
8
9
10
11
12




13
14
15
16
17
18
19
@echo off
setlocal enabledelayedexpansion
REM	ssltest.bat

set ssltest_bin=%1
set ssltest_bin=%ssltest_bin:/=\%
if not exist %ssltest_bin% exit /b 1

set openssl_bin=%2
set openssl_bin=%openssl_bin:/=\%
if not exist %openssl_bin% exit /b 1





%srcdir%\testssl.bat %srcdir%\server.pem %srcdir%\server.pem %srcdir%\ca.pem ^
    %ssltest_bin% %openssl_bin%
if !errorlevel! neq 0 (
	exit /b 1
)

endlocal
Changes to jni/libressl/tests/testdsa.bat.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
@echo off
setlocal enabledelayedexpansion
REM	testdsa.bat


REM # Test DSA certificate generation of openssl

set cmd=..\apps\openssl\Debug\openssl.exe
if not exist %cmd% exit /b 1

if "%srcdir%"=="" (
	set srcdir=.
)

REM # Generate DSA paramter set
%cmd% dsaparam 512 -out dsa512.pem
if !errorlevel! neq 0 (
	exit /b 1
)


REM # Generate a DSA certificate
%cmd% req -config %srcdir%\openssl.cnf -x509 -newkey dsa:dsa512.pem -out testdsa.pem -keyout testdsa.key
if !errorlevel! neq 0 (
	exit /b 1
)


REM # Now check the certificate
%cmd% x509 -text -in testdsa.pem
if !errorlevel! neq 0 (
	exit /b 1
)

del testdsa.key dsa512.pem testdsa.pem

exit /b 0







|
<
|
|
<
|
<

|






|






|







1
2
3
4
5
6
7
8

9
10

11

12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
@echo off
setlocal enabledelayedexpansion
REM	testdsa.bat


REM # Test DSA certificate generation of openssl

set openssl_bin=%1

set openssl_bin=%openssl_bin:/=\%
if not exist %openssl_bin% exit /b 1



REM # Generate DSA paramter set
%openssl_bin% dsaparam 512 -out dsa512.pem
if !errorlevel! neq 0 (
	exit /b 1
)


REM # Generate a DSA certificate
%openssl_bin% req -config %srcdir%\openssl.cnf -x509 -newkey dsa:dsa512.pem -out testdsa.pem -keyout testdsa.key
if !errorlevel! neq 0 (
	exit /b 1
)


REM # Now check the certificate
%openssl_bin% x509 -text -in testdsa.pem
if !errorlevel! neq 0 (
	exit /b 1
)

del testdsa.key dsa512.pem testdsa.pem

exit /b 0
Changes to jni/libressl/tests/testenc.bat.
1
2
3
4
5
6
7
8
9


10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
@echo off
setlocal enabledelayedexpansion
REM	testenc.bat

set test=p
set cmd=..\apps\openssl\Debug\openssl.exe
if not exist %cmd% exit /b 1

set srcdir=..\..\tests



copy %srcdir%\openssl.cnf %test%

echo cat
%cmd% enc -in %test% -out %test%.cipher
%cmd% enc -in %test%.cipher -out %test%.clear
fc /b %test% %test%.clear
if !errorlevel! neq 0 (
	exit /b 1
) else (
	del %test%.cipher %test%.clear
)

echo base64
%cmd% enc -a -e -in %test% -out %test%.cipher
%cmd% enc -a -d -in %test%.cipher -out %test%.clear
fc /b %test% %test%.clear
if !errorlevel! neq 0 (
	exit /b 1
) else (
	del %test%.cipher %test%.clear
)






<
<

|
>
>




|
|








|
|







1
2
3
4
5


6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
@echo off
setlocal enabledelayedexpansion
REM	testenc.bat

set test=p



set openssl_bin=%1
set openssl_bin=%openssl_bin:/=\%
if not exist %openssl_bin% exit /b 1

copy %srcdir%\openssl.cnf %test%

echo cat
%openssl_bin% enc -in %test% -out %test%.cipher
%openssl_bin% enc -in %test%.cipher -out %test%.clear
fc /b %test% %test%.clear
if !errorlevel! neq 0 (
	exit /b 1
) else (
	del %test%.cipher %test%.clear
)

echo base64
%openssl_bin% enc -a -e -in %test% -out %test%.cipher
%openssl_bin% enc -a -d -in %test%.cipher -out %test%.clear
fc /b %test% %test%.clear
if !errorlevel! neq 0 (
	exit /b 1
) else (
	del %test%.cipher %test%.clear
)

41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
	des-cbc des-cfb des-cfb8 des-ecb des-ede
	des-ede-cbc des-ede-cfb des-ede-ofb des-ede3
	des-ede3-cbc des-ede3-cfb des-ede3-ofb des-ofb desx-cbc
	rc2-40-cbc rc2-64-cbc rc2-cbc rc2-cfb rc2-ecb rc2-ofb
	rc4 rc4-40
) do (
	echo %%i
	%cmd% %%i -e -k test -in %test% -out %test%.%%i.cipher
	%cmd% %%i -d -k test -in %test%.%%i.cipher -out %test%.%%i.clear
	fc /b %test% %test%.%%i.clear
	if !errorlevel! neq 0 (
		exit /b 1
	) else (
		del %test%.%%i.cipher %test%.%%i.clear
	)

	echo %%i base64
	%cmd% %%i -a -e -k test -in %test% -out %test%.%%i.cipher
	%cmd% %%i -a -d -k test -in %test%.%%i.cipher -out %test%.%%i.clear
	fc /b %test% %test%.%%i.clear
	if !errorlevel! neq 0 (
		exit /b 1
	) else (
		del %test%.%%i.cipher %test%.%%i.clear
	)
)

del %test%
endlocal







|
|








|
|










41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
	des-cbc des-cfb des-cfb8 des-ecb des-ede
	des-ede-cbc des-ede-cfb des-ede-ofb des-ede3
	des-ede3-cbc des-ede3-cfb des-ede3-ofb des-ofb desx-cbc
	rc2-40-cbc rc2-64-cbc rc2-cbc rc2-cfb rc2-ecb rc2-ofb
	rc4 rc4-40
) do (
	echo %%i
	%openssl_bin% %%i -e -k test -in %test% -out %test%.%%i.cipher
	%openssl_bin% %%i -d -k test -in %test%.%%i.cipher -out %test%.%%i.clear
	fc /b %test% %test%.%%i.clear
	if !errorlevel! neq 0 (
		exit /b 1
	) else (
		del %test%.%%i.cipher %test%.%%i.clear
	)

	echo %%i base64
	%openssl_bin% %%i -a -e -k test -in %test% -out %test%.%%i.cipher
	%openssl_bin% %%i -a -d -k test -in %test%.%%i.cipher -out %test%.%%i.clear
	fc /b %test% %test%.%%i.clear
	if !errorlevel! neq 0 (
		exit /b 1
	) else (
		del %test%.%%i.cipher %test%.%%i.clear
	)
)

del %test%
endlocal
Changes to jni/libressl/tests/testrsa.bat.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
@echo off
setlocal enabledelayedexpansion
REM	testrsa.bat


REM # Test RSA certificate generation of openssl

set cmd=..\apps\openssl\Debug\openssl.exe
if not exist %cmd% exit /b 1

if "%srcdir%"=="" (
	set srcdir=.
)

REM # Generate RSA private key
%cmd% genrsa -out rsakey.pem
if !errorlevel! neq 0 (
	exit /b 1
)


REM # Generate an RSA certificate
%cmd% req -config %srcdir%\openssl.cnf -key rsakey.pem -new -x509 -days 365 -out rsacert.pem
if !errorlevel! neq 0 (
	exit /b 1
)


REM # Now check the certificate
%cmd% x509 -text -in rsacert.pem
if !errorlevel! neq 0 (
	exit /b 1
)

del rsacert.pem rsakey.pem

exit /b 0







|
<
|
|
<
|
<

|






|






|







1
2
3
4
5
6
7
8

9
10

11

12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
@echo off
setlocal enabledelayedexpansion
REM	testrsa.bat


REM # Test RSA certificate generation of openssl

set openssl_bin=%1

set openssl_bin=%openssl_bin:/=\%
if not exist %openssl_bin% exit /b 1



REM # Generate RSA private key
%openssl_bin% genrsa -out rsakey.pem
if !errorlevel! neq 0 (
	exit /b 1
)


REM # Generate an RSA certificate
%openssl_bin% req -config %srcdir%\openssl.cnf -key rsakey.pem -new -x509 -days 365 -out rsacert.pem
if !errorlevel! neq 0 (
	exit /b 1
)


REM # Now check the certificate
%openssl_bin% x509 -text -in rsacert.pem
if !errorlevel! neq 0 (
	exit /b 1
)

del rsacert.pem rsakey.pem

exit /b 0
Changes to jni/libressl/tests/tls_ext_alpn.c.
1
2
3
4
5
6
7
8
/*	$OpenBSD: tls_ext_alpn.c,v 1.3 2017/01/22 08:19:36 jsing Exp $	*/
/*
 * Copyright (c) 2015 Doug Hogan <doug@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
|







1
2
3
4
5
6
7
8
/*	$OpenBSD: tls_ext_alpn.c,v 1.5 2018/02/08 11:31:00 jsing Exp $	*/
/*
 * Copyright (c) 2015 Doug Hogan <doug@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
18
19
20
21
22
23
24

25
26
27
28
29
30
31
/*
 * Test TLS extension Application-Layer Protocol Negotiation (RFC 7301).
 */
#include <stdio.h>
#include <openssl/ssl.h>

#include "ssl_locl.h"


#include "tests.h"

/*
 * In the ProtocolNameList, ProtocolNames must not include empty strings and
 * byte strings must not be truncated.
 *







>







18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/*
 * Test TLS extension Application-Layer Protocol Negotiation (RFC 7301).
 */
#include <stdio.h>
#include <openssl/ssl.h>

#include "ssl_locl.h"
#include "ssl_tlsext.h"

#include "tests.h"

/*
 * In the ProtocolNameList, ProtocolNames must not include empty strings and
 * byte strings must not be truncated.
 *
310
311
312
313
314
315
316
317
318
319
320


321
322
323
324
325
326
327
328
329
330
331
332
};
static uint8_t proto_invalid_missing9[] = {
	/* Extension extensions<0..2^16-1> -- All TLS extensions */
	0x0a, /* XXX need a 2 byte len */
};


#define CHECK_BOTH(c_val,s_val,proto) do {				\
	{								\
		unsigned char *p = proto;				\
		int al;							\


		CHECK(c_val == ssl_parse_clienthello_tlsext(s, &p,	\
		    proto, sizeof(proto), &al));			\
		p = proto;						\
		CHECK(s_val == ssl_parse_serverhello_tlsext(s, &p,	\
		    sizeof(proto), &al));				\
	}								\
} while (0)

static int dummy_alpn_cb(SSL *ssl, const unsigned char **out,
    unsigned char *outlen, const unsigned char *in, unsigned int inlen,
    void *arg);








|

|

>
>
|
|
<
|
<







311
312
313
314
315
316
317
318
319
320
321
322
323
324
325

326

327
328
329
330
331
332
333
};
static uint8_t proto_invalid_missing9[] = {
	/* Extension extensions<0..2^16-1> -- All TLS extensions */
	0x0a, /* XXX need a 2 byte len */
};


#define CHECK_BOTH(c_val, s_val, proto) do {				\
	{								\
		CBS cbs;						\
		int al;							\
									\
		CBS_init(&cbs, proto, sizeof(proto));			\
		CHECK(c_val == tlsext_clienthello_parse(s, &cbs, &al)); \
		CBS_init(&cbs, proto, sizeof(proto));			\

		CHECK(s_val == tlsext_serverhello_parse(s, &cbs, &al)); \

	}								\
} while (0)

static int dummy_alpn_cb(SSL *ssl, const unsigned char **out,
    unsigned char *outlen, const unsigned char *in, unsigned int inlen,
    void *arg);

Changes to jni/libressl/tests/tlsexttest.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: tlsexttest.c,v 1.16 2017/08/29 17:24:59 jsing Exp $ */
/*
 * Copyright (c) 2017 Joel Sing <jsing@openbsd.org>
 * Copyright (c) 2017 Doug Hogan <doug@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
|







1
2
3
4
5
6
7
8
/* $OpenBSD: tlsexttest.c,v 1.18 2017/12/28 12:52:45 jsing Exp $ */
/*
 * Copyright (c) 2017 Joel Sing <jsing@openbsd.org>
 * Copyright (c) 2017 Doug Hogan <doug@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
		goto err;
	}

	if (S3I(ssl)->renegotiate_seen != 1) {
		FAIL("renegotiate seen not set\n");
		goto err;
	}
        if (S3I(ssl)->send_connection_binding != 1) {
		FAIL("send connection binding not set\n");
		goto err;
	}

	memset(S3I(ssl)->previous_client_finished, 0,
	    sizeof(S3I(ssl)->previous_client_finished));








|







1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
		goto err;
	}

	if (S3I(ssl)->renegotiate_seen != 1) {
		FAIL("renegotiate seen not set\n");
		goto err;
	}
	if (S3I(ssl)->send_connection_binding != 1) {
		FAIL("send connection binding not set\n");
		goto err;
	}

	memset(S3I(ssl)->previous_client_finished, 0,
	    sizeof(S3I(ssl)->previous_client_finished));

1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
		errx(1, "failed to create SSL");

	if (tlsext_ri_serverhello_needs(ssl)) {
		FAIL("serverhello should not need RI\n");
		goto err;
	}

        S3I(ssl)->send_connection_binding = 1;

	if (!tlsext_ri_serverhello_needs(ssl)) {
		FAIL("serverhello should need RI\n");
		goto err;
	}

	memcpy(S3I(ssl)->previous_client_finished, tlsext_ri_prev_client,







|







1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
		errx(1, "failed to create SSL");

	if (tlsext_ri_serverhello_needs(ssl)) {
		FAIL("serverhello should not need RI\n");
		goto err;
	}

	S3I(ssl)->send_connection_binding = 1;

	if (!tlsext_ri_serverhello_needs(ssl)) {
		FAIL("serverhello should need RI\n");
		goto err;
	}

	memcpy(S3I(ssl)->previous_client_finished, tlsext_ri_prev_client,
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
		goto err;
	}

	if (S3I(ssl)->renegotiate_seen != 1) {
		FAIL("renegotiate seen not set\n");
		goto err;
	}
        if (S3I(ssl)->send_connection_binding != 1) {
		FAIL("send connection binding not set\n");
		goto err;
	}

	memset(S3I(ssl)->previous_client_finished, 0,
	    sizeof(S3I(ssl)->previous_client_finished));
	memset(S3I(ssl)->previous_server_finished, 0,







|







1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
		goto err;
	}

	if (S3I(ssl)->renegotiate_seen != 1) {
		FAIL("renegotiate seen not set\n");
		goto err;
	}
	if (S3I(ssl)->send_connection_binding != 1) {
		FAIL("send connection binding not set\n");
		goto err;
	}

	memset(S3I(ssl)->previous_client_finished, 0,
	    sizeof(S3I(ssl)->previous_client_finished));
	memset(S3I(ssl)->previous_server_finished, 0,
2728
2729
2730
2731
2732
2733
2734


















































































































































































































2735
2736
2737
2738
2739
2740
2741

2742
2743
2744
2745
2746
2747
2748
	SSL_CTX_free(ssl_ctx);
	SSL_free(ssl);
	free(data);

	return (failure);
}
#endif /* OPENSSL_NO_SRTP */



















































































































































































































int
main(int argc, char **argv)
{
	int failed = 0;

	SSL_library_init();


	failed |= test_tlsext_alpn_clienthello();
	failed |= test_tlsext_alpn_serverhello();

	failed |= test_tlsext_ec_clienthello();
	failed |= test_tlsext_ec_serverhello();








>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







>







2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
	SSL_CTX_free(ssl_ctx);
	SSL_free(ssl);
	free(data);

	return (failure);
}
#endif /* OPENSSL_NO_SRTP */

unsigned char tlsext_clienthello_default[] = {
	0x00, 0x36, 0x00, 0x0b, 0x00, 0x02, 0x01, 0x00,
	0x00, 0x0a, 0x00, 0x08, 0x00, 0x06, 0x00, 0x1d,
	0x00, 0x17, 0x00, 0x18, 0x00, 0x23, 0x00, 0x00,
	0x00, 0x0d, 0x00, 0x1c, 0x00, 0x1a, 0x06, 0x01,
	0x06, 0x03, 0xef, 0xef, 0x05, 0x01, 0x05, 0x03,
	0x04, 0x01, 0x04, 0x03, 0xee, 0xee, 0xed, 0xed,
	0x03, 0x01, 0x03, 0x03, 0x02, 0x01, 0x02, 0x03,
};

unsigned char tlsext_clienthello_disabled[] = {
	0x00
};
const size_t sizeof_tlsext_clienthello_disabled = 0;

static int
test_tlsext_clienthello_build(void)
{
	unsigned char *data = NULL;
	SSL_CTX *ssl_ctx = NULL;
	SSL *ssl = NULL;
	size_t dlen;
	int failure;
	CBB cbb;

	failure = 1;

	if (!CBB_init(&cbb, 0))
		errx(1, "failed to create CBB");

	if ((ssl_ctx = SSL_CTX_new(TLS_client_method())) == NULL)
		errx(1, "failed to create SSL_CTX");
	if ((ssl = SSL_new(ssl_ctx)) == NULL)
		errx(1, "failed to create SSL");

	if (!tlsext_clienthello_build(ssl, &cbb)) {
		FAIL("failed to build clienthello extensions\n");
		goto err;
	}
	if (!CBB_finish(&cbb, &data, &dlen))
		errx(1, "failed to finish CBB");

	if (dlen != sizeof(tlsext_clienthello_default)) {
		FAIL("got clienthello extensions with length %zu, "
		    "want length %zu\n", dlen,
		    sizeof(tlsext_clienthello_default));
		compare_data(data, dlen, tlsext_clienthello_default,
		    sizeof(tlsext_clienthello_default));
		goto err;
	}
	if (memcmp(data, tlsext_clienthello_default, dlen) != 0) {
		FAIL("clienthello extensions differs:\n");
		compare_data(data, dlen, tlsext_clienthello_default,
		    sizeof(tlsext_clienthello_default));
		goto err;
	}

	CBB_cleanup(&cbb);
	CBB_init(&cbb, 0);

	/* Switch to TLSv1.1, disable EC ciphers and session tickets. */
	ssl->client_version = TLS1_1_VERSION;
	if (!SSL_set_cipher_list(ssl, "TLSv1.2:!ECDHE:!ECDSA")) {
		FAIL("failed to set cipher list\n");
		goto err;
	}
	if ((SSL_set_options(ssl, SSL_OP_NO_TICKET) & SSL_OP_NO_TICKET) == 0) {
		FAIL("failed to disable session tickets");
		return 0;
	}

	if (!tlsext_clienthello_build(ssl, &cbb)) {
		FAIL("failed to build clienthello extensions\n");
		goto err;
	}
	if (!CBB_finish(&cbb, &data, &dlen))
		errx(1, "failed to finish CBB");

	if (dlen != sizeof_tlsext_clienthello_disabled) {
		FAIL("got clienthello extensions with length %zu, "
		    "want length %zu\n", dlen,
		    sizeof_tlsext_clienthello_disabled);
		compare_data(data, dlen, tlsext_clienthello_disabled,
		    sizeof_tlsext_clienthello_disabled);
		goto err;
	}
	if (memcmp(data, tlsext_clienthello_disabled, dlen) != 0) {
		FAIL("clienthello extensions differs:\n");
		compare_data(data, dlen, tlsext_clienthello_disabled,
		    sizeof_tlsext_clienthello_disabled);
		goto err;
	}

	failure = 0;

 err:
	CBB_cleanup(&cbb);
	SSL_CTX_free(ssl_ctx);
	SSL_free(ssl);
	free(data);

	return (failure);
}

unsigned char tlsext_serverhello_default[] = {
	0x00
};
const size_t sizeof_tlsext_serverhello_default = 0;

unsigned char tlsext_serverhello_enabled[] = {
	0x00, 0x13, 0xff, 0x01, 0x00, 0x01, 0x00, 0x00,
	0x05, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x02, 0x01,
	0x00, 0x00, 0x23, 0x00, 0x00,
};

static int
test_tlsext_serverhello_build(void)
{
	unsigned char *data = NULL;
	SSL_CTX *ssl_ctx = NULL;
	SSL *ssl = NULL;
	size_t dlen;
	int failure;
	CBB cbb;

	failure = 1;

	if (!CBB_init(&cbb, 0))
		errx(1, "failed to create CBB");

	if ((ssl_ctx = SSL_CTX_new(TLS_server_method())) == NULL)
		errx(1, "failed to create SSL_CTX");
	if ((ssl = SSL_new(ssl_ctx)) == NULL)
		errx(1, "failed to create SSL");
	if ((ssl->session = SSL_SESSION_new()) == NULL)
		errx(1, "failed to create session");

	S3I(ssl)->hs.new_cipher =
	    ssl3_get_cipher_by_id(TLS1_CK_RSA_WITH_AES_128_SHA256);

	if (!tlsext_serverhello_build(ssl, &cbb)) {
		FAIL("failed to build serverhello extensions\n");
		goto err;
	}
	if (!CBB_finish(&cbb, &data, &dlen))
		errx(1, "failed to finish CBB");

	if (dlen != sizeof_tlsext_serverhello_default) {
		FAIL("got serverhello extensions with length %zu, "
		    "want length %zu\n", dlen,
		    sizeof_tlsext_serverhello_default);
		compare_data(data, dlen, tlsext_serverhello_default,
		    sizeof_tlsext_serverhello_default);
		goto err;
	}
	if (memcmp(data, tlsext_serverhello_default, dlen) != 0) {
		FAIL("serverhello extensions differs:\n");
		compare_data(data, dlen, tlsext_serverhello_default,
		    sizeof_tlsext_serverhello_default);
		goto err;
	}

	CBB_cleanup(&cbb);
	CBB_init(&cbb, 0);

	/* Turn a few things on so we get extensions... */
	S3I(ssl)->send_connection_binding = 1;
	S3I(ssl)->hs.new_cipher =
	    ssl3_get_cipher_by_id(TLS1_CK_ECDHE_RSA_WITH_AES_128_SHA256);
	ssl->internal->tlsext_status_expected = 1;
	ssl->internal->tlsext_ticket_expected = 1;
	if ((SSI(ssl)->tlsext_ecpointformatlist = malloc(1)) == NULL)
		errx(1, "malloc failed");
	SSI(ssl)->tlsext_ecpointformatlist_length = 1;
	SSI(ssl)->tlsext_ecpointformatlist[0] =
	    TLSEXT_ECPOINTFORMAT_uncompressed;

	if (!tlsext_serverhello_build(ssl, &cbb)) {
		FAIL("failed to build serverhello extensions\n");
		goto err;
	}
	if (!CBB_finish(&cbb, &data, &dlen))
		errx(1, "failed to finish CBB");

	if (dlen != sizeof(tlsext_serverhello_enabled)) {
		FAIL("got serverhello extensions with length %zu, "
		    "want length %zu\n", dlen,
		    sizeof(tlsext_serverhello_enabled));
		compare_data(data, dlen, tlsext_serverhello_enabled,
		    sizeof(tlsext_serverhello_enabled));
		goto err;
	}
	if (memcmp(data, tlsext_serverhello_enabled, dlen) != 0) {
		FAIL("serverhello extensions differs:\n");
		compare_data(data, dlen, tlsext_serverhello_enabled,
		    sizeof(tlsext_serverhello_enabled));
		goto err;
	}

	failure = 0;

 err:
	CBB_cleanup(&cbb);
	SSL_CTX_free(ssl_ctx);
	SSL_free(ssl);
	free(data);

	return (failure);
}

int
main(int argc, char **argv)
{
	int failed = 0;

	SSL_library_init();
	SSL_load_error_strings();

	failed |= test_tlsext_alpn_clienthello();
	failed |= test_tlsext_alpn_serverhello();

	failed |= test_tlsext_ec_clienthello();
	failed |= test_tlsext_ec_serverhello();

2766
2767
2768
2769
2770
2771
2772



2773
2774
2775

#ifndef OPENSSL_NO_SRTP
	failed |= test_tlsext_srtp_clienthello();
	failed |= test_tlsext_srtp_serverhello();
#else
	fprintf(stderr, "Skipping SRTP tests due to OPENSSL_NO_SRTP\n");
#endif




	return (failed);
}







>
>
>



2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989

#ifndef OPENSSL_NO_SRTP
	failed |= test_tlsext_srtp_clienthello();
	failed |= test_tlsext_srtp_serverhello();
#else
	fprintf(stderr, "Skipping SRTP tests due to OPENSSL_NO_SRTP\n");
#endif

	failed |= test_tlsext_clienthello_build();
	failed |= test_tlsext_serverhello_build();

	return (failed);
}
Changes to jni/libressl/tests/tlstest.bat.
1
2
3
4
5

6
7
8
9
10
11
12
13
14
15
16
17
@echo off
setlocal enabledelayedexpansion
REM	tlstest.bat

set tlstest_bin=Debug\tlstest.exe

if not exist %tlstest_bin% exit /b 1

if "%srcdir%"=="" (
	set srcdir=.
)

%tlstest_bin% %srcdir%\ca.pem %srcdir%\server.pem %srcdir%\server.pem
if !errorlevel! neq 0 (
	exit /b 1
)

endlocal




|
>


<
<
<
<






1
2
3
4
5
6
7
8




9
10
11
12
13
14
@echo off
setlocal enabledelayedexpansion
REM	tlstest.bat

set tlstest_bin=%1
set tlstest_bin=%tlstest_bin:/=\%
if not exist %tlstest_bin% exit /b 1





%tlstest_bin% %srcdir%\ca.pem %srcdir%\server.pem %srcdir%\server.pem
if !errorlevel! neq 0 (
	exit /b 1
)

endlocal
Changes to jni/libressl/tests/tlstest.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: tlstest.c,v 1.9 2017/05/07 03:25:26 jsing Exp $ */
/*
 * Copyright (c) 2017 Joel Sing <jsing@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: tlstest.c,v 1.10 2018/03/19 16:36:12 jsing Exp $ */
/*
 * Copyright (c) 2017 Joel Sing <jsing@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
		return (1);
	}

	cafile = argv[1];
	certfile = argv[2];
	keyfile = argv[3];

	if (tls_init() == -1)
		errx(1, "failed to initialise tls");

	failure |= do_tls_tests();
	failure |= do_tls_ordering_tests();

	return (failure);
}







<
<
<





439
440
441
442
443
444
445



446
447
448
449
450
		return (1);
	}

	cafile = argv[1];
	certfile = argv[2];
	keyfile = argv[3];




	failure |= do_tls_tests();
	failure |= do_tls_ordering_tests();

	return (failure);
}
Changes to jni/libressl/tls/CMakeLists.txt.
1
2
3
4
5
6
7
8
9
10
11
12
13

14
15
16
17
18
19
20










21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52

include_directories(
	.
	../include
	../include/compat
)

set(
	TLS_SRC
	tls.c
	tls_bio_cb.c
	tls_client.c
	tls_config.c
	tls_conninfo.c

	tls_server.c
	tls_ocsp.c
	tls_peer.c
	tls_util.c
	tls_verify.c
)












if(NOT "${OPENSSLDIR}" STREQUAL "")
	add_definitions(-D_PATH_SSL_CA_FILE=\"${OPENSSLDIR}/cert.pem\")
else()
	add_definitions(-D_PATH_SSL_CA_FILE=\"${CMAKE_INSTALL_PREFIX}/etc/ssl/cert.pem\")
endif()

add_library(tls-objects OBJECT ${TLS_SRC})
if (BUILD_SHARED)
	add_library(tls STATIC $<TARGET_OBJECTS:tls-objects>)
	add_library(tls-shared SHARED $<TARGET_OBJECTS:tls-objects>)
	export_symbol(tls-shared ${CMAKE_CURRENT_SOURCE_DIR}/tls.sym)
	target_link_libraries(tls-shared ssl-shared crypto-shared)
	if (WIN32)
		target_link_libraries(tls-shared Ws2_32.lib)
		set(TLS_POSTFIX -${TLS_MAJOR_VERSION})
	endif()
	set_target_properties(tls-shared PROPERTIES
		OUTPUT_NAME tls${TLS_POSTFIX}
		ARCHIVE_OUTPUT_NAME tls${TLS_POSTFIX})
	set_target_properties(tls-shared PROPERTIES VERSION ${TLS_VERSION}
		SOVERSION ${TLS_MAJOR_VERSION})
	if(ENABLE_LIBRESSL_INSTALL)
		install(TARGETS tls tls-shared DESTINATION ${CMAKE_INSTALL_LIBDIR})
	endif(ENABLE_LIBRESSL_INSTALL)
else()
	add_library(tls STATIC ${TLS_SRC})
	if(ENABLE_LIBRESSL_INSTALL)
		install(TARGETS tls DESTINATION ${CMAKE_INSTALL_LIBDIR})
	endif(ENABLE_LIBRESSL_INSTALL)
endif()















>







>
>
>
>
>
>
>
>
>
>







|
|
<
<
|
|

|


|


|

|
|
|
|
|
|
|
|
<
|
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40


41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59

60
61
include_directories(
	.
	../include
	../include/compat
)

set(
	TLS_SRC
	tls.c
	tls_bio_cb.c
	tls_client.c
	tls_config.c
	tls_conninfo.c
	tls_keypair.c
	tls_server.c
	tls_ocsp.c
	tls_peer.c
	tls_util.c
	tls_verify.c
)

if(WIN32)
	set(
		TLS_SRC
		${TLS_SRC}
		compat/ftruncate.c
		compat/getuid.c
		compat/pread.c
		compat/pwrite.c
	)
endif()

if(NOT "${OPENSSLDIR}" STREQUAL "")
	add_definitions(-D_PATH_SSL_CA_FILE=\"${OPENSSLDIR}/cert.pem\")
else()
	add_definitions(-D_PATH_SSL_CA_FILE=\"${CMAKE_INSTALL_PREFIX}/etc/ssl/cert.pem\")
endif()

add_library(tls ${TLS_SRC})
if (BUILD_SHARED_LIBS)


	export_symbol(tls ${CMAKE_CURRENT_SOURCE_DIR}/tls.sym)
	target_link_libraries(tls ssl crypto)
	if (WIN32)
		target_link_libraries(tls Ws2_32.lib)
		set(TLS_POSTFIX -${TLS_MAJOR_VERSION})
	endif()
	set_target_properties(tls PROPERTIES
		OUTPUT_NAME tls${TLS_POSTFIX}
		ARCHIVE_OUTPUT_NAME tls${TLS_POSTFIX})
	set_target_properties(tls PROPERTIES VERSION ${TLS_VERSION}
		SOVERSION ${TLS_MAJOR_VERSION})
endif()

if(ENABLE_LIBRESSL_INSTALL)
	install(
		TARGETS tls
		ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
		LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
		RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}

	)
endif(ENABLE_LIBRESSL_INSTALL)
Changes to jni/libressl/tls/Makefile.am.
19
20
21
22
23
24
25

26
27
28
29
30
31







endif

libtls_la_SOURCES = tls.c
libtls_la_SOURCES += tls_client.c
libtls_la_SOURCES += tls_bio_cb.c
libtls_la_SOURCES += tls_config.c
libtls_la_SOURCES += tls_conninfo.c

libtls_la_SOURCES += tls_server.c
libtls_la_SOURCES += tls_ocsp.c
libtls_la_SOURCES += tls_peer.c
libtls_la_SOURCES += tls_util.c
libtls_la_SOURCES += tls_verify.c
noinst_HEADERS = tls_internal.h














>






>
>
>
>
>
>
>
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
endif

libtls_la_SOURCES = tls.c
libtls_la_SOURCES += tls_client.c
libtls_la_SOURCES += tls_bio_cb.c
libtls_la_SOURCES += tls_config.c
libtls_la_SOURCES += tls_conninfo.c
libtls_la_SOURCES += tls_keypair.c
libtls_la_SOURCES += tls_server.c
libtls_la_SOURCES += tls_ocsp.c
libtls_la_SOURCES += tls_peer.c
libtls_la_SOURCES += tls_util.c
libtls_la_SOURCES += tls_verify.c
noinst_HEADERS = tls_internal.h

if HOST_WIN
libtls_la_SOURCES += compat/ftruncate.c
libtls_la_SOURCES += compat/getuid.c
libtls_la_SOURCES += compat/pread.c
libtls_la_SOURCES += compat/pwrite.c
endif
Changes to jni/libressl/tls/Makefile.in.
87
88
89
90
91
92
93


94
95
96
97
98
99
100
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
@OPENSSLDIR_DEFINED_TRUE@am__append_1 = -D_PATH_SSL_CA_FILE=\"@OPENSSLDIR@/cert.pem\"
@OPENSSLDIR_DEFINED_FALSE@am__append_2 = -D_PATH_SSL_CA_FILE=\"$(sysconfdir)/ssl/cert.pem\"


subdir = tls
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/check-hardening-options.m4 \
	$(top_srcdir)/m4/check-libc.m4 \
	$(top_srcdir)/m4/check-os-options.m4 \
	$(top_srcdir)/m4/disable-compiler-warnings.m4 \
	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \







>
>







87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
@OPENSSLDIR_DEFINED_TRUE@am__append_1 = -D_PATH_SSL_CA_FILE=\"@OPENSSLDIR@/cert.pem\"
@OPENSSLDIR_DEFINED_FALSE@am__append_2 = -D_PATH_SSL_CA_FILE=\"$(sysconfdir)/ssl/cert.pem\"
@HOST_WIN_TRUE@am__append_3 = compat/ftruncate.c compat/getuid.c \
@HOST_WIN_TRUE@	compat/pread.c compat/pwrite.c
subdir = tls
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/check-hardening-options.m4 \
	$(top_srcdir)/m4/check-libc.m4 \
	$(top_srcdir)/m4/check-os-options.m4 \
	$(top_srcdir)/m4/disable-compiler-warnings.m4 \
	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
135
136
137
138
139
140
141










142
143
144

145
146
147
148
149
150
151
152
153
         $(am__cd) "$$dir" && rm -f $$files; }; \
  }
am__installdirs = "$(DESTDIR)$(libdir)"
LTLIBRARIES = $(lib_LTLIBRARIES)
am__DEPENDENCIES_1 =
libtls_la_DEPENDENCIES = $(abs_top_builddir)/ssl/libssl.la \
	$(abs_top_builddir)/crypto/libcrypto.la $(am__DEPENDENCIES_1)










am_libtls_la_OBJECTS = libtls_la-tls.lo libtls_la-tls_client.lo \
	libtls_la-tls_bio_cb.lo libtls_la-tls_config.lo \
	libtls_la-tls_conninfo.lo libtls_la-tls_server.lo \

	libtls_la-tls_ocsp.lo libtls_la-tls_peer.lo \
	libtls_la-tls_util.lo libtls_la-tls_verify.lo
libtls_la_OBJECTS = $(am_libtls_la_OBJECTS)
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
am__v_lt_1 = 
libtls_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \







>
>
>
>
>
>
>
>
>
>


|
>
|
|







137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
         $(am__cd) "$$dir" && rm -f $$files; }; \
  }
am__installdirs = "$(DESTDIR)$(libdir)"
LTLIBRARIES = $(lib_LTLIBRARIES)
am__DEPENDENCIES_1 =
libtls_la_DEPENDENCIES = $(abs_top_builddir)/ssl/libssl.la \
	$(abs_top_builddir)/crypto/libcrypto.la $(am__DEPENDENCIES_1)
am__libtls_la_SOURCES_DIST = tls.c tls_client.c tls_bio_cb.c \
	tls_config.c tls_conninfo.c tls_keypair.c tls_server.c \
	tls_ocsp.c tls_peer.c tls_util.c tls_verify.c \
	compat/ftruncate.c compat/getuid.c compat/pread.c \
	compat/pwrite.c
am__dirstamp = $(am__leading_dot)dirstamp
@HOST_WIN_TRUE@am__objects_1 = compat/libtls_la-ftruncate.lo \
@HOST_WIN_TRUE@	compat/libtls_la-getuid.lo \
@HOST_WIN_TRUE@	compat/libtls_la-pread.lo \
@HOST_WIN_TRUE@	compat/libtls_la-pwrite.lo
am_libtls_la_OBJECTS = libtls_la-tls.lo libtls_la-tls_client.lo \
	libtls_la-tls_bio_cb.lo libtls_la-tls_config.lo \
	libtls_la-tls_conninfo.lo libtls_la-tls_keypair.lo \
	libtls_la-tls_server.lo libtls_la-tls_ocsp.lo \
	libtls_la-tls_peer.lo libtls_la-tls_util.lo \
	libtls_la-tls_verify.lo $(am__objects_1)
libtls_la_OBJECTS = $(am_libtls_la_OBJECTS)
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
am__v_lt_1 = 
libtls_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
	$(AM_LDFLAGS) $(LDFLAGS) -o $@
AM_V_CCLD = $(am__v_CCLD_@AM_V@)
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
am__v_CCLD_0 = @echo "  CCLD    " $@;
am__v_CCLD_1 = 
SOURCES = $(libtls_la_SOURCES)
DIST_SOURCES = $(libtls_la_SOURCES)
am__can_run_installinfo = \
  case $$AM_UPDATE_INFO_DIR in \
    n|no|NO) false;; \
    *) (install-info --version) >/dev/null 2>&1;; \
  esac
HEADERS = $(noinst_HEADERS)
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)







|







196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
	$(AM_LDFLAGS) $(LDFLAGS) -o $@
AM_V_CCLD = $(am__v_CCLD_@AM_V@)
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
am__v_CCLD_0 = @echo "  CCLD    " $@;
am__v_CCLD_1 = 
SOURCES = $(libtls_la_SOURCES)
DIST_SOURCES = $(am__libtls_la_SOURCES_DIST)
am__can_run_installinfo = \
  case $$AM_UPDATE_INFO_DIR in \
    n|no|NO) false;; \
    *) (install-info --version) >/dev/null 2>&1;; \
  esac
HEADERS = $(noinst_HEADERS)
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
lib_LTLIBRARIES = libtls.la
EXTRA_DIST = VERSION CMakeLists.txt tls.sym
libtls_la_LDFLAGS = -version-info @LIBTLS_VERSION@ -no-undefined -export-symbols $(top_srcdir)/tls/tls.sym
libtls_la_LIBADD = $(abs_top_builddir)/ssl/libssl.la \
	$(abs_top_builddir)/crypto/libcrypto.la $(PLATFORM_LDADD)
libtls_la_CPPFLAGS = $(AM_CPPFLAGS) $(am__append_1) $(am__append_2)
libtls_la_SOURCES = tls.c tls_client.c tls_bio_cb.c tls_config.c \
	tls_conninfo.c tls_server.c tls_ocsp.c tls_peer.c tls_util.c \
	tls_verify.c
noinst_HEADERS = tls_internal.h
all: all-am

.SUFFIXES:
.SUFFIXES: .c .lo .o .obj
$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(top_srcdir)/Makefile.am.common $(am__configure_deps)
	@for dep in $?; do \







|
|







359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
lib_LTLIBRARIES = libtls.la
EXTRA_DIST = VERSION CMakeLists.txt tls.sym
libtls_la_LDFLAGS = -version-info @LIBTLS_VERSION@ -no-undefined -export-symbols $(top_srcdir)/tls/tls.sym
libtls_la_LIBADD = $(abs_top_builddir)/ssl/libssl.la \
	$(abs_top_builddir)/crypto/libcrypto.la $(PLATFORM_LDADD)
libtls_la_CPPFLAGS = $(AM_CPPFLAGS) $(am__append_1) $(am__append_2)
libtls_la_SOURCES = tls.c tls_client.c tls_bio_cb.c tls_config.c \
	tls_conninfo.c tls_keypair.c tls_server.c tls_ocsp.c \
	tls_peer.c tls_util.c tls_verify.c $(am__append_3)
noinst_HEADERS = tls_internal.h
all: all-am

.SUFFIXES:
.SUFFIXES: .c .lo .o .obj
$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(top_srcdir)/Makefile.am.common $(am__configure_deps)
	@for dep in $?; do \
418
419
420
421
422
423
424














425
426
427
428
429
430


431
432
433
434
435
436
437
438
439

440
441
442
443
444




445
446
447
448
449
450
451
	locs=`for p in $$list; do echo $$p; done | \
	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
	      sort -u`; \
	test -z "$$locs" || { \
	  echo rm -f $${locs}; \
	  rm -f $${locs}; \
	}















libtls.la: $(libtls_la_OBJECTS) $(libtls_la_DEPENDENCIES) $(EXTRA_libtls_la_DEPENDENCIES) 
	$(AM_V_CCLD)$(libtls_la_LINK) -rpath $(libdir) $(libtls_la_OBJECTS) $(libtls_la_LIBADD) $(LIBS)

mostlyclean-compile:
	-rm -f *.$(OBJEXT)



distclean-compile:
	-rm -f *.tab.c

@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtls_la-tls.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtls_la-tls_bio_cb.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtls_la-tls_client.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtls_la-tls_config.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtls_la-tls_conninfo.Plo@am__quote@

@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtls_la-tls_ocsp.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtls_la-tls_peer.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtls_la-tls_server.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtls_la-tls_util.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtls_la-tls_verify.Plo@am__quote@





.c.o:
@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@







>
>
>
>
>
>
>
>
>
>
>
>
>
>






>
>









>





>
>
>
>







431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
	locs=`for p in $$list; do echo $$p; done | \
	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
	      sort -u`; \
	test -z "$$locs" || { \
	  echo rm -f $${locs}; \
	  rm -f $${locs}; \
	}
compat/$(am__dirstamp):
	@$(MKDIR_P) compat
	@: > compat/$(am__dirstamp)
compat/$(DEPDIR)/$(am__dirstamp):
	@$(MKDIR_P) compat/$(DEPDIR)
	@: > compat/$(DEPDIR)/$(am__dirstamp)
compat/libtls_la-ftruncate.lo: compat/$(am__dirstamp) \
	compat/$(DEPDIR)/$(am__dirstamp)
compat/libtls_la-getuid.lo: compat/$(am__dirstamp) \
	compat/$(DEPDIR)/$(am__dirstamp)
compat/libtls_la-pread.lo: compat/$(am__dirstamp) \
	compat/$(DEPDIR)/$(am__dirstamp)
compat/libtls_la-pwrite.lo: compat/$(am__dirstamp) \
	compat/$(DEPDIR)/$(am__dirstamp)

libtls.la: $(libtls_la_OBJECTS) $(libtls_la_DEPENDENCIES) $(EXTRA_libtls_la_DEPENDENCIES) 
	$(AM_V_CCLD)$(libtls_la_LINK) -rpath $(libdir) $(libtls_la_OBJECTS) $(libtls_la_LIBADD) $(LIBS)

mostlyclean-compile:
	-rm -f *.$(OBJEXT)
	-rm -f compat/*.$(OBJEXT)
	-rm -f compat/*.lo

distclean-compile:
	-rm -f *.tab.c

@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtls_la-tls.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtls_la-tls_bio_cb.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtls_la-tls_client.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtls_la-tls_config.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtls_la-tls_conninfo.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtls_la-tls_keypair.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtls_la-tls_ocsp.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtls_la-tls_peer.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtls_la-tls_server.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtls_la-tls_util.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtls_la-tls_verify.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/libtls_la-ftruncate.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/libtls_la-getuid.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/libtls_la-pread.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@compat/$(DEPDIR)/libtls_la-pwrite.Plo@am__quote@

.c.o:
@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
498
499
500
501
502
503
504







505
506
507
508
509
510
511
libtls_la-tls_conninfo.lo: tls_conninfo.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtls_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtls_la-tls_conninfo.lo -MD -MP -MF $(DEPDIR)/libtls_la-tls_conninfo.Tpo -c -o libtls_la-tls_conninfo.lo `test -f 'tls_conninfo.c' || echo '$(srcdir)/'`tls_conninfo.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtls_la-tls_conninfo.Tpo $(DEPDIR)/libtls_la-tls_conninfo.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tls_conninfo.c' object='libtls_la-tls_conninfo.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtls_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtls_la-tls_conninfo.lo `test -f 'tls_conninfo.c' || echo '$(srcdir)/'`tls_conninfo.c








libtls_la-tls_server.lo: tls_server.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtls_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtls_la-tls_server.lo -MD -MP -MF $(DEPDIR)/libtls_la-tls_server.Tpo -c -o libtls_la-tls_server.lo `test -f 'tls_server.c' || echo '$(srcdir)/'`tls_server.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtls_la-tls_server.Tpo $(DEPDIR)/libtls_la-tls_server.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tls_server.c' object='libtls_la-tls_server.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtls_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtls_la-tls_server.lo `test -f 'tls_server.c' || echo '$(srcdir)/'`tls_server.c








>
>
>
>
>
>
>







532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
libtls_la-tls_conninfo.lo: tls_conninfo.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtls_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtls_la-tls_conninfo.lo -MD -MP -MF $(DEPDIR)/libtls_la-tls_conninfo.Tpo -c -o libtls_la-tls_conninfo.lo `test -f 'tls_conninfo.c' || echo '$(srcdir)/'`tls_conninfo.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtls_la-tls_conninfo.Tpo $(DEPDIR)/libtls_la-tls_conninfo.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tls_conninfo.c' object='libtls_la-tls_conninfo.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtls_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtls_la-tls_conninfo.lo `test -f 'tls_conninfo.c' || echo '$(srcdir)/'`tls_conninfo.c

libtls_la-tls_keypair.lo: tls_keypair.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtls_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtls_la-tls_keypair.lo -MD -MP -MF $(DEPDIR)/libtls_la-tls_keypair.Tpo -c -o libtls_la-tls_keypair.lo `test -f 'tls_keypair.c' || echo '$(srcdir)/'`tls_keypair.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtls_la-tls_keypair.Tpo $(DEPDIR)/libtls_la-tls_keypair.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tls_keypair.c' object='libtls_la-tls_keypair.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtls_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtls_la-tls_keypair.lo `test -f 'tls_keypair.c' || echo '$(srcdir)/'`tls_keypair.c

libtls_la-tls_server.lo: tls_server.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtls_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtls_la-tls_server.lo -MD -MP -MF $(DEPDIR)/libtls_la-tls_server.Tpo -c -o libtls_la-tls_server.lo `test -f 'tls_server.c' || echo '$(srcdir)/'`tls_server.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtls_la-tls_server.Tpo $(DEPDIR)/libtls_la-tls_server.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tls_server.c' object='libtls_la-tls_server.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtls_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtls_la-tls_server.lo `test -f 'tls_server.c' || echo '$(srcdir)/'`tls_server.c

533
534
535
536
537
538
539




























540
541
542
543
544

545
546
547
548
549
550
551
libtls_la-tls_verify.lo: tls_verify.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtls_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtls_la-tls_verify.lo -MD -MP -MF $(DEPDIR)/libtls_la-tls_verify.Tpo -c -o libtls_la-tls_verify.lo `test -f 'tls_verify.c' || echo '$(srcdir)/'`tls_verify.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtls_la-tls_verify.Tpo $(DEPDIR)/libtls_la-tls_verify.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tls_verify.c' object='libtls_la-tls_verify.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtls_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtls_la-tls_verify.lo `test -f 'tls_verify.c' || echo '$(srcdir)/'`tls_verify.c





























mostlyclean-libtool:
	-rm -f *.lo

clean-libtool:
	-rm -rf .libs _libs


ID: $(am__tagged_files)
	$(am__define_uniq_tagged_files); mkid -fID $$unique
tags: tags-am
TAGS: tags

tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>





>







574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
libtls_la-tls_verify.lo: tls_verify.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtls_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtls_la-tls_verify.lo -MD -MP -MF $(DEPDIR)/libtls_la-tls_verify.Tpo -c -o libtls_la-tls_verify.lo `test -f 'tls_verify.c' || echo '$(srcdir)/'`tls_verify.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtls_la-tls_verify.Tpo $(DEPDIR)/libtls_la-tls_verify.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tls_verify.c' object='libtls_la-tls_verify.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtls_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtls_la-tls_verify.lo `test -f 'tls_verify.c' || echo '$(srcdir)/'`tls_verify.c

compat/libtls_la-ftruncate.lo: compat/ftruncate.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtls_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT compat/libtls_la-ftruncate.lo -MD -MP -MF compat/$(DEPDIR)/libtls_la-ftruncate.Tpo -c -o compat/libtls_la-ftruncate.lo `test -f 'compat/ftruncate.c' || echo '$(srcdir)/'`compat/ftruncate.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) compat/$(DEPDIR)/libtls_la-ftruncate.Tpo compat/$(DEPDIR)/libtls_la-ftruncate.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='compat/ftruncate.c' object='compat/libtls_la-ftruncate.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtls_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o compat/libtls_la-ftruncate.lo `test -f 'compat/ftruncate.c' || echo '$(srcdir)/'`compat/ftruncate.c

compat/libtls_la-getuid.lo: compat/getuid.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtls_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT compat/libtls_la-getuid.lo -MD -MP -MF compat/$(DEPDIR)/libtls_la-getuid.Tpo -c -o compat/libtls_la-getuid.lo `test -f 'compat/getuid.c' || echo '$(srcdir)/'`compat/getuid.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) compat/$(DEPDIR)/libtls_la-getuid.Tpo compat/$(DEPDIR)/libtls_la-getuid.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='compat/getuid.c' object='compat/libtls_la-getuid.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtls_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o compat/libtls_la-getuid.lo `test -f 'compat/getuid.c' || echo '$(srcdir)/'`compat/getuid.c

compat/libtls_la-pread.lo: compat/pread.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtls_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT compat/libtls_la-pread.lo -MD -MP -MF compat/$(DEPDIR)/libtls_la-pread.Tpo -c -o compat/libtls_la-pread.lo `test -f 'compat/pread.c' || echo '$(srcdir)/'`compat/pread.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) compat/$(DEPDIR)/libtls_la-pread.Tpo compat/$(DEPDIR)/libtls_la-pread.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='compat/pread.c' object='compat/libtls_la-pread.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtls_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o compat/libtls_la-pread.lo `test -f 'compat/pread.c' || echo '$(srcdir)/'`compat/pread.c

compat/libtls_la-pwrite.lo: compat/pwrite.c
@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtls_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT compat/libtls_la-pwrite.lo -MD -MP -MF compat/$(DEPDIR)/libtls_la-pwrite.Tpo -c -o compat/libtls_la-pwrite.lo `test -f 'compat/pwrite.c' || echo '$(srcdir)/'`compat/pwrite.c
@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) compat/$(DEPDIR)/libtls_la-pwrite.Tpo compat/$(DEPDIR)/libtls_la-pwrite.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='compat/pwrite.c' object='compat/libtls_la-pwrite.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtls_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o compat/libtls_la-pwrite.lo `test -f 'compat/pwrite.c' || echo '$(srcdir)/'`compat/pwrite.c

mostlyclean-libtool:
	-rm -f *.lo

clean-libtool:
	-rm -rf .libs _libs
	-rm -rf compat/.libs compat/_libs

ID: $(am__tagged_files)
	$(am__define_uniq_tagged_files); mkid -fID $$unique
tags: tags-am
TAGS: tags

tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
654
655
656
657
658
659
660


661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
mostlyclean-generic:

clean-generic:

distclean-generic:
	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)



maintainer-clean-generic:
	@echo "This command is intended for maintainers to use"
	@echo "it deletes files that may require special tools to rebuild."
clean: clean-am

clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
	mostlyclean-am

distclean: distclean-am
	-rm -rf ./$(DEPDIR)
	-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
	distclean-tags

dvi: dvi-am

dvi-am:







>
>










|







724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
mostlyclean-generic:

clean-generic:

distclean-generic:
	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
	-rm -f compat/$(DEPDIR)/$(am__dirstamp)
	-rm -f compat/$(am__dirstamp)

maintainer-clean-generic:
	@echo "This command is intended for maintainers to use"
	@echo "it deletes files that may require special tools to rebuild."
clean: clean-am

clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
	mostlyclean-am

distclean: distclean-am
	-rm -rf ./$(DEPDIR) compat/$(DEPDIR)
	-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
	distclean-tags

dvi: dvi-am

dvi-am:
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
install-ps: install-ps-am

install-ps-am:

installcheck-am:

maintainer-clean: maintainer-clean-am
	-rm -rf ./$(DEPDIR)
	-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic

mostlyclean: mostlyclean-am

mostlyclean-am: mostlyclean-compile mostlyclean-generic \
	mostlyclean-libtool







|







782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
install-ps: install-ps-am

install-ps-am:

installcheck-am:

maintainer-clean: maintainer-clean-am
	-rm -rf ./$(DEPDIR) compat/$(DEPDIR)
	-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic

mostlyclean: mostlyclean-am

mostlyclean-am: mostlyclean-compile mostlyclean-generic \
	mostlyclean-libtool
Changes to jni/libressl/tls/VERSION.
1
16:1:0
|
1
17:1:0
Added jni/libressl/tls/compat/ftruncate.c.


































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/*
 * Public domain
 *
 * Kinichiro Inoguchi <inoguchi@openbsd.org>
 */

#ifdef _WIN32

#include <unistd.h>

int
ftruncate(int fd, off_t length)
{
	return _chsize(fd, length);
}

#endif
Added jni/libressl/tls/compat/getuid.c.




































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/*
 * Public domain
 *
 * Kinichiro Inoguchi <inoguchi@openbsd.org>
 */

#ifdef _WIN32

#include <unistd.h>

uid_t
getuid(void)
{
	/* Windows fstat sets 0 as st_uid */
	return 0;
}

#endif
Added jni/libressl/tls/compat/pread.c.


























































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/*
 * Public domain
 *
 * Kinichiro Inoguchi <inoguchi@openbsd.org>
 */

#ifdef _WIN32

#define NO_REDEF_POSIX_FUNCTIONS

#include <unistd.h>

ssize_t
pread(int d, void *buf, size_t nbytes, off_t offset)
{
	off_t cpos, opos, rpos;
	ssize_t bytes;
	if((cpos = lseek(d, 0, SEEK_CUR)) == -1)
		return -1;
	if((opos = lseek(d, offset, SEEK_SET)) == -1)
		return -1;
	if((bytes = read(d, buf, nbytes)) == -1)
		return -1;
	if((rpos = lseek(d, cpos, SEEK_SET)) == -1)
		return -1;
	return bytes;
}

#endif
Added jni/libressl/tls/compat/pwrite.c.


























































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/*
 * Public domain
 *
 * Kinichiro Inoguchi <inoguchi@openbsd.org>
 */

#ifdef _WIN32

#define NO_REDEF_POSIX_FUNCTIONS

#include <unistd.h>

ssize_t
pwrite(int d, const void *buf, size_t nbytes, off_t offset)
{
	off_t cpos, opos, rpos;
	ssize_t bytes;
	if((cpos = lseek(d, 0, SEEK_CUR)) == -1)
		return -1;
	if((opos = lseek(d, offset, SEEK_SET)) == -1)
		return -1;
	if((bytes = write(d, buf, nbytes)) == -1)
		return -1;
	if((rpos = lseek(d, cpos, SEEK_SET)) == -1)
		return -1;
	return bytes;
}

#endif
Changes to jni/libressl/tls/tls.c.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56




57
58



59


60
61
62
63
64
65
66
/* $OpenBSD: tls.c,v 1.71 2017/09/20 17:05:17 jsing Exp $ */
/*
 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

#include <sys/socket.h>

#include <errno.h>
#include <limits.h>

#include <stdlib.h>
#include <unistd.h>

#include <openssl/bio.h>
#include <openssl/err.h>
#include <openssl/evp.h>
#include <openssl/pem.h>
#include <openssl/safestack.h>
#include <openssl/ssl.h>
#include <openssl/x509.h>

#include <tls.h>
#include "tls_internal.h"

static struct tls_config *tls_config_default;

int
tls_init(void)
{
	static int tls_initialised = 0;

	if (tls_initialised)
		return (0);

	SSL_load_error_strings();
	SSL_library_init();

	if (BIO_sock_init() != 1)
		return (-1);

	if ((tls_config_default = tls_config_new()) == NULL)
		return (-1);

	tls_config_default->refcount++;





	tls_initialised = 1;




	return (0);


}

const char *
tls_error(struct tls *ctx)
{
	return ctx->error.msg;
}
|




















>
















<
|
|
|
|
<
<
|




|

|
|



>
>
>
>
|
|
>
>
>
|
>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38

39
40
41
42


43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
/* $OpenBSD: tls.c,v 1.79 2018/03/19 16:34:47 jsing Exp $ */
/*
 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

#include <sys/socket.h>

#include <errno.h>
#include <limits.h>
#include <pthread.h>
#include <stdlib.h>
#include <unistd.h>

#include <openssl/bio.h>
#include <openssl/err.h>
#include <openssl/evp.h>
#include <openssl/pem.h>
#include <openssl/safestack.h>
#include <openssl/ssl.h>
#include <openssl/x509.h>

#include <tls.h>
#include "tls_internal.h"

static struct tls_config *tls_config_default;


static int tls_init_rv = -1;

static void
tls_do_init(void)


{
	SSL_load_error_strings();
	SSL_library_init();

	if (BIO_sock_init() != 1)
		return;

	if ((tls_config_default = tls_config_new_internal()) == NULL)
		return;

	tls_config_default->refcount++;

	tls_init_rv = 0;
}

int
tls_init(void)
{
	static pthread_once_t once = PTHREAD_ONCE_INIT;

	if (pthread_once(&once, tls_do_init) != 0)
		return -1;

	return tls_init_rv;
}

const char *
tls_error(struct tls *ctx)
{
	return ctx->error.msg;
}
265
266
267
268
269
270
271

272

273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298

299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335

int
tls_cert_hash(X509 *cert, char **hash)
{
	char d[EVP_MAX_MD_SIZE], *dhex = NULL;
	int dlen, rv = -1;


	*hash = NULL;

	if (X509_digest(cert, EVP_sha256(), d, &dlen) != 1)
		goto err;

	if (tls_hex_string(d, dlen, &dhex, NULL) != 0)
		goto err;

	if (asprintf(hash, "SHA256:%s", dhex) == -1) {
		*hash = NULL;
		goto err;
	}

	rv = 0;
 err:
	free(dhex);

	return (rv);
}

static int
tls_keypair_pubkey_hash(struct tls_keypair *keypair, char **hash)
{
	BIO *membio = NULL;
	X509 *cert = NULL;
	char d[EVP_MAX_MD_SIZE], *dhex = NULL;
	int dlen, rv = -1;


	*hash = NULL;

	if ((membio = BIO_new_mem_buf(keypair->cert_mem,
	    keypair->cert_len)) == NULL)
		goto err;
	if ((cert = PEM_read_bio_X509_AUX(membio, NULL, tls_password_cb,
	    NULL)) == NULL)
		goto err;

	if (X509_pubkey_digest(cert, EVP_sha256(), d, &dlen) != 1)
		goto err;

	if (tls_hex_string(d, dlen, &dhex, NULL) != 0)
		goto err;

	if (asprintf(hash, "SHA256:%s", dhex) == -1) {
		*hash = NULL;
		goto err;
	}

	rv = 0;

 err:
	free(dhex);
	X509_free(cert);
	BIO_free(membio);

	return (rv);
}


int
tls_configure_ssl_keypair(struct tls *ctx, SSL_CTX *ssl_ctx,
    struct tls_keypair *keypair, int required)
{
	EVP_PKEY *pkey = NULL;
	BIO *bio = NULL;







>

>


















|
|

<
<



>


<
<
<
<
<
<
<















<
<



<







272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302


303
304
305
306
307
308







309
310
311
312
313
314
315
316
317
318
319
320
321
322
323


324
325
326

327
328
329
330
331
332
333

int
tls_cert_hash(X509 *cert, char **hash)
{
	char d[EVP_MAX_MD_SIZE], *dhex = NULL;
	int dlen, rv = -1;

	free(*hash);
	*hash = NULL;

	if (X509_digest(cert, EVP_sha256(), d, &dlen) != 1)
		goto err;

	if (tls_hex_string(d, dlen, &dhex, NULL) != 0)
		goto err;

	if (asprintf(hash, "SHA256:%s", dhex) == -1) {
		*hash = NULL;
		goto err;
	}

	rv = 0;
 err:
	free(dhex);

	return (rv);
}

int
tls_cert_pubkey_hash(X509 *cert, char **hash)
{


	char d[EVP_MAX_MD_SIZE], *dhex = NULL;
	int dlen, rv = -1;

	free(*hash);
	*hash = NULL;








	if (X509_pubkey_digest(cert, EVP_sha256(), d, &dlen) != 1)
		goto err;

	if (tls_hex_string(d, dlen, &dhex, NULL) != 0)
		goto err;

	if (asprintf(hash, "SHA256:%s", dhex) == -1) {
		*hash = NULL;
		goto err;
	}

	rv = 0;

 err:
	free(dhex);



	return (rv);
}


int
tls_configure_ssl_keypair(struct tls *ctx, SSL_CTX *ssl_ctx,
    struct tls_keypair *keypair, int required)
{
	EVP_PKEY *pkey = NULL;
	BIO *bio = NULL;
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
		}

		if (SSL_CTX_use_certificate_chain_mem(ssl_ctx,
		    keypair->cert_mem, keypair->cert_len) != 1) {
			tls_set_errorx(ctx, "failed to load certificate");
			goto err;
		}
		if (tls_keypair_pubkey_hash(keypair, &keypair->pubkey_hash) == -1)
			goto err;
	}

	if (keypair->key_mem != NULL) {
		if (keypair->key_len > INT_MAX) {
			tls_set_errorx(ctx, "key too long");
			goto err;
		}







<
<







344
345
346
347
348
349
350


351
352
353
354
355
356
357
		}

		if (SSL_CTX_use_certificate_chain_mem(ssl_ctx,
		    keypair->cert_mem, keypair->cert_len) != 1) {
			tls_set_errorx(ctx, "failed to load certificate");
			goto err;
		}


	}

	if (keypair->key_mem != NULL) {
		if (keypair->key_len > INT_MAX) {
			tls_set_errorx(ctx, "key too long");
			goto err;
		}
Changes to jni/libressl/tls/tls.sym.
38
39
40
41
42
43
44

45
46
47
48
49
50
51
52
53

54
55
56
57
58
59
60
tls_config_set_keypair_ocsp_file
tls_config_set_keypair_ocsp_mem
tls_config_set_ocsp_staple_mem
tls_config_set_ocsp_staple_file
tls_config_set_protocols
tls_config_set_session_id
tls_config_set_session_lifetime

tls_config_set_verify_depth
tls_config_skip_private_key_check
tls_config_verify
tls_config_verify_client
tls_config_verify_client_optional
tls_configure
tls_conn_alpn_selected
tls_conn_cipher
tls_conn_servername

tls_conn_version
tls_connect
tls_connect_cbs
tls_connect_fds
tls_connect_servername
tls_connect_socket
tls_error







>









>







38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
tls_config_set_keypair_ocsp_file
tls_config_set_keypair_ocsp_mem
tls_config_set_ocsp_staple_mem
tls_config_set_ocsp_staple_file
tls_config_set_protocols
tls_config_set_session_id
tls_config_set_session_lifetime
tls_config_set_session_fd
tls_config_set_verify_depth
tls_config_skip_private_key_check
tls_config_verify
tls_config_verify_client
tls_config_verify_client_optional
tls_configure
tls_conn_alpn_selected
tls_conn_cipher
tls_conn_servername
tls_conn_session_resumed
tls_conn_version
tls_connect
tls_connect_cbs
tls_connect_fds
tls_connect_servername
tls_connect_socket
tls_error
Changes to jni/libressl/tls/tls_client.c.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

20
21
22
23

24
25
26
27
28
29
30
31
32
33
34
35
36
37



38
39
40
41
42
43
44
/* $OpenBSD: tls_client.c,v 1.43 2017/08/10 18:18:30 jsing Exp $ */
/*
 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

#include <sys/types.h>
#include <sys/socket.h>


#include <arpa/inet.h>
#include <netinet/in.h>


#include <netdb.h>
#include <stdlib.h>
#include <unistd.h>

#include <openssl/err.h>
#include <openssl/x509.h>

#include <tls.h>
#include "tls_internal.h"

struct tls *
tls_client(void)
{
	struct tls *ctx;




	if ((ctx = tls_new()) == NULL)
		return (NULL);

	ctx->flags |= TLS_CLIENT;

	return (ctx);
|


















>




>














>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/* $OpenBSD: tls_client.c,v 1.45 2018/03/19 16:34:47 jsing Exp $ */
/*
 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

#include <sys/types.h>
#include <sys/socket.h>
#include <sys/stat.h>

#include <arpa/inet.h>
#include <netinet/in.h>

#include <limits.h>
#include <netdb.h>
#include <stdlib.h>
#include <unistd.h>

#include <openssl/err.h>
#include <openssl/x509.h>

#include <tls.h>
#include "tls_internal.h"

struct tls *
tls_client(void)
{
	struct tls *ctx;

	if (tls_init() == -1)
		return (NULL);

	if ((ctx = tls_new()) == NULL)
		return (NULL);

	ctx->flags |= TLS_CLIENT;

	return (ctx);
153
154
155
156
157
158
159
















































































































160
161
162
163
164
165
166

 err:
	free(hs);
	free(ps);

	return (rv);
}

















































































































static int
tls_connect_common(struct tls *ctx, const char *servername)
{
	union tls_addr addrbuf;
	int rv = -1;








>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283

 err:
	free(hs);
	free(ps);

	return (rv);
}

static int
tls_client_read_session(struct tls *ctx)
{
	int sfd = ctx->config->session_fd;
	uint8_t *session = NULL;
	size_t session_len = 0;
	SSL_SESSION *ss = NULL;
	BIO *bio = NULL;
	struct stat sb;
	ssize_t n;
	int rv = -1;

	if (fstat(sfd, &sb) == -1) {
		tls_set_error(ctx, "failed to stat session file");
		goto err;
	}
	if (sb.st_size < 0 || sb.st_size > INT_MAX) {
		tls_set_errorx(ctx, "invalid session file size");
		goto err;
	}
	session_len = (size_t)sb.st_size;

	/* A zero size file means that we do not yet have a valid session. */
	if (session_len == 0)
		goto done;

	if ((session = malloc(session_len)) == NULL)
		goto err;

	n = pread(sfd, session, session_len, 0);
	if (n < 0 || (size_t)n != session_len) {
		tls_set_error(ctx, "failed to read session file");
		goto err;
	}
	if ((bio = BIO_new_mem_buf(session, session_len)) == NULL)
		goto err;
	if ((ss = PEM_read_bio_SSL_SESSION(bio, NULL, tls_password_cb,
	    NULL)) == NULL) {
		tls_set_errorx(ctx, "failed to parse session");
		goto err;
	}

	if (SSL_set_session(ctx->ssl_conn, ss) != 1) {
		tls_set_errorx(ctx, "failed to set session");
		goto err;
	}

 done:
	rv = 0;

 err:
	freezero(session, session_len);
	SSL_SESSION_free(ss);
	BIO_free(bio);

	return rv;
}

static int
tls_client_write_session(struct tls *ctx)
{
	int sfd = ctx->config->session_fd;
	SSL_SESSION *ss = NULL;
	BIO *bio = NULL;
	long data_len;
	char *data;
	off_t offset;
	size_t len;
	ssize_t n;
	int rv = -1;

	if ((ss = SSL_get1_session(ctx->ssl_conn)) == NULL) {
		if (ftruncate(sfd, 0) == -1) {
			tls_set_error(ctx, "failed to truncate session file");
			goto err;
		}
		goto done;
	}

	if ((bio = BIO_new(BIO_s_mem())) == NULL)
		goto err;
	if (PEM_write_bio_SSL_SESSION(bio, ss) == 0)
		goto err;
	if ((data_len = BIO_get_mem_data(bio, &data)) <= 0)
		goto err;

	len = (size_t)data_len;
	offset = 0;

	if (ftruncate(sfd, len) == -1) {
		tls_set_error(ctx, "failed to truncate session file");
		goto err;
	}
	while (len > 0) {
		if ((n = pwrite(sfd, data + offset, len, offset)) == -1) {
			tls_set_error(ctx, "failed to write session file");
			goto err;
		}
		offset += n;
		len -= n;
	}

 done:
	rv = 0;

 err:
	SSL_SESSION_free(ss);
	BIO_free_all(bio);

	return (rv);
}

static int
tls_connect_common(struct tls *ctx, const char *servername)
{
	union tls_addr addrbuf;
	int rv = -1;

216
217
218
219
220
221
222






223
224
225
226
227
228
229
		goto err;
	}

	if (SSL_set_app_data(ctx->ssl_conn, ctx) != 1) {
		tls_set_errorx(ctx, "ssl application data failure");
		goto err;
	}







	if (SSL_set_tlsext_status_type(ctx->ssl_conn, TLSEXT_STATUSTYPE_ocsp) != 1) {
		tls_set_errorx(ctx, "ssl OCSP extension setup failure");
		goto err;
	}

	/*







>
>
>
>
>
>







333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
		goto err;
	}

	if (SSL_set_app_data(ctx->ssl_conn, ctx) != 1) {
		tls_set_errorx(ctx, "ssl application data failure");
		goto err;
	}

	if (ctx->config->session_fd != -1) {
		SSL_clear_options(ctx->ssl_conn, SSL_OP_NO_TICKET);
		if (tls_client_read_session(ctx) == -1)
			goto err;
	}

	if (SSL_set_tlsext_status_type(ctx->ssl_conn, TLSEXT_STATUSTYPE_ocsp) != 1) {
		tls_set_errorx(ctx, "ssl OCSP extension setup failure");
		goto err;
	}

	/*
332
333
334
335
336
337
338






339
340
341
342
343
344
345
			tls_set_errorx(ctx, "name `%s' not present in"
			    " server certificate", ctx->servername);
			goto err;
		}
	}

	ctx->state |= TLS_HANDSHAKE_COMPLETE;






	rv = 0;

 err:
	X509_free(cert);

	return (rv);
}







>
>
>
>
>
>







455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
			tls_set_errorx(ctx, "name `%s' not present in"
			    " server certificate", ctx->servername);
			goto err;
		}
	}

	ctx->state |= TLS_HANDSHAKE_COMPLETE;

	if (ctx->config->session_fd != -1) {
		if (tls_client_write_session(ctx) == -1)
			goto err;
	}

	rv = 0;

 err:
	X509_free(cert);

	return (rv);
}
Changes to jni/libressl/tls/tls_config.c.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16




17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188

189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210

211
212
213
214
215
216
217
/* $OpenBSD: tls_config.c,v 1.44.4.1 2017/12/09 16:49:17 jsing Exp $ */
/*
 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */





#include <sys/stat.h>

#include <ctype.h>
#include <errno.h>
#include <fcntl.h>
#include <stdlib.h>
#include <unistd.h>

#include <tls.h>
#include "tls_internal.h"

static int
set_string(const char **dest, const char *src)
{
	free((char *)*dest);
	*dest = NULL;
	if (src != NULL)
		if ((*dest = strdup(src)) == NULL)
			return -1;
	return 0;
}

static void *
memdup(const void *in, size_t len)
{
	void *out;

	if ((out = malloc(len)) == NULL)
		return NULL;
	memcpy(out, in, len);
	return out;
}

static int
set_mem(char **dest, size_t *destlen, const void *src, size_t srclen)
{
	free(*dest);
	*dest = NULL;
	*destlen = 0;
	if (src != NULL)
		if ((*dest = memdup(src, srclen)) == NULL)
			return -1;
	*destlen = srclen;
	return 0;
}

static struct tls_keypair *
tls_keypair_new(void)
{
	return calloc(1, sizeof(struct tls_keypair));
}

static void
tls_keypair_clear_key(struct tls_keypair *keypair)
{
	freezero(keypair->key_mem, keypair->key_len);
	keypair->key_mem = NULL;
	keypair->key_len = 0;
}

static int
tls_keypair_set_cert_file(struct tls_keypair *keypair, struct tls_error *error,
    const char *cert_file)
{
	return tls_config_load_file(error, "certificate", cert_file,
	    &keypair->cert_mem, &keypair->cert_len);
}

static int
tls_keypair_set_cert_mem(struct tls_keypair *keypair, const uint8_t *cert,
    size_t len)
{
	return set_mem(&keypair->cert_mem, &keypair->cert_len, cert, len);
}

static int
tls_keypair_set_key_file(struct tls_keypair *keypair, struct tls_error *error,
    const char *key_file)
{
	tls_keypair_clear_key(keypair);
	return tls_config_load_file(error, "key", key_file,
	    &keypair->key_mem, &keypair->key_len);
}

static int
tls_keypair_set_key_mem(struct tls_keypair *keypair, const uint8_t *key,
    size_t len)
{
	tls_keypair_clear_key(keypair);
	return set_mem(&keypair->key_mem, &keypair->key_len, key, len);
}

static int
tls_keypair_set_ocsp_staple_file(struct tls_keypair *keypair,
    struct tls_error *error, const char *ocsp_file)
{
	return tls_config_load_file(error, "ocsp", ocsp_file,
	    &keypair->ocsp_staple, &keypair->ocsp_staple_len);
}

static int
tls_keypair_set_ocsp_staple_mem(struct tls_keypair *keypair,
    const uint8_t *staple, size_t len)
{
	return set_mem(&keypair->ocsp_staple, &keypair->ocsp_staple_len, staple,
	    len);
}

static void
tls_keypair_clear(struct tls_keypair *keypair)
{
	tls_keypair_set_cert_mem(keypair, NULL, 0);
	tls_keypair_set_key_mem(keypair, NULL, 0);
}

static void
tls_keypair_free(struct tls_keypair *keypair)
{
	if (keypair == NULL)
		return;

	tls_keypair_clear(keypair);

	free(keypair->cert_mem);
	free(keypair->key_mem);
	free(keypair->ocsp_staple);
	free(keypair->pubkey_hash);

	free(keypair);
}

int
tls_config_load_file(struct tls_error *error, const char *filetype,
    const char *filename, char **buf, size_t *len)
{
	struct stat st;
	int fd = -1;
	ssize_t n;

	free(*buf);
	*buf = NULL;
	*len = 0;

	if ((fd = open(filename, O_RDONLY)) == -1) {
		tls_error_set(error, "failed to open %s file '%s'",
		    filetype, filename);
		goto fail;
	}
	if (fstat(fd, &st) != 0) {
		tls_error_set(error, "failed to stat %s file '%s'",
		    filetype, filename);
		goto fail;
	}
	if (st.st_size < 0)
		goto fail;
	*len = (size_t)st.st_size;
	if ((*buf = malloc(*len)) == NULL) {
		tls_error_set(error, "failed to allocate buffer for "
		    "%s file", filetype);
		goto fail;
	}
	n = read(fd, *buf, *len);
	if (n < 0 || (size_t)n != *len) {
		tls_error_set(error, "failed to read %s file '%s'",
		    filetype, filename);
		goto fail;
	}
	close(fd);
	return 0;

 fail:

	if (fd != -1)
		close(fd);
	freezero(*buf, *len);
	*buf = NULL;
	*len = 0;

	return -1;
}

struct tls_config *
tls_config_new(void)
{
	struct tls_config *config;
	unsigned char sid[TLS_MAX_SESSION_ID_LENGTH];

	if ((config = calloc(1, sizeof(*config))) == NULL)
		return (NULL);

	if ((config->keypair = tls_keypair_new()) == NULL)
		goto err;

	config->refcount = 1;


	/*
	 * Default configuration.
	 */
	if (tls_config_set_dheparams(config, "none") != 0)
		goto err;
	if (tls_config_set_ecdhecurves(config, "default") != 0)
|















>
>
>
>










<

<
<
<
<
<
<
<
<
<
<
|
<
<
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<















|




|


|




|





|




<
>










|











>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

31










32


33










































































































34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72

73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
/* $OpenBSD: tls_config.c,v 1.51 2018/03/20 15:40:10 jsing Exp $ */
/*
 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

#ifdef _MSC_VER
#define NO_REDEF_POSIX_FUNCTIONS
#endif

#include <sys/stat.h>

#include <ctype.h>
#include <errno.h>
#include <fcntl.h>
#include <stdlib.h>
#include <unistd.h>

#include <tls.h>












#include "tls_internal.h"













































































































int
tls_config_load_file(struct tls_error *error, const char *filetype,
    const char *filename, char **buf, size_t *len)
{
	struct stat st;
	int fd = -1;
	ssize_t n;

	free(*buf);
	*buf = NULL;
	*len = 0;

	if ((fd = open(filename, O_RDONLY)) == -1) {
		tls_error_set(error, "failed to open %s file '%s'",
		    filetype, filename);
		goto err;
	}
	if (fstat(fd, &st) != 0) {
		tls_error_set(error, "failed to stat %s file '%s'",
		    filetype, filename);
		goto err;
	}
	if (st.st_size < 0)
		goto err;
	*len = (size_t)st.st_size;
	if ((*buf = malloc(*len)) == NULL) {
		tls_error_set(error, "failed to allocate buffer for "
		    "%s file", filetype);
		goto err;
	}
	n = read(fd, *buf, *len);
	if (n < 0 || (size_t)n != *len) {
		tls_error_set(error, "failed to read %s file '%s'",
		    filetype, filename);
		goto err;
	}
	close(fd);
	return 0;


 err:
	if (fd != -1)
		close(fd);
	freezero(*buf, *len);
	*buf = NULL;
	*len = 0;

	return -1;
}

struct tls_config *
tls_config_new_internal(void)
{
	struct tls_config *config;
	unsigned char sid[TLS_MAX_SESSION_ID_LENGTH];

	if ((config = calloc(1, sizeof(*config))) == NULL)
		return (NULL);

	if ((config->keypair = tls_keypair_new()) == NULL)
		goto err;

	config->refcount = 1;
	config->session_fd = -1;

	/*
	 * Default configuration.
	 */
	if (tls_config_set_dheparams(config, "none") != 0)
		goto err;
	if (tls_config_set_ecdhecurves(config, "default") != 0)
241
242
243
244
245
246
247









248
249
250
251
252
253
254

	return (config);

 err:
	tls_config_free(config);
	return (NULL);
}










void
tls_config_free(struct tls_config *config)
{
	struct tls_keypair *kp, *nkp;

	if (config == NULL)







>
>
>
>
>
>
>
>
>







127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149

	return (config);

 err:
	tls_config_free(config);
	return (NULL);
}

struct tls_config *
tls_config_new(void)
{
	if (tls_init() == -1)
		return (NULL);

	return tls_config_new_internal();
}

void
tls_config_free(struct tls_config *config)
{
	struct tls_keypair *kp, *nkp;

	if (config == NULL)
465
466
467
468
469
470
471
472
473
474
475
476
477

478
479
480
481
482
483
484
    size_t cert_len, const uint8_t *key, size_t key_len,
    const uint8_t *staple, size_t staple_len)
{
	struct tls_keypair *keypair;

	if ((keypair = tls_keypair_new()) == NULL)
		return (-1);
	if (tls_keypair_set_cert_mem(keypair, cert, cert_len) != 0)
		goto err;
	if (tls_keypair_set_key_mem(keypair, key, key_len) != 0)
		goto err;
	if (staple != NULL &&
	    tls_keypair_set_ocsp_staple_mem(keypair, staple, staple_len) != 0)

		goto err;

	tls_config_keypair_add(config, keypair);

	return (0);

 err:







|

|


|
>







360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
    size_t cert_len, const uint8_t *key, size_t key_len,
    const uint8_t *staple, size_t staple_len)
{
	struct tls_keypair *keypair;

	if ((keypair = tls_keypair_new()) == NULL)
		return (-1);
	if (tls_keypair_set_cert_mem(keypair, &config->error, cert, cert_len) != 0)
		goto err;
	if (tls_keypair_set_key_mem(keypair, &config->error, key, key_len) != 0)
		goto err;
	if (staple != NULL &&
	    tls_keypair_set_ocsp_staple_mem(keypair, &config->error, staple,
		staple_len) != 0)
		goto err;

	tls_config_keypair_add(config, keypair);

	return (0);

 err:
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552

553
554
555
556
557
558
559
	return tls_config_load_file(&config->error, "CA", ca_file,
	    &config->ca_mem, &config->ca_len);
}

int
tls_config_set_ca_path(struct tls_config *config, const char *ca_path)
{
	return set_string(&config->ca_path, ca_path);
}

int
tls_config_set_ca_mem(struct tls_config *config, const uint8_t *ca, size_t len)
{
	return set_mem(&config->ca_mem, &config->ca_len, ca, len);
}

int
tls_config_set_cert_file(struct tls_config *config, const char *cert_file)
{
	return tls_keypair_set_cert_file(config->keypair, &config->error,
	    cert_file);
}

int
tls_config_set_cert_mem(struct tls_config *config, const uint8_t *cert,
    size_t len)
{
	return tls_keypair_set_cert_mem(config->keypair, cert, len);

}

int
tls_config_set_ciphers(struct tls_config *config, const char *ciphers)
{
	SSL_CTX *ssl_ctx = NULL;








|





|













|
>







421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
	return tls_config_load_file(&config->error, "CA", ca_file,
	    &config->ca_mem, &config->ca_len);
}

int
tls_config_set_ca_path(struct tls_config *config, const char *ca_path)
{
	return tls_set_string(&config->ca_path, ca_path);
}

int
tls_config_set_ca_mem(struct tls_config *config, const uint8_t *ca, size_t len)
{
	return tls_set_mem(&config->ca_mem, &config->ca_len, ca, len);
}

int
tls_config_set_cert_file(struct tls_config *config, const char *cert_file)
{
	return tls_keypair_set_cert_file(config->keypair, &config->error,
	    cert_file);
}

int
tls_config_set_cert_mem(struct tls_config *config, const uint8_t *cert,
    size_t len)
{
	return tls_keypair_set_cert_mem(config->keypair, &config->error,
	    cert, len);
}

int
tls_config_set_ciphers(struct tls_config *config, const char *ciphers)
{
	SSL_CTX *ssl_ctx = NULL;

567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584

585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
		ciphers = TLS_CIPHERS_LEGACY;
	else if (strcasecmp(ciphers, "all") == 0 ||
	    strcasecmp(ciphers, "insecure") == 0)
		ciphers = TLS_CIPHERS_ALL;

	if ((ssl_ctx = SSL_CTX_new(SSLv23_method())) == NULL) {
		tls_config_set_errorx(config, "out of memory");
		goto fail;
	}
	if (SSL_CTX_set_cipher_list(ssl_ctx, ciphers) != 1) {
		tls_config_set_errorx(config, "no ciphers for '%s'", ciphers);
		goto fail;
	}

	SSL_CTX_free(ssl_ctx);
	return set_string(&config->ciphers, ciphers);

 fail:

	SSL_CTX_free(ssl_ctx);
	return -1;
}

int
tls_config_set_crl_file(struct tls_config *config, const char *crl_file)
{
	return tls_config_load_file(&config->error, "CRL", crl_file,
	    &config->crl_mem, &config->crl_len);
}

int
tls_config_set_crl_mem(struct tls_config *config, const uint8_t *crl,
    size_t len)
{
	return set_mem(&config->crl_mem, &config->crl_len, crl, len);
}

int
tls_config_set_dheparams(struct tls_config *config, const char *params)
{
	int keylen;








|



|



|

<
>















|







464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480

481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
		ciphers = TLS_CIPHERS_LEGACY;
	else if (strcasecmp(ciphers, "all") == 0 ||
	    strcasecmp(ciphers, "insecure") == 0)
		ciphers = TLS_CIPHERS_ALL;

	if ((ssl_ctx = SSL_CTX_new(SSLv23_method())) == NULL) {
		tls_config_set_errorx(config, "out of memory");
		goto err;
	}
	if (SSL_CTX_set_cipher_list(ssl_ctx, ciphers) != 1) {
		tls_config_set_errorx(config, "no ciphers for '%s'", ciphers);
		goto err;
	}

	SSL_CTX_free(ssl_ctx);
	return tls_set_string(&config->ciphers, ciphers);


 err:
	SSL_CTX_free(ssl_ctx);
	return -1;
}

int
tls_config_set_crl_file(struct tls_config *config, const char *crl_file)
{
	return tls_config_load_file(&config->error, "CRL", crl_file,
	    &config->crl_mem, &config->crl_len);
}

int
tls_config_set_crl_mem(struct tls_config *config, const uint8_t *crl,
    size_t len)
{
	return tls_set_mem(&config->crl_mem, &config->crl_len, crl, len);
}

int
tls_config_set_dheparams(struct tls_config *config, const char *params)
{
	int keylen;

620
621
622
623
624
625
626




627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644

	return (0);
}

int
tls_config_set_ecdhecurve(struct tls_config *config, const char *curve)
{




	if (strchr(curve, ',') != NULL || strchr(curve, ':') != NULL) {
		tls_config_set_errorx(config, "invalid ecdhe curve '%s'",
		    curve);
		return (-1);
	}

	if (curve == NULL ||
	    strcasecmp(curve, "none") == 0 ||
	    strcasecmp(curve, "auto") == 0)
		curve = TLS_ECDHE_CURVES;
		
	return tls_config_set_ecdhecurves(config, curve);
}

int
tls_config_set_ecdhecurves(struct tls_config *config, const char *curves)
{
	int *curves_list = NULL, *curves_new;







>
>
>
>
|





<
<
<
<
<







517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533





534
535
536
537
538
539
540

	return (0);
}

int
tls_config_set_ecdhecurve(struct tls_config *config, const char *curve)
{
	if (curve == NULL ||
	    strcasecmp(curve, "none") == 0 ||
	    strcasecmp(curve, "auto") == 0) {
		curve = TLS_ECDHE_CURVES;
	} else if (strchr(curve, ',') != NULL || strchr(curve, ':') != NULL) {
		tls_config_set_errorx(config, "invalid ecdhe curve '%s'",
		    curve);
		return (-1);
	}






	return tls_config_set_ecdhecurves(config, curve);
}

int
tls_config_set_ecdhecurves(struct tls_config *config, const char *curves)
{
	int *curves_list = NULL, *curves_new;
706
707
708
709
710
711
712
713

714
715
716
717
718
719
720
	    key_file);
}

int
tls_config_set_key_mem(struct tls_config *config, const uint8_t *key,
    size_t len)
{
	return tls_keypair_set_key_mem(config->keypair, key, len);

}

static int
tls_config_set_keypair_file_internal(struct tls_config *config,
    const char *cert_file, const char *key_file, const char *ocsp_file)
{
	if (tls_config_set_cert_file(config, cert_file) != 0)







|
>







602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
	    key_file);
}

int
tls_config_set_key_mem(struct tls_config *config, const uint8_t *key,
    size_t len)
{
	return tls_keypair_set_key_mem(config->keypair, &config->error,
	    key, len);
}

static int
tls_config_set_keypair_file_internal(struct tls_config *config,
    const char *cert_file, const char *key_file, const char *ocsp_file)
{
	if (tls_config_set_cert_file(config, cert_file) != 0)
781
782
783
784
785
786
787






































788
789
790
791
792
793
794


int
tls_config_set_protocols(struct tls_config *config, uint32_t protocols)
{
	config->protocols = protocols;







































	return (0);
}

int
tls_config_set_verify_depth(struct tls_config *config, int verify_depth)
{
	config->verify_depth = verify_depth;







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729


int
tls_config_set_protocols(struct tls_config *config, uint32_t protocols)
{
	config->protocols = protocols;

	return (0);
}

int
tls_config_set_session_fd(struct tls_config *config, int session_fd)
{
	struct stat sb;
	mode_t mugo;

	if (session_fd == -1) {
		config->session_fd = session_fd;
		return (0);
	}

	if (fstat(session_fd, &sb) == -1) {
		tls_config_set_error(config, "failed to stat session file");
		return (-1);
	}
	if (!S_ISREG(sb.st_mode)) {
		tls_config_set_errorx(config,
		    "session file is not a regular file");
		return (-1);
	}

	if (sb.st_uid != getuid()) {
		tls_config_set_errorx(config, "session file has incorrect "
		    "owner (uid %i != %i)", sb.st_uid, getuid());
		return (-1);
	}
	mugo = sb.st_mode & (S_IRWXU|S_IRWXG|S_IRWXO);
	if (mugo != (S_IRUSR|S_IWUSR)) {
		tls_config_set_errorx(config, "session file has incorrect "
		    "permissions (%o != 600)", mugo);
		return (-1);
	}

	config->session_fd = session_fd;

	return (0);
}

int
tls_config_set_verify_depth(struct tls_config *config, int verify_depth)
{
	config->verify_depth = verify_depth;
865
866
867
868
869
870
871
872

873
874
875
876
877
878
879
	    staple_file);
}

int
tls_config_set_ocsp_staple_mem(struct tls_config *config, const uint8_t *staple,
    size_t len)
{
	return tls_keypair_set_ocsp_staple_mem(config->keypair, staple, len);

}

int
tls_config_set_session_id(struct tls_config *config,
    const unsigned char *session_id, size_t len)
{
	if (len > TLS_MAX_SESSION_ID_LENGTH) {







|
>







800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
	    staple_file);
}

int
tls_config_set_ocsp_staple_mem(struct tls_config *config, const uint8_t *staple,
    size_t len)
{
	return tls_keypair_set_ocsp_staple_mem(config->keypair, &config->error,
	    staple, len);
}

int
tls_config_set_session_id(struct tls_config *config,
    const unsigned char *session_id, size_t len)
{
	if (len > TLS_MAX_SESSION_ID_LENGTH) {
Changes to jni/libressl/tls/tls_conninfo.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: tls_conninfo.c,v 1.16 2017/08/27 01:39:26 beck Exp $ */
/*
 * Copyright (c) 2015 Joel Sing <jsing@openbsd.org>
 * Copyright (c) 2015 Bob Beck <beck@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
|







1
2
3
4
5
6
7
8
/* $OpenBSD: tls_conninfo.c,v 1.20 2018/02/10 04:48:44 jsing Exp $ */
/*
 * Copyright (c) 2015 Joel Sing <jsing@openbsd.org>
 * Copyright (c) 2015 Bob Beck <beck@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
static int
tls_conninfo_cert_pem(struct tls *ctx)
{
	int i, rv = -1;
	BIO *membio = NULL;
	BUF_MEM *bptr = NULL;

	if (ctx->conninfo == NULL)
		goto err;
	if (ctx->ssl_peer_cert == NULL)
		return 0;
	if ((membio = BIO_new(BIO_s_mem()))== NULL)
		goto err;

	/*
	 * We have to write the peer cert out separately, because







<
<







181
182
183
184
185
186
187


188
189
190
191
192
193
194
static int
tls_conninfo_cert_pem(struct tls *ctx)
{
	int i, rv = -1;
	BIO *membio = NULL;
	BUF_MEM *bptr = NULL;



	if (ctx->ssl_peer_cert == NULL)
		return 0;
	if ((membio = BIO_new(BIO_s_mem()))== NULL)
		goto err;

	/*
	 * We have to write the peer cert out separately, because
216
217
218
219
220
221
222








223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261



262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303

	/* BIO_free() will kill BUF_MEM - because we have not set BIO_NOCLOSE */
	rv = 0;
 err:
	BIO_free(membio);
	return rv;
}









int
tls_conninfo_populate(struct tls *ctx)
{
	const char *tmp;

	tls_conninfo_free(ctx->conninfo);

	if ((ctx->conninfo = calloc(1, sizeof(struct tls_conninfo))) == NULL) {
		tls_set_errorx(ctx, "out of memory");
		goto err;
	}

	if (tls_conninfo_alpn_proto(ctx) == -1)
		goto err;

	if ((tmp = SSL_get_cipher(ctx->ssl_conn)) == NULL)
		goto err;
	ctx->conninfo->cipher = strdup(tmp);
	if (ctx->conninfo->cipher == NULL)
		goto err;

	if (ctx->servername != NULL) {
		if ((ctx->conninfo->servername =
		    strdup(ctx->servername)) == NULL)
			goto err;
	}

	if ((tmp = SSL_get_version(ctx->ssl_conn)) == NULL)
		goto err;
	ctx->conninfo->version = strdup(tmp);
	if (ctx->conninfo->version == NULL)
		goto err;

	if (tls_get_peer_cert_info(ctx) == -1)
		goto err;

	if (tls_conninfo_cert_pem(ctx) == -1)
		goto err;




	return (0);

 err:
	tls_conninfo_free(ctx->conninfo);
	ctx->conninfo = NULL;

	return (-1);
}

void
tls_conninfo_free(struct tls_conninfo *conninfo)
{
	if (conninfo == NULL)
		return;

	free(conninfo->alpn);
	conninfo->alpn = NULL;
	free(conninfo->cipher);
	conninfo->cipher = NULL;
	free(conninfo->servername);
	conninfo->servername = NULL;
	free(conninfo->version);
	conninfo->version = NULL;

	free(conninfo->hash);
	conninfo->hash = NULL;
	free(conninfo->issuer);
	conninfo->issuer = NULL;
	free(conninfo->subject);
	conninfo->subject = NULL;

	free(conninfo->peer_cert);
	conninfo->peer_cert = NULL;
	conninfo->peer_cert_len = 0;

	free(conninfo);
}

const char *
tls_conn_alpn_selected(struct tls *ctx)
{







>
>
>
>
>
>
>
>


















|
<










|
<







>
>
>

















<

<

<

<


<

<

<


<
<







214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247

248
249
250
251
252
253
254
255
256
257
258

259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285

286

287

288

289
290

291

292

293
294


295
296
297
298
299
300
301

	/* BIO_free() will kill BUF_MEM - because we have not set BIO_NOCLOSE */
	rv = 0;
 err:
	BIO_free(membio);
	return rv;
}

static int
tls_conninfo_session(struct tls *ctx)
{
	ctx->conninfo->session_resumed = SSL_session_reused(ctx->ssl_conn);

	return 0;
}

int
tls_conninfo_populate(struct tls *ctx)
{
	const char *tmp;

	tls_conninfo_free(ctx->conninfo);

	if ((ctx->conninfo = calloc(1, sizeof(struct tls_conninfo))) == NULL) {
		tls_set_errorx(ctx, "out of memory");
		goto err;
	}

	if (tls_conninfo_alpn_proto(ctx) == -1)
		goto err;

	if ((tmp = SSL_get_cipher(ctx->ssl_conn)) == NULL)
		goto err;
	if ((ctx->conninfo->cipher = strdup(tmp)) == NULL)

		goto err;

	if (ctx->servername != NULL) {
		if ((ctx->conninfo->servername =
		    strdup(ctx->servername)) == NULL)
			goto err;
	}

	if ((tmp = SSL_get_version(ctx->ssl_conn)) == NULL)
		goto err;
	if ((ctx->conninfo->version = strdup(tmp)) == NULL)

		goto err;

	if (tls_get_peer_cert_info(ctx) == -1)
		goto err;

	if (tls_conninfo_cert_pem(ctx) == -1)
		goto err;

	if (tls_conninfo_session(ctx) == -1)
		goto err;

	return (0);

 err:
	tls_conninfo_free(ctx->conninfo);
	ctx->conninfo = NULL;

	return (-1);
}

void
tls_conninfo_free(struct tls_conninfo *conninfo)
{
	if (conninfo == NULL)
		return;

	free(conninfo->alpn);

	free(conninfo->cipher);

	free(conninfo->servername);

	free(conninfo->version);


	free(conninfo->hash);

	free(conninfo->issuer);

	free(conninfo->subject);


	free(conninfo->peer_cert);



	free(conninfo);
}

const char *
tls_conn_alpn_selected(struct tls *ctx)
{
317
318
319
320
321
322
323








324
325
326
327
328
329
330
331
332
const char *
tls_conn_servername(struct tls *ctx)
{
	if (ctx->conninfo == NULL)
		return (NULL);
	return (ctx->conninfo->servername);
}









const char *
tls_conn_version(struct tls *ctx)
{
	if (ctx->conninfo == NULL)
		return (NULL);
	return (ctx->conninfo->version);
}








>
>
>
>
>
>
>
>








<
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337

const char *
tls_conn_servername(struct tls *ctx)
{
	if (ctx->conninfo == NULL)
		return (NULL);
	return (ctx->conninfo->servername);
}

int
tls_conn_session_resumed(struct tls *ctx)
{
	if (ctx->conninfo == NULL)
		return (0);
	return (ctx->conninfo->session_resumed);
}

const char *
tls_conn_version(struct tls *ctx)
{
	if (ctx->conninfo == NULL)
		return (NULL);
	return (ctx->conninfo->version);
}

Changes to jni/libressl/tls/tls_internal.h.
1
2
3
4
5
6
7
8
/* $OpenBSD: tls_internal.h,v 1.65 2017/09/20 17:05:17 jsing Exp $ */
/*
 * Copyright (c) 2014 Jeremie Courreges-Anglas <jca@openbsd.org>
 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
|







1
2
3
4
5
6
7
8
/* $OpenBSD: tls_internal.h,v 1.71 2018/03/19 16:34:47 jsing Exp $ */
/*
 * Copyright (c) 2014 Jeremie Courreges-Anglas <jca@openbsd.org>
 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
93
94
95
96
97
98
99

100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115

116
117
118
119
120
121
122
	int dheparams;
	int *ecdhecurves;
	size_t ecdhecurves_len;
	struct tls_keypair *keypair;
	int ocsp_require_stapling;
	uint32_t protocols;
	unsigned char session_id[TLS_MAX_SESSION_ID_LENGTH];

	int session_lifetime;
	struct tls_ticket_key ticket_keys[TLS_NUM_TICKETS];
	uint32_t ticket_keyrev;
	int ticket_autorekey;
	int verify_cert;
	int verify_client;
	int verify_depth;
	int verify_name;
	int verify_time;
	int skip_private_key_check;
};

struct tls_conninfo {
	char *alpn;
	char *cipher;
	char *servername;

	char *version;

	char *hash;
	char *issuer;
	char *subject;

	uint8_t *peer_cert;







>
















>







93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
	int dheparams;
	int *ecdhecurves;
	size_t ecdhecurves_len;
	struct tls_keypair *keypair;
	int ocsp_require_stapling;
	uint32_t protocols;
	unsigned char session_id[TLS_MAX_SESSION_ID_LENGTH];
	int session_fd;
	int session_lifetime;
	struct tls_ticket_key ticket_keys[TLS_NUM_TICKETS];
	uint32_t ticket_keyrev;
	int ticket_autorekey;
	int verify_cert;
	int verify_client;
	int verify_depth;
	int verify_name;
	int verify_time;
	int skip_private_key_check;
};

struct tls_conninfo {
	char *alpn;
	char *cipher;
	char *servername;
	int session_resumed;
	char *version;

	char *hash;
	char *issuer;
	char *subject;

	uint8_t *peer_cert;
190
191
192
193
194
195
196






















197
198


199
200
201
202
203
204
205
	struct tls_ocsp *ocsp;

	tls_read_cb read_cb;
	tls_write_cb write_cb;
	void *cb_arg;
};























struct tls_sni_ctx *tls_sni_ctx_new(void);
void tls_sni_ctx_free(struct tls_sni_ctx *sni_ctx);



struct tls *tls_new(void);
struct tls *tls_server_conn(struct tls *ctx);

int tls_check_name(struct tls *ctx, X509 *cert, const char *servername,
    int *match);
int tls_configure_server(struct tls *ctx);







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>


>
>







192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
	struct tls_ocsp *ocsp;

	tls_read_cb read_cb;
	tls_write_cb write_cb;
	void *cb_arg;
};

int tls_set_mem(char **_dest, size_t *_destlen, const void *_src,
    size_t _srclen);
int tls_set_string(const char **_dest, const char *_src);

struct tls_keypair *tls_keypair_new(void);
void tls_keypair_clear(struct tls_keypair *_keypair);
void tls_keypair_free(struct tls_keypair *_keypair);
int tls_keypair_set_cert_file(struct tls_keypair *_keypair,
    struct tls_error *_error, const char *_cert_file);
int tls_keypair_set_cert_mem(struct tls_keypair *_keypair,
    struct tls_error *_error, const uint8_t *_cert, size_t _len);
int tls_keypair_set_key_file(struct tls_keypair *_keypair,
    struct tls_error *_error, const char *_key_file);
int tls_keypair_set_key_mem(struct tls_keypair *_keypair,
    struct tls_error *_error, const uint8_t *_key, size_t _len);
int tls_keypair_set_ocsp_staple_file(struct tls_keypair *_keypair,
    struct tls_error *_error, const char *_ocsp_file);
int tls_keypair_set_ocsp_staple_mem(struct tls_keypair *_keypair,
    struct tls_error *_error, const uint8_t *_staple, size_t _len);
int tls_keypair_load_cert(struct tls_keypair *_keypair,
    struct tls_error *_error, X509 **_cert);

struct tls_sni_ctx *tls_sni_ctx_new(void);
void tls_sni_ctx_free(struct tls_sni_ctx *sni_ctx);

struct tls_config *tls_config_new_internal(void);

struct tls *tls_new(void);
struct tls *tls_server_conn(struct tls *ctx);

int tls_check_name(struct tls *ctx, X509 *cert, const char *servername,
    int *match);
int tls_configure_server(struct tls *ctx);
252
253
254
255
256
257
258

259
260
261
262
263
264
265
266
267
int tls_ocsp_verify_cb(SSL *ssl, void *arg);
int tls_ocsp_stapling_cb(SSL *ssl, void *arg);
void tls_ocsp_free(struct tls_ocsp *ctx);
struct tls_ocsp *tls_ocsp_setup_from_peer(struct tls *ctx);
int tls_hex_string(const unsigned char *_in, size_t _inlen, char **_out,
    size_t *_outlen);
int tls_cert_hash(X509 *_cert, char **_hash);


int tls_password_cb(char *_buf, int _size, int _rwflag, void *_u);

__END_HIDDEN_DECLS

/* XXX this function is not fully hidden so relayd can use it */
void tls_config_skip_private_key_check(struct tls_config *config);

#endif /* HEADER_TLS_INTERNAL_H */







>









278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
int tls_ocsp_verify_cb(SSL *ssl, void *arg);
int tls_ocsp_stapling_cb(SSL *ssl, void *arg);
void tls_ocsp_free(struct tls_ocsp *ctx);
struct tls_ocsp *tls_ocsp_setup_from_peer(struct tls *ctx);
int tls_hex_string(const unsigned char *_in, size_t _inlen, char **_out,
    size_t *_outlen);
int tls_cert_hash(X509 *_cert, char **_hash);
int tls_cert_pubkey_hash(X509 *_cert, char **_hash);

int tls_password_cb(char *_buf, int _size, int _rwflag, void *_u);

__END_HIDDEN_DECLS

/* XXX this function is not fully hidden so relayd can use it */
void tls_config_skip_private_key_check(struct tls_config *config);

#endif /* HEADER_TLS_INTERNAL_H */
Added jni/libressl/tls/tls_keypair.c.




































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
/* $OpenBSD: tls_keypair.c,v 1.5 2018/02/10 04:57:35 jsing Exp $ */
/*
 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

#include <openssl/bio.h>
#include <openssl/err.h>
#include <openssl/pem.h>

#include <tls.h>

#include "tls_internal.h"

struct tls_keypair *
tls_keypair_new(void)
{
	return calloc(1, sizeof(struct tls_keypair));
}

static void
tls_keypair_clear_key(struct tls_keypair *keypair)
{
	freezero(keypair->key_mem, keypair->key_len);
	keypair->key_mem = NULL;
	keypair->key_len = 0;
}

static int
tls_keypair_pubkey_hash(struct tls_keypair *keypair, struct tls_error *error)
{
	X509 *cert = NULL;
	int rv = -1;

	free(keypair->pubkey_hash);
	keypair->pubkey_hash = NULL;

	if (keypair->cert_mem == NULL) {
		rv = 0;
		goto done;
	}

	if (tls_keypair_load_cert(keypair, error, &cert) == -1)
		goto err;
	if (tls_cert_pubkey_hash(cert, &keypair->pubkey_hash) == -1)
		goto err;

	rv = 0;

 err:
	X509_free(cert);
 done:
	return (rv);
}

int
tls_keypair_set_cert_file(struct tls_keypair *keypair, struct tls_error *error,
    const char *cert_file)
{
	if (tls_config_load_file(error, "certificate", cert_file,
	    &keypair->cert_mem, &keypair->cert_len) == -1)
		return -1;
	return tls_keypair_pubkey_hash(keypair, error);
}

int
tls_keypair_set_cert_mem(struct tls_keypair *keypair, struct tls_error *error,
    const uint8_t *cert, size_t len)
{
	if (tls_set_mem(&keypair->cert_mem, &keypair->cert_len, cert, len) == -1)
		return -1;
	return tls_keypair_pubkey_hash(keypair, error);
}

int
tls_keypair_set_key_file(struct tls_keypair *keypair, struct tls_error *error,
    const char *key_file)
{
	tls_keypair_clear_key(keypair);
	return tls_config_load_file(error, "key", key_file,
	    &keypair->key_mem, &keypair->key_len);
}

int
tls_keypair_set_key_mem(struct tls_keypair *keypair, struct tls_error *error,
    const uint8_t *key, size_t len)
{
	tls_keypair_clear_key(keypair);
	return tls_set_mem(&keypair->key_mem, &keypair->key_len, key, len);
}

int
tls_keypair_set_ocsp_staple_file(struct tls_keypair *keypair,
    struct tls_error *error, const char *ocsp_file)
{
	return tls_config_load_file(error, "ocsp", ocsp_file,
	    &keypair->ocsp_staple, &keypair->ocsp_staple_len);
}

int
tls_keypair_set_ocsp_staple_mem(struct tls_keypair *keypair,
    struct tls_error *error, const uint8_t *staple, size_t len)
{
	return tls_set_mem(&keypair->ocsp_staple, &keypair->ocsp_staple_len,
	    staple, len);
}

void
tls_keypair_clear(struct tls_keypair *keypair)
{
	struct tls_error error;

	tls_keypair_set_cert_mem(keypair, &error, NULL, 0);
	tls_keypair_set_key_mem(keypair, &error, NULL, 0);
	tls_keypair_set_ocsp_staple_mem(keypair, &error, NULL, 0);

	free(keypair->pubkey_hash);
	keypair->pubkey_hash = NULL;
}

void
tls_keypair_free(struct tls_keypair *keypair)
{
	if (keypair == NULL)
		return;

	tls_keypair_clear(keypair);

	free(keypair);
}

int
tls_keypair_load_cert(struct tls_keypair *keypair, struct tls_error *error,
    X509 **cert)
{
	char *errstr = "unknown";
	BIO *cert_bio = NULL;
	int ssl_err;
	int rv = -1;

	X509_free(*cert);
	*cert = NULL;

	if (keypair->cert_mem == NULL) {
		tls_error_set(error, "keypair has no certificate");
		goto err;
	}
	if ((cert_bio = BIO_new_mem_buf(keypair->cert_mem,
	    keypair->cert_len)) == NULL) {
		tls_error_set(error, "failed to create certificate bio");
		goto err;
	}
	if ((*cert = PEM_read_bio_X509(cert_bio, NULL, tls_password_cb,
	    NULL)) == NULL) {
		if ((ssl_err = ERR_peek_error()) != 0)
		    errstr = ERR_error_string(ssl_err, NULL);
		tls_error_set(error, "failed to load certificate: %s", errstr);
		goto err;
	}

	rv = 0;

 err:
	BIO_free(cert_bio);

	return (rv);
}
Changes to jni/libressl/tls/tls_ocsp.c.
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
void
tls_ocsp_free(struct tls_ocsp *ocsp)
{
	if (ocsp == NULL)
		return;

	X509_free(ocsp->main_cert);
	ocsp->main_cert = NULL;
	free(ocsp->ocsp_result);
	ocsp->ocsp_result = NULL;
	free(ocsp->ocsp_url);
	ocsp->ocsp_url = NULL;
	free(ocsp);
}

static int
tls_ocsp_asn1_parse_time(struct tls *ctx, ASN1_GENERALIZEDTIME *gt, time_t *gt_time)
{
	struct tm tm;







<

<

|







43
44
45
46
47
48
49

50

51
52
53
54
55
56
57
58
59
void
tls_ocsp_free(struct tls_ocsp *ocsp)
{
	if (ocsp == NULL)
		return;

	X509_free(ocsp->main_cert);

	free(ocsp->ocsp_result);

	free(ocsp->ocsp_url);

	free(ocsp);
}

static int
tls_ocsp_asn1_parse_time(struct tls *ctx, ASN1_GENERALIZEDTIME *gt, time_t *gt_time)
{
	struct tm tm;
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119

120
121
122
123
124
125
126
127
		info->result_msg = OCSP_crl_reason_str(info->crl_reason);
	}
	info->revocation_time = info->this_update = info->next_update = -1;
	if (revtime != NULL &&
	    tls_ocsp_asn1_parse_time(ctx, revtime, &info->revocation_time) != 0) {
		tls_set_error(ctx,
		    "unable to parse revocation time in OCSP reply");
		goto error;
	}
	if (thisupd != NULL &&
	    tls_ocsp_asn1_parse_time(ctx, thisupd, &info->this_update) != 0) {
		tls_set_error(ctx,
		    "unable to parse this update time in OCSP reply");
		goto error;
	}
	if (nextupd != NULL &&
	    tls_ocsp_asn1_parse_time(ctx, nextupd, &info->next_update) != 0) {
		tls_set_error(ctx,
		    "unable to parse next update time in OCSP reply");
		goto error;
	}
	ctx->ocsp->ocsp_result = info;
	return 0;

 error:
	free(info);
	return -1;
}

static OCSP_CERTID *
tls_ocsp_get_certid(X509 *main_cert, STACK_OF(X509) *extra_certs,
    SSL_CTX *ssl_ctx)







|





|





|



>
|







95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
		info->result_msg = OCSP_crl_reason_str(info->crl_reason);
	}
	info->revocation_time = info->this_update = info->next_update = -1;
	if (revtime != NULL &&
	    tls_ocsp_asn1_parse_time(ctx, revtime, &info->revocation_time) != 0) {
		tls_set_error(ctx,
		    "unable to parse revocation time in OCSP reply");
		goto err;
	}
	if (thisupd != NULL &&
	    tls_ocsp_asn1_parse_time(ctx, thisupd, &info->this_update) != 0) {
		tls_set_error(ctx,
		    "unable to parse this update time in OCSP reply");
		goto err;
	}
	if (nextupd != NULL &&
	    tls_ocsp_asn1_parse_time(ctx, nextupd, &info->next_update) != 0) {
		tls_set_error(ctx,
		    "unable to parse next update time in OCSP reply");
		goto err;
	}
	ctx->ocsp->ocsp_result = info;
	return 0;

 err:
	free(info);
	return -1;
}

static OCSP_CERTID *
tls_ocsp_get_certid(X509 *main_cert, STACK_OF(X509) *extra_certs,
    SSL_CTX *ssl_ctx)
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
struct tls_ocsp *
tls_ocsp_setup_from_peer(struct tls *ctx)
{
	struct tls_ocsp *ocsp = NULL;
	STACK_OF(OPENSSL_STRING) *ocsp_urls = NULL;

	if ((ocsp = tls_ocsp_new()) == NULL)
		goto failed;

	/* steal state from ctx struct */
	ocsp->main_cert = SSL_get_peer_certificate(ctx->ssl_conn);
	ocsp->extra_certs = SSL_get_peer_cert_chain(ctx->ssl_conn);
	if (ocsp->main_cert == NULL) {
		tls_set_errorx(ctx, "no peer certificate for OCSP");
		goto failed;
	}

	ocsp_urls = X509_get1_ocsp(ocsp->main_cert);
	if (ocsp_urls == NULL) {
		tls_set_errorx(ctx, "no OCSP URLs in peer certificate");
		goto failed;
	}

	ocsp->ocsp_url = strdup(sk_OPENSSL_STRING_value(ocsp_urls, 0));
	if (ocsp->ocsp_url == NULL) {
		tls_set_errorx(ctx, "out of memory");
		goto failed;
	}

	X509_email_free(ocsp_urls);
	return ocsp;

 failed:
	tls_ocsp_free(ocsp);
	X509_email_free(ocsp_urls);
	return NULL;
}

static int
tls_ocsp_verify_response(struct tls *ctx, OCSP_RESPONSE *resp)
{
	OCSP_BASICRESP *br = NULL;
	ASN1_GENERALIZEDTIME *revtime = NULL, *thisupd = NULL, *nextupd = NULL;
	OCSP_CERTID *cid = NULL;
	STACK_OF(X509) *combined = NULL;
	int response_status=0, cert_status=0, crl_reason=0;
	int ret = -1;
	unsigned long flags;

	if ((br = OCSP_response_get1_basic(resp)) == NULL) {
		tls_set_errorx(ctx, "cannot load ocsp reply");
		goto error;
	}

	/*
	 * Skip validation of 'extra_certs' as this should be done
	 * already as part of main handshake.
	 */
	flags = OCSP_TRUSTOTHER;

	/* now verify */
	if (OCSP_basic_verify(br, ctx->ocsp->extra_certs,
		SSL_CTX_get_cert_store(ctx->ssl_ctx), flags) != 1) {
		tls_set_error(ctx, "ocsp verify failed");
		goto error;
	}

	/* signature OK, look inside */
	response_status = OCSP_response_status(resp);
	if (response_status != OCSP_RESPONSE_STATUS_SUCCESSFUL) {
		tls_set_errorx(ctx, "ocsp verify failed: response - %s",
		    OCSP_response_status_str(response_status));
		goto error;
	}

	cid = tls_ocsp_get_certid(ctx->ocsp->main_cert,
	    ctx->ocsp->extra_certs, ctx->ssl_ctx);
	if (cid == NULL) {
		tls_set_errorx(ctx, "ocsp verify failed: no issuer cert");
		goto error;
	}

	if (OCSP_resp_find_status(br, cid, &cert_status, &crl_reason,
	    &revtime, &thisupd, &nextupd) != 1) {
		tls_set_errorx(ctx, "ocsp verify failed: no result for cert");
		goto error;
	}

	if (OCSP_check_validity(thisupd, nextupd, JITTER_SEC,
	    MAXAGE_SEC) != 1) {
		tls_set_errorx(ctx,
		    "ocsp verify failed: ocsp response not current");
		goto error;
	}

	if (tls_ocsp_fill_info(ctx, response_status, cert_status,
	    crl_reason, revtime, thisupd, nextupd) != 0)
		goto error;

	/* finally can look at status */
	if (cert_status != V_OCSP_CERTSTATUS_GOOD && cert_status !=
	    V_OCSP_CERTSTATUS_UNKNOWN) {
		tls_set_errorx(ctx, "ocsp verify failed: revoked cert - %s",
			       OCSP_crl_reason_str(crl_reason));
		goto error;
	}
	ret = 0;

 error:
	sk_X509_free(combined);
	OCSP_CERTID_free(cid);
	OCSP_BASICRESP_free(br);
	return ret;
}

/*







|






|





|





|





|


















|












|







|






|





|






|




|






|



|







157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
struct tls_ocsp *
tls_ocsp_setup_from_peer(struct tls *ctx)
{
	struct tls_ocsp *ocsp = NULL;
	STACK_OF(OPENSSL_STRING) *ocsp_urls = NULL;

	if ((ocsp = tls_ocsp_new()) == NULL)
		goto err;

	/* steal state from ctx struct */
	ocsp->main_cert = SSL_get_peer_certificate(ctx->ssl_conn);
	ocsp->extra_certs = SSL_get_peer_cert_chain(ctx->ssl_conn);
	if (ocsp->main_cert == NULL) {
		tls_set_errorx(ctx, "no peer certificate for OCSP");
		goto err;
	}

	ocsp_urls = X509_get1_ocsp(ocsp->main_cert);
	if (ocsp_urls == NULL) {
		tls_set_errorx(ctx, "no OCSP URLs in peer certificate");
		goto err;
	}

	ocsp->ocsp_url = strdup(sk_OPENSSL_STRING_value(ocsp_urls, 0));
	if (ocsp->ocsp_url == NULL) {
		tls_set_errorx(ctx, "out of memory");
		goto err;
	}

	X509_email_free(ocsp_urls);
	return ocsp;

 err:
	tls_ocsp_free(ocsp);
	X509_email_free(ocsp_urls);
	return NULL;
}

static int
tls_ocsp_verify_response(struct tls *ctx, OCSP_RESPONSE *resp)
{
	OCSP_BASICRESP *br = NULL;
	ASN1_GENERALIZEDTIME *revtime = NULL, *thisupd = NULL, *nextupd = NULL;
	OCSP_CERTID *cid = NULL;
	STACK_OF(X509) *combined = NULL;
	int response_status=0, cert_status=0, crl_reason=0;
	int ret = -1;
	unsigned long flags;

	if ((br = OCSP_response_get1_basic(resp)) == NULL) {
		tls_set_errorx(ctx, "cannot load ocsp reply");
		goto err;
	}

	/*
	 * Skip validation of 'extra_certs' as this should be done
	 * already as part of main handshake.
	 */
	flags = OCSP_TRUSTOTHER;

	/* now verify */
	if (OCSP_basic_verify(br, ctx->ocsp->extra_certs,
		SSL_CTX_get_cert_store(ctx->ssl_ctx), flags) != 1) {
		tls_set_error(ctx, "ocsp verify failed");
		goto err;
	}

	/* signature OK, look inside */
	response_status = OCSP_response_status(resp);
	if (response_status != OCSP_RESPONSE_STATUS_SUCCESSFUL) {
		tls_set_errorx(ctx, "ocsp verify failed: response - %s",
		    OCSP_response_status_str(response_status));
		goto err;
	}

	cid = tls_ocsp_get_certid(ctx->ocsp->main_cert,
	    ctx->ocsp->extra_certs, ctx->ssl_ctx);
	if (cid == NULL) {
		tls_set_errorx(ctx, "ocsp verify failed: no issuer cert");
		goto err;
	}

	if (OCSP_resp_find_status(br, cid, &cert_status, &crl_reason,
	    &revtime, &thisupd, &nextupd) != 1) {
		tls_set_errorx(ctx, "ocsp verify failed: no result for cert");
		goto err;
	}

	if (OCSP_check_validity(thisupd, nextupd, JITTER_SEC,
	    MAXAGE_SEC) != 1) {
		tls_set_errorx(ctx,
		    "ocsp verify failed: ocsp response not current");
		goto err;
	}

	if (tls_ocsp_fill_info(ctx, response_status, cert_status,
	    crl_reason, revtime, thisupd, nextupd) != 0)
		goto err;

	/* finally can look at status */
	if (cert_status != V_OCSP_CERTSTATUS_GOOD && cert_status !=
	    V_OCSP_CERTSTATUS_UNKNOWN) {
		tls_set_errorx(ctx, "ocsp verify failed: revoked cert - %s",
			       OCSP_crl_reason_str(crl_reason));
		goto err;
	}
	ret = 0;

 err:
	sk_X509_free(combined);
	OCSP_CERTID_free(cid);
	OCSP_BASICRESP_free(br);
	return ret;
}

/*
Changes to jni/libressl/tls/tls_server.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: tls_server.c,v 1.42 2017/09/20 17:05:17 jsing Exp $ */
/*
 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: tls_server.c,v 1.44 2018/03/19 16:34:47 jsing Exp $ */
/*
 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
26
27
28
29
30
31
32



33
34
35
36
37
38
39
#include <tls.h>
#include "tls_internal.h"

struct tls *
tls_server(void)
{
	struct tls *ctx;




	if ((ctx = tls_new()) == NULL)
		return (NULL);

	ctx->flags |= TLS_SERVER;

	return (ctx);







>
>
>







26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <tls.h>
#include "tls_internal.h"

struct tls *
tls_server(void)
{
	struct tls *ctx;

	if (tls_init() == -1)
		return (NULL);

	if ((ctx = tls_new()) == NULL)
		return (NULL);

	ctx->flags |= TLS_SERVER;

	return (ctx);
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
		/* time to renew the ticket? is it the primary key? */
		if (key != &tls_ctx->config->ticket_keys[0])
			return (2);
		return (1);
	}
}

static int
tls_keypair_load_cert(struct tls_keypair *keypair, struct tls_error *error,
    X509 **cert)
{
	char *errstr = "unknown";
	BIO *cert_bio = NULL;
	int ssl_err;
	int rv = -1;

	X509_free(*cert);
	*cert = NULL;

	if (keypair->cert_mem == NULL) {
		tls_error_set(error, "keypair has no certificate");
		goto err;
	}
	if ((cert_bio = BIO_new_mem_buf(keypair->cert_mem,
	    keypair->cert_len)) == NULL) {
		tls_error_set(error, "failed to create certificate bio");
		goto err;
	}
	if ((*cert = PEM_read_bio_X509(cert_bio, NULL, tls_password_cb,
	    NULL)) == NULL) {
		if ((ssl_err = ERR_peek_error()) != 0)
		    errstr = ERR_error_string(ssl_err, NULL);
		tls_error_set(error, "failed to load certificate: %s", errstr);
		goto err;
	}

	rv = 0;

 err:
	BIO_free(cert_bio);

	return (rv);
}

static int
tls_configure_server_ssl(struct tls *ctx, SSL_CTX **ssl_ctx,
    struct tls_keypair *keypair)
{
	SSL_CTX_free(*ssl_ctx);

	if ((*ssl_ctx = SSL_CTX_new(SSLv23_server_method())) == NULL) {







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







202
203
204
205
206
207
208





































209
210
211
212
213
214
215
		/* time to renew the ticket? is it the primary key? */
		if (key != &tls_ctx->config->ticket_keys[0])
			return (2);
		return (1);
	}
}






































static int
tls_configure_server_ssl(struct tls *ctx, SSL_CTX **ssl_ctx,
    struct tls_keypair *keypair)
{
	SSL_CTX_free(*ssl_ctx);

	if ((*ssl_ctx = SSL_CTX_new(SSLv23_server_method())) == NULL) {
Changes to jni/libressl/tls/tls_util.c.
1
2
3

4
5
6
7
8
9
10
11
12
13
14
15
16
17




18
19
20
21
22
23
24
25
26



































27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/* $OpenBSD: tls_util.c,v 1.9 2017/06/22 18:03:57 jsing Exp $ */
/*
 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org>

 * Copyright (c) 2015 Reyk Floeter <reyk@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */





#include <sys/stat.h>

#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>

#include "tls.h"
#include "tls_internal.h"




































/*
 * Extract the host and port from a colon separated value. For a literal IPv6
 * address the address must be contained with square braces. If a host and
 * port are successfully extracted, the function will return 0 and the
 * caller is responsible for freeing the host and port. If no port is found
 * then the function will return 1, with both host and port being NULL.
 * On memory allocation failure -1 will be returned.
 */
int
tls_host_port(const char *hostport, char **host, char **port)
{
	char *h, *p, *s;
	int rv = 1;

	*host = NULL;
	*port = NULL;

	if ((s = strdup(hostport)) == NULL)
		goto fail;

	h = p = s;

	/* See if this is an IPv6 literal with square braces. */
	if (p[0] == '[') {
		h++;
		if ((p = strchr(s, ']')) == NULL)
|


>














>
>
>
>









>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>



















|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
/* $OpenBSD: tls_util.c,v 1.12 2018/02/08 07:55:29 jsing Exp $ */
/*
 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org>
 * Copyright (c) 2014 Ted Unangst <tedu@openbsd.org>
 * Copyright (c) 2015 Reyk Floeter <reyk@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

#ifdef _MSC_VER
#define NO_REDEF_POSIX_FUNCTIONS
#endif

#include <sys/stat.h>

#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>

#include "tls.h"
#include "tls_internal.h"

static void *
memdup(const void *in, size_t len)
{
	void *out;

	if ((out = malloc(len)) == NULL)
		return NULL;
	memcpy(out, in, len);
	return out;
}

int
tls_set_mem(char **dest, size_t *destlen, const void *src, size_t srclen)
{
	free(*dest);
	*dest = NULL;
	*destlen = 0;
	if (src != NULL)
		if ((*dest = memdup(src, srclen)) == NULL)
			return -1;
	*destlen = srclen;
	return 0;
}

int
tls_set_string(const char **dest, const char *src)
{
	free((char *)*dest);
	*dest = NULL;
	if (src != NULL)
		if ((*dest = strdup(src)) == NULL)
			return -1;
	return 0;
}

/*
 * Extract the host and port from a colon separated value. For a literal IPv6
 * address the address must be contained with square braces. If a host and
 * port are successfully extracted, the function will return 0 and the
 * caller is responsible for freeing the host and port. If no port is found
 * then the function will return 1, with both host and port being NULL.
 * On memory allocation failure -1 will be returned.
 */
int
tls_host_port(const char *hostport, char **host, char **port)
{
	char *h, *p, *s;
	int rv = 1;

	*host = NULL;
	*port = NULL;

	if ((s = strdup(hostport)) == NULL)
		goto err;

	h = p = s;

	/* See if this is an IPv6 literal with square braces. */
	if (p[0] == '[') {
		h++;
		if ((p = strchr(s, ']')) == NULL)
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76

77
78
79
80
81
82
83
	/* If there is another separator then we have issues. */
	if (strchr(p + 1, ':') != NULL)
		goto done;

	*p++ = '\0';

	if (asprintf(host, "%s", h) == -1)
		goto fail;
	if (asprintf(port, "%s", p) == -1)
		goto fail;

	rv = 0;
	goto done;

 fail:

	free(*host);
	*host = NULL;
	free(*port);
	*port = NULL;
	rv = -1;

 done:







|

|




<
>







102
103
104
105
106
107
108
109
110
111
112
113
114
115

116
117
118
119
120
121
122
123
	/* If there is another separator then we have issues. */
	if (strchr(p + 1, ':') != NULL)
		goto done;

	*p++ = '\0';

	if (asprintf(host, "%s", h) == -1)
		goto err;
	if (asprintf(port, "%s", p) == -1)
		goto err;

	rv = 0;
	goto done;


 err:
	free(*host);
	*host = NULL;
	free(*port);
	*port = NULL;
	rv = -1;

 done:
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170

171
172
173
174
175
176
177

	if ((fd = open(name, O_RDONLY)) == -1)
		return (NULL);

	/* Just load the file into memory without decryption */
	if (password == NULL) {
		if (fstat(fd, &st) != 0)
			goto fail;
		if (st.st_size < 0)
			goto fail;
		size = (size_t)st.st_size;
		if ((buf = malloc(size)) == NULL)
			goto fail;
		n = read(fd, buf, size);
		if (n < 0 || (size_t)n != size)
			goto fail;
		close(fd);
		goto done;
	}

	/* Or read the (possibly) encrypted key from file */
	if ((fp = fdopen(fd, "r")) == NULL)
		goto fail;
	fd = -1;

	key = PEM_read_PrivateKey(fp, NULL, tls_password_cb, password);
	fclose(fp);
	if (key == NULL)
		goto fail;

	/* Write unencrypted key to memory buffer */
	if ((bio = BIO_new(BIO_s_mem())) == NULL)
		goto fail;
	if (!PEM_write_bio_PrivateKey(bio, key, NULL, NULL, 0, NULL, NULL))
		goto fail;
	if ((size = BIO_get_mem_data(bio, &data)) <= 0)
		goto fail;
	if ((buf = malloc(size)) == NULL)
		goto fail;
	memcpy(buf, data, size);

	BIO_free_all(bio);
	EVP_PKEY_free(key);

 done:
	*len = size;
	return (buf);

 fail:

	if (fd != -1)
		close(fd);
	freezero(buf, size);
	BIO_free_all(bio);
	EVP_PKEY_free(key);

	return (NULL);







|

|


|


|






|





|



|

|

|

|









<
>







162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209

210
211
212
213
214
215
216
217

	if ((fd = open(name, O_RDONLY)) == -1)
		return (NULL);

	/* Just load the file into memory without decryption */
	if (password == NULL) {
		if (fstat(fd, &st) != 0)
			goto err;
		if (st.st_size < 0)
			goto err;
		size = (size_t)st.st_size;
		if ((buf = malloc(size)) == NULL)
			goto err;
		n = read(fd, buf, size);
		if (n < 0 || (size_t)n != size)
			goto err;
		close(fd);
		goto done;
	}

	/* Or read the (possibly) encrypted key from file */
	if ((fp = fdopen(fd, "r")) == NULL)
		goto err;
	fd = -1;

	key = PEM_read_PrivateKey(fp, NULL, tls_password_cb, password);
	fclose(fp);
	if (key == NULL)
		goto err;

	/* Write unencrypted key to memory buffer */
	if ((bio = BIO_new(BIO_s_mem())) == NULL)
		goto err;
	if (!PEM_write_bio_PrivateKey(bio, key, NULL, NULL, 0, NULL, NULL))
		goto err;
	if ((size = BIO_get_mem_data(bio, &data)) <= 0)
		goto err;
	if ((buf = malloc(size)) == NULL)
		goto err;
	memcpy(buf, data, size);

	BIO_free_all(bio);
	EVP_PKEY_free(key);

 done:
	*len = size;
	return (buf);


 err:
	if (fd != -1)
		close(fd);
	freezero(buf, size);
	BIO_free_all(bio);
	EVP_PKEY_free(key);

	return (NULL);
Changes to jni/libressl/tls/tls_verify.c.
1
2
3
4
5
6
7
8
/* $OpenBSD: tls_verify.c,v 1.19 2017/04/10 17:11:13 jsing Exp $ */
/*
 * Copyright (c) 2014 Jeremie Courreges-Anglas <jca@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
|







1
2
3
4
5
6
7
8
/* $OpenBSD: tls_verify.c,v 1.20 2018/02/05 00:52:24 jsing Exp $ */
/*
 * Copyright (c) 2014 Jeremie Courreges-Anglas <jca@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
	int common_name_len;
	int rv = 0;

	*cn_match = 0;

	subject_name = X509_get_subject_name(cert);
	if (subject_name == NULL)
		goto out;

	common_name_len = X509_NAME_get_text_by_NID(subject_name,
	    NID_commonName, NULL, 0);
	if (common_name_len < 0)
		goto out;

	common_name = calloc(common_name_len + 1, 1);
	if (common_name == NULL)
		goto out;

	X509_NAME_get_text_by_NID(subject_name, NID_commonName, common_name,
	    common_name_len + 1);

	/* NUL bytes in CN? */
	if (common_name_len < 0 ||
	    (size_t)common_name_len != strlen(common_name)) {
		tls_set_errorx(ctx, "error verifying name '%s': "
		    "NUL byte in Common Name field, "
		    "probably a malicious certificate", name);
		rv = -1;
		goto out;
	}

	/*
	 * We don't want to attempt wildcard matching against IP addresses,
	 * so perform a simple comparison here.
	 */
	if (inet_pton(AF_INET,  name, &addrbuf) == 1 ||
	    inet_pton(AF_INET6, name, &addrbuf) == 1) {
		if (strcmp(common_name, name) == 0)
			*cn_match = 1;
		goto out;
	}

	if (tls_match_name(common_name, name) == 0)
		*cn_match = 1;

 out:
	free(common_name);
	return rv;
}

int
tls_check_name(struct tls *ctx, X509 *cert, const char *name, int *match)
{







|




|



|











|










|





|







211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
	int common_name_len;
	int rv = 0;

	*cn_match = 0;

	subject_name = X509_get_subject_name(cert);
	if (subject_name == NULL)
		goto done;

	common_name_len = X509_NAME_get_text_by_NID(subject_name,
	    NID_commonName, NULL, 0);
	if (common_name_len < 0)
		goto done;

	common_name = calloc(common_name_len + 1, 1);
	if (common_name == NULL)
		goto done;

	X509_NAME_get_text_by_NID(subject_name, NID_commonName, common_name,
	    common_name_len + 1);

	/* NUL bytes in CN? */
	if (common_name_len < 0 ||
	    (size_t)common_name_len != strlen(common_name)) {
		tls_set_errorx(ctx, "error verifying name '%s': "
		    "NUL byte in Common Name field, "
		    "probably a malicious certificate", name);
		rv = -1;
		goto done;
	}

	/*
	 * We don't want to attempt wildcard matching against IP addresses,
	 * so perform a simple comparison here.
	 */
	if (inet_pton(AF_INET,  name, &addrbuf) == 1 ||
	    inet_pton(AF_INET6, name, &addrbuf) == 1) {
		if (strcmp(common_name, name) == 0)
			*cn_match = 1;
		goto done;
	}

	if (tls_match_name(common_name, name) == 0)
		*cn_match = 1;

 done:
	free(common_name);
	return rv;
}

int
tls_check_name(struct tls *ctx, X509 *cert, const char *name, int *match)
{