libgpuverify

Signature verification on GPUs (WiP)
Log | Files | Refs | README | LICENSE

commit 8d6bc1cc3d1ee8cef3e277cb2fddb4d775d808b3
parent e248ddcadfda73d16c6a8b4a155ecf4a6c4b0fb3
Author: Cedric <cedric.zwahlen@students.bfh.ch>
Date:   Mon,  1 Jan 2024 16:17:02 +0100

Improvements

Diffstat:
Msource/lib-gpu-verify.c | 2+-
Msource/reference-test.c | 102+++++++++++++++++++++++++++++++++++++++++++------------------------------------
Msource/rsa-test.c | 2--
Mxcode/.DS_Store | 0
Mxcode/lib-gpu-verify.xcodeproj/project.xcworkspace/xcuserdata/cedriczwahlen.xcuserdatad/UserInterfaceState.xcuserstate | 0
Mxcode/lib-gpu-verify.xcodeproj/xcuserdata/cedriczwahlen.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist | 80++++++++++++++++++++++++++++++++++++++++----------------------------------------
6 files changed, 96 insertions(+), 90 deletions(-)

diff --git a/source/lib-gpu-verify.c b/source/lib-gpu-verify.c @@ -24,7 +24,7 @@ int main(int argc, char** argv) rsa_tests(); -// reference_tests(); + reference_tests(); diff --git a/source/reference-test.c b/source/reference-test.c @@ -15,43 +15,62 @@ void ref_pairs_from_files(char *bases, unsigned long *b_off, unsigned long *pks, unsigned long *n) { - FILE *pkfile; - FILE *msfile; + FILE *pk; + FILE *ms; - pkfile = fopen("lib-gpu-generate/publickey.txt", "r"); - msfile = fopen("lib-gpu-generate/msgsig.txt", "r"); + pk = fopen("lib-gpu-generate/publickey.txt", "r"); + ms = fopen("lib-gpu-generate/msgsig.txt", "r"); - if (pkfile == NULL || msfile == NULL) { + if (pk == NULL || ms == NULL) { printf("Auxiliary files not found."); abort(); } - - int i = 0; + fseek (ms, 0, SEEK_END); + long ms_l = ftell(ms); + fseek (ms, 0, SEEK_SET); + char *ms_ptr = malloc(ms_l); + char *ms_ptr_rest = malloc(ms_l); + if (ms_ptr || ms_ptr_rest) + { + fread (ms_ptr, 1, ms_l, ms); + memcpy(ms_ptr_rest, ms_ptr, ms_l); + } + fclose (ms); + + fseek (pk, 0, SEEK_END); + long pk_l = ftell(pk); + fseek (pk, 0, SEEK_SET); + char *pk_ptr = malloc(pk_l); + char *pk_ptr_rest = malloc(pk_l); + if (pk_ptr && pk_ptr_rest) + { + fread (pk_ptr, 1, pk_l, pk); + memcpy(pk_ptr_rest, pk_ptr, pk_l); + } + fclose (pk); + + char* message = strtok_r(ms_ptr, "\n", &ms_ptr_rest); + char* signature = strtok_r(0, "\n", &ms_ptr_rest); + char* modulus = strtok_r(pk_ptr, "\n", &pk_ptr_rest); + char* exponent = strtok_r(0, "\n", &pk_ptr_rest); + char* offs = strtok_r(0, "\n", &pk_ptr_rest); unsigned long b_offset = 0; unsigned long e_offset = 0; unsigned long m_offset = 0; unsigned long s_offset = 0; - while (1) { - - char n_buf[2048]; // need to be 0 - char e_buf[2048]; - - memset(n_buf, 0, 2048); - memset(e_buf, 0, 2048); - - unsigned long lastIndex = 0; - - if (fscanf(pkfile, "%s %s %lu", n_buf,e_buf, &lastIndex) == -1) - break; + int i = 0; + int j = 0; + + while (modulus != NULL && exponent != NULL && offs != NULL) { - unsigned long n_buf_len = strlen(n_buf); - unsigned long e_buf_len = strlen(e_buf); + unsigned long n_buf_len = strlen(modulus); + unsigned long e_buf_len = strlen(exponent); - memcpy(&moduli[m_offset], n_buf, n_buf_len); - memcpy(&exponents[e_offset], e_buf, e_buf_len); + memcpy(&moduli[m_offset], modulus, n_buf_len); + memcpy(&exponents[e_offset], exponent, e_buf_len); m_off[i] = m_offset; e_off[i] = e_offset; @@ -59,31 +78,22 @@ void ref_pairs_from_files(char *bases, unsigned long *b_off, m_offset += n_buf_len + 1; e_offset += e_buf_len + 1; - pks[i] = lastIndex; + pks[i] = atoi(offs); - i++; + modulus = strtok_r(0, "\n", &pk_ptr_rest); + exponent = strtok_r(0, "\n", &pk_ptr_rest); + offs = strtok_r(0, "\n", &pk_ptr_rest); - // break; // testing with just one + i++; } - int j = 0; - - while (1) { - - char m_buf[2048]; // temp storage, large enough - char s_buf[2048]; + while (message != NULL && signature != NULL) { - memset(m_buf, 0, 2048); - memset(s_buf, 0, 2048); + unsigned long m_buf_len = strlen(message); + unsigned long s_buf_len = strlen(signature); - if (fscanf(msfile, "%s %s", m_buf,s_buf) == -1) - break; - - unsigned long m_buf_len = strlen(m_buf); - unsigned long s_buf_len = strlen(s_buf); - - memcpy(&bases[b_offset], m_buf, m_buf_len); - memcpy(&signatures[s_offset], s_buf, s_buf_len); + memcpy(&bases[b_offset], message, m_buf_len); + memcpy(&signatures[s_offset], signature, s_buf_len); b_off[j] = b_offset; s_off[j] = s_offset; @@ -91,15 +101,13 @@ void ref_pairs_from_files(char *bases, unsigned long *b_off, b_offset += m_buf_len + 1; s_offset += s_buf_len + 1; - j++; + message = strtok_r(0, "\n",&ms_ptr_rest); + signature = strtok_r(0, "\n",&ms_ptr_rest); - // break; // testing with just one + j++; } - fclose(pkfile); - fclose(msfile); - *n = j; } diff --git a/source/rsa-test.c b/source/rsa-test.c @@ -250,8 +250,6 @@ void opencl_pairs_from_files(void *bases, unsigned long *b_len, while (message != NULL && signature != NULL) { - - unsigned long m_buf_len = strlen(message); unsigned long s_buf_len = strlen(signature); diff --git a/xcode/.DS_Store b/xcode/.DS_Store Binary files differ. diff --git a/xcode/lib-gpu-verify.xcodeproj/project.xcworkspace/xcuserdata/cedriczwahlen.xcuserdatad/UserInterfaceState.xcuserstate b/xcode/lib-gpu-verify.xcodeproj/project.xcworkspace/xcuserdata/cedriczwahlen.xcuserdatad/UserInterfaceState.xcuserstate Binary files differ. diff --git a/xcode/lib-gpu-verify.xcodeproj/xcuserdata/cedriczwahlen.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/xcode/lib-gpu-verify.xcodeproj/xcuserdata/cedriczwahlen.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -1199,8 +1199,8 @@ filePath = "../source/rsa-test.c" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "609" - endingLineNumber = "609" + startingLineNumber = "607" + endingLineNumber = "607" landmarkName = "rsa_tests()" landmarkType = "9"> <Locations> @@ -1427,8 +1427,8 @@ filePath = "../source/rsa-test.c" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "633" - endingLineNumber = "633" + startingLineNumber = "631" + endingLineNumber = "631" landmarkName = "rsa_tests()" landmarkType = "9"> <Locations> @@ -1520,8 +1520,8 @@ filePath = "../source/rsa-test.c" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "635" - endingLineNumber = "635" + startingLineNumber = "633" + endingLineNumber = "633" landmarkName = "rsa_tests()" landmarkType = "9"> </BreakpointContent> @@ -2518,8 +2518,8 @@ filePath = "../source/rsa-test.c" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "640" - endingLineNumber = "640" + startingLineNumber = "638" + endingLineNumber = "638" landmarkName = "rsa_tests()" landmarkType = "9"> <Locations> @@ -2626,8 +2626,8 @@ filePath = "../source/rsa-test.c" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "572" - endingLineNumber = "572" + startingLineNumber = "570" + endingLineNumber = "570" landmarkName = "rsa_tests()" landmarkType = "9"> <Locations> @@ -2721,8 +2721,8 @@ filePath = "../source/rsa-test.c" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "638" - endingLineNumber = "638" + startingLineNumber = "636" + endingLineNumber = "636" landmarkName = "rsa_tests()" landmarkType = "9"> <Locations> @@ -2784,8 +2784,8 @@ filePath = "../source/rsa-test.c" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "606" - endingLineNumber = "606" + startingLineNumber = "604" + endingLineNumber = "604" landmarkName = "rsa_tests()" landmarkType = "9"> <Locations> @@ -2847,8 +2847,8 @@ filePath = "../source/rsa-test.c" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "598" - endingLineNumber = "598" + startingLineNumber = "596" + endingLineNumber = "596" landmarkName = "rsa_tests()" landmarkType = "9"> </BreakpointContent> @@ -2863,8 +2863,8 @@ filePath = "../source/rsa-test.c" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "631" - endingLineNumber = "631" + startingLineNumber = "629" + endingLineNumber = "629" landmarkName = "rsa_tests()" landmarkType = "9"> <Locations> @@ -2911,8 +2911,8 @@ filePath = "../source/rsa-test.c" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "585" - endingLineNumber = "585" + startingLineNumber = "583" + endingLineNumber = "583" landmarkName = "rsa_tests()" landmarkType = "9"> </BreakpointContent> @@ -2927,8 +2927,8 @@ filePath = "../source/rsa-test.c" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "626" - endingLineNumber = "626" + startingLineNumber = "624" + endingLineNumber = "624" landmarkName = "rsa_tests()" landmarkType = "9"> </BreakpointContent> @@ -2943,8 +2943,8 @@ filePath = "../source/rsa-test.c" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "376" - endingLineNumber = "376" + startingLineNumber = "374" + endingLineNumber = "374" landmarkName = "opencl_prepare(info, state, bases, b_len, exponents, e_len, moduli, m_len, signatures, s_len, pks, n)" landmarkType = "9"> </BreakpointContent> @@ -2959,8 +2959,8 @@ filePath = "../source/rsa-test.c" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "322" - endingLineNumber = "322" + startingLineNumber = "320" + endingLineNumber = "320" landmarkName = "opencl_prepare(info, state, bases, b_len, exponents, e_len, moduli, m_len, signatures, s_len, pks, n)" landmarkType = "9"> </BreakpointContent> @@ -2975,8 +2975,8 @@ filePath = "../source/rsa-test.c" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "305" - endingLineNumber = "305" + startingLineNumber = "303" + endingLineNumber = "303" landmarkName = "opencl_prepare(info, state, bases, b_len, exponents, e_len, moduli, m_len, signatures, s_len, pks, n)" landmarkType = "9"> </BreakpointContent> @@ -2991,8 +2991,8 @@ filePath = "../source/rsa-test.c" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "298" - endingLineNumber = "298" + startingLineNumber = "296" + endingLineNumber = "296" landmarkName = "opencl_prepare(info, state, bases, b_len, exponents, e_len, moduli, m_len, signatures, s_len, pks, n)" landmarkType = "9"> </BreakpointContent> @@ -3007,8 +3007,8 @@ filePath = "../source/rsa-test.c" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "620" - endingLineNumber = "620" + startingLineNumber = "618" + endingLineNumber = "618" landmarkName = "rsa_tests()" landmarkType = "9"> </BreakpointContent> @@ -3023,8 +3023,8 @@ filePath = "../source/rsa-test.c" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "533" - endingLineNumber = "533" + startingLineNumber = "531" + endingLineNumber = "531" landmarkName = "gpu_execute(info, state, bases, b_len, exponents, e_len, moduli, m_len, signatures, s_len, pks, n)" landmarkType = "9"> </BreakpointContent> @@ -3039,8 +3039,8 @@ filePath = "../source/rsa-test.c" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "451" - endingLineNumber = "451" + startingLineNumber = "449" + endingLineNumber = "449" landmarkName = "opencl_results(info, state, timed)" landmarkType = "9"> <Locations> @@ -3147,8 +3147,8 @@ filePath = "../source/rsa-test.c" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "392" - endingLineNumber = "392" + startingLineNumber = "390" + endingLineNumber = "390" landmarkName = "opencl_exec_kernel(info, state)" landmarkType = "9"> </BreakpointContent> @@ -3887,8 +3887,8 @@ filePath = "../source/rsa-test.c" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "273" - endingLineNumber = "273" + startingLineNumber = "271" + endingLineNumber = "271" landmarkName = "opencl_pairs_from_files(bases, b_len, exponents, e_len, moduli, m_len, signatures, s_len, pks, n)" landmarkType = "9"> </BreakpointContent>