Esempio n. 1
0
        public bool ContainsKey(string key)
        {
            if (key == null)
            {
                throw new ArgumentNullException("key");
            }

            return(store.ContainsAlias(key));
        }
Esempio n. 2
0
        private void UpdateKeyPairType(char[] password)
        {
            Pkcs12Store store = LoadCAPfx(password);

            if (store.ContainsAlias(CaAlias) && store.IsEntryOfType(CaAlias, typeof(AsymmetricKeyEntry)))
            {
                AsymmetricKeyEntry keyEntry = store.GetKey(CaAlias);
                CaCertificate = store.GetCertificate(CaAlias).Certificate;
                KeyPairType   = KeyPairUtils.QueryKeyType(keyEntry.Key);
            }
        }
Esempio n. 3
0
        /// <summary>
        /// Publishes the crl
        /// </summary>
        public void PublishCrl()
        {
            if (_revoked == null)
            {
                return;
                //TODO: may be show a messagebox or something?
            }
            Pkcs12Store store = LoadCAPfx(KeyStorePassword);

            if (!store.ContainsAlias(CaAlias) || !store.IsEntryOfType(CaAlias, typeof(AsymmetricKeyEntry)))
            {
                return;
            }
            AsymmetricKeyParameter key    = store.GetKey(CaAlias).Key;
            X509Certificate        caCert = store.GetCertificate(CaAlias).Certificate;


            var crlNumber = new BigInteger(ReadCrlSerialNumber(), SerialNumberRadix);
            var crlGen    = new X509V2CrlGenerator();

            crlGen.SetIssuerDN(caCert.SubjectDN);
            //crlGen.SetNextUpdate();
            crlGen.SetSignatureAlgorithm(caCert.SigAlgName.Replace("-", ""));
            crlGen.SetThisUpdate(DateTime.UtcNow);
            crlGen.SetNextUpdate(DateTime.UtcNow.AddHours(CrlFrequency));
            crlGen.AddExtension(X509Extensions.CrlNumber, false, new CrlNumber(crlNumber));
            crlGen.AddExtension(X509Extensions.AuthorityKeyIdentifier, false,
                                new AuthorityKeyIdentifierStructure(caCert));
            //crlGen.AddExtension(X509Extensions.KeyUsage, false, new KeyUsage(KeyUsage.KeyAgreement | KeyUsage.CrlSign | KeyUsage.DataEncipherment | KeyUsage.DecipherOnly | KeyUsage.EncipherOnly | KeyUsage.KeyEncipherment | KeyUsage.NonRepudiation));
            foreach (RevokedSerial rs in _revoked.RevokedSerialCollection)
            {
                crlGen.AddCrlEntry(new BigInteger(rs.Serial), rs.RevocationDate, rs.Reason);
            }
            X509Crl crl        = crlGen.Generate(key);
            string  crlEncoded = PemUtilities.Encode(crl);

            File.WriteAllText(CrlFilePath, crlEncoded);
            IncrementCrlSerial();
        }