Exemple #1
0
        // Опис: Метод за екстракција и вчитување на јавен клуч од сертификат за соодветен провајдер
        // Влезни параметри: податочна вредност 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));
        }