[INJIMOB-3571] | [INJIMOB-3572] refactor: Modify trusted verifiers construction (#2094)

* [INJIMOB-3571] add: modify trusted verifiers

Signed-off-by: KiruthikaJeyashankar <kiruthikavjshankar@gmail.com>

* [INJIMOB-3571] add: modify trusted verifiers in swift

Signed-off-by: KiruthikaJeyashankar <kiruthikavjshankar@gmail.com>

* [INJIMOB-3571] refactor: remove unused logs and code

Signed-off-by: KiruthikaJeyashankar <kiruthikavjshankar@gmail.com>

* [INJIMOB-3572] add: support for unsigned request in pre-registered verifiers

Signed-off-by: KiruthikaJeyashankar <kiruthikavjshankar@gmail.com>

* [INJIMOB-3572] chore: update openid4vp swift package version

Signed-off-by: KiruthikaJeyashankar <kiruthikavjshankar@gmail.com>

* [INJIMOB-3571] refactor: revert changes trustedVerifiers cachePreference

Signed-off-by: KiruthikaJeyashankar <kiruthikavjshankar@gmail.com>

* [INJIMOB-3558] refactor: update vc renderer renderVc to generateCredentualDisplayCOntent

Signed-off-by: KiruthikaJeyashankar <kiruthikavjshankar@gmail.com>

* [INJIMOB-3559] fix: bridging issue of generateCredentialContent method

Signed-off-by: KiruthikaJeyashankar <kiruthikavjshankar@gmail.com>

* [INJIMOB-3559] refactor: modify vc renderer native module

Signed-off-by: KiruthikaJeyashankar <kiruthikavjshankar@gmail.com>

* [INJIMOB-3559] refactor: modify vc renderer native module

Signed-off-by: KiruthikaJeyashankar <kiruthikavjshankar@gmail.com>

* [INJIMOB-3559] chore: update vc renderer swift package

Signed-off-by: KiruthikaJeyashankar <kiruthikavjshankar@gmail.com>

---------

Signed-off-by: KiruthikaJeyashankar <kiruthikavjshankar@gmail.com>
This commit is contained in:
KiruthikaJeyashankar
2025-10-06 14:32:41 +05:30
committed by GitHub
parent 6c1e23a3d2
commit 8f17535a25
13 changed files with 84 additions and 79 deletions

View File

@@ -79,7 +79,7 @@
"location" : "https://github.com/mosip/inji-openid4vp-ios-swift.git",
"state" : {
"branch" : "release-0.5.x",
"revision" : "e939d4acf4e9f54d902b65913b93432fcd068b46"
"revision" : "b3ce7ef9f70229d76e01af89dcf92e7d9d677254"
}
},
{
@@ -88,7 +88,7 @@
"location" : "https://github.com/mosip/inji-vc-renderer-ios-swift.git",
"state" : {
"branch" : "release-0.1.x",
"revision" : "97842f70c7bc510afb0bb415b9806b4e722808f0"
"revision" : "68b6c14aaf1e572f84307e0f932d93a66134055d"
}
},
{

View File

@@ -6,11 +6,10 @@
RCT_EXTERN_METHOD(init:(NSString *)traceabilityId)
RCT_EXTERN_METHOD(renderVC:(NSString *)credentialFormat
wellKnown:(NSString *)wellKnown
RCT_EXTERN_METHOD(generateCredentialDisplayContent: (NSString *)credentialFormat
wellKnown:(NSString * _Nullable)wellKnown
vcJsonString:(NSString *)vcJsonString
resolver:(RCTPromiseResolveBlock)resolve
rejecter:(RCTPromiseRejectBlock)reject)
@end

View File

@@ -3,55 +3,57 @@ import React
import InjiVcRenderer
@objc(InjiVcRenderer)
class RNInjiVcRenderer: NSObject, RCTBridgeModule {
private var vcRenderer: InjiVcRenderer?
@objc static func requiresMainQueueSetup() -> Bool {
return false
}
static func moduleName() -> String {
return "InjiVcRenderer"
}
private var vcRenderer: InjiVcRenderer?
@objc static func requiresMainQueueSetup() -> Bool {
return false
}
static func moduleName() -> String {
return "InjiVcRenderer"
}
@objc
func `init`(_ traceabilityId: String) {
vcRenderer = InjiVcRenderer(traceabilityId: traceabilityId)
}
@objc(renderVC:wellKnown:vcJsonString:resolver:rejecter:)
func renderVC(
credentialFormat: String,
wellKnown: String?,
vcJsonString: String,
resolve: @escaping RCTPromiseResolveBlock,
reject: @escaping RCTPromiseRejectBlock
) {
guard let renderer = self.vcRenderer else {
reject(nil, "InjiVcRenderer not initialized", nil)
return
}
do {
let format = CredentialFormat.fromValue(credentialFormat)
let result = try renderer.renderVC(
credentialFormat: format,
wellKnownJson: wellKnown,
vcJsonString: vcJsonString
)
resolve(result)
} catch {
rejectWithVcRendererError(error, reject: reject)
}
@objc(generateCredentialDisplayContent:wellKnown:vcJsonString:resolver:rejecter:)
func generateCredentialDisplayContent(
credentialFormat: String,
wellKnown: String?,
vcJsonString: String,
resolve: @escaping RCTPromiseResolveBlock,
reject: @escaping RCTPromiseRejectBlock
) {
guard let renderer = self.vcRenderer else {
reject(nil, "InjiVcRenderer not initialized", nil)
return
}
do {
guard let format = CredentialFormat.fromValue(credentialFormat) else {
throw NSError(domain: "Invalid credential format", code: 0)
}
let result = try renderer.generateCredentialDisplayContent(
credentialFormat: format,
wellKnownJson: wellKnown,
vcJsonString: vcJsonString
)
resolve(result)
} catch {
rejectWithVcRendererError(error, reject: reject)
}
}
func rejectWithVcRendererError(_ error: Error, reject: RCTPromiseRejectBlock) {
if let vcRendererError = error as? VcRendererException {
reject(vcRendererError.errorCode, vcRendererError.message, vcRendererError)
} else {
let nsError = NSError(domain: error.localizedDescription, code: 0)
reject("ERR_UNKNOWN", nsError.localizedDescription, nsError)
}
reject(vcRendererError.errorCode, vcRendererError.message, vcRendererError)
} else {
let nsError = NSError(domain: error.localizedDescription, code: 0)
reject("ERR_UNKNOWN", nsError.localizedDescription, nsError)
}
}
}

View File

@@ -197,13 +197,13 @@ func sendErrorToVerifier(_ error: String, _ errorCode: String,
throw NSError(domain: "OpenID4VP", code: -1, userInfo: [NSLocalizedDescriptionKey: "Invalid Verifier data"])
}
var clientMetadata: ClientMetadata? = nil
if let metadata = verifierDict["client_metadata"] as? [String: Any] {
let encoded = try JSONSerialization.data(withJSONObject: metadata)
clientMetadata = try ClientMetadata.deserializeAndValidate(clientMetadata: encoded)
let jwksUri: String? = verifierDict["jwks_uri"] as? String
if let allowUnsignedRequest = verifierDict["allow_unsigned_request"] as? Bool {
return Verifier(clientId: clientId, responseUris: responseUris, jwksUri: jwksUri, allowUnsignedRequest: allowUnsignedRequest)
}
return Verifier(clientId: clientId, responseUris: responseUris,clientMetadata: clientMetadata)
return Verifier(clientId: clientId, responseUris: responseUris,jwksUri: jwksUri)
}
}