30 lines
1012 B
PowerShell
30 lines
1012 B
PowerShell
$ErrorActionPreference = 'Stop'
|
|
|
|
function ConvertFrom-Utf8Base64 {
|
|
param([string]$Value)
|
|
return [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($Value))
|
|
}
|
|
|
|
$recordPath = ConvertFrom-Utf8Base64 'ZG9jcy9kZXNpZ24vQTAxX+WQr+WKqOeZu+W9leW8leWvvF/orr7orqHorrDlvZUubWQ='
|
|
$effect = ConvertFrom-Utf8Base64 'ZG9jcy9kZXNpZ24vc2NyZWVucy9BMDEt5ZCv5Yqo55m75b2V5byV5a+8LeaViOaenOeovy12My3mloflrZfms6jlhozlhaXlj6MucG5n'
|
|
$record = Get-Content -LiteralPath $recordPath -Raw -Encoding utf8
|
|
$rules = @(
|
|
(ConvertFrom-Utf8Base64 '55m75b2V'),
|
|
(ConvertFrom-Utf8Base64 '5b6u5L+h55m75b2V'),
|
|
(ConvertFrom-Utf8Base64 '6L+Y5rKh5pyJ6LSm5Y+377yf5rOo5YaM6LSm5Y+3'),
|
|
(ConvertFrom-Utf8Base64 '5Y+M5qCH562+'),
|
|
(ConvertFrom-Utf8Base64 '5Yid5aeL5pyq5Yu+6YCJ')
|
|
)
|
|
|
|
foreach ($rule in $rules) {
|
|
if ($record -notmatch [regex]::Escape($rule)) {
|
|
throw "Missing A01 rule: $rule"
|
|
}
|
|
}
|
|
|
|
if (-not (Test-Path -LiteralPath $effect)) {
|
|
throw "Missing archived A01 effect: $effect"
|
|
}
|
|
|
|
Write-Output 'A01-DESIGN-RECORD-AUDIT PASS'
|