我尝试将我的 pem key 导入 Google KMS(支持 hsm)。我有谷歌指南如何使用 openssl 创建:
<小时/>包裹 key 生成一个 32 字节长的临时随机 AES key 。
openssl rand -out temp_aes_key.bin 32
使用 CKM_RSA_PKCS_OAEP 将临时 AES key 与包装公钥包装在一起。
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 key 包装目标 key 。
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中编写此步骤?
最佳答案
我认为您正在关注此guide我不熟悉 NodeJs,但是我发现下一个文档可能会有所帮助,
我找到了github repo list云平台服务/API 支持的每种语言!
我认为你可以从这个可用的 examples 开始
如果您需要更多详细信息,可以使用这些引用资料:
最后我明白了,当你导入这种 key 时,你需要选择key wrapping algorithms
我希望您发现这些信息有帮助
关于javascript - NodeJs 加密 key 创建(google kms key 导入) NodeJs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59741766/