I am authenticating using spongeycastle PKCS10CertificationRequest CSR to a RESTful Certificate Authority. I'm considering using Android Authenticator.
According to: https://stuff.mit.edu/afs/sipb/project/android/docs/training/id-auth/custom_auth.html#Security
It's important to understand that AccountManager is not an encryption service or a keychain. It stores account credentials just as you pass them, in plain text. On most devices, this isn't a particular concern, because it stores them in a database that is only accessible to root. But on a rooted device, the credentials would be readable by anyone with adb access to the device.
With this in mind, you shouldn't pass the user's actual password to AccountManager.addAccountExplicitly(). Instead, you should STORE A CRYPTOGRAPHICALLY SECURE TOKEN that would be of limited use to an attacker.
My questions: I'm not sure what is meant by STORE A CRYPTOGRAPHICALLY SECURE TOKEN in this context. What does that token look like (its type?) in Android Java? And where to store it? in the KeyChain?? Is that token used in any other context other than the pw in addAccountExplicitly()?