mirror of
https://github.com/mosip/inji-wallet.git
synced 2026-01-09 21:48:04 -05:00
[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:
committed by
GitHub
parent
6c1e23a3d2
commit
8f17535a25
@@ -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"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user