From 4f54596658b6bf3096d914f375997e3edde65a82 Mon Sep 17 00:00:00 2001 From: Mikaela Szekely Date: Sat, 3 Mar 2018 18:45:47 -0500 Subject: [PATCH] Implement #940 (#1043) Thanks @Qyriad ^^ --- source/pin.c | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/source/pin.c b/source/pin.c index 77c47f4..d25d6b3 100644 --- a/source/pin.c +++ b/source/pin.c @@ -146,21 +146,32 @@ bool verifyPin(u32 pinMode) initScreens(); + swapFramebuffers(true); + drawString(true, 10, 10, COLOR_TITLE, "Enter the PIN using ABXY and the DPad to proceed"); drawString(true, 10, 10 + SPACING_Y, COLOR_TITLE, "Press START to shutdown, SELECT to clear"); drawFormattedString(true, 10, 10 + 3 * SPACING_Y, COLOR_WHITE, "PIN (%u digits): ", lengthBlock[0]); - static const char *messageFile = "pinmessage.txt"; - char message[801]; - - u32 messageSize = fileRead(message, messageFile, sizeof(message) - 1); - - if(messageSize != 0) + bool isBottomSplashValid = getFileSize("splashpin.bin") == SCREEN_BOTTOM_FBSIZE; + if(isBottomSplashValid) { - message[messageSize] = 0; - drawString(false, 10, 10, COLOR_WHITE, message); + isBottomSplashValid = fileRead(fbs[0].bottom, "splashpin.bin", SCREEN_BOTTOM_FBSIZE) == SCREEN_BOTTOM_FBSIZE; } + else + { + static const char *messageFile = "pinmessage.txt"; + char message[801]; + + u32 messageSize = fileRead(message, messageFile, sizeof(message) - 1); + + if(messageSize != 0) + { + message[messageSize] = 0; + drawString(false, 10, 10, COLOR_WHITE, message); + } + } + swapFramebuffers(false); //Pad to AES block length with zeroes __attribute__((aligned(4))) u8 enteredPassword[AES_BLOCK_SIZE] = {0};