README.md

ecms
=====

[![Build Status](https://github.com/sg2342/ecms/workflows/Common%20Test/badge.svg)](https://github.com/sg2342/ecms/actions?query=branch%3Amain+workflow%3A"Common+Test")
[![Hex.pm](https://img.shields.io/hexpm/v/ecms.svg)](https://hex.pm/packages/ecms)
[![Docs](https://img.shields.io/badge/hex-docs-green.svg?style=flat)](https://hexdocs.pm/ecms)

Sign, verify, encrypt, and decrypt RFC 5652 Cryptographic Message Syntax (CMS)
messages. Compatible with (some invocations of) the openSSL cms tool.

Sign / Verify
-----

ecms supports RSASSA-PSS, DSA, and EC signatures with SHA224, SHA256, SHA384, and
SHA512 digests in sign and verify.

Legacy RSA signatures and SHA1 digests are supported for **verify only**.

Encrypt / Decrypt
-----

RSAAES-OAEP `KeyAgreeRecipientInfo` and  EC (dhSinglePass-stdDH-sha224-kdf-scheme,
dhSinglePass-stdDH-sha256-kdf-scheme, dhSinglePass-stdDH-sha384-kdf-scheme,
dhSinglePass-stdDH-sha512-kdf-scheme) `KeyAgreeRecipientInfo`

`AuthEnvelopedData` with AES GCM 128, 224, and 256

`EnvelopedData` with AES OFB/CFB/CBC 128, 224, and 256

`KeyAgreeRecipientInfo` with `rsaEncryption` is supported for **decrypt only**.