public void TestParseJweHeader_ShouldCorrectlyParseJweHeader() { JweHeader header = JweHeader.Parse("eyJraWQiOiI3NjFiMDAzYzFlYWRlM2E1NDkwZTUwMDBkMzc4ODdiYWE1ZTZlYzBlMjI2YzA3NzA2ZTU5OTQ1MWZjMDMyYTc5IiwiY3R5IjoiYXBwbGljYXRpb25cL2pzb24iLCJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiUlNBLU9BRVAtMjU2In0"); Assert.AreEqual("A256GCM", header.Enc); Assert.AreEqual("RSA-OAEP-256", header.Alg); Assert.AreEqual("application/json", header.Cty); Assert.AreEqual("761b003c1eade3a5490e5000d37887baa5e6ec0e226c07706e599451fc032a79", header.Kid); }
public void TestToJson_ShouldReturnJsonJweHeader() { JweHeader header = new JweHeader("RSA-OAEP-256", "A256GCM", "123", "application/json"); Assert.AreEqual( "{\"kid\":\"123\",\"cty\":\"application/json\",\"enc\":\"A256GCM\",\"alg\":\"RSA-OAEP-256\"}", header.Json.ToString(Formatting.None) ); }
public static JweEncryptedPayload CreateFromEncryptedPayload(string payloadB64, List <X509Certificate2> issuerEncryptionCerts) { var splitPayload = payloadB64.SplitInToSections(); var header = JweHeader.CreateFromEncryptedHeader(splitPayload[0]); var encryptionPrivateKey = FindPrivateKeyForEncryptionCert(issuerEncryptionCerts, header.Certs.FirstOrDefault()); return(new JweEncryptedPayload { Header = JweHeader.CreateFromEncryptedHeader(splitPayload[0]), AuthTag = splitPayload[4], ClearTextMessage = Decode(payloadB64, encryptionPrivateKey) }); }