Identificadores de propriedade de armazenamento de chaves

Os valores a seguir são usados para identificar uma propriedade de armazenamento de chaves.

Identificadores

NCRYPT_ALGORITHM_GROUP_PROPERTY

L"Algorithm Group"

Uma cadeia de caracteres Unicode terminada em nulo que contém o nome do grupo de algoritmos do objeto. Essa propriedade só se aplica a chaves. Os identificadores a seguir são retornados pelo provedor de armazenamento de chaves da Microsoft.

Identificador Valor Descrição
NCRYPT_RSA_ALGORITHM_GROUP "RSA" O grupo de algoritmos RSA.
NCRYPT_DH_ALGORITHM_GROUP "DH" O grupo de algoritmos Diffie-Hellman.
NCRYPT_DSA_ALGORITHM_GROUP "DSA" O grupo de algoritmos DSA.
NCRYPT_ECDSA_ALGORITHM_GROUP "ECDSA" O grupo de algoritmos DSA da curva elíptica.
NCRYPT_ECDH_ALGORITHM_GROUP "ECDH" A curva elíptica Diffie-Hellman grupo de algoritmos.

NCRYPT_ALGORITHM_PROPERTY

L"Algorithm Name"

Uma cadeia de caracteres Unicode terminada em nulo que contém o nome do algoritmo do objeto. Esse pode ser um dos Identificadores de Algoritmo CNG predefinidos ou outro identificador de algoritmo registrado. Essa propriedade só se aplica a chaves.

NCRYPT_ASSOCIATED_ECDH_KEY

L"SmartCardAssociatedECDHKey"

Um valor LPWSTR que indica o nome do contêiner da chave ECDH (curva elíptica Diffie-Hellman) a ser usada durante o logon de um determinado identificador para uma chave ECDSA (Algoritmo de Assinatura Digital de Curva Elíptica ). Se não houver chaves ECDH no cartão, o KSP ( provedor de armazenamento de chaves ) retornará NTE_NOT_FOUND. Essa propriedade se aplica a chaves ECDSA para logon com cartões inteligentes. A propriedade é compatível com o provedor de armazenamento de chaves do Cartão Inteligente da Microsoft e não pelo provedor de armazenamento de chaves do Microsoft Software.

Windows Server 2008 e Windows Vista: Não há suporte para esse valor.

NCRYPT_BLOCK_LENGTH_PROPERTY

L"Block Length"

Um DWORD que contém o comprimento, em bytes, do bloco de criptografia. Essa propriedade só se aplica a chaves que dão suporte à criptografia.

NCRYPT_CERTIFICATE_PROPERTY

L"SmartCardKeyCertificate"

Um BLOB que contém um certificado X.509 associado à chave.

Windows Server 2008 R2, Windows 7, Windows Server 2008 e Windows Vista: Um BLOB que contém o certificado de chave de cartão inteligente. Essa propriedade não tem suporte do Provedor de Armazenamento de Chaves de Software da Microsoft.

NCRYPT_DH_PARAMETERS_PROPERTY

L"DHParameters"

Especifica parâmetros a serem usados com uma chave Diffie-Hellman. Esse tipo de dados é um ponteiro para uma estrutura de BCRYPT_DH_PARAMETER_HEADER . Essa propriedade só pode ser definida e deve ser definida para a chave antes que a chave seja concluída.

NCRYPT_EXPORT_POLICY_PROPERTY

L"Export Policy"

Um DWORD que contém um conjunto de sinalizadores que especificam a política de exportação para uma chave persistente. Essa propriedade só se aplica a chaves. Isso pode conter zero ou uma combinação de um ou mais dos valores a seguir.

Identificador Valor Descrição
NCRYPT_ALLOW_EXPORT_FLAG 0x00000001 A chave privada pode ser exportada.
NCRYPT_ALLOW_PLAINTEXT_EXPORT_FLAG 0x00000002 A chave privada pode ser exportada em formato de texto sem formatação.
NCRYPT_ALLOW_ARCHIVING_FLAG 0x00000004 A chave privada pode ser exportada uma vez para fins de arquivamento. Esse sinalizador só se aplica ao identificador de chave original no qual ele está definido. Essa política só pode ser aplicada ao identificador de chave original. Depois que o identificador de chave for fechado, a chave não poderá mais ser exportada para fins de arquivamento.
NCRYPT_ALLOW_PLAINTEXT_ARCHIVING_FLAG 0x00000008 A chave privada pode ser exportada uma vez em forma de texto sem formatação para fins de arquivamento. Esse sinalizador só se aplica ao identificador de chave original no qual ele está definido. Essa política só pode ser aplicada ao identificador de chave original. Depois que o identificador de chave for fechado, a chave não poderá mais ser exportada para fins de arquivamento.

