Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a6d324a3 authored by Eric Biggers's avatar Eric Biggers Committed by Automerger Merge Worker
Browse files

Merge "Test that the password isn't truncated (again)" into main am:...

Merge "Test that the password isn't truncated (again)" into main am: 15d95e8d am: d699154b am: 2dc46dc7 am: 361f7be3

Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2696111



Change-Id: I35bb68437233e0aa2ae6912013fa3c38a73ecce1
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 98b23ff9 361f7be3
Loading
Loading
Loading
Loading
+41 −0
Original line number Diff line number Diff line
@@ -220,6 +220,47 @@ TEST_P(GatekeeperAidlTest, VerifySuccess) {
    ALOGI("Testing Enroll+Verify done");
}

/**
 * Ensure that passwords containing a NUL byte aren't truncated
 */
TEST_P(GatekeeperAidlTest, PasswordIsBinaryData) {
    GatekeeperEnrollResponse enrollRsp;
    GatekeeperVerifyResponse verifyRsp;
    std::vector<uint8_t> rightPassword = {'A', 'B', 'C', '\0', 'D', 'E', 'F'};
    std::vector<uint8_t> wrongPassword = {'A', 'B', 'C', '\0', '\0', '\0', '\0'};

    ALOGI("Testing Enroll+Verify of password with embedded NUL (expected success)");
    enrollNewPassword(rightPassword, enrollRsp, true);
    verifyPassword(rightPassword, enrollRsp.data, 1, verifyRsp, true);

    ALOGI("Testing Verify of wrong password (expected failure)");
    verifyPassword(wrongPassword, enrollRsp.data, 1, verifyRsp, false);

    ALOGI("PasswordIsBinaryData test done");
}

/**
 * Ensure that long passwords aren't truncated
 */
TEST_P(GatekeeperAidlTest, LongPassword) {
    GatekeeperEnrollResponse enrollRsp;
    GatekeeperVerifyResponse verifyRsp;
    std::vector<uint8_t> password;

    password.resize(64);  // maximum length used by Android
    memset(password.data(), 'A', password.size());

    ALOGI("Testing Enroll+Verify of long password (expected success)");
    enrollNewPassword(password, enrollRsp, true);
    verifyPassword(password, enrollRsp.data, 1, verifyRsp, true);

    ALOGI("Testing Verify of wrong password (expected failure)");
    password[password.size() - 1] ^= 1;
    verifyPassword(password, enrollRsp.data, 1, verifyRsp, false);

    ALOGI("LongPassword test done");
}

/**
 * Ensure we can securely update password (keep the same
 * secure user_id) if we prove we know old password