mirror of
https://github.com/moparisthebest/open-keychain
synced 2024-12-25 00:18:51 -05:00
Fix PASSPHRASE handling in API
This commit is contained in:
parent
10510288f1
commit
9e668eadcb
@ -240,6 +240,11 @@ public class OpenPgpService extends RemoteService {
|
|||||||
try {
|
try {
|
||||||
boolean asciiArmor = cleartextSign || data.getBooleanExtra(OpenPgpApi.EXTRA_REQUEST_ASCII_ARMOR, true);
|
boolean asciiArmor = cleartextSign || data.getBooleanExtra(OpenPgpApi.EXTRA_REQUEST_ASCII_ARMOR, true);
|
||||||
|
|
||||||
|
Passphrase passphrase = null;
|
||||||
|
if (data.getCharArrayExtra(OpenPgpApi.EXTRA_PASSPHRASE) != null) {
|
||||||
|
passphrase = new Passphrase(data.getCharArrayExtra(OpenPgpApi.EXTRA_PASSPHRASE));
|
||||||
|
}
|
||||||
|
|
||||||
byte[] nfcSignedHash = data.getByteArrayExtra(OpenPgpApi.EXTRA_NFC_SIGNED_HASH);
|
byte[] nfcSignedHash = data.getByteArrayExtra(OpenPgpApi.EXTRA_NFC_SIGNED_HASH);
|
||||||
if (nfcSignedHash != null) {
|
if (nfcSignedHash != null) {
|
||||||
Log.d(Constants.TAG, "nfcSignedHash:" + Hex.toHexString(nfcSignedHash));
|
Log.d(Constants.TAG, "nfcSignedHash:" + Hex.toHexString(nfcSignedHash));
|
||||||
@ -278,6 +283,7 @@ public class OpenPgpService extends RemoteService {
|
|||||||
|
|
||||||
// sign-only
|
// sign-only
|
||||||
PgpSignEncryptInput pseInput = new PgpSignEncryptInput()
|
PgpSignEncryptInput pseInput = new PgpSignEncryptInput()
|
||||||
|
.setSignaturePassphrase(passphrase)
|
||||||
.setEnableAsciiArmorOutput(asciiArmor)
|
.setEnableAsciiArmorOutput(asciiArmor)
|
||||||
.setCleartextSignature(cleartextSign)
|
.setCleartextSignature(cleartextSign)
|
||||||
.setDetachedSignature(!cleartextSign)
|
.setDetachedSignature(!cleartextSign)
|
||||||
@ -366,6 +372,11 @@ public class OpenPgpService extends RemoteService {
|
|||||||
compressionId = CompressionAlgorithmTags.UNCOMPRESSED;
|
compressionId = CompressionAlgorithmTags.UNCOMPRESSED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Passphrase passphrase = null;
|
||||||
|
if (data.getCharArrayExtra(OpenPgpApi.EXTRA_PASSPHRASE) != null) {
|
||||||
|
passphrase = new Passphrase(data.getCharArrayExtra(OpenPgpApi.EXTRA_PASSPHRASE));
|
||||||
|
}
|
||||||
|
|
||||||
// first try to get key ids from non-ambiguous key id extra
|
// first try to get key ids from non-ambiguous key id extra
|
||||||
long[] keyIds = data.getLongArrayExtra(OpenPgpApi.EXTRA_KEY_IDS);
|
long[] keyIds = data.getLongArrayExtra(OpenPgpApi.EXTRA_KEY_IDS);
|
||||||
if (keyIds == null) {
|
if (keyIds == null) {
|
||||||
@ -391,7 +402,8 @@ public class OpenPgpService extends RemoteService {
|
|||||||
InputData inputData = new InputData(is, inputLength, originalFilename);
|
InputData inputData = new InputData(is, inputLength, originalFilename);
|
||||||
|
|
||||||
PgpSignEncryptInput pseInput = new PgpSignEncryptInput();
|
PgpSignEncryptInput pseInput = new PgpSignEncryptInput();
|
||||||
pseInput.setEnableAsciiArmorOutput(asciiArmor)
|
pseInput.setSignaturePassphrase(passphrase)
|
||||||
|
.setEnableAsciiArmorOutput(asciiArmor)
|
||||||
.setVersionHeader(null)
|
.setVersionHeader(null)
|
||||||
.setCompressionId(compressionId)
|
.setCompressionId(compressionId)
|
||||||
.setSymmetricEncryptionAlgorithm(PgpConstants.OpenKeychainSymmetricKeyAlgorithmTags.USE_PREFERRED)
|
.setSymmetricEncryptionAlgorithm(PgpConstants.OpenKeychainSymmetricKeyAlgorithmTags.USE_PREFERRED)
|
||||||
@ -499,6 +511,11 @@ public class OpenPgpService extends RemoteService {
|
|||||||
os = new ParcelFileDescriptor.AutoCloseOutputStream(output);
|
os = new ParcelFileDescriptor.AutoCloseOutputStream(output);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Passphrase passphrase = null;
|
||||||
|
if (data.getCharArrayExtra(OpenPgpApi.EXTRA_PASSPHRASE) != null) {
|
||||||
|
passphrase = new Passphrase(data.getCharArrayExtra(OpenPgpApi.EXTRA_PASSPHRASE));
|
||||||
|
}
|
||||||
|
|
||||||
String currentPkg = getCurrentCallingPackage();
|
String currentPkg = getCurrentCallingPackage();
|
||||||
Set<Long> allowedKeyIds;
|
Set<Long> allowedKeyIds;
|
||||||
if (data.getIntExtra(OpenPgpApi.EXTRA_API_VERSION, -1) < 7) {
|
if (data.getIntExtra(OpenPgpApi.EXTRA_API_VERSION, -1) < 7) {
|
||||||
@ -509,7 +526,6 @@ public class OpenPgpService extends RemoteService {
|
|||||||
KeychainContract.ApiAllowedKeys.buildBaseUri(currentPkg));
|
KeychainContract.ApiAllowedKeys.buildBaseUri(currentPkg));
|
||||||
}
|
}
|
||||||
|
|
||||||
Passphrase passphrase = data.getParcelableExtra(OpenPgpApi.EXTRA_PASSPHRASE);
|
|
||||||
long inputLength = is.available();
|
long inputLength = is.available();
|
||||||
InputData inputData = new InputData(is, inputLength);
|
InputData inputData = new InputData(is, inputLength);
|
||||||
|
|
||||||
|
2
extern/openpgp-api-lib
vendored
2
extern/openpgp-api-lib
vendored
@ -1 +1 @@
|
|||||||
Subproject commit d10df1d40f23475445d0abca217683e911ffa0a0
|
Subproject commit 34ccf4df41a30cb586f06eb3b9bc90efc8dd7a2c
|
Loading…
Reference in New Issue
Block a user