Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Os valores a seguir são usados para identificar uma propriedade de armazenamento de chave.
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. Esta 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 Diffie-Hellman grupo de algoritmos. |
| 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. Pode ser um dos identificadores de algoritmo CNG predefinidos ou outro identificador de algoritmo registado. Esta 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 (Elliptic Curve Diffie-Hellman) a ser usada durante o logon para um determinado identificador para uma chave ECDSA (Elliptic Curve Digital Signature Algorithm). Se não houver chaves ECDH no cartão, o provedor de armazenamento de chaves (KSP) retornará NTE_NOT_FOUND. Esta propriedade aplica-se às chaves ECDSA para início de sessão com cartões inteligentes. A propriedade é suportada pelo fornecedor de armazenamento de chaves Microsoft Smart Card e não pelo fornecedor de armazenamento de chaves de Software Microsoft.
Windows Server 2008 e Windows Vista: Este valor não é suportado.
NCRYPT_BLOCK_LENGTH_PROPERTY
L"Block Length"
Um DWORD que contém o comprimento, em bytes, do bloco de criptografia. Esta propriedade aplica-se apenas a chaves que suportam encriptação.
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. Esta propriedade não é suportada pelo Microsoft Software Key Storage Provider.
NCRYPT_DH_PARAMETERS_PROPERTY
L"DHParameters"
Especifica parâmetros a serem usados com uma chave Diffie-Hellman. Este tipo de dados é um ponteiro para uma estrutura BCRYPT_DH_PARAMETER_HEADER . Esta 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. Esta propriedade só se aplica a chaves. Isso pode conter zero ou uma combinação de um ou mais dos seguintes valores.
| 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 simples. |
| 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. Esta 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 formato de texto simples para fins de arquivamento. Esse sinalizador só se aplica ao identificador de chave original no qual ele está definido. Esta 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 os 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 seguintes valores.
| Identificador | Valor | Descrição |
|---|---|---|
| NCRYPT_IMPL_HARDWARE_FLAG | 0x00000001 | O provedor é baseado em hardware. |
| NCRYPT_IMPL_SOFTWARE_FLAG | 0x00000002 | O fornecedor é baseado em software. |
| NCRYPT_IMPL_REMOVABLE_FLAG | 0x00000008 | O provedor é removível. |
| NCRYPT_IMPL_HARDWARE_RNG_FLAG | 0x00000010 | O provedor é um gerador de números aleatórios baseado em hardware. |
| NCRYPT_IMPL_VIRTUAL_ISOLATION_FLAG | 0x00000020 | O provedor é um provedor de isolamento virtualizado. |
NCRYPT_KEM_CIPHERTEXT_LENGTH_PROPERTY
L"KEM Ciphertext Length"
Um DWORD que contém o comprimento, em bytes, do texto cifrado. Esta propriedade só se aplica a chaves que suportam mecanismos de encapsulamento de chave (KEM).
NCRYPT_KEM_SHARED_SECRET_LENGTH_PROPERTY
L"KEM Shared Secret Length"
Um DWORD que contém o comprimento, em bytes, do segredo compartilhado. Esta propriedade só se aplica a chaves que suportam mecanismos de encapsulamento de chave (KEM).
NCRYPT_KEY_TYPE_PROPERTY
L"Key Type"
Um DWORD que contém um conjunto de sinalizadores que definem o tipo de chave. Esta propriedade só se aplica a chaves. Isso pode conter zero ou o seguinte valor.
| Identificador | Valor | Descrição |
|---|---|---|
| NCRYPT_MACHINE_KEY_FLAG | 0x00000020 | A chave aplica-se 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. Esta propriedade só se aplica a chaves. Isso pode conter zero ou uma combinação de um ou mais dos seguintes valores.
| Identificador | Valor | Descrição |
|---|---|---|
| NCRYPT_ALLOW_DECRYPT_FLAG | 0x00000001 | A chave pode ser usada para desencriptação. |
| NCRYPT_ALLOW_SIGNING_FLAG | 0x00000002 | A chave pode ser usada para assinar. |
| NCRYPT_ALLOW_KEY_AGREEMENT_FLAG | 0x00000004 | A chave pode ser usada para criptografia de contrato secreto. |
| NCRYPT_ALLOW_KEY_ATTESTATION_FLAG | 0x00000010 | Indica que a chave é uma chave com atestado. |
| 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. Este tipo de dados é um ponteiro para uma estrutura FILETIME . Esta propriedade só se aplica a chaves persistentes.
NCRYPT_LENGTH_PROPERTY
L"Length"
Um DWORD que contém o comprimento, em bits, da chave. Esta propriedade só se aplica a chaves.
NCRYPT_LENGTHS_PROPERTY
L"Lengths"
Indica os tamanhos de chave suportados pela chave. Esse tipo de dados é um ponteiro para uma estrutura de NCRYPT_SUPPORTED_LENGTHS que contém essas informações. Esta 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. Esta propriedade aplica-se apenas a um fornecedor.
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"
Este valor não é suportado.
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 para uma chave protegida por senha armazenada em um KSP baseado em software. Esta propriedade só pode ser definida. Os Microsoft KSPs 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ê deve 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. Esta propriedade só pode ser definida.
NCRYPT_ROOT_CERTSTORE_PROPERTY
L"SmartcardRootCertStore"
Um HCERTSTORE que representa o armazenamento 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. Esta é uma propriedade de leitura apenas. O PIN_ID tipo de dados é definido em Cardmod.h.
Windows Server 2008 e Windows Vista: Este valor não é suportado.
Observação
O Cardmod.h arquivo de cabeçalho C fornece informações adicionais que são relevantes para esta API. Este arquivo contém os protótipos de função e estruturas que a API de minidriver de cartão inteligente da Microsoft especifica. Esta API está disponível através do Microsoft Cryptographic Provider Development Kit (CPDK).
NCRYPT_SCARD_PIN_INFO
L"SmartCardPinInfo"
Um ponteiro para PIN_INFO estrutura do PIN associado a uma determinada chave criptográfica no cartão inteligente. O chamador fornece o identificador de chave. Esta propriedade é uma propriedade somente leitura. A PIN_INFO estrutura é definida em Cardmod.h.
Windows Server 2008 e Windows Vista: Este valor não é suportado.
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 do cartão inteligente. Esta propriedade só pode ser definida.
Windows Vista: Esta propriedade não é suportada.
NCRYPT_SECURITY_DESCR_PROPERTY
L"Security Descr"
Um ponteiro para uma estrutura de SECURITY_DESCRIPTOR que contém informações de controle de acesso para a chave. Esta 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 obtida ou definida.
NCRYPT_SECURITY_DESCR_SUPPORT_PROPERTY
L"Security Descr Support"
Indica se o provedor oferece suporte a descritores de segurança para chaves. Esta propriedade é um DWORD que contém 1 se o provedor oferece 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 oferece suporte a descritores de segurança para chaves. Esta propriedade aplica-se apenas a fornecedores.
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. Esta propriedade só se aplica a chaves persistentes. Essa propriedade só pode ser definida quando a chave está sendo gerada. Uma vez que a função NCryptFinalizeKey tenha 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 estrutura de NCRYPT_UI_POLICY_BLOB que contém as mesmas informações. Da mesma forma, quando um aplicativo faz uma solicitação por meio de NCryptSetPropertyFn ao provedor para retornar essa propriedade, espera-se que o provedor retorne uma estrutura NCRYPT_UI_POLICY_BLOB .
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. Este é 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 essa 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 avisar o usuário durante uma chamada para NCryptOpenKey (por exemplo, "Insira 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 avisar o usuário durante uma operação usando a chave (por exemplo, "Este aplicativo precisa usar essa chave para assinar um documento."). O provedor poderia então 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 oferece suporte à contagem de uso de chaves. Esta propriedade é um DWORD que contém 1 se o provedor oferecer 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 oferece suporte à contagem de uso para chaves. Esta propriedade aplica-se apenas a fornecedores.
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. Esta propriedade é opcional e pode não ser suportada por todos os fornecedores. Os provedores que oferecem suporte a essa propriedade em chaves também devem oferecer suporte à propriedade NCRYPT_USE_COUNT_ENABLED_PROPERTY no identificador do provedor. O provedor de armazenamento de chaves da Microsoft não oferece suporte a essa propriedade. Esta propriedade só se aplica a chaves persistentes.
NCRYPT_USER_CERTSTORE_PROPERTY
L"SmartCardUserCertStore"
Um HCERTSTORE que representa o armazenamento de certificados de usuário de cartão inteligente.
NCRYPT_VBS_ROOT_PUB_PROPERTY
L"VBS_ROOT_PUB"
Uma nova propriedade do provedor de MS_KEY_STORAGE_PROVIDER . Essa propriedade permite a recuperação da parte pública da chave de assinatura raiz (IDKS) da segurança baseada em virtualização (VBS).
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. Esta propriedade aplica-se apenas a fornecedores.
NCRYPT_WINDOW_HANDLE_PROPERTY
L"HWND Handle"
Um ponteiro para o identificador de janela (HWND) a ser usado como pai de qualquer interface de 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. |
Requerimentos
| Requisito | Valor |
|---|---|
| Cliente mínimo suportado | Windows Vista [apenas aplicações de ambiente de trabalho] |
| Servidor mínimo suportado | Windows Server 2008 [apenas aplicações de ambiente de trabalho] |
| Cabeçalho | Ncrypt.h |