anchor.diff:      {dhe_rsa, des_cbc, sha, no_export};
   suite_definition(?TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA) ->
       {dhe_rsa, '3des_ede_cbc', sha, no_export}; 
  -suite_definition(?TLS_DH_anon_WITH_RC4_128_MD5) ->
  -    {dh_anon, rc4_128, md5, no_export};
  -suite_definition(?TLS_DH_anon_WITH_DES_CBC_SHA) ->
  -    {dh_anon, des40_cbc, sha, no_export};
  -suite_definition(?TLS_DH_anon_WITH_3DES_EDE_CBC_SHA) ->
  -    {dh_anon, '3des_ede_cbc', sha, no_export};
  +%% suite_definition(?TLS_DH_anon_WITH_RC4_128_MD5) ->
  +%%     {dh_anon, rc4_128, md5, no_export};
  +%% suite_definition(?TLS_DH_anon_WITH_DES_CBC_SHA) ->
  +%%     {dh_anon, des40_cbc, sha, no_export};
  +%% suite_definition(?TLS_DH_anon_WITH_3DES_EDE_CBC_SHA) ->
  +%%     {dh_anon, '3des_ede_cbc', sha, no_export};
   
   %%% TSL V1.1 AES suites
  -suite_definition(?TLS_RSA_WITH_AES_128_CBC_SHA) -> % ok
  +suite_definition(?TLS_RSA_WITH_AES_128_CBC_SHA) -> 
       {rsa, aes_128_cbc, sha, ignore};
  -suite_definition(?TLS_DH_DSS_WITH_AES_128_CBC_SHA) ->
  -    {dh_dss, aes_128_cbc, sha, ignore};
  -suite_definition(?TLS_DH_RSA_WITH_AES_128_CBC_SHA) ->
  -    {dh_rsa, aes_128_cbc, sha, ignore};
  +%% suite_definition(?TLS_DH_DSS_WITH_AES_128_CBC_SHA) ->
  +%%     {dh_dss, aes_128_cbc, sha, ignore};
  +%% suite_definition(?TLS_DH_RSA_WITH_AES_128_CBC_SHA) ->
  +%%     {dh_rsa, aes_128_cbc, sha, ignore};
   suite_definition(?TLS_DHE_DSS_WITH_AES_128_CBC_SHA) ->
       {dhe_dss, aes_128_cbc, sha, ignore};
   suite_definition(?TLS_DHE_RSA_WITH_AES_128_CBC_SHA) ->
       {dhe_rsa, aes_128_cbc, sha, ignore};
  -suite_definition(?TLS_DH_anon_WITH_AES_128_CBC_SHA) ->
  -    {dh_anon, aes_128_cbc, sha, ignore};
  -suite_definition(?TLS_RSA_WITH_AES_256_CBC_SHA) -> % ok
  +%% suite_definition(?TLS_DH_anon_WITH_AES_128_CBC_SHA) ->
  +%%     {dh_anon, aes_128_cbc, sha, ignore};
  +suite_definition(?TLS_RSA_WITH_AES_256_CBC_SHA) -> 
       {rsa, aes_256_cbc, sha, ignore};
  -suite_definition(?TLS_DH_DSS_WITH_AES_256_CBC_SHA) ->
  -    {dh_dss, aes_256_cbc, sha, ignore};
  -suite_definition(?TLS_DH_RSA_WITH_AES_256_CBC_SHA) ->
  -    {dh_rsa, aes_256_cbc, sha, ignore};
  +%% suite_definition(?TLS_DH_DSS_WITH_AES_256_CBC_SHA) ->
  +%%     {dh_dss, aes_256_cbc, sha, ignore};
  +%% suite_definition(?TLS_DH_RSA_WITH_AES_256_CBC_SHA) ->
  +%%     {dh_rsa, aes_256_cbc, sha, ignore};
   suite_definition(?TLS_DHE_DSS_WITH_AES_256_CBC_SHA) ->
       {dhe_dss, aes_256_cbc, sha, ignore};
   suite_definition(?TLS_DHE_RSA_WITH_AES_256_CBC_SHA) ->
  -    {dhe_rsa, aes_256_cbc, sha, ignore};
  -suite_definition(?TLS_DH_anon_WITH_AES_256_CBC_SHA) ->
  -    {dh_anon, aes_256_cbc, sha, ignore};
  +    {dhe_rsa, aes_256_cbc, sha, ignore}.
  +%% suite_definition(?TLS_DH_anon_WITH_AES_256_CBC_SHA) ->
  +%%     {dh_anon, aes_256_cbc, sha, ignore};
   
   %% TSL V1.1 KRB SUITES
  -suite_definition(?TLS_KRB5_WITH_DES_CBC_SHA) ->
  -    {krb5, des_cbc, sha, ignore};
  -suite_definition(?TLS_KRB5_WITH_3DES_EDE_CBC_SHA) ->
  -    {krb5, '3des_ede_cbc', sha, ignore};
  -suite_definition(?TLS_KRB5_WITH_RC4_128_SHA) ->
  -    {krb5, rc4_128, sha, ignore};
  +%% suite_definition(?TLS_KRB5_WITH_DES_CBC_SHA) ->
  +%%     {krb5, des_cbc, sha, ignore};
  +%% suite_definition(?TLS_KRB5_WITH_3DES_EDE_CBC_SHA) ->
  +%%     {krb5, '3des_ede_cbc', sha, ignore};
  +%% suite_definition(?TLS_KRB5_WITH_RC4_128_SHA) ->
  +%%     {krb5, rc4_128, sha, ignore};
   %% suite_definition(?TLS_KRB5_WITH_IDEA_CBC_SHA) ->
   %%     {krb5, idea_cbc, sha, ignore};
  -suite_definition(?TLS_KRB5_WITH_DES_CBC_MD5) ->
  -    {krb5, des_cbc, md5, ignore};
  -suite_definition(?TLS_KRB5_WITH_3DES_EDE_CBC_MD5) ->
  -    {krb5, '3des_ede_cbc', md5, ignore};
  -suite_definition(?TLS_KRB5_WITH_RC4_128_MD5) ->
  -    {krb5, rc4_128, md5, ignore};
  +%% suite_definition(?TLS_KRB5_WITH_DES_CBC_MD5) ->
  +%%     {krb5, des_cbc, md5, ignore};
  +%% suite_definition(?TLS_KRB5_WITH_3DES_EDE_CBC_MD5) ->
  +%%     {krb5, '3des_ede_cbc', md5, ignore};
  +%% suite_definition(?TLS_KRB5_WITH_RC4_128_MD5) ->
  +%%     {krb5, rc4_128, md5, ignore};
   %% suite_definition(?TLS_KRB5_WITH_IDEA_CBC_MD5) ->
   %%     {krb5, idea_cbc, md5, ignore};
   
  -suite_definition(?TLS_RSA_EXPORT1024_WITH_RC4_56_MD5) ->
  -    {rsa, rc4_56, md5, export};
  -suite_definition(?TLS_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5) ->
  -    {rsa, rc2_cbc_56, md5, export};
  -suite_definition(?TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA) ->
  -    {rsa, des_cbc, sha, export};
  -suite_definition(?TLS_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA) ->
  -    {dhe_dss, des_cbc, sha, export};
  -suite_definition(?TLS_RSA_EXPORT1024_WITH_RC4_56_SHA) ->
  -    {rsa, rc4_56, sha, export};
  -suite_definition(?TLS_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA) ->
  -    {dhe_dss, rc4_56, sha, export};
  -suite_definition(?TLS_DHE_DSS_WITH_RC4_128_SHA) ->
  -    {dhe_dss, rc4_128, sha, export};
  +%% suite_definition(?TLS_RSA_EXPORT1024_WITH_RC4_56_MD5) ->
  +%%     {rsa, rc4_56, md5, export};
  +%% suite_definition(?TLS_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5) ->
  +%%     {rsa, rc2_cbc_56, md5, export};
  +%% suite_definition(?TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA) ->
  +%%     {rsa, des_cbc, sha, export};
  +%% suite_definition(?TLS_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA) ->
  +%%     {dhe_dss, des_cbc, sha, export};
  +%% suite_definition(?TLS_RSA_EXPORT1024_WITH_RC4_56_SHA) ->
  +%%     {rsa, rc4_56, sha, export};
  +%% suite_definition(?TLS_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA) ->
  +%%     {dhe_dss, rc4_56, sha, export};
  +%% suite_definition(?TLS_DHE_DSS_WITH_RC4_128_SHA) ->
  +%%     {dhe_dss, rc4_128, sha, export};
   
   %% Export suites  TLS 1.0 OR SSLv3-only servers.  
  -suite_definition(?TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA) ->
  -    {krb5_export, des40_cbc, sha, export};
  -suite_definition(?TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA) ->
  -    {krb5_export, rc2_cbc_40, sha, export};
  -suite_definition(?TLS_KRB5_EXPORT_WITH_RC4_40_SHA) ->
  -    {krb5_export, des40_cbc, sha, export};
  -suite_definition(?TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5) ->
  -    {krb5_export, des40_cbc, md5, export};
  -suite_definition(?TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5) ->
  -    {krb5_export, rc2_cbc_40, md5, export};
  -suite_definition(?TLS_KRB5_EXPORT_WITH_RC4_40_MD5) ->
  -    {krb5_export, rc2_cbc_40, md5, export};
  -suite_definition(?TLS_RSA_EXPORT_WITH_RC4_40_MD5) -> % ok
  -    {rsa, rc4_40, md5, export};	
  -suite_definition(?TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5) -> % ok
  -    {rsa, rc2_cbc_40, md5, export};
  -suite_definition(?TLS_RSA_EXPORT_WITH_DES40_CBC_SHA) ->
  -    {rsa, des40_cbc, sha, export};
  -suite_definition(?TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA) ->
  -    {dh_dss, des40_cbc, sha, export};
  -suite_definition(?TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA) ->
  -    {dh_rsa, des40_cbc, sha, export};
  -suite_definition(?TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA) ->
  -    {dhe_dss, des40_cbc, sha, export};
  -suite_definition(?TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA) ->
  -    {dhe_rsa, des40_cbc, sha, export};
  -suite_definition(?TLS_DH_anon_EXPORT_WITH_RC4_40_MD5) ->
  -    {dh_anon, rc4_40, md5, export};
  -suite_definition(?TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA) ->
  -    {dh_anon, des40_cbc, sha, export}.
  +%% suite_definition(?TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA) ->
  +%%     {krb5_export, des40_cbc, sha, export};
  +%% suite_definition(?TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA) ->
  +%%     {krb5_export, rc2_cbc_40, sha, export};
  +%% suite_definition(?TLS_KRB5_EXPORT_WITH_RC4_40_SHA) ->
  +%%     {krb5_export, des40_cbc, sha, export};
  +%% suite_definition(?TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5) ->
  +%%     {krb5_export, des40_cbc, md5, export};
  +%% suite_definition(?TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5) ->
  +%%     {krb5_export, rc2_cbc_40, md5, export};
  +%% suite_definition(?TLS_KRB5_EXPORT_WITH_RC4_40_MD5) ->
  +%%     {krb5_export, rc2_cbc_40, md5, export};
  +%% suite_definition(?TLS_RSA_EXPORT_WITH_RC4_40_MD5) -> 
  +%%     {rsa, rc4_40, md5, export};	
  +%% suite_definition(?TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5) -> 
  +%%     {rsa, rc2_cbc_40, md5, export};
  +%% suite_definition(?TLS_RSA_EXPORT_WITH_DES40_CBC_SHA) ->
  +%%     {rsa, des40_cbc, sha, export};
  +%% suite_definition(?TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA) ->
  +%%     {dh_dss, des40_cbc, sha, export};
  +%% suite_definition(?TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA) ->
  +%%     {dh_rsa, des40_cbc, sha, export};
  +%% suite_definition(?TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA) ->
  +%%     {dhe_dss, des40_cbc, sha, export};
  +%% suite_definition(?TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA) ->
  +%%     {dhe_rsa, des40_cbc, sha, export};
  +%% suite_definition(?TLS_DH_anon_EXPORT_WITH_RC4_40_MD5) ->
  +%%     {dh_anon, rc4_40, md5, export};
  +%% suite_definition(?TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA) ->
  +%%     {dh_anon, des40_cbc, sha, export}.
   
   %% TLS v1.1 suites
   suite({rsa, null, md5, ignore}) ->
  
