diff --git a/packages/CredentialManager/src/com/android/credentialmanager/CredentialManagerRepo.kt b/packages/CredentialManager/src/com/android/credentialmanager/CredentialManagerRepo.kt index 244a11fddedec..530f1c467a760 100644 --- a/packages/CredentialManager/src/com/android/credentialmanager/CredentialManagerRepo.kt +++ b/packages/CredentialManager/src/com/android/credentialmanager/CredentialManagerRepo.kt @@ -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(), diff --git a/packages/CredentialManager/src/com/android/credentialmanager/DataConverter.kt b/packages/CredentialManager/src/com/android/credentialmanager/DataConverter.kt index c33af8fe9e354..b96f686c02fb9 100644 --- a/packages/CredentialManager/src/com/android/credentialmanager/DataConverter.kt +++ b/packages/CredentialManager/src/com/android/credentialmanager/DataConverter.kt @@ -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)!!) - } + } } }