anchor.diff:      mac_hash(Version, MacAlg, MacSecret, NewSeq, Type,
   	     Length, Fragment).
   
  +highest_protocol_version() ->
  +    highest_protocol_version(supported_protocol_versions()).
  +
  +lowest_protocol_version() ->
  +    lowest_protocol_version(supported_protocol_versions()).
  +
  +sufficient_dtlsv1_2_crypto_support() ->
  +    CryptoSupport = crypto:supports(),
  +    proplists:get_bool(sha256, proplists:get_value(hashs, CryptoSupport)).
  +
   mac_hash(Version, MacAlg, MacSecret, SeqNo, Type, Length, Fragment) ->
       dtls_v1:mac_hash(Version, MacAlg, MacSecret, SeqNo, Type,
   		     Length, Fragment).
  
positive.code: 	{ok, []} ->
  	    lists:map(Fun, supported_protocol_versions([]));
  	{ok, Vsns} when is_list(Vsns) ->
  	    supported_protocol_versions(Vsns);
  	{ok, Vsn} ->
  	    supported_protocol_versions([Vsn])
       end.
  
  supported_protocol_versions([]) ->
      Vsns = supported_connection_protocol_versions([]),
      application:set_env(ssl, dtls_protocol_version, Vsns),
      Vsns;
  
  supported_protocol_versions([_|_] = Vsns) ->
      Vsns.
  
  %% highest_protocol_version() ->
  %%     highest_protocol_version(supported_protocol_versions()).
  
  lowest_protocol_version() ->
      lowest_protocol_version(supported_protocol_versions()).
  
  supported_connection_protocol_versions([]) ->
      ?ALL_DATAGRAM_SUPPORTED_VERSIONS.
  
  %%--------------------------------------------------------------------
  -spec is_acceptable_version(dtls_version(), Supported :: [dtls_version()]) -> boolean().
  
negative.code: -export([decode_cipher_text/2]).
  
  %% Encoding
  -export([encode_plain_text/4, encode_tls_cipher_text/5, encode_change_cipher_spec/2]).
  
  %% Protocol version handling
  -export([protocol_version/1, lowest_protocol_version/1, lowest_protocol_version/2,
  	 highest_protocol_version/1, highest_protocol_version/2,
  	 is_higher/2, supported_protocol_versions/0,
  	 is_acceptable_version/2]).
  
  %% DTLS Epoch handling
  