Skip to content
This repository was archived by the owner on Jan 26, 2026. It is now read-only.

Commit ee20835

Browse files
committed
Merge commit '67c0ce3d219a1565491c30d6e5815a73eaea70a4'
2 parents 7434d7e + 67c0ce3 commit ee20835

76 files changed

Lines changed: 3689 additions & 1195 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
*.swp
55
*~$
66
cscope.*
7+
compile_commands.json
8+
/.clangd
79
tags
810
/build
911
/obj*

.gitlab-ci.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ fedora/openssl_1.1.x/x86_64:
3434
-DPICKY_DEVELOPER=ON
3535
-DWITH_BLOWFISH_CIPHER=ON
3636
-DWITH_SFTP=ON -DWITH_SERVER=ON -DWITH_ZLIB=ON -DWITH_PCAP=ON
37+
-DWITH_DEBUG_CRYPTO=ON
3738
-DWITH_DEBUG_PACKET=ON -DWITH_DEBUG_CALLTRACE=ON
3839
-DUNIT_TESTING=ON -DCLIENT_TESTING=ON -DSERVER_TESTING=ON .. &&
3940
make -j$(nproc) && ctest --output-on-failure
@@ -168,8 +169,7 @@ fedora/csbuild:
168169
169170
- csbuild
170171
--build-dir=obj-csbuild
171-
--prep-cmd="rm -rf CMakeFiles CMakeCache.txt && cmake -DCMAKE_BUILD_TYPE=Debug -DPICKY_DEVELOPER=ON -DUNIT_TESTING=ON -DCLIENT_TESTING=ON -DSERVER_TESTING=ON -DFUZZ_TESTING=ON @SRCDIR@"
172-
--build-cmd "make clean && make -j$(nproc)"
172+
--build-cmd "rm -rf CMakeFiles CMakeCache.txt && cmake -DCMAKE_BUILD_TYPE=Debug -DPICKY_DEVELOPER=ON -DUNIT_TESTING=ON -DCLIENT_TESTING=ON -DSERVER_TESTING=ON -DFUZZ_TESTING=ON @SRCDIR@ && make clean && make -j$(nproc)"
173173
--git-commit-range $CI_COMMIT_RANGE
174174
--color
175175
--print-current --print-fixed
@@ -215,7 +215,7 @@ fedora/libgcrypt/x86_64:
215215
-DPICKY_DEVELOPER=ON
216216
-DWITH_SFTP=ON -DWITH_SERVER=ON -DWITH_ZLIB=ON -DWITH_PCAP=ON
217217
-DUNIT_TESTING=ON -DCLIENT_TESTING=ON -DSERVER_TESTING=ON
218-
-DWITH_GCRYPT=ON .. &&
218+
-DWITH_GCRYPT=ON -DWITH_DEBUG_CRYPTO=ON .. &&
219219
make -j$(nproc) && ctest --output-on-failure
220220
tags:
221221
- shared
@@ -235,7 +235,7 @@ fedora/mbedtls/x86_64:
235235
-DPICKY_DEVELOPER=ON
236236
-DWITH_SFTP=ON -DWITH_SERVER=ON -DWITH_ZLIB=ON -DWITH_PCAP=ON
237237
-DUNIT_TESTING=ON -DCLIENT_TESTING=ON -DSERVER_TESTING=ON
238-
-DWITH_MBEDTLS=ON .. &&
238+
-DWITH_MBEDTLS=ON -DWITH_DEBUG_CRYPTO=ON .. &&
239239
make -j$(nproc) && ctest --output-on-failure
240240
tags:
241241
- shared

CMakeLists.txt

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules")
1010
include(DefineCMakeDefaults)
1111
include(DefineCompilerFlags)
1212

13-
project(libssh VERSION 0.9.0 LANGUAGES C)
13+
project(libssh VERSION 0.9.1 LANGUAGES C)
1414

1515
# global needed variable
1616
set(APPLICATION_NAME ${PROJECT_NAME})
@@ -22,16 +22,16 @@ set(APPLICATION_NAME ${PROJECT_NAME})
2222
# Increment AGE. Set REVISION to 0
2323
# If the source code was changed, but there were no interface changes:
2424
# Increment REVISION.
25-
set(LIBRARY_VERSION "4.8.1")
25+
set(LIBRARY_VERSION "4.8.2")
2626
set(LIBRARY_SOVERSION "4")
2727

