mirror of
https://github.com/github/codeql.git
synced 2026-04-29 02:35:15 +02:00
Add unit tests
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
testFailures
|
||||
failures
|
||||
@@ -0,0 +1,19 @@
|
||||
import java
|
||||
import TestUtilities.InlineExpectationsTest
|
||||
import semmle.code.java.dataflow.DataFlow
|
||||
import semmle.code.java.security.AndroidLocalAuthQuery
|
||||
|
||||
module InsecureKeysTest implements TestSig {
|
||||
string getARelevantTag() { result = "insecure-key" }
|
||||
|
||||
predicate hasActualResult(Location location, string element, string tag, string value) {
|
||||
tag = "insecure-key" and
|
||||
exists(InsecureBiometricKeyParamCall call | usesLocalAuth() |
|
||||
call.getLocation() = location and
|
||||
element = call.toString() and
|
||||
value = ""
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
import MakeTest<InsecureKeysTest>
|
||||
@@ -0,0 +1,21 @@
|
||||
import android.security.keystore.KeyGenParameterSpec;
|
||||
import android.hardware.biometrics.BiometricPrompt;
|
||||
import android.security.keystore.KeyProperties;
|
||||
|
||||
class Test {
|
||||
void test() {
|
||||
KeyGenParameterSpec.Builder builder = new KeyGenParameterSpec.Builder("MySecretKey", KeyProperties.PURPOSE_ENCRYPT | KeyProperties.PURPOSE_DECRYPT);
|
||||
builder.setUserAuthenticationRequired(false); // $insecure-key
|
||||
builder.setInvalidatedByBiometricEnrollment(false); // $insecure-key
|
||||
builder.setUserAuthenticationValidityDurationSeconds(30); // $insecure-key
|
||||
}
|
||||
}
|
||||
|
||||
class Callback extends BiometricPrompt.AuthenticationCallback {
|
||||
public static void useKey(BiometricPrompt.CryptoObject key) {}
|
||||
|
||||
@Override
|
||||
public void onAuthenticationSucceeded(BiometricPrompt.AuthenticationResult result) {
|
||||
useKey(result.getCryptoObject());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
//semmle-extractor-options: --javac-args -cp ${testdir}/../../../../../stubs/google-android-9.0.0
|
||||
@@ -0,0 +1,2 @@
|
||||
testFailures
|
||||
failures
|
||||
@@ -0,0 +1,19 @@
|
||||
import java
|
||||
import TestUtilities.InlineExpectationsTest
|
||||
import semmle.code.java.dataflow.DataFlow
|
||||
import semmle.code.java.security.AndroidLocalAuthQuery
|
||||
|
||||
module InsecureKeysTest implements TestSig {
|
||||
string getARelevantTag() { result = "insecure-key" }
|
||||
|
||||
predicate hasActualResult(Location location, string element, string tag, string value) {
|
||||
tag = "insecure-key" and
|
||||
exists(InsecureBiometricKeyParamCall call | usesLocalAuth() |
|
||||
call.getLocation() = location and
|
||||
element = call.toString() and
|
||||
value = ""
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
import MakeTest<InsecureKeysTest>
|
||||
@@ -0,0 +1,13 @@
|
||||
import android.security.keystore.KeyGenParameterSpec;
|
||||
import android.hardware.biometrics.BiometricPrompt;
|
||||
import android.security.keystore.KeyProperties;
|
||||
|
||||
class Test {
|
||||
void test() {
|
||||
KeyGenParameterSpec.Builder builder = new KeyGenParameterSpec.Builder("MySecretKey", KeyProperties.PURPOSE_ENCRYPT | KeyProperties.PURPOSE_DECRYPT);
|
||||
// No alert as there is no use of biometric authentication in this application.
|
||||
builder.setUserAuthenticationRequired(false);
|
||||
builder.setInvalidatedByBiometricEnrollment(false);
|
||||
builder.setUserAuthenticationValidityDurationSeconds(30);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
//semmle-extractor-options: --javac-args -cp ${testdir}/../../../../../stubs/google-android-9.0.0
|
||||
Reference in New Issue
Block a user