aardio 文档

crypt.rsa 库模块帮助文档

crypt 成员列表

crypt.rsa

RSA加密算法支持库

crypt.rsa()

创建RSA加密容器,不建议指定参数,

返回对象:cryptrsaObject

cryptrsaObject 成员列表

cryptrsaObject.allocBuffer

分配加解密需要用到的 buffer。

cryptrsaObject.allocBuffer(大小,块大小)

分配加解密需要用到的 buffer。
如果不手动分配,程序将会自动按需分配 buffer。
参数 @2 可选,可用对象的blockSize属性指定默认块大小。

cryptrsaObject.blockSize

加密填充的块大小

cryptrsaObject.createHash()

返回对象:cryptHashObject

cryptrsaObject.createHashByHmac()

返回对象:cryptHashObject

cryptrsaObject.createHashByHmac(哈希数据,哈希算法)

所有参数可选,
哈希算法默认为_CALG_SHA1

cryptrsaObject.createHashByKey()

返回对象:cryptHashObject

cryptrsaObject.createHashByKey(算法ID)

使用当前密钥创建哈希

cryptrsaObject.createHashByMd2()

创建MD2算法哈希对象
可选使用一个字符串参数指定哈希数据

返回对象:cryptHashObject

cryptrsaObject.createHashByMd4()

创建MD4算法哈希对象
可选使用一个字符串参数指定哈希数据

返回对象:cryptHashObject

cryptrsaObject.createHashByMd5()

创建MD5算法哈希对象
可选使用一个字符串参数指定哈希数据

返回对象:cryptHashObject

cryptrsaObject.createHashBySha1()

创建Sha1算法哈希对象
可选使用一个字符串参数指定哈希数据

返回对象:cryptHashObject

cryptrsaObject.createHashBySha256()

创建 Sha256 算法哈希对象,
可选使用一个字符串参数指定哈希数据

返回对象:cryptHashObject

cryptrsaObject.createHashBySha384()

创建 Sha384 算法哈希对象,
可选使用一个字符串参数指定哈希数据

返回对象:cryptHashObject

cryptrsaObject.createHashBySha512()

创建 Sha512 算法哈希对象,
可选使用一个字符串参数指定哈希数据

返回对象:cryptHashObject

cryptrsaObject.decodeObject(encoded,encodingType,structType)

解码对象,
参数@1为buffer或字符串,返回值为buffer类型,
用法参考 crypt.rsa中相关函数

cryptrsaObject.decrypt

RSA解密。解密模式为 RSA/ECB/PKCS1Padding。
与其他解密结果字节序相反的编程语言互通可改用 decryptReverse 函数。

cryptrsaObject.decrypt(输入数据,是否已输入全部数据,哈希对象,选项)

参数 @1 指定字符串或 buffer。
除第一个参数以外,其他参数都是可选参数。
分块解密时,参数 @2 必须为 flase 且参数 @1 的长度必须是块大小的倍数。
成功返回解密文本,失败返回空,
可使用..lasterr()函数获取错误信息

cryptrsaObject.decrypt(输入缓冲区,输入数据大小,哈希对象,选项)

参数 @1 指定 buffer 或字符串。
如果参数 @2 指定的数值小于缓冲区据总长度,解密结束。
可使用 -1 表示解密结束,且输入数据大小等于缓冲区大小。
其他参数可忽略不用管。

成功返回存放解密结果的字符串,返回值 2 为返回字符串的长度。
失败返回 null, 错误信息,错误代码。

cryptrsaObject.decryptFile

解密文件

解密文件

cryptrsaObject.decryptFile(加密源文件路径,输出文件路径,缓冲区大小,哈希对象,选项)

参数 @1 指定要解密的文件路径。
参数 @2 指定要保存解密结果的文件路径。
可选用参数 @3 指定分块加密的字节长度,默认为 1MB。
指定字节长度时会自动调整到对齐块大小,参数不需要考虑对齐。
其他参数一般不必指定。

cryptrsaObject.decryptFile(输入文件,输出文件,缓冲区大小,进度回调函数,哈希对象,选项)

参数 @1 指定要解密的文件。参数 @2 指定要保存解密结果的文件。
文件参数都可以指定文件路径、文件对象(兼容 io.file,fsys.file,fsys.stream)。
可选用参数 @3 指定分块加密的字节长度,默认为 1MB。
指定字节长度时会自动调整到对齐块大小,参数不需要考虑对齐。
可选指定进度回调函数,回调参数 @1,@2 分别为输入文件总长度、已读取长度。
其他调用参数(哈希对象,选项)一般不必指定。

函数执行成功返回 true,失败返回 null,错误信息。

