Home | History | Annotate | Download | only in jsse
      1 /*
      2  *  Licensed to the Apache Software Foundation (ASF) under one or more
      3  *  contributor license agreements.  See the NOTICE file distributed with
      4  *  this work for additional information regarding copyright ownership.
      5  *  The ASF licenses this file to You under the Apache License, Version 2.0
      6  *  (the "License"); you may not use this file except in compliance with
      7  *  the License.  You may obtain a copy of the License at
      8  *
      9  *     http://www.apache.org/licenses/LICENSE-2.0
     10  *
     11  *  Unless required by applicable law or agreed to in writing, software
     12  *  distributed under the License is distributed on an "AS IS" BASIS,
     13  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14  *  See the License for the specific language governing permissions and
     15  *  limitations under the License.
     16  */
     17 
     18 package org.apache.harmony.xnet.provider.jsse;
     19 
     20 import junit.framework.TestCase;
     21 
     22 /**
     23  * Tests for <code>CipherSuite</code> constructor and methods
     24  *
     25  */
     26 public class CipherSuiteTest extends TestCase {
     27 
     28     public void testEquals() {
     29         CipherSuite c1 = new CipherSuite("CipherSuite1", false, 0, "", "",
     30                 new byte[] { 10, 10 });
     31         CipherSuite c2 = new CipherSuite("CipherSuite2", false, 0, "", "",
     32                 new byte[] { 10, 10 });
     33         CipherSuite c3 = new CipherSuite("CipherSuite3", false, 0, "", "",
     34                 new byte[] { 10, 11 });
     35         CipherSuite c4 = new CipherSuite("CipherSuite4", false, 0, "", "",
     36                 new byte[] { 11, 10 });
     37         if (!c1.equals(c2) || c1.equals(c3) || c4.equals(c1) || c4.equals(c3)) {
     38             fail("testEquals failed");
     39         }
     40     }
     41 
     42     public void testToString() {
     43         CipherSuite c1 = new CipherSuite("CipherSuite1", false, 0, "", "",
     44                 new byte[] { 10, 10 });
     45         assertEquals("testToString failed", "CipherSuite1: 10 10",
     46                 c1.toString());
     47     }
     48 
     49     public void testGetByName() {
     50         CipherSuite[] suites = CipherSuite.getSupported();
     51         for (int i = 0; i < suites.length; i++) {
     52             assertEquals("incorrect cipher suite returned", suites[i],
     53                     CipherSuite.getByName(suites[i].getName()));
     54         }
     55         assertNull("non null cipher suite returned for name: SomeName",
     56                 CipherSuite.getByName("SomeName"));
     57     }
     58 
     59     /*
     60      * Class under test for CipherSuite getByCode(byte, byte)
     61      */
     62     public void testGetByCodebytebyte() {
     63         CipherSuite[] suites = CipherSuite.getSupported();
     64         for (int i = 0; i < suites.length; i++) {
     65             byte[] code = suites[i].toBytes();
     66             assertEquals("incorrect cipher suite returned", suites[i],
     67                     CipherSuite.getByCode(code[0], code[1]));
     68         }
     69         assertEquals("incorrect cipher suite returned for code: 10 10",
     70                 new CipherSuite("UNKNOUN_10_10", false, 0, "", "", new byte[] {
     71                         10, 10 }), CipherSuite.getByCode((byte) 10, (byte) 10));
     72     }
     73 
     74     /*
     75      * Class under test for CipherSuite getByCode(byte, byte, byte)
     76      */
     77     public void testGetByCodebytebytebyte() {
     78         CipherSuite[] suites = CipherSuite.getSupported();
     79         for (int i = 0; i < suites.length; i++) {
     80             byte[] code = suites[i].toBytes();
     81             assertEquals("incorrect cipher suite returned", suites[i],
     82                     CipherSuite.getByCode((byte) 0, (byte) 0, code[1]));
     83         }
     84         assertEquals("incorrect cipher suite returned for code: 10 10 10",
     85                 new CipherSuite("UNKNOUN_10_10_10", false, 0, "", "",
     86                         new byte[] { 10, 10, 10 }),
     87                 CipherSuite.getByCode((byte) 10, (byte) 10, (byte) 10));
     88     }
     89 
     90     public void testIsAnonymous() {
     91         CipherSuite c1 = new CipherSuite("CipherSuite1", false,
     92                 CipherSuite.KeyExchange_DH_anon, "", "", new byte[] { 10, 10 });
     93         CipherSuite c2 = new CipherSuite("CipherSuite2", false,
     94                 CipherSuite.KeyExchange_DH_anon_EXPORT, "", "", new byte[] { 9,
     95                         10 });
     96         CipherSuite c3 = new CipherSuite("CipherSuite3", false,
     97                 CipherSuite.KeyExchange_DH_DSS, "", "", new byte[] { 10, 11 });
     98         CipherSuite c4 = new CipherSuite("CipherSuite4", false,
     99                 CipherSuite.KeyExchange_DH_RSA, "", "", new byte[] { 11, 10 });
    100         assertTrue(c1.isAnonymous());
    101         assertTrue(c1.isAnonymous());
    102         assertFalse(c3.isAnonymous());
    103         assertFalse(c4.isAnonymous());
    104     }
    105 
    106     public void testGetSupported() {
    107         CipherSuite[] suites = CipherSuite.getSupported();
    108         for (int i = 0; i < suites.length; i++) {
    109             assertTrue(suites[i].supported);
    110         }
    111     }
    112 
    113     public void testGetSupportedCipherSuiteNames() {
    114         CipherSuite[] suites = CipherSuite.getSupported();
    115         String[] names = CipherSuite.getSupportedCipherSuiteNames();
    116         for (int i = 0; i < suites.length; i++) {
    117             assertEquals(suites[i].getName(), names[i]);
    118         }
    119     }
    120 
    121     public void testGetBulkEncryptionAlgorithm() {
    122         assertNull(CipherSuite.TLS_NULL_WITH_NULL_NULL
    123                 .getBulkEncryptionAlgorithm());
    124         assertNull(CipherSuite.TLS_RSA_WITH_NULL_MD5
    125                 .getBulkEncryptionAlgorithm());
    126         assertNull(CipherSuite.TLS_RSA_WITH_NULL_SHA
    127                 .getBulkEncryptionAlgorithm());
    128         assertEquals("RC4",
    129                 CipherSuite.TLS_RSA_EXPORT_WITH_RC4_40_MD5
    130                 .getBulkEncryptionAlgorithm());
    131         assertEquals("RC4",
    132                 CipherSuite.TLS_RSA_WITH_RC4_128_MD5
    133                 .getBulkEncryptionAlgorithm());
    134         assertEquals("RC4",
    135                 CipherSuite.TLS_RSA_WITH_RC4_128_SHA
    136                 .getBulkEncryptionAlgorithm());
    137         assertEquals("RC2/CBC/NoPadding",
    138                 CipherSuite.TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5
    139                 .getBulkEncryptionAlgorithm());
    140         assertEquals("IDEA/CBC/NoPadding",
    141                 CipherSuite.TLS_RSA_WITH_IDEA_CBC_SHA
    142                 .getBulkEncryptionAlgorithm());
    143         assertEquals("DES/CBC/NoPadding",
    144                 CipherSuite.TLS_RSA_EXPORT_WITH_DES40_CBC_SHA
    145                 .getBulkEncryptionAlgorithm());
    146         assertEquals("DES/CBC/NoPadding",
    147                 CipherSuite.TLS_RSA_WITH_DES_CBC_SHA
    148                 .getBulkEncryptionAlgorithm());
    149         assertEquals("DESede/CBC/NoPadding",
    150                 CipherSuite.TLS_RSA_WITH_3DES_EDE_CBC_SHA
    151                 .getBulkEncryptionAlgorithm());
    152         assertEquals("DES/CBC/NoPadding",
    153                 CipherSuite.TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA
    154                 .getBulkEncryptionAlgorithm());
    155         assertEquals("DES/CBC/NoPadding",
    156                 CipherSuite.TLS_DH_DSS_WITH_DES_CBC_SHA
    157                 .getBulkEncryptionAlgorithm());
    158         assertEquals("DESede/CBC/NoPadding",
    159                 CipherSuite.TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA
    160                 .getBulkEncryptionAlgorithm());
    161         assertEquals("DES/CBC/NoPadding",
    162                 CipherSuite.TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA
    163                 .getBulkEncryptionAlgorithm());
    164         assertEquals("DES/CBC/NoPadding",
    165                 CipherSuite.TLS_DH_RSA_WITH_DES_CBC_SHA
    166                 .getBulkEncryptionAlgorithm());
    167         assertEquals("DESede/CBC/NoPadding",
    168                 CipherSuite.TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA
    169                 .getBulkEncryptionAlgorithm());
    170         assertEquals("DES/CBC/NoPadding",
    171                 CipherSuite.TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA
    172                 .getBulkEncryptionAlgorithm());
    173         assertEquals("DES/CBC/NoPadding",
    174                 CipherSuite.TLS_DHE_DSS_WITH_DES_CBC_SHA
    175                 .getBulkEncryptionAlgorithm());
    176         assertEquals("DESede/CBC/NoPadding",
    177                 CipherSuite.TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA
    178                 .getBulkEncryptionAlgorithm());
    179         assertEquals("DES/CBC/NoPadding",
    180                 CipherSuite.TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA
    181                 .getBulkEncryptionAlgorithm());
    182         assertEquals("DES/CBC/NoPadding",
    183                 CipherSuite.TLS_DHE_RSA_WITH_DES_CBC_SHA
    184                 .getBulkEncryptionAlgorithm());
    185         assertEquals("DESede/CBC/NoPadding",
    186                 CipherSuite.TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
    187                 .getBulkEncryptionAlgorithm());
    188         assertEquals("RC4",
    189                 CipherSuite.TLS_DH_anon_EXPORT_WITH_RC4_40_MD5
    190                 .getBulkEncryptionAlgorithm());
    191         assertEquals("RC4",
    192                 CipherSuite.TLS_DH_anon_WITH_RC4_128_MD5
    193                 .getBulkEncryptionAlgorithm());
    194         assertEquals("DES/CBC/NoPadding",
    195                 CipherSuite.TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA
    196                 .getBulkEncryptionAlgorithm());
    197         assertEquals("DES/CBC/NoPadding",
    198                 CipherSuite.TLS_DH_anon_WITH_DES_CBC_SHA
    199                 .getBulkEncryptionAlgorithm());
    200         assertEquals("DESede/CBC/NoPadding",
    201                 CipherSuite.TLS_DH_anon_WITH_3DES_EDE_CBC_SHA
    202                 .getBulkEncryptionAlgorithm());
    203     }
    204 
    205     public void testGetBlockSize() {
    206         assertEquals(0,
    207                 CipherSuite.TLS_NULL_WITH_NULL_NULL
    208                 .getBlockSize());
    209         assertEquals(0,
    210                 CipherSuite.TLS_RSA_WITH_NULL_MD5
    211                 .getBlockSize());
    212         assertEquals(0,
    213                 CipherSuite.TLS_RSA_WITH_NULL_SHA
    214                 .getBlockSize());
    215         assertEquals(0,
    216                 CipherSuite.TLS_RSA_EXPORT_WITH_RC4_40_MD5
    217                 .getBlockSize());
    218         assertEquals(0,
    219                 CipherSuite.TLS_RSA_WITH_RC4_128_MD5
    220                 .getBlockSize());
    221         assertEquals(0,
    222                 CipherSuite.TLS_RSA_WITH_RC4_128_SHA
    223                 .getBlockSize());
    224         assertEquals(8,
    225                 CipherSuite.TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5
    226                 .getBlockSize());
    227         assertEquals(8,
    228                 CipherSuite.TLS_RSA_WITH_IDEA_CBC_SHA
    229                 .getBlockSize());
    230         assertEquals(8,
    231                 CipherSuite.TLS_RSA_EXPORT_WITH_DES40_CBC_SHA
    232                 .getBlockSize());
    233         assertEquals(8,
    234                 CipherSuite.TLS_RSA_WITH_DES_CBC_SHA
    235                 .getBlockSize());
    236         assertEquals(8,
    237                 CipherSuite.TLS_RSA_WITH_3DES_EDE_CBC_SHA
    238                 .getBlockSize());
    239         assertEquals(8,
    240                 CipherSuite.TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA
    241                 .getBlockSize());
    242         assertEquals(8,
    243                 CipherSuite.TLS_DH_DSS_WITH_DES_CBC_SHA
    244                 .getBlockSize());
    245         assertEquals(8,
    246                 CipherSuite.TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA
    247                 .getBlockSize());
    248         assertEquals(8,
    249                 CipherSuite.TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA
    250                 .getBlockSize());
    251         assertEquals(8,
    252                 CipherSuite.TLS_DH_RSA_WITH_DES_CBC_SHA
    253                 .getBlockSize());
    254         assertEquals(8,
    255                 CipherSuite.TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA
    256                 .getBlockSize());
    257         assertEquals(8,
    258                 CipherSuite.TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA
    259                 .getBlockSize());
    260         assertEquals(8,
    261                 CipherSuite.TLS_DHE_DSS_WITH_DES_CBC_SHA
    262                 .getBlockSize());
    263         assertEquals(8,
    264                 CipherSuite.TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA
    265                 .getBlockSize());
    266         assertEquals(8,
    267                 CipherSuite.TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA
    268                 .getBlockSize());
    269         assertEquals(8,
    270                 CipherSuite.TLS_DHE_RSA_WITH_DES_CBC_SHA
    271                 .getBlockSize());
    272         assertEquals(8,
    273                 CipherSuite.TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
    274                 .getBlockSize());
    275         assertEquals(0,
    276                 CipherSuite.TLS_DH_anon_EXPORT_WITH_RC4_40_MD5
    277                 .getBlockSize());
    278         assertEquals(0,
    279                 CipherSuite.TLS_DH_anon_WITH_RC4_128_MD5
    280                 .getBlockSize());
    281         assertEquals(8,
    282                 CipherSuite.TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA
    283                 .getBlockSize());
    284         assertEquals(8,
    285                 CipherSuite.TLS_DH_anon_WITH_DES_CBC_SHA
    286                 .getBlockSize());
    287         assertEquals(8,
    288                 CipherSuite.TLS_DH_anon_WITH_3DES_EDE_CBC_SHA
    289                 .getBlockSize());
    290     }
    291 
    292     public void testGetHmacName() {
    293         assertNull(CipherSuite.TLS_NULL_WITH_NULL_NULL
    294                 .getHmacName());
    295         assertEquals("HmacMD5",
    296                 CipherSuite.TLS_RSA_WITH_NULL_MD5
    297                 .getHmacName());
    298         assertEquals("HmacSHA1",
    299                 CipherSuite.TLS_RSA_WITH_NULL_SHA
    300                 .getHmacName());
    301         assertEquals("HmacMD5",
    302                 CipherSuite.TLS_RSA_EXPORT_WITH_RC4_40_MD5
    303                 .getHmacName());
    304         assertEquals("HmacMD5",
    305                 CipherSuite.TLS_RSA_WITH_RC4_128_MD5
    306                 .getHmacName());
    307         assertEquals("HmacSHA1",
    308                 CipherSuite.TLS_RSA_WITH_RC4_128_SHA
    309                 .getHmacName());
    310         assertEquals("HmacMD5",
    311                 CipherSuite.TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5
    312                 .getHmacName());
    313         assertEquals("HmacSHA1",
    314                 CipherSuite.TLS_RSA_WITH_IDEA_CBC_SHA
    315                 .getHmacName());
    316         assertEquals("HmacSHA1",
    317                 CipherSuite.TLS_RSA_EXPORT_WITH_DES40_CBC_SHA
    318                 .getHmacName());
    319         assertEquals("HmacSHA1",
    320                 CipherSuite.TLS_RSA_WITH_DES_CBC_SHA
    321                 .getHmacName());
    322         assertEquals("HmacSHA1",
    323                 CipherSuite.TLS_RSA_WITH_3DES_EDE_CBC_SHA
    324                 .getHmacName());
    325         assertEquals("HmacSHA1",
    326                 CipherSuite.TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA
    327                 .getHmacName());
    328         assertEquals("HmacSHA1",
    329                 CipherSuite.TLS_DH_DSS_WITH_DES_CBC_SHA
    330                 .getHmacName());
    331         assertEquals("HmacSHA1",
    332                 CipherSuite.TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA
    333                 .getHmacName());
    334         assertEquals("HmacSHA1",
    335                 CipherSuite.TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA
    336                 .getHmacName());
    337         assertEquals("HmacSHA1",
    338                 CipherSuite.TLS_DH_RSA_WITH_DES_CBC_SHA
    339                 .getHmacName());
    340         assertEquals("HmacSHA1",
    341                 CipherSuite.TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA
    342                 .getHmacName());
    343         assertEquals("HmacSHA1",
    344                 CipherSuite.TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA
    345                 .getHmacName());
    346         assertEquals("HmacSHA1",
    347                 CipherSuite.TLS_DHE_DSS_WITH_DES_CBC_SHA
    348                 .getHmacName());
    349         assertEquals("HmacSHA1",
    350                 CipherSuite.TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA
    351                 .getHmacName());
    352         assertEquals("HmacSHA1",
    353                 CipherSuite.TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA
    354                 .getHmacName());
    355         assertEquals("HmacSHA1",
    356                 CipherSuite.TLS_DHE_RSA_WITH_DES_CBC_SHA
    357                 .getHmacName());
    358         assertEquals("HmacSHA1",
    359                 CipherSuite.TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
    360                 .getHmacName());
    361         assertEquals("HmacMD5",
    362                 CipherSuite.TLS_DH_anon_EXPORT_WITH_RC4_40_MD5
    363                 .getHmacName());
    364         assertEquals("HmacMD5",
    365                 CipherSuite.TLS_DH_anon_WITH_RC4_128_MD5
    366                 .getHmacName());
    367         assertEquals("HmacSHA1",
    368                 CipherSuite.TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA
    369                 .getHmacName());
    370         assertEquals("HmacSHA1",
    371                 CipherSuite.TLS_DH_anon_WITH_DES_CBC_SHA
    372                 .getHmacName());
    373         assertEquals("HmacSHA1",
    374                 CipherSuite.TLS_DH_anon_WITH_3DES_EDE_CBC_SHA
    375                 .getHmacName());
    376     }
    377 
    378     public void testGetHashName() {
    379         assertNull(CipherSuite.TLS_NULL_WITH_NULL_NULL
    380                 .getHashName());
    381         assertEquals("MD5",
    382                 CipherSuite.TLS_RSA_WITH_NULL_MD5
    383                 .getHashName());
    384         assertEquals("SHA-1",
    385                 CipherSuite.TLS_RSA_WITH_NULL_SHA
    386                 .getHashName());
    387         assertEquals("MD5",
    388                 CipherSuite.TLS_RSA_EXPORT_WITH_RC4_40_MD5
    389                 .getHashName());
    390         assertEquals("MD5",
    391                 CipherSuite.TLS_RSA_WITH_RC4_128_MD5
    392                 .getHashName());
    393         assertEquals("SHA-1",
    394                 CipherSuite.TLS_RSA_WITH_RC4_128_SHA
    395                 .getHashName());
    396         assertEquals("MD5",
    397                 CipherSuite.TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5
    398                 .getHashName());
    399         assertEquals("SHA-1",
    400                 CipherSuite.TLS_RSA_WITH_IDEA_CBC_SHA
    401                 .getHashName());
    402         assertEquals("SHA-1",
    403                 CipherSuite.TLS_RSA_EXPORT_WITH_DES40_CBC_SHA
    404                 .getHashName());
    405         assertEquals("SHA-1",
    406                 CipherSuite.TLS_RSA_WITH_DES_CBC_SHA
    407                 .getHashName());
    408         assertEquals("SHA-1",
    409                 CipherSuite.TLS_RSA_WITH_3DES_EDE_CBC_SHA
    410                 .getHashName());
    411         assertEquals("SHA-1",
    412                 CipherSuite.TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA
    413                 .getHashName());
    414         assertEquals("SHA-1",
    415                 CipherSuite.TLS_DH_DSS_WITH_DES_CBC_SHA
    416                 .getHashName());
    417         assertEquals("SHA-1",
    418                 CipherSuite.TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA
    419                 .getHashName());
    420         assertEquals("SHA-1",
    421                 CipherSuite.TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA
    422                 .getHashName());
    423         assertEquals("SHA-1",
    424                 CipherSuite.TLS_DH_RSA_WITH_DES_CBC_SHA
    425                 .getHashName());
    426         assertEquals("SHA-1",
    427                 CipherSuite.TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA
    428                 .getHashName());
    429         assertEquals("SHA-1",
    430                 CipherSuite.TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA
    431                 .getHashName());
    432         assertEquals("SHA-1",
    433                 CipherSuite.TLS_DHE_DSS_WITH_DES_CBC_SHA
    434                 .getHashName());
    435         assertEquals("SHA-1",
    436                 CipherSuite.TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA
    437                 .getHashName());
    438         assertEquals("SHA-1",
    439                 CipherSuite.TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA
    440                 .getHashName());
    441         assertEquals("SHA-1",
    442                 CipherSuite.TLS_DHE_RSA_WITH_DES_CBC_SHA
    443                 .getHashName());
    444         assertEquals("SHA-1",
    445                 CipherSuite.TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
    446                 .getHashName());
    447         assertEquals("MD5",
    448                 CipherSuite.TLS_DH_anon_EXPORT_WITH_RC4_40_MD5
    449                 .getHashName());
    450         assertEquals("MD5",
    451                 CipherSuite.TLS_DH_anon_WITH_RC4_128_MD5
    452                 .getHashName());
    453         assertEquals("SHA-1",
    454                 CipherSuite.TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA
    455                 .getHashName());
    456         assertEquals("SHA-1",
    457                 CipherSuite.TLS_DH_anon_WITH_DES_CBC_SHA
    458                 .getHashName());
    459         assertEquals("SHA-1",
    460                 CipherSuite.TLS_DH_anon_WITH_3DES_EDE_CBC_SHA
    461                 .getHashName());
    462     }
    463 
    464     public void testGetMACLength() {
    465         assertEquals(0,
    466                 CipherSuite.TLS_NULL_WITH_NULL_NULL.getMACLength());
    467         assertEquals(16, CipherSuite.TLS_RSA_WITH_NULL_MD5.getMACLength());
    468         assertEquals(20, CipherSuite.TLS_RSA_WITH_NULL_SHA.getMACLength());
    469         assertEquals(16, CipherSuite.TLS_RSA_EXPORT_WITH_RC4_40_MD5.getMACLength());
    470         assertEquals(16, CipherSuite.TLS_RSA_WITH_RC4_128_MD5.getMACLength());
    471         assertEquals(20, CipherSuite.TLS_RSA_WITH_RC4_128_SHA.getMACLength());
    472         assertEquals(16, CipherSuite.TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5.getMACLength());
    473         assertEquals(20, CipherSuite.TLS_RSA_WITH_IDEA_CBC_SHA.getMACLength());
    474         assertEquals(20, CipherSuite.TLS_RSA_EXPORT_WITH_DES40_CBC_SHA.getMACLength());
    475         assertEquals(20, CipherSuite.TLS_RSA_WITH_DES_CBC_SHA.getMACLength());
    476         assertEquals(20, CipherSuite.TLS_RSA_WITH_3DES_EDE_CBC_SHA.getMACLength());
    477         assertEquals(20, CipherSuite.TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA.getMACLength());
    478         assertEquals(20, CipherSuite.TLS_DH_DSS_WITH_DES_CBC_SHA.getMACLength());
    479         assertEquals(20, CipherSuite.TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA.getMACLength());
    480         assertEquals(20, CipherSuite.TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA.getMACLength());
    481         assertEquals(20, CipherSuite.TLS_DH_RSA_WITH_DES_CBC_SHA.getMACLength());
    482         assertEquals(20, CipherSuite.TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA.getMACLength());
    483         assertEquals(20, CipherSuite.TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA.getMACLength());
    484         assertEquals(20, CipherSuite.TLS_DHE_DSS_WITH_DES_CBC_SHA.getMACLength());
    485         assertEquals(20, CipherSuite.TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA.getMACLength());
    486         assertEquals(20, CipherSuite.TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA.getMACLength());
    487         assertEquals(20, CipherSuite.TLS_DHE_RSA_WITH_DES_CBC_SHA.getMACLength());
    488         assertEquals(20, CipherSuite.TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA.getMACLength());
    489         assertEquals(16, CipherSuite.TLS_DH_anon_EXPORT_WITH_RC4_40_MD5.getMACLength());
    490         assertEquals(16, CipherSuite.TLS_DH_anon_WITH_RC4_128_MD5.getMACLength());
    491         assertEquals(20, CipherSuite.TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA.getMACLength());
    492         assertEquals(20, CipherSuite.TLS_DH_anon_WITH_DES_CBC_SHA.getMACLength());
    493         assertEquals(20, CipherSuite.TLS_DH_anon_WITH_3DES_EDE_CBC_SHA.getMACLength());
    494     }
    495 
    496     public void testIsExportable() {
    497         assertTrue(CipherSuite.TLS_NULL_WITH_NULL_NULL
    498                 .isExportable());
    499         assertTrue(CipherSuite.TLS_RSA_WITH_NULL_MD5
    500                 .isExportable());
    501         assertTrue(CipherSuite.TLS_RSA_WITH_NULL_SHA
    502                 .isExportable());
    503         assertTrue(CipherSuite.TLS_RSA_EXPORT_WITH_RC4_40_MD5
    504                 .isExportable());
    505         assertFalse(CipherSuite.TLS_RSA_WITH_RC4_128_MD5
    506                 .isExportable());
    507         assertFalse(CipherSuite.TLS_RSA_WITH_RC4_128_SHA
    508                 .isExportable());
    509         assertTrue(CipherSuite.TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5
    510                 .isExportable());
    511         assertFalse(CipherSuite.TLS_RSA_WITH_IDEA_CBC_SHA
    512                 .isExportable());
    513         assertTrue(CipherSuite.TLS_RSA_EXPORT_WITH_DES40_CBC_SHA
    514                 .isExportable());
    515         assertFalse(CipherSuite.TLS_RSA_WITH_DES_CBC_SHA
    516                 .isExportable());
    517         assertFalse(CipherSuite.TLS_RSA_WITH_3DES_EDE_CBC_SHA
    518                 .isExportable());
    519         assertTrue(CipherSuite.TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA
    520                 .isExportable());
    521         assertFalse(CipherSuite.TLS_DH_DSS_WITH_DES_CBC_SHA
    522                 .isExportable());
    523         assertFalse(CipherSuite.TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA
    524                 .isExportable());
    525         assertTrue(CipherSuite.TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA
    526                 .isExportable());
    527         assertFalse(CipherSuite.TLS_DH_RSA_WITH_DES_CBC_SHA
    528                 .isExportable());
    529         assertFalse(CipherSuite.TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA
    530                 .isExportable());
    531         assertTrue(CipherSuite.TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA
    532                 .isExportable());
    533         assertFalse(CipherSuite.TLS_DHE_DSS_WITH_DES_CBC_SHA
    534                 .isExportable());
    535         assertFalse(CipherSuite.TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA
    536                 .isExportable());
    537         assertTrue(CipherSuite.TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA
    538                 .isExportable());
    539         assertFalse(CipherSuite.TLS_DHE_RSA_WITH_DES_CBC_SHA
    540                 .isExportable());
    541         assertFalse(CipherSuite.TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
    542                 .isExportable());
    543         assertTrue(CipherSuite.TLS_DH_anon_EXPORT_WITH_RC4_40_MD5
    544                 .isExportable());
    545         assertFalse(CipherSuite.TLS_DH_anon_WITH_RC4_128_MD5
    546                 .isExportable());
    547         assertTrue(CipherSuite.TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA
    548                 .isExportable());
    549         assertFalse(CipherSuite.TLS_DH_anon_WITH_DES_CBC_SHA
    550                 .isExportable());
    551         assertFalse(CipherSuite.TLS_DH_anon_WITH_3DES_EDE_CBC_SHA
    552                 .isExportable());
    553     }
    554 
    555 }
    556