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); } }