From 058fd9f52818ebfc3b90cc85bb356482b47b5f3c Mon Sep 17 00:00:00 2001 From: d0k3 Date: Sun, 5 Feb 2017 16:15:38 +0100 Subject: [PATCH] Fix IV calculation for uppercase SD paths --- source/fs/sddata.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/source/fs/sddata.c b/source/fs/sddata.c index 3124570..0b41bcd 100644 --- a/source/fs/sddata.c +++ b/source/fs/sddata.c @@ -63,11 +63,13 @@ FRESULT fx_open (FIL* fp, const TCHAR* path, BYTE mode) { u8 hashstr[256]; u8 sha256sum[32]; u32 plen = 0; - // poor man's UTF-8 -> UTF-16 + // poor man's UTF-8 -> UTF-16 / uppercase -> lowercase for (plen = 0; plen < 128; plen++) { - hashstr[2*plen] = path[2 + plen]; + u8 symbol = path[2 + plen]; + if ((symbol >= 'A') && (symbol <= 'Z')) symbol += ('a' - 'A'); + hashstr[2*plen] = symbol; hashstr[2*plen+1] = 0; - if (path[2 + plen] == 0) break; + if (symbol == 0) break; } sha_quick(sha256sum, hashstr, (plen + 1) * 2, SHA256_MODE); for (u32 i = 0; i < 16; i++)