using System; using System.Numerics; using System.Text; using ArchestrAServices.Common; namespace Asb.Base.V2; public class SolutionParameters : ISolutionParameters { public string DefaultAsbSolutionName => SvcUtilities.ReadKeyValue(string.Empty, "DefaultASBSolution"); public string GetSolutionPassphrase(string asbSolution, Action errorMessageHandler) { string passphrase; string solutionPassphrase = RegistryHandler.GetSolutionPassphrase(asbSolution, out passphrase); if (!string.IsNullOrEmpty(solutionPassphrase)) { errorMessageHandler?.Invoke(solutionPassphrase); } return passphrase; } public byte[] GetSolutionCertificate(string asbSolution) { string s; if ((s = SvcUtilities.ReadKeyValue(asbSolution, "Certificate")) != null) { return Encoding.UTF8.GetBytes(s); } return null; } public string GetSolutionSaltValue(string asbSolution) { string result; if ((result = SvcUtilities.ReadKeyValue(asbSolution, "saltValue")) != null) { return result; } return null; } public string GetSolutionHashAlgorithm(string asbSolution) { string result; if ((result = SvcUtilities.ReadKeyValue(asbSolution, "HashAlgorthim")) != null) { return result; } return null; } public int GetSolutionPasswordIterations(string asbSolution) { string s; if ((s = SvcUtilities.ReadKeyValue(asbSolution, "passowordIterations")) != null && int.TryParse(s, out var result)) { return result; } return 0; } public string GetSolutionInitialVector(string asbSolution) { string result; if ((result = SvcUtilities.ReadKeyValue(asbSolution, "initailizationVector")) != null) { return result; } return null; } public int GetSolutionKeySize(string asbSolution) { string s; if ((s = SvcUtilities.ReadKeyValue(asbSolution, "keySize")) != null && int.TryParse(s, out var result)) { return result; } return 0; } public BigInteger GetSolutionPrime(string asbSolution) { string value; if ((value = SvcUtilities.ReadKeyValue(asbSolution, "Prime")) != null && BigInteger.TryParse(value, out var result)) { return result; } return BigInteger.Zero; } public BigInteger GetSolutionGenerator(string asbSolution) { string value; if ((value = SvcUtilities.ReadKeyValue(asbSolution, "Generator")) != null && BigInteger.TryParse(value, out var result)) { return result; } return BigInteger.Zero; } }