2828
# where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is checked
2929

3030
# add definitions
3131
include(DefinePlatformDefaults)
32-
include(DefineInstallationPaths)
3332
include(DefineOptions.cmake)
3433
include(CPackConfig.cmake)
34+
include(GNUInstallDirs)
3535

3636
include(CompilerChecks.cmake)
3737

@@ -117,7 +117,7 @@ install(
117117
FILES
118118
${CMAKE_CURRENT_BINARY_DIR}/libssh.pc
119119
DESTINATION
120-
${LIB_INSTALL_DIR}/pkgconfig
120+
${CMAKE_INSTALL_LIBDIR}/pkgconfig
121121
COMPONENT
122122
pkgconfig
123123
)
@@ -133,21 +133,13 @@ write_basic_package_version_file(libssh-config-version.cmake
133133
VERSION ${PROJECT_VERSION}
134134
COMPATIBILITY SameMajorVersion)
135135

136-
# libssh-config.cmake
137-
configure_package_config_file(${PROJECT_NAME}-config.cmake.in
138-
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake
139-
INSTALL_DESTINATION ${CMAKE_INSTALL_DIR}/${PROJECT_NAME}
140-
PATH_VARS INCLUDE_INSTALL_DIR LIB_INSTALL_DIR)
141-
142136
install(
143137
FILES
144-
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake
145138
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake
146139
DESTINATION
147-
${CMAKE_INSTALL_DIR}/${PROJECT_NAME}
140+
${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
148141
COMPONENT
149-
devel
150-
)
142+
devel)
151143

152144
if (WITH_EXAMPLES)
153145
add_subdirectory(examples)
@@ -213,6 +205,11 @@ endif (WITH_SYMBOL_VERSIONING AND ABIMAP_FOUND)
213205

214206
add_custom_target(dist COMMAND ${CMAKE_MAKE_PROGRAM} package_source DEPENDS ${_SYMBOL_TARGET})
215207

208+
# Link compile database for clangd
209+
execute_process(COMMAND cmake -E create_symlink
210+
"${CMAKE_BINARY_DIR}/compile_commands.json"
211+
"${CMAKE_SOURCE_DIR}/compile_commands.json")
212+
216213
message(STATUS "********************************************")
217214
message(STATUS "********** ${PROJECT_NAME} build options : **********")
218215

ChangeLog

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,20 @@
11
ChangeLog
22
==========
33

4+
version 0.9.1 (released 2019-10-25)
5+
* Added support for Ed25519 via OpenSSL
6+
* Added support for X25519 via OpenSSL
7+
* Added support for localuser in Match keyword
8+
* Fixed Match keyword to be case sensitive
9+
* Fixed compilation with LibreSSL
10+
* Fixed error report of channel open (T75)
11+
* Fixed sftp documentation (T137)
12+
* Fixed known_hosts parsing (T156)
13+
* Fixed build issue with MinGW (T157)
14+
* Fixed build with gcc 9 (T164)
15+
* Fixed deprecation issues (T165)
16+
* Fixed known_hosts directory creation (T166)
17+
418
version 0.9.0 (released 2019-06-28)
519
* Added support for AES-GCM
620
* Added improved rekeying support

ConfigureChecks.cmake

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,7 @@ include(TestBigEndian)
99

1010
set(PACKAGE ${PROJECT_NAME})
1111
set(VERSION ${PROJECT_VERSION})
12-
set(DATADIR ${DATA_INSTALL_DIR})
13-
set(LIBDIR ${LIB_INSTALL_DIR})
14-
set(PLUGINDIR "${PLUGIN_INSTALL_DIR}-${LIBRARY_SOVERSION}")
15-
set(SYSCONFDIR ${SYSCONF_INSTALL_DIR})
12+
set(SYSCONFDIR ${CMAKE_INSTALL_SYSCONFDIR})
1613

