-
Notifications
You must be signed in to change notification settings - Fork 43
Cryptographic library
nmaya edited this page Sep 5, 2024
·
2 revisions
https://osdn.net/projects/ttssh2/ticket/43469, https://osdn.net/ticket/download.php?group_id=1412&tid=43469&file_id=12002
OpenSSL 3 から、一部の方式が動作しない。
- blowfish-cbc
- cast128-cbc
- arcfour
- arcfour128
- arcfour256
- [email protected]
- [email protected]
legacy なアルゴリズムがデフォルトで無効になっているため。
r10647にて、これらが有効になるようにした。
LibreSSL はバージョンによって異なる(上がる)ことがある。その場合は vcxproj などでリンクするライブラリファイル名を変更する。
cf. https://osdn.net/projects/ttssh2/ticket/45656#comment:1412:45656:1680130841
バージョン | ファイル名 |
---|---|
3.4.3 | crypto-47.lib |
3.7.2 | crypto-50.lib |
構造体が opaque になったため、ssh_aes_ctr(), ssh_des3_ctr(), ssh_bf_ctr(), ssh_cast5_ctr(), ssh_camellia_ctr() のビルドが通らない。
LibreSSL 3.7.1 から EVP_CIPHER_meth_* 関数が追加されたため、OpenSSL と同じように EVP_CIPHER_meth_* 関数を使って暗号を使うことができる。
OpenSSL | 3- | LibreSSL | -3.4.3 | 3.5.0-3.7.0 | 3.7.1- | |
---|---|---|---|---|---|---|
blowfish-cbc | EVP_bf_cbc() *1 | ○ *6 | EVP_bf_cbc() *1 | ○ | ○ | ○ |
cast128-cbc | EVP_cast5_cbc() *1 | ○ *6 | EVP_cast5_cbc() *1 | ○ | ○ | ○ |
arcfour | EVP_rc4() *1 | ○ *6 | EVP_rc4() *1 | ○ | ○ | ○ |
arcfour128 | EVP_rc4() *1 | ○ *6 | EVP_rc4() *1 | ○ | ○ | ○ |
arcfour256 | EVP_rc4() *1 | ○ *6 | EVP_rc4() *1 | ○ | ○ | ○ |
aes128-ctr | EVP_aes_128_ctr() *1 | ○ | EVP_aes_128_ctr() *1 | ○ | ○ | ○ |
aes192-ctr | EVP_aes_192_ctr() *1 | ○ | EVP_aes_192_ctr() *1 | ○ | ○ | ○ |
aes256-ctr | EVP_aes_256_ctr() *1 | ○ | EVP_aes_256_ctr() *1 | ○ | ○ | ○ |
3des-ctr | evp_des3_ctr() *3 | ○ *5 | evp_des3_ctr() *2 | ○ *4 | × | ○ *5 |
blowfish-ctr | evp_bf_ctr() *3 | ○ *5 | evp_bf_ctr() *3 | ○ *4 | × | ○ *5 |
cast128-ctr | evp_cast5_ctr() *3 | ○ *5 | evp_cast5_ctr() *3 | ○ *4 | × | ○ *5 |
camellia128-ctr | EVP_camellia_128_ctr() *1 | ○ | evp_camellia_128_ctr() *3 | ○ *4 | × | ○ *5 |
camellia192-ctr | EVP_camellia_192_ctr() *1 | ○ | evp_camellia_128_ctr() *3 | ○ *4 | × | ○ *5 |
camellia256-ctr | EVP_camellia_256_ctr() *1 | ○ | evp_camellia_128_ctr() *3 | ○ *4 | × | ○ *5 |
3DES (RSA1鍵用) | evp_ssh1_3des() *2 | ○ *5 | evp_ssh1_3des() *2 | ○ *4 | × | ○ *5 |
OpenSSL | 3- | LibreSSL | -3.4.3 | 3.5.0-3.7.0 | 3.7.1- | |
---|---|---|---|---|---|---|
[email protected] | EVP_ripemd160() *1 | ○ *6 | EVP_ripemd160() *1 | ○ | ○ | ○ |
[email protected] | EVP_ripemd160() *1 | ○ *6 | EVP_ripemd160() *1 | ○ | ○ | ○ |
*1 暗号ライブラリの関数
*2 cipher-3des.c 内関数
*3 cipher-ctr.c 内関数
*4 EVP_CIPHER 構造体を用いる
*5 EVP_CIPHER_meth_new() 関数を用いる
*6 OpenSSL Legacy Provider を有効にすることで利用できる(r10647)