anchor.diff:      block_cipher(fun(Key, IV, T) ->
   			 crypto:des_cbc_encrypt(Key, IV, T)
   		 end, block_size(des_cbc), CipherState, Mac, Fragment);
  -cipher(?DES40, CipherState, Mac, Fragment) ->
  -    block_cipher(fun(Key, IV, T) ->
  -			 crypto:des_cbc_encrypt(Key, IV, T)
  -		 end, block_size(des_cbc), CipherState, Mac, Fragment);
  +%% cipher(?DES40, CipherState, Mac, Fragment) ->
  +%%     block_cipher(fun(Key, IV, T) ->
  +%% 			 crypto:des_cbc_encrypt(Key, IV, T)
  +%% 		 end, block_size(des_cbc), CipherState, Mac, Fragment);
   cipher(?'3DES', CipherState, Mac, Fragment) ->
       block_cipher(fun(<<K1:8/binary, K2:8/binary, K3:8/binary>>, IV, T) ->
   			 crypto:des3_cbc_encrypt(K1, K2, K3, IV, T)
  
positive.code: openssl_suite("RC4-MD5") -> 
      ?TLS_RSA_WITH_RC4_128_MD5;
  %% TODO: Do we want to support this?
  openssl_suite("EXP1024-RC4-MD5") ->
      ?TLS_RSA_EXPORT1024_WITH_RC4_56_MD5;
  openssl_suite("EXP1024-RC2-CBC-MD5") ->
      ?TLS_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5;
  openssl_suite("EXP1024-DES-CBC-SHA") ->
      ?TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA;
  openssl_suite("EXP1024-DHE-DSS-DES-CBC-SHA") ->
      ?TLS_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA;
  openssl_suite("EXP1024-RC4-SHA") ->
      ?TLS_RSA_EXPORT1024_WITH_RC4_56_SHA;
  openssl_suite("EXP1024-DHE-DSS-RC4-SHA") ->
      ?TLS_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA;
  openssl_suite("DHE-DSS-RC4-SHA") ->
      ?TLS_DHE_DSS_WITH_RC4_128_SHA;
  
  openssl_suite("EDH-RSA-DES-CBC-SHA") ->
      ?TLS_DHE_RSA_WITH_DES_CBC_SHA;
  openssl_suite("DES-CBC-SHA") ->
      ?TLS_RSA_WITH_DES_CBC_SHA;
  openssl_suite("EXP-EDH-RSA-DES-CBC-SHA") ->
      ?TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA;
  openssl_suite("EXP-EDH-DSS-DES-CBC-SHA") ->
      ?TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA;
  openssl_suite("EXP-DES-CBC-SHA") ->
      ?TLS_RSA_EXPORT_WITH_DES40_CBC_SHA;
  openssl_suite("EXP-RC2-CBC-MD5") ->
      ?TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5;
  openssl_suite("EXP-RC4-MD5") -> 
      ?TLS_RSA_EXPORT_WITH_RC4_40_MD5.
  
  openssl_suite_name(?TLS_DHE_RSA_WITH_AES_256_CBC_SHA) ->
      "DHE-RSA-AES256-SHA";
  
negative.code:     {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};
  
  %%% TSL V1.1 AES suites
  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_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) -> 
      {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};
  
  %% 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_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_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};
  
  %% 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) -> 
  %%     {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}) ->
  