anchor.diff:  	    {unknown, {SslState, UserState}}
       end.
   
  --define(TLSEXT_SIGALG_RSA(MD), {MD, rsa}).
  --define(TLSEXT_SIGALG_DSA(MD), {MD, dsa}).
  --define(TLSEXT_SIGALG_ECDSA(MD), {MD, ecdsa}).
  -
  --define(TLSEXT_SIGALG(MD), ?TLSEXT_SIGALG_ECDSA(MD), ?TLSEXT_SIGALG_RSA(MD)).
  -
  -default_hash_signs() ->
  -    HashSigns = [?TLSEXT_SIGALG(sha512),
  -		 ?TLSEXT_SIGALG(sha384),
  -		 ?TLSEXT_SIGALG(sha256),
  -		 ?TLSEXT_SIGALG(sha224),
  -		 ?TLSEXT_SIGALG(sha),
  -		 ?TLSEXT_SIGALG_DSA(sha),
  -		 ?TLSEXT_SIGALG_RSA(md5)],
  -    CryptoSupport = proplists:get_value(public_keys, crypto:supports()),
  -    HasECC = proplists:get_bool(ecdsa, CryptoSupport),
  -    #hash_sign_algos{hash_sign_algos =
  -			 lists:filter(fun({_, ecdsa}) -> HasECC;
  -					 (_) -> true end, HashSigns)}.
  -
   handle_hello_extensions(#client_hello{random = Random,
   				      cipher_suites = CipherSuites,
   				      renegotiation_info = Info,
  
positive.code:     L = (length(integer_to_list(I, 16)) + 1) div 2,
      <<I:(L*8)>>.
  
  advertised_hash_signs({Major, Minor}) when Major >= 3 andalso Minor >= 3 ->
      default_hash_signs();
  advertised_hash_signs(_) ->
      undefined.
  
negative.code: 	 decode_client_key/3, decode_server_key/3, server_hello_done/0,
  	 encode_handshake/2, init_handshake_history/0, update_handshake_history/2,
  	 decrypt_premaster_secret/2, prf/5, next_protocol/1, select_hashsign/2,
  	 select_cert_hashsign/3]).
  
  -export([dec_hello_extensions/2]).
  
  