basic ECC functional

This commit is contained in:
atul.jha
2020-07-24 15:09:47 +02:00
parent 338800c03c
commit 6cd9bed88d
111 changed files with 36159 additions and 16 deletions

View File

@@ -1,11 +1,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <mbedtls/aes.h>
#include <mbedtls/bignum.h>
#include <mbedtls/ecdh.h>
#include <mbedtls/ecdsa.h>
#include <mbedtls/ecp.h>
#include <mbedtls/hkdf.h>
#include <mbedtls/hmac_drbg.h>
#include <mbedtls/hkdf.h>

View File

@@ -23,4 +23,11 @@
#define CDI_DGST_SIZE SHA256_DGST_SIZE
#define CDI_KEY_SIZE 32
#define HKDF_ALG MBEDTLS_MD_SHA256
#define ECC_CURVE
#define ECC_CURVE MBEDTLS_ECP_DP_SECP256R1 //mbedtls_ecp_group_id
/* CONFIGURATIONS */
#define USE_ECC 1

View File

@@ -1,7 +1,14 @@
#include <stdio.h>
#include <stdlib.h>
#include <mbedtls/aes.h>
#include <mbedtls/bignum.h>
#include <mbedtls/ctr_drbg.h>
#include <mbedtls/hmac_drbg.h>
#include <mbedtls/ecdh.h>
#include <mbedtls/ecdsa.h>
#include <mbedtls/ecp.h>
#include <mbedtls/rsa.h>
#include <mbedtls/sha256.h>
#include <defines.h>
@@ -10,3 +17,5 @@
void ROMprotocol(void);
void deriveDeviceIDKeyPair(uint8_t * CDIKEY, int isECC);
void seedRNGSource(uint8_t * CDIKEY);

Binary file not shown.

View File

@@ -38,5 +38,81 @@ void ROMprotocol(void)
printf("%x",CDIKEY[i]);
printf(" : CDIKEY main\n");
printf("USE_ECC %d\n", USE_ECC);
deriveDeviceIDKeyPair(CDIKEY, USE_ECC);
printf("pass 100\n");
return;
}
void seedRNGSource(uint8_t * CDIKEY)
{
//srand(); lib fun call //https://stackoverflow.com/questions/55927662/generate-every-time-same-rsa-key-with-c
//ctr_drbg //programs/test/benchmark.c:705
//hmac_drbg
//seed rng with CDIKEY
//init
//drbg seed
return;
}
void deriveDeviceIDKeyPair(uint8_t * CDIKEY, int isECC)
{
//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
if(isECC)
{
//mbedtls_ecp_group_id grpID = ECC_CURVE;
printf("pass 1\n");
const mbedtls_ecp_curve_info *crvInfo;
crvInfo = mbedtls_ecp_curve_info_from_grp_id(ECC_CURVE);
printf("pass 2\n");
mbedtls_ecp_group *ecpGrp;
printf("pass 3\n");
//mbedtls_ecp_group_init(ecpGrp);
//mbedtls_ecp_group_load(ecpGrp,ECC_CURVE);
printf("pass 4\n");
//mbedtls_ecp_keypair *keyPair = {0};
printf("pass 5\n");
//mbedtls_ecp_keypair_init(keyPair);
printf("pass 6\n");
printf("ECC is not yet implemented\n");
//mbedtls_ecp_keypair_free(keyPair);
//mbedtls_ecp_group_free(ecpGrp);
printf("pass 7\n");
return;
}
else
{
printf("RSA is not yet implemented\n");
return;
}
}

Binary file not shown.

Binary file not shown.