diff --git a/Sources/Entities/AuthorisationRequest/AuthorizationRequest.swift b/Sources/Entities/AuthorisationRequest/AuthorizationRequest.swift index fe68e56..db4cce1 100644 --- a/Sources/Entities/AuthorisationRequest/AuthorizationRequest.swift +++ b/Sources/Entities/AuthorisationRequest/AuthorizationRequest.swift @@ -42,7 +42,6 @@ public extension AuthorizationRequest { throw ValidatedAuthorizationError.conflictingData } - let usesSelfSignedDelegation = walletConfiguration?.usesSelfSignedDelegation ?? false if let request = authorizationRequestData.request { let validatedAuthorizationRequestData = try await ValidatedSiopOpenId4VPRequest( request: request, @@ -50,8 +49,8 @@ public extension AuthorizationRequest { ) let resolvedSiopOpenId4VPRequestData = try await ResolvedRequestData( - clientMetaDataResolver: ClientMetaDataResolver(usesSelfSignedDelegation: usesSelfSignedDelegation), - presentationDefinitionResolver: PresentationDefinitionResolver(usesSelfSignedDelegation: usesSelfSignedDelegation), + clientMetaDataResolver: ClientMetaDataResolver(), + presentationDefinitionResolver: PresentationDefinitionResolver(), validatedAuthorizationRequest: validatedAuthorizationRequestData ) self = .jwt(request: resolvedSiopOpenId4VPRequestData) @@ -63,8 +62,8 @@ public extension AuthorizationRequest { ) let resolvedSiopOpenId4VPRequestData = try await ResolvedRequestData( - clientMetaDataResolver: ClientMetaDataResolver(usesSelfSignedDelegation: usesSelfSignedDelegation), - presentationDefinitionResolver: PresentationDefinitionResolver(usesSelfSignedDelegation: usesSelfSignedDelegation), + clientMetaDataResolver: ClientMetaDataResolver(), + presentationDefinitionResolver: PresentationDefinitionResolver(), validatedAuthorizationRequest: validatedAuthorizationRequestData ) self = .jwt(request: resolvedSiopOpenId4VPRequestData) @@ -75,8 +74,8 @@ public extension AuthorizationRequest { ) let resolvedSiopOpenId4VPRequestData = try await ResolvedRequestData( - clientMetaDataResolver: ClientMetaDataResolver(usesSelfSignedDelegation: usesSelfSignedDelegation), - presentationDefinitionResolver: PresentationDefinitionResolver(usesSelfSignedDelegation: usesSelfSignedDelegation), + clientMetaDataResolver: ClientMetaDataResolver(), + presentationDefinitionResolver: PresentationDefinitionResolver(), validatedAuthorizationRequest: validatedAuthorizationRequestData ) diff --git a/Sources/Entities/Validated/ValidatedSiopOpenId4VPRequest.swift b/Sources/Entities/Validated/ValidatedSiopOpenId4VPRequest.swift index 0c0ef4b..d833ba0 100644 --- a/Sources/Entities/Validated/ValidatedSiopOpenId4VPRequest.swift +++ b/Sources/Entities/Validated/ValidatedSiopOpenId4VPRequest.swift @@ -39,9 +39,7 @@ public extension ValidatedSiopOpenId4VPRequest { throw ValidatedAuthorizationError.invalidRequestUri(requestUri) } - let usesSelfSignedDelegation = walletConfiguration?.usesSelfSignedDelegation ?? false let jwt = try await ValidatedSiopOpenId4VPRequest.fetchJwtString( - usesSelfSignedDelegation: usesSelfSignedDelegation, requestUrl: requestUrl ) @@ -239,11 +237,10 @@ public extension ValidatedSiopOpenId4VPRequest { } fileprivate static func fetchJwtString( - usesSelfSignedDelegation: Bool = false, requestUrl: URL ) async throws -> String { struct ResultType: Codable {} - let fetcher = Fetcher(usesSelfSignedDelegation: usesSelfSignedDelegation) + let fetcher = Fetcher() let jwtResult = try await fetcher.fetchString(url: requestUrl) switch jwtResult { diff --git a/Sources/Main/Resolvers/ClientMetaDataResolver.swift b/Sources/Main/Resolvers/ClientMetaDataResolver.swift index 904cd28..79a3e07 100644 --- a/Sources/Main/Resolvers/ClientMetaDataResolver.swift +++ b/Sources/Main/Resolvers/ClientMetaDataResolver.swift @@ -39,13 +39,10 @@ public protocol ClientMetaDataResolverType { public actor ClientMetaDataResolver: ClientMetaDataResolverType { - public var usesSelfSignedDelegation: Bool - /** Initializes an instance. */ - public init(usesSelfSignedDelegation: Bool = false) { - self.usesSelfSignedDelegation = usesSelfSignedDelegation + public init() { } /// Resolves client metadata asynchronously. @@ -58,15 +55,12 @@ public actor ClientMetaDataResolver: ClientMetaDataResolverType { fetcher: Fetcher = Fetcher(), source: ClientMetaDataSource? ) async -> Result { - var resolverFetcher = fetcher - resolverFetcher.usesSelfSignedDelegation = self.usesSelfSignedDelegation - guard let source = source else { return .success(nil) } switch source { case .passByValue(metaData: let metaData): return .success(metaData) case .fetchByReference(url: let url): - let result = await resolverFetcher.fetch(url: url) + let result = await fetcher.fetch(url: url) let metaData = try? result.get() if let metaData = metaData { return .success(metaData) diff --git a/Sources/Main/Resolvers/PresentationDefinitionResolver.swift b/Sources/Main/Resolvers/PresentationDefinitionResolver.swift index 5fccc52..411c34c 100644 --- a/Sources/Main/Resolvers/PresentationDefinitionResolver.swift +++ b/Sources/Main/Resolvers/PresentationDefinitionResolver.swift @@ -42,13 +42,10 @@ public protocol PresentationDefinitionResolverType { public actor PresentationDefinitionResolver: PresentationDefinitionResolverType { - public var usesSelfSignedDelegation: Bool - /** Initializes an instance. */ - public init(usesSelfSignedDelegation: Bool = false) { - self.usesSelfSignedDelegation = usesSelfSignedDelegation + public init() { } /// Resolves presentation definitions asynchronously. @@ -63,14 +60,11 @@ public actor PresentationDefinitionResolver: PresentationDefinitionResolverType predefinedDefinitions: [String: PresentationDefinition] = [:], source: PresentationDefinitionSource ) async -> Result { - var resolverFetcher = fetcher - resolverFetcher.usesSelfSignedDelegation = self.usesSelfSignedDelegation - switch source { case .passByValue(presentationDefinition: let presentationDefinition): return .success(presentationDefinition) case .fetchByReference(url: let url): - let result = await resolverFetcher.fetch(url: url) + let result = await fetcher.fetch(url: url) let presentationDefinition = try? result.get() if let presentationDefinition = presentationDefinition { return .success(presentationDefinition) diff --git a/Sources/Utilities/RemoteDataAccess/Fetcher.swift b/Sources/Utilities/RemoteDataAccess/Fetcher.swift index f67814e..ad2b091 100644 --- a/Sources/Utilities/RemoteDataAccess/Fetcher.swift +++ b/Sources/Utilities/RemoteDataAccess/Fetcher.swift @@ -44,7 +44,6 @@ public enum FetchError: LocalizedError { } public protocol Fetching { - var usesSelfSignedDelegation: Bool { get set } associatedtype Element: Codable /** @@ -61,13 +60,11 @@ public protocol Fetching { public struct Fetcher: Fetching { @Injected var reporter: Reporting - public var usesSelfSignedDelegation: Bool /** Initializes a Fetcher instance. */ - public init(usesSelfSignedDelegation: Bool = false) { - self.usesSelfSignedDelegation = usesSelfSignedDelegation + public init() { } /** @@ -80,16 +77,7 @@ public struct Fetcher: Fetching { */ public func fetch(session: URLSession = URLSession.shared, url: URL) async -> Result { do { - let fetchSession: URLSession = { - if self.usesSelfSignedDelegation { - let delegate = SelfSignedSessionDelegate() - let configuration = URLSessionConfiguration.default - return URLSession(configuration: configuration, delegate: delegate, delegateQueue: nil) - } else { - return session - } - }() - let (data, response) = try await fetchSession.data(from: url) + let (data, response) = try await session.data(from: url) let statusCode = (response as? HTTPURLResponse)?.statusCode ?? 0 if !statusCode.isWithinRange(200...299) { throw FetchError.invalidStatusCode(url, statusCode) @@ -119,16 +107,7 @@ public struct Fetcher: Fetching { url: URL ) async throws -> Result { do { - let fetchSession: URLSession = { - if self.usesSelfSignedDelegation { - let delegate = SelfSignedSessionDelegate() - let configuration = URLSessionConfiguration.default - return URLSession(configuration: configuration, delegate: delegate, delegateQueue: nil) - } else { - return session - } - }() - let (data, response) = try await fetchSession.data(from: url) + let (data, response) = try await session.data(from: url) let statusCode = (response as? HTTPURLResponse)?.statusCode ?? 0 if !statusCode.isWithinRange(200...299) { throw FetchError.invalidStatusCode(url, statusCode) diff --git a/Sources/Utilities/RemoteDataAccess/Poster.swift b/Sources/Utilities/RemoteDataAccess/Poster.swift index 77dd99f..73f29cc 100644 --- a/Sources/Utilities/RemoteDataAccess/Poster.swift +++ b/Sources/Utilities/RemoteDataAccess/Poster.swift @@ -36,8 +36,6 @@ public enum PostError: Error { public protocol Posting { - var usesSelfSignedDelegation: Bool { get set } - /** Performs a POST request with the provided URLRequest. @@ -61,13 +59,10 @@ public protocol Posting { public struct Poster: Posting { - public var usesSelfSignedDelegation: Bool - /** Initializes a Poster instance. */ - public init(usesSelfSignedDelegation: Bool = false) { - self.usesSelfSignedDelegation = usesSelfSignedDelegation + public init() { } /** @@ -80,16 +75,7 @@ public struct Poster: Posting { */ public func post(session: URLSession, request: URLRequest) async -> Result { do { - let postSession: URLSession = { - if self.usesSelfSignedDelegation { - let delegate = SelfSignedSessionDelegate() - let configuration = URLSessionConfiguration.default - return URLSession(configuration: configuration, delegate: delegate, delegateQueue: nil) - } else { - return session - } - }() - let (data, _) = try await postSession.data(for: request) + let (data, _) = try await session.data(for: request) let object = try JSONDecoder().decode(Response.self, from: data) return .success(object) @@ -115,18 +101,8 @@ public struct Poster: Posting { public func check(key: String, request: URLRequest) async -> Result<(String, Bool) , PostError> { do { - let session: URLSession = { - if self.usesSelfSignedDelegation { - let delegate = SelfSignedSessionDelegate() - let configuration = URLSessionConfiguration.default - return URLSession(configuration: configuration, delegate: delegate, delegateQueue: nil) - } else { - return URLSession.shared - } - }() - - let (data, response) = try await session.data(for: request) - + let (data, response) = try await URLSession.shared.data(for: request) + let string = String(data: data, encoding: .utf8) let dictionary = string?.toDictionary() ?? [:] let value = dictionary[key] as? String ?? "" diff --git a/Sources/WalletEntities/WalletOpenId4VPConfig.swift b/Sources/WalletEntities/WalletOpenId4VPConfig.swift index 722abbf..59a7b16 100644 --- a/Sources/WalletEntities/WalletOpenId4VPConfig.swift +++ b/Sources/WalletEntities/WalletOpenId4VPConfig.swift @@ -26,7 +26,6 @@ public struct WalletOpenId4VPConfiguration { public let supportedClientIdSchemes: [SupportedClientIdScheme] public let vpFormatsSupported: [ClaimFormat] public let knownPresentationDefinitionsPerScope: [String: PresentationDefinition] - public let usesSelfSignedDelegation: Bool public init( subjectSyntaxTypesSupported: [SubjectSyntaxType], @@ -38,8 +37,7 @@ public struct WalletOpenId4VPConfiguration { signingKeySet: WebKeySet, supportedClientIdSchemes: [SupportedClientIdScheme], vpFormatsSupported: [ClaimFormat], - knownPresentationDefinitionsPerScope: [String: PresentationDefinition] = [:], - usesSelfSignedDelegation: Bool = false + knownPresentationDefinitionsPerScope: [String: PresentationDefinition] = [:] ) { self.subjectSyntaxTypesSupported = subjectSyntaxTypesSupported self.preferredSubjectSyntaxType = preferredSubjectSyntaxType @@ -51,7 +49,6 @@ public struct WalletOpenId4VPConfiguration { self.supportedClientIdSchemes = supportedClientIdSchemes self.vpFormatsSupported = vpFormatsSupported self.knownPresentationDefinitionsPerScope = knownPresentationDefinitionsPerScope - self.usesSelfSignedDelegation = usesSelfSignedDelegation } internal init() throws { @@ -65,6 +62,5 @@ public struct WalletOpenId4VPConfiguration { supportedClientIdSchemes = [] vpFormatsSupported = [] knownPresentationDefinitionsPerScope = [:] - usesSelfSignedDelegation = false } }