Public/New-ClientSecret.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<#
.EXTERNALHELP SuperSecret.Tools-help.xml
#>

function New-ClientSecret {
    [cmdletbinding()]
    param (
        [Parameter(Mandatory = $false)]
        [switch]$PlainText
    )
    $bytes = New-Object Byte[] 32
    $rand = [System.Security.Cryptography.RandomNumberGenerator]::Create()
    $rand.GetBytes($bytes)
    $clientSecret = [System.Convert]::ToBase64String($bytes) | ConvertTo-SecureString -AsPlainText -Force
    if ($PlainText) {
        ConvertFrom-SecureSecret -SecureString $clientSecret
    }
    else {
        return $clientSecret
    }
}