@@ -0,0 +1,35 @@ | ||
1 | +rem OpenSSLのビルド | |
2 | + | |
3 | +cd openssl | |
4 | + | |
5 | + | |
6 | +rem nmmake clean すると ossl_static.pdb は *.pdb なので削除されてしまう。 | |
7 | +rem ossl_static.pdb は *.pdb なので nmake clean すると削除されてしまう。 | |
8 | +rem debug のときのほうが必要だと思われるので、 | |
9 | +rem release を先にビルドして debug の ossl_static.pdb が残るようにする。 | |
10 | + | |
11 | +if exist "out32\libcrypto.lib" goto build_end | |
12 | +perl Configure no-asm no-async no-shared no-capieng no-dso no-engine VC-WIN32 | |
13 | +perl -e "open(IN,'makefile');while(<IN>){s| /MD| /MT|;print $_;}close(IN);" > makefile.tmp | |
14 | +move /y makefile.tmp makefile | |
15 | +nmake -f makefile clean | |
16 | +nmake -f makefile build_libs | |
17 | +mkdir out32 | |
18 | +move /y libcrypto.lib out32\ | |
19 | +move /y ossl_static.pdb out32\ | |
20 | +:build_end | |
21 | + | |
22 | +if exist "out32.dbg\libcrypto.lib" goto build_dbg_end | |
23 | +perl Configure no-asm no-async no-shared no-capieng no-dso no-engine VC-WIN32 --debug | |
24 | +perl -e "open(IN,'makefile');while(<IN>){s| /MDd| /MTd|;print $_;}close(IN);" > makefile.tmp | |
25 | +move /y makefile.tmp makefile.dbg | |
26 | +nmake -f makefile.dbg clean | |
27 | +nmake -f makefile.dbg build_libs | |
28 | +mkdir out32.dbg | |
29 | +move /y libcrypto.lib out32.dbg\ | |
30 | +move /y ossl_static.pdb out32.dbg\ | |
31 | +:build_dbg_end | |
32 | + | |
33 | + | |
34 | +cd .. | |
35 | +exit /b 0 |
@@ -1,6 +1,7 @@ | ||
1 | 1 | set(PACKAGE_NAME "ttxssh") |
2 | 2 | |
3 | 3 | option(TTXSSH_LIBRESSL "User LibreSSL" on) |
4 | +option(TTXSSH_OPENSSL3 "Use OpenSSL3" off) | |
4 | 5 | |
5 | 6 | project(${PACKAGE_NAME}) |
6 | 7 |
@@ -7,6 +8,8 @@ | ||
7 | 8 | include(${CMAKE_CURRENT_SOURCE_DIR}/../../libs/lib_zlib.cmake) |
8 | 9 | if(TTXSSH_LIBRESSL) |
9 | 10 | include(${CMAKE_CURRENT_SOURCE_DIR}/../../libs/lib_libressl.cmake) |
11 | +elseif(TTXSSH_OPENSSL3) | |
12 | + include(${CMAKE_CURRENT_SOURCE_DIR}/../../libs/lib_openssl3.cmake) | |
10 | 13 | else() |
11 | 14 | include(${CMAKE_CURRENT_SOURCE_DIR}/../../libs/lib_openssl.cmake) |
12 | 15 | endif() |
@@ -163,6 +166,7 @@ | ||
163 | 166 | ../putty |
164 | 167 | ${ZLIB_INCLUDE_DIRS} |
165 | 168 | ) |
169 | + | |
166 | 170 | if(TTXSSH_LIBRESSL) |
167 | 171 | target_include_directories( |
168 | 172 | ${PACKAGE_NAME} |
@@ -169,6 +173,12 @@ | ||
169 | 173 | PRIVATE |
170 | 174 | ${LIBRESSL_INCLUDE_DIRS} |
171 | 175 | ) |
176 | +elseif(TTXSSH_OPENSSL3) | |
177 | + target_include_directories( | |
178 | + ${PACKAGE_NAME} | |
179 | + PRIVATE | |
180 | + ${OPENSSL3_INCLUDE_DIRS} | |
181 | + ) | |
172 | 182 | else() |
173 | 183 | target_include_directories( |
174 | 184 | ${PACKAGE_NAME} |
@@ -216,6 +226,13 @@ | ||
216 | 226 | ${LIBRESSL_LIB} |
217 | 227 | bcrypt.lib |
218 | 228 | ) |
229 | +elseif(TTXSSH_OPENSSL3) | |
230 | + target_link_libraries( | |
231 | + ${PACKAGE_NAME} | |
232 | + PRIVATE | |
233 | + ${OPENSSL3_LIB} | |
234 | + bcrypt.lib | |
235 | + ) | |
219 | 236 | else() |
220 | 237 | target_link_libraries( |
221 | 238 | ${PACKAGE_NAME} |
@@ -46,9 +46,9 @@ | ||
46 | 46 | {SSH2_CIPHER_AES192_CBC, "aes192-cbc", 16, 24, 0, 0, 0, EVP_aes_192_cbc}, // RFC4253 |
47 | 47 | {SSH2_CIPHER_AES256_CBC, "aes256-cbc", 16, 32, 0, 0, 0, EVP_aes_256_cbc}, // RFC4253 |
48 | 48 | {SSH2_CIPHER_BLOWFISH_CBC, "blowfish-cbc", 8, 16, 0, 0, 0, EVP_bf_cbc}, // RFC4253 |
49 | - {SSH2_CIPHER_AES128_CTR, "aes128-ctr", 16, 16, 0, 0, 0, evp_aes_128_ctr}, // RFC4344 | |
50 | - {SSH2_CIPHER_AES192_CTR, "aes192-ctr", 16, 24, 0, 0, 0, evp_aes_128_ctr}, // RFC4344 | |
51 | - {SSH2_CIPHER_AES256_CTR, "aes256-ctr", 16, 32, 0, 0, 0, evp_aes_128_ctr}, // RFC4344 | |
49 | + {SSH2_CIPHER_AES128_CTR, "aes128-ctr", 16, 16, 0, 0, 0, EVP_aes_128_ctr}, // RFC4344 | |
50 | + {SSH2_CIPHER_AES192_CTR, "aes192-ctr", 16, 24, 0, 0, 0, EVP_aes_192_ctr}, // RFC4344 | |
51 | + {SSH2_CIPHER_AES256_CTR, "aes256-ctr", 16, 32, 0, 0, 0, EVP_aes_256_ctr}, // RFC4344 | |
52 | 52 | {SSH2_CIPHER_ARCFOUR, "arcfour", 8, 16, 0, 0, 0, EVP_rc4}, // RFC4253 |
53 | 53 | {SSH2_CIPHER_ARCFOUR128, "arcfour128", 8, 16, 1536, 0, 0, EVP_rc4}, // RFC4345 |
54 | 54 | {SSH2_CIPHER_ARCFOUR256, "arcfour256", 8, 32, 1536, 0, 0, EVP_rc4}, // RFC4345 |
@@ -59,9 +59,9 @@ | ||
59 | 59 | {SSH2_CIPHER_CAMELLIA128_CBC, "camellia128-cbc", 16, 16, 0, 0, 0, EVP_camellia_128_cbc}, // draft-kanno-secsh-camellia-02 |
60 | 60 | {SSH2_CIPHER_CAMELLIA192_CBC, "camellia192-cbc", 16, 24, 0, 0, 0, EVP_camellia_192_cbc}, // draft-kanno-secsh-camellia-02 |
61 | 61 | {SSH2_CIPHER_CAMELLIA256_CBC, "camellia256-cbc", 16, 32, 0, 0, 0, EVP_camellia_256_cbc}, // draft-kanno-secsh-camellia-02 |
62 | - {SSH2_CIPHER_CAMELLIA128_CTR, "camellia128-ctr", 16, 16, 0, 0, 0, evp_camellia_128_ctr}, // draft-kanno-secsh-camellia-02 | |
63 | - {SSH2_CIPHER_CAMELLIA192_CTR, "camellia192-ctr", 16, 24, 0, 0, 0, evp_camellia_128_ctr}, // draft-kanno-secsh-camellia-02 | |
64 | - {SSH2_CIPHER_CAMELLIA256_CTR, "camellia256-ctr", 16, 32, 0, 0, 0, evp_camellia_128_ctr}, // draft-kanno-secsh-camellia-02 | |
62 | + {SSH2_CIPHER_CAMELLIA128_CTR, "camellia128-ctr", 16, 16, 0, 0, 0, EVP_camellia_128_ctr}, // draft-kanno-secsh-camellia-02 | |
63 | + {SSH2_CIPHER_CAMELLIA192_CTR, "camellia192-ctr", 16, 24, 0, 0, 0, EVP_camellia_192_ctr}, // draft-kanno-secsh-camellia-02 | |
64 | + {SSH2_CIPHER_CAMELLIA256_CTR, "camellia256-ctr", 16, 32, 0, 0, 0, EVP_camellia_256_ctr}, // draft-kanno-secsh-camellia-02 | |
65 | 65 | #ifdef WITH_CAMELLIA_PRIVATE |
66 | 66 | {SSH2_CIPHER_CAMELLIA128_CBC, "camellia128-cbc@openssh.org", 16, 16, 0, 0, 0, EVP_camellia_128_cbc}, |
67 | 67 | {SSH2_CIPHER_CAMELLIA192_CBC, "camellia192-cbc@openssh.org", 16, 24, 0, 0, 0, EVP_camellia_192_cbc}, |
@@ -328,19 +328,30 @@ | ||
328 | 328 | SSH2_CIPHER_AES128_CTR, |
329 | 329 | SSH2_CIPHER_CAMELLIA128_CBC, |
330 | 330 | SSH2_CIPHER_AES128_CBC, |
331 | +#if defined(LIBRESSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x30000000UL | |
331 | 332 | SSH2_CIPHER_3DES_CTR, |
333 | +#endif | |
332 | 334 | SSH2_CIPHER_3DES_CBC, |
335 | +#if defined(LIBRESSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x30000000UL | |
333 | 336 | SSH2_CIPHER_BLOWFISH_CTR, |
334 | 337 | SSH2_CIPHER_BLOWFISH_CBC, |
335 | 338 | SSH2_CIPHER_CAST128_CTR, |
336 | 339 | SSH2_CIPHER_CAST128_CBC, |
340 | +#endif | |
337 | 341 | SSH_CIPHER_3DES, |
338 | 342 | SSH_CIPHER_NONE, |
343 | +#if defined(LIBRESSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x30000000UL | |
339 | 344 | SSH2_CIPHER_ARCFOUR256, |
340 | 345 | SSH2_CIPHER_ARCFOUR128, |
341 | 346 | SSH2_CIPHER_ARCFOUR, |
347 | +#endif | |
342 | 348 | SSH_CIPHER_BLOWFISH, |
343 | 349 | SSH_CIPHER_DES, |
350 | +#if !defined(LIBRESSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x30000000UL | |
351 | + 0, 0, 0, // Dummy for SSH2_CIPHER_3DES_CTR, SSH2_CIPHER_BLOWFISH_CTR, SSH2_CIPHER_BLOWFISH_CBC, | |
352 | + 0, 0, // Dummy for SSH2_CIPHER_CAST128_CTR, SSH2_CIPHER_CAST128_CBC | |
353 | + 0, 0, 0, // Dummy for SSH2_CIPHER_ARCFOUR256, SSH2_CIPHER_ARCFOUR128, SSH2_CIPHER_ARCFOUR | |
354 | +#endif | |
344 | 355 | 0, 0, 0 // Dummy for SSH_CIPHER_IDEA, SSH_CIPHER_TSS, SSH_CIPHER_RC4 |
345 | 356 | }; |
346 | 357 |
@@ -606,10 +606,13 @@ | ||
606 | 606 | | (1 << SSH2_CIPHER_AES128_CBC) |
607 | 607 | | (1 << SSH2_CIPHER_AES192_CBC) |
608 | 608 | | (1 << SSH2_CIPHER_AES256_CBC) |
609 | +#if defined(LIBRESSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x30000000UL | |
609 | 610 | | (1 << SSH2_CIPHER_BLOWFISH_CBC) |
611 | +#endif | |
610 | 612 | | (1 << SSH2_CIPHER_AES128_CTR) |
611 | 613 | | (1 << SSH2_CIPHER_AES192_CTR) |
612 | 614 | | (1 << SSH2_CIPHER_AES256_CTR) |
615 | +#if defined(LIBRESSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x30000000UL | |
613 | 616 | | (1 << SSH2_CIPHER_ARCFOUR) |
614 | 617 | | (1 << SSH2_CIPHER_ARCFOUR128) |
615 | 618 | | (1 << SSH2_CIPHER_ARCFOUR256) |
@@ -617,6 +620,7 @@ | ||
617 | 620 | | (1 << SSH2_CIPHER_3DES_CTR) |
618 | 621 | | (1 << SSH2_CIPHER_BLOWFISH_CTR) |
619 | 622 | | (1 << SSH2_CIPHER_CAST128_CTR) |
623 | +#endif | |
620 | 624 | | (1 << SSH2_CIPHER_CAMELLIA128_CBC) |
621 | 625 | | (1 << SSH2_CIPHER_CAMELLIA192_CBC) |
622 | 626 | | (1 << SSH2_CIPHER_CAMELLIA256_CBC) |
@@ -129,8 +129,10 @@ | ||
129 | 129 | HMAC_SHA2_512, |
130 | 130 | HMAC_SHA2_256, |
131 | 131 | HMAC_SHA1, |
132 | +#if defined(LIBRESSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x30000000UL | |
132 | 133 | HMAC_RIPEMD160_EtM, |
133 | 134 | HMAC_RIPEMD160, |
135 | +#endif | |
134 | 136 | HMAC_MD5_EtM, |
135 | 137 | HMAC_MD5, |
136 | 138 | HMAC_NONE, |
@@ -137,7 +139,10 @@ | ||
137 | 139 | HMAC_SHA1_96_EtM, |
138 | 140 | HMAC_MD5_96_EtM, |
139 | 141 | HMAC_SHA1_96, |
140 | - HMAC_MD5_96, | |
142 | + HMAC_MD5_96, | |
143 | +#if !defined(LIBRESSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x30000000UL | |
144 | + 0, 0, // Dummy for HMAC_RIPEMD160_EtM, HMAC_RIPEMD160 | |
145 | +#endif | |
141 | 146 | 0, // Dummy for HMAC_SHA2_512_96, |
142 | 147 | 0, // Dummy for HMAC_SHA2_256_96, |
143 | 148 | }; |
@@ -6413,10 +6413,13 @@ | ||
6413 | 6413 | | 1 << SSH2_CIPHER_AES128_CBC |
6414 | 6414 | | 1 << SSH2_CIPHER_AES192_CBC |
6415 | 6415 | | 1 << SSH2_CIPHER_AES256_CBC |
6416 | +#if defined(LIBRESSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x30000000UL | |
6416 | 6417 | | 1 << SSH2_CIPHER_BLOWFISH_CBC |
6418 | +#endif | |
6417 | 6419 | | 1 << SSH2_CIPHER_AES128_CTR |
6418 | 6420 | | 1 << SSH2_CIPHER_AES192_CTR |
6419 | 6421 | | 1 << SSH2_CIPHER_AES256_CTR |
6422 | +#if defined(LIBRESSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x30000000UL | |
6420 | 6423 | | 1 << SSH2_CIPHER_ARCFOUR |
6421 | 6424 | | 1 << SSH2_CIPHER_ARCFOUR128 |
6422 | 6425 | | 1 << SSH2_CIPHER_ARCFOUR256 |
@@ -6424,6 +6427,7 @@ | ||
6424 | 6427 | | 1 << SSH2_CIPHER_3DES_CTR |
6425 | 6428 | | 1 << SSH2_CIPHER_BLOWFISH_CTR |
6426 | 6429 | | 1 << SSH2_CIPHER_CAST128_CTR |
6430 | +#endif | |
6427 | 6431 | | 1 << SSH2_CIPHER_CAMELLIA128_CBC |
6428 | 6432 | | 1 << SSH2_CIPHER_CAMELLIA192_CBC |
6429 | 6433 | | 1 << SSH2_CIPHER_CAMELLIA256_CBC |