Skip to content

Commit

Permalink
Finish FIDO2 basic handling in PasskeyHandler
Browse files Browse the repository at this point in the history
  • Loading branch information
ThomazFB committed Jan 23, 2024
1 parent 8b67694 commit 783d171
Showing 1 changed file with 6 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,19 +21,20 @@ class PasskeyHandler {
)
{ result: ActivityResult ->
if (result.resultCode == Activity.RESULT_OK && result.data != null) {
onResult(PasskeyDataResult(isFailure = false))
onResult(parseFIDO2IntentData(result.data, userId, challengeInfo))
} else {
onResult(PasskeyDataResult(isFailure = true))
}
}
}

private fun parseFIDO2IntentData(
resultData: Intent,
resultData: Intent?,
userId: String,
challengeInfo: WebauthnChallengeInfo
): PasskeyDataResult? =
resultData.takeIf { it.hasExtra(Fido.FIDO2_KEY_CREDENTIAL_EXTRA) }
): PasskeyDataResult =
resultData
?.takeIf { it.hasExtra(Fido.FIDO2_KEY_CREDENTIAL_EXTRA) }
?.getByteArrayExtra(Fido.FIDO2_KEY_CREDENTIAL_EXTRA)
?.let { PublicKeyCredential.deserializeFromBytes(it).toJson() }
?.let { clientData ->
Expand All @@ -43,7 +44,7 @@ class PasskeyHandler {
twoStepNonce = challengeInfo.twoStepNonce,
clientData = clientData
)
}
} ?: PasskeyDataResult(isFailure = true)

data class PasskeyDataResult(
val isFailure: Boolean,
Expand Down

0 comments on commit 783d171

Please sign in to comment.