private async Task <List <KeyBundle> > GetKeyBundleVersionsAsync()
        {
            var keyVaultClient = new KeyVaultClient(_authentication.KeyVaultClientAuthenticationCallback);

            List <KeyItem> keyItems = new List <KeyItem>();

            var page = await keyVaultClient.GetKeyVersionsAsync(_options.KeyVaultUrl, _options.KeyIdentifier);

            keyItems.AddRange(page);
            while (!string.IsNullOrWhiteSpace(page.NextPageLink))
            {
                page = await keyVaultClient.GetKeyVersionsNextAsync(page.NextPageLink);

                keyItems.AddRange(page);
            }
            var keyBundles = new List <KeyBundle>();

            foreach (var keyItem in keyItems)
            {
                var keyBundle = await keyVaultClient.GetKeyAsync(keyItem.Identifier.Identifier);

                keyBundles.Add(keyBundle);
            }

            return(keyBundles);
        }
Пример #2
0
        /// <summary>
        /// List the versions of a key
        /// </summary>
        /// <param name="keyName"> key name</param>
        private static void ListKeyVersions(string keyName)
        {
            var vaultAddress = inputValidator.GetVaultAddress();

            keyName = (keyName == string.Empty) ? inputValidator.GetKeyId() : keyName;

            var numKeyVersions = 0;
            var maxResults     = 1;

            Console.Out.WriteLine("List key versions:---------------");

            var results = keyVaultClient.GetKeyVersionsAsync(vaultAddress, keyName, maxResults).GetAwaiter().GetResult();

            if (results != null)
            {
                numKeyVersions += results.Count();
                foreach (var m in results)
                {
                    Console.Out.WriteLine("\t{0}-{1}", m.Identifier.Name, m.Identifier.Version);
                }
            }

            while (results != null && !string.IsNullOrWhiteSpace(results.NextPageLink))
            {
                results = keyVaultClient.GetKeyVersionsNextAsync(results.NextPageLink).GetAwaiter().GetResult();
                if (results != null)
                {
                    numKeyVersions += results.Count();
                    foreach (var m in results)
                    {
                        Console.Out.WriteLine("\t{0}-{1}", m.Identifier.Name, m.Identifier.Version);
                    }
                }
            }

            Console.Out.WriteLine("\n\tNumber of versions of key {0} in the vault: {1}", keyName, numKeyVersions);
        }