# Changelog

All notable changes to `native-ossl-sys` will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]


## [0.1.8] — 2026-04-28

### Added

- Add native-ossl-sys 0.1.8 changelog entry

## [0.1.7] — 2026-04-27

### Fixed

- Replace `Builder::header(path)` with `Builder::header_contents(name, content)` for
  both bindgen passes (`wrapper.h` and `fips_wrapper.h`).  Writing synthesised headers
  to `$OUT_DIR` caused `bindgen::CargoCallbacks` to emit `cargo:rerun-if-changed` for
  those files; because the file mtime was set during the build it was always newer than
  cargo's fingerprint reference time, marking `native-ossl-sys` dirty on every
  subsequent invocation and doubling compile times in RPM builds where `%cargo_build`
  and `%cargo_test` run as separate cargo processes.  Passing content as an in-memory
  buffer eliminates the tracked files entirely while still allowing cargo to detect real
  changes to the installed OpenSSL headers.

## [0.1.6] — 2026-04-26

Version bump for workspace synchronization with `native-ossl 0.1.6`; no
functional changes to this crate.

## [0.1.5] — 2026-04-26

### Fixed

- Widen `bindgen` build dependency from `"0.71"` to `">=0.71, <0.73"` — Fedora 44/45 ships `bindgen 0.72.1` which did not satisfy the previous strict pin
- Include `LICENSE` file in the published crate tarball (previously absent because the file lives at the workspace root)

## [0.1.4] — 2026-04-25

### Added

- CMS: `CMS_ContentInfo`, `CMS_SignerInfo`, `CMS_sign`, `CMS_verify`, `CMS_add1_signer`, `CMS_get0_type`, `CMS_get0_eContentType`, `CMS_get0_content`, `CMS_get0_SignerInfos`, `CMS_SignerInfo_get0_algs`, `CMS_get1_certs`, `CMS_get1_crls`, `d2i_CMS_ContentInfo`, `i2d_CMS_ContentInfo`
- Decoder: `OSSL_DECODER_CTX_new_for_pkey`, `OSSL_DECODER_CTX_free`, `OSSL_DECODER_from_data`
- `OSSL_LIB_CTX_load_config`
- OID / ASN.1: `OBJ_txt2obj`, `OBJ_obj2txt`, `OBJ_cmp`, `OBJ_dup`, `ASN1_OBJECT_free`
- X.509 extension: `X509_get_key_usage`, `X509V3_EXT_d2i`, `GENERAL_NAME_free`, `i2d_ASN1_TYPE`

## [0.1.3] — 2026-04-18

### Added

- Expand SSL/TLS FFI coverage: ALPN negotiation, certificate-store access,
  hostname verification, and `SSL_CTRL` constants needed by the new
  `SslCtxBuilder` in `native-ossl`.
- Bind `X509_get_signature_info`, `X509_NAME_oneline`, `OBJ_nid2sn`,
  `OBJ_nid2ln` for the new X.509 inspection APIs.
- Bind `EVP_PKEY_get_default_digest_name` for hash-on-sign algorithm
  detection.
- Bind `EVP_RAND_CTX_set_params`, `EVP_KDF_CTX_get_kdf_size`, and
  `EVP_KDF_CTX_get_params` supporting the new KDF and RAND parameter APIs.

## [0.1.2] — 2026-04-17

### Added

- Add MessageSigner::sign and MessageVerifier::verify

## [0.1.1] - 2026-04-16

### Added

- Add CI, release, and packaging infrastructure
- Add ossl310 cfg flag for OpenSSL 3.1.0+

### Fixed

- Fix ptr_arg, manual_assert, doc_markdown

## [0.1.0] - 2026-04-15

### Added

- Initial release: bindgen-generated, allowlisted FFI bindings to the OpenSSL 3.x C API
- `discover_openssl()` build helper supporting `OPENSSL_DIR` / `PKG_CONFIG` based detection
- Cfg flags: `ossl320` (OpenSSL 3.2+), `ossl_v400` (OpenSSL 4.0+)
- `fips-provider` feature flag for non-public OpenSSL headers required to implement a FIPS provider (vtable access, internal self-test APIs); not needed for code that merely runs in FIPS mode

[Unreleased]: https://codeberg.org/abbra/native-ossl/compare/v0.1.7...HEAD
[0.1.7]: https://codeberg.org/abbra/native-ossl/compare/v0.1.6...v0.1.7
[0.1.6]: https://codeberg.org/abbra/native-ossl/compare/v0.1.5...v0.1.6
[0.1.5]: https://codeberg.org/abbra/native-ossl/compare/v0.1.4...v0.1.5
[0.1.4]: https://codeberg.org/abbra/native-ossl/compare/v0.1.3...v0.1.4
[0.1.3]: https://codeberg.org/abbra/native-ossl/compare/v0.1.2...v0.1.3
[0.1.2]: https://codeberg.org/abbra/native-ossl/compare/v0.1.1...v0.1.2
[0.1.1]: https://codeberg.org/abbra/native-ossl/compare/v0.1.0...v0.1.1
[0.1.0]: https://codeberg.org/abbra/native-ossl/releases/tag/v0.1.0
