fix lint (PSScriptAnalyzer) issues #62
@ -1,4 +1,9 @@
|
|||||||
function New-CSCertAttribute {
|
function New-CSCertAttribute {
|
||||||
|
[Diagnostics.CodeAnalysis.SuppressMessageAttribute(
|
||||||
|
'PSUseShouldProcessForStateChangingFunctions',
|
||||||
|
'',
|
||||||
|
Justification = 'Returns a new object and does not change data'
|
||||||
|
)]
|
||||||
<#
|
<#
|
||||||
.SYNOPSIS
|
.SYNOPSIS
|
||||||
Creates required data for a certificate signing request.
|
Creates required data for a certificate signing request.
|
||||||
@ -34,7 +39,15 @@ function New-CSCertAttribute {
|
|||||||
[PSCredentialStore.Certificate.CSRDetails]
|
[PSCredentialStore.Certificate.CSRDetails]
|
||||||
|
|
||||||
.EXAMPLE
|
.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()]
|
[CmdletBinding()]
|
||||||
|
@ -35,7 +35,10 @@ function Test-CSCertificate {
|
|||||||
$CS = Get-CredentialStore -Shared
|
$CS = Get-CredentialStore -Shared
|
||||||
}
|
}
|
||||||
if ($null -ne $CS.PfxCertificate) {
|
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) {
|
if ( $isLinux) {
|
||||||
$cert = Get-CSPfxCertificate -Thumbprint $CS.Thumbprint -StoreName 'My' -StoreLocation 'CurrentUser'
|
$cert = Get-CSPfxCertificate -Thumbprint $CS.Thumbprint -StoreName 'My' -StoreLocation 'CurrentUser'
|
||||||
if ($null -eq $cert) {
|
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) ) {
|
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) {
|
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')]
|
[CmdletBinding(DefaultParameterSetName = 'Private')]
|
||||||
|
[Diagnostics.CodeAnalysis.SuppressMessageAttribute(
|
||||||
|
'PSUseShouldProcessForStateChangingFunctions',
|
||||||
|
'',
|
||||||
|
Justification = 'Adds data into an existing object/file'
|
||||||
|
)]
|
||||||
param (
|
param (
|
||||||
[Parameter(Mandatory = $true, ParameterSetName = 'Shared')]
|
[Parameter(Mandatory = $true, ParameterSetName = 'Shared')]
|
||||||
[Parameter(Mandatory = $true, ParameterSetName = 'Private')]
|
[Parameter(Mandatory = $true, ParameterSetName = 'Private')]
|
||||||
@ -109,7 +114,7 @@ function New-CredentialStoreItem {
|
|||||||
$Cert = Get-PfxCertificate -FilePath $CSContent.PfxCertificate -ErrorAction Stop
|
$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 = @{
|
$MessageParams = @{
|
||||||
Message = 'The given host already exists. Nothing to do here.'
|
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
|
Password = ConvertFrom-SecureString -SecureString $Credential.Password -Key $RSAKey
|
||||||
Created = $CurrentDate
|
Created = $CurrentDate
|
||||||
LastChange = $null
|
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 {
|
try {
|
||||||
ConvertTo-Json -InputObject $CSContent | Out-File -FilePath $Path
|
ConvertTo-Json -InputObject $CSContent | Out-File -FilePath $Path
|
||||||
}
|
}
|
||||||
|
@ -37,6 +37,11 @@ function Set-CredentialStoreItem {
|
|||||||
#>
|
#>
|
||||||
|
|
||||||
[CmdletBinding(DefaultParameterSetName = 'Private')]
|
[CmdletBinding(DefaultParameterSetName = 'Private')]
|
||||||
|
[Diagnostics.CodeAnalysis.SuppressMessageAttribute(
|
||||||
|
'PSUseShouldProcessForStateChangingFunctions',
|
||||||
|
'',
|
||||||
|
Justification = 'Updates existing credential object.'
|
||||||
|
)]
|
||||||
param (
|
param (
|
||||||
[Parameter(Mandatory = $true, ParameterSetName = 'Private')]
|
[Parameter(Mandatory = $true, ParameterSetName = 'Private')]
|
||||||
[Parameter(Mandatory = $true, ParameterSetName = 'Shared')]
|
[Parameter(Mandatory = $true, ParameterSetName = 'Shared')]
|
||||||
@ -105,10 +110,14 @@ function Set-CredentialStoreItem {
|
|||||||
$Cert = Get-PfxCertificate -FilePath $CSContent.PfxCertificate -ErrorAction Stop
|
$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
|
$RSAKey = Get-RandomAESKey
|
||||||
$CSContent.$CredentialName.User = $Credential.UserName
|
$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.LastChange = $CurrentDate
|
||||||
$CSContent.$CredentialName.EncryptedKey = [Convert]::ToBase64String(
|
$CSContent.$CredentialName.EncryptedKey = [Convert]::ToBase64String(
|
||||||
$Cert.PublicKey.Key.Encrypt(
|
$Cert.PublicKey.Key.Encrypt(
|
||||||
|
Loading…
Reference in New Issue
Block a user