---
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.
layout: docs
page_title: Checksum - Post-Processors
sidebar_title: Checksum
---

# Checksum Post-Processor

Type: `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-push), or
a third-party post-processor.

## Basic example

The example below is fully functional.

```json
{
  "type": "checksum"
}
```

## Configuration Reference

Optional parameters:

- `checksum_types` (array of strings) - An array of strings of checksum types
  to compute. Allowed values are md5, sha1, sha224, sha256, sha384, sha512.

- `keep_input_artifact` (boolean) - Unlike most post-processors, setting
  `keep_input_artifact` will have no effect; the checksum post-processor
  always saves the artifact that it is calculating the checksum for.

- `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/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`.
