72 lines
1.6 KiB
PowerShell
72 lines
1.6 KiB
PowerShell
|
function Create-TmpJson($Obj) {
|
||
|
$FileName = [System.IO.Path]::GetTempFileName()
|
||
|
ConvertTo-Json -Depth 100 $Obj | Out-File -Encoding UTF8 $FileName
|
||
|
return $FileName
|
||
|
}
|
||
|
|
||
|
$Auth = Create-TmpJson @{
|
||
|
Version = "1.0.0"
|
||
|
AuthenticationType = "AAD_CERT"
|
||
|
ClientId = $env:ESRPClientId
|
||
|
AuthCert = @{
|
||
|
SubjectName = $env:ESRPAuthCertificateSubjectName
|
||
|
StoreLocation = "LocalMachine"
|
||
|
StoreName = "My"
|
||
|
SendX5c = "true"
|
||
|
}
|
||
|
RequestSigningCert = @{
|
||
|
SubjectName = $env:ESRPCertificateSubjectName
|
||
|
StoreLocation = "LocalMachine"
|
||
|
StoreName = "My"
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$Policy = Create-TmpJson @{
|
||
|
Version = "1.0.0"
|
||
|
}
|
||
|
|
||
|
$Input = Create-TmpJson @{
|
||
|
Version = "1.0.0"
|
||
|
SignBatches = @(
|
||
|
@{
|
||
|
SourceLocationType = "UNC"
|
||
|
SignRequestFiles = @(
|
||
|
@{
|
||
|
SourceLocation = $args[0]
|
||
|
}
|
||
|
)
|
||
|
SigningInfo = @{
|
||
|
Operations = @(
|
||
|
@{
|
||
|
KeyCode = "CP-230012"
|
||
|
OperationCode = "SigntoolSign"
|
||
|
Parameters = @{
|
||
|
OpusName = "VS Code"
|
||
|
OpusInfo = "https://code.visualstudio.com/"
|
||
|
Append = "/as"
|
||
|
FileDigest = "/fd `"SHA256`""
|
||
|
PageHash = "/NPH"
|
||
|
TimeStamp = "/tr `"http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer`" /td sha256"
|
||
|
}
|
||
|
ToolName = "sign"
|
||
|
ToolVersion = "1.0"
|
||
|
},
|
||
|
@{
|
||
|
KeyCode = "CP-230012"
|
||
|
OperationCode = "SigntoolVerify"
|
||
|
Parameters = @{
|
||
|
VerifyAll = "/all"
|
||
|
}
|
||
|
ToolName = "sign"
|
||
|
ToolVersion = "1.0"
|
||
|
}
|
||
|
)
|
||
|
}
|
||
|
}
|
||
|
)
|
||
|
}
|
||
|
|
||
|
$Output = [System.IO.Path]::GetTempFileName()
|
||
|
$ScriptPath = Split-Path -Path $MyInvocation.MyCommand.Definition -Parent
|
||
|
& "$ScriptPath\ESRPClient\packages\Microsoft.ESRPClient.*\tools\ESRPClient.exe" Sign -a $Auth -p $Policy -i $Input -o $Output
|