--- 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_current: 'docs-post-processors-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](https://www.packer.io/docs/post-processors/artifice.html), [compress](https://www.packer.io/docs/post-processors/compress.html), [docker-push](https://www.packer.io/docs/post-processors/docker-push.html), 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.html). 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`.