Merge "Update parsing from requestInfo json for create passkey"

This commit is contained in:
Qinmei Du
2022-11-29 21:12:14 +00:00
committed by Android (Google) Code Review
2 changed files with 60 additions and 17 deletions

View File

@@ -425,7 +425,40 @@ class CredentialManagerRepo(
}
private fun testCreatePasskeyRequestInfo(): RequestInfo {
val request = CreatePublicKeyCredentialRequest("json")
val request = CreatePublicKeyCredentialRequest("{\"extensions\": {\n" +
" \"webauthn.loc\": true\n" +
" },\n" +
" \"attestation\": \"direct\",\n" +
" \"challenge\": \"-rSQHXSQUdaK1N-La5bE-JPt6EVAW4SxX1K_tXhZ_Gk\",\n" +
" \"user\": {\n" +
" \"displayName\": \"testName\",\n" +
" \"name\": \"credManTesting@gmail.com\",\n" +
" \"id\": \"eD4o2KoXLpgegAtnM5cDhhUPvvk2\"\n" +
" },\n" +
" \"excludeCredentials\": [],\n" +
" \"rp\": {\n" +
" \"name\": \"Address Book\",\n" +
" \"id\": \"addressbook-c7876.uc.r.appspot.com\"\n" +
" },\n" +
" \"timeout\": 60000,\n" +
" \"pubKeyCredParams\": [\n" +
" {\n" +
" \"type\": \"public-key\",\n" +
" \"alg\": -7\n" +
" },\n" +
" {\n" +
" \"type\": \"public-key\",\n" +
" \"alg\": -257\n" +
" },\n" +
" {\n" +
" \"type\": \"public-key\",\n" +
" \"alg\": -37\n" +
" }\n" +
" ],\n" +
" \"authenticatorSelection\": {\n" +
" \"residentKey\": \"required\",\n" +
" \"requireResidentKey\": true\n" +
" }}")
val data = request.data
return RequestInfo.newCreateRequestInfo(
Binder(),

View File

@@ -39,6 +39,7 @@ import com.android.credentialmanager.jetpack.developer.CreatePublicKeyCredential
import com.android.credentialmanager.jetpack.provider.ActionUi
import com.android.credentialmanager.jetpack.provider.CredentialEntryUi
import com.android.credentialmanager.jetpack.provider.SaveEntryUi
import org.json.JSONObject
/** Utility functions for converting CredentialManager data structures to or from UI formats. */
class GetFlowUtils {
@@ -235,33 +236,42 @@ class CreateFlowUtils {
it
)
}
// TODO: covert from real requestInfo
when (createCredentialRequestJetpack) {
is CreatePasswordRequest -> {
return RequestDisplayInfo(
createCredentialRequestJetpack.id,
createCredentialRequestJetpack.password,
createCredentialRequestJetpack.type,
"tribank",
context.getDrawable(R.drawable.ic_password)!!
)
}
is CreatePublicKeyCredentialRequest -> {
is CreatePasswordRequest -> {
return RequestDisplayInfo(
"beckett-bakert@gmail.com",
"Elisa Beckett",
createCredentialRequestJetpack.id,
createCredentialRequestJetpack.password,
createCredentialRequestJetpack.type,
"tribank",
requestInfo.appPackageName,
context.getDrawable(R.drawable.ic_password)!!
)
}
is CreatePublicKeyCredentialRequest -> {
val requestJson = createCredentialRequestJetpack.requestJson
val json = JSONObject(requestJson)
var name = ""
var displayName = ""
if (json.has("user")) {
val user: JSONObject = json.getJSONObject("user")
name = user.getString("name")
displayName = user.getString("displayName")
}
return RequestDisplayInfo(
name,
displayName,
createCredentialRequestJetpack.type,
requestInfo.appPackageName,
context.getDrawable(R.drawable.ic_passkey)!!)
}
// TODO: correctly parsing for other sign-ins
else -> {
return RequestDisplayInfo(
"beckett-bakert@gmail.com",
"Elisa Beckett",
"other-sign-ins",
"tribank",
requestInfo.appPackageName,
context.getDrawable(R.drawable.ic_other_sign_in)!!)
}
}
}
}