blob: 7498428873f2966069bcf040e482a530dd8d5ba7 [file] [log] [blame] [view]
# Audit Criteria
Before you can go about auditing code, you need to decide what you want the
audits to entail. This is expressed with "audit criteria", which are just labels
corresponding to human-readable descriptions of what to check for.
`cargo vet` comes pre-equipped with two built-in criteria:
[safe-to-run](built-in-criteria.md#safe-to-run) and
[safe-to-deploy](built-in-criteria.md#safe-to-deploy). You can use these without
any additional configuration.
## Custom Criteria
You can also specify arbitrary custom criteria in `audits.toml`. For example:
```
[criteria.crypto-reviewed]
description = '''
The cryptographic code in this crate has been reviewed for correctness by a
member of a designated set of cryptography experts within the project.
'''
```
The full feature set is documented [here](config.md#the-criteria-table).
## Multiple Sets of Criteria
There are a number of reasons you might wish to operate with multiple sets of
criteria:
* **Applying extra checks to some crates:** For example, you might define
`crypto-reviewed` criteria and require them for audits of crates which
implement cryptographic algorithms that your application depends on.
* **Relaxing your audit requirements for some crates:** For example, you might
decide that crates not exposed in production can just be `safe-to-run`
rather than `safe-to-deploy`, since they don't need to be audited for handling
adversarial input.
* **Improving Sharing:** If one project wants to audit for issues A and B, and
another project wants to audit for B and C, defining separate sets of criteria
for A, B, and C allows the two projects to partially share work.
You can define and use as many separate sets of criteria as you like.