- Update Package.resolved and Package.swift with new versions for openid4vci, openid4vp
- Bug fix
- Removed
@MainActor
annotation from class definitions
- Swift 6 migration
- Updated OpenID4VCI to version 0.6.0
- Fill document display name in DocElementsViewModel
- Updated OpenID4VCI to version 0.5.0
- Updated OpenID4VP to version 0.4.0
public func loadDocument(id:status:) async throws -> WalletStorage.Document?
public func deleteDocument(id:status:) async throws
- Updated README.md with new methods and explanations
- Added documentation using Swift-DocC (deployed here)
WalletStorage.Document
implementsDocumentProtocol
protocolMdocDataModel18013.MdocDecodable
inheritsDocumentProtocol
protocol
- Support dynamic issuance in scoped mode
- Remove pending document after finalizing
resumePendingIssuance
- New wallet methods:
public func loadAllDocuments() async throws -> [WalletStorage.Document]?
public func deleteAllDocuments() async throws
public func resumePendingIssuance(pendingDoc: WalletStorage.Document, webUrl: URL?) async throws -> WalletStorage.Document
- Dynamic issuance handling: After calling issueDocumentsByOfferUrl the wallet application need to check if the issuance is pending:
if let urlString = newDocs.first?.authorizePresentationUrl {
// perform openid4vp presentation using the urlString
// on success call resumePendingIssuance using the url provided by the server
- Fixed issuing error when wallet
userAuthenticationRequired
property is true
- Wrong text on success message after issuing a document:
OfferedIssuanceModel
,issuerName
now has only the domain
-
EudiWallet
supports logging and retrieval of log contents` // If not-nil, logging to the specified log file name will be configured public var logFileName: String? { didSet { try? initializeLogging() } }
// Helper method to return a file URL from a file name. public static func getLogFileURL(_ fileName: String) throws -> URL?
// Reset a log file stored in the caches directory public func resetLogFile(_ fileName: String) throws
// Get the contents of a log file stored in the caches directory public func getLogFileContents(_ fileName: String) throws -> String `
- Set WalletStorage.Document displayName property when saving a document
- Update eudi-lib-ios-openid4vci-swift to version 0.4.3
EudiWallet
new propertypublic var serviceName: String
Use a different serviceName
than the default one if you want to store documents in a different location.
e.g. wallet.serviceName = "wallet_dev"
- Update eudi-lib-ios-openid4vci-swift to version 0.4.2
- New
EudiWallet
propertypublic var openID4VciConfig: OpenId4VCIConfig?
to pass OpenID4VCI issuer parameters - Removed
EudiWallet
propertiesvar openID4VciClientId
andvar openID4VciRedirectUri
- New
EudiWallet
propertypublic var modelFactory: (any MdocModelFactory.Type)?
if the UI app wants to pass a model factory type to create custom stronly-typed models. SeeMdocModelFactory
protocol for more details.
loadDocuments
takes an optionalstatus
parameter of typeWalletStorage.DocumentStatus
(default isissued
)deleteDocuments
takes an optionalstatus
parameter of typeWalletStorage.DocumentStatus
(default isissued
)- new variable
@Published public private(set) var deferredDocuments: [WalletStorage.Document] = []
(documents that are not yet issued)
- Request a deferred issuance based on a stored deferred document. On success, the deferred document is updated with the issued document.
The caller does not need to reload documents, storage manager
deferredDocuments
andmdocModels
properties are updated. - New function to request deferred issuance:
@discardableResult public func requestDeferredIssuance(deferredDoc: WalletStorage.Document) async throws -> WalletStorage.Document
- Removed
otherModels
,docTypes
,documentIds
properties - Updated eudi-lib-ios-openid4vci-swift to version 0.4.1
- Rename
OfferedIssueModel
toOfferedIssuanceModel
EudiWallet
: added propertypublic var accessGroup: String?
(used for sharing keychain items between apps with the same access group)
- Update eudi-lib-ios-siop-openid4vp-swift to version 0.3.2
- Update eudi-lib-ios-openid4vci-swift to version 0.3.1
- Added
public var urlSession: URLSession
variable toEudiWallet
class. This variable can be used to set a custom URLSession for network requests. Allows for custom configuration of the URLSession, such as setting a custom timeout interval or Self-Signed certificates.
- Library updates
The flow is supported by existing methods:
1 - An issue offer url is scanned. The following method is called: public func resolveOfferUrlDocTypes(uriOffer: String, format: DataFormat = .cbor, useSecureEnclave: Bool = true) async throws -> OfferedIssueModel
2 - If OfferedIssueModel.isTxCodeRequired
is true, the call to issueDocumentsByOfferUrl
must include the transaction code (parameter txCodeValue
).
- Note: for the clientId value the
EudiWallet/openID4VciClientId
is used.
- Update eudi-lib-ios-openid4vci-swift dependency to version 0.1.5
- Fixes iOS16 offer url parsing issue
EuPidModel
updated with new PID docType
- Update eudi-lib-ios-siop-openid4vp-swift to version 0.1.1
- Fix openid4vp certificate chain verification (PresentationSession's
readerCertIssuerValid
andreaderCertIssuer
properties) - Add
readerLegalName
property to PresentationSession
- Update eudi-lib-ios-siop-openid4vp-swift to version 0.1.0
- Added wallet configuration parameter
public var verifierLegalName: String?
(used for Openid4VP preregistered clients)
###Update eudi-lib-ios-siop-openid4vp-swift to version 0.1.0
##v0.4.5
@Published public var mdocModels: [any MdocDecodable] = []
Openid4vp, BLE: Support sending multiple documents with same doc-type
- DocElementsViewModel: added
public var docId: String
- PresentationSession / func sendResponse: itemsToSend dictionary is keyed by docId (and not docType)
Refactoring for issuing documents with IssuerSigned cbor data
OpenID4VCI: fix for filtering resolved identifiers Support mdoc Authentication for OpenId4Vp #46
OpenID4VCI fix
OpenID4VCI: Allow partial issuing when some documents fail to issue
OpenID4VCI: Fixed issuing with https://dev.issuer.eudiw.dev
/// Resolve OpenID4VCI offer URL document types. Resolved offer metadata are cached
public func resolveOfferUrlDocTypes(uriOffer: String, format: DataFormat = .cbor, useSecureEnclave: Bool = true) async throws -> [OfferedDocModel]
/// Issue documents by offer URI.
public func issueDocumentsByOfferUrl(offerUri: String, docTypes: [OfferedDocModel], format: DataFormat, promptMessage: String? = nil, useSecureEnclave: Bool = true, claimSet: ClaimSet? = nil) async throws -> [WalletStorage.Document]
// PresentationSession @Published public var deviceEngagement: String?
use the following code to convert to QR code image:
let qrImage = DeviceEngagement.getQrCodeImage(qrCode: d)
Updated eudi-lib-ios-siop-openid4vp-swift
to v0.0.74
Updated eudi-lib-ios-openid4vci-swift
to v0.0.7
Updated eudi-lib-ios-siop-openid4vp-swift
to v0.0.73
Updated eudi-lib-ios-openid4vci-swift
to v0.0.6
- Refactor MdocDecodable (DocType, DocumentIdentifier, createdAt),
- OpenID4VP draft 13 support
- Internal updates for security checks
- Updated presentation definition parsing
- Updated eudi-lib-ios-siop-openid4vp-swift to 0.0.72
- Fixed mDOC authentication MAC validation error for mDL document type
- Added delete documents func
- Storage manager functions are now
async throws
- extractDisplayStrings is recursive (cbor elements can be dictionaries)
- NameValue: added
var children: [NameValue]
property (tree-like structure) - MdocDecodable: added 'var displayImages: [NameImage]' property
- Add isMandatory property to DocElementsViewModel structure
PresentationSession
methods do not run on main actorPresentationSession
: add `readerCertIssuerValid`` (is verifier certificate trusted)PresentationSession
: change `readerCertIssuer`` (has verifier certificate common name)MdocDecodable
: add extension method:public func toJson() -> [String: Any]
- Update eudi-lib-ios-openid4vci-swift to version 0.4.2 and add new properties to EudiWallet (#86) via @phisakel
- Refactor to support Deferred document issuing (#74) via @phisakel
- Update documentation links in README.md (#82) via @phisakel
- Docs: update documentation in README.md (#81) via @phisakel
- VP version 0.3.2, docs with Swift-DocC Plugin (#80) via @phisakel
- Update PGP Key link (#79) via @mgiakkou
- Update eudi-lib-ios-openid4vci-swift to version 0.3.1 (#78) via @phisakel
- Allow Self-Signed SSL for OpenId4VCI and OpenId4VP (#76) via @phisakel
- [fix] pre-auth fixes in libs (#75) via @dtsiflit
- Support Pre-Authorized Code Flow - Wallet-kit (iOS) (#72) via @phisakel
- Fix swift.yml (#71) via @phisakel
- Credential offer URL parsing issue for iOS16 (#69) via @phisakel
- Update eudi-lib-ios-iso18013-data-model and eudi-lib-ios-iso18013-data-transfer dependencies (#68) via @phisakel
- Update eudi-lib-ios-siop-openid4vp-swift to version 0.1.1, fix verifier display name, valid status (#67) via @phisakel
- Update eudi-lib-ios-siop-openid4vp-swift to version 0.1.0 (#64) via @phisakel
- Update eudi-lib-ios-siop-openid4vp-swift to version 0.1.0 (#64) via @phisakel
- Update openid4vci library to version 0.1.2 (#62) via @phisakel
- Update eudi-lib-ios-openid4vci-swift to version 0.0.9 (#61) via @phisakel
- Issuing - Support for credential offer (#45) via @phisakel
- OpenID4VCI draft13 support (#31) via @phisakel
- Simplify Storage Manager API (#59) via @phisakel
- Openid4vp and BLE should support sending response with multiple documents of the same doc-type (iOS) (#56) via @phisakel
- Refactor to support IssuerSigned CBOR structure [iOS] (#53) via @phisakel
- Changelog.md update (#51) via @phisakel
- Vci offer fix for filtering resolved identifiers (#50) via @phisakel
- Support mdoc Authentication for OpenId4Vp (#46) via @phisakel
- OpenID4VCI: Allow partial issuing when some documents fail to issue (#48) via @phisakel
- Issuing - Support for credential offer (#45) via @phisakel
- Support OpenID4VCI credential offer (resolution of credential offer, issuing of specific doc types) (#44) via @phisakel
- Chore: Update dependencies for udi-lib-ios-iso18013-data-transfer to … (#43) via @phisakel
- Return the QR code to the device engagement in string representation (#42) via @akarabashov
- Centralization of sec workflows (#21) via @christosservosNCIN
- [fix] sdjwt case fix (#36) via @dtsiflit
- Update openid4vci library to v0.0.7 (#39) via @phisakel
- Update OpenID4VP to v0.0.74 (#37) via @phisakel
- Update dependencies to latest versions (#35) via @phisakel
- Update dependencies and refactor StorageManager to support multiple documents with same docType (#34) via @phisakel
- Update changelog.md (#32) via @phisakel
- Update dependencies and changelog (#30) via @phisakel
- Updates due to security helpers changes (#29) via @phisakel
- Updated Presentation Definition Parsing (#28) via @phisakel
- Update eudi-lib-ios-siop-openid4vp-swift to version 0.0.72 (#27) via @phisakel
- Check if iaca variable is nil, refactor to use multiple device private keys (#23) via @phisakel
- Update README.md (#25) via @vkanellopoulos
- Update SECURITY.md (#22) via @vkanellopoulos
- Use subjectDistinguishedName for openID4vp verifier, update packages (#20) via @phisakel
- Fix for verifier name (#19) via @phisakel
- Reader auth for openid4vp, readme overview (#18) via @phisakel
- SendResponse takes an onSuccess callback function (#17) via @phisakel
- Add BlueECC dependency and update eudi-lib-ios-siop-openid4vp-swift version (#16) via @phisakel
- OpenID4VciRedirectUri public property in wallet kit (#15) via @phisakel
- Changes for Secure Enclave use (#14) via @phisakel
- Fixes after updating OpenID4VCI library (#13) via @phisakel
- Issue documents using OpenID4VCI protocol (#12) via @phisakel
- Bug fixes for storage manager (#11) via @phisakel
- Method to begin presentation using any custom PresentationService (#10) via @phisakel
- Update README and SECURITY.md files (#9) via @phisakel
- Added delete documents func to wallet kit (#8) via @phisakel
- Make storage manager methods async throws (#7) via @phisakel
- Update Package.resolved and add isMandatory property to DocElementsViewModel structure (#6) via @phisakel
- Develop: limit main actor usage, reader cert variables (#5) via @phisakel
- Update License and Copyright (#4) via @phisakel
- Develop (#3) via @phisakel