Skip to content

Commit cdbd0d3

Browse files
author
Yevgeny Pats
committed
fuzzit integration example
1 parent 5be2afd commit cdbd0d3

File tree

3 files changed

+55
-33
lines changed

3 files changed

+55
-33
lines changed

.github/workflows/push.yml

Lines changed: 27 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -45,21 +45,30 @@ jobs:
4545
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
4646
CODECOV_PR: ${{ github.event.after }}
4747
CODECOV_SHA: ${{ github.sha }}
48-
# fuzz:
49-
# name: Fuzz
50-
# runs-on: ubuntu-latest
51-
# steps:
52-
# - name: Install Go
53-
# uses: actions/setup-go@v1
54-
# with:
55-
# go-version: 1.13
56-
# - name: Checkout code
57-
# uses: actions/checkout@v1
58-
59-
# - name: fuzz regression tests
60-
# run: cd _fuzz/it && ./fuzz-ci local-regression 2>&1 | grep -vE '^Running|^Executed'
61-
# - name: fuzz continuous job
62-
# run: export PATH="$PATH:$(go env GOPATH)/bin"; cd _fuzz/it && ./fuzz-ci fuzzing
63-
# if: github.event_name == 'push' && github.ref == 'refs/heads/master'
64-
# env:
65-
# FUZZIT_API_KEY: ${{ secrets.FUZZIT_API_KEY }}
48+
fuzzit-regression:
49+
name: Fuzzit Regression
50+
runs-on: ubuntu-latest
51+
steps:
52+
- name: Install Go
53+
uses: actions/setup-go@v1
54+
with:
55+
go-version: 1.13
56+
- name: Checkout code
57+
uses: actions/checkout@v1
58+
- name: fuzz regression job
59+
run: export PATH="$PATH:$(go env GOPATH)/bin"; ./scripts/fuzz.sh local-regression
60+
fuzzit-fuzzing:
61+
if: github.event_name == 'push' && github.ref == 'refs/heads/master'
62+
name: Fuzzit Fuzzing
63+
runs-on: ubuntu-latest
64+
steps:
65+
- name: Install Go
66+
uses: actions/setup-go@v1
67+
with:
68+
go-version: 1.13
69+
- name: Checkout code
70+
uses: actions/checkout@v1
71+
- name: fuzz continuous job
72+
run: export PATH="$PATH:$(go env GOPATH)/bin"; ./scripts/fuzz.sh fuzzing
73+
env:
74+
FUZZIT_API_KEY: ${{ secrets.FUZZIT_API_KEY }}

scripts/fuzz.sh

100644100755
Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,26 +16,15 @@ PATH=${PATH}:"${GOB}"
1616
# target name can only contain lower-case letters (a-z), digits (0-9) and a dash (-)
1717
# to add another target, make sure to create it with `fuzzit create target`
1818
# before using `fuzzit create job`
19-
TARGET=micro-starter-kit
20-
19+
TARGET=crypto
20+
cd ./shared/crypto
2121
go-fuzz-build -libfuzzer -o ${TARGET}.a .
2222
clang -fsanitize=fuzzer ${TARGET}.a -o ${TARGET}
2323

2424
# install fuzzit for talking to fuzzit.dev service
2525
# or latest version:
2626
# https://github.com/fuzzitdev/fuzzit/releases/latest/download/fuzzit_Linux_x86_64
27-
wget -q -O fuzzit https://github.com/fuzzitdev/fuzzit/releases/download/v2.4.35/fuzzit_Linux_x86_64
27+
wget -q -O fuzzit https://github.com/fuzzitdev/fuzzit/releases/download/v2.4.54/fuzzit_Linux_x86_64
2828
chmod a+x ./fuzzit
2929

30-
# upload fuzz target for long fuzz testing on fuzzit.dev server
31-
# or run locally for regression
32-
if [ "${GITHUB_EVENT_NAME}" == "push" ]; then
33-
TYPE=fuzzing
34-
elif [ "${GITHUB_EVENT_NAME}" == "pull_request" ]; then
35-
TYPE=local-regression
36-
else
37-
echo "Unexpected event '${GITHUB_EVENT_NAME}'"
38-
exit 1
39-
fi
40-
41-
./fuzzit create job --type $TYPE kkowalczyk/${TARGET} ${TARGET}
30+
./fuzzit create job --type $1 m-starter-kit/${TARGET} ${TARGET}

shared/crypto/crypto_fuzz.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// +build gofuzz
2+
3+
package crypto
4+
5+
import "log"
6+
7+
func Fuzz(data []byte) int {
8+
encrypted_data, err := AesEncrypt(string(data), "12345678123456781234567812345678")
9+
if err != nil {
10+
log.Panic("tried encrypt %v got err %v", encrypted_data, err)
11+
}
12+
13+
decrypted_data, err := AesDecrypt(encrypted_data, "12345678123456781234567812345678")
14+
if err != nil {
15+
log.Panic("tried to encrypt/decrypt %v got err %v", data, err)
16+
}
17+
18+
if decrypted_data != string(data) {
19+
log.Panic("decrypt(encrypt(%v)) != %v", data, data)
20+
}
21+
22+
return 0
23+
}
24+

0 commit comments

Comments
 (0)