anchor.diff:                         srp => SRP
                          %% renegotiation_info => RenegotiationInfo
                         }));
  -extensions(?'TLS_v1.3' = Version, server_hello) ->
  +extensions(?'TLS_v1.3' = Version, MsgType = server_hello) ->
       ?LET({
             KeyShare,
  -          %% PreSharedKeys,
  +          PreSharedKey,
             SupportedVersions
            },
            {
  -          oneof([key_share(server_hello), undefined]),
  -          %% oneof([pre_shared_keys(),  undefined]),
  +          oneof([key_share(MsgType), undefined]),
  +          oneof([pre_shared_key(MsgType),  undefined]),
             oneof([server_hello_selected_version()])
            },
            maps:filter(fun(_, undefined) ->
  
positive.code:            %% oneof([client_cert_type(), undefined]),
             %% oneof([server_cert_type(), undefined]),
             %% oneof([padding(), undefined]),
             oneof([key_share(client_hello), undefined]),
             %% oneof([pre_shared_key(), undefined]),
             oneof([psk_key_exchange_modes(), undefined]),
             %% oneof([early_data(), undefined]),
             %% oneof([cookie(), undefined]),
  
negative.code:     ?LET(KEModes, ke_modes(),
           #psk_key_exchange_modes{
              ke_modes = KEModes}).
  
  pre_shared_key(client_hello) ->
      ?LET(OfferedPsks, offered_psks(),
           #pre_shared_key_client_hello{
              offered_psks = OfferedPsks});
  pre_shared_key(server_hello) ->
      ?LET(SelectedIdentity, selected_identity(),
           #pre_shared_key_server_hello{
             selected_identity = SelectedIdentity}).
  
  selected_identity() ->
      rand:uniform(32).
  
  offered_psks() ->
      ?LET(Size, choose(1,5),
           #offered_psks{
              identities = psk_identities(Size),
              binders = psk_binders(Size)}).
  
  psk_identities(Size) ->
      psk_identities(Size, []).
  %%
  psk_identities(0, Acc) ->
      Acc;
  psk_identities(N, Acc) ->
      psk_identities(N - 1, [psk_identity()|Acc]).
  
  psk_identity() ->
      Len = rand:uniform(32),
      Identity = crypto:strong_rand_bytes(Len),
      Age = crypto:strong_rand_bytes(4),
      #psk_identity{
        identity = Identity,
        obfuscated_ticket_age = Age}.
  
  psk_binders(Size) ->
      psk_binders(Size, []).
  %%
  psk_binders(0, Acc) ->
      Acc;
  psk_binders(N, Acc) ->
      psk_binders(N - 1, [psk_binder()|Acc]).
  
  psk_binder() ->
      Len = rand:uniform(224) + 31,
      crypto:strong_rand_bytes(Len).
  