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
1111 {
1212 private const string A128CBC_HS256 = "A128CBC-HS256" ;
1313 private const string A256GCM = "A256GCM" ;
14+ private const string A128GCM = "A128GCM" ;
15+ private const string A192GCM = "A192GCM" ;
1416
1517 public JweHeader Header { get ; private set ; }
1618 public string RawHeader { get ; private set ; }
@@ -35,6 +37,12 @@ public string Decrypt(JweConfig config)
3537 case A256GCM :
3638 plaintext = AesGcm . Decrypt ( unwrappedKey , this ) ;
3739 break ;
40+ case A128GCM :
41+ plaintext = AesGcm . Decrypt ( unwrappedKey , this ) ;
42+ break ;
43+ case A192GCM :
44+ plaintext = AesGcm . Decrypt ( unwrappedKey , this ) ;
45+ break ;
3846 case A128CBC_HS256 :
3947 plaintext = AesCbc . Decrypt ( unwrappedKey , this ) ;
4048 break ;
Original file line number Diff line number Diff line change @@ -12,10 +12,34 @@ public class GcmJweObjectTest
1212#if ! NETCOREAPP3_1 && ! NET5_0_OR_GREATER
1313 [ ExpectedException ( typeof ( EncryptionException ) , "AES/GCM/NoPadding is unsupported on .NET Standard < 2.1" ) ]
1414#endif
15- public void TestDecrypt_ShouldReturnDecryptedPayload_WhenPayloadIsGcmEncrypted ( )
15+ public void TestDecrypt_ShouldReturnDecryptedPayload_WhenPayloadIs256GcmEncrypted ( )
1616 {
1717 // 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 ( ) ;
1943
2044 // WHEN
2145 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()
8080 fixture . InterceptResponse ( response ) ;
8181 }
8282
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-
10083 [ TestMethod ]
10184 [ ExpectedException ( typeof ( EncryptionException ) ) ] // <-- THEN
10285 public void TestInterceptResponse_ShouldThrowException_WhenDecryptionFails ( )
Original file line number Diff line number Diff line change @@ -71,9 +71,19 @@ internal static JweObject GetTestCbcJweObject()
7171 return JweObject . Parse ( "eyJraWQiOiI3NjFiMDAzYzFlYWRlM2E1NDkwZTUwMDBkMzc4ODdiYWE1ZTZlYzBlMjI2YzA3NzA2ZTU5OTQ1MWZjMDMyYTc5IiwiY3R5IjoiYXBwbGljYXRpb25cL2pzb24iLCJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwiYWxnIjoiUlNBLU9BRVAtMjU2In0.5bsamlChk0HR3Nqg2UPJ2Fw4Y0MvC2pwWzNv84jYGkOXyqp1iwQSgETGaplIa7JyLg1ZWOqwNHEx3N7gsN4nzwAnVgz0eta6SsoQUE9YQ-5jek0COslUkoqIQjlQYJnYur7pqttDibj87fcw13G2agle5fL99j1QgFPjNPYqH88DMv481XGFa8O3VfJhW93m73KD2gvE5GasOPOkFK9wjKXc9lMGSgSArp3Awbc_oS2Cho_SbsvuEQwkhnQc2JKT3IaSWu8yK7edNGwD6OZJLhMJzWJlY30dUt2Eqe1r6kMT0IDRl7jHJnVIr2Qpe56CyeZ9V0aC5RH1mI5dYk4kHg.yI0CS3NdBrz9CCW2jwBSDw.6zr2pOSmAGdlJG0gbH53Eg.UFgf3-P9UjgMocEu7QA_vQ" ) ;
7272 }
7373
74- internal static JweObject GetTestGcmJweObject ( )
74+ internal static JweObject GetTest256GcmJweObject ( )
7575 {
7676 return JweObject . Parse ( "eyJraWQiOiI3NjFiMDAzYzFlYWRlM2E1NDkwZTUwMDBkMzc4ODdiYWE1ZTZlYzBlMjI2YzA3NzA2ZTU5OTQ1MWZjMDMyYTc5IiwiY3R5IjoiYXBwbGljYXRpb25cL2pzb24iLCJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiUlNBLU9BRVAtMjU2In0.8c6vxeZOUBS8A9SXYUSrRnfl1ht9xxciB7TAEv84etZhQQ2civQKso-htpa2DWFBSUm-UYlxb6XtXNXZxuWu-A0WXjwi1K5ZAACc8KUoYnqPldEtC9Q2bhbQgc_qZF_GxeKrOZfuXc9oi45xfVysF_db4RZ6VkLvY2YpPeDGEMX_nLEjzqKaDz_2m0Ae_nknr0p_Nu0m5UJgMzZGR4Sk1DJWa9x-WJLEyo4w_nRDThOjHJshOHaOU6qR5rdEAZr_dwqnTHrjX9Qm9N9gflPGMaJNVa4mvpsjz6LJzjaW3nJ2yCoirbaeJyCrful6cCiwMWMaDMuiBDPKa2ovVTy0Sw.w0Nkjxl0T9HHNu4R.suRZaYu6Ui05Z3-vsw.akknMr3Dl4L0VVTGPUszcA" ) ;
7777 }
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+ }
7888 }
7989}
You can’t perform that action at this time.
0 commit comments