1714
set(BINARYDIR ${CMAKE_BINARY_DIR})
1815
set(SOURCEDIR ${CMAKE_SOURCE_DIR})
@@ -131,12 +128,32 @@ if (OPENSSL_FOUND)
131128
set(CMAKE_REQUIRED_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY})
132129
check_function_exists(EVP_KDF_CTX_new_id HAVE_OPENSSL_EVP_KDF_CTX_NEW_ID)
133130

131+
set(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR})
132+
set(CMAKE_REQUIRED_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY})
133+
check_function_exists(FIPS_mode HAVE_OPENSSL_FIPS_MODE)
134+
134135
set(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR})
135136
set(CMAKE_REQUIRED_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY})
136137
check_function_exists(RAND_priv_bytes HAVE_OPENSSL_RAND_PRIV_BYTES)
137138

139+
set(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR})
140+
set(CMAKE_REQUIRED_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY})
141+
check_function_exists(EVP_DigestSign HAVE_OPENSSL_EVP_DIGESTSIGN)
142+
143+
set(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR})
144+
set(CMAKE_REQUIRED_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY})
145+
check_function_exists(EVP_DigestVerify HAVE_OPENSSL_EVP_DIGESTVERIFY)
146+
138147
check_function_exists(OPENSSL_ia32cap_loc HAVE_OPENSSL_IA32CAP_LOC)
139148

149+
set(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR})
150+
set(CMAKE_REQUIRED_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY})
151+
check_symbol_exists(EVP_PKEY_ED25519 "openssl/evp.h" HAVE_OPENSSL_ED25519)
152+
153+
set(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR})
154+
set(CMAKE_REQUIRED_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY})
155+
check_symbol_exists(EVP_PKEY_X25519 "openssl/evp.h" HAVE_OPENSSL_X25519)
156+
140157
unset(CMAKE_REQUIRED_INCLUDES)
141158
unset(CMAKE_REQUIRED_LIBRARIES)
142159
endif()

cmake/Modules/DefineInstallationPaths.cmake

Lines changed: 0 additions & 109 deletions
This file was deleted.

config.h.cmake

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,6 @@
44
/* Version number of package */
55
#cmakedefine VERSION "${PROJECT_VERSION}"
66

7-
#cmakedefine LOCALEDIR "${LOCALE_INSTALL_DIR}"
8-
#cmakedefine DATADIR "${DATADIR}"
9-
#cmakedefine LIBDIR "${LIBDIR}"
10-
#cmakedefine PLUGINDIR "${PLUGINDIR}"
117
#cmakedefine SYSCONFDIR "${SYSCONFDIR}"
128
#cmakedefine BINARYDIR "${BINARYDIR}"
139
#cmakedefine SOURCEDIR "${SOURCEDIR}"
@@ -101,6 +97,12 @@
10197
/* Define to 1 if you have gl_flags as a glob_t sturct member */
10298
#cmakedefine HAVE_GLOB_GL_FLAGS_MEMBER 1
10399

100+
/* Define to 1 if you have OpenSSL with Ed25519 support */
101+
#cmakedefine HAVE_OPENSSL_ED25519 1
102+
103+
/* Define to 1 if you have OpenSSL with X25519 support */
104+
#cmakedefine HAVE_OPENSSL_X25519 1
105+
104106
/*************************** FUNCTIONS ***************************/
105107

106108
/* Define to 1 if you have the `EVP_aes128_ctr' function. */
@@ -124,6 +126,15 @@
124126
/* Define to 1 if you have the `EVP_KDF_CTX_new_id' function. */
125127
#cmakedefine HAVE_OPENSSL_EVP_KDF_CTX_NEW_ID 1
126128

129+
/* Define to 1 if you have the `FIPS_mode' function. */
130+
#cmakedefine HAVE_OPENSSL_FIPS_MODE 1
131+
132+
/* Define to 1 if you have the `EVP_DigestSign' function. */
133+
#cmakedefine HAVE_OPENSSL_EVP_DIGESTSIGN 1
134+
135+
/* Define to 1 if you have the `EVP_DigestVerify' function. */
136+
#cmakedefine HAVE_OPENSSL_EVP_DIGESTVERIFY 1
137+
127138
/* Define to 1 if you have the `OPENSSL_ia32cap_loc' function. */
128139
#cmakedefine HAVE_OPENSSL_IA32CAP_LOC 1
129140

0 commit comments

Comments
 (0)