Add some comments about upg-verifier for easy understanding 39/235339/1
authorKichan Kwon <k_c.kwon@samsung.com>
Thu, 4 Jun 2020 03:36:02 +0000 (12:36 +0900)
committerKichan Kwon <k_c.kwon@samsung.com>
Thu, 4 Jun 2020 03:36:37 +0000 (12:36 +0900)
Change-Id: Id74ee43b3ca8aec60426c68613e0cd875d3ee3a5
Signed-off-by: Kichan Kwon <k_c.kwon@samsung.com>
upg-verifier/upg-verifier.c
upg-verifier/upg-verifier.h

index c73de82ae767aa62707cd8d9eb451eb81b9eb9a1..8404c0cb33ff25b78e9131a85f3b970f7fac6bc4 100644 (file)
@@ -182,9 +182,11 @@ static int verify_delta(void)
        ret = EVP_DigestVerifyInit(evp_md_ctx, NULL, EVP_sha256(), NULL, public_key);
        ASSERT_RETV(ret == 1, print_openssl_error(), "EVP_DigestVerifyInit failed");
 
+       // Hash delta
        ret = EVP_DigestVerifyUpdate(evp_md_ctx, signed_file.delta, signed_file.delta_size);
        ASSERT_RETV(ret == 1, print_openssl_error(), "EVP_DigestVerifyUpdate failed");
 
+       // Decrypt signature and compare with hashed delta
        ret = EVP_DigestVerifyFinal(evp_md_ctx, signed_file.signature, signed_file.signature_size);
        ASSERT_RETV(ret == 1, print_openssl_error(), "EVP_DigestVerifyFinal failed");
 
@@ -246,6 +248,14 @@ int main(int argc, char *argv[])
        _D("CA file : %s", CA_FILE);
        has_root_ca = (access(CA_FILE, F_OK) == 0) ? true : false;
 
+       /**
+        *  Root CA / Signed File |      Action
+        * -------------------------------------------
+        *     X           X      | Skip verification
+        *     X           O      |       Deny
+        *     O           X      |       Deny
+        *     O           O      |   Try to verify
+        */
        _D("Signed(%d), Root CA(%d)", is_signed_file, has_root_ca);
        if (is_signed_file) {
                if (!has_root_ca) {
index b2e9c5c81c4b8a2bac6cf17deba10134b180ed09..0507e2380fbbca7da5d8767ec48905dd576d9cbb 100644 (file)
@@ -41,6 +41,10 @@ static void close_fd(int *fd)
 #define MAGIC_NUMBER "TOTA_SIGNED_V1"
 #define MAGIC_NUMBER_SIZE (sizeof(MAGIC_NUMBER) - 1)
 
+/**
+ * This structure is same with TOTA signed file.
+ * So, please sync it with signer.
+ */
 struct signed_file {
        // Data
        unsigned char *delta;