Skip to content

Commit db9d28e

Browse files
committed
Azure Key Vault : Support for KeyVault certificates.
1 parent 4c88770 commit db9d28e

File tree

92 files changed

+6028
-861
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

92 files changed

+6028
-861
lines changed

src/ResourceManager/KeyVault/Commands.KeyVault.Test/Commands.KeyVault.Test.csproj

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -65,19 +65,20 @@
6565
<HintPath>..\..\..\packages\Microsoft.Azure.Graph.RBAC.3.2.0-preview\lib\net45\Microsoft.Azure.Graph.RBAC.dll</HintPath>
6666
</Reference>
6767
<Reference Include="Microsoft.Azure.KeyVault, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
68-
<SpecificVersion>False</SpecificVersion>
69-
<HintPath>..\..\..\packages\Microsoft.Azure.KeyVault.1.0.0\lib\net45\Microsoft.Azure.KeyVault.dll</HintPath>
68+
<HintPath>..\..\..\packages\Microsoft.Azure.KeyVault.1.0.13-cert-preview\lib\net45\Microsoft.Azure.KeyVault.dll</HintPath>
69+
<Private>True</Private>
7070
</Reference>
7171
<Reference Include="Microsoft.Azure.Management.Authorization">
7272
<HintPath>..\..\..\packages\Microsoft.Azure.Management.Authorization.2.0.0\lib\net40\Microsoft.Azure.Management.Authorization.dll</HintPath>
73+
<Private>True</Private>
74+
</Reference>
75+
<Reference Include="Microsoft.Azure.Management.KeyVault, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
76+
<SpecificVersion>False</SpecificVersion>
77+
<HintPath>..\..\..\packages\Microsoft.Azure.Management.KeyVault.1.0.2-cert-preview\lib\net40\Microsoft.Azure.Management.KeyVault.dll</HintPath>
7378
</Reference>
7479
<Reference Include="Microsoft.Azure.Common.NetFramework">
7580
<HintPath>..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll</HintPath>
7681
</Reference>
77-
<Reference Include="Microsoft.Azure.Management.KeyVault, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
78-
<HintPath>..\..\..\packages\Microsoft.Azure.Management.KeyVault.1.0.1\lib\net40\Microsoft.Azure.Management.KeyVault.dll</HintPath>
79-
<Private>True</Private>
80-
</Reference>
8182
<Reference Include="Microsoft.Azure.ResourceManager, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
8283
<SpecificVersion>False</SpecificVersion>
8384
<HintPath>..\..\..\packages\Microsoft.Azure.Management.Resources.2.20.0-preview\lib\net40\Microsoft.Azure.ResourceManager.dll</HintPath>
@@ -185,7 +186,7 @@
185186
<Compile Include="UnitTests\SetKeyVaultSecretAttributeTests.cs" />
186187
<Compile Include="UnitTests\SetKeyVaultSecretTests.cs" />
187188
</ItemGroup>
188-
<ItemGroup>
189+
<ItemGroup>
189190
<None Include="packages.config">
190191
<SubType>Designer</SubType>
191192
</None>
@@ -210,6 +211,7 @@
210211
<None Include="Scripts\proddata\pfxtest1024.pfx" />
211212
<None Include="Scripts\RunKeyVaultTests.ps1" />
212213
<None Include="Scripts\RunUITests.ps1" />
214+
<None Include="Scripts\VaultCertificateTests.ps1" />
213215
<None Include="Scripts\VaultKeyTests.ps1" />
214216
<None Include="Scripts\VaultManagementTests.ps1" />
215217
<None Include="Scripts\VaultSecretTests.ps1" />

src/ResourceManager/KeyVault/Commands.KeyVault.Test/Scripts/Common.ps1

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
$global:createdKeys = @()
1616
$global:createdSecrets = @()
17+
$global:createdCertificates = @()
1718

1819
$invocationPath = Split-Path $MyInvocation.MyCommand.Definition;
1920

@@ -55,6 +56,14 @@ function Get-SecretName([string]$suffix)
5556
return 'pshts-' + $global:testns + '-' + $suffix
5657
}
5758

