我知道这是非常基本的,但这让我感到困惑:
peercert定义为:
peercert(Socket) -> {ok, Cert} | {error, Reason}
Types
Socket = sslsocket()
Cert = binary()
The peer certificate is returned as a DER-encoded binary. The certificate can be decoded with public_key:pkix_decode_cert/2.
好的,太好了。 sslsocket定义为-record(sslsocket,{fd = nil,pid = nil})
所以我跑:
New = #sslsocket{pid = Pid},
io:fwrite("~n~npeercert~p~n~n", [ssl:peercert(New)]).
但我收到错误
no function clause matching ssl:peercert({sslsocket,<0.1277.0>,undefined})
所以我用Pid作为参数运行它并得到类似的错误:
no function clause matching ssl:peercert(<0.1277.0>)
我完全被这里难过了。我之前有过它,函数说这需要这些作为参数......
提前感谢您的帮助!
答案 0 :(得分:1)
sslsocket()
类型不是名为sslsocket
的记录,否则会写为#sslsocket{}
。它是一个“黑盒子类型”(它的真实类型是一个实现细节),但你可以从函数ssl:connect()
获得它。