[text] Certificate validation

Viewer

copydownloadembedprintName: Certificate validation
  1. bool crypto_eucr_validate(void)
  2. {
  3.         mbedtls_x509_crt ca, ic, crt;
  4.         uint32_t flags;
  5.         int err;
  6.  
  7.         CRY_DEBUG_PRINTF("Validating EUCR...");
  8.  
  9.         /* Load CA */
  10.         mbedtls_x509_crt_init(&ca);
  11.  
  12.         err = mbedtls_x509_crt_parse(&ca, (unsigned char *) flash.flash_ver0.root_crt, CERT_SIZE);
  13.         if (err != 0)
  14.         {
  15.                 CRY_DEBUG_PRINTF("CA parsing error!");
  16.                 mbedtls_strerror(err, tmp_buff, TMP_BUFF_SIZE);
  17.                 CRY_DEBUG_PRINTF("%s", tmp_buff);
  18.  
  19.                 return false;
  20.         }
  21.  
  22.         /* Load IC */
  23.         mbedtls_x509_crt_init(&ic);
  24.  
  25.         err = mbedtls_x509_crt_parse(&ca, (unsigned char *) flash.flash_ver0.ic_crt, CERT_SIZE);
  26.         if (err != 0)
  27.         {
  28.                 CRY_DEBUG_PRINTF("CI parsing error!");
  29.                 mbedtls_strerror(err, tmp_buff, TMP_BUFF_SIZE);
  30.                 CRY_DEBUG_PRINTF("%s", tmp_buff);
  31.  
  32.                 return false;
  33.         }
  34.  
  35.         /* Verify certificate */
  36.         err = mbedtls_x509_crt_verify(&ca, &ca, NULL, NULL, &flags, NULL, NULL);
  37.         if (err != 0)
  38.         {
  39.                 CRY_DEBUG_PRINTF("Certificate validation error!");
  40.                 mbedtls_strerror(err, tmp_buff, TMP_BUFF_SIZE);
  41.                 CRY_DEBUG_PRINTF("%s", tmp_buff);
  42.                 mbedtls_x509_crt_verify_info(tmp_buff, TMP_BUFF_SIZE, "", flags);
  43.                 CRY_DEBUG_PRINTF("%s", tmp_buff);
  44.  
  45.                 return false;
  46.         }
  47.         else
  48.         {
  49.                 CRY_DEBUG_PRINTF("CI validation over CA: OK!");
  50.         }
  51.  
  52.         return true;
  53. }

Editor

You can edit this paste and save as new:


File Description
  • Certificate validation
  • Paste Code
  • 29 Apr-2021
  • 1.22 Kb
You can Share it: