mirror of
https://github.com/moparisthebest/open-keychain
synced 2024-11-23 17:22:16 -05:00
Fixed #1152:
- Checking if input.getSignatureSubKeyId() is not null before proceeding.
This commit is contained in:
parent
cfef53be01
commit
1d6643fa6b
@ -62,19 +62,19 @@ import java.util.Arrays;
|
|||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
|
|
||||||
/** This class supports a single, low-level, sign/encrypt operation.
|
/**
|
||||||
*
|
* This class supports a single, low-level, sign/encrypt operation.
|
||||||
|
* <p/>
|
||||||
* The operation of this class takes an Input- and OutputStream plus a
|
* The operation of this class takes an Input- and OutputStream plus a
|
||||||
* PgpSignEncryptInput, and signs and/or encrypts the stream as
|
* PgpSignEncryptInput, and signs and/or encrypts the stream as
|
||||||
* parametrized in the PgpSignEncryptInput object. It returns its status
|
* parametrized in the PgpSignEncryptInput object. It returns its status
|
||||||
* and a possible detached signature as a SignEncryptResult.
|
* and a possible detached signature as a SignEncryptResult.
|
||||||
*
|
* <p/>
|
||||||
* For a high-level operation based on URIs, see SignEncryptOperation.
|
* For a high-level operation based on URIs, see SignEncryptOperation.
|
||||||
*
|
*
|
||||||
* @see org.sufficientlysecure.keychain.pgp.PgpSignEncryptInput
|
* @see org.sufficientlysecure.keychain.pgp.PgpSignEncryptInput
|
||||||
* @see org.sufficientlysecure.keychain.operations.results.PgpSignEncryptResult
|
* @see org.sufficientlysecure.keychain.operations.results.PgpSignEncryptResult
|
||||||
* @see org.sufficientlysecure.keychain.operations.SignEncryptOperation
|
* @see org.sufficientlysecure.keychain.operations.SignEncryptOperation
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
public class PgpSignEncryptOperation extends BaseOperation {
|
public class PgpSignEncryptOperation extends BaseOperation {
|
||||||
|
|
||||||
@ -100,7 +100,7 @@ public class PgpSignEncryptOperation extends BaseOperation {
|
|||||||
* Signs and/or encrypts data based on parameters of class
|
* Signs and/or encrypts data based on parameters of class
|
||||||
*/
|
*/
|
||||||
public PgpSignEncryptResult execute(PgpSignEncryptInput input,
|
public PgpSignEncryptResult execute(PgpSignEncryptInput input,
|
||||||
InputData inputData, OutputStream outputStream) {
|
InputData inputData, OutputStream outputStream) {
|
||||||
|
|
||||||
int indent = 0;
|
int indent = 0;
|
||||||
OperationLog log = new OperationLog();
|
OperationLog log = new OperationLog();
|
||||||
@ -487,6 +487,12 @@ public class PgpSignEncryptOperation extends BaseOperation {
|
|||||||
log.add(LogType.MSG_PSE_PENDING_NFC, indent);
|
log.add(LogType.MSG_PSE_PENDING_NFC, indent);
|
||||||
PgpSignEncryptResult result =
|
PgpSignEncryptResult result =
|
||||||
new PgpSignEncryptResult(PgpSignEncryptResult.RESULT_PENDING_NFC, log);
|
new PgpSignEncryptResult(PgpSignEncryptResult.RESULT_PENDING_NFC, log);
|
||||||
|
|
||||||
|
// SignatureSubKeyId can be null.
|
||||||
|
if (input.getSignatureSubKeyId() == null) {
|
||||||
|
return new PgpSignEncryptResult(PgpSignEncryptResult.RESULT_ERROR, log);
|
||||||
|
}
|
||||||
|
|
||||||
// Note that the checked key here is the master key, not the signing key
|
// Note that the checked key here is the master key, not the signing key
|
||||||
// (although these are always the same on Yubikeys)
|
// (although these are always the same on Yubikeys)
|
||||||
result.setNfcData(input.getSignatureSubKeyId(), e.hashToSign, e.hashAlgo, e.creationTimestamp, input.getSignaturePassphrase());
|
result.setNfcData(input.getSignatureSubKeyId(), e.hashToSign, e.hashAlgo, e.creationTimestamp, input.getSignaturePassphrase());
|
||||||
|
Loading…
Reference in New Issue
Block a user