NodeJs加密密钥创建(Google kms密钥导入)NodeJs

时间:2020-01-14 21:04:32

标签: javascript node.js cryptography cryptojs google-cloud-kms

我尝试将我的Pem密钥导入Google KMS(支持hsm)。我有Google指南如何使用openssl创建它:


包装钥匙 生成一个长度为32个字节的临时随机AES密钥。

openssl rand -out temp_aes_key.bin 32

使用CKM_RSA_PKCS_OAEP将临时AES密钥与换行公用密钥换行。

openssl rsautl -encrypt
-pubin -inkey wrap_pub_key.pub
-in temp_aes_key.bin
-out temp_aes_key_wrapped.bin
-oaep

使用CKM_AES_KEY_WRAP_PAD用临时AES密钥包装目标密钥。

openssl enc -id-aes256-wrap-pad  -K $( hexdump -v -e '/1
"%02x"' < "temp_aes_key.bin" )  -iv A65959A6  -in my_key.pem
-out target_key_wrapped.bin

请注意,按照RFC 5649规范的要求,使用-iv A65959A6会将A65959A6设置为备用初始值。

我有wrap_pub_key.pub和my_key.pem,其中wrap_pub_key.pub:

-----BEGIN PUBLIC KEY-----
...........key...........
-----END PUBLIC KEY-----

如何使用cryto lib(不带openssl)在nodeJs中编程此步骤?

1 个答案:

答案 0 :(得分:1)

我认为您正在关注guide,但我对NodeJ并不熟悉,但是我发现下一个文档可能会有所帮助,

我发现Cloud Platform服务/ API支持的每种语言的github repo list

我认为您可以从可用的examples

开始

如果您需要更多详细信息,可以使用以下参考:

最后,我了解到,导入此类密钥时,您需要选择一个key wrapping algorithms

希望此信息对您有帮助