# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## 0.5.2 ### Changed - Moved asymmetric cryptography implementation to a separate reusable crate. ## 0.5.1 ### Added - `--payload-props` argument for `create` and `payload create` commands to allow specifying payload properties. - `--payload-props` argument for `extract` command to allow extracting payload properties. ### Changed - Templates were renamed to constraints to better reflect their purpose. This doesn't affect the command line interface. ### Fixed - The crate didn't really conform to its MSRV policy since it required a nightly `try_collect` feature, now it's fixed. ## 0.5.0 ### Added - `deny` value support for property templates in `cert create` command. - ECDSA signing using NIST curves P-256 and P-384 is now supported. - SEC.1 encoded EC keys are now supported. - `split` command for splitting full IMage4 files. ### Changed - `manifest create` command has been renamed to `manifest encode` in preparation for creation of manifests from scratch. - The digest algorithm for signing manifest is now derived from a command line argument rather than the provided certificate. - Commands accepting private keys now accept PEM-encoded keys. - Changed arguments of `manifest` and `cert` that represent cryptographic keys to all have lowercase short versions. - `cert create` command now verifies that CA's private key matches its public key. - All commands that accept either an X.509 certificate or a chain of certificates now expect them to be PEM-encoded instead of DER-encoded. - `payload create` now accepts the tag as an option instead of positional argument similarly to `create`. ### Fixed - `--compress` argument to `create` is only allowed with `-t/--tag` now. - Help text for the `cert` command incorrectly mentioned PKCS#10 Certificate Signing Requests. ## 0.4.2 ### Added - `manifest create` and `manifest sign` commands for creating and signing Image4 manifests. - `--compress` option for `create` and `payload create` commands. - Subcommands of the `manifest` command now support both signed and unsigned manifests where possible. - `cert create` command for creating certificates which can be used to sign Image4 manifests. ## 0.4.1 ### Added - `-f/--force` is now supported by all commands. - Printing and dumping manifest bodies. - `create` command can now add a restore info blob to the output via the `--boot-nonce` argument. - `create` and `payload create` commands can now add an arbitrary compression info blob to the generated payload. ## Changed - Bumped `image4` version. ## 0.4.0 ### Changed - Process returns an exitcode and pretty prints the error on failure. - Logging is now completely based on log levels set by the new `IMAGE4_LOG` ### Added - Support for decrypting images during extraction. - LZFSE compressed files that lack compression info will be decompressed. - LZSS files are detected and decompressed. - `--no-decompress` and `--no-auto-decompress` flags to the `extract` command that control compression. ## 0.3.0 ### Added - A new `payload create` command to create payload files. ### Changed - `create` command prints verbose logs. - `create` command can only create full Image4 files. ## 0.2.0 ### Added - A basic `create` command to create either full Image4 files or payloads. ### Changed - Warn on extracting encrypted payloads. ## 0.1.0 - Initial release.