From 3063768ac2fdf94555317efb2d6500d56d22e2cb Mon Sep 17 00:00:00 2001 From: "atul.jha" Date: Wed, 2 Sep 2020 12:48:23 +0200 Subject: [PATCH] rpi experiemnt --- trial3/ECCtrial.c | 72 ++++++++++++++++++++++++----------------------- trial3/layer1.c | 2 +- trial3/makefile | 3 ++ 3 files changed, 41 insertions(+), 36 deletions(-) diff --git a/trial3/ECCtrial.c b/trial3/ECCtrial.c index 788bfcd..164bfc9 100644 --- a/trial3/ECCtrial.c +++ b/trial3/ECCtrial.c @@ -1,22 +1,26 @@ #include #include +#include -#include +#include "mbedtls/config.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include "mbedtls/aes.h" +#include "mbedtls/bignum.h" +#include "mbedtls/ctr_drbg.h" +#include "mbedtls/entropy.h" +#include "mbedtls/ecp.h" +#include "mbedtls/ecdh.h" +#include "mbedtls/ecdsa.h" +#include "mbedtls/hmac_drbg.h" +#include "mbedtls/hkdf.h" +#include "mbedtls/md.h" +#include "mbedtls/pk.h" +#include "mbedtls/rsa.h" +#include "mbedtls/sha1.h" +#include "mbedtls/sha256.h" -#include -#include -#include +#include "defines.h" //firt generate ECC/RA key. //check for deterministic consistency @@ -32,33 +36,31 @@ void main() { - mbedtls_pk_context key; - mbedtls_entropy_context entropy; - mbedtls_ctr_drbg_context ctr_drbg; + uint8_t* UDS_ID = calloc(1,sizeof(uint8_t)*UDS_DGST_SIZE); + uint8_t* FW_ID = calloc(1,sizeof(uint8_t)*FW_DGST_SIZE); + uint8_t* CD_ID = calloc(1,sizeof(uint8_t)*CDI_DGST_SIZE); - mbedtls_pk_type_t pk_alg = MBEDTLS_PK_ECKEY; + uint8_t UDSbuf[UDS_SIZE] = {0Xe3,0xc5,0x58,0xaa,0x2f,0xd2,0x19,0x25}; + uint8_t FWbuf[100] = {0Xe3,0xc5,0x58,0xaa,0x2f,0xd2,0x19,0x25,0Xe3,0xc5,0x58,0xaa,0x2f,0xd2,0x19,0x25,0Xe3,0xc5,0x58,0xaa,0x2f,0xd2,0x19,0x25,0Xe3,0xc5,0x58,0xaa,0x2f,0xd2,0x19,0x25,0Xe3,0xc5,0x58,0xaa,0x2f,0xd2,0x19,0x25,0Xe3,0xc5,0x58,0xaa,0x2f,0xd2,0x19,0x25,0Xe3,0xc5,0x58,0xaa,0x2f,0xd2,0x19,0x25,0Xe3,0xc5,0x58,0xaa,0x2f,0xd2,0x19,0x25,0Xe3,0xc5,0x58,0xaa,0x2f,0xd2,0x19,0x25,0Xe3,0xc5,0x58,0xaa,0x2f,0xd2,0x19,0x25,0Xe3,0xc5,0x58,0xaa,0x2f,0xd2,0x19,0x25,0Xe3,0xc5,0x58,0xaa,0x2f,0xd2,0x19,0x25}; - mbedtls_pk_init(&key); - mbedtls_entropy_init( &entropy ); - mbedtls_ctr_drbg_init(&ctr_drbg); + mbedtls_sha256_ret( UDSbuf,UDS_SIZE,UDS_ID,0 ); + mbedtls_sha256_ret(FWbuf,100,FW_ID,0 ); - int ret = mbedtls_pk_setup(&key, mbedtls_pk_info_from_type(pk_alg)); + for (int i = 0; i < 32; i++) + printf("%hhx", UDS_ID[i]); + printf(" : UDS ID\n" ); - ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, - &entropy, - (const unsigned char *) "ecdsa", - strlen(pers) - ); - - ret = mbedtls_ecp_gen_key(MBEDTLS_ECP_DP_SECP256R, - mbedtls_pk_ec(key), - mbedtls_ctr_drbg_random, - &ctr_drbg - ); + for (int i = 0; i < 32; i++) + printf("%hhx", FW_ID[i]); + printf(" : UDS ID\n" ); - printf("done\n\n"); - printf("I wonder what the key is\n\n"); - printf("key : %s", key) + + + + + + printf("SUCCESSUL EXIT\n"); + } \ No newline at end of file diff --git a/trial3/layer1.c b/trial3/layer1.c index e504944..c839a57 100644 --- a/trial3/layer1.c +++ b/trial3/layer1.c @@ -46,7 +46,7 @@ int readFWID(uint8_t* FW_M) // //2. Calcualte hash into arg FILE *fp = NULL; - fp = fopen("layer2.c", "r"); + fp = fopen("layer1.c", "r"); if (!fp) { perror("File open failed\n"); diff --git a/trial3/makefile b/trial3/makefile index 418e58b..d7617cb 100644 --- a/trial3/makefile +++ b/trial3/makefile @@ -17,6 +17,9 @@ all: main.c layer1.c debug: ${CC} -g -o $(ODIR)/dbg-main main.c layer1.c layer2.c -lm -lmbedcrypto -lmbedtls -lmbedx509 +trial: + ${CC} -g -o $(ODIR)/trial ECCtrial.c layer1.c layer2.c -lm -lmbedcrypto -lmbedtls -lmbedx509 + clean: rm -r $(ODIR)/* rm -r ./keys/*