diff options
author | Dominik Schürmann <dominik@dominikschuermann.de> | 2014-09-24 00:50:58 +0200 |
---|---|---|
committer | Dominik Schürmann <dominik@dominikschuermann.de> | 2014-09-24 00:50:58 +0200 |
commit | 07704c2726e66b3834834d76c4046b144348b58e (patch) | |
tree | 84f14eca434adf4c21aad9af7bc706a94b139d00 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service | |
parent | 7c82e1c72872e81ddc66f876d162cf2af66261e5 (diff) | |
download | open-keychain-07704c2726e66b3834834d76c4046b144348b58e.tar.gz open-keychain-07704c2726e66b3834834d76c4046b144348b58e.tar.bz2 open-keychain-07704c2726e66b3834834d76c4046b144348b58e.zip |
Yubikey decryption
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service')
2 files changed, 12 insertions, 9 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentService.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentService.java index 6d23c36b9..21e3a95a7 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentService.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentService.java @@ -146,6 +146,7 @@ public class KeychainIntentService extends IntentService implements Progressable // decrypt/verify public static final String DECRYPT_CIPHERTEXT_BYTES = "ciphertext_bytes"; public static final String DECRYPT_PASSPHRASE = "passphrase"; + public static final String DECRYPT_NFC_DECRYPTED_SESSION_KEY = "nfc_decrypted_session_key"; // save keyring public static final String EDIT_KEYRING_PARCEL = "save_parcel"; @@ -326,6 +327,7 @@ public class KeychainIntentService extends IntentService implements Progressable try { /* Input */ String passphrase = data.getString(DECRYPT_PASSPHRASE); + byte[] nfcDecryptedSessionKey = data.getByteArray(DECRYPT_NFC_DECRYPTED_SESSION_KEY); InputData inputData = createDecryptInputData(data); OutputStream outStream = createCryptOutputStream(data); @@ -342,7 +344,8 @@ public class KeychainIntentService extends IntentService implements Progressable ); builder.setProgressable(this) .setAllowSymmetricDecryption(true) - .setPassphrase(passphrase); + .setPassphrase(passphrase) + .setNfcState(nfcDecryptedSessionKey); DecryptVerifyResult decryptVerifyResult = builder.build().execute(); @@ -364,6 +367,7 @@ public class KeychainIntentService extends IntentService implements Progressable try { /* Input */ String passphrase = data.getString(DECRYPT_PASSPHRASE); + byte[] nfcDecryptedSessionKey = data.getByteArray(DECRYPT_NFC_DECRYPTED_SESSION_KEY); InputData inputData = createDecryptInputData(data); @@ -380,7 +384,8 @@ public class KeychainIntentService extends IntentService implements Progressable builder.setProgressable(this) .setAllowSymmetricDecryption(true) .setPassphrase(passphrase) - .setDecryptMetadataOnly(true); + .setDecryptMetadataOnly(true) + .setNfcState(nfcDecryptedSessionKey); DecryptVerifyResult decryptVerifyResult = builder.build().execute(); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/results/DecryptVerifyResult.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/results/DecryptVerifyResult.java index 4a0aec548..54241e625 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/results/DecryptVerifyResult.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/results/DecryptVerifyResult.java @@ -36,7 +36,7 @@ public class DecryptVerifyResult extends OperationResult { long mKeyIdPassphraseNeeded; byte[] mNfcSessionKey; - String mNfcPassphrase; + long mNfcKeyId; OpenPgpSignatureResult mSignatureResult; OpenPgpMetadata mDecryptMetadata; @@ -49,17 +49,17 @@ public class DecryptVerifyResult extends OperationResult { mKeyIdPassphraseNeeded = keyIdPassphraseNeeded; } - public void setNfcState(byte[] sessionKey, String passphrase) { + public void setNfcState(byte[] sessionKey, long nfcKeyId) { mNfcSessionKey = sessionKey; - mNfcPassphrase = passphrase; + mNfcKeyId = nfcKeyId; } public byte[] getNfcEncryptedSessionKey() { return mNfcSessionKey; } - public String getNfcPassphrase() { - return mNfcPassphrase; + public long getNfcKeyId() { + return mNfcKeyId; } public OpenPgpSignatureResult getSignatureResult() { @@ -92,7 +92,6 @@ 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() { @@ -110,7 +109,6 @@ public class DecryptVerifyResult extends OperationResult { } else { dest.writeInt(0); } - dest.writeString(mNfcPassphrase); } public static final Creator<DecryptVerifyResult> CREATOR = new Creator<DecryptVerifyResult>() { |