Пример #1
0
        public void ParseOption(object option)
        {
            var loadKeyStoreOptions = (LoadKeyStoreOption)option;

            if (!_fileSystem.SetCurrentPath(loadKeyStoreOptions.Path))
            {
                _userOutput.WriteLine("Invalid path.");
                return;
            }

            var secureStr  = _passwordLoader.PreloadPassword(loadKeyStoreOptions.Password);
            var privateKey = _keyStore.KeyStoreDecrypt(KeyRegistryTypes.DefaultKey);

            // If no key store exists then KeyStoreDecrypt will log a message and return null for the private key
            if (privateKey == null)
            {
                secureStr?.Dispose();
                return;
            }

            var publicKeyStr = privateKey.GetPublicKey().Bytes.KeyToString();

            _userOutput.WriteLine($"Keystore decrypted, Public Key: {publicKeyStr}");
            secureStr?.Dispose();
        }
        public void ParseOption(object option)
        {
            var generateKeyStoreOption = (GenerateKeyStoreOption)option;

            if (!_fileSystem.SetCurrentPath(generateKeyStoreOption.Path))
            {
                _userOutput.WriteLine("Invalid path.");
                return;
            }

            var       secureStr = _passwordLoader.PreloadPassword(generateKeyStoreOption.Password);
            Exception error     = null;

            try
            {
                var privateKey = _keyStore.KeyStoreGenerate(KeyRegistryTypes.DefaultKey).ConfigureAwait(false)
                                 .GetAwaiter().GetResult();
                var publicKey = privateKey.GetPublicKey().Bytes.KeyToString();

                _userOutput.WriteLine($"Generated key store at path: {Path.GetFullPath(generateKeyStoreOption.Path)}");
                _userOutput.WriteLine($"Public Key: {publicKey}");
            }
            catch (Exception e)
            {
                _userOutput.WriteLine($"Error generating keystore at path {generateKeyStoreOption.Path}");
                error = e;
            }
            finally
            {
                secureStr?.Dispose();
                if (error != null)
                {
                    throw error;
                }
            }
        }