Add security error status

This commit is contained in:
Sam Whited 2014-11-15 11:19:42 -05:00
parent d94b07c916
commit c09d450db8
4 changed files with 22 additions and 13 deletions

View File

@ -42,17 +42,18 @@ public class Account extends AbstractEntity {
public static final int OPTION_USECOMPRESSION = 3;
public static enum State {
DISABLED,
OFFLINE,
CONNECTING,
ONLINE,
NO_INTERNET,
DISABLED,
OFFLINE,
CONNECTING,
ONLINE,
NO_INTERNET,
UNAUTHORIZED(true),
SERVER_NOT_FOUND(true),
REGISTRATION_FAILED(true),
REGISTRATION_CONFLICT(true),
REGISTRATION_SUCCESSFUL,
REGISTRATION_NOT_SUPPORTED(true);
REGISTRATION_SUCCESSFUL,
REGISTRATION_NOT_SUPPORTED(true),
SECURITY_ERROR(true);
private boolean isError;
@ -92,6 +93,8 @@ public class Account extends AbstractEntity {
return R.string.account_status_regis_success;
case REGISTRATION_NOT_SUPPORTED:
return R.string.account_status_regis_not_sup;
case SECURITY_ERROR:
return R.string.account_status_security_error;
default:
return R.string.account_status_unknown;
}
@ -126,8 +129,8 @@ public class Account extends AbstractEntity {
}
public Account(final String uuid, final Jid jid,
final String password, final int options, final String rosterVersion, final String keys,
final String avatar) {
final String password, final int options, final String rosterVersion, final String keys,
final String avatar) {
this.uuid = uuid;
this.jid = jid;
if (jid.isBareJid()) {
@ -293,7 +296,7 @@ public class Account extends AbstractEntity {
if (this.otrFingerprint == null) {
try {
DSAPublicKey pubkey = (DSAPublicKey) this.otrEngine
.getPublicKey();
.getPublicKey();
if (pubkey == null) {
return null;
}
@ -394,12 +397,12 @@ public class Account extends AbstractEntity {
}
public int getReadableStatusId() {
return this.getStatus().getReadableId();
return this.getStatus().getReadableId();
}
public void activateGracePeriod() {
this.mEndGracePeriod = SystemClock.elapsedRealtime()
+ (Config.CARBON_GRACE_PERIOD * 1000);
+ (Config.CARBON_GRACE_PERIOD * 1000);
}
public void deactivateGracePeriod() {

View File

@ -92,6 +92,10 @@ public class AccountAdapter extends ArrayAdapter<Account> {
R.string.account_status_regis_not_sup));
statusView.setTextColor(activity.getWarningTextColor());
break;
case SECURITY_ERROR:
statusView.setText(getContext().getString
(R.string.account_status_security_error));
statusView.setTextColor(activity.getWarningTextColor());
default:
statusView.setText("");
break;

View File

@ -649,7 +649,8 @@ public class XmppConnection implements Runnable {
") than pinned priority (" + keys.getInt(Account.PINNED_MECHANISM_KEY) +
"). Possible downgrade attack?");
disconnect(true);
}
account.setStatus(Account.State.SECURITY_ERROR);
}
} catch (final JSONException e) {
Log.d(Config.LOGTAG, "Parse error while checking pinned auth mechanism");
}

View File

@ -141,6 +141,7 @@
<string name="account_status_regis_conflict">Username already in use</string>
<string name="account_status_regis_success">Registration completed</string>
<string name="account_status_regis_not_sup">Server does not support registration</string>
<string name="account_status_security_error">Security error</string>
<string name="encryption_choice_none">Plain text</string>
<string name="encryption_choice_otr">OTR</string>
<string name="encryption_choice_pgp">OpenPGP</string>