private void DecryptTokenRecursive(JToken jToken, byte[] privateKey) { if (jToken.HasValues) { foreach (var child in jToken) { DecryptTokenRecursive(child, privateKey); } } else if (IsEncryptable(jToken)) { try { var valueStirng = jToken.Value <string>(); if (BoxedMessage.IsBoxedMessage(valueStirng) && BoxedMessage.TryCreate(valueStirng, out BoxedMessage boxedMessage)) { var decryptedValue = _boxedMessageCrypto.Decrypt(boxedMessage, privateKey); ((JProperty)jToken.Parent).Value = decryptedValue; } ; } catch { // TODO: make error behavior configurable throw; } } }
private void EncryptTokenRecursive(JToken jToken, byte[] publicKey) { if (jToken.HasValues) { foreach (var child in jToken) { EncryptTokenRecursive(child, publicKey); } } else if (IsEncryptable(jToken)) { try { var valueStirng = jToken.Value <string>(); if (!BoxedMessage.IsBoxedMessage(valueStirng)) { var encryptedValue = _boxedMessageCrypto.Encrypt(valueStirng, publicKey).ToString(); ((JProperty)jToken.Parent).Value = encryptedValue; } ; } catch { // TODO: make error behavior configurable throw; } } }