prysm-pulse/nogo_config.json
Victor Farazdagi 78465e2549
QSP-6: Enforces crypto-secure PRNGs (#6401)
* adds cryptorand analyzer

* better naming

* rely on suffix

* sync/pending_* use crypto/rand

* define shared/rand

* updates fetcher

* fixes rand issue in sync package

* gofmt

* shared/rand: more docs + add exclusion nogo_config.json

* updates validator/assignments

* updates comment

* fixes remaning cases

* re-arranges comments

* fixes tests

* renames in shared/rand API

* adds simple no-panic test

* gazelle

Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2020-06-26 09:58:47 -05:00

115 lines
3.2 KiB
JSON

{
"unsafeptr": {
"exclude_files": {
"external/.*": "Unsafe third party code",
"rules_go_work-.*": "Third party code"
}
},
"unreachable": {
"exclude_files": {
"shared/messagehandler/messagehandler_test.go": "Necessary panic before return for test",
"external/.*": "Unreachable third party code"
}
},
"lostcancel": {
"exclude_files": {
"validator/client/streaming/runner.go": "No need to cancel right when goroutines begin",
"validator/client/polling/runner.go": "No need to cancel right when goroutines begin",
"external/.*": "Third party code"
}
},
"nilness": {
"exclude_files": {
"external/.*": "Third party code",
"rules_go_work-.*": "Third party code"
}
},
"pkgfact": {
"exclude_files": {
"external/.*": "Third party code",
"rules_go_work-.*": "Third party code"
}
},
"stdmethods": {
"exclude_files": {
"external/.*": "Third party code"
}
},
"copylocks": {
"exclude_files": {
"external/.*": "Third party code"
}
},
"composites": {
"exclude_files": {
"external/.*": "Third party code"
}
},
"cgocall": {
"exclude_files": {
"external/.*": "Third party code"
}
},
"assign": {
"exclude_files": {
"external/.*": "Third party code"
}
},
"structtag": {
"exclude_files": {
"external/.*": "Third party code"
}
},
"maligned": {
"exclude_files": {
"external/.*": "Third party code",
"rules_go_work-.*": "Third party code",
"shared/params/config.go": "This config struct needs to be organized for now",
"proto/.*": "Excluding protobuf objects for now"
}
},
"roughtime": {
"only_files": {
"beacon-chain/.*": "",
"shared/.*": "",
"validator/.*": ""
},
"exclude_files": {
".*/.*_test\\.go": "Tests are OK to use time.Now()",
"shared/version/version\\.go": "Used for printing build time",
"shared/roughtime/roughtime\\.go": "Required to bootstrap roughtime",
"beacon-chain/blockchain/testing/*": "Test-only package",
"beacon-chain/p2p/sender\\.go": "Libp2p uses time.Now and this file sets a time based deadline in such a way that roughtime cannot be used",
"beacon-chain/sync/deadlines\\.go": "Libp2p uses time.Now and this file sets a time based deadline in such a way that roughtime cannot be used",
"shared/grpcutils/grpcutils\\.go": "Uses time.Now() for gRPC duration logging"
}
},
"errcheck": {
"exclude_files": {
"external/.*": "Third party code",
"rules_go_work-.*": "Third party code",
"shared/mock/.*\\.go": "Mocks are OK",
".*/.*mock\\.go": "Mocks are OK",
".*/testmain\\.go": "Test runner generated code",
"proto/.*": "Generated protobuf related code"
}
},
"featureconfig": {
"only_files": {
".*_test\\.go": "Only tests"
}
},
"cryptorand": {
"only_files": {
"beacon-chain/.*": "",
"shared/.*": "",
"validator/.*": ""
},
"exclude_files": {
".*/.*_test\\.go": "Tests are OK to use weak crypto",
"shared/rand/rand\\.go": "Abstracts CSPRNGs for common use",
"shared/aggregation/testing/bitlistutils.go": "Test-only package"
}
}
}