C 如何修改s_客户端的代码?
我正在C 如何修改s_客户端的代码?,c,linux,networking,ssl,openssl,C,Linux,Networking,Ssl,Openssl,我正在openssl源代码中玩apps/s\u client.c。我想做一些更改并运行它,但在保存文件并执行全部生成或生成后,我的更改没有得到反映 例如,我将sc\u用法函数更改为: BIO_printf(bio_err,"This is how you use s_client\n"); BIO_printf(bio_err,"usage: s_client args\n"); BIO_printf(bio_err,"\n"); BIO_printf(bio_err," -host host
openssl
源代码中玩apps/s\u client.c
。我想做一些更改并运行它,但在保存文件并执行全部生成
或生成
后,我的更改没有得到反映
例如,我将sc\u用法
函数更改为:
BIO_printf(bio_err,"This is how you use s_client\n");
BIO_printf(bio_err,"usage: s_client args\n");
BIO_printf(bio_err,"\n");
BIO_printf(bio_err," -host host - use -connect instead\n");
BIO_printf(bio_err," -port port - use -connect instead\n");
然后,我在apps
文件夹中保存并执行make all
,但当我这样运行程序时:openssl s_client abc
,我在输出中没有看到我介绍的行,这是如何使用s_client
我哪里出错了?您确定运行了正确的应用程序吗?试试
/openssl
在Linux中,默认情况下不会在当前目录中搜索可执行文件,因此您可能正在运行系统的openssl
我想做一些更改并运行它,但在保存文件并执行“全部生成”或“生成”后,我的更改不会得到反映
一旦你知道了诀窍,那就更容易了
Configure
)make depend&&make
)sudo make Install
)s_client.c
s_client.c
(apps/
目录):apps.o
和apps\u rand.o
,以支持s\u client.o
export OPENSSLDIR=/usr/local/ssl/darwin
gcc -DOPENSSL_NO_PSK -DMONOLITH -I$OPENSSLDIR/include -I../ -c apps.c
gcc -DOPENSSL_NO_PSK -DMONOLITH -I$OPENSSLDIR/include -I../ -c app_rand.c
gcc -DOPENSSL_NO_PSK -DMONOLITH -I$OPENSSLDIR/include -I../ -c s_cb.c
gcc -DOPENSSL_NO_PSK -DMONOLITH -I$OPENSSLDIR/include -I../ -c s_socket.c
gcc -DOPENSSL_NO_PSK -I$OPENSSLDIR/include -I../ \
app_rand.o apps.o s_cb.o s_socket.o \
$OPENSSLDIR/lib/libssl.a $OPENSSLDIR/lib/libcrypto.a \
s_client.c -o my_s_client.exe
需要OPENSSL\u NO\u PSK
,因为声明(PSK\u key
)已被注释掉。需要-I../
,因为e_os.h
在进行安装后未安装。如果OpenSSL在发布之前真的测试了他们的东西,那当然很好了
然后:
无需重建整个库或所有应用程序。不需要openssl s_客户端…
$ ./my_s_client.exe -connect www.google.com:443
CONNECTED(00000003)
depth=2 C = US, O = GeoTrust Inc., CN = GeoTrust Global CA
verify error:num=20:unable to get local issuer certificate
verify return:0
---
Certificate chain
0 s:/C=US/ST=California/L=Mountain View/O=Google Inc/CN=www.google.com
i:/C=US/O=Google Inc/CN=Google Internet Authority G2
...