From 8404430d74a7e2754cf6e3ba67a986e865ce9a51 Mon Sep 17 00:00:00 2001 From: zhanzeyi Date: Sat, 27 Jul 2024 10:55:49 +0800 Subject: [PATCH 1/5] fix Signed-off-by: zhanzeyi --- hapsigntool_cpp/api/src/cert_tools.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/hapsigntool_cpp/api/src/cert_tools.cpp b/hapsigntool_cpp/api/src/cert_tools.cpp index 6d9cf164..cbb0719c 100644 --- a/hapsigntool_cpp/api/src/cert_tools.cpp +++ b/hapsigntool_cpp/api/src/cert_tools.cpp @@ -76,7 +76,6 @@ bool CertTools::SaveCertTofile(const std::string& filename, X509* cert) static bool UpdateConstraint(Options* options) { if (options->count(Options::BASIC_CONSTRAINTS)) { - std::string val = options->GetString(Options::BASIC_CONSTRAINTS); if (!CmdUtil::String2Bool(options, Options::BASIC_CONSTRAINTS)) { return false; } @@ -89,7 +88,7 @@ static bool UpdateConstraint(Options* options) return false; } } else { - (*options)[Options::BASIC_CONSTRAINTS] = DEFAULT_BASIC_CONSTRAINTS_CRITICAL; + (*options)[Options::BASIC_CONSTRAINTS_CRITICAL] = DEFAULT_BASIC_CONSTRAINTS_CRITICAL; } if (options->count(Options::BASIC_CONSTRAINTS_CA)) { @@ -97,7 +96,7 @@ static bool UpdateConstraint(Options* options) return false; } } else { - (*options)[Options::BASIC_CONSTRAINTS] = DEFAULT_BASIC_CONSTRAINTS_CA; + (*options)[Options::BASIC_CONSTRAINTS_CA] = DEFAULT_BASIC_CONSTRAINTS_CA; } return true; } -- Gitee From 2b10cca6a8966d8ec8ec3468b2424a91c1bcd7a7 Mon Sep 17 00:00:00 2001 From: zhanzeyi Date: Sat, 27 Jul 2024 17:19:56 +0800 Subject: [PATCH 2/5] ignore keyalias case Signed-off-by: zhanzeyi --- hapsigntool_cpp/cmd/src/cmd_util.cpp | 14 ++++++++++---- hapsigntool_cpp/cmd/src/params_run_tool.cpp | 3 ++- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/hapsigntool_cpp/cmd/src/cmd_util.cpp b/hapsigntool_cpp/cmd/src/cmd_util.cpp index 6aaf81a8..61102bae 100644 --- a/hapsigntool_cpp/cmd/src/cmd_util.cpp +++ b/hapsigntool_cpp/cmd/src/cmd_util.cpp @@ -387,7 +387,7 @@ bool CmdUtil::Convert2Params(char** args, const size_t size, const ParamsSharedP bool CmdUtil::ValidAndPutParam(const ParamsSharedPtr& params, const std::string& key, char* value) { std::string str = "Pwd"; - bool result; + bool result = true; if (key.empty()) { PrintErrorNumberMsg("COMMAND_PARAM_ERROR", COMMAND_PARAM_ERROR, "The command-line parameter key cannot be empty"); @@ -402,10 +402,16 @@ bool CmdUtil::ValidAndPutParam(const ParamsSharedPtr& params, const std::string& result = false; } else if (key.length() >= str.length() && key.substr(key.length() - INVALIDCHAR) == str) { params->GetOptions()->emplace(key, value); - result = true; } else { - params->GetOptions()->emplace(key, std::string(value)); - result = true; + if (key == Options::KEY_ALIAS || key == Options::ISSUER_KEY_ALIAS) { + std::string keyAlias = value; + std::transform(keyAlias.begin(), keyAlias.end(), keyAlias.begin(), + [](unsigned char c) { return std::tolower(c); }); + params->GetOptions()->emplace(key, keyAlias); + + } else { + params->GetOptions()->emplace(key, std::string(value)); + } } return result; } diff --git a/hapsigntool_cpp/cmd/src/params_run_tool.cpp b/hapsigntool_cpp/cmd/src/params_run_tool.cpp index 86812b57..048e130f 100644 --- a/hapsigntool_cpp/cmd/src/params_run_tool.cpp +++ b/hapsigntool_cpp/cmd/src/params_run_tool.cpp @@ -53,7 +53,8 @@ static std::unordered_map (""); + PrintHelp(); + return true; } if (args == nullptr || strcmp(args[1], "") == 0) { PrintHelp(); -- Gitee From b180ac158c648218ec74aba729a59b4eb2170780 Mon Sep 17 00:00:00 2001 From: zhanzeyi Date: Sat, 27 Jul 2024 17:35:48 +0800 Subject: [PATCH 3/5] add readme Signed-off-by: zhanzeyi --- README_ZH.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/README_ZH.md b/README_ZH.md index 2405483a..2e07e0e4 100644 --- a/README_ZH.md +++ b/README_ZH.md @@ -131,7 +131,7 @@ hap-sign-tool sign-profile -keyAlias "oh-profile1-key-v1" -signAlg "SHA256withEC sign-profile : ProvisionProfile文件签名 ├── -mode #签名模式,必填项,包括localSign,remoteSign - ├── -keyAlias #密钥别名,必填项 + ├── -keyAlias #密钥别名,必填项, 密钥别名不区分大小写 ├── -keyPwd #密钥口令,可选项 ├── -profileCertFile #Profile签名证书(证书链,顺序为实体证书-中间CA证书-根证书),必填项 ├── -inFile #输入的原始Provision Profile文件,必填项 @@ -160,7 +160,7 @@ hap-sign-tool sign-app -keyAlias "oh-app1-key-v1" -signAlg "SHA256withECDSA" -mo sign-app : 应用包和二进制工具签名 ├── -mode #签名模式,必填项,包括localSign,remoteSign - ├── -keyAlias #密钥别名,必填项 + ├── -keyAlias #密钥别名,必填项,密钥别名不区分大小写 ├── -keyPwd #密钥口令,可选项 ├── -appCertFile #应用签名证书文件(证书链,顺序为实体证书-中间CA证书-根证书),必填项 ├── -profileFile #签名后的Provision Profile文件名,p7b格式,应用包签名必填项,二进制工具签名选填 @@ -206,7 +206,7 @@ hap-sign-tool sign-app -keyAlias "oh-app1-key-v1" -signAlg "SHA256withECDSA" -mo 1.生成密钥对 generate-keypair : 生成密钥对 - ├── -keyAlias # 密钥别名,必填项 + ├── -keyAlias # 密钥别名,必填项,密钥别名不区分大小写 ├── -keyPwd # 密钥口令,可选项 ├── -keyAlg # 密钥算法,必填项,包括RSA/ECC ├── -keySize # 密钥长度,必填项,RSA算法的长度为2048/3072/4096,ECC算法的长度NIST-P-256/NIST-P-384 @@ -216,7 +216,7 @@ hap-sign-tool sign-app -keyAlias "oh-app1-key-v1" -signAlg "SHA256withECDSA" -mo 2.生成证书签名请求 generate-csr : 生成证书签名请求 - ├── -keyAlias # 密钥别名,必填项 + ├── -keyAlias # 密钥别名,必填项,密钥别名不区分大小写 ├── -keyPwd # 密钥口令,可选项 ├── -subject # 证书主题,必填项 ├── -signAlg # 签名算法,必填项,包括SHA256withRSA / SHA384withRSA / SHA256withECDSA / SHA384withECDSA @@ -227,12 +227,12 @@ hap-sign-tool sign-app -keyAlias "oh-app1-key-v1" -signAlg "SHA256withECDSA" -mo 3.生成根CA/中间CA证书 generate-ca : 生成根CA/中间CA证书,如果密钥不存在,一起生成密钥 - ├── -keyAlias # 密钥别名,必填项 + ├── -keyAlias # 密钥别名,必填项,密钥别名不区分大小写 ├── -keyPwd # 密钥口令,可选项 ├── -keyAlg # 密钥算法,必填项,包括RSA/ECC ├── -keySize # 密钥长度,必填项,RSA算法的长度为2048/3072/4096,ECC算法的长度NIST-P-256/NIST-P-384 ├── -issuer # 颁发者的主题,可选项,如果不填,表示根CA - ├── -issuerKeyAlias # 颁发者的密钥别名,可选项,如果不填,表示根CA + ├── -issuerKeyAlias # 颁发者的密钥别名,可选项,如果不填,表示根CA,密钥别名不区分大小写 ├── -issuerKeyPwd # 颁发者的密钥口令,可选项 ├── -subject # 证书主题,必填项 ├── -validity # 证书有效期,可选项,默认为3650天 @@ -247,10 +247,10 @@ hap-sign-tool sign-app -keyAlias "oh-app1-key-v1" -signAlg "SHA256withECDSA" -mo 4.生成应用调试/发布证书 generate-app-cert : 生成应用调试/发布证书 - ├── -keyAlias # 密钥别名,必填项 + ├── -keyAlias # 密钥别名,必填项,密钥别名不区分大小写 ├── -keyPwd # 密钥口令,可选项 ├── -issuer # 颁发者的主题,必填项 - ├── -issuerKeyAlias # 颁发者的密钥别名,必填项 + ├── -issuerKeyAlias # 颁发者的密钥别名,必填项,密钥别名不区分大小写 ├── -issuerKeyPwd # 颁发者的密钥口令,可选项 ├── -subject # 证书主题,必填项 ├── -validity # 证书有效期,可选项,默认为3650天 @@ -267,10 +267,10 @@ hap-sign-tool sign-app -keyAlias "oh-app1-key-v1" -signAlg "SHA256withECDSA" -mo 5.生成profile调试/发布证书 generate-profile-cert : 生成profile调试/发布证书 - ├── -keyAlias # 密钥别名,必填项 + ├── -keyAlias # 密钥别名,必填项,密钥别名不区分大小写 ├── -keyPwd # 密钥口令,可选项 ├── -issuer # 颁发者的主题,必填项 - ├── -issuerKeyAlias # 颁发者的密钥别名,必填项 + ├── -issuerKeyAlias # 颁发者的密钥别名,必填项,密钥别名不区分大小写 ├── -issuerKeyPwd # 颁发者的密钥口令,可选项 ├── -subject # 证书主题,必填项 ├── -validity # 证书有效期,可选项,默认为3650天 @@ -287,10 +287,10 @@ hap-sign-tool sign-app -keyAlias "oh-app1-key-v1" -signAlg "SHA256withECDSA" -mo 6.通用证书生成,可以生成自定义证书 generate-cert : 通用证书生成,可以生成自定义证书 - ├── -keyAlias # 密钥别名,必填项 + ├── -keyAlias # 密钥别名,必填项,密钥别名不区分大小写 ├── -keyPwd # 密钥口令,可选项 ├── -issuer # 颁发者的主题,必填项 - ├── -issuerKeyAlias # 颁发者的密钥别名,必填项 + ├── -issuerKeyAlias # 颁发者的密钥别名,必填项,密钥别名不区分大小写 ├── -issuerKeyPwd # 颁发者的密钥口令,可选项 ├── -subject # 证书主题,必填项 ├── -validity # 证书有效期,可选项,默认为1095天 @@ -316,7 +316,7 @@ hap-sign-tool sign-app -keyAlias "oh-app1-key-v1" -signAlg "SHA256withECDSA" -mo sign-profile : ProvisionProfile文件签名 ├── -mode # 签名模式,必填项,包括localSign,remoteSign - ├── -keyAlias # 密钥别名,必填项 + ├── -keyAlias # 密钥别名,必填项,密钥别名不区分大小写 ├── -keyPwd # 密钥口令,可选项 ├── -profileCertFile # Profile签名证书(证书链,顺序为实体证书-中间CA证书-根证书),必填项 ├── -inFile # 输入的原始Provision Profile文件,必填项 @@ -335,7 +335,7 @@ hap-sign-tool sign-app -keyAlias "oh-app1-key-v1" -signAlg "SHA256withECDSA" -mo sign-app : 应用包和二进制工具签名 ├── -mode # 签名模式,必填项,包括localSign,remoteSign - ├── -keyAlias # 密钥别名,必填项 + ├── -keyAlias # 密钥别名,必填项,密钥别名不区分大小写 ├── -keyPwd # 密钥口令,可选项 ├── -appCertFile # 应用签名证书文件(证书链,顺序为实体证书-中间CA证书-根证书),必填项 ├── -profileFile # 签名后的Provision Profile文件名,profileSigned为1时为p7b格式,profileSigned为0时为json格式,应用包签名必填项,二进制工具签名选填 -- Gitee From d00fe8938779ef57a3725385753b8fe01af6cead Mon Sep 17 00:00:00 2001 From: zhanzeyi Date: Sat, 27 Jul 2024 19:52:01 +0800 Subject: [PATCH 4/5] update Signed-off-by: zhanzeyi --- README_ZH.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/README_ZH.md b/README_ZH.md index 2e07e0e4..51bc5686 100644 --- a/README_ZH.md +++ b/README_ZH.md @@ -131,7 +131,7 @@ hap-sign-tool sign-profile -keyAlias "oh-profile1-key-v1" -signAlg "SHA256withEC sign-profile : ProvisionProfile文件签名 ├── -mode #签名模式,必填项,包括localSign,remoteSign - ├── -keyAlias #密钥别名,必填项, 密钥别名不区分大小写 + ├── -keyAlias #密钥别名,必填项, 不区分大小写 ├── -keyPwd #密钥口令,可选项 ├── -profileCertFile #Profile签名证书(证书链,顺序为实体证书-中间CA证书-根证书),必填项 ├── -inFile #输入的原始Provision Profile文件,必填项 @@ -160,7 +160,7 @@ hap-sign-tool sign-app -keyAlias "oh-app1-key-v1" -signAlg "SHA256withECDSA" -mo sign-app : 应用包和二进制工具签名 ├── -mode #签名模式,必填项,包括localSign,remoteSign - ├── -keyAlias #密钥别名,必填项,密钥别名不区分大小写 + ├── -keyAlias #密钥别名,必填项,不区分大小写 ├── -keyPwd #密钥口令,可选项 ├── -appCertFile #应用签名证书文件(证书链,顺序为实体证书-中间CA证书-根证书),必填项 ├── -profileFile #签名后的Provision Profile文件名,p7b格式,应用包签名必填项,二进制工具签名选填 @@ -206,7 +206,7 @@ hap-sign-tool sign-app -keyAlias "oh-app1-key-v1" -signAlg "SHA256withECDSA" -mo 1.生成密钥对 generate-keypair : 生成密钥对 - ├── -keyAlias # 密钥别名,必填项,密钥别名不区分大小写 + ├── -keyAlias # 密钥别名,必填项,不区分大小写 ├── -keyPwd # 密钥口令,可选项 ├── -keyAlg # 密钥算法,必填项,包括RSA/ECC ├── -keySize # 密钥长度,必填项,RSA算法的长度为2048/3072/4096,ECC算法的长度NIST-P-256/NIST-P-384 @@ -216,7 +216,7 @@ hap-sign-tool sign-app -keyAlias "oh-app1-key-v1" -signAlg "SHA256withECDSA" -mo 2.生成证书签名请求 generate-csr : 生成证书签名请求 - ├── -keyAlias # 密钥别名,必填项,密钥别名不区分大小写 + ├── -keyAlias # 密钥别名,必填项,不区分大小写 ├── -keyPwd # 密钥口令,可选项 ├── -subject # 证书主题,必填项 ├── -signAlg # 签名算法,必填项,包括SHA256withRSA / SHA384withRSA / SHA256withECDSA / SHA384withECDSA @@ -227,12 +227,12 @@ hap-sign-tool sign-app -keyAlias "oh-app1-key-v1" -signAlg "SHA256withECDSA" -mo 3.生成根CA/中间CA证书 generate-ca : 生成根CA/中间CA证书,如果密钥不存在,一起生成密钥 - ├── -keyAlias # 密钥别名,必填项,密钥别名不区分大小写 + ├── -keyAlias # 密钥别名,必填项,不区分大小写 ├── -keyPwd # 密钥口令,可选项 ├── -keyAlg # 密钥算法,必填项,包括RSA/ECC ├── -keySize # 密钥长度,必填项,RSA算法的长度为2048/3072/4096,ECC算法的长度NIST-P-256/NIST-P-384 ├── -issuer # 颁发者的主题,可选项,如果不填,表示根CA - ├── -issuerKeyAlias # 颁发者的密钥别名,可选项,如果不填,表示根CA,密钥别名不区分大小写 + ├── -issuerKeyAlias # 颁发者的密钥别名,可选项,如果不填,表示根CA,不区分大小写 ├── -issuerKeyPwd # 颁发者的密钥口令,可选项 ├── -subject # 证书主题,必填项 ├── -validity # 证书有效期,可选项,默认为3650天 @@ -247,10 +247,10 @@ hap-sign-tool sign-app -keyAlias "oh-app1-key-v1" -signAlg "SHA256withECDSA" -mo 4.生成应用调试/发布证书 generate-app-cert : 生成应用调试/发布证书 - ├── -keyAlias # 密钥别名,必填项,密钥别名不区分大小写 + ├── -keyAlias # 密钥别名,必填项,不区分大小写 ├── -keyPwd # 密钥口令,可选项 ├── -issuer # 颁发者的主题,必填项 - ├── -issuerKeyAlias # 颁发者的密钥别名,必填项,密钥别名不区分大小写 + ├── -issuerKeyAlias # 颁发者的密钥别名,必填项,不区分大小写 ├── -issuerKeyPwd # 颁发者的密钥口令,可选项 ├── -subject # 证书主题,必填项 ├── -validity # 证书有效期,可选项,默认为3650天 @@ -267,10 +267,10 @@ hap-sign-tool sign-app -keyAlias "oh-app1-key-v1" -signAlg "SHA256withECDSA" -mo 5.生成profile调试/发布证书 generate-profile-cert : 生成profile调试/发布证书 - ├── -keyAlias # 密钥别名,必填项,密钥别名不区分大小写 + ├── -keyAlias # 密钥别名,必填项,不区分大小写 ├── -keyPwd # 密钥口令,可选项 ├── -issuer # 颁发者的主题,必填项 - ├── -issuerKeyAlias # 颁发者的密钥别名,必填项,密钥别名不区分大小写 + ├── -issuerKeyAlias # 颁发者的密钥别名,必填项,不区分大小写 ├── -issuerKeyPwd # 颁发者的密钥口令,可选项 ├── -subject # 证书主题,必填项 ├── -validity # 证书有效期,可选项,默认为3650天 @@ -287,10 +287,10 @@ hap-sign-tool sign-app -keyAlias "oh-app1-key-v1" -signAlg "SHA256withECDSA" -mo 6.通用证书生成,可以生成自定义证书 generate-cert : 通用证书生成,可以生成自定义证书 - ├── -keyAlias # 密钥别名,必填项,密钥别名不区分大小写 + ├── -keyAlias # 密钥别名,必填项,不区分大小写 ├── -keyPwd # 密钥口令,可选项 ├── -issuer # 颁发者的主题,必填项 - ├── -issuerKeyAlias # 颁发者的密钥别名,必填项,密钥别名不区分大小写 + ├── -issuerKeyAlias # 颁发者的密钥别名,必填项,不区分大小写 ├── -issuerKeyPwd # 颁发者的密钥口令,可选项 ├── -subject # 证书主题,必填项 ├── -validity # 证书有效期,可选项,默认为1095天 @@ -316,7 +316,7 @@ hap-sign-tool sign-app -keyAlias "oh-app1-key-v1" -signAlg "SHA256withECDSA" -mo sign-profile : ProvisionProfile文件签名 ├── -mode # 签名模式,必填项,包括localSign,remoteSign - ├── -keyAlias # 密钥别名,必填项,密钥别名不区分大小写 + ├── -keyAlias # 密钥别名,必填项,不区分大小写 ├── -keyPwd # 密钥口令,可选项 ├── -profileCertFile # Profile签名证书(证书链,顺序为实体证书-中间CA证书-根证书),必填项 ├── -inFile # 输入的原始Provision Profile文件,必填项 @@ -335,7 +335,7 @@ hap-sign-tool sign-app -keyAlias "oh-app1-key-v1" -signAlg "SHA256withECDSA" -mo sign-app : 应用包和二进制工具签名 ├── -mode # 签名模式,必填项,包括localSign,remoteSign - ├── -keyAlias # 密钥别名,必填项,密钥别名不区分大小写 + ├── -keyAlias # 密钥别名,必填项,不区分大小写 ├── -keyPwd # 密钥口令,可选项 ├── -appCertFile # 应用签名证书文件(证书链,顺序为实体证书-中间CA证书-根证书),必填项 ├── -profileFile # 签名后的Provision Profile文件名,profileSigned为1时为p7b格式,profileSigned为0时为json格式,应用包签名必填项,二进制工具签名选填 -- Gitee From 89f467ca4c07cb5fa21576792c6b3f826210ef0d Mon Sep 17 00:00:00 2001 From: zhanzeyi Date: Sat, 27 Jul 2024 19:53:13 +0800 Subject: [PATCH 5/5] update Signed-off-by: zhanzeyi --- hapsigntool_cpp/cmd/src/cmd_util.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/hapsigntool_cpp/cmd/src/cmd_util.cpp b/hapsigntool_cpp/cmd/src/cmd_util.cpp index 61102bae..9ce00e5b 100644 --- a/hapsigntool_cpp/cmd/src/cmd_util.cpp +++ b/hapsigntool_cpp/cmd/src/cmd_util.cpp @@ -408,7 +408,6 @@ bool CmdUtil::ValidAndPutParam(const ParamsSharedPtr& params, const std::string& std::transform(keyAlias.begin(), keyAlias.end(), keyAlias.begin(), [](unsigned char c) { return std::tolower(c); }); params->GetOptions()->emplace(key, keyAlias); - } else { params->GetOptions()->emplace(key, std::string(value)); } -- Gitee