From 30220769c94f6466442fcf8322997f45991f20a6 Mon Sep 17 00:00:00 2001 From: Zhou Shihui Date: Mon, 25 Dec 2023 17:32:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=93=E5=8D=B0=E9=AA=8C=E7=AD=BE=E7=AE=97?= =?UTF-8?q?=E6=B3=95=E5=92=8C=E5=AF=86=E9=92=A5=E9=95=BF=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Zhou Shihui --- .../include/util/hap_signing_block_utils.h | 16 ++++++++++++++++ .../src/util/hap_signing_block_utils.cpp | 7 +++++++ 2 files changed, 23 insertions(+) diff --git a/interfaces/innerkits/appverify/include/util/hap_signing_block_utils.h b/interfaces/innerkits/appverify/include/util/hap_signing_block_utils.h index 8b3d156..c9fe0c7 100644 --- a/interfaces/innerkits/appverify/include/util/hap_signing_block_utils.h +++ b/interfaces/innerkits/appverify/include/util/hap_signing_block_utils.h @@ -15,6 +15,7 @@ #ifndef HAP_SIGNING_BLOCK_UTILS_H #define HAP_SIGNING_BLOCK_UTILS_H +#include #include #include "common/data_source.h" @@ -32,6 +33,21 @@ namespace Security { namespace Verify { constexpr int32_t ZIP_CHUNK_DIGEST_PRIFIX_LEN = 5; +const std::unordered_map algorithmNameMap = { + { ALGORITHM_SHA256_WITH_RSA_PSS, "SHA256_WITH_RSA_PSS" }, + { ALGORITHM_SHA384_WITH_RSA_PSS, "SHA384_WITH_RSA_PSS" }, + { ALGORITHM_SHA512_WITH_RSA_PSS, "SHA512_WITH_RSA_PSS" }, + { ALGORITHM_SHA256_WITH_RSA_PKCS1_V1_5, "SHA256_WITH_RSA_PKCS1_V1_5" }, + { ALGORITHM_SHA384_WITH_RSA_PKCS1_V1_5, "SHA384_WITH_RSA_PKCS1_V1_5" }, + { ALGORITHM_SHA512_WITH_RSA_PKCS1_V1_5, "SHA512_WITH_RSA_PKCS1_V1_5" }, + { ALGORITHM_SHA256_WITH_ECDSA, "SHA256_WITH_ECDSA" }, + { ALGORITHM_SHA384_WITH_ECDSA, "SHA384_WITH_ECDSA" }, + { ALGORITHM_SHA512_WITH_ECDSA, "SHA512_WITH_ECDSA" }, + { ALGORITHM_SHA256_WITH_DSA, "SHA256_WITH_DSA" }, + { ALGORITHM_SHA384_WITH_DSA, "SHA384_WITH_DSA" }, + { ALGORITHM_SHA512_WITH_DSA, "SHA512_WITH_DSA" }, +}; + enum HapBlobType { HAP_SIGN_BLOB = 0x20000000, PROOF_ROTATION_BLOB = 0x20000001, diff --git a/interfaces/innerkits/appverify/src/util/hap_signing_block_utils.cpp b/interfaces/innerkits/appverify/src/util/hap_signing_block_utils.cpp index 5bfcd36..56c339f 100644 --- a/interfaces/innerkits/appverify/src/util/hap_signing_block_utils.cpp +++ b/interfaces/innerkits/appverify/src/util/hap_signing_block_utils.cpp @@ -434,6 +434,13 @@ bool HapSigningBlockUtils::VerifyHapIntegrity( HapByteBufferDataSource eocd(signInfo.hapEocd); DataSource* content[ZIP_BLOCKS_NUM_NEED_DIGEST] = { &contentsZip, ¢ralDir, &eocd }; int32_t nId = HapVerifyOpensslUtils::GetDigestAlgorithmId(digestInfo.digestAlgorithm); + // print signature algorithm name + auto algorithmItem = algorithmNameMap.find(digestInfo.digestAlgorithm); + if (algorithmItem == algorithmNameMap.end()) { + HAPVERIFY_LOG_DEBUG(LABEL, "algorithmName not find"); + } else { + HAPVERIFY_LOG_DEBUG(LABEL, "digestAlgorithm is %{private}s", algorithmItem->second.c_str()); + } DigestParameter digestParam = GetDigestParameter(nId); HapByteBuffer chunkDigest; if (!ComputeDigestsForEachChunk(digestParam, content, ZIP_BLOCKS_NUM_NEED_DIGEST, chunkDigest)) { -- Gitee