aardio 文档

crypt.rsa 库模块帮助文档

crypt 成员列表 #

crypt.rsa #

RSA加密算法支持库

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

返回对象传入原生 API 参数时会自动转换为密钥容器句柄(CSP handle)。

返回对象:cryptrsaObject

crypt.rsa() #

返回对象:cryptrsaObject

crypt.rsa(provider,provType,container,flags) #

创建 RSA 密钥容器,所有参数可选。

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.delete() #

释放并且删除密钥容器。
谨慎调用此函数,一般不应当调用此函数。
大多时候应当仅调用 release 方法释放密钥容器而不是删除它。
除非在创建此对象时最后一个构造参数 @flags 指定了8/*_CRYPT_NEWKEYSET*/
创建对象时使用构造参数 @container 指定容器名时也会默认将 @flags 指定为 8/*_CRYPT_NEWKEYSET*/

此函数等价于先调用 release 方法释放自身,然后以相同的参数重新调用构造函数并将 @flags 参数指定为 0x10/*_CRYPT_DELETEKEYSET*/

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 类型。
参数 @keySpec 可指定为 2/*_AT_SIGNATURE*/1/*_AT_KEYEXCHANGE*/
改为调用 exportPublicKeyInfo2 则自动指定 keySpec 参数。
参数 @encodingType 用法请参考 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.signToUrlBase64(keySpec,flags) #

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

cryptrsaObject.verifyFromBase64(signBase64,flags) #

验证签名。
对参数 @signBase64 指定的签名进行 Base64 解码并反转字节序(为了兼容通用格式)。
@flags 参数不必指定,
验证签名以前必须首先导入公钥,并创建哈希对象

cryptrsaObject.verifyFromUrlBase64(signBase64,flags) #

验证签名。
对参数 @signBase64 指定的签名进行 UrlBase64 编码并反转字节序(为了兼容通用格式)。
@flags 参数不必指定,
验证签名以前必须首先导入公钥,并创建哈希对象

cryptrsaObject.verifySignature(sign,flags) #

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

Markdown 格式