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 }
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); }
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(); }
//[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")); }
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"))); }
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(); }
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); }
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); }
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)); }
public void ShouldThrowOnEmptyBasePath(string path) { Assert.Throws <ArgumentException>(() => { _ = new FileKeyStore(path); }); }
public void ShouldThrowOnNonExistingBasePath() { Assert.Throws <DirectoryNotFoundException>(() => { _ = new FileKeyStore("does-not-exist"); }); }