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 8b3d156a9a2889caf4cd1afc210a7adfcdc11361..c9fe0c71444105842cd10a981e58a4a509d298f1 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 5bfcd366b138389c158c77d35e0f4818b78e83dd..56c339fa9c54ddab0ba31406b1549d13221ad35c 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)) {