cryptrsaObject.decryptOaep(字符串,是否已输入全部数据,哈希对象)

RSA 解密。
填充模式为 PKCS#1 OAEP,其他与 decrypt 函数相同。
除第一个参数以外,其他参数都是可选参数
成功返回解密文本,失败返回空,
可使用..lasterr()函数获取错误信息

cryptrsaObject.decryptOaepReverse(字符串)

RSA 解密,反转字节序。
填充模式为 PKCS#1 OAEP,其他与 decryptReverse 函数相同。
成功返回解密文本,失败返回空,
可使用..lasterr()函数获取错误信息

cryptrsaObject.decryptReverse

RSA解密,反转字节序,
解密模式为 RSA/ECB/PKCS1Padding

cryptrsaObject.decryptReverse(字符串,选项)

选项为可选参数
成功返回解密文本,失败返回空,
可使用..lasterr()函数获取错误信息

cryptrsaObject.decryptToArray

RSA解密,并返回字符串数组,
解密模式为 RSA/ECB/PKCS1Padding
与C#、Java等互通建议改用decryptReverse

cryptrsaObject.decryptToArray(字符串,是否已输入全部数据,哈希对象,选项)

除第一个参数以外,其他参数都是可选参数
成功返回解密文本,失败返回空,
可使用..lasterr()函数获取错误信息

cryptrsaObject.duplicateKey()

获取并复制当前使用的密钥,
该密钥必须调用 destroy 成员函数手动销毁

返回对象:cryptKeyObject

cryptrsaObject.encodeObject(structInfo,encodingType,structType)

编码对象,
参数@1为buffer或字符串,返回值为buffer类型,
用法参考 crypt.rsa中相关函数

cryptrsaObject.encrypt

加密数据

RSA加密
加密模式为 RSA/ECB/PKCS1Padding
与与其他有k密结果字节序相反的编程语言互通可改用 encryptReverse 函数。

cryptrsaObject.encrypt(输入数据,是否已输入全部数据,哈希对象,选项)

参数 @1 指定字符串或 buffer。
除第一个参数以外,其他参数都是可选参数。
分块加密时,参数 @2 必须为 flase 且参数 @1 的长度必须是块大小的倍数。
成功返回加密文本,失败返回空,
可使用..lasterr()函数获取错误信息

cryptrsaObject.encrypt(输入缓冲区,输入数据大小,哈希对象,选项)

参数 @1 指定 buffer 或字符串。
如果参数 @2 指定的数值小于缓冲区据总长度,加密结束。
可使用 -1 表示解密结束,且输入数据大小等于缓冲区大小。
其他参数可忽略不用管。

成功返回存放加密结果的字符串,返回值 2 为返回字符串的长度。
失败返回 null, 错误信息,错误代码。

cryptrsaObject.encryptFile

加密文件

加密文件

cryptrsaObject.encryptFile(加密源文件路径,输出文件路径,缓冲区大小,哈希对象,选项)

参数 @1 指定要加密的文件路径。
参数 @2 指定要保存加密结果的文件路径。
可选用参数 @3 指定分块加密的字节长度,默认为 1MB。
指定字节长度时会自动调整到对齐块大小,参数不需要考虑对齐
其他参数一般不必指定。

cryptrsaObject.encryptFile(输入文件,输出文件,缓冲区大小,进度回调函数,哈希对象,选项)

参数 @1 指定要加密的文件。参数 @2 指定要保存加密结果的文件。
文件参数都可以指定文件路径、文件对象(兼容 io.file,fsys.file,fsys.stream)。
可选用参数 @3 指定分块加密的字节长度,默认为 1MB。
指定字节长度时会自动调整到对齐块大小,参数不需要考虑对齐。
可选指定进度回调函数,回调参数 @1,@2 分别为输入文件总长度、已读取长度。
其他调用参数(哈希对象,选项)一般不必指定。

函数执行成功返回 true,失败返回 null,错误信息。

cryptrsaObject.encryptOaep(字符串,是否已输入全部数据,哈希对象,选项)

RSA 加密。
填充模式为 PKCS#1 OAEP,其他与 encrypt 函数相同。
除第一个参数以外,其他参数都是可选参数
成功返回加密文本,失败返回空,
可使用..lasterr()函数获取错误信息

cryptrsaObject.encryptOaepReverse(字符串)

RSA加密,反转字节序。
填充模式为 PKCS#1 OAEP,其他与 encryptReverse 函数相同。
成功返回加密文本,失败返回空,
可使用..lasterr()函数获取错误信息

cryptrsaObject.encryptReverse

