anchor.diff:    when Version =:= {3,4} ->
       SignSchemeListLen = Len - 2,
       <<?UINT16(SignSchemeListLen), SignSchemeList/binary>> = ExtData,
  -    SignSchemes = [ssl_cipher:signature_scheme(SignScheme) ||
  -			<<?UINT16(SignScheme)>> <= SignSchemeList],
  +    %% Ignore unknown signature algorithms
  +    Fun = fun(Elem) ->
  +                  case ssl_cipher:signature_scheme(Elem) of
  +                      unassigned ->
  +                          false;
  +                      Value ->
  +                          {true, Value}
  +                  end
  +          end,
  +    SignSchemes= lists:filtermap(Fun, [SignScheme ||
  +                                          <<?UINT16(SignScheme)>> <= SignSchemeList]),
       decode_extensions(Rest, Version, MessageType,
                         Acc#{signature_algs =>
                                  #signature_algorithms{
  
positive.code: 		       ExtData:Len/binary, Rest/binary>>, Version, MessageType, Acc) ->
      SignSchemeListLen = Len - 2,
      <<?UINT16(SignSchemeListLen), SignSchemeList/binary>> = ExtData,
      SignSchemes = [ssl_cipher:signature_scheme(SignScheme) ||
  			<<?UINT16(SignScheme)>> <= SignSchemeList],
      decode_extensions(Rest, Version, MessageType,
                        Acc#{signature_algs_cert =>
                                 #signature_algorithms_cert{
  
negative.code: decode_psk_key_exchange_modes(<<?BYTE(?PSK_KE), Rest/binary>>, Acc) ->
      decode_psk_key_exchange_modes(Rest, [psk_ke|Acc]);
  decode_psk_key_exchange_modes(<<?BYTE(?PSK_DHE_KE), Rest/binary>>, Acc) ->
      decode_psk_key_exchange_modes(Rest, [psk_dhe_ke|Acc]);
  %% Ignore unknown PskKeyExchangeModes
  decode_psk_key_exchange_modes(<<?BYTE(_), Rest/binary>>, Acc) ->
      decode_psk_key_exchange_modes(Rest, Acc).
  
  
  decode_psk_identities(Identities) ->
  