mirror of
https://github.com/moparisthebest/open-keychain
synced 2024-12-25 00:18:51 -05:00
Fixes for nfc decrypt
This commit is contained in:
parent
1837dc89fa
commit
a77c217b82
@ -418,8 +418,7 @@ public class PgpDecryptVerify {
|
||||
log.add(LogType.MSG_DC_PENDING_NFC, indent +1);
|
||||
DecryptVerifyResult result =
|
||||
new DecryptVerifyResult(DecryptVerifyResult.RESULT_PENDING_NFC, log);
|
||||
result.setNfcEncryptedSessionKey(e.encryptedSessionKey);
|
||||
// TODO save passphrase here?
|
||||
result.setNfcState(e.encryptedSessionKey, mPassphrase);
|
||||
return result;
|
||||
}
|
||||
encryptedData = encryptedDataAsymmetric;
|
||||
|
@ -277,7 +277,8 @@ public class OpenPgpService extends RemoteService {
|
||||
}
|
||||
}
|
||||
},
|
||||
inputData, os);
|
||||
inputData, os
|
||||
);
|
||||
builder.setEnableAsciiArmorOutput(asciiArmor)
|
||||
.setVersionHeader(PgpHelper.getVersionForHeader(this))
|
||||
.setSignatureHashAlgorithm(accSettings.getHashAlgorithm())
|
||||
@ -379,7 +380,8 @@ public class OpenPgpService extends RemoteService {
|
||||
}
|
||||
}
|
||||
},
|
||||
inputData, os);
|
||||
inputData, os
|
||||
);
|
||||
builder.setEnableAsciiArmorOutput(asciiArmor)
|
||||
.setVersionHeader(PgpHelper.getVersionForHeader(this))
|
||||
.setCompressionId(accSettings.getCompression())
|
||||
@ -524,9 +526,8 @@ public class OpenPgpService extends RemoteService {
|
||||
"Decryption of symmetric content not supported by API!");
|
||||
} else if ((pgpResult.getResult() & DecryptVerifyResult.RESULT_PENDING_NFC) ==
|
||||
DecryptVerifyResult.RESULT_PENDING_NFC) {
|
||||
// TODO get passphrase here? currently not in DecryptVerifyResult
|
||||
return getNfcDecryptIntent(
|
||||
data, null, pgpResult.getNfcEncryptedSessionKey());
|
||||
data, pgpResult.getNfcPassphrase(), pgpResult.getNfcEncryptedSessionKey());
|
||||
} else {
|
||||
throw new PgpGeneralException(
|
||||
"Encountered unhandled type of pending action not supported by API!");
|
||||
|
@ -31,10 +31,12 @@ public class DecryptVerifyResult extends OperationResult {
|
||||
// fifth to sixth bit in addition indicate specific type of pending
|
||||
public static final int RESULT_PENDING_ASYM_PASSPHRASE = RESULT_PENDING + 16;
|
||||
public static final int RESULT_PENDING_SYM_PASSPHRASE = RESULT_PENDING + 32;
|
||||
public static final int RESULT_PENDING_NFC = RESULT_PENDING + 48;
|
||||
public static final int RESULT_PENDING_NFC = RESULT_PENDING + 64;
|
||||
|
||||
long mKeyIdPassphraseNeeded;
|
||||
|
||||
byte[] mNfcSessionKey;
|
||||
String mNfcPassphrase;
|
||||
|
||||
OpenPgpSignatureResult mSignatureResult;
|
||||
OpenPgpMetadata mDecryptMetadata;
|
||||
@ -47,14 +49,19 @@ public class DecryptVerifyResult extends OperationResult {
|
||||
mKeyIdPassphraseNeeded = keyIdPassphraseNeeded;
|
||||
}
|
||||
|
||||
public void setNfcEncryptedSessionKey(byte[] sessionKey) {
|
||||
public void setNfcState(byte[] sessionKey, String passphrase) {
|
||||
mNfcSessionKey = sessionKey;
|
||||
mNfcPassphrase = passphrase;
|
||||
}
|
||||
|
||||
public byte[] getNfcEncryptedSessionKey() {
|
||||
return mNfcSessionKey;
|
||||
}
|
||||
|
||||
public String getNfcPassphrase() {
|
||||
return mNfcPassphrase;
|
||||
}
|
||||
|
||||
public OpenPgpSignatureResult getSignatureResult() {
|
||||
return mSignatureResult;
|
||||
}
|
||||
@ -72,7 +79,7 @@ public class DecryptVerifyResult extends OperationResult {
|
||||
}
|
||||
|
||||
public boolean isPending() {
|
||||
return (mResult & RESULT_PENDING) != 0;
|
||||
return (mResult & RESULT_PENDING) == RESULT_PENDING;
|
||||
}
|
||||
|
||||
public DecryptVerifyResult(int result, OperationLog log) {
|
||||
@ -85,6 +92,7 @@ public class DecryptVerifyResult extends OperationResult {
|
||||
mSignatureResult = source.readParcelable(OpenPgpSignatureResult.class.getClassLoader());
|
||||
mDecryptMetadata = source.readParcelable(OpenPgpMetadata.class.getClassLoader());
|
||||
mNfcSessionKey = source.readInt() != 0 ? source.createByteArray() : null;
|
||||
mNfcPassphrase = source.readString();
|
||||
}
|
||||
|
||||
public int describeContents() {
|
||||
@ -102,6 +110,7 @@ public class DecryptVerifyResult extends OperationResult {
|
||||
} else {
|
||||
dest.writeInt(0);
|
||||
}
|
||||
dest.writeString(mNfcPassphrase);
|
||||
}
|
||||
|
||||
public static final Creator<DecryptVerifyResult> CREATOR = new Creator<DecryptVerifyResult>() {
|
||||
|
Loading…
Reference in New Issue
Block a user