(PECL rnp >= 0.1.1)
rnp_op_generate_key — 生成密钥
$ffi
,$userid
,$key_alg
,$sub_alg
= ?,$options
= ?
ffi
由 rnp_ffi_create 返回的 FFI 对象。
userid
PGP 用户 ID - 旨在表示密钥持有人姓名和电子邮件地址的文本。
key_alg
主密钥算法(例如,'RSA'、'DSA' 等)。
sub_alg
子密钥算法。如果不设置,将不会生成子密钥。
options
包含选项的关联数组。
键 | 数据类型 | 描述 |
---|---|---|
"bits" |
整数 | 主密钥大小(以位为单位)。仅适用于 RSA、DSA 和 El-Gamal 密钥。 |
"hash" |
字符串 | 用于自签名或子密钥绑定签名的哈希算法。 |
"dsa_qbits" |
整数 | 设置 DSA 密钥的 q 参数的大小。注意:将设置适当的默认值,具体取决于密钥位数。但是,如果需要,你可以覆盖它。 |
"curve" |
字符串 | 设置用于 ECC 密钥的曲线。注意:这仅适用于 ECDSA、ECDH 和 SM2 密钥。 |
"request_password" |
布尔值 | 启用通过密码提供程序请求密码。此密码将用于密钥加密。密码提供程序回调函数应通过调用 rnp_ffi_set_pass_provider() 提前设置。注意:如果通过 "password" 设置密码,此设置将被忽略。 |
"password" |
字符串 | 设置用于加密密钥数据密码。 |
"expiration" |
整数 | 设置密钥和子密钥到期时间(以秒为单位)。 |
"sub_bits" |
整数 | 子密钥大小(以位为单位)。仅适用于 RSA、DSA 和 El-Gamal 密钥。 |
"sub_hash" |
字符串 | 用于子密钥自签名或子密钥绑定签名的哈希算法。 |
"sub_curve" |
字符串 | 设置用于 ECC 子密钥的曲线。注意:这仅适用于 ECDSA、ECDH 和 SM2 密钥。 |
生成的公钥指纹或失败时的 false
。此指纹稍后可用于在签名和加密操作中引用密钥。密钥数据存储在 FFI 内存上下文中,可以使用 rnp_save_keys() 或 rnp_save_keys_to_path() 保存。