(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" |
integer | 主密钥大小(以位为单位)。仅适用于 RSA、DSA 和 El-Gamal 密钥。 |
"hash" |
string | 在自签名或子密钥绑定签名中使用的哈希算法。 |
"dsa_qbits" |
integer | 设置DSA密钥的q 参数的大小。注意:将根据密钥位数设置适当的默认值。但是,如果需要,您可以覆盖它。 |
"curve" |
string | 设置用于ECC密钥的曲线。注意:这仅适用于ECDSA、ECDH和SM2密钥。 |
"request_password" |
boolean | 启用通过密码提供程序请求密码。此密码将用于密钥加密。应通过调用rnp_ffi_set_pass_provider()预先设置密码提供程序回调函数。注意:如果通过"password" 设置了密码,则将忽略此设置。 |
"password" |
string | 设置用于加密密钥数据的密码。 |
"expiration" |
integer | 设置密钥和子密钥的过期时间(以秒为单位)。 |
"sub_bits" |
integer | 子密钥大小(以位为单位)。仅适用于 RSA、DSA 和 El-Gamal 密钥。 |
"sub_hash" |
string | 在子密钥自签名或子密钥绑定签名中使用的哈希算法。 |
"sub_curve" |
string | 设置用于ECC子密钥的曲线。注意:这仅适用于ECDSA、ECDH和SM2密钥。 |
生成的密钥指纹,或者在失败时返回false
。此指纹可用于稍后在签名和加密操作中引用密钥。密钥数据存储在FFI内存上下文中,可以使用rnp_save_keys()或rnp_save_keys_to_path()保存。