17
17
import com .google .api .client .testing .json .MockJsonFactory ;
18
18
import com .google .api .client .testing .json .webtoken .TestCertificates ;
19
19
import com .google .api .client .testing .util .SecurityTestUtils ;
20
+
21
+ import java .io .IOException ;
22
+ import java .security .GeneralSecurityException ;
20
23
import java .security .cert .X509Certificate ;
21
24
import java .security .interfaces .RSAPrivateKey ;
25
+ import java .util .ArrayList ;
26
+ import java .util .List ;
27
+
22
28
import javax .net .ssl .X509TrustManager ;
23
- import junit .framework .TestCase ;
29
+
30
+ import org .junit .Assert ;
31
+ import org .junit .Test ;
24
32
25
33
/**
26
34
* Tests {@link JsonWebSignature}.
27
35
*
28
36
* @author Yaniv Inbar
29
37
*/
30
- public class JsonWebSignatureTest extends TestCase {
38
+ public class JsonWebSignatureTest {
31
39
40
+ @ Test
32
41
public void testSign () throws Exception {
33
42
JsonWebSignature .Header header = new JsonWebSignature .Header ();
34
43
header .setAlgorithm ("RS256" );
@@ -40,25 +49,69 @@ public void testSign() throws Exception {
40
49
.setIssuedAtTimeSeconds (0L )
41
50
.setExpirationTimeSeconds (3600L );
42
51
RSAPrivateKey privateKey = SecurityTestUtils .newRsaPrivateKey ();
43
- assertEquals (
52
+ Assert . assertEquals (
44
53
"..kDmKaHNYByLmqAi9ROeLcFmZM7W_emsceKvDZiEGAo-ineCunC6_Nb0HEpAuzIidV-LYTMHS3BvI49KFz9gi6hI3"
45
54
+ "ZndDL5EzplpFJo1ZclVk1_hLn94P2OTAkZ4ydsTfus6Bl98EbCkInpF_2t5Fr8OaHxCZCDdDU7W5DSnOsx4" ,
46
55
JsonWebSignature .signUsingRsaSha256 (privateKey , new MockJsonFactory (), header , payload ));
47
56
}
48
57
49
- private X509Certificate verifyX509WithCaCert (TestCertificates .CertData caCert ) throws Exception {
58
+ private X509Certificate verifyX509WithCaCert (TestCertificates .CertData caCert )
59
+ throws IOException , GeneralSecurityException {
50
60
JsonWebSignature signature = TestCertificates .getJsonWebSignature ();
51
61
X509TrustManager trustManager = caCert .getTrustManager ();
52
62
return signature .verifySignature (trustManager );
53
63
}
64
+
65
+ @ Test
66
+ public void testImmutableSignatureBytes () throws IOException {
67
+ JsonWebSignature signature = TestCertificates .getJsonWebSignature ();
68
+ byte [] bytes = signature .getSignatureBytes ();
69
+ bytes [0 ] = (byte ) (bytes [0 ] + 1 );
70
+ byte [] bytes2 = signature .getSignatureBytes ();
71
+ Assert .assertNotEquals (bytes2 [0 ], bytes [0 ]);
72
+ }
73
+
74
+ @ Test
75
+ public void testImmutableSignedContentBytes () throws IOException {
76
+ JsonWebSignature signature = TestCertificates .getJsonWebSignature ();
77
+ byte [] bytes = signature .getSignedContentBytes ();
78
+ bytes [0 ] = (byte ) (bytes [0 ] + 1 );
79
+ byte [] bytes2 = signature .getSignedContentBytes ();
80
+ Assert .assertNotEquals (bytes2 [0 ], bytes [0 ]);
81
+ }
82
+
83
+ @ Test
84
+ public void testImmutableCertificates () throws IOException {
85
+ JsonWebSignature signature = TestCertificates .getJsonWebSignature ();
86
+ List <String > certificates = signature .getHeader ().getX509Certificates ();
87
+ certificates .set (0 , "foo" );
88
+ Assert .assertNotEquals ("foo" , signature .getHeader ().getX509Certificates ().get (0 ));
89
+ }
90
+
91
+ @ Test
92
+ public void testImmutableCritical () throws IOException {
93
+ JsonWebSignature signature = TestCertificates .getJsonWebSignature ();
94
+ List <String > critical = new ArrayList <>();
95
+ signature .getHeader ().setCritical (critical );
96
+ critical .add ("bar" );
97
+ Assert .assertNull (signature .getHeader ().getCritical ());
98
+ }
99
+
100
+ @ Test
101
+ public void testCriticalNullForNone () throws IOException {
102
+ JsonWebSignature signature = TestCertificates .getJsonWebSignature ();
103
+ Assert .assertNull (signature .getHeader ().getCritical ());
104
+ }
54
105
106
+ @ Test
55
107
public void testVerifyX509 () throws Exception {
56
108
X509Certificate signatureCert = verifyX509WithCaCert (TestCertificates .CA_CERT );
57
- assertNotNull (signatureCert );
58
- assertTrue (signatureCert .getSubjectDN ().getName ().startsWith ("CN=foo.bar.com" ));
109
+ Assert . assertNotNull (signatureCert );
110
+ Assert . assertTrue (signatureCert .getSubjectDN ().getName ().startsWith ("CN=foo.bar.com" ));
59
111
}
60
112
113
+ @ Test
61
114
public void testVerifyX509WrongCa () throws Exception {
62
- assertNull (verifyX509WithCaCert (TestCertificates .BOGUS_CA_CERT ));
115
+ Assert . assertNull (verifyX509WithCaCert (TestCertificates .BOGUS_CA_CERT ));
63
116
}
64
117
}
0 commit comments