@@ -12,10 +12,10 @@ import com.android.identity.android.mdoc.util.CredmanUtil
12
12
import com.android.identity.android.mdoc.util.CredmanUtil.Companion.generateClientIdHash
13
13
import com.android.identity.android.mdoc.util.CredmanUtil.Companion.generatePublicKeyHash
14
14
import com.android.identity.android.securearea.AndroidKeystoreKeyUnlockData
15
- import com.android.identity.document.Credential
16
15
import com.android.identity.document.DocumentRequest
17
16
import com.android.identity.document.NameSpacedData
18
17
import com.android.identity.crypto.Algorithm
18
+ import com.android.identity.mdoc.credential.MdocCredential
19
19
import com.android.identity.mdoc.mso.StaticAuthDataParser
20
20
import com.android.identity.mdoc.response.DeviceResponseGenerator
21
21
import com.android.identity.mdoc.response.DocumentGenerator
@@ -30,32 +30,30 @@ import com.android.identity.wallet.util.log
30
30
import com.google.android.gms.identitycredentials.GetCredentialResponse
31
31
import com.google.android.gms.identitycredentials.IntentHelper
32
32
import com.google.android.gms.identitycredentials.IntentHelper.EXTRA_CREDENTIAL_ID
33
- import com.google.android.gms.identitycredentials.IntentHelper.extractCallingAppInfo
34
33
import com.google.android.gms.identitycredentials.IntentHelper.extractGetCredentialRequest
35
34
import com.google.android.gms.identitycredentials.IntentHelper.setGetCredentialException
36
35
import com.google.android.gms.identitycredentials.IntentHelper.setGetCredentialResponse
37
36
import org.json.JSONObject
38
- import java.security.PublicKey
39
37
import java.util.StringTokenizer
40
38
41
39
class GetCredentialActivity : FragmentActivity () {
42
40
43
41
fun addDeviceNamespaces (documentGenerator : DocumentGenerator ,
44
- authKey : Credential ,
42
+ credential : MdocCredential ,
45
43
unlockData : KeyUnlockData ? ) {
46
44
documentGenerator.setDeviceNamespacesSignature(
47
45
NameSpacedData .Builder ().build(),
48
- authKey .secureArea,
49
- authKey .alias,
46
+ credential .secureArea,
47
+ credential .alias,
50
48
unlockData,
51
49
Algorithm .ES256 )
52
50
}
53
51
54
- fun doBiometricAuth (authKey : Credential ,
52
+ fun doBiometricAuth (credential : MdocCredential ,
55
53
forceLskf : Boolean ,
56
54
onBiometricAuthCompleted : (unlockData: KeyUnlockData ? ) -> Unit ) {
57
55
var title = " To share your credential we need to check that it's you."
58
- var unlockData = AndroidKeystoreKeyUnlockData (authKey .alias)
56
+ var unlockData = AndroidKeystoreKeyUnlockData (credential .alias)
59
57
var cryptoObject = unlockData.getCryptoObjectForSigning(Algorithm .ES256 )
60
58
61
59
val promptInfoBuilder = BiometricPrompt .PromptInfo .Builder ()
@@ -89,7 +87,7 @@ class GetCredentialActivity : FragmentActivity() {
89
87
Logger .d(" TAG" , " onAuthenticationError $errorCode $errString " )
90
88
// TODO: "Use LSKF"... without this delay, the prompt won't work correctly
91
89
Handler (Looper .getMainLooper()).postDelayed({
92
- doBiometricAuth(authKey , true , onBiometricAuthCompleted)
90
+ doBiometricAuth(credential , true , onBiometricAuthCompleted)
93
91
}, 100 )
94
92
}
95
93
}
@@ -130,7 +128,7 @@ class GetCredentialActivity : FragmentActivity() {
130
128
val credential = document.findCredential(
131
129
ProvisioningUtil .CREDENTIAL_DOMAIN ,
132
130
Timestamp .now()
133
- ) ? : throw IllegalStateException (" No credential" )
131
+ ) as MdocCredential ? ? : throw IllegalStateException (" No credential" )
134
132
val staticAuthData = StaticAuthDataParser (credential.issuerProvidedData).parse()
135
133
val mergedIssuerNamespaces = MdocUtil .mergeIssuerNamesSpaces(
136
134
documentRequest, nameSpacedData, staticAuthData
0 commit comments