7
7
import jakarta .mail .internet .MimeMultipart ;
8
8
import org .bouncycastle .cms .CMSAlgorithm ;
9
9
import org .bouncycastle .jce .provider .BouncyCastleProvider ;
10
- import org .junit .jupiter .api .BeforeAll ;
11
- import org .junit .jupiter .api .Test ;
12
- import org .junit .jupiter .api .TestInstance ;
10
+ import org .junit .Before ;
11
+ import org .junit .Test ;
13
12
14
13
import java .io .IOException ;
15
14
import java .io .InputStream ;
21
20
import java .security .cert .X509Certificate ;
22
21
import java .util .Properties ;
23
22
24
- import static org .junit .jupiter .api .Assertions .assertEquals ;
25
- import static org .junit .jupiter .api .Assertions .assertTrue ;
23
+ import static org .assertj .core .api .Assertions .assertThat ;
26
24
27
- @ TestInstance (TestInstance .Lifecycle .PER_CLASS )
28
- class SmimeUtilTest {
25
+ public class SmimeUtilTest {
29
26
30
- private static final String SignatureAlgorithmRsa = "SHA256withRSA" ;
31
27
private static final String SignatureAlgorithmRsaPss = "SHA256WITHRSAANDMGF1" ;
32
28
private SmimeKeyStore alicesKeyStore ;
33
29
private SmimeKeyStore bobsKeyStore ;
34
30
private Session mailSession ;
35
31
36
- @ BeforeAll
37
- void setup () throws MessagingException , KeyStoreException , NoSuchProviderException , CertificateException , IOException , NoSuchAlgorithmException {
32
+ @ Before
33
+ public void setup () throws MessagingException , KeyStoreException , NoSuchProviderException , CertificateException , IOException , NoSuchAlgorithmException {
38
34
Security .addProvider (new BouncyCastleProvider ());
39
35
InputStream alicesKeystoreStream = this .getClass ().getClassLoader ().getResourceAsStream ("alice.p12" );
40
36
this .alicesKeyStore = new SmimeKeyStore (alicesKeystoreStream , "alice" .toCharArray ());
@@ -55,71 +51,66 @@ private MimeMessage createTestMessage(String from, String to) throws MessagingEx
55
51
}
56
52
57
53
@ Test
58
- void SuccessfullySignAndValidate () throws MessagingException , IOException {
54
+ public void SuccessfullySignAndValidate () throws MessagingException , IOException {
59
55
MimeMessage testMessage =
createTestMessage (
"[email protected] " ,
"[email protected] " );
60
56
SmimeKey alicesKey = this .alicesKeyStore .getPrivateKey ("alice" , "alice" .toCharArray ());
61
57
MimeMessage signedMessage = SmimeUtil .sign (this .mailSession , testMessage , alicesKey );
62
58
MimeMultipart multipartContent = (MimeMultipart ) signedMessage .getContent ();
63
- assertEquals (SmimeState .SIGNED , SmimeUtil .getStatus (multipartContent ));
64
- boolean isSignatureValid = SmimeUtil .checkSignature (multipartContent );
65
- assertTrue (isSignatureValid );
59
+ assertThat (SmimeUtil .getStatus (multipartContent )).isEqualTo (SmimeState .SIGNED );
60
+ assertThat (SmimeUtil .checkSignature (multipartContent )).isTrue ();
66
61
}
67
62
68
63
@ Test
69
- void SuccessfullyEnvelopeAndDecryptDefault () throws MessagingException {
64
+ public void SuccessfullyEnvelopeAndDecryptDefault () throws MessagingException {
70
65
MimeMessage testMessage =
createTestMessage (
"[email protected] " ,
"[email protected] " );
71
66
SmimeKey alicesKey = this .alicesKeyStore .getPrivateKey ("alice" , "alice" .toCharArray ());
72
67
X509Certificate alicesCert = alicesKey .getCertificate ();
73
68
MimeMessage encryptedMessage = SmimeUtil .encrypt (this .mailSession ,
74
69
SmimeUtil .sign (this .mailSession , testMessage , alicesKey ),
75
70
alicesCert );
76
- assertEquals ( SmimeState . ENCRYPTED , SmimeUtil .getStatus ((encryptedMessage )));
71
+ assertThat ( SmimeUtil .getStatus ((encryptedMessage ))). isEqualTo ( SmimeState . ENCRYPTED );
77
72
MimeMessage decryptedMessage = SmimeUtil .decrypt (this .mailSession , encryptedMessage , alicesKey );
78
- boolean isSignatureValid = SmimeUtil .checkSignature (decryptedMessage );
79
- assertTrue (isSignatureValid );
73
+ assertThat (SmimeUtil .checkSignature (decryptedMessage )).isTrue ();
80
74
}
81
75
82
76
@ Test
83
- void SuccessfullyEnvelopeAndDecrypt () throws MessagingException {
77
+ public void SuccessfullyEnvelopeAndDecrypt () throws MessagingException {
84
78
MimeMessage testMessage =
createTestMessage (
"[email protected] " ,
"[email protected] " );
85
79
SmimeKey alicesKey = this .alicesKeyStore .getPrivateKey ("alice" , "alice" .toCharArray ());
86
80
X509Certificate alicesCert = alicesKey .getCertificate ();
87
81
MimeMessage encryptedMessage = SmimeUtil .encrypt (this .mailSession ,
88
82
SmimeUtil .sign (this .mailSession , testMessage , alicesKey , SignatureAlgorithmRsaPss ),
89
83
alicesCert , KeyEncapsulationAlgorithm .RSA_OAEP_SHA256 , CMSAlgorithm .AES256_CBC );
90
- assertEquals ( SmimeState . ENCRYPTED , SmimeUtil .getStatus ((encryptedMessage )));
84
+ assertThat ( SmimeUtil .getStatus ((encryptedMessage ))). isEqualTo ( SmimeState . ENCRYPTED );
91
85
MimeMessage decryptedMessage = SmimeUtil .decrypt (this .mailSession , encryptedMessage , alicesKey );
92
- boolean isSignatureValid = SmimeUtil .checkSignature (decryptedMessage );
93
- assertTrue (isSignatureValid );
86
+ assertThat (SmimeUtil .checkSignature (decryptedMessage )).isTrue ();
94
87
}
95
88
96
89
@ Test
97
- void AliceToBoEnvelopeAndDecrypt () throws MessagingException {
90
+ public void AliceToBoEnvelopeAndDecrypt () throws MessagingException {
98
91
MimeMessage testMessage =
createTestMessage (
"[email protected] " ,
"[email protected] " );
99
92
SmimeKey alicesKey = this .alicesKeyStore .getPrivateKey ("alice" , "alice" .toCharArray ());
100
93
SmimeKey bobsKey = this .bobsKeyStore .getPrivateKey ("bob" , "bob" .toCharArray ());
101
94
X509Certificate bobsCert = bobsKey .getCertificate ();
102
95
MimeMessage encryptedMessage = SmimeUtil .encrypt (this .mailSession ,
103
96
SmimeUtil .sign (this .mailSession , testMessage , alicesKey , SignatureAlgorithmRsaPss ),
104
97
bobsCert , KeyEncapsulationAlgorithm .RSA_OAEP_SHA512 , CMSAlgorithm .AES256_GCM );
105
- assertEquals ( SmimeState . ENCRYPTED , SmimeUtil .getStatus ((encryptedMessage )));
98
+ assertThat ( SmimeUtil .getStatus ((encryptedMessage ))). isEqualTo ( SmimeState . ENCRYPTED );
106
99
MimeMessage decryptedMessage = SmimeUtil .decrypt (this .mailSession , encryptedMessage , bobsKey );
107
- boolean isSignatureValid = SmimeUtil .checkSignature (decryptedMessage );
108
- assertTrue (isSignatureValid );
100
+ assertThat (SmimeUtil .checkSignature (decryptedMessage )).isTrue ();
109
101
}
110
102
111
103
@ Test
112
- void BobToAliceEnvelopeAndDecrypt () throws MessagingException {
104
+ public void BobToAliceEnvelopeAndDecrypt () throws MessagingException {
113
105
MimeMessage testMessage =
createTestMessage (
"[email protected] " ,
"[email protected] " );
114
106
SmimeKey bobsKey = this .bobsKeyStore .getPrivateKey ("bob" , "bob" .toCharArray ());
115
107
SmimeKey alicesKey = this .alicesKeyStore .getPrivateKey ("alice" , "alice" .toCharArray ());
116
108
X509Certificate alicesCert = alicesKey .getCertificate ();
117
109
MimeMessage encryptedMessage = SmimeUtil .encrypt (this .mailSession ,
118
110
SmimeUtil .sign (this .mailSession , testMessage , bobsKey , SignatureAlgorithmRsaPss ),
119
111
alicesCert , KeyEncapsulationAlgorithm .RSA_OAEP_SHA384 , CMSAlgorithm .AES192_CCM );
120
- assertEquals ( SmimeState . ENCRYPTED , SmimeUtil .getStatus ((encryptedMessage )));
112
+ assertThat ( SmimeUtil .getStatus ((encryptedMessage ))). isEqualTo ( SmimeState . ENCRYPTED );
121
113
MimeMessage decryptedMessage = SmimeUtil .decrypt (this .mailSession , encryptedMessage , alicesKey );
122
- boolean isSignatureValid = SmimeUtil .checkSignature (decryptedMessage );
123
- assertTrue (isSignatureValid );
114
+ assertThat (SmimeUtil .checkSignature (decryptedMessage )).isTrue ();
124
115
}
125
116
}
0 commit comments