コード例 #1
0
ファイル: CsrTests.cs プロジェクト: zhouson/acme.net
        public void Should_serialize_a_certificate_signing_request()
        {
            // Arrange

            var keyManager = new FileKeyStore(Environment.CurrentDirectory);
            var rsa        = keyManager.GetOrCreateKey("test.startliste.info");
            var key        = rsa.ExportParameters(true);

            var data = new CertificateRequestData("test.startliste.info", key)
            {
                C  = "DE",
                S  = "NRW",
                L  = "Werther",
                O  = "Aero Club Bünde",
                OU = ""
            };

            var serializer = new Asn1Serializer();
            var sut        = new CertificateRequestAsn1DEREncoder(serializer);


            // Act
            var csr    = sut.Encode(data);
            var der    = sut.EncodeAsDER(data);
            var base64 = sut.EncodeAsBase64(data);
            var bytes  = serializer.Serialize(csr).ToArray();

            // Assert

            File.WriteAllBytes(@"request.der", der);
            File.WriteAllText(@"request.txt", base64);
            bytes.Should().NotBeNull();

            // openssl req -in r:\request.txt -noout -text
        }
コード例 #2
0
        public void ShouldSaveAndLoadKeyToFile()
        {
            // create a temp path
            string tmpPath = Path.Join(Path.GetTempPath(), Guid.NewGuid().ToString());

            Directory.CreateDirectory(tmpPath);

            var fksForWrite = new FileKeyStore(tmpPath);

            byte[] bytesToWrite = { 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x0, 0x1, 0x2, 0x3, 0x4, 0x5 };

            // write some bytes to the salt file
            fksForWrite.SaveEncryptedKey(bytesToWrite);

            // check file if bytes where written
            byte[] directFromFile = File.ReadAllBytes(Path.Join(tmpPath, "signing.key"));

            directFromFile.Should().ContainInOrder(bytesToWrite);


            // see if we can load them again
            var fksForLoad = new FileKeyStore(tmpPath);

            byte[] loadedByFks = fksForLoad.LoadEncryptedKey();
            loadedByFks.Should().ContainInOrder(bytesToWrite);
        }
コード例 #3
0
        public static async Task RequestSslCertificate(Options options)
        {
            Log.Level = Oocx.Acme.Services.LogLevel.Info;

            if (!Directory.Exists(options.StoreDirectory))
            {
                Directory.CreateDirectory(options.StoreDirectory);
            }

            IKeyStore keyStore = new FileKeyStore(options.StoreDirectory);

            IAcmeClient client = new AcmeClient(
                options.AcmeServer,
                options.AccountKeyName,
                keyStore
                );

            var challenge = new AzureStorageChallengeProvider(
                options,
                client
                );

            IServerConfigurationProvider server = new ConfigureToFiles(options);

            var acmep = new AcmeProcess(
                options,
                challenge,
                server,
                client
                );

            await acmep.StartAsync();

            await challenge.CleanupUsedChallengeFilesAsync();
        }
コード例 #4
0
        //[Fact]
        public void Create_pfx()
        {
            // Arrange
            var keyManager = new FileKeyStore(Environment.CurrentDirectory);
            var key        = keyManager.GetOrCreateKey("test.startliste.info").ExportParameters(true);

            Pkcs12.CreatePfxFile(key, @"test.startliste.info.cer", "test", @"test.startliste.info.pfx");

            Assert.True(File.Exists(@"test.startliste.info.pfx"));
        }
コード例 #5
0
        public void Convert_xml_key_to_pem()
        {
            var name = "test.startliste2.info";

            var keyStore = new FileKeyStore(Environment.CurrentDirectory);
            var key      = keyStore.GetOrCreateKey(name);
            var sut      = new KeyExporter(Environment.CurrentDirectory);

            // Act
            sut.Save(key.ExportParameters(true), name, KeyFormat.Pem);

            Assert.True(File.Exists(Path.Combine(Environment.CurrentDirectory, "test.startliste.info.pem")));
        }
コード例 #6
0
ファイル: CsrTests.cs プロジェクト: zhouson/acme.net
        public void Convert_xml_key_to_pem()
        {
            // Arrange
            var keyStore = new FileKeyStore(Environment.CurrentDirectory);
            var key      = keyStore.GetOrCreateKey("test.startliste.info");
            var sut      = new KeyExport(Environment.CurrentDirectory);

            // Act
            sut.Save(key.ExportParameters(true), "test.startliste.info", KeyExport.Format.PEM);

            // Assert
            File.Exists(Path.Combine(Environment.CurrentDirectory, "test.startliste.info.pem")).Should().BeTrue();
        }
コード例 #7
0
        public void Initialize()
        {
            var config = new VaultConfig();

            _keyStoreConfig             = new KeyStoreConfig();
            _keyStoreIOSettingsProvider = new VaultKeyStoreIOSettingsProvider(config);

            ILogManager logger = LimboLogs.Instance;

            _serializer   = new EthereumJsonSerializer();
            _cryptoRandom = new CryptoRandom();
            _store        = new FileKeyStore(_keyStoreConfig, _serializer, new AesEncrypter(_keyStoreConfig, logger), _cryptoRandom, logger, _keyStoreIOSettingsProvider);
        }
コード例 #8
0
ファイル: KeyStoreTests.cs プロジェクト: prestwich/nethermind
        public void Initialize()
        {
            _keyStoreConfig = new KeyStoreConfig();

            _testPasswordSecured  = new SecureString();
            _wrongPasswordSecured = new SecureString();

            for (int i = 0; i < _testPassword.Length; i++)
            {
                _testPasswordSecured.AppendChar(_testPassword[i]);
                _wrongPasswordSecured.AppendChar('*');
            }

            _testPasswordSecured.MakeReadOnly();
            _wrongPasswordSecured.MakeReadOnly();

            ILogManager logger = LimboLogs.Instance;

            _serializer   = new EthereumJsonSerializer();
            _cryptoRandom = new CryptoRandom();
            _store        = new FileKeyStore(_keyStoreConfig, _serializer, new AesEncrypter(_keyStoreConfig, logger), _cryptoRandom, logger);
        }
コード例 #9
0
ファイル: KeyStoreTests.cs プロジェクト: uzbekdev1/nethermind
            public TestContext()
            {
                KeyStoreConfig = new KeyStoreConfig();
                KeyStoreConfig.KeyStoreDirectory = NUnit.Framework.TestContext.CurrentContext.WorkDirectory;

                TestPasswordSecured  = new SecureString();
                WrongPasswordSecured = new SecureString();

                for (int i = 0; i < TestPassword.Length; i++)
                {
                    TestPasswordSecured.AppendChar(TestPassword[i]);
                    WrongPasswordSecured.AppendChar('*');
                }

                TestPasswordSecured.MakeReadOnly();
                WrongPasswordSecured.MakeReadOnly();

                ILogManager logger = LimboLogs.Instance;

                Serializer   = new EthereumJsonSerializer();
                CryptoRandom = new CryptoRandom();
                Store        = new FileKeyStore(KeyStoreConfig, Serializer, new AesEncrypter(KeyStoreConfig, logger), CryptoRandom, logger, new PrivateKeyStoreIOSettingsProvider(KeyStoreConfig));
            }
コード例 #10
0
 public void ShouldThrowOnEmptyBasePath(string path)
 {
     Assert.Throws <ArgumentException>(() => { _ = new FileKeyStore(path); });
 }
コード例 #11
0
 public void ShouldThrowOnNonExistingBasePath()
 {
     Assert.Throws <DirectoryNotFoundException>(() => { _ = new FileKeyStore("does-not-exist"); });
 }