RSA加密,反转字节序,
加密模式为 RSA/ECB/PKCS1Padding

cryptrsaObject.encryptReverse(字符串,选项)

选项为可选可选参数
成功返回加密文本,失败返回空,
可使用..lasterr()函数获取错误信息

cryptrsaObject.encryptToArray

RSA加密,并返回字符串数组,
加密模式为 RSA/ECB/PKCS1Padding
与C#、Java等互通建议改用encryptReverse

cryptrsaObject.encryptToArray(字符串,是否已输入全部数据,哈希对象,选项)

除第一个参数以外,其他参数都是可选参数
成功返回加密文本,失败返回空,
可使用..lasterr()函数获取错误信息

cryptrsaObject.exportKey(导出密钥类型,选项,加密密钥句柄)

导出密钥,除参数一以外其他参数可选
参数1为密钥类型,参数三为导出密钥可为空

cryptrsaObject.exportPkcs8(keySpec,objId)

导出PKCS#8格式私钥,返回值为buffer类型,
用法参考 crypt.rsa中相关函数

cryptrsaObject.exportPlainTextKey(选项,加密密钥句柄)

导出文本密钥,参数可选

cryptrsaObject.exportPrivateKey(选项,加密密钥句柄)

导出私钥,参数可选

cryptrsaObject.exportPrivateKeyPkcs1Raw()

导出 PKCS#1 格式私钥,
返回值为buffer类型

cryptrsaObject.exportPrivateKeyPkcs1RawToPem()

导出 PKCS#1 格式私钥(PEM),
返回值为string类型

cryptrsaObject.exportPrivateKeyPkcs8()

导出通用的 PKCS#8 格式私钥,
可选用参数@1指定密钥类型为 _AT_SIGNATURE 或 _AT_KEYEXCHANGE,
建议不指定参数自动获取默认设置

cryptrsaObject.exportPrivateKeyPkcs8ToPem()

导出通用的 PKCS#8 格式私钥(PEM),
可选用参数@1指定密钥类型为 _AT_SIGNATURE 或 _AT_KEYEXCHANGE,
建议不指定参数自动获取默认设置

cryptrsaObject.exportPublicKey(选项,加密密钥句柄)

导出公钥,参数可选

cryptrsaObject.exportPublicKeyInfo(keySpec,encodingType)

导出公钥信息(CERT_PUBLIC_KEY_INFO),返回值为buffer类型,
用法参考 crypt.rsa中相关函数

cryptrsaObject.exportPublicKeyPkcs1Raw()

导出 PKCS#1 格式公钥,
返回值为buffer类型

cryptrsaObject.exportPublicKeyPkcs1RawToPem()

导出 PKCS#1 格式公钥(PEM),
返回值为string类型

cryptrsaObject.exportPublicKeyX509()

导出通用的 SPKI(Subject Public Key Info)格式公钥,
可选用参数@1指定密钥类型为 _AT_SIGNATURE 或 _AT_KEYEXCHANGE,
建议不指定参数自动获取默认设置,
返回值为buffer类型

cryptrsaObject.exportPublicKeyX509ToPem()

导出通用的 SPKI(Subject Public Key Info)格式公钥(PEM),
可选用参数@1指定密钥类型为 _AT_SIGNATURE 或 _AT_KEYEXCHANGE,
建议不指定参数自动获取默认设置,
返回值为string类型

cryptrsaObject.genKey(algid,flags,size)

产生一个随机的会话密钥或者公/私钥对,
所有参数可选,algid指定算法,flags指定选项,size指定密钥长度

cryptrsaObject.genSignatureKey(size,flags)

创建用于签名算法的公/私钥对,
@size 指定密钥长度,以二进制位为单位,省略此参数则默认为 2048,
@flags 指定选项,一般不必指定

cryptrsaObject.getKeyAlgId()

返回当前密钥算法 ID

cryptrsaObject.getKeyBlockLen()

获取密钥块长度

cryptrsaObject.getKeyParam(类型,数据值)

获取密钥参数
数据值应当指定一个结构体
不指定数据值则自动分配buffer对象存储返回值
失败返回null

cryptrsaObject.getKeyParamNumber(类型)

获取数值类型密钥参数

cryptrsaObject.getKeySpec()

返回当前密钥类型,
返回值为 _AT_SIGNATURE 或 _AT_KEYEXCHANGE

cryptrsaObject.getUserKey(keySpec)

获取密钥,并设置为默认密钥
参数指定密钥类型,例如 _AT_SIGNATURE
成功返回true

cryptrsaObject.hasKey()

检测是否已设置密钥

cryptrsaObject.hash(字符串,是否大写,返回16位结果,算法)

