Gerar um par de chaves EC assimétricas com a CLI do CloudHSM
Use o key asymmetric-pair ec comando na CLI do CloudHSM para gerar um par de chaves RSA assimétricas de curva elíptica (EC) em seu cluster AWS CloudHSM.
Tipo de usuário
Os seguintes tipos de usuários podem executar este comando.
-
Usuários de criptografia (CUs)
Requisitos
Para executar esse comando, você deve estar registrado como um CU.
Sintaxe
aws-cloudhsm >
help key generate-asymmetric-pair ec
Generate an Elliptic-Curve Cryptography (ECC) key pair Usage: key generate-asymmetric-pair ec [OPTIONS] --public-label
<PUBLIC_LABEL>
--private-label<PRIVATE_LABEL>
--curve<CURVE>
Options: --cluster-id<CLUSTER_ID>
Unique Id to choose which of the clusters in the config file to run the operation against. If not provided, will fall back to the value provided when interactive mode was started, or error --public-label<PUBLIC_LABEL>
Label for the public key --private-label<PRIVATE_LABEL>
Label for the private key --session Creates a session key pair that exists only in the current session. The key cannot be recovered after the session ends --curve<CURVE>
Elliptic curve used to generate the key pair [possible values: prime256v1, secp256r1, secp224r1, secp384r1, secp256k1, secp521r1] --public-attributes [<PUBLIC_KEY_ATTRIBUTES>
...] Space separated list of key attributes to set for the generated EC public key in the form of KEY_ATTRIBUTE_NAME=KEY_ATTRIBUTE_VALUE --private-attributes [<PRIVATE_KEY_ATTRIBUTES>
...] Space separated list of key attributes to set for the generated EC private key in the form of KEY_ATTRIBUTE_NAME=KEY_ATTRIBUTE_VALUE -h, --help Print help
Exemplos
Esses exemplos mostram como usar o key generate-asymmetric-pair ec comando para criar um par de chaves EC.
exemplo Exemplo: criar um par de chaves EC
aws-cloudhsm >
key generate-asymmetric-pair ec \ --curve secp224r1 \ --public-label ec-public-key-example \ --private-label ec-private-key-example
{ "error_code": 0, "data": { "public_key": { "key-reference": "0x000000000012000b", "key-info": { "key-owners": [ { "username": "cu1", "key-coverage": "full" } ], "shared-users": [], "cluster-coverage": "session" }, "attributes": { "key-type": "ec", "label": "ec-public-key-example", "id": "", "check-value": "0xd7c1a7", "class": "public-key", "encrypt": false, "decrypt": false, "token": false, "always-sensitive": false, "derive": false, "destroyable": true, "extractable": true, "local": true, "modifiable": true, "never-extractable": false, "private": true, "sensitive": false, "sign": false, "trusted": false, "unwrap": false, "verify": false, "wrap": false, "wrap-with-trusted": false, "key-length-bytes": 57, "ec-point": "0x047096513df542250a6b228fd9cb67fd0c903abc93488467681974d6f371083fce1d79da8ad1e9ede745fb9f38ac8622a1b3ebe9270556000c", "curve": "secp224r1" } }, "private_key": { "key-reference": "0x000000000012000c", "key-info": { "key-owners": [ { "username": "cu1", "key-coverage": "full" } ], "shared-users": [], "cluster-coverage": "session" }, "attributes": { "key-type": "ec", "label": "ec-private-key-example", "id": "", "check-value": "0xd7c1a7", "class": "private-key", "encrypt": false, "decrypt": false, "token": false, "always-sensitive": true, "derive": false, "destroyable": true, "extractable": true, "local": true, "modifiable": true, "never-extractable": false, "private": true, "sensitive": true, "sign": false, "trusted": false, "unwrap": false, "verify": false, "wrap": false, "wrap-with-trusted": false, "key-length-bytes": 122, "ec-point": "0x047096513df542250a6b228fd9cb67fd0c903abc93488467681974d6f371083fce1d79da8ad1e9ede745fb9f38ac8622a1b3ebe9270556000c", "curve": "secp224r1" } } } }
exemplo Exemplo: criar um par de chaves EC com atributos opcionais
aws-cloudhsm >
key generate-asymmetric-pair ec \ --curve secp224r1 \ --public-label ec-public-key-example \ --private-label ec-private-key-example \ --public-attributes token=true encrypt=true \ --private-attributes token=true decrypt=true
{ "error_code": 0, "data": { "public_key": { "key-reference": "0x00000000002806eb", "key-info": { "key-owners": [ { "username": "cu1", "key-coverage": "full" } ], "shared-users": [], "cluster-coverage": "full" }, "attributes": { "key-type": "ec", "label": "ec-public-key-example", "id": "", "check-value": "0xedef86", "class": "public-key", "encrypt": true, "decrypt": false, "token": true, "always-sensitive": false, "derive": false, "destroyable": true, "extractable": true, "local": true, "modifiable": true, "never-extractable": false, "private": true, "sensitive": false, "sign": false, "trusted": false, "unwrap": false, "verify": false, "wrap": false, "wrap-with-trusted": false, "key-length-bytes": 57, "ec-point": "0x0487af31882189ec29eddf17a48e8b9cebb075b7b5afc5522fe9c83a029a450cc68592889a1ebf45f32240da5140d58729ffd7b2d44262ddb8", "curve": "secp224r1" } }, "private_key": { "key-reference": "0x0000000000280c82", "key-info": { "key-owners": [ { "username": "cu1", "key-coverage": "full" } ], "shared-users": [], "cluster-coverage": "full" }, "attributes": { "key-type": "ec", "label": "ec-private-key-example", "id": "", "check-value": "0xedef86", "class": "private-key", "encrypt": false, "decrypt": true, "token": true, "always-sensitive": true, "derive": false, "destroyable": true, "extractable": true, "local": true, "modifiable": true, "never-extractable": false, "private": true, "sensitive": true, "sign": false, "trusted": false, "unwrap": false, "verify": false, "wrap": false, "wrap-with-trusted": false, "key-length-bytes": 122, "ec-point": "0x0487af31882189ec29eddf17a48e8b9cebb075b7b5afc5522fe9c83a029a450cc68592889a1ebf45f32240da5140d58729ffd7b2d44262ddb8", "curve": "secp224r1" } } } }
Argumentos
<CLUSTER_ID>
-
O ID do cluster em que essa operação será executada.
Obrigatório: se vários clusters tiverem sido configurados.
<CURVE>
-
Especifica o identificador da curva elíptica.
prime256v1
secp256r1
secp224r1
secp384r1
secp256k1
secp521r1
Obrigatório: Sim
<PUBLIC_KEY_ATTRIBUTES>
-
Especifica uma lista separada por espaços dos principais atributos a serem definidos para a chave pública EC gerada na forma de
KEY_ATTRIBUTE_NAME=KEY_ATTRIBUTE_VALUE
(por exemplo,token=true
)Para obter uma lista dos atributos de chave compatíveis, consulte Atributos de chave da CLI do CloudHSM.
Obrigatório: Não
<PUBLIC_LABEL>
-
Especifica um rótulo definido pelo usuário para a chave pública. O tamanho máximo permitido para
label
é de 127 caracteres no Client SDK 5.11 e versões posteriores. O Client SDK 5.10 e versões anteriores têm um limite de 126 caracteres.Obrigatório: Sim
<PRIVATE_KEY_ATTRIBUTES>
-
Especifica uma lista separada por espaços dos principais atributos a serem definidos para a chave privada EC gerada na forma de
KEY_ATTRIBUTE_NAME=KEY_ATTRIBUTE_VALUE
(por exemplo,token=true
)Para obter uma lista dos atributos de chave compatíveis, consulte Atributos de chave da CLI do CloudHSM.
Obrigatório: Não
<PRIVATE_LABEL>
-
Especifica o rótulo da chave privada definida pelo usuário. O tamanho máximo permitido para
label
é de 127 caracteres no Client SDK 5.11 e versões posteriores. O Client SDK 5.10 e versões anteriores têm um limite de 126 caracteres.Obrigatório: Sim
<SESSION>
-
Cria uma chave que existe apenas na sessão atual. A chave não pode ser recuperada após o término da sessão.
Use esse parâmetro quando precisar de uma chave apenas brevemente, como uma chave de empacotamento que criptografa e, em seguida, descriptografa rapidamente outra chave. Não use uma chave de sessão para criptografar dados que você talvez precise descriptografar após o término da sessão.
Por padrão, as chaves geradas são chaves persistentes (tokens). Passar <SESSION> muda isso, garantindo que uma chave gerada com esse argumento seja uma chave de sessão (efêmera).
Obrigatório: Não