#include "..\include_dp1_header.h"

// 调用格式: SDT_TEXT 数字签名, 命令说明: "使用RSA非对称密钥算法对指定字节集数据进行签署，支持32到4096之间任意合法的RSA位数，返回签署后的结果文本。\r\n  附一、电子签名系统简要实现方法：\r\n  首先给所有具有签署权利的人员授予不同的RSA钥匙，RSA钥匙由“公钥”、“私钥”、“公共模数”三部分组成，为了生成符合要求的随机密钥，可以下载使用 http://dywt.com.cn/RSATool2v14.rar 第三方工具软件（内有操作说明）。然后将所有人员的“公钥”和“公共模数”成对向外公布，“私钥”由被授予人员自行妥善保管。\r\n  被授权人员使用“私钥”和“公共模数”对指定数据进行签署，然后将签署后的结果文本随同被签署数据一起发送，接收者收到后，使用该签署者公开的“公钥”和“公共模数”及签署结果文本对被签署数据进行验证，如验证通过则说明该数据必定是此签署者所认可的，且没有经过任何篡改。\r\n  附二、数字签名用作软件注册系统的实现步骤：\r\n  1、欲注册用户提供注册信息（如硬件代码、用户姓名等）；\r\n  2、软件作者使用自己的私钥对该注册信息进行数字签署得到签署结果文本；\r\n  3、将此签署结果文本作为注册钥匙文件发送给用户；\r\n  4、在用户端的软件使用相同的用户信息、注册钥匙文件及软件作者的公钥进行签名验证，如果通过表明已经注册，否则表示未注册。使用本方法在私钥未泄露的前提下，可以绝对避免破解者做出软件的注册机"
// 参数<1>: 待签署字节集数据 SDT_BIN, 参数说明: NULL
// 参数<2>: 签署者私钥文本 SDT_TEXT, 参数说明: "为十六进制数值文本"
// 参数<3>: 签署者公共模数 SDT_TEXT, 参数说明: "为十六进制数值文本"
DP1_EXTERN_C void dp1_RSAEncrypt_5_dp1(PMDATA_INF pRetData, INT nArgCount, PMDATA_INF pArgInf)
{
    LPBYTE   arg1 = pArgInf[0].m_pBin;
    LPSTR    arg2 = pArgInf[1].m_pText;
    LPSTR    arg3 = pArgInf[2].m_pText;

}