计算哈希值,
除第一个参数以外,其他参数可选
默认使用MD5算法

cryptrsaObject.hashFile(文件路径,是否大写,算法)

计算哈希值,
除第一个参数以外,其他参数可选
默认使用MD5算法

cryptrsaObject.importKey(密钥,选项,公钥句柄)

导入密钥,
密钥可以是结构体或字符串格式,
参数2可选,参数3可选
成功返回true,失败返回null,错误信息

cryptrsaObject.importPemKey()

参数 @1 使用字符串指定 PEM 格式密钥。
如果导入成功返回 PEM 格式头

cryptrsaObject.importPemKeyFile()

参数 @1 使用字符串指定 PEM 格式密钥文件。
如果导入成功返回 PEM 格式头

cryptrsaObject.importPrivateKeyInfo(certPrivateKeyInfo,encodingType,structType)

导入私钥信息(CRYPT_PRIVATE_KEY_INFO),参数@1为buffer或字符串,
用法参考 crypt.rsa中相关函数,
成功返回true

cryptrsaObject.importPrivateKeyPkcs1Raw()

导入 PKCS#1 格式私钥,
参数@1为string或buffer类型私钥

cryptrsaObject.importPrivateKeyPkcs1RawFromPem()

导入 PKCS#1 格式私钥(PEM),
参数@1为string或buffer类型私钥

cryptrsaObject.importPrivateKeyPkcs8()

导入通用的 PKCS#8 格式私钥,
参数@1为string或buffer类型私钥

cryptrsaObject.importPrivateKeyPkcs8FromPem()

导入通用的 PKCS#8 格式私钥(PEM),
参数@1为string或buffer类型私钥

cryptrsaObject.importPublicKeyInfo(certPublicKeyiNFO,encodingType)

导入公钥信息(CERT_PUBLIC_KEY_INFO),参数@1为buffer或字符串,
用法参考 crypt.rsa中相关函数,
成功返回true

cryptrsaObject.importPublicKeyPkcs1Raw()

导入 PKCS#1 格式公钥,
参数@1为string或buffer类型私钥

cryptrsaObject.importPublicKeyPkcs1RawFromPem()

导入 PKCS#1 格式公钥(PEM),
参数@1为string或buffer类型私钥

cryptrsaObject.importPublicKeyX509()

导入通用的 SPKI(Subject Public Key Info)格式公钥,
参数@1为string或buffer类型公钥数据

cryptrsaObject.importPublicKeyX509FromPem()

导入通用的 SPKI(Subject Public Key Info)格式公钥(PEM),
参数@1为string或buffer类型公钥数据

cryptrsaObject.lastHash

最后一次调用createHashXXX() 系列函数创建的哈希对象

cryptrsaObject.release()

释放密码服务对象(CSP)
此函数可在对象析构时自动调用

cryptrsaObject.setInitVector(字符串向量,选项)

设置初始化向量,成功返回true,
参数2可选

cryptrsaObject.setKey(密钥句柄)

设置新的默认密钥句柄,
该密钥将由密钥容器管理,不需要释放该密钥
参数为null则删除密钥

cryptrsaObject.setKeyParam(类型,数据值,选项)

设置加密参数
数据值可以是结构体,字符串,或 buffer 对象,
如果数据值一个数值参数,则转换为表示32位整型数值地址的结构体指针
成功返回true,失败请使用 ..lasterr()获取错误信息

cryptrsaObject.setKeyParamMode(_CRYPT_MODE)

设置加密模式
成功返回true,失败请使用 ..lasterr()获取错误信息

cryptrsaObject.setKeyParamPadding(_PKCS5)

设置加密填充方式
成功返回true,失败请使用 ..lasterr()获取错误信息

cryptrsaObject.setPassword("字符串参数",HASH算法ID,加密算法ID,选项)

设置会话密钥
成功返回密码容器对象,失败返回null

cryptrsaObject.sign(keySpec,flags)

返回签名
可选用 @keySpec 参数中指定密钥类型,
@flags 不必指定

cryptrsaObject.signToBase64(keySpec,flags)

签名并反转字节序,进行 Base64 编码后返回,
可选用 @keySpec 参数中指定密钥类型,
@flags 参数不必指定

cryptrsaObject.verifyFromBase64(signBase64,flags)

验证签名,
参数@signBase64 为 Base64编码并反转字节序的签名,
@flags 参数不必指定,
验证签名以前必须首先导入公钥,并创建哈希对象

cryptrsaObject.verifySignature(sign,flags)

验证签名,
参数@1为签名字符串,其他参数可选
验证签名以前必须首先导入公钥,并创建哈希

Markdown 格式