All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Added
init_raw
constructor for types generated by thestore!
macro. - Added
FilesystemClient::entry_metadata
syscall. - Added
FilesystemClient::rename
syscall. - Added serializable flag to
StorageAttributes
for key agreement. - Added virtual platform in
virt
module. - Added methods for creating the client stores to
ServiceResources
. - Implemented
unsafe_inject_key
for Aes256Cbc, Ed255, X255, P256. - Added support for custom backends in
backend
module. - Added optional support for API extensions in
serde_extensions
module behind theserde-extensions
feature. - Added
types::Path
re-export oflittlefs2::path::Path
. - Reduced stack usage of
Service::process
.
- Made
StorageAttributes
non-exhaustive. - Changed
KeyStore<P: Platform>
toKeyStore<S: Store>
. - Replaced the client ID with a
ClientContext
struct. - Always trigger syscall in
PollClient::request
and removePollClient::syscall
. - Upgrade the
interchange
dependency to version 0.3.0 (#99)- As a consequence the type
pipe::TrussedInterchange
becomes a constpipe::TRUSSED_INTERCHANGE
- As a consequence the type
- Updated
littlefs2
to 0.4.0. - Made
Request
,Reply
,Error
,Context
,CoreContext
,Mechanism
,KeySerialization
,SignatureSerialization
,consent::Error
,ui::Status
non-exhaustive. - Made
postcard_deserialize
,postcard_serialize
andpostcard_serialize_bytes
private. - Changed
&PathBuf
to&Path
where possible. - Change store implementations to use littlefs2’s
DynFilesystem
trait instead of being generic over the storage implementation. - Add
nonce
argument towrap_key
andunwrap_key
syscalls. - Use nonce as IV for Aes256Cbc mechanism.
- Updated
cbor-smol
to 0.5.0. - Removed
serde::{Deserialize, Serialize}
implementations for the API request and reply structs,types::{consent::{Error, Level}, reboot::To, StorageAttributes, KeySerialization, SignatureSerialization}
. - Improved hex formatting of
types::Id
:- Removed the unused
Id::hex
. - Deprecated
Id::hex_path
and addedId::legacy_hex_path
as a replacement. - Added
Id::clean_hex_path
as an alternative toId::legacy_hex_path
. - Changed
Id::hex_clean
to format zero as"00"
.
- Removed the unused
- Change client and mechanism selection:
- Put all client traits, requests, replies and implementations behind feature flags.
- Put all mechanisms behind feature flags.
- Move
CryptoClient::attest
into newAttestationClient
.
- Pass endpoints to
Service::process
instead of storing them in the service. - Added support for non-static channels:
- Added lifetimes to
ClientImplementation
andServiceEndpoints
. - Added the
pipe::TrussedChannel
type.
- Added lifetimes to
- Fixed off-by-one error in
RandomBytes
request. - Fixed a race condition when iterating over the filesystem in more than one client (#64).
- Fixed missing path validation in
Filestore
that allowed clients to escape their namespace (#65). - wrap_key: Don't replace associated data with an empty array
- Removed unused items:
config
:MAX_APPLICATION_NAME_LENGTH
,MAX_LABEL_LENGTH
,MAX_LONG_DATA_LENGTH
,MAX_OBJECT_HANDLES
,MAX_PATH_LENGTH
types
:Attributes
,CertificateType
DataAttributes
,KeyAttributes
,Letters
,LongData
,ObjectType
- Removed the
Syscall
implementations forService
and theSyscall::try_as_new_client
andSyscall::try_new_client
methods. - Removed
TrussedInterchange
andTRUSSED_INTERCHANGE
frompipe
. - Removed the
clients-?
features.
0.1.0 - 2022-01-26
Initial release.