-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: credential abstraction #88
Conversation
@@ -0,0 +1,9 @@ | |||
package io.iohk.atala.prism.walletsdk.domain.models | |||
|
|||
abstract interface Credential { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does it need to be abstract
? Just interface is enough no?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I squashed too fast and did not see these comments. I'll create a separate PR for them.
|
||
companion object { | ||
|
||
// @JvmStatic |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you already tested this code with JWTs then lets delete this comments :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I squashed too fast and did not see these comments. I'll create a separate PR for them.
} | ||
} | ||
|
||
inline fun <reified T> JsonObject.getCredentialField(name: String, isOptional: Boolean = false): T { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ooooh!! Nice!!! :)
@@ -0,0 +1,12 @@ | |||
package io.iohk.atala.prism.walletsdk.domain.models | |||
|
|||
interface StorableCredential : Credential { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In Swift this interface StorableCredential
doesn't have actually Credential
as a super. I suggest let's leave it like this and see in the future which is better from feedback. :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
@@ -31,7 +33,7 @@ interface Pluto { | |||
|
|||
fun storeMediator(mediator: DID, host: DID, routing: DID) | |||
|
|||
fun storeCredential(credential: VerifiableCredential) | |||
fun storeCredential(credential: StorableCredential) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we've done this slightly different in TS.
storeCredential
takes a Credential
and then handles whether it's storable or not.
not blocking but it would be good to align the SDKs
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, right now is different in all 3 SDKs. Would be a good think to discuss for a tech debt friday
This reverts commit 4354341.
Co-authored-by: Ahmed Moussa <[email protected]> Signed-off-by: Cristian G <[email protected]>
# [2.0.0](v1.0.0...v2.0.0) (2024-09-13) * chore!: update did peer library version ([#128](#128)) ([df3cd49](df3cd49)) ### Bug Fixes * adds env var for maven central publication ([#134](#134)) ([6ee16ad](6ee16ad)) * agent start and mediation achieved ([#60](#60)) ([98b6c42](98b6c42)) * anoncred verification and breaking changes missing ([#196](#196)) ([149adda](149adda)) * **ATL-4978:** fix OOB connection ([#79](#79)) ([411bcb3](411bcb3)) * ATL-5864 pr changes ([#109](#109)) ([48ca913](48ca913)) * backup recovery was linking incorrectly dids with private keys ([#178](#178)) ([06e9a8f](06e9a8f)) * base64 attachments and http correct request headers ([#85](#85)) ([f7d887c](f7d887c)) * bitstring for revocation registry ([#188](#188)) ([22a2da9](22a2da9)) * bump version for prism-agent v1.16 compatibility ([#99](#99)) ([48a0200](48a0200)) * create peer DID with updateMediator false does not ignore provided services ([#73](#73)) ([9bd7268](9bd7268)) * credentials duplicated when stored localy ([#69](#69)) ([1d63628](1d63628)) * DbConnection cannot be extended ([#169](#169)) ([82b03cc](82b03cc)) * delete unwanted comment from README.md ([#84](#84)) ([480dc86](480dc86)) * **DIDCommWrapper:** Crash when body is empty string ([#124](#124)) ([6be4add](6be4add)) * **docs:** Add general docs & code docs & CI ([7978f50](7978f50)) * e2e test broken after pull credential changed based on validUntil ([#158](#158)) ([f21df25](f21df25)) * **enhancements:** add @jvmoverloads for JWTJsonPayload ([#81](#81)) ([0f41fac](0f41fac)) * Fix dependencies to fully integrate with latest version of packages in prism-protos + protosLib. ([ccd2df8](ccd2df8)) * Fix key pair creation from private key for ED25519 ([#56](#56)) ([c3fe948](c3fe948)) * Fix key pair creation from private key for X25519 ([#57](#57)) ([eecaa92](eecaa92)) * Fix key pair creation from private key using SECP256K1 ([#55](#55)) ([57170c3](57170c3)) * Fix linting issues ([6e7dab6](6e7dab6)) * fixes demo app fetching job ([#110](#110)) ([85de871](85de871)) * Fixes for all committed code on main branch ([1d33dfa](1d33dfa)) * Implement test for key pair creation using mnemonics and seed for curve SECP256K1 ([#54](#54)) ([a87d65d](a87d65d)) * JWT proof ([#163](#163)) ([4e52aed](4e52aed)) * JWTJsonPayload fields are optional except ([#80](#80)) ([94b4c8f](94b4c8f)) * kmm agent up to date with swift public apis ([#67](#67)) ([fd1f5c8](fd1f5c8)) * Linting issue & project structure fixed ([b1953a0](b1953a0)) * make forward message and its body non internal ([#82](#82)) ([b9baa4b](b9baa4b)) * message model id generates a duplicity issue ([#86](#86)) ([55e7736](55e7736)) * missed renaming ([c71741f](c71741f)) * move hardcoded values into constants ([#72](#72)) ([5da8492](5da8492)) * override received message if already exists ([#87](#87)) ([bf64413](bf64413)) * pick up messages and mark as read ([#63](#63)) ([1ca24da](1ca24da)) * **pollux:** fix JWTPayload serlization & Update Error Handling ([#97](#97)) ([700f145](700f145)) * pr change request ATL-4965 ([#90](#90)) ([13c5e5e](13c5e5e)) * protolib ([957c563](957c563)) * release 4.0 ([#201](#201)) ([f4db465](f4db465)) * release 4.0 ([#202](#202)) ([122aeaa](122aeaa)) * release pipeline variable ([#135](#135)) ([1271809](1271809)) * remove private key storage duplicity ([#75](#75)) ([e4a1e9c](e4a1e9c)) * renaming ([9585d1a](9585d1a)) * renaming reference issues ([3adb41f](3adb41f)) * replace antlr with regex to solve did creation issues ([#114](#114)) ([7cd04d0](7cd04d0)) * request and achieve mediation ([#62](#62)) ([fe80e19](fe80e19)) * restore process duplicates did peers ([#173](#173)) ([da747c5](da747c5)) * restore process from swift/ts jwe ([#175](#175)) ([b9571b2](b9571b2)) * **sdk:** replace GlobalScope with correct coroutine scope ([c067f4c](c067f4c)) * Upgrade gradle ([#140](#140)) ([1e11da4](1e11da4)) * workaround PrismSdkInternal ([38860cc](38860cc)) * wrong casting KeyPair instead of PublicKey ([#139](#139)) ([7d0a5c9](7d0a5c9)) * zkp presentation could not be verified on the agent ([#157](#157)) ([3319dc4](3319dc4)) ### Features * [ALT-3065] Agent ability to start listening for messages ([#42](#42)) ([5af34da](5af34da)) * [ATL-2994] [Wallet SDK] Define domain interfaces and models ([#3](#3)) ([2c86672](2c86672)) * [ATL-2996] Add lifecycle management to the prism agent ([#39](#39)) ([abfa088](abfa088)) * [ATL-3001] Add out of band invitation protocol and out of band parse message ([#40](#40)) ([fdd164f](fdd164f)) * [ATL-3002&ATL-3003] Implement connection protocol, accept and request ([#41](#41)) ([79b25c5](79b25c5)) * [ATL-3066] Implement logic for received messages ([#43](#43)) ([1c728eb](1c728eb)) * [ATL-3103] Implement Request presentation and Presentation logic ([#46](#46)) ([2acaa79](2acaa79)) * [ATL-3104] Proof presentation implemented ([#47](#47)) ([fdd34b2](fdd34b2)) * Add CredentialPreview and CredentialFormat data classes to implement the IssueCredential Protocol. ([#26](#26)) ([3710bab](3710bab)) * add logging component to the sdk ([#77](#77)) ([f9bc7e1](f9bc7e1)) * add protobuf-gradle-plugin ([88f733f](88f733f)) * **agent:** add extra headers that were missing ([#96](#96)) ([44df235](44df235)) * **agent:** add mediation and ability to send messages ([4701ed0](4701ed0)) * **agent:** add mediation grant message ([c2888fa](c2888fa)) * **agent:** add mediator key list update ([613d6a1](613d6a1)) * **agent:** add mediator request message ([1c40530](1c40530)) * **agent:** add mediator request message ([#5](#5)) ([cd2db41](cd2db41)) * **agent:** add prism agent and create did functionalities ([03ca5cf](03ca5cf)) * **Agent:** Implement Credential Issue Protocol in PrismAgent ([#27](#27)) ([d30d6f0](d30d6f0)) * **agent:** Implementation Onboarding invitation on Agent ([#18](#18)) ([48413e6](48413e6)) * **Agent:** Logic to parse out of band invitations ([#25](#25)) ([1ad5e11](1ad5e11)) * **Agent:** Persist key pairs into local storage ([#22](#22)) ([62e42df](62e42df)) * anoncreds receive and store ([#91](#91)) ([4d4ce9f](4d4ce9f)) * Anoncreds verification ([#186](#186)) ([52c3895](52c3895)) * **Apollo:** Ed25519 key pair generation ([4411cdd](4411cdd)) * back up and restore ([#159](#159)) ([dcb10fd](dcb10fd)) * **build:** remove grpc dependencies and simplify protobufs ([8a980a5](8a980a5)) * **castor:** Add peerDID Create method + tests. ([#15](#15)) ([485b557](485b557)) * **castor:** Add peerDID resolver + tests. ([#14](#14)) ([df39ea3](df39ea3)) * **castor:** Resolve LongFormatPrismDIDs in Castor ([#23](#23)) ([e07a79f](e07a79f)) * contactless presentation request ([#192](#192)) ([e03ebbc](e03ebbc)) * credential abstraction ([#88](#88)) ([505e022](505e022)) * cryptographic abstraction and apollo integration ([#100](#100)) ([e0f5e05](e0f5e05)) * **didparser:** Adding amtlr4 grammar did parser with specification and tests ([#10](#10)) ([7bd96ce](7bd96ce)) * **didUrlParser:** add did url parser and g4 grammar ([#12](#12)) ([2b221d1](2b221d1)) * document models and make some classes internal ([#78](#78)) ([358008e](358008e)) * document the latest development ([#115](#115)) ([4b7361c](4b7361c)) * experimental opt-in for mediator live mode ([#150](#150)) ([0e30346](0e30346)) * implement derivableKey an include it into Secp256k1PrivateKey ([#112](#112)) ([f69a421](f69a421)) * Implement ED25519 - Keypair generation ([#52](#52)) ([1e6c6e6](1e6c6e6)) * Implement sign and verify for Ed25519 ([#59](#59)) ([6bb1564](6bb1564)) * Implement X25519 - Keypair generation ([83f80c8](83f80c8)) * Importable/Exportable keys ([#107](#107)) ([7597b91](7597b91)) * improve error handling ([#74](#74)) ([af71c74](af71c74)) * integrate authenticate-sdk, buildSrc (Deps + Version globals), Protos and basic dependencies from old SDK ([0c1fdfd](0c1fdfd)) * KeyRestoration ([#111](#111)) ([34e589e](34e589e)) * mediator DID can be updated from sample app UI ([#106](#106)) ([7da5a36](7da5a36)) * **mercury:** add default secrets resolver ([#34](#34)) ([bfa0d78](bfa0d78)) * **mercury:** add extra headers and add to pickup return route ([#94](#94)) ([4c3461e](4c3461e)) * **Mercury:** Orchestration and tests ([#49](#49)) ([935c13f](935c13f)) * Out of Band ([#64](#64)) ([47d2d45](47d2d45)) * **pluto db:** Implement db ([#13](#13)) ([a7ec245](a7ec245)) * **Pluto:** Add back flows to add reactiveness to the DB ([#38](#38)) ([ea35a4b](ea35a4b)) * **pluto:** Implementation of pluto ([#17](#17)) ([ca2896b](ca2896b)) * **pollux:** add create credential request and presentation jwt string and prism agent higher functionality ([f61be88](f61be88)) * **pollux:** add create credential request and presentation jwt string and prism agent higher functionality ([4b59854](4b59854)) * **pollux:** add sdjwt capability ([#174](#174)) ([cd3baf8](cd3baf8)) * **Prism Agent:** Add connection data persistency ([#37](#37)) ([46b8461](46b8461)) * **PrismAgent:** Implement message signature ([#21](#21)) ([fac2bf8](fac2bf8)) * project init ([5fb48c2](5fb48c2)) * receive and process presentation request ([#120](#120)) ([ddb8940](ddb8940)) * release first production version ([22f4948](22f4948)) * revocation notification event ([#148](#148)) ([e1753ec](e1753ec)) * Sample app with full flow ([#66](#66)) ([fa94311](fa94311)) * support for mediator live mode (websocket) ([#147](#147)) ([823b8b3](823b8b3)) * Update README.md ([#83](#83)) ([39c0d39](39c0d39)) * verification from SDK ([#155](#155)) ([61720b8](61720b8)) * Verification JWT Revocation registry check ([#165](#165)) ([755a7ef](755a7ef)) * Wallet SDK init ([17bdfdb](17bdfdb)) * wallet-core module init ([b99add5](b99add5)) * X25519 ([#48](#48)) ([0c2e02c](0c2e02c)) ### BREAKING CHANGES * Support OEA 1.26+ due to updates on the PeerDID Specs changes. Co-authored-by: Ahmed Moussa <[email protected]> Signed-off-by: Cristian G <[email protected]> * first release version Co-authored-by: Ahmed Moussa <[email protected]> Signed-off-by: Anton Baliasnikov <[email protected]>
# [2.0.0](v1.0.0...v2.0.0) (2024-09-13) * chore!: update did peer library version ([#128](#128)) ([df3cd49](df3cd49)) ### Bug Fixes * adds env var for maven central publication ([#134](#134)) ([6ee16ad](6ee16ad)) * agent start and mediation achieved ([#60](#60)) ([98b6c42](98b6c42)) * anoncred verification and breaking changes missing ([#196](#196)) ([6b0fb55](6b0fb55)) * **ATL-4978:** fix OOB connection ([#79](#79)) ([411bcb3](411bcb3)) * ATL-5864 pr changes ([#109](#109)) ([48ca913](48ca913)) * backup recovery was linking incorrectly dids with private keys ([#178](#178)) ([06e9a8f](06e9a8f)) * base64 attachments and http correct request headers ([#85](#85)) ([f7d887c](f7d887c)) * bitstring for revocation registry ([#188](#188)) ([22a2da9](22a2da9)) * bump version for prism-agent v1.16 compatibility ([#99](#99)) ([48a0200](48a0200)) * create peer DID with updateMediator false does not ignore provided services ([#73](#73)) ([9bd7268](9bd7268)) * credentials duplicated when stored localy ([#69](#69)) ([1d63628](1d63628)) * DbConnection cannot be extended ([#169](#169)) ([82b03cc](82b03cc)) * delete unwanted comment from README.md ([#84](#84)) ([480dc86](480dc86)) * **DIDCommWrapper:** Crash when body is empty string ([#124](#124)) ([6be4add](6be4add)) * **docs:** Add general docs & code docs & CI ([7978f50](7978f50)) * e2e test broken after pull credential changed based on validUntil ([#158](#158)) ([f21df25](f21df25)) * **enhancements:** add @jvmoverloads for JWTJsonPayload ([#81](#81)) ([0f41fac](0f41fac)) * Fix dependencies to fully integrate with latest version of packages in prism-protos + protosLib. ([ccd2df8](ccd2df8)) * Fix key pair creation from private key for ED25519 ([#56](#56)) ([c3fe948](c3fe948)) * Fix key pair creation from private key for X25519 ([#57](#57)) ([eecaa92](eecaa92)) * Fix key pair creation from private key using SECP256K1 ([#55](#55)) ([57170c3](57170c3)) * Fix linting issues ([6e7dab6](6e7dab6)) * fixes demo app fetching job ([#110](#110)) ([85de871](85de871)) * Fixes for all committed code on main branch ([1d33dfa](1d33dfa)) * Implement test for key pair creation using mnemonics and seed for curve SECP256K1 ([#54](#54)) ([a87d65d](a87d65d)) * JWT proof ([#163](#163)) ([4e52aed](4e52aed)) * JWTJsonPayload fields are optional except ([#80](#80)) ([94b4c8f](94b4c8f)) * kmm agent up to date with swift public apis ([#67](#67)) ([fd1f5c8](fd1f5c8)) * Linting issue & project structure fixed ([b1953a0](b1953a0)) * make forward message and its body non internal ([#82](#82)) ([b9baa4b](b9baa4b)) * message model id generates a duplicity issue ([#86](#86)) ([55e7736](55e7736)) * missed renaming ([c71741f](c71741f)) * move hardcoded values into constants ([#72](#72)) ([5da8492](5da8492)) * override received message if already exists ([#87](#87)) ([bf64413](bf64413)) * pick up messages and mark as read ([#63](#63)) ([1ca24da](1ca24da)) * **pollux:** fix JWTPayload serlization & Update Error Handling ([#97](#97)) ([700f145](700f145)) * pr change request ATL-4965 ([#90](#90)) ([13c5e5e](13c5e5e)) * protolib ([957c563](957c563)) * release pipeline variable ([#135](#135)) ([1271809](1271809)) * remove private key storage duplicity ([#75](#75)) ([e4a1e9c](e4a1e9c)) * renaming ([9585d1a](9585d1a)) * renaming reference issues ([3adb41f](3adb41f)) * replace antlr with regex to solve did creation issues ([#114](#114)) ([7cd04d0](7cd04d0)) * request and achieve mediation ([#62](#62)) ([fe80e19](fe80e19)) * restore process duplicates did peers ([#173](#173)) ([da747c5](da747c5)) * restore process from swift/ts jwe ([#175](#175)) ([b9571b2](b9571b2)) * **sdk:** replace GlobalScope with correct coroutine scope ([c067f4c](c067f4c)) * Upgrade gradle ([#140](#140)) ([1e11da4](1e11da4)) * workaround PrismSdkInternal ([38860cc](38860cc)) * wrong casting KeyPair instead of PublicKey ([#139](#139)) ([7d0a5c9](7d0a5c9)) * zkp presentation could not be verified on the agent ([#157](#157)) ([3319dc4](3319dc4)) ### Features * [ALT-3065] Agent ability to start listening for messages ([#42](#42)) ([5af34da](5af34da)) * [ATL-2994] [Wallet SDK] Define domain interfaces and models ([#3](#3)) ([2c86672](2c86672)) * [ATL-2996] Add lifecycle management to the prism agent ([#39](#39)) ([abfa088](abfa088)) * [ATL-3001] Add out of band invitation protocol and out of band parse message ([#40](#40)) ([fdd164f](fdd164f)) * [ATL-3002&ATL-3003] Implement connection protocol, accept and request ([#41](#41)) ([79b25c5](79b25c5)) * [ATL-3066] Implement logic for received messages ([#43](#43)) ([1c728eb](1c728eb)) * [ATL-3103] Implement Request presentation and Presentation logic ([#46](#46)) ([2acaa79](2acaa79)) * [ATL-3104] Proof presentation implemented ([#47](#47)) ([fdd34b2](fdd34b2)) * Add CredentialPreview and CredentialFormat data classes to implement the IssueCredential Protocol. ([#26](#26)) ([3710bab](3710bab)) * add logging component to the sdk ([#77](#77)) ([f9bc7e1](f9bc7e1)) * add protobuf-gradle-plugin ([88f733f](88f733f)) * **agent:** add extra headers that were missing ([#96](#96)) ([44df235](44df235)) * **agent:** add mediation and ability to send messages ([4701ed0](4701ed0)) * **agent:** add mediation grant message ([c2888fa](c2888fa)) * **agent:** add mediator key list update ([613d6a1](613d6a1)) * **agent:** add mediator request message ([1c40530](1c40530)) * **agent:** add mediator request message ([#5](#5)) ([cd2db41](cd2db41)) * **agent:** add prism agent and create did functionalities ([03ca5cf](03ca5cf)) * **Agent:** Implement Credential Issue Protocol in PrismAgent ([#27](#27)) ([d30d6f0](d30d6f0)) * **agent:** Implementation Onboarding invitation on Agent ([#18](#18)) ([48413e6](48413e6)) * **Agent:** Logic to parse out of band invitations ([#25](#25)) ([1ad5e11](1ad5e11)) * **Agent:** Persist key pairs into local storage ([#22](#22)) ([62e42df](62e42df)) * anoncreds receive and store ([#91](#91)) ([4d4ce9f](4d4ce9f)) * Anoncreds verification ([#186](#186)) ([52c3895](52c3895)) * **Apollo:** Ed25519 key pair generation ([4411cdd](4411cdd)) * back up and restore ([#159](#159)) ([dcb10fd](dcb10fd)) * **build:** remove grpc dependencies and simplify protobufs ([8a980a5](8a980a5)) * **castor:** Add peerDID Create method + tests. ([#15](#15)) ([485b557](485b557)) * **castor:** Add peerDID resolver + tests. ([#14](#14)) ([df39ea3](df39ea3)) * **castor:** Resolve LongFormatPrismDIDs in Castor ([#23](#23)) ([e07a79f](e07a79f)) * contactless presentation request ([#192](#192)) ([e03ebbc](e03ebbc)) * credential abstraction ([#88](#88)) ([505e022](505e022)) * cryptographic abstraction and apollo integration ([#100](#100)) ([e0f5e05](e0f5e05)) * **didparser:** Adding amtlr4 grammar did parser with specification and tests ([#10](#10)) ([7bd96ce](7bd96ce)) * **didUrlParser:** add did url parser and g4 grammar ([#12](#12)) ([2b221d1](2b221d1)) * document models and make some classes internal ([#78](#78)) ([358008e](358008e)) * document the latest development ([#115](#115)) ([4b7361c](4b7361c)) * experimental opt-in for mediator live mode ([#150](#150)) ([0e30346](0e30346)) * implement derivableKey an include it into Secp256k1PrivateKey ([#112](#112)) ([f69a421](f69a421)) * Implement ED25519 - Keypair generation ([#52](#52)) ([1e6c6e6](1e6c6e6)) * Implement sign and verify for Ed25519 ([#59](#59)) ([6bb1564](6bb1564)) * Implement X25519 - Keypair generation ([83f80c8](83f80c8)) * Importable/Exportable keys ([#107](#107)) ([7597b91](7597b91)) * improve error handling ([#74](#74)) ([af71c74](af71c74)) * integrate authenticate-sdk, buildSrc (Deps + Version globals), Protos and basic dependencies from old SDK ([0c1fdfd](0c1fdfd)) * KeyRestoration ([#111](#111)) ([34e589e](34e589e)) * mediator DID can be updated from sample app UI ([#106](#106)) ([7da5a36](7da5a36)) * **mercury:** add default secrets resolver ([#34](#34)) ([bfa0d78](bfa0d78)) * **mercury:** add extra headers and add to pickup return route ([#94](#94)) ([4c3461e](4c3461e)) * **Mercury:** Orchestration and tests ([#49](#49)) ([935c13f](935c13f)) * Out of Band ([#64](#64)) ([47d2d45](47d2d45)) * **pluto db:** Implement db ([#13](#13)) ([a7ec245](a7ec245)) * **Pluto:** Add back flows to add reactiveness to the DB ([#38](#38)) ([ea35a4b](ea35a4b)) * **pluto:** Implementation of pluto ([#17](#17)) ([ca2896b](ca2896b)) * **pollux:** add create credential request and presentation jwt string and prism agent higher functionality ([f61be88](f61be88)) * **pollux:** add create credential request and presentation jwt string and prism agent higher functionality ([4b59854](4b59854)) * **pollux:** add sdjwt capability ([#174](#174)) ([cd3baf8](cd3baf8)) * **Prism Agent:** Add connection data persistency ([#37](#37)) ([46b8461](46b8461)) * **PrismAgent:** Implement message signature ([#21](#21)) ([fac2bf8](fac2bf8)) * project init ([5fb48c2](5fb48c2)) * receive and process presentation request ([#120](#120)) ([ddb8940](ddb8940)) * release first production version ([22f4948](22f4948)) * revocation notification event ([#148](#148)) ([e1753ec](e1753ec)) * Sample app with full flow ([#66](#66)) ([fa94311](fa94311)) * support for mediator live mode (websocket) ([#147](#147)) ([823b8b3](823b8b3)) * Update README.md ([#83](#83)) ([39c0d39](39c0d39)) * verification from SDK ([#155](#155)) ([61720b8](61720b8)) * Verification JWT Revocation registry check ([#165](#165)) ([755a7ef](755a7ef)) * Wallet SDK init ([17bdfdb](17bdfdb)) * wallet-core module init ([b99add5](b99add5)) * X25519 ([#48](#48)) ([0c2e02c](0c2e02c)) ### BREAKING CHANGES * Pollux Module - `restoreCredential` now requires a third parameter `revoked`. - Removed: `createVerifiablePresentationJWT`, `createVerifiablePresentationAnoncred`, `getCredentialDefinition`, and `getSchema`. - Added new method: `processCredentialRequestSDJWT`. - `PolluxImpl` now implements `processCredentialRequestSDJWT`. - Pollux methods `parseCredential` and `processCredentialRequestAnoncreds` now accept `linkSecret: String` instead of `linkSecret: LinkSecret`. ConnectionManager - `ConnectionManager` is now an interface, and `ConnectionManagerImpl` is the new implementation. - `ConnectionManager` construct now requires a Pollux instance. Edge Agent (formerly PrismAgent) - The constructor now requires a new parameter: `AgentOptions`. - `PrismAgent` renamed to `EdgeAgent`. - `preparePresentationForRequestProof` now expects a `Credential` of type T, where T can be `Credential` or `ProvableCredential`. JWT Verifiable Credential - The `JWTVerifiableCredential` constructor replaces the parameter `credentialStatus: VerifiableCredentialTypeContainer` with `credentialStatus: CredentialStatus`. Pluto Module - `getDIDPrivateKeysByDID` and `getDIDPrivateKeyByID` now return `Flow<List<StorablePrivateKey?>>`. - New method added: `getAllPrivateKeys`. - `PlutoImpl` deprecated `storeCredentialMetadata(name: String, metadata: CredentialRequestMeta)` and replaced it with `storeCredentialMetadata(name: String, linkSecretName: String, json: String)`. Apollo Module - `restorePrivateKey(storablePrivateKey: StorablePrivateKey): PrivateKey` changed to `restorePrivateKey(restorationIdentifier: String, privateKeyData: String): PrivateKey`. DbConnection - `DbConnection` is now an interface. - `DbConnectionImpl` is the new instance used for DB connections. Presentation Submissions - `createPresentationSubmission` parameter `presentationDefinitionRequest: PresentationDefinitionRequest` changed to `presentationDefinitionRequestString: String`, and the return type changed to `String`. - New methods added: `createJWTPresentationSubmission`, `createAnoncredsPresentationSubmission`, and `getSchema`. - `createPresentationDefinitionRequest` now returns a `String`. OutOfBandInvitation - New constructor parameters: `attachments`, `createdTime`, and `expiresTime`. Module Renaming - `AtalaPrismSDK` renamed to `EdgeAgentSDK`. - Package name changed from `io.iohk.atala.prism.walletsdk` to `org.hyperledger.identus.walletsdk`. - `publishedMavenId` changed from `io.iohk.atala.prism.walletsdk` to `org.hyperledger.identus`. - Namespace changed from `org.hyperledger.identus.walletsdk` to `org.hyperledger.identus`. Signed-off-by: Cristian G <[email protected]> Signed-off-by: Allain Magyar <[email protected]> * Support OEA 1.26+ due to updates on the PeerDID Specs changes. Co-authored-by: Ahmed Moussa <[email protected]> Signed-off-by: Cristian G <[email protected]> * first release version Co-authored-by: Ahmed Moussa <[email protected]> Signed-off-by: Anton Baliasnikov <[email protected]>
# [2.0.0](v1.0.0...v2.0.0) (2024-09-13) * chore!: update did peer library version ([#128](#128)) ([df3cd49](df3cd49)) ### Bug Fixes * adds env var for maven central publication ([#134](#134)) ([6ee16ad](6ee16ad)) * agent start and mediation achieved ([#60](#60)) ([98b6c42](98b6c42)) * anoncred verification and breaking changes missing ([#196](#196)) ([6b0fb55](6b0fb55)) * **ATL-4978:** fix OOB connection ([#79](#79)) ([411bcb3](411bcb3)) * ATL-5864 pr changes ([#109](#109)) ([48ca913](48ca913)) * backup recovery was linking incorrectly dids with private keys ([#178](#178)) ([06e9a8f](06e9a8f)) * base64 attachments and http correct request headers ([#85](#85)) ([f7d887c](f7d887c)) * bitstring for revocation registry ([#188](#188)) ([22a2da9](22a2da9)) * bump version for prism-agent v1.16 compatibility ([#99](#99)) ([48a0200](48a0200)) * create peer DID with updateMediator false does not ignore provided services ([#73](#73)) ([9bd7268](9bd7268)) * credentials duplicated when stored localy ([#69](#69)) ([1d63628](1d63628)) * DbConnection cannot be extended ([#169](#169)) ([82b03cc](82b03cc)) * delete unwanted comment from README.md ([#84](#84)) ([480dc86](480dc86)) * **DIDCommWrapper:** Crash when body is empty string ([#124](#124)) ([6be4add](6be4add)) * **docs:** Add general docs & code docs & CI ([7978f50](7978f50)) * e2e test broken after pull credential changed based on validUntil ([#158](#158)) ([f21df25](f21df25)) * **enhancements:** add @jvmoverloads for JWTJsonPayload ([#81](#81)) ([0f41fac](0f41fac)) * Fix dependencies to fully integrate with latest version of packages in prism-protos + protosLib. ([ccd2df8](ccd2df8)) * Fix key pair creation from private key for ED25519 ([#56](#56)) ([c3fe948](c3fe948)) * Fix key pair creation from private key for X25519 ([#57](#57)) ([eecaa92](eecaa92)) * Fix key pair creation from private key using SECP256K1 ([#55](#55)) ([57170c3](57170c3)) * Fix linting issues ([6e7dab6](6e7dab6)) * fixes demo app fetching job ([#110](#110)) ([85de871](85de871)) * Fixes for all committed code on main branch ([1d33dfa](1d33dfa)) * Implement test for key pair creation using mnemonics and seed for curve SECP256K1 ([#54](#54)) ([a87d65d](a87d65d)) * JWT proof ([#163](#163)) ([4e52aed](4e52aed)) * JWTJsonPayload fields are optional except ([#80](#80)) ([94b4c8f](94b4c8f)) * kmm agent up to date with swift public apis ([#67](#67)) ([fd1f5c8](fd1f5c8)) * Linting issue & project structure fixed ([b1953a0](b1953a0)) * make forward message and its body non internal ([#82](#82)) ([b9baa4b](b9baa4b)) * message model id generates a duplicity issue ([#86](#86)) ([55e7736](55e7736)) * missed renaming ([c71741f](c71741f)) * move hardcoded values into constants ([#72](#72)) ([5da8492](5da8492)) * override received message if already exists ([#87](#87)) ([bf64413](bf64413)) * pick up messages and mark as read ([#63](#63)) ([1ca24da](1ca24da)) * **pollux:** fix JWTPayload serlization & Update Error Handling ([#97](#97)) ([700f145](700f145)) * pr change request ATL-4965 ([#90](#90)) ([13c5e5e](13c5e5e)) * protolib ([957c563](957c563)) * release pipeline variable ([#135](#135)) ([1271809](1271809)) * remove private key storage duplicity ([#75](#75)) ([e4a1e9c](e4a1e9c)) * renaming ([9585d1a](9585d1a)) * renaming reference issues ([3adb41f](3adb41f)) * replace antlr with regex to solve did creation issues ([#114](#114)) ([7cd04d0](7cd04d0)) * request and achieve mediation ([#62](#62)) ([fe80e19](fe80e19)) * restore process duplicates did peers ([#173](#173)) ([da747c5](da747c5)) * restore process from swift/ts jwe ([#175](#175)) ([b9571b2](b9571b2)) * **sdk:** replace GlobalScope with correct coroutine scope ([c067f4c](c067f4c)) * Upgrade gradle ([#140](#140)) ([1e11da4](1e11da4)) * workaround PrismSdkInternal ([38860cc](38860cc)) * wrong casting KeyPair instead of PublicKey ([#139](#139)) ([7d0a5c9](7d0a5c9)) * zkp presentation could not be verified on the agent ([#157](#157)) ([3319dc4](3319dc4)) ### Features * [ALT-3065] Agent ability to start listening for messages ([#42](#42)) ([5af34da](5af34da)) * [ATL-2994] [Wallet SDK] Define domain interfaces and models ([#3](#3)) ([2c86672](2c86672)) * [ATL-2996] Add lifecycle management to the prism agent ([#39](#39)) ([abfa088](abfa088)) * [ATL-3001] Add out of band invitation protocol and out of band parse message ([#40](#40)) ([fdd164f](fdd164f)) * [ATL-3002&ATL-3003] Implement connection protocol, accept and request ([#41](#41)) ([79b25c5](79b25c5)) * [ATL-3066] Implement logic for received messages ([#43](#43)) ([1c728eb](1c728eb)) * [ATL-3103] Implement Request presentation and Presentation logic ([#46](#46)) ([2acaa79](2acaa79)) * [ATL-3104] Proof presentation implemented ([#47](#47)) ([fdd34b2](fdd34b2)) * Add CredentialPreview and CredentialFormat data classes to implement the IssueCredential Protocol. ([#26](#26)) ([3710bab](3710bab)) * add logging component to the sdk ([#77](#77)) ([f9bc7e1](f9bc7e1)) * add protobuf-gradle-plugin ([88f733f](88f733f)) * **agent:** add extra headers that were missing ([#96](#96)) ([44df235](44df235)) * **agent:** add mediation and ability to send messages ([4701ed0](4701ed0)) * **agent:** add mediation grant message ([c2888fa](c2888fa)) * **agent:** add mediator key list update ([613d6a1](613d6a1)) * **agent:** add mediator request message ([1c40530](1c40530)) * **agent:** add mediator request message ([#5](#5)) ([cd2db41](cd2db41)) * **agent:** add prism agent and create did functionalities ([03ca5cf](03ca5cf)) * **Agent:** Implement Credential Issue Protocol in PrismAgent ([#27](#27)) ([d30d6f0](d30d6f0)) * **agent:** Implementation Onboarding invitation on Agent ([#18](#18)) ([48413e6](48413e6)) * **Agent:** Logic to parse out of band invitations ([#25](#25)) ([1ad5e11](1ad5e11)) * **Agent:** Persist key pairs into local storage ([#22](#22)) ([62e42df](62e42df)) * anoncreds receive and store ([#91](#91)) ([4d4ce9f](4d4ce9f)) * Anoncreds verification ([#186](#186)) ([52c3895](52c3895)) * **Apollo:** Ed25519 key pair generation ([4411cdd](4411cdd)) * back up and restore ([#159](#159)) ([dcb10fd](dcb10fd)) * **build:** remove grpc dependencies and simplify protobufs ([8a980a5](8a980a5)) * **castor:** Add peerDID Create method + tests. ([#15](#15)) ([485b557](485b557)) * **castor:** Add peerDID resolver + tests. ([#14](#14)) ([df39ea3](df39ea3)) * **castor:** Resolve LongFormatPrismDIDs in Castor ([#23](#23)) ([e07a79f](e07a79f)) * contactless presentation request ([#192](#192)) ([e03ebbc](e03ebbc)) * credential abstraction ([#88](#88)) ([505e022](505e022)) * cryptographic abstraction and apollo integration ([#100](#100)) ([e0f5e05](e0f5e05)) * **didparser:** Adding amtlr4 grammar did parser with specification and tests ([#10](#10)) ([7bd96ce](7bd96ce)) * **didUrlParser:** add did url parser and g4 grammar ([#12](#12)) ([2b221d1](2b221d1)) * document models and make some classes internal ([#78](#78)) ([358008e](358008e)) * document the latest development ([#115](#115)) ([4b7361c](4b7361c)) * experimental opt-in for mediator live mode ([#150](#150)) ([0e30346](0e30346)) * implement derivableKey an include it into Secp256k1PrivateKey ([#112](#112)) ([f69a421](f69a421)) * Implement ED25519 - Keypair generation ([#52](#52)) ([1e6c6e6](1e6c6e6)) * Implement sign and verify for Ed25519 ([#59](#59)) ([6bb1564](6bb1564)) * Implement X25519 - Keypair generation ([83f80c8](83f80c8)) * Importable/Exportable keys ([#107](#107)) ([7597b91](7597b91)) * improve error handling ([#74](#74)) ([af71c74](af71c74)) * integrate authenticate-sdk, buildSrc (Deps + Version globals), Protos and basic dependencies from old SDK ([0c1fdfd](0c1fdfd)) * KeyRestoration ([#111](#111)) ([34e589e](34e589e)) * mediator DID can be updated from sample app UI ([#106](#106)) ([7da5a36](7da5a36)) * **mercury:** add default secrets resolver ([#34](#34)) ([bfa0d78](bfa0d78)) * **mercury:** add extra headers and add to pickup return route ([#94](#94)) ([4c3461e](4c3461e)) * **Mercury:** Orchestration and tests ([#49](#49)) ([935c13f](935c13f)) * Out of Band ([#64](#64)) ([47d2d45](47d2d45)) * **pluto db:** Implement db ([#13](#13)) ([a7ec245](a7ec245)) * **Pluto:** Add back flows to add reactiveness to the DB ([#38](#38)) ([ea35a4b](ea35a4b)) * **pluto:** Implementation of pluto ([#17](#17)) ([ca2896b](ca2896b)) * **pollux:** add create credential request and presentation jwt string and prism agent higher functionality ([f61be88](f61be88)) * **pollux:** add create credential request and presentation jwt string and prism agent higher functionality ([4b59854](4b59854)) * **pollux:** add sdjwt capability ([#174](#174)) ([cd3baf8](cd3baf8)) * **Prism Agent:** Add connection data persistency ([#37](#37)) ([46b8461](46b8461)) * **PrismAgent:** Implement message signature ([#21](#21)) ([fac2bf8](fac2bf8)) * project init ([5fb48c2](5fb48c2)) * receive and process presentation request ([#120](#120)) ([ddb8940](ddb8940)) * release first production version ([22f4948](22f4948)) * revocation notification event ([#148](#148)) ([e1753ec](e1753ec)) * Sample app with full flow ([#66](#66)) ([fa94311](fa94311)) * support for mediator live mode (websocket) ([#147](#147)) ([823b8b3](823b8b3)) * Update README.md ([#83](#83)) ([39c0d39](39c0d39)) * verification from SDK ([#155](#155)) ([61720b8](61720b8)) * Verification JWT Revocation registry check ([#165](#165)) ([755a7ef](755a7ef)) * Wallet SDK init ([17bdfdb](17bdfdb)) * wallet-core module init ([b99add5](b99add5)) * X25519 ([#48](#48)) ([0c2e02c](0c2e02c)) ### BREAKING CHANGES * Pollux Module - `restoreCredential` now requires a third parameter `revoked`. - Removed: `createVerifiablePresentationJWT`, `createVerifiablePresentationAnoncred`, `getCredentialDefinition`, and `getSchema`. - Added new method: `processCredentialRequestSDJWT`. - `PolluxImpl` now implements `processCredentialRequestSDJWT`. - Pollux methods `parseCredential` and `processCredentialRequestAnoncreds` now accept `linkSecret: String` instead of `linkSecret: LinkSecret`. ConnectionManager - `ConnectionManager` is now an interface, and `ConnectionManagerImpl` is the new implementation. - `ConnectionManager` construct now requires a Pollux instance. Edge Agent (formerly PrismAgent) - The constructor now requires a new parameter: `AgentOptions`. - `PrismAgent` renamed to `EdgeAgent`. - `preparePresentationForRequestProof` now expects a `Credential` of type T, where T can be `Credential` or `ProvableCredential`. JWT Verifiable Credential - The `JWTVerifiableCredential` constructor replaces the parameter `credentialStatus: VerifiableCredentialTypeContainer` with `credentialStatus: CredentialStatus`. Pluto Module - `getDIDPrivateKeysByDID` and `getDIDPrivateKeyByID` now return `Flow<List<StorablePrivateKey?>>`. - New method added: `getAllPrivateKeys`. - `PlutoImpl` deprecated `storeCredentialMetadata(name: String, metadata: CredentialRequestMeta)` and replaced it with `storeCredentialMetadata(name: String, linkSecretName: String, json: String)`. Apollo Module - `restorePrivateKey(storablePrivateKey: StorablePrivateKey): PrivateKey` changed to `restorePrivateKey(restorationIdentifier: String, privateKeyData: String): PrivateKey`. DbConnection - `DbConnection` is now an interface. - `DbConnectionImpl` is the new instance used for DB connections. Presentation Submissions - `createPresentationSubmission` parameter `presentationDefinitionRequest: PresentationDefinitionRequest` changed to `presentationDefinitionRequestString: String`, and the return type changed to `String`. - New methods added: `createJWTPresentationSubmission`, `createAnoncredsPresentationSubmission`, and `getSchema`. - `createPresentationDefinitionRequest` now returns a `String`. OutOfBandInvitation - New constructor parameters: `attachments`, `createdTime`, and `expiresTime`. Module Renaming - `AtalaPrismSDK` renamed to `EdgeAgentSDK`. - Package name changed from `io.iohk.atala.prism.walletsdk` to `org.hyperledger.identus.walletsdk`. - `publishedMavenId` changed from `io.iohk.atala.prism.walletsdk` to `org.hyperledger.identus`. - Namespace changed from `org.hyperledger.identus.walletsdk` to `org.hyperledger.identus`. Signed-off-by: Cristian G <[email protected]> Signed-off-by: Allain Magyar <[email protected]> * Support OEA 1.26+ due to updates on the PeerDID Specs changes. Co-authored-by: Ahmed Moussa <[email protected]> Signed-off-by: Cristian G <[email protected]> * first release version Co-authored-by: Ahmed Moussa <[email protected]> Signed-off-by: Anton Baliasnikov <[email protected]>
This PR replaces the previous VerifiableCredential with an abstraction suitable to support JWT and W3C credential, and annoncreds.
Previous flows tested for offer and issue credential, proof request and presentation.