# M7 C Crypto

M7 C Crypto is a C library for importing and generating keys, signing and
verifying bytes, exporting PEM, and encrypting small secrets with RSA-OAEP-256.
Applications call immutable function tables from `m7crypto.h` and link
`libm7crypto.so` on Linux or `libm7crypto.dylib` on macOS.

The current source version is **0.3.0, a verified development candidate**.
Final release and public download verification are pending. See
[release status and integrity](https://m7.org/docs/sdk/m7-c-crypto/releases.md) before selecting an artifact.

## Integrate native cryptography

- [API, examples, ownership and error handling](https://m7.org/docs/sdk/m7-c-crypto/integration/README.md)
- [Source installation, compatibility and troubleshooting](https://m7.org/docs/sdk/m7-c-crypto/integration/installation.md)
- [AlmaLinux C/PHP build, memory tests and installation](https://m7.org/docs/sdk/m7-php-crypto/integration/almalinux.md)
- [Release status, artifact format and changes](https://m7.org/docs/sdk/m7-c-crypto/releases.md)

The library requires a C11 toolchain and OpenSSL 3.0+ development files.
ML-DSA additionally needs an implementation in the active OpenSSL provider,
normally OpenSSL 3.5+. Recognizing an algorithm name does not guarantee that
the deployed provider can execute it.

The separate M7 PHP Crypto extension exposes this library to PHP. C consumers
do not need PHP. Both components are optional for ordinary M7 Identity SDK
installation; selecting a native-crypto feature brings its own prerequisites.
These primitives do not perform OIDC discovery, JWT claim validation, client
authorization or key custody. The integrating application owns those policies.

The source package uses the MTL-10 license; read `LICENSE.md` in the reviewed
bundle before distribution. Report security issues privately to
`security@m7.org`, without sending production keys or tokens.