59+
<#
60+
.SYNOPSIS
61+
Get test certificate name
62+
#>
63+
function Get-CertificateName([string]$suffix)
64+
{
65+
return 'pshtc-' + $global:testns + '-' + $suffix
66+
}
5867

5968
<#
6069
.SYNOPSIS
@@ -107,6 +116,16 @@ function Get-ImportKeyFile1024([string]$filesuffix, [bool] $exists=$true)
107116
}
108117
}
109118

119+
120+
<#
121+
.SYNOPSIS
122+
Get file path from common data directory
123+
#>
124+
function Get-FilePathFromCommonData([string]$fileName)
125+
{
126+
return Join-Path $invocationPath "commondata\$fileName"
127+
}
128+
110129
<#
111130
.SYNOPSIS
112131
Remove log files under the given folder.
@@ -171,6 +190,16 @@ function Cleanup-OldSecrets
171190
}
172191

173192

193+
<#
194+
.SYNOPSIS
195+
Removes all certificates starting with the prefix
196+
#>
197+
function Initialize-CertificateTest
198+
{
199+
$keyVault = Get-KeyVault
200+
$certificatePattern = Get-CertificateName '*'
201+
Get-AzureKeyVaultCertificate $keyVault | Where-Object {$_.Name -like $certificatePattern} | Remove-AzureKeyVaultCertificate -Force
202+
}
174203

175204
<#
176205
.SYNOPSIS
@@ -220,6 +249,30 @@ function Cleanup-SingleSecretTest
220249
$global:createdSecrets.Clear()
221250
}
222251

252+
<#
253+
.SYNOPSIS
254+
Removes all created certificates.
255+
#>
256+
function Cleanup-SingleCertificateTest
257+
{
258+
$global:createdCertificates | % {
259+
if ($_ -ne $null)
260+
{
261+
try
262+
{
263+
$keyVault = Get-KeyVault
264+
Write-Debug "Removing certificate with name $_ in vault $keyVault"
265+
$catch = Remove-AzureKeyVaultCertificate $keyVault $_ -Force -Confirm:$false
266+
}
267+
catch
268+
{
269+
}
270+
}
271+
}
272+
273+
$global:createdCertificates.Clear()
274+
}
275+
223276
<#
224277
.SYNOPSIS
225278
Run a key test, with cleanup.
@@ -248,6 +301,18 @@ function Run-SecretTest ([ScriptBlock] $test, [string] $testName)
248301
}
249302
}
250303

304+
function Run-CertificateTest ([ScriptBlock] $test, [string] $testName)
305+
{
306+
try
307+
{
308+
Run-Test $test $testName *>> "$testName.debug_log"
309+
}
310+
finally
311+
{
312+
Cleanup-SingleCertificateTest *>> "$testName.debug_log"
313+
}
314+
}
315+
251316
function Run-VaultTest ([ScriptBlock] $test, [string] $testName)
252317
{
253318
try
@@ -360,3 +425,17 @@ function Equal-OperationList($left, $right)
360425

361426
return (-not $diff)
362427
}
428+
429+
function Equal-String($left, $right)
430+
{
431+
if (([string]::IsNullOrEmpty($left)) -and ([string]::IsNullOrEmpty($right)))
432+
{
433+
return $true
434+
}
435+
if (([string]::IsNullOrEmpty($left)) -or ([string]::IsNullOrEmpty($right)))
436+
{
437+
return $false
438+
}
439+
440+
return $left.Equals($right)
441+
}

src/ResourceManager/KeyVault/Commands.KeyVault.Test/Scripts/ControlPlane/KeyVaultManagementTests.ps1

Lines changed: 50 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,17 @@ Param($rgName, $location, $tagName, $tagValue)
4949
"backup",
5050
"restore")
5151
$expectedPermsToSecrets = @("all")
52+
$expectedPermsToSecrets = @("all")
53+
$expectedPermsToCertificates = @("all")
5254

