mirror of
https://github.com/moparisthebest/open-keychain
synced 2025-01-11 13:38:06 -05:00
small improvements regarding pin tests and logging
This commit is contained in:
parent
2d38079574
commit
1c1ae769ef
@ -916,7 +916,7 @@ public class PgpKeyOperationTest {
|
|||||||
parcel.mNewUnlock = new ChangeUnlockParcel("");
|
parcel.mNewUnlock = new ChangeUnlockParcel("");
|
||||||
// note that canonicalization here necessarily strips the empty notation packet
|
// note that canonicalization here necessarily strips the empty notation packet
|
||||||
UncachedKeyRing modified = applyModificationWithChecks(parcel, ring, onlyA, onlyB,
|
UncachedKeyRing modified = applyModificationWithChecks(parcel, ring, onlyA, onlyB,
|
||||||
passphrase, true, false);
|
passphrase);
|
||||||
|
|
||||||
Assert.assertEquals("exactly three packets should have been modified (the secret keys)",
|
Assert.assertEquals("exactly three packets should have been modified (the secret keys)",
|
||||||
3, onlyB.size());
|
3, onlyB.size());
|
||||||
@ -929,7 +929,7 @@ public class PgpKeyOperationTest {
|
|||||||
// modify keyring, change to non-empty passphrase
|
// modify keyring, change to non-empty passphrase
|
||||||
String otherPassphrase = TestingUtils.genPassphrase(true);
|
String otherPassphrase = TestingUtils.genPassphrase(true);
|
||||||
parcel.mNewUnlock = new ChangeUnlockParcel(otherPassphrase);
|
parcel.mNewUnlock = new ChangeUnlockParcel(otherPassphrase);
|
||||||
modified = applyModificationWithChecks(parcel, modified, onlyA, onlyB, "", true, false);
|
modified = applyModificationWithChecks(parcel, modified, onlyA, onlyB, "");
|
||||||
|
|
||||||
Assert.assertEquals("exactly three packets should have been modified (the secret keys)",
|
Assert.assertEquals("exactly three packets should have been modified (the secret keys)",
|
||||||
3, onlyB.size());
|
3, onlyB.size());
|
||||||
@ -989,11 +989,15 @@ public class PgpKeyOperationTest {
|
|||||||
@Test
|
@Test
|
||||||
public void testUnlockPin() throws Exception {
|
public void testUnlockPin() throws Exception {
|
||||||
|
|
||||||
|
String pin = "5235125";
|
||||||
|
|
||||||
// change passphrase to a pin type
|
// change passphrase to a pin type
|
||||||
parcel.mNewUnlock = new ChangeUnlockParcel(null, "52351");
|
parcel.mNewUnlock = new ChangeUnlockParcel(null, pin);
|
||||||
UncachedKeyRing modified = applyModificationWithChecks(parcel, ring, onlyA, onlyB);
|
UncachedKeyRing modified = applyModificationWithChecks(parcel, ring, onlyA, onlyB);
|
||||||
|
|
||||||
Assert.assertEquals("exactly four packets should have been modified (the secret keys + notation packet)",
|
Assert.assertEquals("exactly three packets should have been added (the secret keys + notation packet)",
|
||||||
|
3, onlyA.size());
|
||||||
|
Assert.assertEquals("exactly four packets should have been added (the secret keys + notation packet)",
|
||||||
4, onlyB.size());
|
4, onlyB.size());
|
||||||
|
|
||||||
RawPacket dkSig = onlyB.get(1);
|
RawPacket dkSig = onlyB.get(1);
|
||||||
@ -1001,11 +1005,25 @@ public class PgpKeyOperationTest {
|
|||||||
PacketTags.SIGNATURE, dkSig.tag);
|
PacketTags.SIGNATURE, dkSig.tag);
|
||||||
|
|
||||||
// check that notation data contains pin
|
// check that notation data contains pin
|
||||||
CanonicalizedSecretKeyRing secretRing = new CanonicalizedSecretKeyRing(modified.getEncoded(), false, 0);
|
CanonicalizedSecretKeyRing secretRing = new CanonicalizedSecretKeyRing(
|
||||||
|
modified.getEncoded(), false, 0);
|
||||||
Assert.assertEquals("secret key type should be 'pin' after this",
|
Assert.assertEquals("secret key type should be 'pin' after this",
|
||||||
SecretKeyType.PIN,
|
SecretKeyType.PIN,
|
||||||
secretRing.getSecretKey().getSecretKeyType());
|
secretRing.getSecretKey().getSecretKeyType());
|
||||||
|
|
||||||
|
// need to sleep for a sec, so the timestamp changes for notation data
|
||||||
|
Thread.sleep(1000);
|
||||||
|
|
||||||
|
{
|
||||||
|
parcel.mNewUnlock = new ChangeUnlockParcel("phrayse", null);
|
||||||
|
applyModificationWithChecks(parcel, modified, onlyA, onlyB, pin, true, false);
|
||||||
|
|
||||||
|
Assert.assertEquals("exactly four packets should have been removed (the secret keys + notation packet)",
|
||||||
|
4, onlyA.size());
|
||||||
|
Assert.assertEquals("exactly three packets should have been added (no more notation packet)",
|
||||||
|
3, onlyB.size());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static UncachedKeyRing applyModificationWithChecks(SaveKeyringParcel parcel,
|
private static UncachedKeyRing applyModificationWithChecks(SaveKeyringParcel parcel,
|
||||||
|
@ -461,6 +461,8 @@ public abstract class OperationResult implements Parcelable {
|
|||||||
MSG_MF_ERROR_SIG (LogLevel.ERROR, R.string.msg_mf_error_sig),
|
MSG_MF_ERROR_SIG (LogLevel.ERROR, R.string.msg_mf_error_sig),
|
||||||
MSG_MF_ERROR_SUBKEY_MISSING(LogLevel.ERROR, R.string.msg_mf_error_subkey_missing),
|
MSG_MF_ERROR_SUBKEY_MISSING(LogLevel.ERROR, R.string.msg_mf_error_subkey_missing),
|
||||||
MSG_MF_MASTER (LogLevel.DEBUG, R.string.msg_mf_master),
|
MSG_MF_MASTER (LogLevel.DEBUG, R.string.msg_mf_master),
|
||||||
|
MSG_MF_NOTATION_PIN (LogLevel.DEBUG, R.string.msg_mf_notation_pin),
|
||||||
|
MSG_MF_NOTATION_EMPTY (LogLevel.DEBUG, R.string.msg_mf_notation_empty),
|
||||||
MSG_MF_PASSPHRASE (LogLevel.INFO, R.string.msg_mf_passphrase),
|
MSG_MF_PASSPHRASE (LogLevel.INFO, R.string.msg_mf_passphrase),
|
||||||
MSG_MF_PASSPHRASE_KEY (LogLevel.DEBUG, R.string.msg_mf_passphrase_key),
|
MSG_MF_PASSPHRASE_KEY (LogLevel.DEBUG, R.string.msg_mf_passphrase_key),
|
||||||
MSG_MF_PASSPHRASE_EMPTY_RETRY (LogLevel.DEBUG, R.string.msg_mf_passphrase_empty_retry),
|
MSG_MF_PASSPHRASE_EMPTY_RETRY (LogLevel.DEBUG, R.string.msg_mf_passphrase_empty_retry),
|
||||||
|
@ -921,6 +921,9 @@ public class PgpKeyOperation {
|
|||||||
|
|
||||||
// if there is any old packet with notation data
|
// if there is any old packet with notation data
|
||||||
if (hasNotationData(sKR)) {
|
if (hasNotationData(sKR)) {
|
||||||
|
|
||||||
|
log.add(LogType.MSG_MF_NOTATION_EMPTY, indent);
|
||||||
|
|
||||||
// add packet with EMPTY notation data (updates old one, but will be stripped later)
|
// add packet with EMPTY notation data (updates old one, but will be stripped later)
|
||||||
PGPContentSignerBuilder signerBuilder = new JcaPGPContentSignerBuilder(
|
PGPContentSignerBuilder signerBuilder = new JcaPGPContentSignerBuilder(
|
||||||
masterPrivateKey.getPublicKeyPacket().getAlgorithm(), HashAlgorithmTags.SHA512)
|
masterPrivateKey.getPublicKeyPacket().getAlgorithm(), HashAlgorithmTags.SHA512)
|
||||||
@ -945,6 +948,8 @@ public class PgpKeyOperation {
|
|||||||
if (newUnlock.mNewPin != null) {
|
if (newUnlock.mNewPin != null) {
|
||||||
sKR = applyNewPassphrase(sKR, masterPublicKey, passphrase, newUnlock.mNewPin, log, indent);
|
sKR = applyNewPassphrase(sKR, masterPublicKey, passphrase, newUnlock.mNewPin, log, indent);
|
||||||
|
|
||||||
|
log.add(LogType.MSG_MF_NOTATION_PIN, indent);
|
||||||
|
|
||||||
// add packet with "pin" notation data
|
// add packet with "pin" notation data
|
||||||
PGPContentSignerBuilder signerBuilder = new JcaPGPContentSignerBuilder(
|
PGPContentSignerBuilder signerBuilder = new JcaPGPContentSignerBuilder(
|
||||||
masterPrivateKey.getPublicKeyPacket().getAlgorithm(), HashAlgorithmTags.SHA512)
|
masterPrivateKey.getPublicKeyPacket().getAlgorithm(), HashAlgorithmTags.SHA512)
|
||||||
|
@ -803,7 +803,9 @@
|
|||||||
<string name="msg_mf_error_pgp">"Internal PGP error!"</string>
|
<string name="msg_mf_error_pgp">"Internal PGP error!"</string>
|
||||||
<string name="msg_mf_error_sig">"Signature exception!"</string>
|
<string name="msg_mf_error_sig">"Signature exception!"</string>
|
||||||
<string name="msg_mf_master">"Modifying master certifications"</string>
|
<string name="msg_mf_master">"Modifying master certifications"</string>
|
||||||
<string name="msg_mf_passphrase">"Changing passphrase for keyring…"</string>
|
<string name="msg_mf_notation_empty">"Adding empty notation packet"</string>
|
||||||
|
<string name="msg_mf_notation_pin">"Adding PIN notation packet"</string>
|
||||||
|
<string name="msg_mf_passphrase">"Changing passphrase for keyring"</string>
|
||||||
<string name="msg_mf_passphrase_key">"Re-encrypting subkey %s with new passphrase"</string>
|
<string name="msg_mf_passphrase_key">"Re-encrypting subkey %s with new passphrase"</string>
|
||||||
<string name="msg_mf_passphrase_empty_retry">"Setting new passphrase failed, trying again with empty old passphrase"</string>
|
<string name="msg_mf_passphrase_empty_retry">"Setting new passphrase failed, trying again with empty old passphrase"</string>
|
||||||
<string name="msg_mf_passphrase_fail">"Passphrase for subkey could not be changed! (Does it have a different one from the other keys?)"</string>
|
<string name="msg_mf_passphrase_fail">"Passphrase for subkey could not be changed! (Does it have a different one from the other keys?)"</string>
|
||||||
|
Loading…
Reference in New Issue
Block a user