я пытаюсь импортировать мой ключ pem в Google KMS (с поддержкой hsm). У меня есть руководство Google, как его создать с openssl:
Обернуть ключ Создать временный случайный ключ AES длиной 32 байта.
openssl rand -out temp_aes_key.bin 32
Обернуть временный ключ AES с помощью Завершение публикации ключа c с использованием CKM_RSA_PKCS_OAEP.
openssl rsautl -encrypt
-pubin -inkey wrap_pub_key.pub
-in temp_aes_key.bin
-out temp_aes_key_wrapped.bin
-oaep
Обертывание ключа назначения временным ключом AES с использованием CKM_AES_KEY_WRAP_PAD.
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
Обратите внимание на использование -iv A65959A6 устанавливает A65959A как A65959 Альтернативное начальное значение в соответствии с требованиями спецификации RF C 5649.
У меня есть wrap_pub_key.pub и my_key.pem, где wrap_pub_key.pub:
-----BEGIN PUBLIC KEY-----
...........key...........
-----END PUBLIC KEY-----
Как запрограммировать эти шаги в nodeJs с помощью cryto lib (без openssl)?