Browse Source

add missing last commit from old project

master
Michael Preisach 5 years ago
parent
commit
8e077b0835
  1. 4
      CMakeLists.txt
  2. 87
      daa-test.c
  3. 3
      daa-test.h
  4. BIN
      ecdaa_issuer
  5. BIN
      ecdaa_member
  6. BIN
      ecdaa_test
  7. BIN
      ecdaa_verifier
  8. 16
      member.c

4
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 target_include_directories(ecdaa_test PUBLIC
${ECDAA_AMCL} ${ECDAA_AMCL}
) )
target_link_libraries(ecdaa_member /usr/lib/x86_64-linux-gnu/libecdaa.so) target_link_libraries(ecdaa_test /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-tpm.so)

87
daa-test.c

@ -1,4 +1,4 @@
#include daa-test.h #include "daa-test.h"
int test1(); int test1();
int test2(); int test2();
@ -7,9 +7,20 @@ int test3();
int main(int argc, char **argv) { int main(int argc, char **argv) {
if(0 != test1()) { if(0 != test1()) {
printf("test1 failed\n"); printf("test1 failed\n");
return 0;
} else { } else {
printf("test1 succeeded\n"); 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() { int test1() {
@ -20,7 +31,7 @@ int test1() {
uint8_t nonce[NONCE_SIZE]; uint8_t nonce[NONCE_SIZE];
struct ecdaa_credential_FP256BN cred; struct ecdaa_credential_FP256BN cred;
struct ecdaa_credential_FP256BN_signature cred_sig; struct ecdaa_credential_FP256BN_signature cred_sig;
struct ecdaa_issuer_public_key_FP256BN ipk; struct ecdaa_signature_FP256BN sig;
uint8_t bsn[MAX_BSNSIZE]; uint8_t bsn[MAX_BSNSIZE];
size_t bsn_len = 0; size_t bsn_len = 0;
uint8_t msg[MAX_MSGSIZE]; uint8_t msg[MAX_MSGSIZE];
@ -45,16 +56,10 @@ int test1() {
strncpy(msg, "test message\n", 13); strncpy(msg, "test message\n", 13);
msg_len = strlen(msg); msg_len = strlen(msg);
if(0 != ecdaa_signature_FP256BN_sign(&sig, msg, msg_len, bsn, bsn_len, &msk, &cred, ecdaa_rand)) { if(0 != ecdaa_credential_FP256BN_validate(&cred, &cred_sig, &mpk, &ipk.gpk)) {
printf("signing message failed\n"); printf("credential verification 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");
return 1; return 1;
} }
strncpy(bsn, "test basename", 13); strncpy(bsn, "test basename", 13);
bsn_len = strlen(bsn); bsn_len = strlen(bsn);
@ -62,10 +67,23 @@ int test1() {
printf("signing message with bsn failed\n"); printf("signing message with bsn failed\n");
return 1; 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"); printf("verify signature with bsn failed\n");
return 1; 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; return 0;
} }
@ -76,6 +94,7 @@ int test2() {
struct ecdaa_member_secret_key_FP256BN msk; struct ecdaa_member_secret_key_FP256BN msk;
struct ecdaa_credential_FP256BN cred; struct ecdaa_credential_FP256BN cred;
struct ecdaa_credential_FP256BN_signature cred_sig; struct ecdaa_credential_FP256BN_signature cred_sig;
struct ecdaa_signature_FP256BN sig;
uint8_t nonce[NONCE_SIZE]; uint8_t nonce[NONCE_SIZE];
struct ecdaa_issuer_public_key_FP256BN ipk2; struct ecdaa_issuer_public_key_FP256BN ipk2;
struct ecdaa_issuer_secret_key_FP256BN isk2; struct ecdaa_issuer_secret_key_FP256BN isk2;
@ -83,6 +102,7 @@ int test2() {
struct ecdaa_member_secret_key_FP256BN msk2; struct ecdaa_member_secret_key_FP256BN msk2;
struct ecdaa_credential_FP256BN cred2; struct ecdaa_credential_FP256BN cred2;
struct ecdaa_credential_FP256BN_signature cred_sig2; struct ecdaa_credential_FP256BN_signature cred_sig2;
struct ecdaa_signature_FP256BN sig2;
uint8_t bsn[MAX_BSNSIZE]; uint8_t bsn[MAX_BSNSIZE];
size_t bsn_len = 0; size_t bsn_len = 0;
uint8_t msg[MAX_MSGSIZE]; uint8_t msg[MAX_MSGSIZE];
@ -123,7 +143,7 @@ int test2() {
return 1; 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")) { 0 != ecdaa_member_secret_key_FP256BN_deserialize_file(&msk2, "msktest.bin")) {
printf("loading member key pair failed\n"); printf("loading member key pair failed\n");
return 1; return 1;
@ -141,24 +161,24 @@ int test2() {
strncpy(msg, "test message\n", 13); strncpy(msg, "test message\n", 13);
msg_len = strlen(msg); 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"); printf("signing message failed\n");
return 1; 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"); printf("saving signature to disk failed\n");
return 1; 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"); printf("loading signature failed\n");
return 1; return 1;
} }
if(0 != ecdaa_signature_FP256BN_verify(&sig2, &ipk2.gpk, &revocations, msg, msg_len, bsn, bsn_len)) { 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; //return 1;
} }
strncpy(bsn, "test basename", 13); strncpy(bsn, "test basename", 13);
@ -168,11 +188,11 @@ int test2() {
printf("signing message with bsn failed\n"); printf("signing message with bsn failed\n");
return 1; 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"); printf("saving signature to disk failed\n");
return 1; 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"); printf("loading signature failed\n");
return 1; return 1;
} }
@ -191,6 +211,7 @@ int test3() {
struct ecdaa_member_secret_key_FP256BN msk; struct ecdaa_member_secret_key_FP256BN msk;
struct ecdaa_credential_FP256BN cred; struct ecdaa_credential_FP256BN cred;
struct ecdaa_credential_FP256BN_signature cred_sig; struct ecdaa_credential_FP256BN_signature cred_sig;
struct ecdaa_signature_FP256BN sig;
uint8_t nonce[NONCE_SIZE]; uint8_t nonce[NONCE_SIZE];
struct ecdaa_issuer_public_key_FP256BN ipk2; struct ecdaa_issuer_public_key_FP256BN ipk2;
struct ecdaa_issuer_secret_key_FP256BN isk2; struct ecdaa_issuer_secret_key_FP256BN isk2;
@ -198,6 +219,7 @@ int test3() {
struct ecdaa_member_secret_key_FP256BN msk2; struct ecdaa_member_secret_key_FP256BN msk2;
struct ecdaa_credential_FP256BN cred2; struct ecdaa_credential_FP256BN cred2;
struct ecdaa_credential_FP256BN_signature cred_sig2; struct ecdaa_credential_FP256BN_signature cred_sig2;
struct ecdaa_signature_FP256BN sig2;
uint8_t bsn[MAX_BSNSIZE]; uint8_t bsn[MAX_BSNSIZE];
size_t bsn_len = 0; size_t bsn_len = 0;
uint8_t msg[MAX_MSGSIZE]; uint8_t msg[MAX_MSGSIZE];
@ -215,11 +237,8 @@ int test3() {
return 1; return 1;
} }
if(0 != ecdaa_issuer_public_key_FP256BN_serialize(binbuf, &ipk)) { ecdaa_issuer_public_key_FP256BN_serialize(binbuf, &ipk);
printf("serialize issuers public key failed"); ecdaa_bintohex(binbuf, current, ECDAA_ISSUER_PUBLIC_KEY_FP256BN_LENGTH);
return 1;
}
ecdaa_bintohex(binbuf, ECDAA_ISSUER_PUBLIC_KEY_FP256BN_LENGTH, current);
if(0 != ecdaa_issuer_public_key_FP256BN_deserialize_file(&ipk2, "ipktest.bin") || if(0 != ecdaa_issuer_public_key_FP256BN_deserialize_file(&ipk2, "ipktest.bin") ||
@ -239,7 +258,7 @@ int test3() {
return 1; 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")) { 0 != ecdaa_member_secret_key_FP256BN_deserialize_file(&msk2, "msktest.bin")) {
printf("loading member key pair failed\n"); printf("loading member key pair failed\n");
return 1; return 1;
@ -257,23 +276,24 @@ int test3() {
strncpy(msg, "test message\n", 13); strncpy(msg, "test message\n", 13);
msg_len = strlen(msg); 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"); printf("signing message failed\n");
return 1; 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"); printf("saving signature to disk failed\n");
return 1; 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"); printf("loading signature failed\n");
return 1; return 1;
} }
if(0 != ecdaa_signature_FP256BN_verify(&sig2, &ipk2.gpk, &revocations, msg, msg_len, bsn, bsn_len)) { 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; return 1;
} }
@ -284,11 +304,11 @@ int test3() {
printf("signing message with bsn failed\n"); printf("signing message with bsn failed\n");
return 1; 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"); printf("saving signature to disk failed\n");
return 1; 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"); printf("loading signature failed\n");
return 1; return 1;
} }
@ -297,5 +317,4 @@ int test3() {
return 1; return 1;
} }
return 0; return 0;
} }

3
daa-test.h

@ -2,6 +2,9 @@
#ifndef ECDAA_TEST_H #ifndef ECDAA_TEST_H
#define ECDAA_TEST_H #define ECDAA_TEST_H
#include <ecdaa.h> #include <ecdaa.h>
#include <ecdaa.h>
#include "server.h" #include "server.h"
#include "client.h" #include "client.h"
#include "common.h" #include "common.h"
#endif

BIN
ecdaa_issuer

Binary file not shown.

BIN
ecdaa_member

Binary file not shown.

BIN
ecdaa_test

Binary file not shown.

BIN
ecdaa_verifier

Binary file not shown.

16
member.c

@ -168,28 +168,32 @@ int member_verifymsg(char *buffer) {
printf("member_verifymsg: Verifier refused signature\n"); printf("member_verifymsg: Verifier refused signature\n");
return 1; 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); bzero(buffer, MAX_BUFSIZE);
strncpy(current, "VERIFYMSG ", 10); strncpy(current, "VERIFYMSG ", 10);
current = &current[10]; current = &current[10];
ecdaa_bintohex(msg, msg_len, current); ecdaa_bintohex(msg, current, msg_len);
current = &current[2 * MAX_MSGSIZE]; current = &current[2 * MAX_MSGSIZE];
//strncpy(current, (char*) msg, msg_len);
if(has_nym) { 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[0] = '1';
current = &current[1]; current = &current[1];
strncpy(current, (char *)member.bsn, MAX_BSNSIZE); strncpy(current, (char *)member.bsn, MAX_BSNSIZE);
current = &current[MAX_BSNSIZE]; current = &current[MAX_BSNSIZE];
} else { } 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[0] = '0';
current = &current[1]; current = &current[1];
} }
bzero(binbuf, MAX_BUFSIZE); bzero(binbuf, MAX_BUFSIZE);
ecdaa_signature_FP256BN_serialize(binbuf, &sig, has_nym); 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: 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: msg: %s, len: %lu\n",msg, msg_len);
printf("member_verifymsg: bsn: %s, len: %lu\n",(char *)member.bsn, strlen((char *)member.bsn)); 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]; current = &buffer[8];
bzero(binbuf, MAX_BUFSIZE); bzero(binbuf, MAX_BUFSIZE);
ecdaa_member_public_key_FP256BN_serialize(binbuf, &member.mpk); 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'; current[2 * ECDAA_MEMBER_PUBLIC_KEY_FP256BN_LENGTH] = '\n';
@ -234,7 +238,7 @@ int member_joinappend(char *buffer) {
current = &buffer[7]; current = &buffer[7];
bzero(binbuf, MAX_BUFSIZE); bzero(binbuf, MAX_BUFSIZE);
ecdaa_member_public_key_FP256BN_serialize(binbuf, &member.mpk); 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'; current[2 * ECDAA_MEMBER_PUBLIC_KEY_FP256BN_LENGTH] = '\n';
return 0; return 0;
} }

Loading…
Cancel
Save