概述 使用“包装密钥”加密密钥材料 说明 执行完此步骤后可获得以下文件: 对称密钥场景:EncryptedKeyMaterial.bin密钥材料 非对称密钥场景:EncryptedKeyMaterial.bin临时密钥材料和outrsaprivatekey.der私钥密文 方法一:使用下载的包装密钥在自己的HSM中加密密钥材料。 方法二:使用OpenSSL生成密钥材料,并用下载的“包装密钥”对密钥材料进行加密。 说明 若用户需要使用openssl pkeyutl命令,OpenSSL需要是1.0.2及以上版本。 步骤 1 生成密钥材料(256位对称密钥),并将生成的密钥材料以“PlaintextKeyMaterial.bin”命名保存。 配套算法为AES256对称密钥时,在已安装OpenSSL工具的客户端上,执行以下命令。 openssl rand out PlaintextKeyMaterial.bin 32 配套算法为RSA、ECC非对称密钥时,在已安装OpenSSL工具的客户端上,执行以下命令。 生成16进制AES256密钥: openssl rand out 0xPlaintextKeyMaterial.bin hex 32 将16进制AES256密钥转换成二进制格式: cat 0xPlaintextKeyMaterial.bin xxd r ps > PlaintextKeyMaterial.bin 步骤 2 使用下载的“包装密钥”加密密钥材料,并将加密后的密钥材料按“EncryptedKeyMaterial.bin”命名保存。 若“包装密钥”由控制台下载,以下命令中的PublicKey.bin 参数请以下载的包装密钥名称wrappingKey密钥ID进行替换。 使用下载的包装密钥加密生成的密钥材料 包装密钥算法 加密生成的密钥材料 RSAESOAEPSHA256 openssl pkeyutl inPlaintextKeyMaterial.bin inkeyPublicKey.bin outEncryptedKeyMaterial.bin keyform der pubin encrypt pkeyopt rsapaddingmode:oaep pkeyopt rsaoaepmd:sha256 RSAESOAEPSHA1 openssl pkeyutl inPlaintextKeyMaterial.bin inkeyPublicKey.bin outEncryptedKeyMaterial.bin keyform der pubin encrypt pkeyopt rsapaddingmode:oaep pkeyopt rsaoaepmd:sha1 SM2ENCRYPT gmssl pkeyutl encrypt pkeyopt ecscheme:sm2 pkeyopt ecencryptparam:sm3 inPlaintextKeyMaterial.bin pubin inkeyPublicKey.bin keyform derout EncryptedKeyMaterial.bin 步骤 3 (可选)对于导入非对称密钥的场景,需要生成非对称私钥,并使用临时密钥材料(“ EncryptedKeyMaterial.bin”)对私钥进行加密,加密后的文件作为“私钥密文”导入。 执行以下命令(以配套算法为“RSA4096算法”为例): 生成私钥 openssl genrsa out rsaprivatekey.pem 4096 转换成der格式 openssl pkcs8 topk8 inform PEM outform DER in rsaprivatekey.pem out rsaprivatekey.der nocrypt 使用临时密钥材料对私钥进行加密 openssl enc idaes256wrappad K $(cat 0xPlaintextKeyMaterial.bin) iv A65959A6 in rsaprivatekey.der out outrsaprivatekey.der 说明 默认情况下,OpenSSL命令行工具中未启用包装密码算法idaes256wrappad。您可以下载并安装最新版本的OpenSSL,然后对其进行修补,以完成导入非对称密钥所需的信封包装。