5355
Assert-AreEqual 1 @($actual.AccessPolicies).Count
5456
Assert-AreEqual $objectId $actual.AccessPolicies[0].ObjectId
5557
$result = Compare-Object $expectedPermsToKeys $actual.AccessPolicies[0].PermissionsToKeys
5658
Assert-Null $result
5759
$result = Compare-Object $expectedPermsToSecrets $actual.AccessPolicies[0].PermissionsToSecrets
5860
Assert-Null $result
61+
$result = Compare-Object $expectedPermsToCertificates $actual.AccessPolicies[0].PermissionsToCertificates
62+
Assert-Null $result
5963
}
6064

6165
<#
@@ -238,11 +242,12 @@ function Test-SetRemoveAccessPolicyByUPN
238242

239243
$PermToKeys = @("encrypt", "decrypt", "unwrapKey", "wrapKey", "verify", "sign", "get", "list", "update", "create", "import", "delete", "backup", "restore")
240244
$PermToSecrets = @("get", "list", "set", "delete")
241-
242-
$vault = Set-AzureRmKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -UserPrincipalName $upn -PermissionsToKeys $PermToKeys -PermissionsToSecrets $PermToSecrets -PassThru
243-
244-
CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets
245-
if (-not $global:noADCmdLetMode) {
245+
$PermToCertificates = @("get", "list", "set", "delete")
246+
247+
$vault = Set-AzureRmKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -UserPrincipalName $upn -PermissionsToKeys $PermToKeys -PermissionsToSecrets $PermToSecrets -PermissionsToCertificates $PermToCertificates -PassThru
248+
249+
CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets $PermToCertificates
250+
if (-not $global:noADCmdLetMode) {
246251
Assert-AreEqual $upn (Get-AzureRmADUser -ObjectId $vault.AccessPolicies[0].ObjectId)[0].UserPrincipalName
247252
}
248253

@@ -256,16 +261,17 @@ function Test-SetRemoveAccessPolicyBySPN
256261

257262
$PermToKeys = @()
258263
$PermToSecrets = @("get", "set", "list")
259-
260-
$setAccessPolicyFunc = { Set-AzureRmKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -ServicePrincipalName $spn -PermissionsToKeys $PermToKeys -PermissionsToSecrets $PermToSecrets -PassThru }
261-
264+
$PermToCertificates = @("get", "set")
265+
266+
$setAccessPolicyFunc = { Set-AzureRmKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -ServicePrincipalName $spn -PermissionsToKeys $PermToKeys -PermissionsToSecrets $PermToSecrets -PermissionsToCertificates $PermToCertificates -PassThru }
267+
262268
if ($global:noADCmdLetMode) {
263269
Assert-Throws { &$setAccessPolicyFunc }
264270
}
265271
else{
266272
$vault = &$setAccessPolicyFunc
267273

268-
CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets
274+
CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets $PermToCertificates
269275

270276
Assert-AreEqual $spn (Get-AzureRmADServicePrincipal -ObjectId $vault.AccessPolicies[0].ObjectId)[0].ServicePrincipalName
271277

@@ -280,20 +286,20 @@ function Test-SetRemoveAccessPolicyByObjectId
280286

281287
$PermToKeys = @("encrypt", "decrypt")
282288
$PermToSecrets = @()
289+
$PermToCertificates = @("all")
283290

284291
$vault;
285292
if ($bypassObjectIdValidation.IsPresent)
286293
{
287-
$vault = Set-AzureRmKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -ObjectId $objId -PermissionsToKeys $PermToKeys -BypassObjectIdValidation -PassThru
294+
$vault = Set-AzureRmKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -ObjectId $objId -PermissionsToKeys $PermToKeys -PermissionsToCertificates $PermToCertificates -BypassObjectIdValidation -PassThru
288295
}
289296
else
290297
{
291-
$vault = Set-AzureRmKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -ObjectId $objId -PermissionsToKeys $PermToKeys -PassThru
298+
$vault = Set-AzureRmKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -ObjectId $objId -PermissionsToKeys $PermToKeys -PermissionsToCertificates $PermToCertificates -PassThru
292299
}
293300

294-
295-
CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets
296-
301+
CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets $PermToCertificates
302+
297303
Assert-AreEqual $objId $vault.AccessPolicies[0].ObjectId
298304

299305
$vault = Remove-AzureRmKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -ObjectId $objId -PassThru
@@ -308,10 +314,11 @@ function Test-SetRemoveAccessPolicyByCompoundId
308314

309315
$PermToKeys = @("encrypt", "decrypt")
310316
$PermToSecrets = @()
311-
$vault = Set-AzureRmKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -ObjectId $objId -ApplicationId $appId -PermissionsToKeys $PermToKeys -PassThru
312-
313-
CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets
317+
$PermToCertificates = @("list", "delete")
318+
$vault = Set-AzureRmKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -ObjectId $objId -ApplicationId $appId -PermissionsToKeys $PermToKeys -PermissionsToCertificates $PermToCertificates -PassThru
314319

320+
CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets $PermToCertificates
321+
315322
Assert-AreEqual $objId $vault.AccessPolicies[0].ObjectId
316323
Assert-AreEqual $appId $vault.AccessPolicies[0].ApplicationId
317324

@@ -329,9 +336,10 @@ function Test-RemoveAccessPolicyWithCompoundIdPolicies
329336
# Add three access policies: ObjectId, (ObjectId, App1), (ObjectId, App2)
330337
$PermToKeys = @("encrypt", "decrypt")
331338
$PermToSecrets = @()
339+
$PermToCertificates = @("all")
332340
$vault = Set-AzureRmKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -ObjectId $objId -PermissionsToKeys $PermToKeys -PassThru
333341
$vault = Set-AzureRmKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -ObjectId $objId -ApplicationId $appId1 -PermissionsToKeys $PermToKeys -PassThru
334-
$vault = Set-AzureRmKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -ObjectId $objId -ApplicationId $appId2 -PermissionsToKeys $PermToKeys -PassThru
342+
$vault = Set-AzureRmKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -ObjectId $objId -ApplicationId $appId2 -PermissionsToKeys $PermToKeys -PermissionsToCertificates $PermToCertificates -PassThru
335343
Assert-AreEqual 3 $vault.AccessPolicies.Count
336344

337345
# Remove one policy if specify compound id
@@ -352,10 +360,11 @@ function Test-SetCompoundIdAccessPolicy
352360
# Add one compound id policy
353361
$PermToKeys = @("encrypt", "decrypt")
354362
$PermToSecrets = @()
355-
$vault = Set-AzureRmKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -ObjectId $objId -ApplicationId $appId -PermissionsToKeys $PermToKeys -PassThru
356-
357-
CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets
363+
$PermToCertificates = @()
364+
$vault = Set-AzureRmKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -ObjectId $objId -ApplicationId $appId -PermissionsToKeys $PermToKeys -PermissionsToCertificates $PermToCertificates -PassThru
358365

366+
CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets $PermToCertificates
367+
359368
Assert-AreEqual $objId $vault.AccessPolicies[0].ObjectId
360369
Assert-AreEqual $appId $vault.AccessPolicies[0].ApplicationId
361370

@@ -367,7 +376,7 @@ function Test-SetCompoundIdAccessPolicy
367376
$vault = Set-AzureRmKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -ObjectId $objId -ApplicationId $appId -PermissionsToKeys @("encrypt") -PassThru
368377
Assert-AreEqual 2 $vault.AccessPolicies.Count
369378
$vault = Remove-AzureRmKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -ObjectId $objId -ApplicationId $appId -PassThru
370-
CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets
379+
CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets $PermToCertificates
371380
Assert-AreEqual $objId $vault.AccessPolicies[0].ObjectId
372381
Assert-AreEqual $vault.AccessPolicies[0].ApplicationId $null
373382

@@ -391,7 +400,8 @@ function Test-ModifyAccessPolicy
391400
# Add some perms now
392401
$PermToKeys = @("encrypt", "decrypt", "unwrapKey", "wrapKey", "verify", "sign", "get", "list", "update", "create", "import", "delete", "backup", "restore")
393402
$PermToSecrets = @("get", "list", "set", "delete")
394-
$vault = Set-AzureRmKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -ObjectId $objId -PermissionsToKeys $PermToKeys -PermissionsToSecrets $PermToSecrets -PassThru
403+
$PermToCertificates = @("list", "delete")
404+
$vault = Set-AzureRmKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -ObjectId $objId -PermissionsToKeys $PermToKeys -PermissionsToSecrets $PermToSecrets -PermissionsToCertificates $PermToCertificates -PassThru
395405

396406
CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets
397407
Assert-AreEqual $objId $vault.AccessPolicies[0].ObjectId
@@ -400,22 +410,29 @@ function Test-ModifyAccessPolicy
400410
$vault.AccessPolicies[0].PermissionsToKeys.Remove("unwrapKey")
401411
$vault = $vault.AccessPolicies[0] | Set-AzureRmKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -PassThru
402412

403-
$PermToKeys = @("encrypt", "decrypt", "wrapKey", "verify", "sign", "get", "list", "update", "create", "import", "delete", "backup", "restore")
404-
CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets
413+
$PermToKeys = @("encrypt", "decrypt", "wrapKey", "verify", "sign", "get", "list", "update", "create", "import", "delete", "backup", "restore")
414+
CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets $PermToCertificates
405415

406416
# Change just the secrets perms
407417
$PermToSecrets = @("all")
408418
$vault = Set-AzureRmKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -ObjectId $objId -PermissionsToSecrets $PermToSecrets -PassThru
409-
CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets
419+
CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets $PermToCertificates
410420

411421
# Remove just the keys perms
412422
$PermToKeys = @()
413423
$vault = Set-AzureRmKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -ObjectId $objId -PermissionsToKeys $PermToKeys -PassThru
414-
CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets
415-
424+
CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets $PermToCertificates
425+
416426
# Remove secret perms too
417427
$PermToSecrets = @()
418428
$vault = Set-AzureRmKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -ObjectId $objId -PermissionsToKeys $PermToKeys -PermissionsToSecrets $PermToSecrets -PassThru
429+
CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets $PermToCertificates
430+
431+
# Finally remove certificates perms
432+
$PermToCertificates = @()
433+
$vault = Set-AzureRmKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -ObjectId $objId -PermissionsToCertificates $PermToCertificates -PassThru
434+
CheckVaultAccessPolicy $vault $PermToKeys $PermToSecrets $PermToCertificates
435+
419436
Assert-NotNull $vault
420437
Assert-AreEqual 0 $vault.AccessPolicies.Count
421438
}
@@ -493,9 +510,11 @@ function Test-ModifyAccessPolicyNegativeCases
493510
# "all" plus other perms
494511
Assert-Throws { Set-AzureRmKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -ObjectId $objId -PermissionsToKeys get, all }
495512
Assert-Throws { Set-AzureRmKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -ObjectId $objId -PermissionsToSecrets get, all }
513+
Assert-Throws { Set-AzureRmKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -ObjectId $objId -PermissionsToCertificates get, all }
496514

497515
# random string in perms
498516
Assert-Throws { Set-AzureRmKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -ObjectId $objId -PermissionsToSecrets blah, get }
517+
Assert-Throws { Set-AzureRmKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName -ObjectId $objId -PermissionsToCertificates blah, get }
499518

500519
# invalid set of params
501520
Assert-Throws { Set-AzureRmKeyVaultAccessPolicy -VaultName $existingVaultName -ResourceGroupName $rgName }
@@ -533,12 +552,14 @@ function Test-CreateDeleteVaultWithPiping
533552

534553
function CheckVaultAccessPolicy
535554
{
536-
Param($vault, $expectedPermsToKeys, $expectedPermsToSecrets)
555+
Param($vault, $expectedPermsToKeys, $expectedPermsToSecrets, $expectedPermsToCertificates)
537556
Assert-NotNull $vault
538557
Assert-AreEqual 1 $vault.AccessPolicies.Count
539558

540559
$compare = Compare-Object $vault.AccessPolicies[0].PermissionsToKeys $expectedPermsToKeys
541560
Assert-Null $compare
542561
$compare = Compare-Object $vault.AccessPolicies[0].PermissionsToSecrets $expectedPermsToSecrets
543562
Assert-Null $compare
563+
$compare = Compare-Object $vault.AccessPolicies[0].PermissionsToCertificates $expectedPermsToCertificates
564+
Assert-Null $compare
544565
}

0 commit comments

Comments
 (0)