31 lines
1.8 KiB
PowerShell
31 lines
1.8 KiB
PowerShell
param(
|
|
[string]$KeyDirectory = (Join-Path $env:USERPROFILE '.zombie_buddy\signing\Riggs0'),
|
|
[string]$SteamID64 = '76561198079674652',
|
|
[switch]$Initialize
|
|
)
|
|
$ErrorActionPreference='Stop'
|
|
$signer=Join-Path $PSScriptRoot 'tools\SignZBS.java'
|
|
if($Initialize) {
|
|
if(Test-Path -LiteralPath (Join-Path $KeyDirectory 'author.properties')) {throw 'Signing identity already configured.'}
|
|
New-Item -ItemType Directory -Force -Path $KeyDirectory | Out-Null
|
|
$identity=[Security.Principal.WindowsIdentity]::GetCurrent().User
|
|
$acl=[Security.AccessControl.DirectorySecurity]::new()
|
|
$acl.SetOwner($identity)
|
|
$acl.SetAccessRuleProtection($true,$false)
|
|
$inherit=[Security.AccessControl.InheritanceFlags]'ContainerInherit,ObjectInherit'
|
|
$propagate=[Security.AccessControl.PropagationFlags]::None
|
|
$allow=[Security.AccessControl.AccessControlType]::Allow
|
|
$acl.AddAccessRule([Security.AccessControl.FileSystemAccessRule]::new($identity,'FullControl',$inherit,$propagate,$allow))
|
|
$system=[Security.Principal.SecurityIdentifier]::new('S-1-5-18')
|
|
$acl.AddAccessRule([Security.AccessControl.FileSystemAccessRule]::new($system,'FullControl',$inherit,$propagate,$allow))
|
|
Set-Acl -LiteralPath $KeyDirectory -AclObject $acl
|
|
& java $signer init $KeyDirectory $SteamID64
|
|
if($LASTEXITCODE -ne 0) {throw 'Signing identity initialization failed.'}
|
|
}
|
|
$info=Get-Content -LiteralPath (Join-Path $PSScriptRoot 'common\mod.info')
|
|
$jarEntry=($info | Where-Object {$_ -match '^javaJarFile='}) -replace '^javaJarFile=',''
|
|
$jar=Join-Path $PSScriptRoot ('42.20\'+$jarEntry)
|
|
& java $signer sign $KeyDirectory $jar
|
|
if($LASTEXITCODE -ne 0) {throw 'JAR signing failed.'}
|
|
Copy-Item -LiteralPath (Join-Path $KeyDirectory 'public-profile-key.txt') -Destination (Join-Path $PSScriptRoot 'ZombieBuddy-public-key.txt') -Force
|