DIMA/trial3/ECCtrial.c
2020-09-02 14:01:09 +02:00

84 lines
2.1 KiB
C

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "mbedtls/config.h"
#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 "defines.h"
//firt generate ECC/RA key.
//check for deterministic consistency
//seed RNGs with CDI
//let's see how it goes
//add entropy source?
//seed RNG
//create ctx
//init
//gen keypair
void main()
{
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);
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_sha256_ret( UDSbuf,UDS_SIZE,UDS_ID,0 );
mbedtls_sha256_ret(FWbuf,100,FW_ID,0 );
for (int i = 0; i < 32; i++)
printf("%hhx", UDS_ID[i]);
printf(" : UDS ID\n" );
for (int i = 0; i < 32; i++)
printf("%hhx", FW_ID[i]);
printf(" : FW ID\n" );
mbedtls_sha256_context sha_ctx;
mbedtls_sha256_init(&sha_ctx);
mbedtls_sha256_starts_ret(&sha_ctx,0);
mbedtls_sha256_update_ret(&sha_ctx, UDS_ID, 32);
mbedtls_sha256_update_ret(&sha_ctx, FW_ID, 32);
mbedtls_sha256_finish_ret(&sha_ctx,CD_ID);
mbedtls_sha256_free(&sha_ctx);
free(UDS_ID);
free(FW_ID);
for(int i = 0; i < 32; i++)
printf("%hhx",CD_ID[i]);
printf(" : CDI digest\n");
printf("SUCCESSUL EXIT\n");
}