public async void PartialUnsealAfterInit() { var unsealKeys = TestUnsealKeys.ToArray(); using (var client = new VaultClient(TestVaultAddress)) { var sealStatus = await client.GetSealStatusAsync(); //Assert.Equal(0, sealStatus.Progress); Assert.Equal(true, sealStatus.Sealed); Assert.Equal(unsealKeys.Length, sealStatus.SecretShares); Assert.True(sealStatus.SecretShares > sealStatus.SecretThreshold); var partialKeys = unsealKeys.Take(sealStatus.SecretThreshold - 1); foreach (var key in partialKeys) { sealStatus = await client.DoUnsealAsync(new UnsealRequest { Key = key }); Assert.Equal(1, sealStatus.Progress); Assert.Equal(true, sealStatus.Sealed); Assert.Equal(unsealKeys.Length, sealStatus.SecretShares); Assert.Equal(partialKeys.Count(), sealStatus.SecretThreshold - 1); } sealStatus = await client.DoUnsealAsync(new UnsealRequest { Reset = true }); Assert.Equal(0, sealStatus.Progress); Assert.Equal(true, sealStatus.Sealed); Assert.Equal(unsealKeys.Length, sealStatus.SecretShares); Assert.Equal(partialKeys.Count(), sealStatus.SecretThreshold - 1); } }
public async void UnsealAfterInit() { var unsealKeys = TestUnsealKeys.ToArray(); using (var client = new VaultClient(TestVaultAddress)) { var sealStatus = await client.GetSealStatusAsync(); Assert.Equal(0, sealStatus.Progress); Assert.Equal(true, sealStatus.Sealed); Assert.Equal(unsealKeys.Length, sealStatus.SecretShares); Assert.True(sealStatus.SecretShares > sealStatus.SecretThreshold); var partialKeys = unsealKeys.Take(sealStatus.SecretThreshold); var expectedProgress = 1; foreach (var key in partialKeys) { sealStatus = await client.DoUnsealAsync(new UnsealRequest { Key = key }); Assert.Equal(expectedProgress++, sealStatus.Progress); Assert.Equal(true, sealStatus.Sealed); Assert.Equal(unsealKeys.Length, sealStatus.SecretShares); Assert.Equal(partialKeys.Count(), sealStatus.SecretThreshold); if (expectedProgress == partialKeys.Count()) { // Break just before the threshold keys submitted break; } } // The last key submitted of threshold count behaves differently sealStatus = await client.DoUnsealAsync(new UnsealRequest { Key = partialKeys.Last() }); Assert.Equal(0, sealStatus.Progress); Assert.Equal(false, sealStatus.Sealed); Assert.Equal(unsealKeys.Length, sealStatus.SecretShares); Assert.Equal(partialKeys.Count(), sealStatus.SecretThreshold); sealStatus = await client.GetSealStatusAsync(); Assert.Equal(0, sealStatus.Progress); Assert.Equal(false, sealStatus.Sealed); } }
public async void GetSealStatusBeforeInit() { using (var client = new VaultClient(TestVaultAddress)) { var ex = await Assert.ThrowsAsync <VaultClientException>( async() => await client.GetSealStatusAsync()); Assert.Equal(HttpStatusCode.BadRequest, ex.StatusCode); Assert.Equal("server is not yet initialized", ex.Errors?.Errors?.FirstOrDefault()); } }
public async void GetSealStatusAfterUnseal() { var unsealKeys = TestUnsealKeys.ToArray(); using (var client = new VaultClient(TestVaultAddress)) { var sealStatus = await client.GetSealStatusAsync(); Assert.Equal(0, sealStatus.Progress); Assert.Equal(false, sealStatus.Sealed); Assert.Equal(unsealKeys.Length, sealStatus.SecretShares); Assert.True(sealStatus.SecretShares > sealStatus.SecretThreshold); } }
public async void SealAfterUnseal() { var rootToken = TestConfig.RootTokens[TestConfig.TestVaultAddress]; using (var client = new VaultClient(TestVaultAddress)) { client.VaultToken = rootToken; await client.DoSealAsync(); var sealStatus = await client.GetSealStatusAsync(); Assert.Equal(0, sealStatus.Progress); Assert.Equal(true, sealStatus.Sealed); } }