/ openpgpjs Public
- Add support for creating critical signature subpackets (#1599)
- Most subpackets are now assigned a criticality based on whether failing to interpret their meaning would negatively impact security.
- If subpackets that are now marked as critical (such as signature creation date, issuer Key ID, key expiration time if set, etc.) are not supported by another OpenPGP implementation, it will now be considered invalid by the implementation rather than ignored. However, since these subpackets are fundamental to the functioning of OpenPGP, they should indeed never be ignored. If an implementation doesn't support them, please upgrade or report it to the relevant implementation as well as or instead of here.
- For Notation Data subpackets, the caller can now set their criticality using the
signatureNotations[*].criticalproperty. When set to critical, if the OpenPGP implementation reading the signature doesn't understand their meaning, they will be rejected rather than ignored. This is useful if the notation is indeed critical (
🙂) to the functioning of the signature or the key that contains it.
- Remove default known notations (#1600)
- Since OpenPGP.js doesn't interpret any notations, we shouldn't consider any of them "known" by default. Rather, we let the calling application indicate the known notations, and it is then responsible for handling them.
- Specifically, signatures with a critical notation named "email@example.com" or "firstname.lastname@example.org" will now be rejected by default. We believe that these are not common "in the wild", but if you encounter them, you can add them to the
config.knownNotationsarray, or (preferably) pass a
knownNotationsarray in the
configproperty when verifying a signature, and then handle the preference indicated by the notation data afterwards by inspecting the
- TypeScript: added
selfCertificationproperty to the
PrimaryUserinterface definition (#1594)
- Docs: mark global
encryptionKeysparameter as optional (#1596)
- CI: Update browser targets (#1549)
- Update ESLint and other minor dependencies; clean up linting rules (#1602)