NCRYPT_IMPL_TYPE_PROPERTY

L"Impl Type"

Um DWORD que contém um conjunto de sinalizadores que definem detalhes de implementação do provedor. Essa propriedade só se aplica a provedores de armazenamento de chaves. Isso pode conter zero ou uma combinação de um ou mais dos valores a seguir.

Identificador Valor Descrição
NCRYPT_IMPL_HARDWARE_FLAG 0x00000001 O provedor é baseado em hardware.
NCRYPT_IMPL_SOFTWARE_FLAG 0x00000002 O provedor é baseado em software.
NCRYPT_IMPL_REMOVABLE_FLAG 0x00000008 O provedor é removível.
NCRYPT_IMPL_HARDWARE_RNG_FLAG 0x00000010 O provedor é um gerador de número aleatório baseado em hardware.

NCRYPT_KEY_TYPE_PROPERTY

L"Key Type"

Um DWORD que contém um conjunto de sinalizadores que definem o tipo de chave. Essa propriedade só se aplica a chaves. Isso pode conter zero ou o valor a seguir.

Identificador Valor Descrição
NCRYPT_MACHINE_KEY_FLAG 0x00000020 A chave se aplica ao computador local. Se esse sinalizador não estiver presente, a chave se aplicará ao usuário atual.

NCRYPT_KEY_USAGE_PROPERTY

L"Key Usage"

Um DWORD que contém um conjunto de sinalizadores que definem os detalhes de uso de uma chave. Essa propriedade só se aplica a chaves. Isso pode conter zero ou uma combinação de um ou mais dos valores a seguir.

Identificador Valor Descrição
NCRYPT_ALLOW_DECRYPT_FLAG 0x00000001 A chave pode ser usada para descriptografia.
NCRYPT_ALLOW_SIGNING_FLAG 0x00000002 A chave pode ser usada para assinatura.
NCRYPT_ALLOW_KEY_AGREEMENT_FLAG 0x00000004 A chave pode ser usada para criptografia de contrato secreto.
NCRYPT_ALLOW_ALL_USAGES 0x00ffffff A chave pode ser usada para qualquer finalidade.

NCRYPT_LAST_MODIFIED_PROPERTY

L"Modified"

Indica quando a chave foi modificada pela última vez. Esse tipo de dados é um ponteiro para uma estrutura FILETIME . Essa propriedade só se aplica a chaves persistentes.

NCRYPT_LENGTH_PROPERTY

L"Length"

Um DWORD que contém o comprimento, em bits, da chave. Essa propriedade só se aplica a chaves.

NCRYPT_LENGTHS_PROPERTY

L"Lengths"

Indica os tamanhos de chave compatíveis com a chave. Esse tipo de dados é um ponteiro para uma estrutura NCRYPT_SUPPORTED_LENGTHS que contém essas informações. Essa propriedade só se aplica a chaves.

NCRYPT_MAX_NAME_LENGTH_PROPERTY

L"Max Name Length"

Um DWORD que contém o comprimento máximo, em caracteres, do nome de uma chave persistente. Essa propriedade só se aplica a um provedor.

Essa propriedade destina-se principalmente a ser usada por provedores de armazenamento de chaves que armazenam suas chaves em um dispositivo que tem uma quantidade limitada de memória disponível, como um cartão inteligente.

NCRYPT_NAME_PROPERTY

L"Name"

Um ponteiro para uma cadeia de caracteres Unicode terminada em nulo que contém o nome do objeto.

NCRYPT_PIN_PROMPT_PROPERTY

L"SmartCardPinPrompt"

Não há suporte para esse valor.

NCRYPT_PIN_PROPERTY

L"SmartCardPin"

