Commit 0f4a78025c for strongswan.org

commit 0f4a78025c984deb13d79e1921d0a59f0a2ec3ae
Author: Arthur Chan <arthur.chan@adalogics.com>
Date:   Thu Jan 29 08:33:30 2026 +0000

    github: Add latest CIFuzz

    Signed-off-by: Arthur Chan <arthur.chan@adalogics.com>

diff --git a/.github/workflows/cifuzz.yml b/.github/workflows/cifuzz.yml
new file mode 100644
index 0000000000..9e159e97ff
--- /dev/null
+++ b/.github/workflows/cifuzz.yml
@@ -0,0 +1,48 @@
+name: CIFuzz
+on: [push, pull_request]
+permissions: {}
+jobs:
+  pre-check:
+    runs-on: ubuntu-latest
+    outputs:
+      should_skip: ${{ steps.skip-check.outputs.should_skip }}
+    steps:
+      - id: skip-check
+        uses: fkirc/skip-duplicate-actions@master
+        with:
+          concurrent_skipping: 'same_content_newer'
+
+  fuzzing:
+    needs: pre-check
+    if: ${{ needs.pre-check.outputs.should_skip != 'true' }}
+    runs-on: ubuntu-latest
+    permissions:
+      security-events: write
+    steps:
+    - name: Build Fuzzers
+      id: build
+      uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master
+      with:
+        oss-fuzz-project-name: 'strongswan'
+        language: c
+
+    - name: Run Fuzzers
+      uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master
+      with:
+        oss-fuzz-project-name: 'strongswan'
+        output-sarif: true
+        language: c
+
+    - name: Upload Crash
+      uses: actions/upload-artifact@v4
+      if: failure() && steps.build.outcome == 'success'
+      with:
+        name: artifacts
+        path: ./out/artifacts
+
+    - name: Upload Sarif
+      if: always() && steps.build.outcome == 'success'
+      uses: github/codeql-action/upload-sarif@v4
+      with:
+        sarif_file: cifuzz-sarif/results.sarif
+        checkout_path: cifuzz-sarif