Skip to content

Commit 99932cc

Browse files
committed
trying to fix password for Symmetric key for AndroidKeyStore
1 parent cf02801 commit 99932cc

File tree

1 file changed

+7
-4
lines changed
  • library/src/main/java/com/yakivmospan/scytale

1 file changed

+7
-4
lines changed

library/src/main/java/com/yakivmospan/scytale/Store.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import android.security.keystore.KeyGenParameterSpec;
88
import android.security.keystore.KeyProperties;
99
import android.support.annotation.NonNull;
10+
import android.text.TextUtils;
1011

1112
import java.io.File;
1213
import java.io.FileInputStream;
@@ -187,7 +188,7 @@ public SecretKey getSymmetricKey(@NonNull String alias, char[] password) {
187188
if (Utils.lowerThenMarshmallow()) {
188189
result = getSymmetricKeyFromDefaultKeyStore(alias, password);
189190
} else {
190-
result = getSymmetricKeyFromAndroidtKeyStore(alias);
191+
result = getSymmetricKeyFromAndroidKeyStore(alias, password);
191192
}
192193
return result;
193194
}
@@ -272,8 +273,8 @@ private KeyPair generateDefaultAsymmetricKey(KeyProps keyProps) {
272273
try {
273274
KeyPair keyPair = createAsymmetricKey(keyProps);
274275
PrivateKey key = keyPair.getPrivate();
275-
X509Certificate certificate = keyToCertificateReflection(keyPair, keyProps);
276276
KeyStore keyStore = createDefaultKeyStore();
277+
X509Certificate certificate = keyToCertificateReflection(keyPair, keyProps);
277278

278279
keyStore.setKeyEntry(keyProps.mAlias, key, keyProps.mPassword, new Certificate[]{certificate});
279280
keyStore.store(new FileOutputStream(mKeystoreFile), mKeystorePassword);
@@ -428,6 +429,8 @@ private KeyPairGeneratorSpec keyPropsToKeyPairGeneratorSpec(KeyProps keyProps) t
428429
.setStartDate(keyProps.mStartDate)
429430
.setEndDate(keyProps.mEndDate);
430431

432+
if (!TextUtils.isEmpty(new String(keyProps.mPassword)))
433+
builder.setEncryptionRequired();
431434
if (Utils.biggerThenJellyBean()) {
432435
builder.setKeySize(keyProps.mKeySize);
433436
}
@@ -508,11 +511,11 @@ private SecretKey getSymmetricKeyFromDefaultKeyStore(@NonNull String alias, char
508511
return result;
509512
}
510513

511-
private SecretKey getSymmetricKeyFromAndroidtKeyStore(@NonNull String alias) {
514+
private SecretKey getSymmetricKeyFromAndroidKeyStore(@NonNull String alias, char[] password) {
512515
SecretKey result = null;
513516
try {
514517
KeyStore keyStore = createAndroidKeystore();
515-
result = (SecretKey) keyStore.getKey(alias, null);
518+
result = (SecretKey) keyStore.getKey(alias, password);
516519
} catch (KeyStoreException | CertificateException | IOException | NoSuchAlgorithmException | UnrecoverableEntryException e) {
517520
onException(e);
518521
}

0 commit comments

Comments
 (0)