Um ponteiro para uma cadeia de caracteres Unicode terminada em nulo que contém o PIN. O PIN é usado para uma chave de cartão inteligente ou a senha de uma chave protegida por senha armazenada em um KSP baseado em software. Essa propriedade só pode ser definida. Os KSPs da Microsoft armazenarão esse valor em cache para que o usuário seja solicitado apenas uma vez por processo.

NCRYPT_PROVIDER_HANDLE_PROPERTY

L"Provider Handle"

Um NCRYPT_PROV_HANDLE que contém o identificador do provedor de armazenamento de chaves CNG. Quando terminar de usar o identificador, você deverá chamar NCryptFreeObject para liberá-lo.

NCRYPT_READER_PROPERTY

L"SmartCardReader"

Um ponteiro para uma cadeia de caracteres Unicode terminada em nulo que contém o nome do leitor de cartão inteligente. Essa propriedade só pode ser definida.

NCRYPT_ROOT_CERTSTORE_PROPERTY

L"SmartcardRootCertStore"

Um HCERTSTORE que representa o repositório de certificados raiz do cartão inteligente.

NCRYPT_SCARD_PIN_ID

L"SmartCardPinId"

Um ponteiro para o PIN_ID valor associado a uma determinada chave criptográfica em um cartão inteligente. Trata-se de uma propriedade somente leitura. O PIN_ID tipo de dados é definido em Cardmod.h.

Windows Server 2008 e Windows Vista: Não há suporte para esse valor.

NCRYPT_SCARD_PIN_INFO

L"SmartCardPinInfo"

Um ponteiro para PIN_INFO estrutura do PIN associada a uma determinada chave criptográfica no cartão inteligente. O chamador fornece o identificador de chave. Essa propriedade é somente leitura. A PIN_INFO estrutura é definida em Cardmod.h.

Windows Server 2008 e Windows Vista: Não há suporte para esse valor.

NCRYPT_SECURE_PIN_PROPERTY

L"SmartCardSecurePin"

Um ponteiro para uma cadeia de caracteres Unicode terminada em nulo que contém o PIN da sessão de cartão inteligente. Essa propriedade só pode ser definida.

Windows Vista: Não há suporte para essa propriedade.

NCRYPT_SECURITY_DESCR_PROPERTY

L"Security Descr"

Um ponteiro para uma estrutura SECURITY_DESCRIPTOR que contém informações de controle de acesso para a chave. Essa propriedade só se aplica a chaves persistentes. O parâmetro dwFlags da função NCryptGetProperty ou NCryptSetProperty identifica a parte do descritor de segurança a ser obtido ou definido.

NCRYPT_SECURITY_DESCR_SUPPORT_PROPERTY

L"Security Descr Support"

Indica se o provedor dá suporte a descritores de segurança para chaves. Essa propriedade é um DWORD que contém 1 se o provedor der suporte a descritores de segurança para chaves. Se essa propriedade contiver qualquer outro valor ou se a função NCryptGetProperty retornar NTE_NOT_SUPPORTED, o provedor não oferecerá suporte a descritores de segurança para chaves. Essa propriedade só se aplica a provedores.

NCRYPT_SMARTCARD_GUID_PROPERTY

L"SmartCardGuid"

Um BLOB que contém o identificador do cartão inteligente.

NCRYPT_UI_POLICY_PROPERTY

L"UI Policy"

Se usado com a função NCryptSetProperty ou NCryptGetProperty , esse é um ponteiro para uma estrutura NCRYPT_UI_POLICY que contém a política de interface do usuário de chave forte para a chave. Essa propriedade só se aplica a chaves persistentes. Essa propriedade só pode ser definida quando a chave está sendo gerada. Depois que a função NCryptFinalizeKey tiver sido chamada para essa chave, essa propriedade se tornará somente leitura.

Um provedor de armazenamento de chaves pode receber esse parâmetro por meio de uma função de retorno de chamada NCryptSetPropertyFn . O valor do parâmetro é uma NCRYPT_UI_POLICY_BLOB estrutura que contém as mesmas informações. Da mesma forma, quando um aplicativo faz uma solicitação por meio de NCryptSetPropertyFn para o provedor retornar essa propriedade, espera-se que o provedor retorne uma NCRYPT_UI_POLICY_BLOB estrutura.