positive.code:     ?TLS_DHE_RSA_WITH_DES_CBC_SHA;
  suite({dhe_rsa, '3des_ede_cbc', sha, no_export}) ->
      ?TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA; 
  suite({dh_anon, rc4_128, md5, no_export}) ->
      ?TLS_DH_anon_WITH_RC4_128_MD5;
  suite({dh_anon, des40_cbc, sha, no_export}) ->
      ?TLS_DH_anon_WITH_DES_CBC_SHA;
  suite({dh_anon, '3des_ede_cbc', sha, no_export}) ->
      ?TLS_DH_anon_WITH_3DES_EDE_CBC_SHA;
  
  %%% TSL V1.1 AES suites
  suite({rsa, aes_128_cbc, sha, ignore}) ->
      ?TLS_RSA_WITH_AES_128_CBC_SHA; 
  suite({dh_dss, aes_128_cbc, sha, ignore}) ->
      ?TLS_DH_DSS_WITH_AES_128_CBC_SHA;
  suite({dh_rsa, aes_128_cbc, sha, ignore}) ->
       ?TLS_DH_RSA_WITH_AES_128_CBC_SHA;
  suite({dhe_dss, aes_128_cbc, sha, ignore}) ->
      ?TLS_DHE_DSS_WITH_AES_128_CBC_SHA; 
  suite({dhe_rsa, aes_128_cbc, sha, ignore}) ->
      ?TLS_DHE_RSA_WITH_AES_128_CBC_SHA;
  suite({dh_anon, aes_128_cbc, sha, ignore}) ->
      ?TLS_DH_anon_WITH_AES_128_CBC_SHA;
  suite({rsa, aes_256_cbc, sha, ignore}) ->
      ?TLS_RSA_WITH_AES_256_CBC_SHA;
  suite({dh_dss, aes_256_cbc, sha, ignore}) ->
      ?TLS_DH_DSS_WITH_AES_256_CBC_SHA;
  suite({dh_rsa, aes_256_cbc, sha, ignore}) ->
      ?TLS_DH_RSA_WITH_AES_256_CBC_SHA;
  suite({dhe_dss, aes_256_cbc, sha, ignore}) ->
      ?TLS_DHE_DSS_WITH_AES_256_CBC_SHA;
  suite({dhe_rsa, aes_256_cbc, sha, ignore}) ->
      ?TLS_DHE_RSA_WITH_AES_256_CBC_SHA;
  suite({dh_anon, aes_256_cbc, sha, ignore}) ->
      ?TLS_DH_anon_WITH_AES_256_CBC_SHA;
  
  %% TSL V1.1 KRB SUITES
  suite({krb5, des_cbc, sha, ignore}) ->
      ?TLS_KRB5_WITH_DES_CBC_SHA;
  suite({krb5_cbc, '3des_ede_cbc', sha, ignore}) ->
      ?TLS_KRB5_WITH_3DES_EDE_CBC_SHA;
  suite({krb5, rc4_128, sha, ignore}) ->
       ?TLS_KRB5_WITH_RC4_128_SHA;
  %% suite({krb5_cbc, idea_cbc, sha, ignore}) ->
  %%     ?TLS_KRB5_WITH_IDEA_CBC_SHA;
  suite({krb5_cbc, md5, ignore}) ->
      ?TLS_KRB5_WITH_DES_CBC_MD5;
  suite({krb5_ede_cbc, des_cbc, md5, ignore}) ->
      ?TLS_KRB5_WITH_3DES_EDE_CBC_MD5;
  suite({krb5_128, rc4_128, md5, ignore}) ->
      ?TLS_KRB5_WITH_RC4_128_MD5;
  %% suite({krb5, idea_cbc, md5, ignore}) ->
  %%     ?TLS_KRB5_WITH_IDEA_CBC_MD5;
  
  %% Export suites  TLS 1.0 OR SSLv3-only servers.  
  suite({rsa, rc4_40, md5, export}) ->	
      ?TLS_RSA_EXPORT_WITH_RC4_40_MD5;
  suite({rsa, rc2_cbc_40, md5, export}) ->
      ?TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5;
  suite({rsa, des40_cbc, sha, export}) ->
      ?TLS_RSA_EXPORT_WITH_DES40_CBC_SHA;
  suite({rsa, rc4_56, md5, export}) ->
      ?TLS_RSA_EXPORT1024_WITH_RC4_56_MD5;
  suite({rsa, rc2_cbc_56, md5, export}) -> 
      ?TLS_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5;
  suite({rsa, des_cbc, sha, export}) ->
      ?TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA;
  suite({dhe_dss, des_cbc, sha, export}) ->
      ?TLS_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA;
  suite({rsa, rc4_56, sha, export}) ->
      ?TLS_RSA_EXPORT1024_WITH_RC4_56_SHA;
  suite({dhe_dss, rc4_56, sha, export}) ->
      ?TLS_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA;
  suite({dhe_dss, rc4_128, sha, export}) ->
      ?TLS_DHE_DSS_WITH_RC4_128_SHA;
  suite({krb5_export, des40_cbc, sha, export}) ->
      ?TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA;
  suite({krb5_export, rc2_cbc_40, sha, export}) ->
      ?TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA;
  suite({krb5_export, rc4_cbc_40, sha, export}) ->
      ?TLS_KRB5_EXPORT_WITH_RC4_40_SHA;
  suite({krb5_export, des40_cbc, md5, export}) ->
       ?TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5;
  suite({krb5_export, rc2_cbc_40, md5, export}) ->
      ?TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5;
  suite({krb5_export, rc4_cbc_40, md5, export}) ->
       ?TLS_KRB5_EXPORT_WITH_RC4_40_MD5;
  suite({rsa_export, rc4_cbc_40, md5, export}) ->
      ?TLS_RSA_EXPORT_WITH_RC4_40_MD5;	
  suite({rsa_export, rc2_cbc_40, md5, export}) ->
      ?TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5;
  suite({rsa_export, des40_cbc, sha, export}) ->
      ?TLS_RSA_EXPORT_WITH_DES40_CBC_SHA;
  suite({dh_dss_export, des40_cbc, sha, export}) ->
      ?TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA;
  suite({dh_rsa_export, des40_cbc, sha, export}) ->
      ?TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA;
  suite({dhe_dss_export, des40_cbc, sha, export}) ->
      ?TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA;
  suite({dhe_rsa_export, des40_cbc, sha, export}) ->
      ?TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA;
  suite({dh_anon_export, rc4_40, md5, export}) ->
      ?TLS_DH_anon_EXPORT_WITH_RC4_40_MD5;
  suite({dh_anon_export, des40_cbc, sha, export}) ->
      ?TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA.
  
  
  %% translate constants <-> openssl-strings
  
negative.code: %%
  %% %CopyrightBegin%
  %%
  %% Copyright Ericsson AB 2007-2010. All Rights Reserved.
  %%
  %% The contents of this file are subject to the Erlang Public License,
  %% Version 1.1, (the "License"); you may not use this file except in
  %% compliance with the License. You should have received a copy of the
  %% Erlang Public License along with this software. If not, it can be
  %% retrieved online at http://www.erlang.org/.
  %%
  %% Software distributed under the License is distributed on an "AS IS"
  %% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
  %% the License for the specific language governing rights and limitations
  %% under the License.
  %%
  %% %CopyrightEnd%
  %%
  
  