Home | History | Annotate | Download | only in cert
      1 package tests.security.cert;
      2 
      3 import junit.framework.TestCase;
      4 
      5 import org.apache.harmony.security.tests.support.cert.TestUtils;
      6 
      7 
      8 import java.io.ByteArrayInputStream;
      9 import java.io.IOException;
     10 import java.math.BigInteger;
     11 import java.security.InvalidKeyException;
     12 import java.security.NoSuchAlgorithmException;
     13 import java.security.NoSuchProviderException;
     14 import java.security.Principal;
     15 import java.security.PublicKey;
     16 import java.security.SignatureException;
     17 import java.security.cert.CRL;
     18 import java.security.cert.CRLException;
     19 import java.security.cert.Certificate;
     20 import java.security.cert.CertificateException;
     21 import java.security.cert.CertificateFactory;
     22 import java.security.cert.X509CRL;
     23 import java.security.cert.X509CRLEntry;
     24 import java.security.cert.X509CRLSelector;
     25 import java.security.cert.X509Certificate;
     26 import java.util.ArrayList;
     27 import java.util.Collection;
     28 import java.util.Date;
     29 import java.util.Set;
     30 
     31 import javax.security.auth.x500.X500Principal;
     32 
     33 import sun.security.util.DerOutputStream;
     34 import sun.security.x509.CRLNumberExtension;
     35 
     36 public class X509CRLSelector2Test extends TestCase {
     37 
     38     protected void setUp() throws Exception {
     39         super.setUp();
     40     }
     41 
     42     protected void tearDown() throws Exception {
     43         super.tearDown();
     44     }
     45 
     46     /**
     47      * constructor testing.
     48      *
     49      */
     50     public void testX509CRLSelector() {
     51         X509CRLSelector selector = new X509CRLSelector();
     52         assertNull(selector.getDateAndTime());
     53         assertNull(selector.getCertificateChecking());
     54         assertNull(selector.getIssuerNames());
     55         assertNull(selector.getIssuers());
     56         assertNull(selector.getMaxCRL());
     57         assertNull(selector.getMinCRL());
     58     }
     59 
     60     /**
     61      * addIssuer(X500Principal issuer) method testing. Tests if CRLs with
     62      * specified issuers match the selector, and if not specified issuer does
     63      * not match the selector.
     64      */
     65     public void testAddIssuerLjavax_security_auth_x500_X500Principal02() {
     66         X509CRLSelector selector = new X509CRLSelector();
     67         X500Principal iss1 = new X500Principal("O=First Org.");
     68         X500Principal iss2 = new X500Principal("O=Second Org.");
     69         CRL crl1 = new TestCRL(iss1);
     70         CRL crl2 = new TestCRL(iss2);
     71 
     72         selector.addIssuer(iss1);
     73         assertTrue("The CRL should match the selection criteria.", selector
     74                 .match(crl1));
     75         assertFalse("The CRL should not match the selection criteria.",
     76                 selector.match(crl2));
     77         selector.addIssuer(iss2);
     78         assertTrue("The CRL should match the selection criteria.", selector
     79                 .match(crl2));
     80     }
     81 
     82     /**
     83      * addIssuerName(String name) method testing. Tests if CRLs with specified
     84      * issuers match the selector, and if not specified issuer does not match
     85      * the selector.
     86      */
     87     public void testAddIssuerNameLjava_lang_String03() {
     88         X509CRLSelector selector = new X509CRLSelector();
     89         String iss1 = "O=First Org.";
     90         String iss2 = "O=Second Org.";
     91         TestCRL crl1 = new TestCRL(new X500Principal(iss1));
     92         TestCRL crl2 = new TestCRL(new X500Principal(iss2));
     93 
     94         try {
     95             selector.addIssuerName(iss1);
     96         } catch (IOException e) {
     97             e.printStackTrace();
     98             fail("Unexpected IOException was thrown.");
     99         }
    100         assertTrue("The CRL should match the selection criteria.", selector
    101                 .match(crl1));
    102         assertFalse("The CRL should not match the selection criteria.",
    103                 selector.match(crl2));
    104         try {
    105             selector.addIssuerName(iss2);
    106         } catch (IOException e) {
    107             e.printStackTrace();
    108             fail("Unexpected IOException was thrown.");
    109         }
    110         assertTrue("The CRL should match the selection criteria.", selector
    111                 .match(crl2));
    112     }
    113 
    114     /**
    115      * setIssuerNames(Collection <?> names) method testing. Tests if CRLs with
    116      * any issuers match the selector in the case of null issuerNames criteria,
    117      * if specified issuers match the selector, if not specified issuer does not
    118      * match the selector, and if the internal collection of issuer names is
    119      * copied during initialization.
    120      */
    121     @SuppressWarnings("unchecked")
    122     public void testSetIssuerNamesLjava_util_Collection02() {
    123         X509CRLSelector selector = new X509CRLSelector();
    124         String iss1 = "O=First Org.";
    125         byte[] iss2 = new byte[]
    126         // manually obtained DER encoding of "O=Second Org." issuer name;
    127         { 48, 22, 49, 20, 48, 18, 6, 3, 85, 4, 10, 19, 11, 83, 101, 99, 111,
    128                 110, 100, 32, 79, 114, 103, 46 };
    129 
    130         String iss3 = "O=Third Org.";
    131         TestCRL crl1 = new TestCRL(new X500Principal(iss1));
    132         TestCRL crl2 = new TestCRL(new X500Principal(iss2));
    133         TestCRL crl3 = new TestCRL(new X500Principal(iss3));
    134 
    135         try {
    136             selector.setIssuerNames(null);
    137         } catch (IOException e) {
    138             e.printStackTrace();
    139             fail("Unexpected IOException was thrown.");
    140         }
    141         assertTrue("Any CRL issuers should match in the case of null issuers.",
    142                 selector.match(crl1) && selector.match(crl2));
    143 
    144         ArrayList issuers = new ArrayList(2);
    145         issuers.add(iss1);
    146         issuers.add(iss2);
    147         try {
    148             selector.setIssuerNames(issuers);
    149         } catch (IOException e) {
    150             e.printStackTrace();
    151             fail("Unexpected IOException was thrown.");
    152         }
    153         assertTrue("The CRL should match the selection criteria.", selector
    154                 .match(crl1)
    155                 && selector.match(crl2));
    156         assertFalse("The CRL should not match the selection criteria.",
    157                 selector.match(crl3));
    158         issuers.add(iss3);
    159         assertFalse("The internal issuer collection is not protected "
    160                 + "against the modifications.", selector.match(crl3));
    161     }
    162 
    163     /**
    164      * setIssuers(Collection <X500Principal> issuers) method testing. Tests if
    165      * CRLs with any issuers match the selector in the case of null issuerNames
    166      * criteria, if specified issuers match the selector, and if not specified
    167      * issuer does not match the selector.
    168      */
    169     public void testSetIssuersLjava_util_Collection() {
    170         X509CRLSelector selector = new X509CRLSelector();
    171         X500Principal iss1 = new X500Principal("O=First Org.");
    172         X500Principal iss2 = new X500Principal("O=Second Org.");
    173         X500Principal iss3 = new X500Principal("O=Third Org.");
    174         TestCRL crl1 = new TestCRL(iss1);
    175         TestCRL crl2 = new TestCRL(iss2);
    176         TestCRL crl3 = new TestCRL(iss3);
    177 
    178         selector.setIssuers(null);
    179         assertTrue("Any CRL issuers should match in the case of null issuers.",
    180                 selector.match(crl1) && selector.match(crl2));
    181 
    182         ArrayList<X500Principal> issuers = new ArrayList<X500Principal>(2);
    183         issuers.add(iss1);
    184         issuers.add(iss2);
    185         selector.setIssuers(issuers);
    186         assertTrue("The CRL should match the selection criteria.", selector
    187                 .match(crl1)
    188                 && selector.match(crl2));
    189         assertFalse("The CRL should not match the selection criteria.",
    190                 selector.match(crl3));
    191         issuers.add(iss3);
    192         assertFalse("The internal issuer collection is not protected "
    193                 + "against the modifications.", selector.match(crl3));
    194     }
    195 
    196     /**
    197      * addIssuerName(byte[] name) method testing. Tests if CRLs with specified
    198      * issuers match the selector, and if not specified issuer does not match
    199      * the selector.
    200      */
    201     public void testAddIssuerName$B() {
    202         X509CRLSelector selector = new X509CRLSelector();
    203         byte[] iss1 = new byte[]
    204         // manually obtained DER encoding of "O=First Org." issuer name;
    205         { 48, 21, 49, 19, 48, 17, 6, 3, 85, 4, 10, 19, 10, 70, 105, 114, 115,
    206                 116, 32, 79, 114, 103, 46 };
    207         byte[] iss2 = new byte[]
    208         // manually obtained DER encoding of "O=Second Org." issuer name;
    209         { 48, 22, 49, 20, 48, 18, 6, 3, 85, 4, 10, 19, 11, 83, 101, 99, 111,
    210                 110, 100, 32, 79, 114, 103, 46 };
    211         TestCRL crl1 = new TestCRL(new X500Principal(iss1));
    212         TestCRL crl2 = new TestCRL(new X500Principal(iss2));
    213 
    214         try {
    215             selector.addIssuerName(iss1);
    216         } catch (IOException e) {
    217             e.printStackTrace();
    218             fail("Unexpected IOException was thrown.");
    219         }
    220         assertTrue("The CRL should match the selection criteria.", selector
    221                 .match(crl1));
    222         assertFalse("The CRL should not match the selection criteria.",
    223                 selector.match(crl2));
    224         try {
    225             selector.addIssuerName(iss2);
    226         } catch (IOException e) {
    227             e.printStackTrace();
    228             fail("Unexpected IOException was thrown.");
    229         }
    230         assertTrue("The CRL should match the selection criteria.", selector
    231                 .match(crl2));
    232     }
    233 
    234     /**
    235      * setMinCRLNumber(BigInteger minCRL) method testing. Tests if CRLs with any
    236      * crl number value match the selector in the case of null crlNumber
    237      * criteria, if specified minCRL value matches the selector, and if CRL with
    238      * inappropriate crlNumber value does not match the selector.
    239      */
    240     public void testSetMinCRLNumberLjava_math_BigInteger() {
    241         X509CRLSelector selector = new X509CRLSelector();
    242         BigInteger minCRL = new BigInteger("10000");
    243         CRL crl = new TestCRL(minCRL);
    244 
    245         selector.setMinCRLNumber(null);
    246         assertTrue("Any CRL should match in the case of null minCRLNumber.",
    247                 selector.match(crl));
    248         selector.setMinCRLNumber(minCRL);
    249         assertTrue("The CRL should match the selection criteria.", selector
    250                 .match(crl));
    251         selector.setMinCRLNumber(new BigInteger("10001"));
    252         assertFalse("The CRL should not match the selection criteria.",
    253                 selector.match(crl));
    254     }
    255 
    256     /**
    257      * setMaxCRLNumber(BigInteger maxCRL) method testing. Tests if CRLs with any
    258      * crl number value match the selector in the case of null crlNumber
    259      * criteria, if specified maxCRL value matches the selector, and if CRL with
    260      * inappropriate crlNumber value does not match the selector.
    261      */
    262     public void testSetMaxCRLNumberLjava_math_BigInteger() {
    263         X509CRLSelector selector = new X509CRLSelector();
    264         BigInteger maxCRL = new BigInteger("10000");
    265         TestCRL crl = new TestCRL(maxCRL);
    266 
    267         selector.setMaxCRLNumber(null);
    268         assertTrue("Any CRL should match in the case of null minCRLNumber.",
    269                 selector.match(crl));
    270         selector.setMaxCRLNumber(maxCRL);
    271         assertTrue("The CRL should match the selection criteria.", selector
    272                 .match(crl));
    273         selector.setMaxCRLNumber(new BigInteger("9999"));
    274         assertFalse("The CRL should not match the selection criteria.",
    275                 selector.match(crl));
    276     }
    277 
    278     /**
    279      * setDateAndTime(Date dateAndTime) method testing. Tests if CRLs with any
    280      * update dates match the selector in the case of null dateAndTime criteria,
    281      * if correct dates match and incorrect do not match the selector.
    282      */
    283     public void testSetDateAndTimeLjava_util_Date() {
    284         X509CRLSelector selector = new X509CRLSelector();
    285         TestCRL crl = new TestCRL(new Date(200), new Date(300));
    286         selector.setDateAndTime(null);
    287         assertTrue("Any CRL should match in the case of null dateAndTime.",
    288                 selector.match(crl));
    289         selector.setDateAndTime(new Date(200));
    290         assertTrue("The CRL should match the selection criteria.", selector
    291                 .match(crl));
    292         selector.setDateAndTime(new Date(250));
    293         assertTrue("The CRL should match the selection criteria.", selector
    294                 .match(crl));
    295         selector.setDateAndTime(new Date(300));
    296         assertTrue("The CRL should match the selection criteria.", selector
    297                 .match(crl));
    298         selector.setDateAndTime(new Date(150));
    299         assertFalse("The CRL should not match the selection criteria.",
    300                 selector.match(crl));
    301         selector.setDateAndTime(new Date(350));
    302         assertFalse("The CRL should not match the selection criteria.",
    303                 selector.match(crl));
    304     }
    305 
    306     /**
    307      * setCertificateChecking(X509Certificate) method testing.
    308      */
    309     public void testSetCertificateCheckingLjava_X509Certificate()
    310             throws CertificateException {
    311         X509CRLSelector selector = new X509CRLSelector();
    312 
    313         CertificateFactory certFact = CertificateFactory.getInstance("X509");
    314         X509Certificate cert = (X509Certificate) certFact
    315                 .generateCertificate(new ByteArrayInputStream(TestUtils
    316                         .getX509Certificate_v3()));
    317 
    318         TestCRL crl = new TestCRL();
    319         selector.setCertificateChecking(cert);
    320         assertTrue("The CRL should match the selection criteria.", selector
    321                 .match(crl));
    322         assertEquals(cert, selector.getCertificateChecking());
    323 
    324         selector.setCertificateChecking(null);
    325         assertTrue("The CRL should match the selection criteria.", selector
    326                 .match(crl));
    327         assertNull(selector.getCertificateChecking());
    328     }
    329 
    330     /**
    331      * getIssuers() method testing. Tests if the method return null in the case
    332      * of not specified issuers, if the returned collection corresponds to the
    333      * specified issuers and this collection is unmodifiable.
    334      */
    335     public void testGetIssuers() {
    336         X509CRLSelector selector = new X509CRLSelector();
    337         X500Principal iss1 = new X500Principal("O=First Org.");
    338         X500Principal iss2 = new X500Principal("O=Second Org.");
    339         X500Principal iss3 = new X500Principal("O=Third Org.");
    340         assertNull("The collection should be null.", selector.getIssuers());
    341         selector.addIssuer(iss1);
    342         selector.addIssuer(iss2);
    343         Collection<X500Principal> result = selector.getIssuers();
    344         try {
    345             result.add(iss3);
    346             fail("The returned collection should be unmodifiable.");
    347         } catch (UnsupportedOperationException e) {
    348         }
    349         assertTrue("The collection should contain the specified DN.", result
    350                 .contains(iss2));
    351     }
    352 
    353     /**
    354      * getIssuerNames() method testing. Tests if the method return null in the
    355      * case of not specified issuers, if the returned collection corresponds to
    356      * the specified issuers.
    357      */
    358     public void testGetIssuerNames() {
    359         X509CRLSelector selector = new X509CRLSelector();
    360         byte[] iss1 = new byte[]
    361         // manually obtained DER encoding of "O=First Org." issuer name;
    362         { 48, 21, 49, 19, 48, 17, 6, 3, 85, 4, 10, 19, 10, 70, 105, 114, 115,
    363                 116, 32, 79, 114, 103, 46 };
    364         byte[] iss2 = new byte[]
    365         // manually obtained DER encoding of "O=Second Org." issuer name;
    366         { 48, 22, 49, 20, 48, 18, 6, 3, 85, 4, 10, 19, 11, 83, 101, 99, 111,
    367                 110, 100, 32, 79, 114, 103, 46 };
    368         assertNull("The collection should be null.", selector.getIssuerNames());
    369         try {
    370             selector.addIssuerName(iss1);
    371             selector.addIssuerName(iss2);
    372         } catch (IOException e) {
    373             e.printStackTrace();
    374             fail("Unexpected IOException was thrown.");
    375         }
    376         Collection<Object> result = selector.getIssuerNames();
    377         assertEquals("The collection should contain all of the specified DNs.",
    378                 2, result.size());
    379     }
    380 
    381     /**
    382      * getMinCRL() method testing. Tests if the method return null in the case
    383      * of not specified minCRL criteria, and if the returned value corresponds
    384      * to the specified one.
    385      */
    386     public void testGetMinCRL() {
    387         X509CRLSelector selector = new X509CRLSelector();
    388         assertNull("Initially the minCRL should be null.", selector.getMinCRL());
    389         BigInteger minCRL = new BigInteger("10000");
    390         selector.setMinCRLNumber(minCRL);
    391         assertTrue("The result should be equal to specified.", minCRL
    392                 .equals(selector.getMinCRL()));
    393     }
    394 
    395     /**
    396      * getMaxCRL() method testing. Tests if the method return null in the case
    397      * of not specified maxCRL criteria, and if the returned value corresponds
    398      * to the specified one.
    399      */
    400     public void testGetMaxCRL() {
    401         X509CRLSelector selector = new X509CRLSelector();
    402         assertNull("Initially the maxCRL should be null.", selector.getMaxCRL());
    403         BigInteger maxCRL = new BigInteger("10000");
    404         selector.setMaxCRLNumber(maxCRL);
    405         assertTrue("The result should be equal to specified.", maxCRL
    406                 .equals(selector.getMaxCRL()));
    407     }
    408 
    409     /**
    410      * getDateAndTime() method testing. Tests if the method return null in the
    411      * case of not specified dateAndTime criteria, and if the returned value
    412      * corresponds to the specified one.
    413      */
    414     public void testGetDateAndTime() {
    415         X509CRLSelector selector = new X509CRLSelector();
    416         assertNull("Initially the dateAndTime criteria should be null.",
    417                 selector.getDateAndTime());
    418         Date date = new Date(200);
    419         selector.setDateAndTime(date);
    420         assertTrue("The result should be equal to specified.", date
    421                 .equals(selector.getDateAndTime()));
    422     }
    423 
    424     /**
    425      * getCertificateChecking() method testing.
    426      */
    427     public void testGetCertificateCheckingLjava_X509Certificate()
    428             throws CertificateException {
    429         X509CRLSelector selector = new X509CRLSelector();
    430 
    431         CertificateFactory certFact = CertificateFactory.getInstance("X509");
    432         X509Certificate cert = (X509Certificate) certFact
    433                 .generateCertificate(new ByteArrayInputStream(TestUtils
    434                         .getX509Certificate_v3()));
    435 
    436         selector.setCertificateChecking(cert);
    437         assertEquals(cert, selector.getCertificateChecking());
    438 
    439         selector.setCertificateChecking(null);
    440         assertNull(selector.getCertificateChecking());
    441     }
    442 
    443     /**
    444      * match(CRL crl) method testing. Tests if the null object matches to the
    445      * selector or not.
    446      */
    447     public void testMatchLjava_security_cert_X509CRL() {
    448         X509CRLSelector selector = new X509CRLSelector();
    449         assertFalse("The null object should not match", selector
    450                 .match((X509CRL) null));
    451     }
    452 
    453     /**
    454      * clone() method testing. Tests if the selector is cloned correctly: the
    455      * crl which matche to the initial selector should match to the clone and
    456      * the change of clone should not cause the change of initial selector.
    457      */
    458     public void testClone() {
    459         X509CRLSelector selector = new X509CRLSelector();
    460         X500Principal iss1 = new X500Principal("O=First Org.");
    461         X500Principal iss2 = new X500Principal("O=Second Org.");
    462         X500Principal iss3 = new X500Principal("O=Third Org.");
    463         BigInteger minCRL = new BigInteger("10000");
    464         BigInteger maxCRL = new BigInteger("10000");
    465         Date date = new Date(200);
    466 
    467         selector.addIssuer(iss1);
    468         selector.addIssuer(iss2);
    469         selector.setMinCRLNumber(minCRL);
    470         selector.setMaxCRLNumber(maxCRL);
    471         selector.setDateAndTime(date);
    472 
    473         X509CRLSelector clone = (X509CRLSelector) selector.clone();
    474         TestCRL crl = new TestCRL(iss1);
    475         crl.setCrlNumber(minCRL);
    476         crl.setUpdateDates(new Date(200), new Date(200));
    477         assertTrue("The specified CRL should match the clone selector.",
    478                 selector.match(crl));
    479 
    480         clone.addIssuer(iss3);
    481         assertFalse("The changes of the clone selector should not cause "
    482                 + "the changes of initial object", selector.getIssuerNames()
    483                 .size() == 3);
    484     }
    485     public void testToString() {
    486         X509CRLSelector selector = new X509CRLSelector();
    487         X500Principal iss1 = new X500Principal("O=First Org.");
    488         X500Principal iss2 = new X500Principal("O=Second Org.");
    489         BigInteger minCRL = new BigInteger("10000");
    490         BigInteger maxCRL = new BigInteger("10000");
    491         Date date = new Date(200);
    492 
    493         selector.addIssuer(iss1);
    494         selector.addIssuer(iss2);
    495         selector.setMinCRLNumber(minCRL);
    496         selector.setMaxCRLNumber(maxCRL);
    497         selector.setDateAndTime(date);
    498 
    499         assertNotNull("The result should not be null.", selector.toString());
    500     }
    501 
    502     /**
    503      * The abstract class stub implementation.
    504      */
    505     private class TestCRL extends X509CRL {
    506 
    507         private X500Principal principal = null;
    508 
    509         private BigInteger crlNumber = null;
    510 
    511         private Date thisUpdate = null;
    512 
    513         private Date nextUpdate = null;
    514 
    515         public TestCRL() {
    516         }
    517 
    518         public TestCRL(X500Principal principal) {
    519             this.principal = principal;
    520         }
    521 
    522         public TestCRL(Date thisUpdate, Date nextUpdate) {
    523             setUpdateDates(thisUpdate, nextUpdate);
    524         }
    525 
    526         public TestCRL(BigInteger crlNumber) {
    527             setCrlNumber(crlNumber);
    528         }
    529 
    530         public void setUpdateDates(Date thisUpdate, Date nextUpdate) {
    531             this.thisUpdate = thisUpdate;
    532             this.nextUpdate = nextUpdate;
    533         }
    534 
    535         public void setCrlNumber(BigInteger crlNumber) {
    536             this.crlNumber = crlNumber;
    537         }
    538 
    539         public X500Principal getIssuerX500Principal() {
    540             return principal;
    541         }
    542 
    543         public String toString() {
    544             return null;
    545         }
    546 
    547         public boolean isRevoked(Certificate cert) {
    548             return true;
    549         }
    550 
    551         public Set<String> getNonCriticalExtensionOIDs() {
    552             return null;
    553         }
    554 
    555         public Set<String> getCriticalExtensionOIDs() {
    556             return null;
    557         }
    558 
    559         public byte[] getExtensionValue(String oid) {
    560             if ("2.5.29.20".equals(oid) && (crlNumber != null)) {
    561                 DerOutputStream out = new DerOutputStream();
    562                 try {
    563                     out.putOctetString((new CRLNumberExtension(crlNumber)).getExtensionValue());
    564                 } catch (IOException e) {
    565                     throw new IllegalStateException("Unexpected IOException" , e);
    566                 }
    567                 return out.toByteArray();
    568             }
    569             return null;
    570         }
    571 
    572         public boolean hasUnsupportedCriticalExtension() {
    573             return false;
    574         }
    575 
    576         public byte[] getEncoded() {
    577             return null;
    578         }
    579 
    580         @SuppressWarnings("unused")
    581         public void verify(PublicKey key) throws CRLException,
    582                 NoSuchAlgorithmException, InvalidKeyException,
    583                 NoSuchProviderException, SignatureException {
    584         }
    585 
    586         @SuppressWarnings("unused")
    587         public void verify(PublicKey key, String sigProvider)
    588                 throws CRLException, NoSuchAlgorithmException,
    589                 InvalidKeyException, NoSuchProviderException,
    590                 SignatureException {
    591         }
    592 
    593         public int getVersion() {
    594             return 2;
    595         }
    596 
    597         public Principal getIssuerDN() {
    598             return null;
    599         }
    600 
    601         public Date getThisUpdate() {
    602             return thisUpdate;
    603         }
    604 
    605         public Date getNextUpdate() {
    606             return nextUpdate;
    607         }
    608 
    609         public X509CRLEntry getRevokedCertificate(BigInteger serialNumber) {
    610             return null;
    611         }
    612 
    613         public Set<X509CRLEntry> getRevokedCertificates() {
    614             return null;
    615         }
    616 
    617         public byte[] getTBSCertList() {
    618             return null;
    619         }
    620 
    621         public byte[] getSignature() {
    622             return null;
    623         }
    624 
    625         public String getSigAlgName() {
    626             return null;
    627         }
    628 
    629         public String getSigAlgOID() {
    630             return null;
    631         }
    632 
    633         public byte[] getSigAlgParams() {
    634             return null;
    635         }
    636     }
    637 }
    638