---
description: >
  The checksum post-processor computes specified checksum for the artifact list
  from an upstream builder or post-processor. All downstream post-processors
  will see the new artifacts. The primary use-case is compute checksum for
  artifacts allows to verify it later. So firstly this post-processor get
  artifact, compute it checksum and pass to next post-processor original
  artifacts and checksum files.
page_title: Checksum - Post-Processors
---

# Checksum Post-Processor

Type: `checksum`
Artifact BuilderId: `packer.post-processor.checksum`

The checksum post-processor computes specified checksum for the artifact list
from an upstream builder or post-processor. All downstream post-processors will
see the new artifacts. The primary use-case is compute checksum for artifact to
verify it later.

After computes checksum for artifacts, you can use new artifacts with other
post-processors like
[artifice](/docs/post-processors/artifice),
[compress](/docs/post-processors/compress),
[docker-push](/docs/post-processors/docker/docker-push), or
a third-party post-processor.

## Basic example

<Tabs>
<Tab heading="JSON">

```json
{
  "type": "checksum",
  "checksum_types": ["sha1", "sha256"],
  "output": "packer_{{.BuildName}}_{{.ChecksumType}}.checksum"
}
```

</Tab>
<Tab heading="HCL2">

```hcl
post-processor "checksum" {
  checksum_types = ["sha1", "sha256"]
  output = "packer_{{.BuildName}}_{{.ChecksumType}}.checksum"
}
```

</Tab>
</Tabs>

## Configuration Reference

Optional parameters:

- `checksum_types` (array of strings) - An array of strings of checksum types
  to compute. If empty, Defaults to md5. Allowed values are:

  - md5
  - sha1
  - sha224
  - sha256
  - sha384
  - sha512

- `output` (string) - Specify filename to store checksums. This defaults to
  `packer_{{.BuildName}}_{{.BuilderType}}_{{.ChecksumType}}.checksum`. For
  example, if you had a builder named `database`, you might see the file
  written as `packer_database_docker_md5.checksum`. This is treated as a
  [template engine](/docs/templates/legacy_json_templates/engine). Therefore, you
  may use user variables and template functions in this field.
  The following special variables are also available to use in the output
  template:

  - `BuildName`: The name of the builder that produced the artifact.
  - `BuilderType`: The type of builder used to produce the artifact.
  - `ChecksumType`: The type of checksums the file contains. This should be
    used if you have more than one value in `checksum_types`.