NCRYPT_UNIQUE_NAME_PROPERTY

L"Unique Name"

Um ponteiro para uma cadeia de caracteres Unicode terminada em nulo que contém o nome exclusivo do objeto. Esse é um nome alternativo que pode ser usado ao acessar a chave. Essa propriedade é usada quando se pensa que o nome da chave originalmente passado para NCryptCreatePersistedKey não é exclusivo o suficiente para identificar de forma confiável a chave persistente. O provedor de armazenamento de chaves da Microsoft retornará o nome do arquivo da chave como esta propriedade.

NCRYPT_USE_CONTEXT_PROPERTY

L"Use Context"

Um ponteiro para uma cadeia de caracteres Unicode terminada em nulo que descreve o contexto da operação. Essa propriedade não é persistente e pode ser definida em um provedor ou em uma chave. Uma chave não tem acesso à NCRYPT_USE_CONTEXT_PROPERTY propriedade do provedor porque a propriedade é específica apenas para o identificador para o qual está definida.

Um exemplo em que essa propriedade seria usada no contexto de um provedor é um provedor de armazenamento de chaves que precisa solicitar ao usuário durante uma chamada para NCryptOpenKey (por exemplo, "Inserir seu cartão inteligente no leitor"). Como o identificador de chave não está disponível até que NCryptOpenKey retorne, o aplicativo deve definir essa propriedade no identificador do provedor antes de chamar NCryptOpenKey.

Um exemplo em que essa propriedade seria usada no contexto de um identificador de chave é um provedor de armazenamento de chaves que precisa solicitar ao usuário durante uma operação usando a chave (por exemplo, "Este aplicativo precisa usar essa chave para assinar um documento"). Em seguida, o provedor pode retransmitir essas informações de contexto para o usuário em qualquer interface do usuário mostrada durante a operação.

NCRYPT_USE_COUNT_ENABLED_PROPERTY

L"Enabled Use Count"

Indica se o provedor dá suporte à contagem de uso para chaves. Essa propriedade é um DWORD que contém 1 se o provedor der suporte à contagem de uso para chaves. Se essa propriedade contiver qualquer outro valor ou se a função NCryptGetProperty retornar NTE_NOT_SUPPORTED, o provedor não oferecerá suporte à contagem de uso para chaves. Essa propriedade só se aplica a provedores.

NCRYPT_USE_COUNT_PROPERTY

L"Use Count"

Uma variável ULARGE_INTEGER que contém o número de operações que a chave privada especificada executou. Essa propriedade é opcional e pode não ter suporte de todos os provedores. Os provedores que dão suporte a essa propriedade em chaves também devem dar suporte à NCRYPT_USE_COUNT_ENABLED_PROPERTY propriedade no identificador do provedor. O provedor de armazenamento de chaves da Microsoft não dá suporte a essa propriedade. Essa propriedade só se aplica a chaves persistentes.

NCRYPT_USER_CERTSTORE_PROPERTY

L"SmartCardUserCertStore"

Um HCERTSTORE que representa o repositório de certificados do usuário de cartão inteligente.

NCRYPT_VERSION_PROPERTY

L"Version"

Um DWORD que contém a versão de software do provedor. A palavra alta contém a versão principal e a palavra baixa contém a versão secundária. Por exemplo, 0x00030033 = 3.51. Essa propriedade só se aplica a provedores.

NCRYPT_WINDOW_HANDLE_PROPERTY

L"HWND Handle"

Um ponteiro para o identificador de janela (HWND) a ser usado como o pai de qualquer interface do usuário exibida.

Como um comportamento indesejável pode acontecer quando uma interface do usuário é mostrada usando um identificador de janela NULL para o pai, é altamente recomendável que um provedor de armazenamento de chaves não exiba uma interface do usuário, a menos que essa propriedade esteja definida.

Os valores a seguir são usados para definir limites de dados de propriedade.

Constante Valor Descrição
NCRYPT_MAX_PROPERTY_DATA 0x100000 Especifica o tamanho máximo de um valor de propriedade, em bytes.
NCRYPT_MAX_PROPERTY_NAME 64 Especifica o tamanho máximo de um nome de propriedade, em caracteres.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
parâmetro Ncrypt.h

Confira também