@@ -90,7 +90,15 @@ internal final class UID2Client: Sendable {
9090 appName: String
9191 ) async throws -> RefreshAPIPackage {
9292 // Parse server key and generate our keys
93- let ( symmetricKey, publicKey) = try cryptoUtil. parseKey ( serverPublicKey)
93+ let ( symmetricKey, publicKey) : ( SymmetricKey , P256 . KeyAgreement . PublicKey )
94+ do {
95+ ( symmetricKey, publicKey) = try cryptoUtil. parseKey ( serverPublicKey)
96+ } catch let error as TokenGenerationError {
97+ if case . configuration( let message) = error {
98+ os_log ( " Configuration error: %@ " , log: log, type: . error, message ?? " <none> " )
99+ }
100+ throw error
101+ }
94102 let payload = ClientGeneratePayload ( identity)
95103 let authenticatedDataPayload = AuthenticatedData ( appName: appName)
96104
@@ -116,18 +124,23 @@ internal final class UID2Client: Sendable {
116124 let ( data, response) = try await execute ( request)
117125 let decoder = JSONDecoder . apiDecoder ( )
118126 guard response. statusCode == 200 else {
127+ let statusCode = response. statusCode
128+ let responseText = String ( data: data, encoding: . utf8) ?? " <none> "
129+ os_log ( " Request failure (%d) %@ " , log: log, type: . error, statusCode, responseText)
119130 throw TokenGenerationError . requestFailure (
120- httpStatusCode: response . statusCode,
121- response: String ( data : data , encoding : . utf8 )
131+ httpStatusCode: statusCode,
132+ response: responseText
122133 )
123134 }
124135 guard let decryptedData = DataEnvelope . decrypt ( data, key: symmetricKey) else {
136+ os_log ( " Decryption failure " , log: log, type: . error)
125137 throw TokenGenerationError . decryptionFailure
126138 }
127139
128140 guard
129141 let tokenResponse = try ? decoder. decode ( RefreshTokenResponse . self, from: decryptedData) ,
130142 let refreshAPIPackage = tokenResponse. toRefreshAPIPackage ( ) else {
143+ os_log ( " Invalid response " , log: log, type: . error)
131144 throw TokenGenerationError . invalidResponse
132145 }
133146
0 commit comments