aboutsummaryrefslogtreecommitdiff
path: root/src/tls/tls.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/tls/tls.erl')
-rw-r--r--src/tls/tls.erl10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/tls/tls.erl b/src/tls/tls.erl
index 9aee54cfb..9c921b36f 100644
--- a/src/tls/tls.erl
+++ b/src/tls/tls.erl
@@ -61,6 +61,13 @@
-define(GET_VERIFY_RESULT, 8).
-define(VERIFY_NONE, 16#10000).
+-ifdef(SSL40).
+-define(CERT_DECODE, {public_key, pkix_decode_cert, plain}).
+-else.
+-define(CERT_DECODE, {ssl_pkix, decode_cert, [pkix]}).
+-endif.
+
+
-record(tlssock, {tcpsock, tlsport}).
start() ->
@@ -232,7 +239,8 @@ close(#tlssock{tcpsock = TCPSocket, tlsport = Port}) ->
get_peer_certificate(#tlssock{tlsport = Port}) ->
case port_control(Port, ?GET_PEER_CERTIFICATE, []) of
<<0, BCert/binary>> ->
- case catch ssl_pkix:decode_cert(BCert, [pkix]) of
+ {CertMod, CertFun, CertSecondArg} = ?CERT_DECODE,
+ case catch apply(CertMod, CertFun, [BCert, CertSecondArg]) of
{ok, Cert} ->
{ok, Cert};
_ ->