mirror of
https://github.com/moparisthebest/open-keychain
synced 2024-11-14 04:45:04 -05:00
modifyKey: error out on nonexisting new primary user id
This commit is contained in:
parent
4345e0309d
commit
4da273ac16
@ -344,6 +344,9 @@ public class PgpKeyOperation {
|
|||||||
|
|
||||||
// 3. If primary user id changed, generate new certificates for both old and new
|
// 3. If primary user id changed, generate new certificates for both old and new
|
||||||
if (saveParcel.changePrimaryUserId != null) {
|
if (saveParcel.changePrimaryUserId != null) {
|
||||||
|
|
||||||
|
// keep track if we actually changed one
|
||||||
|
boolean ok = false;
|
||||||
log.add(LogLevel.INFO, LogType.MSG_MF_UID_PRIMARY, indent);
|
log.add(LogLevel.INFO, LogType.MSG_MF_UID_PRIMARY, indent);
|
||||||
indent += 1;
|
indent += 1;
|
||||||
|
|
||||||
@ -395,6 +398,7 @@ public class PgpKeyOperation {
|
|||||||
if (currentCert.hasSubpackets() && currentCert.getHashedSubPackets().isPrimaryUserID()) {
|
if (currentCert.hasSubpackets() && currentCert.getHashedSubPackets().isPrimaryUserID()) {
|
||||||
// if it's the one we want, just leave it as is
|
// if it's the one we want, just leave it as is
|
||||||
if (userId.equals(saveParcel.changePrimaryUserId)) {
|
if (userId.equals(saveParcel.changePrimaryUserId)) {
|
||||||
|
ok = true;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
// otherwise, generate new non-primary certification
|
// otherwise, generate new non-primary certification
|
||||||
@ -420,6 +424,7 @@ public class PgpKeyOperation {
|
|||||||
masterPrivateKey, masterPublicKey, userId, true, masterKeyFlags);
|
masterPrivateKey, masterPublicKey, userId, true, masterKeyFlags);
|
||||||
modifiedPublicKey = PGPPublicKey.addCertification(
|
modifiedPublicKey = PGPPublicKey.addCertification(
|
||||||
modifiedPublicKey, userId, newCert);
|
modifiedPublicKey, userId, newCert);
|
||||||
|
ok = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// user id is not primary and is not supposed to be - nothing to do here.
|
// user id is not primary and is not supposed to be - nothing to do here.
|
||||||
@ -427,6 +432,11 @@ public class PgpKeyOperation {
|
|||||||
}
|
}
|
||||||
|
|
||||||
indent -= 1;
|
indent -= 1;
|
||||||
|
|
||||||
|
if (!ok) {
|
||||||
|
log.add(LogLevel.ERROR, LogType.MSG_MF_ERROR_NOEXIST_PRIMARY, indent);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update the secret key ring
|
// Update the secret key ring
|
||||||
|
@ -258,6 +258,7 @@ public class OperationResultParcel implements Parcelable {
|
|||||||
MSG_MF_ERROR_FINGERPRINT (R.string.msg_mf_error_fingerprint),
|
MSG_MF_ERROR_FINGERPRINT (R.string.msg_mf_error_fingerprint),
|
||||||
MSG_MF_ERROR_KEYID (R.string.msg_mf_error_keyid),
|
MSG_MF_ERROR_KEYID (R.string.msg_mf_error_keyid),
|
||||||
MSG_MF_ERROR_INTEGRITY (R.string.msg_mf_error_integrity),
|
MSG_MF_ERROR_INTEGRITY (R.string.msg_mf_error_integrity),
|
||||||
|
MSG_MF_ERROR_NOEXIST_PRIMARY (R.string.msg_mf_error_noexist_primary),
|
||||||
MSG_MF_ERROR_REVOKED_PRIMARY (R.string.msg_mf_error_revoked_primary),
|
MSG_MF_ERROR_REVOKED_PRIMARY (R.string.msg_mf_error_revoked_primary),
|
||||||
MSG_MF_ERROR_PGP (R.string.msg_mf_error_pgp),
|
MSG_MF_ERROR_PGP (R.string.msg_mf_error_pgp),
|
||||||
MSG_MF_ERROR_SIG (R.string.msg_mf_error_sig),
|
MSG_MF_ERROR_SIG (R.string.msg_mf_error_sig),
|
||||||
|
@ -643,6 +643,7 @@
|
|||||||
<string name="msg_mf_error_fingerprint">Actual key fingerprint does not match the expected one!</string>
|
<string name="msg_mf_error_fingerprint">Actual key fingerprint does not match the expected one!</string>
|
||||||
<string name="msg_mf_error_keyid">No key ID. This is an internal error, please file a bug report!</string>
|
<string name="msg_mf_error_keyid">No key ID. This is an internal error, please file a bug report!</string>
|
||||||
<string name="msg_mf_error_integrity">Internal error, integrity check failed!</string>
|
<string name="msg_mf_error_integrity">Internal error, integrity check failed!</string>
|
||||||
|
<string name="msg_mf_error_noexist_primary">Bad primary user id specified!</string>
|
||||||
<string name="msg_mf_error_revoked_primary">Revoked user ids cannot be primary!</string>
|
<string name="msg_mf_error_revoked_primary">Revoked user ids cannot be primary!</string>
|
||||||
<string name="msg_mf_error_pgp">PGP internal exception!</string>
|
<string name="msg_mf_error_pgp">PGP internal exception!</string>
|
||||||
<string name="msg_mf_error_sig">Signature exception!</string>
|
<string name="msg_mf_error_sig">Signature exception!</string>
|
||||||
|
Loading…
Reference in New Issue
Block a user