Private/Get-Base64UrlEncoded.ps1
function Get-Base64UrlEncoded { [CmdletBinding()] param ( [Parameter(Mandatory)] $InputObject ) if ($InputObject -is [string]) { return [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($InputObject)) -replace '\+', '-' -replace '/', '_' -replace '=' } elseif ($InputObject -is [byte[]]) { return [Convert]::ToBase64String($InputObject) -replace '\+', '-' -replace '/', '_' -replace '=' } else { throw "Get-Base64UrlEncoded requires string or byte array input, received $($InputObject.GetType())" } } |