Add security error status
This commit is contained in:
parent
d94b07c916
commit
c09d450db8
|
@ -42,17 +42,18 @@ public class Account extends AbstractEntity {
|
||||||
public static final int OPTION_USECOMPRESSION = 3;
|
public static final int OPTION_USECOMPRESSION = 3;
|
||||||
|
|
||||||
public static enum State {
|
public static enum State {
|
||||||
DISABLED,
|
DISABLED,
|
||||||
OFFLINE,
|
OFFLINE,
|
||||||
CONNECTING,
|
CONNECTING,
|
||||||
ONLINE,
|
ONLINE,
|
||||||
NO_INTERNET,
|
NO_INTERNET,
|
||||||
UNAUTHORIZED(true),
|
UNAUTHORIZED(true),
|
||||||
SERVER_NOT_FOUND(true),
|
SERVER_NOT_FOUND(true),
|
||||||
REGISTRATION_FAILED(true),
|
REGISTRATION_FAILED(true),
|
||||||
REGISTRATION_CONFLICT(true),
|
REGISTRATION_CONFLICT(true),
|
||||||
REGISTRATION_SUCCESSFUL,
|
REGISTRATION_SUCCESSFUL,
|
||||||
REGISTRATION_NOT_SUPPORTED(true);
|
REGISTRATION_NOT_SUPPORTED(true),
|
||||||
|
SECURITY_ERROR(true);
|
||||||
|
|
||||||
private boolean isError;
|
private boolean isError;
|
||||||
|
|
||||||
|
@ -92,6 +93,8 @@ public class Account extends AbstractEntity {
|
||||||
return R.string.account_status_regis_success;
|
return R.string.account_status_regis_success;
|
||||||
case REGISTRATION_NOT_SUPPORTED:
|
case REGISTRATION_NOT_SUPPORTED:
|
||||||
return R.string.account_status_regis_not_sup;
|
return R.string.account_status_regis_not_sup;
|
||||||
|
case SECURITY_ERROR:
|
||||||
|
return R.string.account_status_security_error;
|
||||||
default:
|
default:
|
||||||
return R.string.account_status_unknown;
|
return R.string.account_status_unknown;
|
||||||
}
|
}
|
||||||
|
@ -126,8 +129,8 @@ public class Account extends AbstractEntity {
|
||||||
}
|
}
|
||||||
|
|
||||||
public Account(final String uuid, final Jid jid,
|
public Account(final String uuid, final Jid jid,
|
||||||
final String password, final int options, final String rosterVersion, final String keys,
|
final String password, final int options, final String rosterVersion, final String keys,
|
||||||
final String avatar) {
|
final String avatar) {
|
||||||
this.uuid = uuid;
|
this.uuid = uuid;
|
||||||
this.jid = jid;
|
this.jid = jid;
|
||||||
if (jid.isBareJid()) {
|
if (jid.isBareJid()) {
|
||||||
|
@ -293,7 +296,7 @@ public class Account extends AbstractEntity {
|
||||||
if (this.otrFingerprint == null) {
|
if (this.otrFingerprint == null) {
|
||||||
try {
|
try {
|
||||||
DSAPublicKey pubkey = (DSAPublicKey) this.otrEngine
|
DSAPublicKey pubkey = (DSAPublicKey) this.otrEngine
|
||||||
.getPublicKey();
|
.getPublicKey();
|
||||||
if (pubkey == null) {
|
if (pubkey == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -394,12 +397,12 @@ public class Account extends AbstractEntity {
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getReadableStatusId() {
|
public int getReadableStatusId() {
|
||||||
return this.getStatus().getReadableId();
|
return this.getStatus().getReadableId();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void activateGracePeriod() {
|
public void activateGracePeriod() {
|
||||||
this.mEndGracePeriod = SystemClock.elapsedRealtime()
|
this.mEndGracePeriod = SystemClock.elapsedRealtime()
|
||||||
+ (Config.CARBON_GRACE_PERIOD * 1000);
|
+ (Config.CARBON_GRACE_PERIOD * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void deactivateGracePeriod() {
|
public void deactivateGracePeriod() {
|
||||||
|
|
|
@ -92,6 +92,10 @@ public class AccountAdapter extends ArrayAdapter<Account> {
|
||||||
R.string.account_status_regis_not_sup));
|
R.string.account_status_regis_not_sup));
|
||||||
statusView.setTextColor(activity.getWarningTextColor());
|
statusView.setTextColor(activity.getWarningTextColor());
|
||||||
break;
|
break;
|
||||||
|
case SECURITY_ERROR:
|
||||||
|
statusView.setText(getContext().getString
|
||||||
|
(R.string.account_status_security_error));
|
||||||
|
statusView.setTextColor(activity.getWarningTextColor());
|
||||||
default:
|
default:
|
||||||
statusView.setText("");
|
statusView.setText("");
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -649,7 +649,8 @@ public class XmppConnection implements Runnable {
|
||||||
") than pinned priority (" + keys.getInt(Account.PINNED_MECHANISM_KEY) +
|
") than pinned priority (" + keys.getInt(Account.PINNED_MECHANISM_KEY) +
|
||||||
"). Possible downgrade attack?");
|
"). Possible downgrade attack?");
|
||||||
disconnect(true);
|
disconnect(true);
|
||||||
}
|
account.setStatus(Account.State.SECURITY_ERROR);
|
||||||
|
}
|
||||||
} catch (final JSONException e) {
|
} catch (final JSONException e) {
|
||||||
Log.d(Config.LOGTAG, "Parse error while checking pinned auth mechanism");
|
Log.d(Config.LOGTAG, "Parse error while checking pinned auth mechanism");
|
||||||
}
|
}
|
||||||
|
|
|
@ -141,6 +141,7 @@
|
||||||
<string name="account_status_regis_conflict">Username already in use</string>
|
<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_success">Registration completed</string>
|
||||||
<string name="account_status_regis_not_sup">Server does not support registration</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_none">Plain text</string>
|
||||||
<string name="encryption_choice_otr">OTR</string>
|
<string name="encryption_choice_otr">OTR</string>
|
||||||
<string name="encryption_choice_pgp">OpenPGP</string>
|
<string name="encryption_choice_pgp">OpenPGP</string>
|
||||||
|
|
Loading…
Reference in a new issue