// Опис: Метод за екстракција и вчитување на јавен клуч од сертификат за соодветен провајдер // Влезни параметри: податочна вредност routingToken // Излезни параметри: PublicKeyClass модел public PublicKeyClass GetPublicKeyForProvider(string routingToken) { var providersRepository = new ProvidersRepository(new UnitOfWork(new InteropContext())); var cerDb = providersRepository.GetPublicKey(routingToken); var cert = new X509Certificate2(Convert.FromBase64String(cerDb)); var publicKeyCert = (RSACryptoServiceProvider)cert.PublicKey.Key; var publicKeyString = publicKeyCert.ToXmlString(false); var fromModulus = publicKeyString.IndexOf("<Modulus>") + "<Modulus>".Length; var toModulus = publicKeyString.LastIndexOf("</Modulus>"); var modulus = publicKeyString.Substring(fromModulus, toModulus - fromModulus); var fromExponent = publicKeyString.IndexOf("<Exponent>") + "<Exponent>".Length; var toExponent = publicKeyString.LastIndexOf("</Exponent>"); var exponent = publicKeyString.Substring(fromExponent, toExponent - fromExponent); var rsaParam = new RSAParameters(); rsaParam.Modulus = Convert.FromBase64String(modulus); rsaParam.Exponent = Convert.FromBase64String(exponent); var rsaParamKey = new RsaWithRsaParameterKey(); rsaParamKey.PublicKey = rsaParam; var publicKey = new PublicKeyClass(); publicKey.PublicKeyRsa = rsaParamKey; publicKey.PublicKeyString = publicKeyString; publicKey.CertString = cerDb; return(publicKey); }
public void Init() { // IoC in EF var context = new TestContext(); var uow = new UnitOfWork(context); _repository = new ProvidersRepository(uow); _dataGenerator = new DataGenerator(); _providers = context.Providers.AddRange(_dataGenerator.GenerateProviders(10)); }