diff options
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui')
| -rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SecurityTokenOperationActivity.java | 12 | 
1 files changed, 9 insertions, 3 deletions
| diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SecurityTokenOperationActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SecurityTokenOperationActivity.java index 4d07025e6..4e7c06b69 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SecurityTokenOperationActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SecurityTokenOperationActivity.java @@ -200,10 +200,16 @@ public class SecurityTokenOperationActivity extends BaseSecurityTokenActivity {                  break;              }              case SECURITY_TOKEN_SIGN: { -                long tokenKeyId = KeyFormattingUtils.getKeyIdFromFingerprint( +                long tokenSignKeyId = KeyFormattingUtils.getKeyIdFromFingerprint(                          mSecurityTokenHelper.getKeyFingerprint(KeyType.SIGN)); -                if (tokenKeyId != mRequiredInput.getSubKeyId()) { +                long tokenAuthKeyId = KeyFormattingUtils.getKeyIdFromFingerprint( +                        mSecurityTokenHelper.getKeyFingerprint(KeyType.AUTH)); + +                long requiredKey = mRequiredInput.getSubKeyId(); + + +                if ((tokenSignKeyId != requiredKey) && (tokenAuthKeyId != requiredKey)) {                      throw new IOException(getString(R.string.error_wrong_security_token));                  } @@ -212,7 +218,7 @@ public class SecurityTokenOperationActivity extends BaseSecurityTokenActivity {                  for (int i = 0; i < mRequiredInput.mInputData.length; i++) {                      byte[] hash = mRequiredInput.mInputData[i];                      int algo = mRequiredInput.mSignAlgos[i]; -                    byte[] signedHash = mSecurityTokenHelper.calculateSignature(hash, algo); +                    byte[] signedHash = mSecurityTokenHelper.calculateSignature(hash, algo, requiredKey == tokenAuthKeyId);                      mInputParcel.addCryptoData(hash, signedHash);                  }                  break; | 
