fix lint (PSScriptAnalyzer) issues #62
@ -1,4 +1,9 @@
|
||||
function New-CSCertAttribute {
|
||||
[Diagnostics.CodeAnalysis.SuppressMessageAttribute(
|
||||
'PSUseShouldProcessForStateChangingFunctions',
|
||||
'',
|
||||
Justification = 'Returns a new object and does not change data'
|
||||
)]
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Creates required data for a certificate signing request.
|
||||
@ -34,7 +39,15 @@ function New-CSCertAttribute {
|
||||
[PSCredentialStore.Certificate.CSRDetails]
|
||||
|
||||
.EXAMPLE
|
||||
New-CSCertAttribute -Country 'DE' -State 'BW' -City 'Karlsruhe' -Organization 'AwesomeIT' -OrganizationalUnitName '' -CommonName 'MyPrivateCert'
|
||||
$AttribParams = @{
|
||||
Country = 'DE'
|
||||
State = 'BW'
|
||||
City = 'Karlsruhe'
|
||||
Organization ='AwesomeIT'
|
||||
OrganizationalUnitName ='PSCredentialStore'
|
||||
CommonName ='MyPrivateCert'
|
||||
}
|
||||
New-CSCertAttribute @AttribParams
|
||||
#>
|
||||
|
||||
[CmdletBinding()]
|
||||
|
@ -35,7 +35,10 @@ function Test-CSCertificate {
|
||||
$CS = Get-CredentialStore -Shared
|
||||
}
|
||||
if ($null -ne $CS.PfxCertificate) {
|
||||
Write-Warning 'There is a Pfx certificate file linked in the store. Certificates saved in the Cert store will be ignored!'
|
||||
Write-Warning -Message (
|
||||
'There is a Pfx certificate file linked in the store. ' +
|
||||
'Certificates saved in the Cert store will be ignored!'
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
@ -47,13 +50,28 @@ function Test-CSCertificate {
|
||||
if ( $isLinux) {
|
||||
$cert = Get-CSPfxCertificate -Thumbprint $CS.Thumbprint -StoreName 'My' -StoreLocation 'CurrentUser'
|
||||
if ($null -eq $cert) {
|
||||
$cert = Get-CSPfxCertificate -Thumbprint $CS.Thumbprint -StoreName 'Root' -StoreLocation 'LocalMachine'
|
||||
$PFXParams = @{
|
||||
Thumbprint = $CS.Thumbprint
|
||||
StoreName = 'Root'
|
||||
StoreLocation = 'LocalMachine'
|
||||
}
|
||||
$cert = Get-CSPfxCertificate @PFXParams
|
||||
}
|
||||
}
|
||||
elseif ( (! $isLinux) -or ($isWindows) ) {
|
||||
$cert = Get-CSPfxCertificate -Thumbprint $CS.Thumbprint -StoreName 'My' -StoreLocation 'LocalMachine'
|
||||
$PFXParams = @{
|
||||
Thumbprint = $CS.Thumbprint
|
||||
StoreName = 'My'
|
||||
StoreLocation = 'LocalMachine'
|
||||
}
|
||||
$cert = Get-CSPfxCertificate @PFXParams
|
||||
if ($null -eq $cert) {
|
||||
$cert = Get-CSPfxCertificate -Thumbprint $CS.Thumbprint -StoreName 'Root' -StoreLocation 'LocalMachine'
|
||||
$PFXParams = @{
|
||||
Thumbprint = $CS.Thumbprint
|
||||
StoreName = 'Root'
|
||||
StoreLocation = 'LocalMachine'
|
||||
}
|
||||
$cert = Get-CSPfxCertificate @PFXParams
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -36,6 +36,11 @@ function New-CredentialStoreItem {
|
||||
#>
|
||||
|
||||
[CmdletBinding(DefaultParameterSetName = 'Private')]
|
||||
[Diagnostics.CodeAnalysis.SuppressMessageAttribute(
|
||||
'PSUseShouldProcessForStateChangingFunctions',
|
||||
'',
|
||||
Justification = 'Adds data into an existing object/file'
|
||||
)]
|
||||
param (
|
||||
[Parameter(Mandatory = $true, ParameterSetName = 'Shared')]
|
||||
[Parameter(Mandatory = $true, ParameterSetName = 'Private')]
|
||||
@ -109,7 +114,7 @@ function New-CredentialStoreItem {
|
||||
$Cert = Get-PfxCertificate -FilePath $CSContent.PfxCertificate -ErrorAction Stop
|
||||
}
|
||||
|
||||
if (Get-Member -InputObject $CSContent -Name $CredentialName -Membertype Properties) {
|
||||
if (Get-Member -InputObject $CSContent -Name $CredentialName -MemberType Properties) {
|
||||
$MessageParams = @{
|
||||
Message = 'The given host already exists. Nothing to do here.'
|
||||
}
|
||||
@ -123,9 +128,20 @@ function New-CredentialStoreItem {
|
||||
Password = ConvertFrom-SecureString -SecureString $Credential.Password -Key $RSAKey
|
||||
Created = $CurrentDate
|
||||
LastChange = $null
|
||||
EncryptedKey = [Convert]::ToBase64String($Cert.PublicKey.Key.Encrypt($RSAKey, [System.Security.Cryptography.RSAEncryptionPadding]::Pkcs1))
|
||||
EncryptedKey = [Convert]::ToBase64String(
|
||||
$Cert.PublicKey.Key.Encrypt(
|
||||
$RSAKey,
|
||||
[System.Security.Cryptography.RSAEncryptionPadding]::Pkcs1
|
||||
)
|
||||
)
|
||||
}
|
||||
Add-Member -InputObject $CSContent -Name $CredentialName -MemberType NoteProperty -Value $CredentialHash
|
||||
$MemberParams = @{
|
||||
InputObject = $CSContent
|
||||
Name = $CredentialName
|
||||
MemberType = 'NoteProperty'
|
||||
Value = $CredentialHash
|
||||
}
|
||||
Add-Member @MemberParams
|
||||
try {
|
||||
ConvertTo-Json -InputObject $CSContent | Out-File -FilePath $Path
|
||||
}
|
||||
|
@ -37,6 +37,11 @@ function Set-CredentialStoreItem {
|
||||
#>
|
||||
|
||||
[CmdletBinding(DefaultParameterSetName = 'Private')]
|
||||
[Diagnostics.CodeAnalysis.SuppressMessageAttribute(
|
||||
'PSUseShouldProcessForStateChangingFunctions',
|
||||
'',
|
||||
Justification = 'Updates existing credential object.'
|
||||
)]
|
||||
param (
|
||||
[Parameter(Mandatory = $true, ParameterSetName = 'Private')]
|
||||
[Parameter(Mandatory = $true, ParameterSetName = 'Shared')]
|
||||
@ -105,10 +110,14 @@ function Set-CredentialStoreItem {
|
||||
$Cert = Get-PfxCertificate -FilePath $CSContent.PfxCertificate -ErrorAction Stop
|
||||
}
|
||||
|
||||
if (Get-Member -InputObject $CSContent -Name $CredentialName -Membertype Properties) {
|
||||
if (Get-Member -InputObject $CSContent -Name $CredentialName -MemberType Properties) {
|
||||
$RSAKey = Get-RandomAESKey
|
||||
$CSContent.$CredentialName.User = $Credential.UserName
|
||||
$CSContent.$CredentialName.Password = ConvertFrom-SecureString -SecureString $Credential.Password -Key $RSAKey
|
||||
$ConvertParams = @{
|
||||
SecureString = $Credential.Password
|
||||
Key = $RSAKey
|
||||
}
|
||||
$CSContent.$CredentialName.Password = ConvertFrom-SecureString @ConvertParams
|
||||
$CSContent.$CredentialName.LastChange = $CurrentDate
|
||||
$CSContent.$CredentialName.EncryptedKey = [Convert]::ToBase64String(
|
||||
$Cert.PublicKey.Key.Encrypt(
|
||||
|
Loading…
Reference in New Issue
Block a user