From 8e077b0835c802443bb2e245d952d52a5b3e9d75 Mon Sep 17 00:00:00 2001 From: Michael Preisach Date: Sat, 26 Sep 2020 06:29:18 +0000 Subject: [PATCH] add missing last commit from old project --- CMakeLists.txt | 4 +-- daa-test.c | 87 ++++++++++++++++++++++++++++++------------------- daa-test.h | 3 ++ ecdaa_issuer | Bin 22768 -> 22768 bytes ecdaa_member | Bin 27696 -> 27696 bytes ecdaa_test | Bin 0 -> 27312 bytes ecdaa_verifier | Bin 22560 -> 22560 bytes member.c | 16 +++++---- 8 files changed, 68 insertions(+), 42 deletions(-) create mode 100755 ecdaa_test diff --git a/CMakeLists.txt b/CMakeLists.txt index 944d987..604297d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,5 +34,5 @@ add_executable(ecdaa_test daa-test.c common.h common.c client.h client.c server. target_include_directories(ecdaa_test PUBLIC ${ECDAA_AMCL} ) -target_link_libraries(ecdaa_member /usr/lib/x86_64-linux-gnu/libecdaa.so) -target_link_libraries(ecdaa_member /usr/lib/x86_64-linux-gnu/libecdaa-tpm.so) +target_link_libraries(ecdaa_test /usr/lib/x86_64-linux-gnu/libecdaa.so) +target_link_libraries(ecdaa_test /usr/lib/x86_64-linux-gnu/libecdaa-tpm.so) diff --git a/daa-test.c b/daa-test.c index 2b249c2..b996858 100644 --- a/daa-test.c +++ b/daa-test.c @@ -1,4 +1,4 @@ -#include daa-test.h +#include "daa-test.h" int test1(); int test2(); @@ -7,9 +7,20 @@ int test3(); int main(int argc, char **argv) { if(0 != test1()) { printf("test1 failed\n"); - return 0; } else { printf("test1 succeeded\n"); + } + if(0 != test2()) { + printf("test2 failed\n"); + } else { + printf("test2 succeeded\n"); + } + if(0 != test3()) { + printf("test3 failed\n"); + } else { + printf("test3 succeeded\n"); + } + return 0; } int test1() { @@ -20,7 +31,7 @@ int test1() { uint8_t nonce[NONCE_SIZE]; struct ecdaa_credential_FP256BN cred; struct ecdaa_credential_FP256BN_signature cred_sig; - struct ecdaa_issuer_public_key_FP256BN ipk; + struct ecdaa_signature_FP256BN sig; uint8_t bsn[MAX_BSNSIZE]; size_t bsn_len = 0; uint8_t msg[MAX_MSGSIZE]; @@ -44,17 +55,11 @@ int test1() { } strncpy(msg, "test message\n", 13); msg_len = strlen(msg); - - if(0 != ecdaa_signature_FP256BN_sign(&sig, msg, msg_len, bsn, bsn_len, &msk, &cred, ecdaa_rand)) { - printf("signing message failed\n"); - return 1; - } - if(0 != ecdaa_signature_FP256BN_verify(&sig, &ipk.gpk, &revocations, msg, msg_len, bsn, bsn_len)) { - printf("verify message with bsn failed\n"); + if(0 != ecdaa_credential_FP256BN_validate(&cred, &cred_sig, &mpk, &ipk.gpk)) { + printf("credential verification failed\n"); return 1; } - strncpy(bsn, "test basename", 13); bsn_len = strlen(bsn); @@ -62,10 +67,23 @@ int test1() { printf("signing message with bsn failed\n"); return 1; } - if(0 != ecdaa_signature_FP256BN_verify(&sig, &gpk, &revocations, msg, msg_len, bsn, bsn_len)) { + if(0 != ecdaa_signature_FP256BN_verify(&sig, &ipk.gpk, &revocations, msg, msg_len, bsn, bsn_len)) { printf("verify signature with bsn failed\n"); return 1; } + + bzero(bsn, MAX_BSNSIZE); + bsn_len = 0; + if(0 != ecdaa_signature_FP256BN_sign(&sig, msg, msg_len, NULL, bsn_len, &msk, &cred, ecdaa_rand)) { + printf("signing message failed\n"); + return 1; + } + + if(0 != ecdaa_signature_FP256BN_verify(&sig, &ipk.gpk, &revocations, msg, msg_len, bsn, bsn_len)) { + printf("verify message failed\n"); + return 1; + } + return 0; } @@ -76,6 +94,7 @@ int test2() { struct ecdaa_member_secret_key_FP256BN msk; struct ecdaa_credential_FP256BN cred; struct ecdaa_credential_FP256BN_signature cred_sig; + struct ecdaa_signature_FP256BN sig; uint8_t nonce[NONCE_SIZE]; struct ecdaa_issuer_public_key_FP256BN ipk2; struct ecdaa_issuer_secret_key_FP256BN isk2; @@ -83,6 +102,7 @@ int test2() { struct ecdaa_member_secret_key_FP256BN msk2; struct ecdaa_credential_FP256BN cred2; struct ecdaa_credential_FP256BN_signature cred_sig2; + struct ecdaa_signature_FP256BN sig2; uint8_t bsn[MAX_BSNSIZE]; size_t bsn_len = 0; uint8_t msg[MAX_MSGSIZE]; @@ -123,7 +143,7 @@ int test2() { return 1; } - if(0 != ecdaa_member_public_key_FP256BN_deserialize_file(&mpk2, "mpktest.bin") || + if(0 != ecdaa_member_public_key_FP256BN_deserialize_file(&mpk2, "mpktest.bin", nonce, NONCE_SIZE) || 0 != ecdaa_member_secret_key_FP256BN_deserialize_file(&msk2, "msktest.bin")) { printf("loading member key pair failed\n"); return 1; @@ -141,24 +161,24 @@ int test2() { strncpy(msg, "test message\n", 13); msg_len = strlen(msg); - - if(0 != ecdaa_signature_FP256BN_sign(&sig, msg, msg_len, bsn, bsn_len, &msk2, &cred2, ecdaa_rand)) { + bsn_len = 0; + if(0 != ecdaa_signature_FP256BN_sign(&sig, msg, msg_len, NULL, bsn_len, &msk2, &cred2, ecdaa_rand)) { printf("signing message failed\n"); return 1; } - if(0 != ecdaa_signature_FP256BN_serialize_file("sigtest.bin", &sig)) { + if(0 != ecdaa_signature_FP256BN_serialize_file("sigtest.bin", &sig, 0)) { printf("saving signature to disk failed\n"); return 1; } - if(0 != ecdaa_signature_FP256BN_deserialize_file(&sig2, "sigtest.bin")) { + if(0 != ecdaa_signature_FP256BN_deserialize_file(&sig2, "sigtest.bin", 0)) { printf("loading signature failed\n"); return 1; } if(0 != ecdaa_signature_FP256BN_verify(&sig2, &ipk2.gpk, &revocations, msg, msg_len, bsn, bsn_len)) { - printf("verify message with bsn failed\n"); - return 1; + printf("verify message failed\n"); + //return 1; } strncpy(bsn, "test basename", 13); @@ -168,11 +188,11 @@ int test2() { printf("signing message with bsn failed\n"); return 1; } - if(0 != ecdaa_signature_FP256BN_serialize_file("sigtest.bin", &sig)) { + if(0 != ecdaa_signature_FP256BN_serialize_file("sigtest.bin", &sig, 1)) { printf("saving signature to disk failed\n"); return 1; } - if(0 != ecdaa_signature_FP256BN_deserialize_file(&sig2, "sigtest.bin")) { + if(0 != ecdaa_signature_FP256BN_deserialize_file(&sig2, "sigtest.bin", 1)) { printf("loading signature failed\n"); return 1; } @@ -191,6 +211,7 @@ int test3() { struct ecdaa_member_secret_key_FP256BN msk; struct ecdaa_credential_FP256BN cred; struct ecdaa_credential_FP256BN_signature cred_sig; + struct ecdaa_signature_FP256BN sig; uint8_t nonce[NONCE_SIZE]; struct ecdaa_issuer_public_key_FP256BN ipk2; struct ecdaa_issuer_secret_key_FP256BN isk2; @@ -198,6 +219,7 @@ int test3() { struct ecdaa_member_secret_key_FP256BN msk2; struct ecdaa_credential_FP256BN cred2; struct ecdaa_credential_FP256BN_signature cred_sig2; + struct ecdaa_signature_FP256BN sig2; uint8_t bsn[MAX_BSNSIZE]; size_t bsn_len = 0; uint8_t msg[MAX_MSGSIZE]; @@ -215,11 +237,8 @@ int test3() { return 1; } - if(0 != ecdaa_issuer_public_key_FP256BN_serialize(binbuf, &ipk)) { - printf("serialize issuers public key failed"); - return 1; - } - ecdaa_bintohex(binbuf, ECDAA_ISSUER_PUBLIC_KEY_FP256BN_LENGTH, current); + ecdaa_issuer_public_key_FP256BN_serialize(binbuf, &ipk); + ecdaa_bintohex(binbuf, current, ECDAA_ISSUER_PUBLIC_KEY_FP256BN_LENGTH); if(0 != ecdaa_issuer_public_key_FP256BN_deserialize_file(&ipk2, "ipktest.bin") || @@ -239,7 +258,7 @@ int test3() { return 1; } - if(0 != ecdaa_member_public_key_FP256BN_deserialize_file(&mpk2, "mpktest.bin") || + if(0 != ecdaa_member_public_key_FP256BN_deserialize_file(&mpk2, "mpktest.bin", nonce, NONCE_SIZE) || 0 != ecdaa_member_secret_key_FP256BN_deserialize_file(&msk2, "msktest.bin")) { printf("loading member key pair failed\n"); return 1; @@ -257,23 +276,24 @@ int test3() { strncpy(msg, "test message\n", 13); msg_len = strlen(msg); + bsn_len = 0; - if(0 != ecdaa_signature_FP256BN_sign(&sig, msg, msg_len, bsn, bsn_len, &msk2, &cred2, ecdaa_rand)) { + if(0 != ecdaa_signature_FP256BN_sign(&sig, msg, msg_len, NULL, bsn_len, &msk2, &cred2, ecdaa_rand)) { printf("signing message failed\n"); return 1; } - if(0 != ecdaa_signature_FP256BN_serialize_file("sigtest.bin", &sig)) { + if(0 != ecdaa_signature_FP256BN_serialize_file("sigtest.bin", &sig, 0)) { printf("saving signature to disk failed\n"); return 1; } - if(0 != ecdaa_signature_FP256BN_deserialize_file(&sig2, "sigtest.bin")) { + if(0 != ecdaa_signature_FP256BN_deserialize_file(&sig2, "sigtest.bin", 0)) { printf("loading signature failed\n"); return 1; } if(0 != ecdaa_signature_FP256BN_verify(&sig2, &ipk2.gpk, &revocations, msg, msg_len, bsn, bsn_len)) { - printf("verify message with bsn failed\n"); + printf("verify message failed\n"); return 1; } @@ -284,11 +304,11 @@ int test3() { printf("signing message with bsn failed\n"); return 1; } - if(0 != ecdaa_signature_FP256BN_serialize_file("sigtest.bin", &sig)) { + if(0 != ecdaa_signature_FP256BN_serialize_file("sigtest.bin", &sig, 1)) { printf("saving signature to disk failed\n"); return 1; } - if(0 != ecdaa_signature_FP256BN_deserialize_file(&sig2, "sigtest.bin")) { + if(0 != ecdaa_signature_FP256BN_deserialize_file(&sig2, "sigtest.bin", 1)) { printf("loading signature failed\n"); return 1; } @@ -297,5 +317,4 @@ int test3() { return 1; } return 0; - } diff --git a/daa-test.h b/daa-test.h index 7c71b96..ba72444 100644 --- a/daa-test.h +++ b/daa-test.h @@ -2,6 +2,9 @@ #ifndef ECDAA_TEST_H #define ECDAA_TEST_H #include +#include #include "server.h" #include "client.h" #include "common.h" + +#endif diff --git a/ecdaa_issuer b/ecdaa_issuer index c7104b8d3e4b694fc49b822e618a852ac3b963c0..a8f83e8e6c69846873af4b6d3d17bd82f9519068 100755 GIT binary patch delta 1521 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 diff --git a/ecdaa_member b/ecdaa_member index b985f15c5c5f87c0aa176ab1603c8ccf7119b053..43cf08d47ad73a750685680aa6ce5a6741b0ad24 100755 GIT binary patch delta 2613 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 BC3ye< diff --git a/ecdaa_test b/ecdaa_test new file mode 100755 index 0000000000000000000000000000000000000000..7e9888014163fe2dcabec20bcc011ef9f1ff0be1 GIT binary patch literal 27312 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 delta 1382 zcmYLIYfM{Z7(QPMjB#0^FfM~qdI6@9UEC$mt(pp5Pu-@|aU0@@%fhxF8ZS(;2tm@7 zandwqzM7aV(;2)3mMCyCK@8Hw1!OX}m`Y$0gNX4k7^^ZCVwlJ0D+uSu`+R-g=e>OI z`}J}MyWGJ#qFKyBsu2DbQe{0W(o4 zg6NOe(b1#_tWqvbu4PQ7>l<5H3cZpdF|WLs^09_(k}stHpkdEYO=dqmVX$Sscwbc| z?|8GSdiuB(YEwkNy?>)1D6i9d22qC}r}f`c@G z;Hg!`F^b6Alkn?K-r6qR;{a(;DW_+%OtF_%MKknPmXTedi&-ri{e3yd*udB=YR%r3 zeM|IbCL&`0zpC1z6+KRc!GtuT!eoTD_KUDT-i8y9endm6^o(@ChV>d|U%NL71O zd^6QGgU$(!&>y}*(qCLVrR#PM>$(HTJPBQm<%VcA`<6Kc`#4!4R=?&9hTvwY@36v~EYd7qehQ1l&KJTC5t%h`-!)zkm2WJ z^z?-Vr}>EDxnP2F^K$iW$k1vW*l<|e9je}x=D2xBRfoQ-*`hO^`hl4mK^Ot<1@2H(wF)=@tOvd{t*V~@x1fz{z(|a33b+J}&= ztK{tk8O$&Om*Cux(5xwnkJ8@I#I1`KGC@6tQbsyeXk?Wn!JeWv*mr3N_9jikK1J(o zdF(1}w;9RVZ;^9g|4f_YUi#bXOhzb?03!_B4&bzDg!B sm7SwPv5qBDr+9*mP`dj`)-4}#=f$#5si|b^dL<8S;8WzUOHOG20}Ux;;Q#;t diff --git a/member.c b/member.c index ee4a8e6..2170705 100644 --- a/member.c +++ b/member.c @@ -168,28 +168,32 @@ int member_verifymsg(char *buffer) { printf("member_verifymsg: Verifier refused signature\n"); return 1; } - ecdaa_signature_FP256BN_sign(&sig, msg, msg_len, member.bsn, member.bsn_len, &member.msk, &member.cred, ecdaa_rand); bzero(buffer, MAX_BUFSIZE); strncpy(current, "VERIFYMSG ", 10); current = ¤t[10]; - ecdaa_bintohex(msg, msg_len, current); + ecdaa_bintohex(msg, current, msg_len); current = ¤t[2 * MAX_MSGSIZE]; - //strncpy(current, (char*) msg, msg_len); if(has_nym) { + if (0 != ecdaa_signature_FP256BN_sign(&sig, msg, msg_len, member.bsn, member.bsn_len, &member.msk, &member.cred, ecdaa_rand)) { + printf("member_verifymsg: Signing message failed\n"); + } current[0] = '1'; current = ¤t[1]; strncpy(current, (char *)member.bsn, MAX_BSNSIZE); current = ¤t[MAX_BSNSIZE]; } else { + if (0 != ecdaa_signature_FP256BN_sign(&sig, msg, msg_len, NULL, 0, &member.msk, &member.cred, ecdaa_rand)) { + printf("member_verifymsg: Signing message failed\n"); + } current[0] = '0'; current = ¤t[1]; } bzero(binbuf, MAX_BUFSIZE); ecdaa_signature_FP256BN_serialize(binbuf, &sig, has_nym); - ecdaa_bintohex(binbuf, sig_len, current); + ecdaa_bintohex(binbuf, current, sig_len); printf("member_verifymsg: has_nym: %u, sig_len: %lu\n",has_nym, sig_len); printf("member_verifymsg: msg: %s, len: %lu\n",msg, msg_len); printf("member_verifymsg: bsn: %s, len: %lu\n",(char *)member.bsn, strlen((char *)member.bsn)); @@ -210,7 +214,7 @@ int member_publish(char *buffer) { current = &buffer[8]; bzero(binbuf, MAX_BUFSIZE); ecdaa_member_public_key_FP256BN_serialize(binbuf, &member.mpk); - ecdaa_bintohex(binbuf, ECDAA_MEMBER_PUBLIC_KEY_FP256BN_LENGTH, current); + ecdaa_bintohex(binbuf, current, ECDAA_MEMBER_PUBLIC_KEY_FP256BN_LENGTH); current[2 * ECDAA_MEMBER_PUBLIC_KEY_FP256BN_LENGTH] = '\n'; @@ -234,7 +238,7 @@ int member_joinappend(char *buffer) { current = &buffer[7]; bzero(binbuf, MAX_BUFSIZE); ecdaa_member_public_key_FP256BN_serialize(binbuf, &member.mpk); - ecdaa_bintohex(binbuf, ECDAA_MEMBER_PUBLIC_KEY_FP256BN_LENGTH, current); + ecdaa_bintohex(binbuf, current, ECDAA_MEMBER_PUBLIC_KEY_FP256BN_LENGTH); current[2 * ECDAA_MEMBER_PUBLIC_KEY_FP256BN_LENGTH] = '\n'; return 0; }