anchor.diff:          _ ->
               {skip, "Missing AES_256_CCM crypto support"}
       end;
  +init_per_testcase(aes_256_gcm_sha384, Config) ->
  +    SupCiphers = proplists:get_value(ciphers, crypto:supports()),
  +    SupHashs = proplists:get_value(hashs, crypto:supports()),
  +    case (lists:member(aes_256_gcm, SupCiphers)) andalso
  +        (lists:member(sha384, SupHashs)) of
  +        true ->
  +            ct:timetrap(?DEFAULT_TIMEOUT),
  +            Config;
  +        _ ->
  +            {skip, "Missing AES_256_GCM crypto support"}
  +    end;
  +init_per_testcase(aes_128_gcm_sha256, Config) ->
  +    SupCiphers = proplists:get_value(ciphers, crypto:supports()),
  +    SupHashs = proplists:get_value(hashs, crypto:supports()),
  +    case lists:member(aes_128_gcm, SupCiphers) andalso
  +        (lists:member(sha256, SupHashs)) of
  +        true ->
  +            ct:timetrap(?DEFAULT_TIMEOUT),
  +            Config;
  +        _ ->
  +            {skip, "Missing AES_128_GCM crypto support"}
  +    end;
  +
  +init_per_testcase(chacha20_poly1305_sha256, Config) ->
  +    SupCiphers = proplists:get_value(ciphers, crypto:supports()),
  +    SupHashs = proplists:get_value(hashs, crypto:supports()),
  +    case (lists:member(chacha20_poly1305, SupCiphers)) andalso
  +        (lists:member(sha256, SupHashs)) of
  +        true ->
  +            ct:timetrap(?DEFAULT_TIMEOUT),
  +            Config;
  +        _ ->
  +            {skip, "Missing CHACHA20_POLY1305 crypto support"}
  +    end;
  +init_per_testcase(aes_128_ccm_sha256, Config) ->
  +    SupCiphers = proplists:get_value(ciphers, crypto:supports()),
  +    SupHashs = proplists:get_value(hashs, crypto:supports()),
  +    case (lists:member(aes_128_ccm, SupCiphers)) andalso
  +        (lists:member(sha256, SupHashs)) of
  +        true ->
  +            ct:timetrap(?DEFAULT_TIMEOUT),
  +            Config;
  +        _ ->
  +            {skip, "Missing AES_128_CCM crypto support"}
  +    end;
  +
   init_per_testcase(TestCase, Config) ->
       Cipher = ssl_test_lib:test_cipher(TestCase, Config),
       SupCiphers = proplists:get_value(ciphers, crypto:supports()),
  
positive.code:     [{client_type, erlang}, {server_type, openssl} | Config];    
  do_init_per_group(GroupName, Config) when GroupName == ecdh_anon;
                                         GroupName == ecdhe_rsa;
                                         GroupName == ecdhe_psk ->
      case proplists:get_bool(ecdh, proplists:get_value(public_keys, crypto:supports())) of
          true ->
              init_certs(GroupName, Config);
  
negative.code:                       ecdhe_rsa_aes_256_gcm,
                        ecdhe_rsa_chacha20_poly1305
                      ]},
       {ecdhe_1_3_rsa_cert, [], tls_1_3_cipher_suites()},
       {ecdhe_ecdsa, [],[ecdhe_ecdsa_rc4_128, 
                         ecdhe_ecdsa_3des_ede_cbc, 
                         ecdhe_ecdsa_aes_128_cbc,
  