Releases: iotaledger/identity.rs
v0.6.1
v0.6.0
The main feature of this release is the addition of the RevocationBitmap2022
specification, offering efficient credential revocation on-Tangle. This is the replacement for the MerkleKeyCollection
removed in v0.5.0, which offered similar functionality but fundamentally failed to scale beyond a few thousand revocations.
Other changes include encryption support using Elliptic Curve Diffie-Hellman (ECDH) and quality of life improvements for verifiable credential and presentation types in the Wasm bindings.
DID Documents created with v0.5.0 remain compatible with v0.6.0. This will be the last major release prior to changes for the Stardust update.
Changed
- Rename crates to use underscores #895
- Change
remove_service
to return boolean #877 - Change
DIDUrl::join
to borrow self #871 - Add
BaseEncoding
to replaceencode_b58
,decode_b58
,encode_multibase
,decode_multibase
#870 - Add
RevocationBitmap2022
, bump MSRV to 1.60 #861 - Add Wasm
Credential
andPresentation
field getters and constructors #815 - Add Diffie-Hellman key exchange for encryption to
Account
#809
Added
- Implement
ECDH-ES+A256KW
forStorage
encryption #867 - Add Client option for retry publishing behaviour #820
- Implement
Storage
test suite #791
Patch
- Unpin iota-crypto version #834
Removed
- Remove unused resolution code #862
v0.4.1
v0.5.0
This release introduces multiple breaking changes to the structure of IOTA DID Documents and their Tangle messages, rendering any identity created with a prior version incompatible and unresolvable. A versioning system has been introduced so any new identities should hopefully be forward compatible with any future breaking changes to the message structure.
The main feature of this release is the introduction of WebAssembly (Wasm) bindings for the high-level Account
API for Javascript/Typescript in both Node.js and the browser. This includes preliminary Stronghold storage bindings but only for Node.js, as it was determined that compiling Stronghold to Wasm for the browser would not be sufficiently secure. Stronghold offers best-effort secure software storage for cryptographic keys, written in Rust. To use the Stronghold storage package install @iota/identity-stronghold-nodejs
and follow the instructions of the package README.
Note that all features related to diff chain updates are now marked as deprecated. Diff chains are a useful optimisation when publishing many updates to a DID Document. However, their design may be incompatible with upcoming changes to the IOTA network and should be considered unstable.
Another major change is the removal of the MerkleKeyCollection
verification method type, which provided a compact representation for issuing and revoking Verifiable Credentials with multiple cryptographic keys. The MerkleKeyCollection
suffered from disadvantages which limited scalability when managing more than a few thousand keys. While these disadvantages could be mitigated somewhat, the decision was made to replace it with one or more alternatives not affected by its fundamental limitations, upcoming in the next major release.
Changed
- Add Wasm
Proof
, renameSignature
structs toProof
#776 - Replace
MethodSecret
withMethodContent
enum #764 - Change document metadata
created
,updated
to be optional #753 - Refactor Storage Signature #738
- Add X25519 key and verification method support #735
- Refactor
KeyLocation
#729 - Move DID Document proof outside metadata #728
- Combine resolve_method functions #709
- Add separate
identity-iota-core
,identity-account-storage
crates #693 - Change
IotaDocument::verify_document
from a static function to a method #675 - Make Wasm support dependent on
target_arch
rather than feature #666 - Refactor
CoreDocument
,VerificationMethod
,Service
to use generic DID #655 - Remove unused
Account
milestone option #645 - Change document controller type to
OneOrSet
#638 - Rename
MethodQuery
toDIDUrlQuery
, moveOrderedSet
,KeyComparable
#634 - Change
also_known_as
type toOrderedSet
#632 - Move verification functionality from
DocumentVerifier
toCoreDocument
#606 - Fix dependent diff updates being rejected #605
- Change
Account::state
visibility topub(crate)
#604 - Overhaul
CredentialValidator
, addPresentationValidator
#599 - Remove JSON string escaping in diff messages #598
- Replace
ClientMap
with newResolver
#594 - Replace
ClientMap
withClient
inAccount
#582 - Add signature
created
,expires
,challenge
,domain
,purpose
#548 - Refactor document metadata #540
- Replace
chrono
withtime
#529 - Enable access to the low-level API from the
Account
#522 - Update to
rsa
0.5 in libjose #517 - Rename
DocumentDiff
toDiffMessage
#511 - Deterministic ordering of competing messages #506
- Check for existence & duplication of methods in
CoreDocument
#504 - Move
dropsave
fromAccount
toStronghold
#500 - Add
ExplorerUrl
to replaceNetwork
explorer methods #496 - Update
ServiceEndpoint
to support sets and maps #485 - Enable deep equality in
OrderedSet
#481 - Add message compression and versioning #466
- Update document signing key constraints and methods #458
- Refactor the
Account
: internal state, one identity #453
Added
- Expose Ed25519, X25519 length constants #772
- Generify
Account::client
overRc
,Arc
#707 - Update Stronghold #691
- Add
Duration
forTimestamp
arithmetic #684 - Add
Client
fallback to local PoW option #682 - Set
controller
,alsoKnownAs
fields from Account #658 - Implement
FromIterator
forOneOrMany
#602 - Add account synchronization method #544
- Filter out DiffMessages updating signing methods #519
- Add publish with retry method #455
Patch
- Fix panic when parsing an
IotaDID
with more than 2 method id segments #758 - Update iota.rs to include timeout bugfix #712
- Support verification methods with the same fragment #623
- Fix diff properties (de)serialization #611
- Enable local proof-of-work fallback #579
- Add
identity-diff
derive feature gate #516 - Improve client error messages #512
- Make
create_signature
andsign
async forRemoteEd25519
#491 - Fix credential validation failing for documents with diff updates #490
- Upgrade to the Rust 2021 edition #449
Deprecated
- Deprecate diff chain features #759
Removed
v0.5.0-dev.6
Note that all features related to diff chain updates are now marked as deprecated. Diff chains are a useful optimisation when publishing many updates to a DID Document. However, their design may be incompatible with upcoming changes to the IOTA network and should be considered unstable. Another major change is the removal of the MerkleKeyCollection
verification method type, which provided a compact representation for issuing and revoking Verifiable Credentials with multiple cryptographic keys. The MerkleKeyCollection
suffered from disadvantages which limited scalability when managing more than a few thousand keys. While these disadvantages could be mitigated somewhat, the decision was made to replace it with one or more alternatives not affected by its fundamental limitations, upcoming in the next major release.
Changed
- Refactor Storage Signature #738
- Add X25519 key and verification method support #735
- Combine resolve_method functions #709
Patch
- Fix panic when parsing an
IotaDID
with more than 2 method id segments #758
Deprecated
- Deprecate diff chain features #759
Removed
v0.5.0-dev.5
This release introduces a breaking change to the proof field of DID Documents created by versions v0.5.0-dev.1
through v0.5.0-dev.4
, making all prior documents incompatible. The main feature of this release is the introduction of WebAssembly (Wasm) bindings for the high-level Account
API for Javascript/Typescript in both Node.js and the browser. This includes Stronghold storage support but only for Node.js, as it was determined that compiling Stronghold to Wasm for private key storage in the browser would not be sufficiently secure.
Changed
- Move DID Document proof outside metadata #728
- Add separate
identity-iota-core
,identity-account-storage
crates #693 - Change
IotaDocument::verify_document
from a static function to a method #675 - Make Wasm support dependent on
target_arch
rather than feature #666 - Refactor
CoreDocument
,VerificationMethod
,Service
to use generic DID #655 - Overhaul
CredentialValidator
, addPresentationValidator
#599 - Replace
ClientMap
with newResolver
#594
Added
- Generify
Account::client
overRc
,Arc
#707 - Update Stronghold #691
- Add
Duration
forTimestamp
arithmetic #684 - Add
Client
fallback to local PoW option #682 - Set
controller
,alsoKnownAs
fields from Account #658
Patch
- Update iota.rs to include timeout bugfix #712
Removed
v0.5.0-dev.4
v0.5.0-dev.3
This release introduces a breaking change for diff updates created by versions v0.5.0-dev.1
and v0.5.0-dev.2
(previous diff updates from <=v0.4.0
are already incompatible due to breaking changes to the document and message structure in v0.5.0-dev.1
). To migrate, please publish an integration update containing all diff changes to prevent unexpected changes to resolved DID Documents.
Changed
- Move verification functionality from
DocumentVerifier
toCoreDocument
#606 - Fix dependent diff updates being rejected #605
- Change
Account::state
visibility topub(crate)
#604 - Remove JSON string escaping in diff messages #598
Added
- Implement
FromIterator
forOneOrMany
#602
Patch
- Fix diff properties (de)serialization #611
v0.5.0-dev.2
v0.4.0
IOTA Identity Beta-2 v0.4 (#473)
-
Docs/readme improvs (#257)
-
Update main readme
-
WASM readme update
-
Updated example with account
-
Rust examples readme
-
Bump wasm version
-
Revert "Bump wasm version"
This reverts commit 73d9d66.
-
consistent node version
-
Bump wasm version
-
Expand unit test coverage in bitset.rs, iota_did.rs, and iota_document.rs (#265)
-
Add some tests
-
Add IotaDocument::try_from_core() unit tests
-
Fix clippy error
-
read indexation payload from transaction payloads
-
Remove IotaDID->DID Deref anti-pattern. (#269)
-
Remove IotaDID->DID Deref anti-pattern.
-
Address l1h3r review comments.
-
Rework WASM examples to explicitly use client configs. (#275)
-
Rework WASM examples to explicitly use client configs.
-
Add explorer_util.js adn fix typo.
-
Fix explorer URL construction.
Inlined the prefix since it is no longer exported.
- Bump dns-packet from 1.3.1 to 1.3.4 in /bindings/wasm (#277)
Bumps dns-packet from 1.3.1 to 1.3.4.
Signed-off-by: dependabot[bot] [email protected]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- Bump browserslist from 4.16.3 to 4.16.6 in /bindings/wasm (#278)
Bumps browserslist from 4.16.3 to 4.16.6.
Signed-off-by: dependabot[bot] [email protected]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
-
Add IotaDocument::from_keypair_with_network() and WASM binding. (#276)
-
Add IotaDocument::from_keypair_with_network() and WASM binding.
-
Undo unintentional formatting in README.
-
Add optional network arg to from_keypair WASM binding.
-
Update API reference for fromKeyPair.
-
Update README.
-
Update bindings/wasm/src/wasm_document.rs
-
Use u32 for message delays (#281)
-
Use u32 for message delays
-
Update docs
-
Update version
-
Bump ws from 6.2.1 to 6.2.2 in /bindings/wasm (#282)
Bumps ws from 6.2.1 to 6.2.2.
updated-dependencies:
- dependency-name: ws
dependency-type: indirect
...
Signed-off-by: dependabot[bot] [email protected]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
-
docs: Fix some typos in the method spec
-
docs: Describe build process for wasm bindings
-
Update iota-client (#270)
-
Update iota-client
-
Fix features
-
New client builder
-
New wasm client
-
Update examples
-
More common types (#283)
-
Fragment/UnixTimestamp -> core::common
-
clippy
-
Timestamp::now -> Timestamp::now_utc
-
Remove shard from DIDs (#280)
-
Remove shard from DIDs
-
wasm fixes
-
update yarn.lock
-
doctest
-
Version Bump
-
Restore checkCredential/checkPresentation WASM functions (#287)
-
Restore client.checkCredential/checkPresentation
-
doc: Serialize
message_id
forIotaDocument
s -
wasm: Fix incorrect path in example imports
-
client: Rename
read_document
toresolve
-
Revert "doc: Serialize
message_id
forIotaDocument
s"
This reverts commit 26e2dcd.
- wasm: Serialize
message_id
for resolve method
Co-authored-by: PhilippGackstatter [email protected]
-
Add blake2b to wasm bindings (#288)
-
Add blake2b to wasm bindings
-
docs
-
core: Reimpl
Key
with generics -
replace deleted method readDocument(id) with resolve(id) (#294)
-
account: Disable custom riker logging
-
Docs/setup docusaurus (#298)
-
setup docusarus template
-
add iota style and identity content
-
add gh deploy action
-
fix sidebar and titles
-
change build dir
-
fix folder name
-
add specs, fix links
-
fix images
-
fix base path and github link
-
add cname for security
-
Add
publicKeyMultibase
(#307) -
Add publicKeyMultibase support
Add and expand base-encoding tests.
-
Remove publicKeyHex
-
Add verification method publicKeyMultibase test
-
Ignore wasm lint warning
-
setup documentation file structure in docusaurus
-
Example Cleanup (#292)
-
Default Network should be Mainnet
-
Use remote PoW by default
-
Always set a primary node
-
Client updates
- Add TangleResolve for generic client implementations
- Add Receipt return value with additional txn info
- Rename
Client::transaction_url
->Client::message_url
-
Appease clippy
-
Update examples
-
Add ability to configure account clients (#293)
-
Add ability to configure account clients
-
rename
-
stricter bound
-
Use dashmap
-
Explicit account test mode
-
Fix missed method
-
Ignore lint
-
faster tests
-
Minutes/2021 14 07 (#316)
-
2021-07-14
-
2021-07-14
-
final
-
Rename
Co-authored-by: HackMD [email protected]
-
add codeSnippet component
-
Update actions to pin Rust nightly version (#318)
Fix attempt for inconsistent Github Actions failures.
-
Wasm examples browser (#317)
-
create did through browser
-
add examples to create and resolve DID
-
add manipulate_did and create_vc
-
and merkle key and revocation
-
add missing index.html
-
move node examples to separate folder
-
update readme file
-
remove web.js and format browser examples
-
include node examples in git
-
update readme links of node examples
-
account: Add stronghold and re-export wasm feature (#291)
Signed-off-by: PhilippGackstatter [email protected]
account: Complete stronghold feature integration
account: Enable new resolver to fix wasm target
account: Use tokio 1.5 & split async feature
account: Add note on Stronghold
availability
builder: Apply cargo fmt
Signed-off-by: PhilippGackstatter [email protected]
- Fix cyclic dependency (#319)
Remove unused preserve_order serde_json feature flag.
-
update file paths
-
add remark-import-partial plugin
-
add missing doc files
-
update landing page
-
Fix inconsistent stronghold storage tests (#320)
Raise test timeouts and improve handling on slow systems.
-
update footer/add empty team page
-
remember selected programming language
-
fix rust Replit
-
change height of code snippet
-
add teams page
-
adjust team page
-
minor edits to landing page
-
Added DID Intro text
-
Moved meeting minutes
-
Remove mdbook docs
-
Renamed DocOps -> documentation
-
Updated deploy workflow documentation
-
Updated blogs
-
signature: Impl thread-safe
Cell
(#329)
Signed-off-by: PhilippGackstatter [email protected]
-
update docusaurus.config.js
-
Docs/docusaurus (#324)
-
Docs/setup docusaurus (#298)
-
setup docusarus template
-
add iota style and identity content
-
add gh deploy action
-
fix sidebar and titles
-
change build dir
-
fix folder name
-
add specs, fix links
-
fix images
-
fix base path and github link
-
add cname for security
-
setup documentation file structure in docusaurus
-
add codeSnippet component
-
update file paths
-
add remark-import-partial plugin
-
add missing doc files
-
update landing page
-
update footer/add empty team page
-
remember selected programming language
-
fix rust Replit
-
change height of code snippet
-
add teams page
-
adjust team page
-
minor edits to landing page
-
Added DID Intro text
-
Moved meeting minutes
-
Remove mdbook docs
-
Renamed DocOps -> documentation
-
Updated deploy workflow documentation
-
Updated blogs
-
update docusaurus.config.js
Co-authored-by: huhn511 [email protected]
Co-authored-by: JelleMillenaar [email protected]
-
Fix workflow
-
Trigger workflow if itself changes
-
Moved latest meeting notes
-
Docs/docusaurus (#331)
-
Docs/setup docusaurus (#298)
-
setup docusarus template
-
add iota style and identity content
-
add gh deploy action
-
fix sidebar and titles
-
change build dir
-
fix folder name
-
add specs, fix links
-
fix images
-
fix base path and github link
-
add cname for security
-
setup documentation file structure in docusaurus
-
add codeSnippet component
-
update file paths
-
add remark-import-partial plugin
-
add missing doc files
-
update landing page
-
update footer/add empty team page
-
remember selected programming language
-
fix rust Replit
-
change height of code snippet
-
add teams page
-
adjust team page
-
minor edits to landing page
-
Added DID Intro text
-
Moved meeting minutes
-
Remove mdbook docs
-
Renamed DocOps -> documentation
-
Updated deploy workflow documentation
-
Updated blogs
-
update docusaurus.config.js
-
Fix workflow
-
Trigger workflow if itself changes
-
Moved latest meeting notes
Co-authored-by: huhn511 [email protected]
Co-authored-by: Abdulrahim Al Methiab [email protected]
-
replace package-lock
-
prevent broken links from failing the build
-
fix docusaurus base URL
-
Bump prismjs from 1.23.0 to 1.24.1 in /documentation (#330)
Bumps prismjs from 1.23.0 to 1.24.1.
- Release notes
- [C...