add stub AndroidKeyStore security provider

This commit is contained in:
Julian Winkler 2025-03-25 19:04:58 +01:00
parent 820b9d7ec5
commit e72c579fd4
3 changed files with 127 additions and 0 deletions

View file

@ -60,6 +60,8 @@ import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.security.Provider;
import java.security.Security;
import java.util.HashMap;
import java.util.Map;
@ -126,6 +128,10 @@ public class Context extends Object {
application_info.sourceDir = native_get_apk_path();
package_manager = new PackageManager();
Provider provider = new Provider("AndroidKeyStore", 1.0, "Android KeyStore provider") {};
provider.put("KeyStore.AndroidKeyStore", "android.security.keystore.AndroidKeyStore");
Security.addProvider(provider);
r.applyPackageQuirks(application_info.packageName);
}

View file

@ -0,0 +1,120 @@
package android.security.keystore;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.security.Key;
import java.security.KeyStoreException;
import java.security.KeyStoreSpi;
import java.security.NoSuchAlgorithmException;
import java.security.UnrecoverableKeyException;
import java.security.cert.Certificate;
import java.security.cert.CertificateException;
import java.util.Date;
import java.util.Enumeration;
import java.util.HashMap;
public class AndroidKeyStore extends KeyStoreSpi {
HashMap<String, String> map = new HashMap<>();
@Override
public Key engineGetKey(String alias, char[] password) throws NoSuchAlgorithmException, UnrecoverableKeyException {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'engineGetKey'");
}
@Override
public Certificate[] engineGetCertificateChain(String alias) {
// TODO Auto-generated method stub
System.out.println("engineGetCertificateChain(" + alias + ") called");
return new Certificate[0];
}
@Override
public Certificate engineGetCertificate(String alias) {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'engineGetCertificate'");
}
@Override
public Date engineGetCreationDate(String alias) {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'engineGetCreationDate'");
}
@Override
public void engineSetKeyEntry(String alias, Key key, char[] password, Certificate[] chain)
throws KeyStoreException {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'engineSetKeyEntry'");
}
@Override
public void engineSetKeyEntry(String alias, byte[] key, Certificate[] chain) throws KeyStoreException {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'engineSetKeyEntry'");
}
@Override
public void engineSetCertificateEntry(String alias, Certificate cert) throws KeyStoreException {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'engineSetCertificateEntry'");
}
@Override
public void engineDeleteEntry(String alias) throws KeyStoreException {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'engineDeleteEntry'");
}
@Override
public Enumeration<String> engineAliases() {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'engineAliases'");
}
@Override
public boolean engineContainsAlias(String alias) {
// TODO Auto-generated method stub
System.out.println("engineContainsAlias(" + alias + ") called");
return map.containsKey(alias);
}
@Override
public int engineSize() {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'engineSize'");
}
@Override
public boolean engineIsKeyEntry(String alias) {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'engineIsKeyEntry'");
}
@Override
public boolean engineIsCertificateEntry(String alias) {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'engineIsCertificateEntry'");
}
@Override
public String engineGetCertificateAlias(Certificate cert) {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'engineGetCertificateAlias'");
}
@Override
public void engineStore(OutputStream stream, char[] password)
throws IOException, NoSuchAlgorithmException, CertificateException {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'engineStore'");
}
@Override
public void engineLoad(InputStream stream, char[] password)
throws IOException, NoSuchAlgorithmException, CertificateException {
}
}

View file

@ -354,6 +354,7 @@ srcs = [
'android/provider/CalendarContract.java',
'android/provider/ContactsContract.java',
'android/provider/Settings.java',
'android/security/keystore/AndroidKeyStore.java',
'android/service/media/MediaBrowserService.java',
'android/telecom/ConnectionService.java',
'android/telecom/TelecomManager.java',