
# 完整性校验
#### 操作说明
对下载的SDK安装包进行完整性校验，判断下载过程是否存在篡改和丢包现象。
#### 数字签名CMS文件验签操作步骤
1. 参考[下载SDK安装包](https://support.huaweicloud.com/api-metastudio/metastudio_08_0005.html)，下载SDK安装包至本地。
2. 从华为[support官网](https://support.huawei.com/additionalres/pki)下载根CA证书和4个吊销证书。
   
   文件如下所示：
   - CA文件：Huawei Software Integrity Protection Root CA.der
   
   - CRL文件：HuaweiRootCA.crl、HuaweiCodeSigningCA.crl、HuaweiCodeSigningCA 2.crl、HuaweiCodeSigningCA 3.crl
    
   
   
3. 转换CA证书和CRL文件的格式，从DER到PEM。 
   CRL文件：
   ```
   openssl crl -inform DER -in "HuaweiRootCA.crl" -out HuaweiRootCaCrl.pem
   openssl crl -inform DER -in "HuaweiCodeSigningCA 3.crl" -out HuaweiCodeSigningCA3.pem
   openssl crl -inform DER -in "HuaweiCodeSigningCA 2.crl" -out HuaweiCodeSigningCA2.pem
   openssl crl -inform DER -in HuaweiCodeSigningCA.crl -out HuaweiCodeSigningCA.pem
   ```
   CA文件：
   ```
   openssl x509 -inform DER -in "Huawei Software Integrity Protection Root CA.der" -out HuaweiRootCA.pem
   ```
   
   
4. 使用记事本依次打开下述4个文件，将文件内容依次复制至HuaweiRootCA.pem文件内容的后面。 
   - HuaweiRootCaCrl.pem
   
   - HuaweiCodeSigningCA3.pem
   
   - HuaweiCodeSigningCA2.pem
   
   - HuaweiCodeSigningCA.pem
   
   
   
   
5. 执行下述命令，进行CMS验签。 
   ```
   openssl cms -verify -inform DER -crl_check_all -in hmwsdk-win-demo-win32.zip.cms -content hmwsdk-win-demo-win32.zip -CAfile HuaweiRootCA.pem -out cmsVerifiedData -binary -purpose any -certsout tmpCertChain.pem
   ```
   命令执行结果示例，如下所示，说明验签成功。
   ```
   CMS Verification successful
   ```
   
   
 
