diff --git a/CHANGELOG.md b/CHANGELOG.md index 16ac4fd446..dc8bad5b14 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,50 +8,56 @@ - Fix compilation error caused by the roaring crate [\#1306](https://github.com/iotaledger/identity.rs/pull/1306) -## [1.0.0](https://github.com/iotaledger/identity.rs/tree/v1.0.0) (2023-11-02) +## [v1.0.0](https://github.com/iotaledger/identity.rs/tree/v1.0.0) (2023-11-02) -[Full Changelog](https://github.com/iotaledger/identity.rs/compare/v0.6.0...v1.0.0) +[Full Changelog](https://github.com/iotaledger/identity.rs/compare/v0.6.3...v1.0.0) + +This version introduces a new DID method targeting the IOTA UTXO ledger. This method works fundamentally differently from the previous method and introduces new capabilities to interact with Layer 1 assets like Native Tokens, NFTs and various Output types. + +This version changes the credential and presentation format to JWT, as specified by the [VC Data Model v1.1](https://www.w3.org/TR/vc-data-model/#json-web-token). + +Note: Identities and credentials created with the earlier versions cannot be resolved with this version of the library. ### Changed -- Add dedicated stronghold crate [\#1243](https://github.com/iotaledger/identity.rs/pull/1243) -- Allow custom `kid` to be set in JWS [\#1239](https://github.com/iotaledger/identity.rs/pull/1239) -- Add dedicated EdDSA verifier crate [\#1238](https://github.com/iotaledger/identity.rs/pull/1238) -- Remove `vp` and `vc` from JWT claims in JOSE [\#1233](https://github.com/iotaledger/identity.rs/pull/1233) -- Change `verifiable_credential` to type `Vec` in `Presentation` [\#1231](https://github.com/iotaledger/identity.rs/pull/1231) -- Mark error enums as non-exhaustive [\#1227](https://github.com/iotaledger/identity.rs/pull/1227) -- Bring `JwkDocumentExt` names in line with Wasm [\#1223](https://github.com/iotaledger/identity.rs/pull/1223) -- Add lints for all crates [\#1222](https://github.com/iotaledger/identity.rs/pull/1222) -- Bump `iota-sdk` and other dependencies [\#1208](https://github.com/iotaledger/identity.rs/pull/1208) -- Polish `identity_credential` [\#1205](https://github.com/iotaledger/identity.rs/pull/1205) -- Polish `identity_resolver` and `identity_storage` [\#1204](https://github.com/iotaledger/identity.rs/pull/1204) -- Polish `identity_iota_core` [\#1203](https://github.com/iotaledger/identity.rs/pull/1203) -- Rename `JwtPresentation` to `Presentation` [\#1200](https://github.com/iotaledger/identity.rs/pull/1200) -- Polish `identity_document` [\#1198](https://github.com/iotaledger/identity.rs/pull/1198) -- Polish `identity_did` & `identity_verification` [\#1197](https://github.com/iotaledger/identity.rs/pull/1197) -- Polish `identity_core` [\#1196](https://github.com/iotaledger/identity.rs/pull/1196) -- Remove identity-diff remains [\#1195](https://github.com/iotaledger/identity.rs/pull/1195) -- Remove legacy signing and verification APIs [\#1194](https://github.com/iotaledger/identity.rs/pull/1194) -- Remove old `Presentation` type [\#1190](https://github.com/iotaledger/identity.rs/pull/1190) -- Remove reexported `Resolver` validation APIs [\#1183](https://github.com/iotaledger/identity.rs/pull/1183) -- Use JWT credentials for Domain Linkage [\#1180](https://github.com/iotaledger/identity.rs/pull/1180) -- Remove `identity_agent` & `identity_comm` [\#1168](https://github.com/iotaledger/identity.rs/pull/1168) -- Remove `identity-diff` crate [\#1167](https://github.com/iotaledger/identity.rs/pull/1167) -- JwkStorageDocument & JwtCredential validation [\#1152](https://github.com/iotaledger/identity.rs/pull/1152) -- Adapt StorageError to be more generic [\#1144](https://github.com/iotaledger/identity.rs/pull/1144) -- Add initial PublicKeyJwk support [\#1143](https://github.com/iotaledger/identity.rs/pull/1143) -- Split JWS `Decoder` functionality [\#1133](https://github.com/iotaledger/identity.rs/pull/1133) -- Refactor `MethodType` to make it extensible [\#1112](https://github.com/iotaledger/identity.rs/pull/1112) -- Remove generics in `CoreDocument`, `VerificationMethod`, `Service`, `DIDUrl` and `LinkedDomainService` [\#1110](https://github.com/iotaledger/identity.rs/pull/1110) -- `CoreDocument` & `Service` and `VerificationMethod` are now in the `document` and `verification` modules respectively [\#1104](https://github.com/iotaledger/identity.rs/pull/1104) -- Update to `iota-client` 2.0.1-rc.4 and `iota-client-wasm` 0.5.0-alpha.6 [\#1088](https://github.com/iotaledger/identity.rs/pull/1088) -- Fix clippy lints [\#1069](https://github.com/iotaledger/identity.rs/pull/1069) -- More identifier checks in `CoreDocument` [\#1067](https://github.com/iotaledger/identity.rs/pull/1067) +- Add dedicated stronghold crate [#1243](https://github.com/iotaledger/identity.rs/pull/1243) +- Add dedicated EdDSA verifier crate [#1238](https://github.com/iotaledger/identity.rs/pull/1238) +- Use `VC Data Model v1.1` JWT encoding instead of `VC-JWT` [#1234](https://github.com/iotaledger/identity.rs/pull/1234) +- Remove `vp` and `vc` from JWT claims in JOSE [#1233](https://github.com/iotaledger/identity.rs/pull/1233) +- Mark error enums as non-exhaustive [#1227](https://github.com/iotaledger/identity.rs/pull/1227) +- Change `verifiable_credential` to type `Vec` in `Presentation` [#1231](https://github.com/iotaledger/identity.rs/pull/1231) +- Bring JwkDocumentExt names in line with Wasm [#1233](https://github.com/iotaledger/identity.rs/pull/1223) +- Add lints for all crates [#1222](https://github.com/iotaledger/identity.rs/pull/1222) +- Bump `iota-sdk` and other dependencies [#1208](https://github.com/iotaledger/identity.rs/pull/1208) +- Polish `identity_credential` [#1205](https://github.com/iotaledger/identity.rs/pull/1205) +- Polish `identity_resolver` and`identity_storage` [#1204](https://github.com/iotaledger/identity.rs/pull/1204) +- Polish `identity_iota_core` [#1203](https://github.com/iotaledger/identity.rs/pull/1203) +- Rename `JwtPresentation` to `Presentation` [#1200](https://github.com/iotaledger/identity.rs/pull/1200) +- Polish `identity_document` [#1198](https://github.com/iotaledger/identity.rs/pull/1198) +- Polish `identity_did` & `identity_verification` [#1197](https://github.com/iotaledger/identity.rs/pull/1197) +- Polish `identity_core` [#1196](https://github.com/iotaledger/identity.rs/pull/1196) +- Remove identity-diff remains [#1195](https://github.com/iotaledger/identity.rs/pull/1195) +- Remove legacy signing and verification APIs [#1194](https://github.com/iotaledger/identity.rs/pull/1194) +- Remove old `Presentation` type [#1190](https://github.com/iotaledger/identity.rs/pull/1190) +- Remove reexported `Resolver` validation APIs [#1183](https://github.com/iotaledger/identity.rs/pull/1183) +- Use JWT credentials for Domain Linkage [#1180](https://github.com/iotaledger/identity.rs/pull/1180) +- Remove `identity_agent` & `identity_comm` [#1168](https://github.com/iotaledger/identity.rs/pull/1168) +- Remove `identity-diff` crate [#1167](https://github.com/iotaledger/identity.rs/pull/1167) +- JwkStorageDocument & JwtCredential validation [#1152](https://github.com/iotaledger/identity.rs/pull/1152) +- Adapt StorageError to be more generic [#1144](https://github.com/iotaledger/identity.rs/pull/1144) +- Add initial PublicKeyJwk support [#1143](https://github.com/iotaledger/identity.rs/pull/1143) +- Split JWS `Decoder` functionality [#1133](https://github.com/iotaledger/identity.rs/pull/1133) +- `CoreDocument` & `Service` and `VerificationMethod` are now in the `document` and `verification` modules respectively [#1104](https://github.com/iotaledger/identity.rs/pull/1104) +- Remove generics in CoreDocument, VerificationMethod, Service, DIDUrl and LinkedDomainService [#1110](https://github.com/iotaledger/identity.rs/pull/1110) +- Updated `iota-types` dependency to `1.0.0-rc.6` [#1121](https://github.com/iotaledger/identity.rs/pull/1121) +- Refactor `MethodType` to make it extensible [#1112](https://github.com/iotaledger/identity.rs/pull/1112) +- More identifier checks in `CoreDocument` [#1067](https://github.com/iotaledger/identity.rs/pull/1067) +- Update to `iota-client` 2.0.1-rc.4 and `iota-client-wasm` 0.5.0-alpha.6 [#1088](https://github.com/iotaledger/identity.rs/pull/1088) - Update iota client 2.0.1 rc.3 [\#1062](https://github.com/iotaledger/identity.rs/pull/1062) - Use Bech32-encoded state controller and governor addresses [\#1044](https://github.com/iotaledger/identity.rs/pull/1044) +- Expose iteration over verification relationship fields [\#1024](https://github.com/iotaledger/identity.rs/pull/1024) - Remove `identity_agent` reexport [\#1031](https://github.com/iotaledger/identity.rs/pull/1031) - Rename `MixedResolver` to `Resolver` in Wasm [\#1026](https://github.com/iotaledger/identity.rs/pull/1026) -- Expose iteration over verification relationship fields [\#1024](https://github.com/iotaledger/identity.rs/pull/1024) - Add length prefix to DID Document payloads [\#1010](https://github.com/iotaledger/identity.rs/pull/1010) - Feature-gate `Resolver` [\#1007](https://github.com/iotaledger/identity.rs/pull/1007) - Rename `Stardust` types to `Iota` [\#1000](https://github.com/iotaledger/identity.rs/pull/1000) @@ -66,27 +72,29 @@ - Change `Service` `type` field to allow sets [\#944](https://github.com/iotaledger/identity.rs/pull/944) - Generalise `CredentialValidator`, `PresentationValidator` to support arbitrary DID Documents [\#935](https://github.com/iotaledger/identity.rs/pull/935) + ### Added -- Allow arbitrary JWS header parameters [\#1245](https://github.com/iotaledger/identity.rs/pull/1245) -- Allow custom JWT claims for presentations [\#1244](https://github.com/iotaledger/identity.rs/pull/1244) -- Allow custom JWT claims for credentials [\#1237](https://github.com/iotaledger/identity.rs/pull/1237) -- Use `VC Data Model v1.1` JWT encoding instead of `VC-JWT` [\#1234](https://github.com/iotaledger/identity.rs/pull/1234) -- Improve `Proof` [\#1209](https://github.com/iotaledger/identity.rs/pull/1209) -- Polish `identity_jose` [\#1201](https://github.com/iotaledger/identity.rs/pull/1201) -- Add `resolve_multiple` to Resolver [\#1189](https://github.com/iotaledger/identity.rs/pull/1189) -- Make JWT presentations generic [\#1186](https://github.com/iotaledger/identity.rs/pull/1186) -- Support JWT Presentations [\#1175](https://github.com/iotaledger/identity.rs/pull/1175) -- Polish JWK thumbprint and document extension API [\#1173](https://github.com/iotaledger/identity.rs/pull/1173) -- Stronghold Storage Implementation [\#1157](https://github.com/iotaledger/identity.rs/pull/1157) -- Implement `KeyIdStorage` in Rust [\#1134](https://github.com/iotaledger/identity.rs/pull/1134) -- Introduce `IToCoreDocument` and document locks in the bindings [\#1120](https://github.com/iotaledger/identity.rs/pull/1120) -- Implement `JwkStorage` [\#1116](https://github.com/iotaledger/identity.rs/pull/1116) -- Add JSON Object Signing capabilities [\#1105](https://github.com/iotaledger/identity.rs/pull/1105) -- Add Support for Domain Linkage in Rust [\#1094](https://github.com/iotaledger/identity.rs/pull/1094) -- Make `StateMetadataDocument` public [\#1085](https://github.com/iotaledger/identity.rs/pull/1085) -- Add revocation examples [\#1076](https://github.com/iotaledger/identity.rs/pull/1076) -- Add v. credentials and presentations examples [\#1070](https://github.com/iotaledger/identity.rs/pull/1070) +- Allow arbitrary JWS header parameters [#1245](https://github.com/iotaledger/identity.rs/pull/1245) +- Allow custom JWT claims for presentations [#1244](https://github.com/iotaledger/identity.rs/pull/1244) +- Allow custom `kid` to be set in JWS [#1239](https://github.com/iotaledger/identity.rs/pull/1239) +- Allow custom JWT claims for credentials [#1237](https://github.com/iotaledger/identity.rs/pull/1237) +- Improve `Proof` [#1209](https://github.com/iotaledger/identity.rs/pull/1209) +- Polish `identity_jose` [#1201](https://github.com/iotaledger/identity.rs/pull/1201) +- Add `resolve_multiple` to Resolver [#1189](https://github.com/iotaledger/identity.rs/pull/1189) +- Make JWT presentations generic [#1186](https://github.com/iotaledger/identity.rs/pull/1186) +- Support JWT presentations [#1175](https://github.com/iotaledger/identity.rs/pull/1175) +- Polish JWK thumbprint and document extension API [#1173](https://github.com/iotaledger/identity.rs/pull/1173) +- Stronghold Storage Implementation [#1157](https://github.com/iotaledger/identity.rs/pull/1157) +- Implement `KeyIdStorage` in Rust [#1134](https://github.com/iotaledger/identity.rs/pull/1134) +- Implement `JwkStorage` [#1116](https://github.com/iotaledger/identity.rs/pull/1133) +- Add Wasm Bindings for Domain Linkage [#1115](https://github.com/iotaledger/identity.rs/pull/1115) +- Introduce `IToCoreDocument` and document locks in the bindings [#1120](https://github.com/iotaledger/identity.rs/pull/1120) +- Add Support for Domain Linkage in Rust [#1094](https://github.com/iotaledger/identity.rs/pull/1094) +- Add JSON Object Signing capabilities [#1105](https://github.com/iotaledger/identity.rs/pull/1105) +- Make `StateMetadataDocument` public [#1085](https://github.com/iotaledger/identity.rs/pull/1085) +- Add v. credentials and presentations examples [#1070](https://github.com/iotaledger/identity.rs/pull/1070) +- Add revocation examples [#1076](https://github.com/iotaledger/identity.rs/pull/1076) - Expose Controller and Governor Addresses in metadata [\#1023](https://github.com/iotaledger/identity.rs/pull/1023) - Add Stardust Client Extension Trait [\#963](https://github.com/iotaledger/identity.rs/pull/963) - Add StardustDID [\#949](https://github.com/iotaledger/identity.rs/pull/949) @@ -94,14 +102,16 @@ - Stardust DID Method Proof-of-Concept [\#940](https://github.com/iotaledger/identity.rs/pull/940) - Implement the Identity Agent [\#322](https://github.com/iotaledger/identity.rs/pull/322) + ### Patch -- Fix holder claim check in VP [\#1236](https://github.com/iotaledger/identity.rs/pull/1236) -- Fix issuer claim check in VC [\#1235](https://github.com/iotaledger/identity.rs/pull/1235) -- Feature-gate Domain Linkage [\#1184](https://github.com/iotaledger/identity.rs/pull/1184) -- Replace `iota-client` with `iota-sdk` [\#1161](https://github.com/iotaledger/identity.rs/pull/1161) -- Pin `form_urlencoded` to `1.1.0` [\#1136](https://github.com/iotaledger/identity.rs/pull/1136) -- Remove legacy crates [\#1080](https://github.com/iotaledger/identity.rs/pull/1080) +- Fix holder claim check in VP [#1236](https://github.com/iotaledger/identity.rs/pull/1236) +- Fix issuer claim check in VC [#1235](https://github.com/iotaledger/identity.rs/pull/1235) +- Feature-gate Domain Linkage [#1184](https://github.com/iotaledger/identity.rs/pull/1184) +- Update method spec and JWK method type [#1176](https://github.com/iotaledger/identity.rs/pull/1176) +- Replace `iota-client` with `iota-sdk` [#1161](https://github.com/iotaledger/identity.rs/pull/1161) +- Pin `form_urlencoded` to `1.1.0` [#1136](https://github.com/iotaledger/identity.rs/pull/1136) +- Remove legacy crates [#1080](https://github.com/iotaledger/identity.rs/pull/1080) - Recommend unique `credentialStatus.id` in `RevocationBitmap2022` [\#1039](https://github.com/iotaledger/identity.rs/pull/1039) - Pin agent dev-dependencies to crates versions [\#1029](https://github.com/iotaledger/identity.rs/pull/1029) - Support case insensitive serialization of `RentStructure` [\#1012](https://github.com/iotaledger/identity.rs/pull/1012)