diff --git a/shadowsocks/crypto/mbedtls.py b/shadowsocks/crypto/mbedtls.py index b87c2eb..1954a86 100644 --- a/shadowsocks/crypto/mbedtls.py +++ b/shadowsocks/crypto/mbedtls.py @@ -408,22 +408,20 @@ ciphers = { def run_method(method): - from shadowsocks.crypto import openssl print(method, ': [stream]', 32) cipher = MbedTLSStreamCrypto(method, b'k' * 32, b'i' * 16, 1) - decipher = openssl.OpenSSLStreamCrypto(method, b'k' * 32, b'i' * 16, 0) + decipher = MbedTLSStreamCrypto(method, b'k' * 32, b'i' * 16, 0) util.run_cipher(cipher, decipher) def run_aead_method(method, key_len=16): - from shadowsocks.crypto import openssl print(method, ': [payload][tag]', key_len) key_len = int(key_len) cipher = MbedTLSAeadCrypto(method, b'k' * key_len, b'i' * key_len, 1) - decipher = openssl.OpenSSLAeadCrypto( + decipher = MbedTLSAeadCrypto( method, b'k' * key_len, b'i' * key_len, 0 ) @@ -432,12 +430,11 @@ def run_aead_method(method, key_len=16): def run_aead_method_chunk(method, key_len=16): - from shadowsocks.crypto import openssl print(method, ': chunk([size][tag][payload][tag]', key_len) key_len = int(key_len) cipher = MbedTLSAeadCrypto(method, b'k' * key_len, b'i' * key_len, 1) - decipher = openssl.OpenSSLAeadCrypto( + decipher = MbedTLSAeadCrypto( method, b'k' * key_len, b'i' * key_len, 0 ) diff --git a/shadowsocks/crypto/openssl.py b/shadowsocks/crypto/openssl.py index f034bd1..ff63541 100644 --- a/shadowsocks/crypto/openssl.py +++ b/shadowsocks/crypto/openssl.py @@ -346,6 +346,8 @@ def run_method(method): def run_aead_method(method, key_len=16): + if not loaded: + load_openssl(None) print(method, ': [payload][tag]', key_len) cipher = libcrypto.EVP_get_cipherbyname(common.to_bytes(method)) if not cipher: @@ -362,6 +364,8 @@ def run_aead_method(method, key_len=16): def run_aead_method_chunk(method, key_len=16): + if not loaded: + load_openssl(None) print(method, ': chunk([size][tag][payload][tag]', key_len) cipher = libcrypto.EVP_get_cipherbyname(common.to_bytes(method)) if not cipher: diff --git a/tests/libopenssl/install.sh b/tests/libopenssl/install.sh index e948bff..480c772 100755 --- a/tests/libopenssl/install.sh +++ b/tests/libopenssl/install.sh @@ -10,3 +10,10 @@ pushd openssl-$OPENSSL_VER # sudo ldconfig # test multiple libcrypto popd rm -rf openssl-$OPENSSL_VER || exit 1 + +rm /usr/bin/openssl || exit 1 +rm -r /usr/include/openssl || exit 1 +ln -s /usr/local/bin/openssl /usr/bin/openssl || exit 1 +ln -s /usr/local/include/openssl /usr/include/openssl || exit 1 +echo /usr/local/lib >> /etc/ld.so.conf || exit 1 +ldconfig -v || exit 1