in Fido/app/src/main/java/com/fido/example/fido2apiexample/Fido2DemoActivity.java [602:659]
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (RC_SIGN_IN == requestCode) {
GoogleSignInResult siginInResult = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
handleSignInResult(siginInResult);
return;
}
switch (resultCode) {
case RESULT_OK:
if (data.hasExtra(Fido.FIDO2_KEY_ERROR_EXTRA)) {
Log.d(TAG, "Received error response from Google Play Services FIDO2 API");
AuthenticatorErrorResponse response =
AuthenticatorErrorResponse.deserializeFromBytes(
data.getByteArrayExtra(Fido.FIDO2_KEY_ERROR_EXTRA));
Toast.makeText(
Fido2DemoActivity.this, "Operation failed\n" + response, Toast.LENGTH_SHORT)
.show();
} else if (requestCode == REQUEST_CODE_REGISTER) {
Log.d(TAG, "Received register response from Google Play Services FIDO2 API");
AuthenticatorAttestationResponse response =
AuthenticatorAttestationResponse.deserializeFromBytes(
data.getByteArrayExtra(Fido.FIDO2_KEY_RESPONSE_EXTRA));
Toast.makeText(
Fido2DemoActivity.this,
"Registration key handle:\n"
+ BaseEncoding.base64().encode(response.getKeyHandle()),
Toast.LENGTH_SHORT)
.show();
updateRegisterResponseToServer(response);
} else if (requestCode == REQUEST_CODE_SIGN) {
Log.d(TAG, "Received sign response from Google Play Services FIDO2 API");
AuthenticatorAssertionResponse response =
AuthenticatorAssertionResponse.deserializeFromBytes(
data.getByteArrayExtra(Fido.FIDO2_KEY_RESPONSE_EXTRA));
Toast.makeText(
Fido2DemoActivity.this,
"Sign key handle:\n" + BaseEncoding.base64().encode(response.getKeyHandle()),
Toast.LENGTH_SHORT)
.show();
updateSignResponseToServer(response);
}
break;
case RESULT_CANCELED:
Toast.makeText(Fido2DemoActivity.this, "Operation is cancelled", Toast.LENGTH_SHORT).show();
break;
default:
Toast.makeText(
Fido2DemoActivity.this,
"Operation failed, with resultCode " + resultCode,
Toast.LENGTH_SHORT)
.show();
break;
}
}