public (string feilmelding, string dekryptert) Dekrypter(string kryptert)
        {
            try
            {
                var kryptertJson             = JObject.Parse(kryptert);
                var keyCipherValue           = JsonHelper.GetElement(kryptertJson, "kryptertRekvisisjonsmelding.kryptertNokkel.keyCipherValue");
                var rekvisisjonsmeldingshode = JsonHelper.GetElement(kryptertJson, "kryptertRekvisisjonsmelding.rekvisisjonsmeldingshode");
                var thumbprint            = JsonHelper.GetElement(kryptertJson, "kryptertRekvisisjonsmelding.kryptertNokkel.keyName");
                var aesKey                = DekryptHelper.DekrypterLmrEikNøkkel(keyCipherValue, _storeName, _storeLocation, thumbprint);
                var krypterteUtleveringer = JsonHelper.GetElement(kryptertJson, "kryptertRekvisisjonsmelding.krypterteUtleveringer.cipherData");
                var utleveringer          = DekryptHelper.DekrypterBase64Cipher(krypterteUtleveringer, aesKey);

                var melding = "{\n" +
                              "  \"rekvisisjonsmelding\": {\n" +
                              "    \"rekvisisjonsmeldingshode\": " + rekvisisjonsmeldingshode + ",\n" +
                              "    \"utleveringer\": " + utleveringer + "\n" +
                              "  }\n" +
                              "}\n";

                melding = JsonHelper.Format(melding);
                return(null, melding);
            }
            catch (Exception ex)
            {
                return("Dekryptering feilet: " + ex.Message, null);
            }
        }
        public (string feilmelding, string dekryptert) Dekrypter(string kryptert)
        {
            var(deserialisert, errors) = JsonSerializerHelper.Deserialize <KryptertRekvisisjonsmeldingV099>(kryptert);
            if (errors.Any())
            {
                var feil = "Klarte ikke deserialsere kryptert melding: " + String.Join(", ", errors);
                return(feil, null);
            }

            try
            {
                var keyCipherValue = deserialisert?.EikApi?.KryptertRekvisisjonsmelding?.KryptertFhiNokkel?.KeyCipherValue;
                var aesKey         = DekryptHelper.DekrypterNøkkel(keyCipherValue, _storeName, _storeLocation, _thumbprint);

                var serializerSettings = new JsonSerializerSettings
                {
                    ContractResolver = new DefaultContractResolver
                    {
                        NamingStrategy = new CamelCaseNamingStrategy()
                    },
                    Formatting = Formatting.Indented
                };
                var rekvisisjonsmeldinghode = JsonConvert.SerializeObject(deserialisert.EikApi.KryptertRekvisisjonsmelding.Rekvisisjonsmeldinghode, serializerSettings);

                var melding = "{\n" +
                              "  \"rekvisisjonsmelding\": {\n" +
                              "    \"rekvisisjonsmeldinghode\": " + rekvisisjonsmeldinghode + "\n" +
                              "  },\n" +
                              "  \"utleveringerFraRekvisisjon\": [\n";

                int antall = deserialisert.EikApi.KryptertRekvisisjonsmelding.KryptertUtleveringFraRekvisisjon?.Length ?? 0;
                if (antall > 0)
                {
                    foreach (var utlevering in deserialisert.EikApi.KryptertRekvisisjonsmelding.KryptertUtleveringFraRekvisisjon)
                    {
                        var identiteter = DekryptHelper.DekrypterBase64Cipher(utlevering.Rekvisisjonsidentiteter.CipherData, aesKey);
                        var informasjon = DekryptHelper.DekrypterBase64Cipher(utlevering.Rekvisisjonsinformasjon.CipherData, aesKey);

                        melding += "    {\n" +
                                   "    \"rekvisisjonsidentiteter\": " + identiteter + ",\n" +
                                   "    \"rekvisisjonsinformasjon\": " + informasjon + "\n" +
                                   "    }" + (--antall > 0 ? "," : "") + "\n";
                    }
                }

                melding += "  ]\n" +
                           "}\n";

                dynamic parsedJson = JsonConvert.DeserializeObject(melding);
                melding = JsonConvert.SerializeObject(parsedJson, serializerSettings);

                return(null, melding);
            }
            catch (Exception ex)
            {
                return("Dekryptering feilet: " + ex.Message, null);
            }
        }
 public (string feilmelding, string dekryptert) Dekrypter(string kryptert)
 {
     try
     {
         var deserialisert  = System.Text.Json.JsonSerializer.Deserialize <KryptertRapport>(kryptert);
         var cipherData     = deserialisert?.kryptertKonvolutt?.kryptertObjekt?.cipherData;
         var keyCipherValue = deserialisert?.kryptertKonvolutt?.kryptertNokkel?.keyCipherValue;
         var aesKey         = DekryptHelper.DekrypterLmrEikNøkkel(keyCipherValue, _storeName, _storeLocation, _thumbprint);
         var dataAsString   = DekryptHelper.DekrypterBase64Cipher(cipherData, aesKey);
         return(null, dataAsString);
     }
     catch (Exception ex)
     {
         return("Dekryptering feilet: " + ex.Message, null);
     }
 }