OpenConnectManagementThread: Fix base64 stored file detection

Android's base64 decoder rejects "some" bad inputs, but not all of them.
This means that if a VPN profile had stored a literal certificate instead
of a base64-encoded certificate (as was the case in <= 0.7), it might get
decoded into junk data.  Through experimentation and reading the source
code, it was shown that inputs like "a&bc" or "ab*c" do not raise
exceptions.

So we will add a regexp to reject any base64 string with invalid
characters.  At the minimum this should cause PEM files starting with
"-----BEGIN " to be processed as literal values, not as base64.

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
Bump version to 0.81 final (819)

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
doc: Update changelog

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
AssetExtractor: Add new readStringFromFile() method

This leverages the same buffered reader code used to extract an asset
into a string.

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
TokenImportActivity: Disable [[INLINE]] so we can read imported files directly

If TokenImportActivity gets invoked from another app to import an sdtid
file, we will need to read the content from a file:///foo/bar URI.  So
let's restructure the code so that common functions can be used for
both intent handling and for processing the FileSelect result.

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
TokenImportActivity: Process sdtid files

Add a file association with *.sdtid and allow them to be imported manually
from the VPN profile editor.  These may require a password but never
require entering a devid.

As is the case with passworded CTF strings, the token will be converted
into an unpassworded CTF string and stored in the profile.  We will not
store the whole XML file.

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
TokenImportActivity: Add missing copyright header

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
TokenImportActivity: Add missing @Override

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
faq: Update sdtid instructions

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
Add yellow alert icon

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
First attempt at a SecurID Diagnostic screen

This shows the current tokencode plus some information about the token.
If multiple VPN profiles use SecurID tokens, each one can be checked
independently.

It will probably wind up in its own app someday...

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>