用外部工具创建一个签名的配方

<< 点击显示目录 >>

主页  mappServices帮助手册 > mapp Recipe:配方管理 > 使用案例 >

用外部工具创建一个签名的配方

mapp Services V5.16

要求

带有机器数据的配方是由机器制造商创建的。机器制造商希望防止终端客户修改机器数据并可能损坏机器。出于这个原因,配方应该与机器数据一起签名。

解决方案

组件列表

MpRecipeXml (自有MpLink):保存和加载配方文件。

MpRecipeRegPar (来自MpRecipeXml的MpLink):注册过程变量(PVs)。整个结构体也可以被注册。

连接图

mprecipeusecase_5_6

配置该组件

MpRecipe配置允许指定一个密码来签署配方数据。

usecase56_config

使用mapp组件

如果现在加载一个配方,将检查其内容和定义的密码,以确定该配方是否包含有效数据。

配方是在外部创建的。

如果使用FTP客户端程序(如FileZilla)从控制器下载配方,必须遵守以下规定。

该文件必须以二进制格式传输。这样可以确保所需文件的二进制文件被正确传输。这是创建有效签名的唯一方法。

mprecipeusecase6_clientprogram_settings

然后必须生成签名并保存在第二个文件中。该签名是一个 基于 SHA256HMAC 值。这个签名可以按以下方式生成。

在我们的用例中,签名是用 HashCalc工具生成的

输入口令。

usecase6_choosekey

为了生成 SHA256 值,选择 "SHA256 "并按 "计算"。

usecase6_generatesha256

计算出的 SHA256 值就会显示在这里。

usecase6_shapassword

选择HMAC密钥。

首先, SHA256 值被复制。然后选择HMAC,将密钥添加为 "十六进制字符串"。

usecase6_inserthmac

选择配方文件。

现在指定配方文件。选择数据格式 "文件",然后选择配方文件。

usecase6_chooserecipefile

选择文件后,点击 "计算"。

签名就会显示在这里:

usecase6_finalsignature

这个值会被保存在一个新的文件中。该文件必须与配方文件的名称相同,但文件扩展名为.mprecipesgn(例如:Recipe1.xml.mprecipesgn)。

usecase6_recipewithsignaturefiles

该文件的结构必须像这样, 在 "值 "下输入先前生成的 SHA256 值。

usecase6_sgnfile

如果配方文件和签名文件具有相同的名称,并且保存在相同的数据存储设备上(用 "DeviceName "定义),并且在 配置中启用了签名选项 ,那么MpRecipe将在加载文件时检查签名。如果配方文件没有被改变,那么检查将是成功的。否则,将显示一个错误。