• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 签名工具仓<a name="ZH-CN_TOPIC_0000001086718894"></a>
2
3-   [简介](#section11660541593)
4-   [目录](#section161941989596)
5-   [约束](#section119744591305)
6-   [说明](#section1312121216216)
7-   [常见问题](#section1312121216343)
8
9## 简介<a name="section11660541593"></a>
10
11在OpenHarmony构建中需要对应用进行签名,以此保证应用完整性和来源可靠。本仓提供二进制签名工具(hapsigntoolv2.jar),用于OpenHarmony应用签名。
12
13## 目录<a name="section161941989596"></a>
14
15```
16/prebuilts/signcenter
17├── NOTICE                     # 开源NOTICE
18├── hapsigntool                # 签名工具存放目录
19│   └── hapsigntoolv2.jar     # OpenHarmony应用签名工具
20```
21
22## 约束<a name="section119744591305"></a>
23
24运行环境约束:JDK8
25
26## 说明<a name="section1312121216216"></a>
27
28签名命令示例:
29
30```
31java -jar hapsigntoolv2.jar sign -mode localjks -privatekey "OpenHarmony Software Signature" -inputFile camera.hap -outputFile signed_camera.hap -signAlg SHA256withECDSA -keystore OpenHarmony.jks -keystorepasswd 123456 -keyaliaspasswd 123456 -profile camera_release.p7b -certpath OpenHarmony.cer -profileSigned 1
32```
33
34关键字段说明:
35
36```
37hapsigntoolv2.jar :OpenHarmony签名工具
38-mode :签名模式。OpenHarmony签名密钥存放于本地keystore文件,因此签名模式选择localjks
39-privatekey:密钥对别名
40-inputFile :待签名的应用
41-outputFile:签名后的应用
42-signAlg : 签名算法
43-keystore:keystore文件路径
44-keystorepasswd:keystore的密码,OpenHarmony.jks的默认密码为123456
45-keyaliaspasswd:签名密钥的密码,密钥(OpenHarmony Software Signature)的默认密码为123456
46-profile :应用能力授权文件
47-certpath:签名证书文件路径
48-profileSigned:指示profile文件是否带有签名,1表示有签名,0表示没有签名,缺省值为1。
49```
50
51## 常见问题<a name="section1312121216343"></a>
52
53**1.密钥对别名参数不正确**
54
55- **现象描述**
56
57执行命令后提示 "error:Key Alias is not right"。
58
59- **可能原因**
60
61密钥对别名参数不正确。
62
63- **解决办法**
64
65填写生成应用证书对应的正确的密钥对别名。
66
67
68**2.profile文件被篡改**
69
70- **现象描述**
71
72执行命令后提示 "error:Verify profile pkcs7 failed! Profile is invalid"。
73
74- **可能原因**
75
76profile文件被篡改。
77
78 - **解决办法**
79
80检查profile文件是否被篡改。
81
82**3.签名算法填写不正确**
83
84- **现象描述**
85
86执行命令后提示 "error:Invalid parameter:Sign Alg"。
87
88- **可能原因**
89
90签名算法填写不正确。
91
92- **解决办法**
93
94应用证书密钥对推荐使用ECC生成,hap签名算法修改为ECC对应的SHA256withECDSA,SHA384withECDSA
95
96
97**4.签名密钥口令或密钥库口令错误或密钥库文件格式错误**
98
99- **现象描述**
100
101执行命令后提示 "error:Store File error,possible reason:1.please check whther Store Password or key Password is right,2.Sign Alg does not match with Alg of private key,etc"。
102
103- **可能原因**
104
105签名密钥口令或密钥库口令错误或密钥库文件格式错误
106
107
108- **解决办法**
109
110检查并修正签名密钥口令或密钥库口令;检查密钥库文件格式是否正确,填写正确格式的密钥库文件
111
112**5.密钥库文件、原始包文件、证书文件不存在或文件名填写不正确**
113
114- **现象描述**
115
116执行命令后提示 "java.io.FileNotFoundException: (文件名)(系统找不到指定的文件)"。
117
118- **可能原因**
119
120 密钥库文件、原始包文件、证书文件不存在或文件名填写不正确
121
122
123
124- **解决办法**
125
126根据报错提示检查具体文件名是否存在或是否填写正确。
127
128**6.证书文件格式错误**
129
130- **现象描述**
131
132执行命令后提示 "No certificates configured for signer"。
133
134- **可能原因**
135
136 证书文件格式错误
137
138
139- **解决办法**
140
141检查证书文件的格式是否正确,填写正确的证书文件。
142
143
144