mirror of
https://github.com/moparisthebest/open-keychain
synced 2024-12-24 07:58:50 -05:00
Yubikey text decryption working
This commit is contained in:
parent
07704c2726
commit
0182f7c951
@ -418,7 +418,7 @@ public class PgpDecryptVerify {
|
||||
log.add(LogType.MSG_DC_PENDING_NFC, indent +1);
|
||||
DecryptVerifyResult result =
|
||||
new DecryptVerifyResult(DecryptVerifyResult.RESULT_PENDING_NFC, log);
|
||||
result.setNfcState(e.encryptedSessionKey, secretEncryptionKey.getKeyId());
|
||||
result.setNfcState(e.encryptedSessionKey, mPassphrase);
|
||||
return result;
|
||||
}
|
||||
encryptedData = encryptedDataAsymmetric;
|
||||
|
@ -526,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) {
|
||||
// we assume that the pin has been cached before
|
||||
String pin = passphraseCacheInterface.getCachedPassphrase(pgpResult.getNfcKeyId());
|
||||
return getNfcDecryptIntent(data, pin, pgpResult.getNfcEncryptedSessionKey());
|
||||
return getNfcDecryptIntent(
|
||||
data, pgpResult.getNfcPassphrase(), pgpResult.getNfcEncryptedSessionKey());
|
||||
} else {
|
||||
throw new PgpGeneralException(
|
||||
"Encountered unhandled type of pending action not supported by API!");
|
||||
|
@ -36,7 +36,7 @@ public class DecryptVerifyResult extends OperationResult {
|
||||
long mKeyIdPassphraseNeeded;
|
||||
|
||||
byte[] mNfcSessionKey;
|
||||
long mNfcKeyId;
|
||||
String mNfcPassphrase;
|
||||
|
||||
OpenPgpSignatureResult mSignatureResult;
|
||||
OpenPgpMetadata mDecryptMetadata;
|
||||
@ -49,17 +49,17 @@ public class DecryptVerifyResult extends OperationResult {
|
||||
mKeyIdPassphraseNeeded = keyIdPassphraseNeeded;
|
||||
}
|
||||
|
||||
public void setNfcState(byte[] sessionKey, long nfcKeyId) {
|
||||
public void setNfcState(byte[] sessionKey, String passphrase) {
|
||||
mNfcSessionKey = sessionKey;
|
||||
mNfcKeyId = nfcKeyId;
|
||||
mNfcPassphrase = passphrase;
|
||||
}
|
||||
|
||||
public byte[] getNfcEncryptedSessionKey() {
|
||||
return mNfcSessionKey;
|
||||
}
|
||||
|
||||
public long getNfcKeyId() {
|
||||
return mNfcKeyId;
|
||||
public String getNfcPassphrase() {
|
||||
return mNfcPassphrase;
|
||||
}
|
||||
|
||||
public OpenPgpSignatureResult getSignatureResult() {
|
||||
@ -92,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() {
|
||||
@ -109,6 +110,7 @@ public class DecryptVerifyResult extends OperationResult {
|
||||
} else {
|
||||
dest.writeInt(0);
|
||||
}
|
||||
dest.writeString(mNfcPassphrase);
|
||||
}
|
||||
|
||||
public static final Creator<DecryptVerifyResult> CREATOR = new Creator<DecryptVerifyResult>() {
|
||||
|
@ -216,7 +216,7 @@ public class DecryptFilesFragment extends DecryptFragment {
|
||||
startPassphraseDialog(Constants.key.symmetric);
|
||||
} else if ((pgpResult.getResult() & DecryptVerifyResult.RESULT_PENDING_NFC) ==
|
||||
DecryptVerifyResult.RESULT_PENDING_NFC) {
|
||||
startNfcDecrypt(mPassphrase, pgpResult.getNfcEncryptedSessionKey());
|
||||
startNfcDecrypt(pgpResult.getNfcPassphrase(), pgpResult.getNfcEncryptedSessionKey());
|
||||
} else {
|
||||
throw new RuntimeException("Unhandled pending result!");
|
||||
}
|
||||
|
@ -173,7 +173,7 @@ public class DecryptTextFragment extends DecryptFragment {
|
||||
startPassphraseDialog(Constants.key.symmetric);
|
||||
} else if ((pgpResult.getResult() & DecryptVerifyResult.RESULT_PENDING_NFC) ==
|
||||
DecryptVerifyResult.RESULT_PENDING_NFC) {
|
||||
startNfcDecrypt(mPassphrase, pgpResult.getNfcEncryptedSessionKey());
|
||||
startNfcDecrypt(pgpResult.getNfcPassphrase(), pgpResult.getNfcEncryptedSessionKey());
|
||||
} else {
|
||||
throw new RuntimeException("Unhandled pending result!");
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user