Releases: trustbloc/wallet-sdk
1.2.2-swift-pm
New walletsdk version 1.2.2-swift-pm
1.2.2
What's Changed
- fix(app): Fix for error while presenting in IOS in wallet initiate flow by @talwinder50 in #547
- feat(app): added docker publising in CI build job by @birtony in #548
- feat(app): Support for ClientID registration scheme by @talwinder50 in #549
- feat(sdk): Wasm integration tests. by @vkubiv in #552
- fix(app): Refactor WalletSDKPlugin.createDID method to return proper structure by @talwinder50 in #553
- fix(app): fixed demo app image publishing by @birtony in #550
- fix(app): Refactor the createDid method return type in JS by @talwinder50 in #555
- feat(app): Update supported credential UI in the wallet initiated flow by @talwinder50 in #551
- fix(app): removed outdated assets folder from docker image logic by @birtony in #559
- chore(app): increased CI job timeout for demo app publishing by @birtony in #560
- fix(sdk): Update linter by @DRK3 in #558
- refactor(sdk): move storageutil into wallet-sdk. by @vkubiv in #557
- chore(app): increased CI job timeout for demo app publishing by @birtony in #561
- docs(sdk): wasm optimization by @vkubiv in #554
- feat(sdk): DI proof support by @DRK3 in #556
- fix(app): Connect issuer page UI Display by @talwinder50 in #562
- fix(app): Fix the crash in wallet-initiated flow when the environment is down by @talwinder50 in #564
- chore(sdk): update to use trustbloc libs. by @vkubiv in #563
- fix(app): updated demo app web docker image publishing logic by @birtony in #567
- fix(app): switched token for ci job by @birtony in #568
- fix(app): Update the delete credential feature UI by @talwinder50 in #566
- chore(app): updated wallet-sdk to latest in demo app by @birtony in #569
- feat(sdk): Type constraint and schemas from matched input descriptors by @DRK3 in #570
- chore(sdk): Disable WASM integration tests (temporary) by @DRK3 in #571
- chore(app): set non-exempt encryption flag to false by @rolsonquadras in #573
- feat(app): Display the typeConstraint to the app when no credentials are found by @talwinder50 in #572
- feat(app): Detect type of supported schemas when credentials are not found by @talwinder50 in #574
- chore(app): updated demo app to latest sdk by @birtony in #576
- feat(sdk): Make credentials optional for GetSubmissionRequirements by @DRK3 in #577
- fix(app): Fix the issuer name getting truncated due to large size by @talwinder50 in #578
Full Changelog: 1.2.1...1.2.2
1.2.1-swift-pm
New walletsdk version 1.2.1-swift-pm
1.2.1
What's Changed
- fix(app): fixed responsiveness bug in the otp screen by @birtony in #529
- fix(app): Add the verfier logo uri and purpose in the UI by @talwinder50 in #539
- chore(app): upgraded to flutter v3.10 and updated docs by @birtony in #540
- fix(app): Fix incorrect pin error msg in android by @talwinder50 in #541
- feat(app): Implement wallet initiate flow in android by @talwinder50 in #542
- feat(sdk): Support for getting issuer logo from metadata (if available) by @DRK3 in #543
- feat(app): added containerization for demo flutter app web by @birtony in #545
- fix(app): Add issuer logo support in the app (ios/android) by @talwinder50 in #546
- docs(sdk): Remove "last updated" lines by @DRK3 in #544
Full Changelog: 1.2.0...1.2.1
1.2.0-swift-pm
New walletsdk version 1.2.0-swift-pm
1.2.0
1.2.0
What's New
- SDK
- Android and iOS
- Issuance Metadata API to show issuer and credential preview
- New Presentation API to override the SDK matching logic to send a credential to the verifier (openid4VPInteraction.presentCredentialUnsafe)
- Support for Wallet Initiated flow
- Improved Error handling
- NEW: JavaScript SDK
- PoC API for DID Creation, OpenID4CI Issuance and OpenID4VP Presentation protocols. Refer here more info.
- Android and iOS
- Reference App
- Android and iOS
- Issuance preview screen to display issuer and credential metadata
- New tab for Wallet initiated flow
- NEW: Web
- E2E support for Issuance and Presentation flow
- Android and iOS
What's Changed
- feat(sdk): implementation of basic Wasm JS interop by @vkubiv in #473
- feat(sdk): implementing JS part of basic Wasm JS interop by @vkubiv in #477
- feat(app): added web target for demo app by @birtony in #479
- feat(sdk): OpenID4CI wallet-initiated flow support by @DRK3 in #469
- feat(sdk): openid4ci JS API. by @vkubiv in #480
- feat(app): Support for dynamic registration in the app in ios and android by @talwinder50 in #478
- fix(sdk): Update interaction naming in JS code by @DRK3 in #481
- test(app): Ios and Kotlin Integration test for dynamic registration by @talwinder50 in #483
- feat(sdk)!: Improvements to dynamic client registration API by @DRK3 in #482
- feat(app): Fix the error screen popping up while handling the redirect to show credential preview - auth flow by @talwinder50 in #484
- feat(sdk): openid4ci js api. by @vkubiv in #487
- feat(sdk): added packaging for wallet-sdk-js by @birtony in #485
- feat(sdk,app): parse credential display data JS API. by @vkubiv in #488
- feat(sdk): added npm package publishing for wallet-sdk-js by @birtony in #486
- docs(sdk,app): JavaScript SDK/Web App doc scaffolding with intro by @rolsonquadras in #489
- feat(sdk): add OpenID4VP present API that skips constraint validation by @Moopli in #490
- docs(sdk): document OpenID4VP presentCredentialUnsafe by @Moopli in #493
- chore(sdk): update afgo models to use latest pEx updates by @Moopli in #494
- feat(sdk): Error improvements by @DRK3 in #491
- fix(sdk): fixed wallet-sdk-js publishing script by @birtony in #497
- fix(sdk): re-enable pEx v1 schema checking in openID4VP by @Moopli in #495
- fix(sdk): updated token for npm publishing by @birtony in #498
- feat(app): Wallet Initiated flow UI changes by @talwinder50 in #492
- feat(sdk,app): make kms storage injectable. by @vkubiv in #499
- fix(app): removed ffi lib to unblock web app by @birtony in #500
- fix(sdk): added missing parseResolvedDisplayData method by @birtony in #501
- feat(sdk): Option to set issuer state when creating authorization URL by @DRK3 in #503
- feat(app): integrating with wallet-sdk-js npm registry by @birtony in #502
- docs(sdk): js sdk doc improvements by @rolsonquadras in #504
- docs(sdk): added usage documentation for wallet-sdk-js by @birtony in #505
- fix(app): updated targets for demo web app by @birtony in #506
- feat(sdk): Merge higher-level errors into mobile error details field by @DRK3 in #507
- feat(sdk): OpenID4VP error response parsing by @DRK3 in #508
- feat(app): Update the invalid pin error handling scenario by @talwinder50 in #511
- feat(sdk): OpenID4VP JS API. by @vkubiv in #512
- feat(sdk): Issuance URI scheme validation by @DRK3 in #513
- feat(sdk,app): integration of openci4vp into the demo app. by @vkubiv in #514
- feat(sdk): Improved authorization request error handling by @DRK3 in #515
- fix(sdk): updated methods to latest sdk signatures by @birtony in #516
- feat(app): Integrate wallet initiated flow with ui changes iOS by @talwinder50 in #520
- chore(app): updated web targets in demo app and sdk version by @birtony in #517
- feat(sdk)!: Ability to get issuer metadata in mobile bindings by @DRK3 in #522
- feat(sdk): added release job for wallet-sdk-js by @birtony in #525
- feat(sdk): verify credential and did wellknown JS api. by @vkubiv in #523
- chore(app): [wallet-init-flows] update issuer name by @rolsonquadras in #524
- docs(sdk): Dynamic client registration by @DRK3 in #526
- chore(app): updated wallet-sdk-js to latest by @birtony in #527
- fix(app): fix wellKnownDidConfig and getVerifierDisplayData by @vkubiv in #528
- feat(sdk): Issuer metadata URL display value by @DRK3 in #531
- feat(sdk): Support for the OAuth Discoverable Client ID Scheme by @DRK3 in #530
- feat(app): Implement issuance preview screen ios by @talwinder50 in #533
- feat(sdk): MS Entra presentation error code handling by @DRK3 in #532
- chore(app): updated to latest wallet-sdk-js by @birtony in #535
- feat(app): Implement issuance preview ui (android) by @talwinder50 in #537
- feat(sdk): Added a new message field to errors by @DRK3 in #536
- feat(app): Add support for localized issuer url by @talwinder50 in #538
Full Changelog: 1.1.0...1.2.0
1.1.0-swift-pm
New walletsdk version 1.1.0-swift-pm
1.1.0
1.1.0
The TrustBloc Wallet SDK v1.1 supports JSON-LD Verifiable Credential (VC) format, OpenID4VCI Authorization Code Issuance protocol, and minor bug fixes.
What's New
- SDK
- OpenID4VCI Authorization Code flow
- Support for W3C Verifiable Credential (VC) JSON-LD format
- Support for BBS+ Selective Disclosure Crypto
- Golang v1.20 upgrade
- Update to JWT proof validation logic
- Reference App
- Support for OpenID4VCI Authorization Code flow
- Support for W3C Verifiable Credential (VC) JSON-LD format
Breaking Changes
Interaction Args
Before
Kotlin
import dev.trustbloc.wallet.sdk.openid4ci.*
val args = Args(...)
val opts = Opts(...)
Swift
let args = Openid4ciNewArgs(...)
let opts = Openid4ciNewOpts(...)
After
Kotlin
import dev.trustbloc.wallet.sdk.openid4ci.*
val args = InteractionArgs(...)
val opts = InteractionOpts(...)
Swift
let interactionArgs = Openid4ciNewInteractionArgs(...)
let interactionOpts = Openid4ciNewInteractionOpts(...)
Pre-authorized Code Flow
Before
Kotlin
val result = interaction.authorize()
val credentials: CredentialsArray
if (result.UserPINRequired) {
credentials = interaction.requestCredentialWithPIN(didDocResolution.assertionMethod(), "1234")
} else {
credentials = interaction.requestCredential(didDocResolution.assertionMethod())
}
Swift
let result = interaction.authorize()
var credentials: VerifiableCredentialsArray
if result.UserPINRequired {
credentials = interaction.requestCredential(withPIN: didDocResolution.assertionMethod(), pin:"1234")
} else {
credentials = interaction.requestCredential(didDocResolution.assertionMethod())
}
After
Kotlin
// It's a good idea to check the issuer's capabilities first
if (!interaction.preAuthorizedCodeGrantTypeSupported()) {
// This code example isn't applicable.
return
}
val requestCredentialWithPreAuthOpts = RequestCredentialWithPreAuthOpts()
if (interaction.preAuthorizedCodeGrantParams().pinRequired()) {
requestCredentialWithPreAuthOpts.setPIN("1234")
}
val credentials = interaction.requestCredentialWithPreAuth(didDocResolution.assertionMethod(), requestCredentialWithPreAuthOpts)
Swift
// It's a good idea to check the issuer's capabilities first
if !interaction.preAuthorizedCodeGrantTypeSupported() {
// This code example isn't applicable.
return
}
let requestCredentialWithPreAuthOpts = Openid4ciRequestCredentialWithPreAuthOpts()
if (issuerCapabilities.preAuthorizedCodeGrantParams().pinRequired()) {
requestCredentialWithPreAuthOpts!.setPIN("1234")
}
let credentials = interaction.requestCredential(withPreAuth: didDocResolution.assertionMethod(), opts: requestCredentialWithPreAuthOpts)
Credential Inquirer
Before
Swift
let inquirer = CredentialNewInquirer(nil)
After
Swift
var newInquirerError: NSError?
let inquirer = CredentialNewInquirer(nil, &newInquirerError)
Depreciated APIs
The methods used in the "before" examples are deprecated and should be replaced with their equivalents
in the "after" methods. The deprecated methods will be removed in a future version. In this version,
the deprecated methods still exist, but simply act as aliases for the newer methods.
Pre-authorized Code Flow
Before
Kotlin
if (pinRequired) {
credentials = interaction.requestCredentialWithPIN(didDocResolution.assertionMethod(), "1234")
} else {
credentials = interaction.requestCredential(didDocResolution.assertionMethod())
}
Swift
if pinRequired {
credentials = interaction.requestCredential(withPIN: didDocResolution.assertionMethod(), pin:"1234")
} else {
credentials = interaction.requestCredential(didDocResolution.assertionMethod())
}
After
Kotlin
val requestCredentialWithPreAuthOpts = RequestCredentialWithPreAuthOpts()
if (pinRequired) {
requestCredentialWithPreAuthOpts.setPIN("1234")
}
val credentials = interaction.requestCredentialWithPreAuth(didDocResolution.assertionMethod(), requestCredentialWithPreAuthOpts)
Swift
let requestCredentialWithPreAuthOpts = Openid4ciRequestCredentialWithPreAuthOpts()
if pinRequired {
requestCredentialWithPreAuthOpts!.setPIN("1234")
}
let credentials = interaction.requestCredential(withPreAuth: didDocResolution.assertionMethod(), opts: requestCredentialWithPreAuthOpts)
What's Changed
- docs(sdk): update sdk version in the example to 1.0.0 by @rolsonquadras in #399
- fix(app): Activity logger UI by @talwinder50 in #398
- feat(sdk): bbs+ support. by @vkubiv in #400
- fix(app): Update to show activities per credential by @talwinder50 in #402
- refactor(sdk): remove credential query dead code. by @vkubiv in #403
- feat(app): Add support for multi cred by @talwinder50 in #404
- fix(app): Fix the activity UI changes in android by @talwinder50 in #407
- fix(app): Update the success page to show the multi cred if shared multiple creds by @talwinder50 in #410
- fix(app): Enable copy feature in the app by @talwinder50 in #411
- fix(sdk): apply selective disclosure to results of get submission requirements by @vkubiv in #412
- feat(app): option to build the app with maven wallet-sdk. by @vkubiv in #414
- fix(app): Adding trace id to the error msg and fix for pr card selection by @talwinder50 in #415
- feat(sdk): check that SD properly hide not disclosed info. by @vkubiv in #418
- fix(app): Show only the credential matches the submission to multi credential shared by @talwinder50 in #417
- feat(sdk)!: OpenID4CI authorization code flow support by @DRK3 in #413
- fix(app): Issue in the demo app with PR Card Verifier flow by @talwinder50 in #420
- feat(app): daily app build with maven wallet-sdk. by @vkubiv in #416
- feat(app): Auth code flow issuance ui by @talwinder50 in #424
- feat(app): daily app build with spm by @vkubiv in #425
- fix(app): daily check maven wallet-sdk. by @vkubiv in #427
- docs(sdk): Corrections to iOS code examples by @DRK3 in #422
- feat(sdk): Update vc-rest version in BDD tests by @DRK3 in #428
- fix(app): iOS deep link support for auth code flow UI by @talwinder50 in #429
- fix(app): Android deep link support for auth code flow UI by @talwinder50 in #430
- ci(app): upgrade gradle action version by @rolsonquadras in #432
- fix(app): Pass authcode args via arguments by @talwinder50 in #433
- fix(app): Error handling support by @talwinder50 in #434
- feat(app): Add support for multi auth code args from the issuer by @talwinder50 in #438
- test(sdk): Auth code flow BDD test by @DRK3 in #436
- fix(app): Add support to make auth code flow works in simulator by @talwinder50 in #439
- test(app): add docker pull command by @rolsonquadras in #443
- fix(app): Update the handle vp logic to support selective disclosure by @talwinder50 in #441
- test(app): add auth-code flow client configs for json-ld/bbs+ profile by @rolsonquadras in #444
- chore(sdk): update to latest afgo, use new afgo components by @Moopli in #435
- fix(app): Add support to read qr code scan with credential offer uri by @talwinder50 in #445
- fix(app): add proper network permissions for android. by @vkubiv in #446
- fix(sdk): bug with json ld credential match. by @vkubiv in #448
- fix(app): bug store cred with by @vkubiv in #449
- fix(app): android crash on JSON-LD cred verification. by @vkubiv in #450
- fix(app): ios crash on JSON-LD cred verification by @talwinder50 in #451
- chore(sdk): update go version to 1.20, and afgo dependency to latest by @Moopli in #455
- refactor(sdk)!: OpenID4CI API in preparation for client reg schemes by @DRK3 in #454
- fix(sdk,app)!: performance of json-ld VCs by @vkubiv in https://github.com/tru...
1.0.0-swift-pm
New walletsdk version 1.0.0-swift-pm
1.0.0
1.0.0
The TrustBloc Wallet SDK v1 provides an Android and an iOS SDK for interacting with W3C Verifiable Credential (VC) signed with W3C Decentralized Identifier (DID). In addition, the SDK supports the OIDF OpenID4CI and OpenID4VP protocols. The usage guide provides a detailed list of APIs.
The repositories also contains code for an Android and an iOS reference app built on the SDK to validate/demonstrate the features.
Specifications
- W3C Verifiable Credentials Data Model v1.1
- W3C Decentralized Identifiers (DIDs) v1.0
- OIDF OpenID for Verifiable Credential Issuance - Pre-Authorized Code Flow
- OIDF OpenID for Verifiable Presentations
- DIF Presentation Exchange 2.0.0
- W3C Status List v2021
- DIF Well Known DID Configuration
Breaking Changes
No breaking changes from 1.0.0-rc4 release.
What's Changed (from 1.0.0-rc4)
Full Changelog: 1.0.0-rc4...1.0.0
What's Changed (from 0.3.1)
- fix(app): Support jwk didMethod type in create did flow by @talwinder50 in #276
- docs(app): Add the comments to the plugin functions of ios and kotlin files by @talwinder50 in #277
- docs(sdk): remove duplicate section for DID Creation with Key Reader by @rolsonquadras in #278
- refactor(app): android flutter plugin by @vkubiv in #280
- feat(sdk): Mobile VC types, issuance date, and expiration date methods by @DRK3 in #281
- docs(sdk): Add best practices document by @DRK3 in #282
- refactor(sdk): Remove unused interface, update method comments by @DRK3 in #283
- fix(app): Update Credential screen to display Issuer theme by @talwinder50 in #286
- feat(sdk): VC claim types method by @DRK3 in #284
- docs(sdk): Add docs for wallet errors by @DRK3 in #285
- refactor(app): flutter plugin ios by @vkubiv in #287
- refactor(sdk): disabled JSON-LD checks for VP parsing by @birtony in #288
- fix(app): Theme fix for the presentation credential by @talwinder50 in #290
- fix(app): (Android) Add P-384 key suppport for did:jwk by @rolsonquadras in #291
- fix(app): Removing unused widget credential outline by @talwinder50 in #292
- fix(app): Android demo app compiler error by @DRK3 in #293
- feat(sdk): sign presentation using a VC subject DID by @Moopli in #289
- feat(app): android integration test by @vkubiv in #294
- feat(sdk)!: Metrics logging, ResolveDisplay refactor by @DRK3 in #279
- fix(app): android integration tests by @rolsonquadras in #295
- fix(app): Fix the did in the settings page by @talwinder50 in #296
- docs(sdk): Update resolve display docs, packages by @DRK3 in #297
- docs(sdk): OpenID4VP doc update by @rolsonquadras in #298
- fix(app): Support to present multi credentials based on the input descriptors matched vc ids by @talwinder50 in #299
- fix(app): Remove createDID on login and invoke while requesting credential by @talwinder50 in #302
- ci(sdk): support to upload ios/android binding artifact by @rolsonquadras in #303
- feat(sdk): Ability to get name from VC by @DRK3 in #305
- feat(sdk): Support for resolving claim order by @DRK3 in #304
- test(app): ios integration test by @vkubiv in #307
- feat(sdk): Support for masking, raw ID, and pattern data in display by @DRK3 in #309
- chore(app): update description by @rolsonquadras in #308
- fix(sdk): display value by @rolsonquadras in #313
- fix(app): Use order field to have the data sorted by order by @talwinder50 in #314
- feat(sdk): openid4vp PresentCredential uses multi-presentation format by @Moopli in #306
- chore(app): Add documentation for building app locally by @talwinder50 in #315
- fix(sdk,app): Display value duplication in serialized form by @DRK3 in #316
- fix(sdk): continue using workaround for interop schema by @Moopli in #318
- feat(sdk): Update regex parsing by @DRK3 in #317
- feat(sdk): Support for nested claims by @DRK3 in #319
- docs(sdk): update doc date and commitID by @rolsonquadras in #321
- fix(sdk): Switch remote server calls in unit test to local mock server by @DRK3 in #322
- test(app): added health checks for docker containers by @birtony in #320
- docs(sdk): Add error codes and troubleshooting tips by @DRK3 in #324
- feat(sdk): build versioning api by @vkubiv in #323
- fix(app): Refactor flutter logic to the sdk display api by @talwinder50 in #325
- docs(sdk): VC, mobile bindings best practices, update packages list by @DRK3 in #329
- docs(app): Add structure to documentation along with minor edits by @rolsonquadras in #328
- refactor(sdk): integration test to make them more reusable. by @vkubiv in #331
- fix(app): Add masking / unmasking feature by @talwinder50 in #330
- feat(sdk): Update error handling when requesting credential from issuer by @DRK3 in #327
- fix(app): Fix the missing arrow in the credential preview by @talwinder50 in #332
- feat(sdk): Support for latest masking format by @DRK3 in #334
- fix(app): Fix ordering and loading issue by @talwinder50 in #333
- fix(app): Add support for dev mode in the app by @talwinder50 in #336
- fix(app): Update kotlin plugin with latest changes by @talwinder50 in #341
- refactor(sdk): refactor http client usage in openid4ci by @vkubiv in #337
- fix(app): Credential Logo image width and height by @talwinder50 in #345
- refactor(app): Add the error page when no credentials are used in vp flow by @talwinder50 in #338
- feat(sdk): Support for custom HTTP header injection in CI and VP flows by @DRK3 in #335
- fix(app): Fix the setting username missing error by @talwinder50 in #346
- test(sdk): issuer profile with strict checks by @vkubiv in #344
- fix(app): Add the error handling for not matching cred found scenario by @talwinder50 in #347
- feat(sdk): credential status API by @Moopli in #343
- fix(app): Rollback the empty promise return in case of no stored credentials by @talwinder50 in #352
- fix(app): Add the version and show diddocument in the dev mode by @talwinder50 in #350
- feat(sdk): default versioning info. by @vkubiv in #353
- fix(app): Show the didDoc data in the didtab by @talwinder50 in #355
- feat(sdk): Injectable...