Welcome to mirror list, hosted at ThFree Co, Russian Federation.

X509CertificatePairTest.java « test « provider « jce « bouncycastle « org « java « test « src « prov - gitlab.com/quite/humla-spongycastle.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 4eecef8a5846d629aa8b3d8bfd0040bf98aa1941 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
package org.bouncycastle.jce.provider.test;

import org.bouncycastle.jce.provider.BouncyCastleProvider;
import org.bouncycastle.util.test.SimpleTest;
import org.bouncycastle.x509.X509CertificatePair;

import java.io.ByteArrayInputStream;
import java.security.Security;
import java.security.cert.CertificateEncodingException;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;

public class X509CertificatePairTest
    extends SimpleTest
{
    public void performTest()
        throws Exception
    {
        CertificateFactory cf = CertificateFactory.getInstance("X.509", "BC");

        X509Certificate rootCert = (X509Certificate)cf.generateCertificate(
                                        new ByteArrayInputStream(CertPathTest.rootCertBin));
        X509Certificate interCert = (X509Certificate)cf.generateCertificate(
                                         new ByteArrayInputStream(CertPathTest.interCertBin));
        X509Certificate finalCert = (X509Certificate)cf.generateCertificate(
                                          new ByteArrayInputStream(CertPathTest.finalCertBin));


        X509CertificatePair pair1 = new X509CertificatePair(rootCert, interCert);
        X509CertificatePair pair2 = new X509CertificatePair(rootCert, interCert);
        X509CertificatePair pair3 = new X509CertificatePair(interCert, finalCert);
        X509CertificatePair pair4 = new X509CertificatePair(rootCert, finalCert);
        X509CertificatePair pair5 = new X509CertificatePair(rootCert, null);
        X509CertificatePair pair6 = new X509CertificatePair(rootCert, null);
        X509CertificatePair pair7 = new X509CertificatePair(null, rootCert);
        X509CertificatePair pair8 = new X509CertificatePair(null, rootCert);

        if (!pair1.equals(pair2))
        {
            fail("pair1 pair2 equality test");
        }

        if (!pair5.equals(pair6))
        {
            fail("pair1 pair2 equality test");
        }

        if (!pair7.equals(pair8))
        {
            fail("pair1 pair2 equality test");
        }

        if (pair1.equals(null))
        {
            fail("pair1 null equality test");
        }

        if (pair1.hashCode() != pair2.hashCode())
        {
            fail("pair1 pair2 hashCode equality test");
        }

        if (pair1.equals(pair3))
        {
            fail("pair1 pair3 inequality test");
        }

        if (pair1.equals(pair4))
        {
            fail("pair1 pair4 inequality test");
        }

        if (pair1.equals(pair5))
        {
            fail("pair1 pair5 inequality test");
        }

        if (pair1.equals(pair7))
        {
            fail("pair1 pair7 inequality test");
        }

        if (pair5.equals(pair1))
        {
            fail("pair5 pair1 inequality test");
        }

        if (pair7.equals(pair1))
        {
            fail("pair7 pair1 inequality test");
        }

        if (pair1.getForward() != rootCert)
        {
            fail("pair1 forward test");
        }

        if (pair1.getReverse() != interCert)
        {
            fail("pair1 reverse test");
        }

        if (!areEqual(pair1.getEncoded(), pair2.getEncoded()))
        {
            fail("encoding check");
        }

        pair4 = new X509CertificatePair(rootCert, TestUtils.createExceptionCertificate(false));

        try
        {
            pair4.getEncoded();

            fail("no exception on bad getEncoded()");
        }
        catch (CertificateEncodingException e)
        {
            // expected
        }

        pair4 = new X509CertificatePair(rootCert, TestUtils.createExceptionCertificate(true));

        try
        {
            pair4.getEncoded();

            fail("no exception on exception getEncoded()");
        }
        catch (CertificateEncodingException e)
        {
            // expected
        }
    }

    public String getName()
    {
        return "X509CertificatePair";
    }

    public static void main(String[] args)
    {
        Security.addProvider(new BouncyCastleProvider());

        runTest(new X509CertificatePairTest());
    }

}