src/net/sf/andhsli/hotspotlogin/SimpleCrypto.java:39
private static byte[] getRawKey(byte[] seed) throws Exception { ... }
Vad jag förstår har Android 4.2 ändrat Crypto provider till OpenSSL som default.
Patch borde vara att ändra rad 41 (dvs) ->
Kod:
SecureRandom sr = SecureRandom.getInstance("SHA1PRNG");
till
Kod:
SecureRandom sr = SecureRandom.getInstance("SHA1PRNG", "Crypto");
för att få tillbaka det gamla beteendet.
Vet ej om det pajar för äldre versioner av Android dock, kanske bäst att lägga det i en version koll.
Kod:
if (android.os.Build.VERSION >= 17) {
SecureRandom sr = SecureRandom.getInstance("SHA1PRNG", "Crypto");
}else{
SecureRandom sr = SecureRandom.getInstance("SHA1PRNG");
}
Uppdatering:
Det här gäller problemen som uppstår med Android 4.2. När lösenordet ska dekrypteras från
databasen så misslyckas det i javax.Crypto med "Bad padding block" eller något liknande. När detta sker så fångas exception av en try-catch och bank.disable() exekveras.
Detta uppstår som sagt på grund av att de bytt crypto provider till OpenSSL.
Click to expand...