File tree Expand file tree Collapse file tree 4 files changed +45
-20
lines changed
Mastercard.Developer.ClientEncryption.Core/Encryption/JWE
Mastercard.Developer.ClientEncryption.Tests/NetCore2 Expand file tree Collapse file tree 4 files changed +45
-20
lines changed Original file line number Diff line number Diff line change @@ -11,6 +11,8 @@ internal class JweObject
11
11
{
12
12
private const string A128CBC_HS256 = "A128CBC-HS256" ;
13
13
private const string A256GCM = "A256GCM" ;
14
+ private const string A128GCM = "A128GCM" ;
15
+ private const string A192GCM = "A192GCM" ;
14
16
15
17
public JweHeader Header { get ; private set ; }
16
18
public string RawHeader { get ; private set ; }
@@ -35,6 +37,12 @@ public string Decrypt(JweConfig config)
35
37
case A256GCM :
36
38
plaintext = AesGcm . Decrypt ( unwrappedKey , this ) ;
37
39
break ;
40
+ case A128GCM :
41
+ plaintext = AesGcm . Decrypt ( unwrappedKey , this ) ;
42
+ break ;
43
+ case A192GCM :
44
+ plaintext = AesGcm . Decrypt ( unwrappedKey , this ) ;
45
+ break ;
38
46
case A128CBC_HS256 :
39
47
plaintext = AesCbc . Decrypt ( unwrappedKey , this ) ;
40
48
break ;
Original file line number Diff line number Diff line change @@ -12,10 +12,34 @@ public class GcmJweObjectTest
12
12
#if ! NETCOREAPP3_1 && ! NET5_0_OR_GREATER
13
13
[ ExpectedException ( typeof ( EncryptionException ) , "AES/GCM/NoPadding is unsupported on .NET Standard < 2.1" ) ]
14
14
#endif
15
- public void TestDecrypt_ShouldReturnDecryptedPayload_WhenPayloadIsGcmEncrypted ( )
15
+ public void TestDecrypt_ShouldReturnDecryptedPayload_WhenPayloadIs256GcmEncrypted ( )
16
16
{
17
17
// GIVEN
18
- JweObject jweObject = TestUtils . GetTestGcmJweObject ( ) ;
18
+ JweObject jweObject = TestUtils . GetTest256GcmJweObject ( ) ;
19
+
20
+ // WHEN
21
+ string decryptedPayload = jweObject . Decrypt ( TestUtils . GetTestJweConfigBuilder ( ) . Build ( ) ) ;
22
+
23
+ // THEN
24
+ Assert . AreEqual ( "{\" foo\" :\" bar\" }" , decryptedPayload ) ;
25
+ }
26
+
27
+ public void TestDecrypt_ShouldReturnDecryptedPayload_WhenPayloadIs192GcmEncrypted ( )
28
+ {
29
+ // GIVEN
30
+ JweObject jweObject = TestUtils . GetTest192GcmJweObject ( ) ;
31
+
32
+ // WHEN
33
+ string decryptedPayload = jweObject . Decrypt ( TestUtils . GetTestJweConfigBuilder ( ) . Build ( ) ) ;
34
+
35
+ // THEN
36
+ Assert . AreEqual ( "{\" foo\" :\" bar\" }" , decryptedPayload ) ;
37
+ }
38
+
39
+ public void TestDecrypt_ShouldReturnDecryptedPayload_WhenPayloadIs128GcmEncrypted ( )
40
+ {
41
+ // GIVEN
42
+ JweObject jweObject = TestUtils . GetTest128GcmJweObject ( ) ;
19
43
20
44
// WHEN
21
45
string decryptedPayload = jweObject . Decrypt ( TestUtils . GetTestJweConfigBuilder ( ) . Build ( ) ) ;
Original file line number Diff line number Diff line change @@ -80,23 +80,6 @@ public void TestInterceptResponse_ShouldDoNothing_WhenNoPayload()
80
80
fixture . InterceptResponse ( response ) ;
81
81
}
82
82
83
- [ TestMethod ]
84
- [ ExpectedException ( typeof ( EncryptionException ) ) ] // <-- THEN
85
- public void TestInterceptResponse_ShouldThrowAnExceptionWhenEncryptionNotSupported ( )
86
- {
87
- // GIVEN
88
- string encryptedPayload = "{" +
89
- "\" encryptedPayload\" :\" eyJraWQiOiI3NjFiMDAzYzFlYWRlM2E1NDkwZTUwMDBkMzc4ODdiYWE1ZTZlYzBlMjI2YzA3NzA2ZTU5OTQ1MWZjMDMyYTc5IiwiY3R5IjoiYXBwbGljYXRpb25cL2pzb24iLCJlbmMiOiJBMTkyR0NNIiwiYWxnIjoiUlNBLU9BRVAtMjU2In0.peSgTt_lPbcNStWh-gI3yMzhOGtFCwExFwLxKeHwjzsXvHB0Fml5XnG0jRbJSfOHzKx02d0NVBzoDDRSAnafuabbbMKcoaUK-jZNHSg4BHdyBZpCO82kzvWeEm3TTNHIMBTfM00EmdFB03z_a0PaWsT-FIOzu4Sd5Z_nsNLhP9941CtVS-YtZ9WkgDezGipxA7ejQ3X5gFVy2RH1gL8OTbzIYCwBcrfSjAiCQgunNbLxPPlfZHB_6prPK7_50NS6FvuMnAhiqUiiAka8DHMdeGBWOie2Q0FV_bsRDHx_6CY8kQA3F_NXz1dELIclJhdZFfRt1y-TEfwOIj4nDi2JnA.8BYMB5MkH2ZNyFGS._xb3uDsUQcPT5fQyZw.O0MzJ5OvNyj_QMuqaloTWA\" }" ;
90
- var config = TestUtils . GetTestJweConfigBuilder ( )
91
- . WithDecryptionPath ( "$.encryptedPayload" , "$.foo" )
92
- . Build ( ) ;
93
- var response = RestResponseWithContentLength ( encryptedPayload ) ;
94
-
95
- // WHEN
96
- var fixture = RestSharpEncryptionInterceptor . From ( config ) ;
97
- fixture . InterceptResponse ( response ) ;
98
- }
99
-
100
83
[ TestMethod ]
101
84
[ ExpectedException ( typeof ( EncryptionException ) ) ] // <-- THEN
102
85
public void TestInterceptResponse_ShouldThrowException_WhenDecryptionFails ( )
Original file line number Diff line number Diff line change @@ -71,9 +71,19 @@ internal static JweObject GetTestCbcJweObject()
71
71
return JweObject . Parse ( "eyJraWQiOiI3NjFiMDAzYzFlYWRlM2E1NDkwZTUwMDBkMzc4ODdiYWE1ZTZlYzBlMjI2YzA3NzA2ZTU5OTQ1MWZjMDMyYTc5IiwiY3R5IjoiYXBwbGljYXRpb25cL2pzb24iLCJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwiYWxnIjoiUlNBLU9BRVAtMjU2In0.5bsamlChk0HR3Nqg2UPJ2Fw4Y0MvC2pwWzNv84jYGkOXyqp1iwQSgETGaplIa7JyLg1ZWOqwNHEx3N7gsN4nzwAnVgz0eta6SsoQUE9YQ-5jek0COslUkoqIQjlQYJnYur7pqttDibj87fcw13G2agle5fL99j1QgFPjNPYqH88DMv481XGFa8O3VfJhW93m73KD2gvE5GasOPOkFK9wjKXc9lMGSgSArp3Awbc_oS2Cho_SbsvuEQwkhnQc2JKT3IaSWu8yK7edNGwD6OZJLhMJzWJlY30dUt2Eqe1r6kMT0IDRl7jHJnVIr2Qpe56CyeZ9V0aC5RH1mI5dYk4kHg.yI0CS3NdBrz9CCW2jwBSDw.6zr2pOSmAGdlJG0gbH53Eg.UFgf3-P9UjgMocEu7QA_vQ" ) ;
72
72
}
73
73
74
- internal static JweObject GetTestGcmJweObject ( )
74
+ internal static JweObject GetTest256GcmJweObject ( )
75
75
{
76
76
return JweObject . Parse ( "eyJraWQiOiI3NjFiMDAzYzFlYWRlM2E1NDkwZTUwMDBkMzc4ODdiYWE1ZTZlYzBlMjI2YzA3NzA2ZTU5OTQ1MWZjMDMyYTc5IiwiY3R5IjoiYXBwbGljYXRpb25cL2pzb24iLCJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiUlNBLU9BRVAtMjU2In0.8c6vxeZOUBS8A9SXYUSrRnfl1ht9xxciB7TAEv84etZhQQ2civQKso-htpa2DWFBSUm-UYlxb6XtXNXZxuWu-A0WXjwi1K5ZAACc8KUoYnqPldEtC9Q2bhbQgc_qZF_GxeKrOZfuXc9oi45xfVysF_db4RZ6VkLvY2YpPeDGEMX_nLEjzqKaDz_2m0Ae_nknr0p_Nu0m5UJgMzZGR4Sk1DJWa9x-WJLEyo4w_nRDThOjHJshOHaOU6qR5rdEAZr_dwqnTHrjX9Qm9N9gflPGMaJNVa4mvpsjz6LJzjaW3nJ2yCoirbaeJyCrful6cCiwMWMaDMuiBDPKa2ovVTy0Sw.w0Nkjxl0T9HHNu4R.suRZaYu6Ui05Z3-vsw.akknMr3Dl4L0VVTGPUszcA" ) ;
77
77
}
78
+
79
+ internal static JweObject GetTest128GcmJweObject ( )
80
+ {
81
+ return JweObject . Parse ( "eyJlbmMiOiJBMTI4R0NNIiwiYWxnIjoiUlNBLU9BRVAtMjU2In0.WtvYljbsjdEv-Ttxx1p6PgyIrOsLpj1FMF9NQNhJUAHlKchAo5QImgEgIdgJE7HC2KfpNcHiQVqKKZq_y201FVzpicDkNzlPJr5kIH4Lq-oC5iP0agWeou9yK5vIxFRP__F_B8HSuojBJ3gDYT_KdYffUIHkm_UysNj4PW2RIRlafJ6RKYanVzk74EoKZRG7MIr3pTU6LIkeQUW41qYG8hz6DbGBOh79Nkmq7Oceg0ZwCn1_MruerP-b15SGFkuvOshStT5JJp7OOq82gNAOkMl4fylEj2-vADjP7VSK8GlqrA7u9Tn-a4Q28oy0GOKr1Z-HJgn_CElknwkUTYsWbg.PKl6_kvZ4_4MjmjW.AH6pGFkn7J49hBQcwg.zdyD73TcuveImOy4CRnVpw" ) ;
82
+ }
83
+
84
+ internal static JweObject GetTest192GcmJweObject ( )
85
+ {
86
+ return JweObject . Parse ( "eyJlbmMiOiJBMTkyR0NNIiwiYWxnIjoiUlNBLU9BRVAtMjU2In0.FWC8PVaZoR2TRKwKO4syhSJReezVIvtkxU_yKh4qODNvlVr8t8ttvySJ-AjM8xdI6vNyIg9jBMWASG4cE49jT9FYuQ72fP4R-Td4vX8wpB8GonQj40yLqZyfRLDrMgPR20RcQDW2ThzLXsgI55B5l5fpwQ9Nhmx8irGifrFWOcJ_k1dUSBdlsHsYxkjRKMENu5x4H6h12gGZ21aZSPtwAj9msMYnKLdiUbdGmGG_P8a6gPzc9ih20McxZk8fHzXKujjukr_1p5OO4o1N4d3qa-YI8Sns2fPtf7xPHnwi1wipmCC6ThFLU80r3173RXcpyZkF8Y3UacOS9y1f8eUfVQ.JRE7kZLN4Im1Rtdb.eW_lJ-U330n0QHqZnQ._r5xYVvMCrvICwLz4chjdw" ) ;
87
+ }
78
88
}
79
89
}
You can’t perform that action at this time.
0 commit comments