Skip to content

Commit

Permalink
Merge pull request #109 from Cosmian/fix/add-changelog-back
Browse files Browse the repository at this point in the history
add changelog back
  • Loading branch information
tbrezot authored Jan 15, 2025
2 parents 76f40b5 + 1b9cef4 commit 1e8f56f
Showing 1 changed file with 201 additions and 0 deletions.
201 changes: 201 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,201 @@
# Changelog

All notable changes to this project will be documented in this file.

## Unreleased

- refacto to follow the paper published on e-print.

## [6.0.0] - 2023-11-21

### Features

Findex v6 implements new look following the work on the Findex formalization with @chloehebant.

In order to ease the reading, fix some vocabulary first:

- Encrypted Dictionary (EDX): a key value store which values are of constant size;
- Encrypted Multi-Map (EMM): a key value store which values are of variable size;
- Encrypted Graph (EGX): an encrypted graph which nodes contain data and pointers to other nodes;
- Encrypted Dictionary Scheme (DX-Enc): a scheme managing an EDX;
- Encrypted Multi-Map Scheme (MM-Enc): a scheme managing an EMM;
- Encrypted Graph Scheme (GX-Enc): a scheme managing an EGX;
- tag: bytes (may be a meaningful piece of information) used to point to a value in an map (H(w) in the Entry Table)
- token: _non-meaningful_ bytes used to index a value in a map (it corresponds to the UIDs)

Findex (as the product) is now composed of three algorithms:

- Findex: an index interface to hide the cryptographic details of Findex Graph;
- Findex Graph: a GX-Enc scheme using a MM-Enc scheme;
- Findex Multi-Map: a MM-Enc scheme using two DX-Enc schemes.

Two generic DX-Enc schemes are used by Findex Multi-Map:

- Entry Table: an EDX scheme in charge of storing metadata about the chains: counter, key seed (Kwi), corresponding tag (H(w_i));
- Chain Table: an EMM used to store the actual chain data; it's implementation is actually done using an EDX.

**HAS BEEN DONE**:

- [x] decide which constant to fix and which constant to use as generic (e.g. `BLOCK_LENGTH`/`LINE_LENGTH`)
- [x] add compact operation
- [x] pass all old tests
- [x] pass regression tests on database:
- [x] add regression tests inside the repo (serialize in-memory database)
- [x] change counter back to the hash chain
- [x] make findex types `Sync + Send`
- [x] add encryption scheme to manage encryption
- [x] update CryptoCore version
- [x] add `progress` callback (injection)
- [x] add CATS compatibility

## [5.0.3] - 2023-09-18

### Bug Fixes

- Relax `async_trait` requirements

### Features

- Support `crypto_core` v9.2.0

## [5.0.2] - 2023-09-07

### Bug Fixes

- Remove the need of nightly toolchain (use `never` and `async-trait` crates)

## [5.0.1] - 2023-09-01

### Features

- Update crypto_core to 9.1.0

## [5.0.0] - 2023-07-21

### Features

- Changed the Search, Upsert and Compact API from mutable to immutable
- Upsert now returns the set of new keywords added to the Entry Table

### Bug Fixes

- add missing `async` keyword for compact callbacks
- fix `list_removed_locations` doc

## [4.0.3] - 2023-07-11

### Features

- Use crypto_core v9.0

## [4.0.2] - 2023-06-30

### Features

- Update crypto_core to 8

### Testing

- Impl Display trait on structs used in callbacks for logging

## [4.0.1] - 2023-06-02

### Bug Fixes

- Race condition in `fetch_chains()`

## [4.0.0] - 2023-06-01

### Changed

- deletions in upsert
- format of the Chain Table (block length is now 16)
- take ownership of the data in callbacks
- allow multiple ET values in search

### Added

- add live compact functionality

## [3.1.0] - 2023-03-03

### Added

- add macro to implement Findex traits

## [3.0.0] - 2023-02-27

### Refactor

- [**breaking**] Move all interfaces (FFI, Wasm, pyo3) to `cloudproof_rust` repository
- use Kmac256 instead of Kmac128
- remove inline macros

### Testing

- Change number encoding in non regression vectors

## [2.1.0] - 2023-02-20

### Bug Fixes

- Update wasm type of progress callback

### Features

- Update `ProgressResult` serialization in ffi

## [2.0.1] - 2023-02-02

### Features

- Change `progress_callback` to return `NextKeyword` and `search` to return only `Location`

### Testing

- Add `progress_callback` tests

## [2.0.0] - 2023-01-13

### Changed

- Add `fetch_chains_batch_size` argument to search
- in `search`, `fetch_chains` calls are now run in parallel for batches of `fetch_chains_batch_size` (not working for the Java/Flutter interfaces for now)
- Improve errors

### Ci

- Replace .gitlab-ci.yml with github actions
- Test inter-languages compatibility

## [1.0.1] - 2022-12-16

### Bug Fixes

- FFI: fix serialization of returned values in `fetch_entry`
- compact: replace fetch_entry loop with call to `fetch_entry_table_uids`

## [1.0.0] - 2022-12-16

### Bug Fixes

- Add return type to FindexInternal function signature

### Documentation

- Update findex cryptographic documentation

### Features

- Only implement the callbacks required by the desired features (upsert, search, compact)
- Improve callback error message

### Miscellaneous Tasks

- Release findex v1.0

### Ci

- Add .gitlab-ci.yml

<!-- generated by git-cliff -->

0 comments on commit 1e8f56f

Please sign in to comment.