|
1 | 1 | function Get-JWTToken { |
2 | 2 | param( |
3 | | - [Parameter(Mandatory, ParameterSetName="Data")] |
| 3 | + [Parameter(Mandatory, ParameterSetName = "Data")] |
4 | 4 | [string] |
5 | 5 | $KeyData, |
6 | | - [Parameter(Mandatory, ParameterSetName="Path")] |
| 6 | + [Parameter(Mandatory, ParameterSetName = "Path")] |
7 | 7 | [string] |
8 | 8 | $KeyPath, |
9 | | - [Parameter(Mandatory, ParameterSetName="Data")] |
10 | | - [Parameter(Mandatory, ParameterSetName="Path")] |
| 9 | + [Parameter(ParameterSetName = "Path")] |
| 10 | + [string] |
| 11 | + $Passphrase, |
| 12 | + [Parameter(Mandatory, ParameterSetName = "Data")] |
| 13 | + [Parameter(Mandatory, ParameterSetName = "Path")] |
11 | 14 | [int] |
12 | 15 | $AppId, |
13 | 16 | [ValidateScript({ $_ -gt 30 })] |
@@ -37,17 +40,19 @@ function Get-JWTToken { |
37 | 40 | # D) Create Signature |
38 | 41 |
|
39 | 42 | ## 1.) Load PEM |
40 | | - if ($PSCmdlet.ParameterSetName -eq "Path"){ |
| 43 | + if ($PSCmdlet.ParameterSetName -eq "Path") { |
41 | 44 | $KeyData = Get-Content -Path $KeyPath -Raw |
42 | 45 | } |
43 | | - $reader = [System.IO.StringReader]::new($keyData) |
| 46 | + |
| 47 | + $reader = [System.IO.StringReader]::new($KeyData) |
44 | 48 | try{ |
45 | | - $pemReader = New-Object Org.BouncyCastle.OpenSsl.PemReader $reader |
| 49 | + $pemReader = New-Object Org.BouncyCastle.OpenSsl.PemReader $reader, ([BasicPasswordFinder]::new($Passphrase)) |
46 | 50 | $keyPair = $pemReader.ReadObject() |
47 | | - }finally{ |
| 51 | + } |
| 52 | + finally { |
48 | 53 | $reader.Close() |
49 | 54 | } |
50 | | - |
| 55 | + |
51 | 56 | ## 2.) Prepare Signer |
52 | 57 | $signer = [Org.BouncyCastle.Security.SignerUtilities]::GetSigner("SHA256withRSA") |
53 | 58 | $signer.Init($true, $keyPair.Private) |
|
0 commit comments