use byte[] for expected fingerprint
This commit is contained in:
@@ -69,7 +69,7 @@ public class CreateSecurityTokenImportResetFragment
|
||||
private byte[] mTokenAid;
|
||||
private double mTokenVersion;
|
||||
private String mTokenUserId;
|
||||
private String mTokenFingerprint;
|
||||
private byte[] mTokenFingerprint;
|
||||
private TextView vSerNo;
|
||||
private TextView vUserId;
|
||||
private TextView mNextButton;
|
||||
@@ -107,7 +107,7 @@ public class CreateSecurityTokenImportResetFragment
|
||||
|
||||
byte[] fp = new byte[20];
|
||||
ByteBuffer.wrap(fp).put(mTokenFingerprints, 0, 20);
|
||||
mTokenFingerprint = KeyFormattingUtils.convertFingerprintToHex(fp);
|
||||
mTokenFingerprint = fp;
|
||||
|
||||
}
|
||||
|
||||
@@ -261,7 +261,7 @@ public class CreateSecurityTokenImportResetFragment
|
||||
|
||||
byte[] fp = new byte[20];
|
||||
ByteBuffer.wrap(fp).put(mTokenFingerprints, 0, 20);
|
||||
mTokenFingerprint = KeyFormattingUtils.convertFingerprintToHex(fp);
|
||||
mTokenFingerprint = fp;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -40,6 +40,7 @@ import org.sufficientlysecure.keychain.operations.results.OperationResult.LogTyp
|
||||
import org.sufficientlysecure.keychain.operations.results.SingletonResult;
|
||||
import org.sufficientlysecure.keychain.service.ImportKeyringParcel;
|
||||
import org.sufficientlysecure.keychain.ui.base.CryptoOperationHelper;
|
||||
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
|
||||
import org.sufficientlysecure.keychain.util.IntentIntegratorSupportV4;
|
||||
import org.sufficientlysecure.keychain.util.Log;
|
||||
import org.sufficientlysecure.keychain.keyimport.ParcelableHkpKeyserver;
|
||||
@@ -152,8 +153,8 @@ public class ImportKeysProxyActivity extends FragmentActivity
|
||||
returnResult(intent);
|
||||
return;
|
||||
}
|
||||
final String fingerprint = uri.getEncodedSchemeSpecificPart().toLowerCase(Locale.ENGLISH);
|
||||
if (!fingerprint.matches("[a-fA-F0-9]{40}")) {
|
||||
final String fingerprintHex = uri.getEncodedSchemeSpecificPart().toLowerCase(Locale.ENGLISH);
|
||||
if (!fingerprintHex.matches("[a-fA-F0-9]{40}")) {
|
||||
SingletonResult result = new SingletonResult(
|
||||
SingletonResult.RESULT_ERROR, LogType.MSG_WRONG_QR_CODE_FP);
|
||||
Intent intent = new Intent();
|
||||
@@ -161,6 +162,7 @@ public class ImportKeysProxyActivity extends FragmentActivity
|
||||
returnResult(intent);
|
||||
return;
|
||||
}
|
||||
byte[] fingerprint = KeyFormattingUtils.convertFingerprintHexFingerprint(fingerprintHex);
|
||||
|
||||
if (ACTION_SCAN_WITH_RESULT.equals(action)) {
|
||||
Intent result = new Intent();
|
||||
@@ -168,7 +170,7 @@ public class ImportKeysProxyActivity extends FragmentActivity
|
||||
setResult(RESULT_OK, result);
|
||||
finish();
|
||||
} else {
|
||||
importKeys(fingerprint);
|
||||
importKeysFromFingerprint(fingerprint);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -196,7 +198,7 @@ public class ImportKeysProxyActivity extends FragmentActivity
|
||||
startImportService(selectedEntries);
|
||||
}
|
||||
|
||||
public void importKeys(String fingerprint) {
|
||||
public void importKeysFromFingerprint(byte[] fingerprint) {
|
||||
ParcelableKeyRing keyEntry = new ParcelableKeyRing(fingerprint, null, null, null);
|
||||
ArrayList<ParcelableKeyRing> selectedEntries = new ArrayList<>();
|
||||
selectedEntries.add(keyEntry);
|
||||
|
||||
@@ -502,8 +502,7 @@ public class KeyListFragment extends RecyclerFragment<KeySectionedListAdapter>
|
||||
ArrayList<ParcelableKeyRing> keyList = new ArrayList<>();
|
||||
try {
|
||||
while (cursor.moveToNext()) {
|
||||
byte[] blob = cursor.getBlob(0); //fingerprint column is 0
|
||||
String fingerprint = KeyFormattingUtils.convertFingerprintToHex(blob);
|
||||
byte[] fingerprint = cursor.getBlob(0); //fingerprint column is 0
|
||||
ParcelableKeyRing keyEntry = new ParcelableKeyRing(fingerprint, null, null, null);
|
||||
keyList.add(keyEntry);
|
||||
}
|
||||
|
||||
@@ -1148,9 +1148,8 @@ public class ViewKeyActivity extends BaseSecurityTokenActivity implements
|
||||
mRefresh.startAnimation(mRotate);
|
||||
|
||||
byte[] blob = keyRepository.getCachedPublicKeyRing(dataUri).getFingerprint();
|
||||
String fingerprint = KeyFormattingUtils.convertFingerprintToHex(blob);
|
||||
|
||||
ParcelableKeyRing keyEntry = new ParcelableKeyRing(fingerprint, null, null, null);
|
||||
ParcelableKeyRing keyEntry = new ParcelableKeyRing(blob, null, null, null);
|
||||
ArrayList<ParcelableKeyRing> entries = new ArrayList<>();
|
||||
entries.add(keyEntry);
|
||||
mKeyList = entries;
|
||||
|
||||
@@ -330,6 +330,13 @@ public class KeyFormattingUtils {
|
||||
return hexString;
|
||||
}
|
||||
|
||||
public static byte[] convertFingerprintHexFingerprint(String fingerprintHex) {
|
||||
if (fingerprintHex.length() != 40) {
|
||||
throw new IllegalArgumentException("fingerprint must be 40 chars long!");
|
||||
}
|
||||
return Hex.decode(fingerprintHex);
|
||||
}
|
||||
|
||||
public static long convertKeyIdHexToKeyId(String hex) {
|
||||
return new BigInteger(hex.substring(2), 16).longValue();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user