Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 15 additions & 40 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -91,56 +91,31 @@ jobs:
name: azurehound-bin-${{ matrix.os }}-${{ matrix.arch }}
path: unsigned/azurehound-bin-${{ matrix.os }}-${{ matrix.arch }}

- name: Install osslsigncode & pkcs11 engine
- name: Setup SM_CLIENT_CERT_FILE
shell: bash
run: |
sudo apt-get update
sudo apt-get install -y osslsigncode libengine-pkcs11-openssl
export SM_CLIENT_CERT_FILE=${RUNNER_TEMP}/Certifiact_pkcs12.p12
echo "${{ secrets.SM_CLIENT_CERT_FILE_B64 }}" | base64 --decode > ${SM_CLIENT_CERT_FILE}
echo "SM_CLIENT_CERT_FILE=${SM_CLIENT_CERT_FILE}" >> $GITHUB_ENV

- name: Install DigiCert Client Tools
- name: Setup Software Trust Manager & Sign
id: digicert
uses: digicert/ssm-code-signing@1d820463733701cf1484c7eb5d7d24a15ca2c454 # ratchet:digicert/ssm-code-signing@v1.2.1

- name: Set PKCS#11 Paths
id: pkcs11
run: |
SM_TOOLS_DIR=$(dirname "$(realpath '${{ steps.digicert.outputs.PKCS11_CONFIG }}')")
echo "module=${SM_TOOLS_DIR}/smpkcs11.so" >> "$GITHUB_OUTPUT"
LIB_PKCS11="$(dpkg -L libengine-pkcs11-openssl | grep "libpkcs11.so")"
echo "engine=$LIB_PKCS11" >> "$GITHUB_OUTPUT"

- name: Sign Artifacts via DigiCert Signing Manager
uses: digicert/code-signing-software-trust-action@fae23a455ba4bde62b64fd7cb2f81ade788f5a95 # ratchet:digicert/code-signing-software-trust-action@v1.2.1
with:
simple-signing-mode: true
input: unsigned/azurehound-bin-${{ matrix.os }}-${{ matrix.arch }}/azurehound.exe
keypair-alias: ${{ secrets.SM_KEYPAIR_ALIAS }}
env:
SM_HOST: ${{ secrets.SM_HOST }}
SM_API_KEY: ${{ secrets.SM_API_KEY }}
SM_CLIENT_CERT_FILE_B64: ${{ secrets.SM_CLIENT_CERT_FILE_B64 }}
SM_CLIENT_CERT_FILE: ${{ env.SM_CLIENT_CERT_FILE}}
SM_CLIENT_CERT_PASSWORD: ${{ secrets.SM_CLIENT_CERT_PASSWORD }}
Comment thread
coderabbitai[bot] marked this conversation as resolved.
shell: bash
run: |
export SM_CLIENT_CERT_FILE=$(mktemp)
printenv SM_CLIENT_CERT_FILE_B64 | base64 --decode > "$SM_CLIENT_CERT_FILE"
trap 'rm $SM_CLIENT_CERT_FILE' EXIT

mkdir signed
artifact=unsigned/azurehound-bin-${{ matrix.os }}-${{ matrix.arch }}/azurehound.exe
smctl sign --keypair-alias "${{ secrets.SM_KEYPAIR_ALIAS }}" --input "$artifact" --openssl-pkcs11-engine "${{ steps.pkcs11.outputs.engine }}" --pkcs11-module "${{ steps.pkcs11.outputs.module }}" --tool osslsigncode --verbose
mv "$artifact" "signed/azurehound.exe"

- name: Verify Signed Artifacts
env:
SM_HOST: ${{ secrets.SM_HOST }}
SM_API_KEY: ${{ secrets.SM_API_KEY }}
SM_CLIENT_CERT_FILE_B64: ${{ secrets.SM_CLIENT_CERT_FILE_B64 }}
SM_CLIENT_CERT_PASSWORD: ${{ secrets.SM_CLIENT_CERT_PASSWORD }}
- name: Move Signed Artifacts
shell: bash
run: |
export SM_CLIENT_CERT_FILE=$(mktemp)
printenv SM_CLIENT_CERT_FILE_B64 | base64 --decode > "$SM_CLIENT_CERT_FILE"
smctl certificate download --keypair-alias "${{ secrets.SM_KEYPAIR_ALIAS }}" --format pem --chain --name cert-chain.pem
trap 'rm $SM_CLIENT_CERT_FILE cert-chain.pem' EXIT

for artifact in signed/*; do
osslsigncode verify -CAfile cert-chain.pem "$artifact"
done
mkdir signed
mv unsigned/azurehound-bin-${{ matrix.os }}-${{ matrix.arch }}/azurehound.exe signed/azurehound.exe
Comment thread
coderabbitai[bot] marked this conversation as resolved.

- name: Zip Signed Executables
run: |
Expand Down
Loading