问题:
tls连接时握手失败。
错误信息:
3065951328:error:100EB0B5:elliptic curve routines:EC_POINT_set_affine_coordinates_GFp:point is not on curve:crypto/ec/ec_lib.c:707:
3065951328:error:100C8010:elliptic curve routines:ec_group_new_from_data:EC lib:crypto/ec/ec_curve.c:3221:
3065951328:error:100C70BE:elliptic curve routines:EC_GROUP_new_by_curve_name:unknown group:crypto/ec/ec_curve.c:3271:
3065951328:error:10101087:elliptic curve routines:pkey_ec_ctrl:invalid curve:crypto/ec/ec_pmeth.c:382:
3065951328:error:14179006:SSL routines:tls_construct_server_key_exchange:EVP lib:ssl/statem/statem_srvr.c:1830:
原因:
由于在交叉编译Gmssl时架构设置错误,在arm32上无法正确运行。
解决:
重新编译Gmssl库,执行 setarch --list 命令,查看支持的架构,linux32和i386可以在arm上运行。
sudo setarch i386 ./config no-asm --cross-compile-prefix=/root/arm-linux-gnueabi/bin/arm-linux-gnueabi- --prefix=/home/work//Gmssl
make
make install