Identificatori delle proprietà di archiviazione delle chiavi

I valori seguenti vengono usati per identificare una proprietà di archiviazione delle chiavi.

Identificatori

NCRYPT_ALGORITHM_GROUP_PROPERTY

L"Algorithm Group"

Stringa Unicode con terminazione Null contenente il nome del gruppo di algoritmi dell'oggetto. Questa proprietà si applica solo alle chiavi. Gli identificatori seguenti vengono restituiti dal provider di archiviazione chiavi Microsoft.

Identificatore Valore Descrizione
NCRYPT_RSA_ALGORITHM_GROUP "RSA" Gruppo di algoritmi RSA.
NCRYPT_DH_ALGORITHM_GROUP "DH" Gruppo di algoritmi Diffie-Hellman.
NCRYPT_DSA_ALGORITHM_GROUP "DSA" Gruppo di algoritmi DSA.
NCRYPT_ECDSA_ALGORITHM_GROUP "ECDSA" Gruppo di algoritmi DSA curva ellittica.
NCRYPT_ECDH_ALGORITHM_GROUP "ECDH" La curva ellittica Diffie-Hellman gruppo di algoritmi.

NCRYPT_ALGORITHM_PROPERTY

L"Algorithm Name"

Stringa Unicode con terminazione Null contenente il nome dell'algoritmo dell'oggetto. Può trattarsi di uno degli identificatori di algoritmo CNG predefiniti o di un altro identificatore di algoritmo registrato. Questa proprietà si applica solo alle chiavi.

NCRYPT_ASSOCIATED_ECDH_KEY

L"SmartCardAssociatedECDHKey"

Valore LPWSTR che indica il nome del contenitore della chiave ECDH (Elliptic Curve Diffie-Hellman) da usare durante l'accesso per un determinato handle a una chiave ECDSA (Elliptic Curve Digital Signature Algorithm). Se nella scheda non sono presenti chiavi ECDH, il provider di archiviazione chiavi restituisceNTE_NOT_FOUND. Questa proprietà si applica alle chiavi ECDSA per l'accesso con smart card. La proprietà è supportata dal provider di archiviazione chiavi della smart card Microsoft e non dal provider di archiviazione chiavi software Microsoft.

Windows Server 2008 e Windows Vista: Questo valore non è supportato.

NCRYPT_BLOCK_LENGTH_PROPERTY

L"Block Length"

DWORD che contiene la lunghezza, in byte, del blocco di crittografia. Questa proprietà si applica solo alle chiavi che supportano la crittografia.

NCRYPT_CERTIFICATE_PROPERTY

L"SmartCardKeyCertificate"

BLOB che contiene un certificato X.509 associato alla chiave.

Windows Server 2008 R2, Windows 7, Windows Server 2008 e Windows Vista:BLOB che contiene il certificato della chiave della smart card. Questa proprietà non è supportata dal provider di archiviazione chiavi software Microsoft.

NCRYPT_DH_PARAMETERS_PROPERTY

L"DHParameters"

Specifica i parametri da usare con una chiave Diffie-Hellman. Questo tipo di dati è un puntatore a una struttura BCRYPT_DH_PARAMETER_HEADER . Questa proprietà può essere impostata solo e deve essere impostata per la chiave prima del completamento della chiave.

NCRYPT_EXPORT_POLICY_PROPERTY

L"Export Policy"

DWORD che contiene un set di flag che specificano i criteri di esportazione per una chiave persistente. Questa proprietà si applica solo alle chiavi. Può contenere zero o una combinazione di uno o più dei valori seguenti.

Identificatore Valore Descrizione
NCRYPT_ALLOW_EXPORT_FLAG 0x00000001 La chiave privata può essere esportata.
NCRYPT_ALLOW_PLAINTEXT_EXPORT_FLAG 0x00000002 La chiave privata può essere esportata in formato testo non crittografato.
NCRYPT_ALLOW_ARCHIVING_FLAG 0x00000004 La chiave privata può essere esportata una volta per scopi di archiviazione. Questo flag si applica solo all'handle di chiave originale in cui è impostato. Questo criterio può essere applicato solo all'handle di chiave originale. Dopo la chiusura dell'handle di chiave, la chiave non può più essere esportata a scopo di archiviazione.
NCRYPT_ALLOW_PLAINTEXT_ARCHIVING_FLAG 0x00000008 La chiave privata può essere esportata una sola volta in formato testo non crittografato a scopo di archiviazione. Questo flag si applica solo all'handle di chiave originale in cui è impostato. Questo criterio può essere applicato solo all'handle di chiave originale. Dopo la chiusura dell'handle di chiave, la chiave non può più essere esportata a scopo di archiviazione.

NCRYPT_IMPL_TYPE_PROPERTY

L"Impl Type"

DWORD che contiene un set di flag che definiscono i dettagli di implementazione del provider. Questa proprietà si applica solo ai provider di archiviazione delle chiavi. Può contenere zero o una combinazione di uno o più dei valori seguenti.

Identificatore Valore Descrizione
NCRYPT_IMPL_HARDWARE_FLAG 0x00000001 Il provider è basato su hardware.
NCRYPT_IMPL_SOFTWARE_FLAG 0x00000002 Il provider è basato su software.
NCRYPT_IMPL_REMOVABLE_FLAG 0x00000008 Il provider è rimovibile.
NCRYPT_IMPL_HARDWARE_RNG_FLAG 0x00000010 Il provider è un generatore di numeri casuali basato su hardware.

NCRYPT_KEY_TYPE_PROPERTY

L"Key Type"

DWORD che contiene un set di flag che definiscono il tipo di chiave. Questa proprietà si applica solo alle chiavi. Può contenere zero o il valore seguente.

Identificatore Valore Descrizione
NCRYPT_MACHINE_KEY_FLAG 0x00000020 La chiave si applica al computer locale. Se questo flag non è presente, la chiave viene applicata all'utente corrente.

NCRYPT_KEY_USAGE_PROPERTY

L"Key Usage"

DWORD che contiene un set di flag che definiscono i dettagli di utilizzo per una chiave. Questa proprietà si applica solo alle chiavi. Può contenere zero o una combinazione di uno o più dei valori seguenti.

Identificatore Valore Descrizione
NCRYPT_ALLOW_DECRYPT_FLAG 0x00000001 La chiave può essere usata per la decrittografia.
NCRYPT_ALLOW_SIGNING_FLAG 0x00000002 La chiave può essere usata per la firma.
NCRYPT_ALLOW_KEY_AGREEMENT_FLAG 0x00000004 La chiave può essere usata per la crittografia del contratto segreto.
NCRYPT_ALLOW_ALL_USAGES 0x00ffffff La chiave può essere usata per qualsiasi scopo.

NCRYPT_LAST_MODIFIED_PROPERTY

L"Modified"

Indica quando la chiave è stata modificata per l'ultima volta. Questo tipo di dati è un puntatore a una struttura FILETIME . Questa proprietà si applica solo alle chiavi persistenti.

NCRYPT_LENGTH_PROPERTY

L"Length"

DWORD che contiene la lunghezza, espressa in bit, della chiave. Questa proprietà si applica solo alle chiavi.

NCRYPT_LENGTHS_PROPERTY

L"Lengths"

Indica le dimensioni della chiave supportate dalla chiave. Questo tipo di dati è un puntatore a una struttura NCRYPT_SUPPORTED_LENGTHS che contiene queste informazioni. Questa proprietà si applica solo alle chiavi.

NCRYPT_MAX_NAME_LENGTH_PROPERTY

L"Max Name Length"

DWORD che contiene la lunghezza massima, espressa in caratteri, del nome di una chiave persistente. Questa proprietà si applica solo a un provider.

Questa proprietà è destinata principalmente all'uso da parte dei provider di archiviazione delle chiavi che archiviano le chiavi in un dispositivo con una quantità limitata di memoria disponibile, ad esempio una smart card.

NCRYPT_NAME_PROPERTY

L"Name"

Puntatore a una stringa Unicode con terminazione Null contenente il nome dell'oggetto.

NCRYPT_PIN_PROMPT_PROPERTY

L"SmartCardPinPrompt"

Questo valore non è supportato.

NCRYPT_PIN_PROPERTY

L"SmartCardPin"

Puntatore a una stringa Unicode con terminazione Null contenente il PIN. Il PIN viene usato per una chiave smart card o la password per una chiave protetta da password archiviata in un provider di chiavi basato su software. Questa proprietà può essere impostata solo. I KSP Microsoft memorizzano nella cache questo valore in modo che all'utente venga richiesto una sola volta per ogni processo.

NCRYPT_PROVIDER_HANDLE_PROPERTY

L"Provider Handle"

Un NCRYPT_PROV_HANDLE che contiene l'handle del provider di archiviazione delle chiavi CNG. Al termine dell'uso dell'handle, è necessario chiamare NCryptFreeObject per rilasciarlo.

NCRYPT_READER_PROPERTY

L"SmartCardReader"

Puntatore a una stringa Unicode con terminazione Null contenente il nome del lettore di smart card. Questa proprietà può essere impostata solo.

NCRYPT_ROOT_CERTSTORE_PROPERTY

L"SmartcardRootCertStore"

HCERTSTORE che rappresenta l'archivio certificati radice della smart card.

NCRYPT_SCARD_PIN_ID

L"SmartCardPinId"

Puntatore al PIN_ID valore associato a una determinata chiave crittografica in una smart card. Questa proprietà è di sola lettura. Il PIN_ID tipo di dati è definito in Cardmod.h.

Windows Server 2008 e Windows Vista: Questo valore non è supportato.

NCRYPT_SCARD_PIN_INFO

L"SmartCardPinInfo"

Puntatore a PIN_INFO struttura del PIN associato a una determinata chiave crittografica sulla smart card. Il chiamante fornisce l'handle della chiave. Questa proprietà è una proprietà di sola lettura. La PIN_INFO struttura è definita in Cardmod.h.

Windows Server 2008 e Windows Vista: Questo valore non è supportato.

NCRYPT_SECURE_PIN_PROPERTY

L"SmartCardSecurePin"

Puntatore a una stringa Unicode con terminazione Null che contiene il PIN della sessione di smart card. Questa proprietà può essere impostata solo.

Windows Vista: Questa proprietà non è supportata.

NCRYPT_SECURITY_DESCR_PROPERTY

L"Security Descr"

Puntatore a una struttura SECURITY_DESCRIPTOR che contiene le informazioni sul controllo di accesso per la chiave. Questa proprietà si applica solo alle chiavi permanenti. Il parametro dwFlags della funzione NCryptGetProperty o NCryptSetProperty identifica la parte del descrittore di sicurezza da ottenere o impostare.

NCRYPT_SECURITY_DESCR_SUPPORT_PROPERTY

L"Security Descr Support"

Indica se il provider supporta descrittori di sicurezza per le chiavi. Questa proprietà è una DWORD che contiene 1 se il provider supporta descrittori di sicurezza per le chiavi. Se questa proprietà contiene qualsiasi altro valore o se la funzione NCryptGetProperty restituisce NTE_NOT_SUPPORTED, il provider non supporta i descrittori di sicurezza per le chiavi. Questa proprietà si applica solo ai provider.

NCRYPT_SMARTCARD_GUID_PROPERTY

L"SmartCardGuid"

BLOB che contiene l'identificatore della smart card.

NCRYPT_UI_POLICY_PROPERTY

L"UI Policy"

Se usato con la funzione NCryptSetProperty o NCryptGetProperty , si tratta di un puntatore a una struttura NCRYPT_UI_POLICY che contiene i criteri di interfaccia utente chiave avanzata per la chiave. Questa proprietà si applica solo alle chiavi permanenti. Questa proprietà può essere impostata solo quando viene generata la chiave. Dopo aver chiamato la funzione NCryptFinalizeKey per questa chiave, questa proprietà diventa di sola lettura.

Un provider di archiviazione chiavi può ricevere questo parametro tramite una funzione di callback NCryptSetPropertyFn . Il valore del parametro è una NCRYPT_UI_POLICY_BLOB struttura che contiene le stesse informazioni. Analogamente, quando un'applicazione effettua una richiesta tramite NCryptSetPropertyFn al provider per restituire questa proprietà, il provider deve restituire una NCRYPT_UI_POLICY_BLOB struttura.

NCRYPT_UNIQUE_NAME_PROPERTY

L"Unique Name"

Puntatore a una stringa Unicode con terminazione Null contenente il nome univoco dell'oggetto. Si tratta di un nome alternativo che può essere usato durante l'accesso alla chiave. Questa proprietà viene usata quando si ritiene che il nome della chiave originariamente passato a NCryptCreatePersistedKey non sia sufficientemente univoco per identificare in modo affidabile la chiave persistente. Il provider di archiviazione chiavi Microsoft restituirà il nome file della chiave come questa proprietà.

NCRYPT_USE_CONTEXT_PROPERTY

L"Use Context"

Puntatore a una stringa Unicode con terminazione Null che descrive il contesto dell'operazione. Questa proprietà non è persistente e può essere impostata su un provider o su una chiave. Una chiave non ha accesso alla NCRYPT_USE_CONTEXT_PROPERTY proprietà del provider perché la proprietà è specifica solo per l'handle per cui è impostata.

Un esempio in cui questa proprietà verrà usata nel contesto di un provider è un provider di archiviazione chiavi che deve richiedere all'utente durante una chiamata a NCryptOpenKey (ad esempio, "Inserire la smart card nel lettore"). Poiché l'handle di chiave non è disponibile finché non viene restituito NCryptOpenKey , l'applicazione deve impostare questa proprietà sull'handle del provider prima di chiamare NCryptOpenKey.

Un esempio in cui questa proprietà viene usata nel contesto di un handle di chiave è un provider di archiviazione chiavi che deve richiedere all'utente durante un'operazione di usare la chiave , ad esempio "Questa applicazione deve usare questa chiave per firmare un documento". Il provider potrebbe quindi inoltrare queste informazioni di contesto all'utente in qualsiasi interfaccia utente visualizzata durante l'operazione.

NCRYPT_USE_COUNT_ENABLED_PROPERTY

L"Enabled Use Count"

Indica se il provider supporta il conteggio dell'utilizzo per le chiavi. Questa proprietà è una DWORD che contiene 1 se il provider supporta il conteggio dell'utilizzo per le chiavi. Se questa proprietà contiene qualsiasi altro valore o se la funzione NCryptGetProperty restituisce NTE_NOT_SUPPORTED, il provider non supporta il conteggio dell'utilizzo per le chiavi. Questa proprietà si applica solo ai provider.

NCRYPT_USE_COUNT_PROPERTY

L"Use Count"

Variabile ULARGE_INTEGER contenente il numero di operazioni eseguite dalla chiave privata specificata. Questa proprietà è facoltativa e potrebbe non essere supportata da tutti i provider. I provider che supportano questa proprietà nelle chiavi devono supportare anche la NCRYPT_USE_COUNT_ENABLED_PROPERTY proprietà nell'handle del provider. Il provider di archiviazione chiavi Microsoft non supporta questa proprietà. Questa proprietà si applica solo alle chiavi permanenti.

NCRYPT_USER_CERTSTORE_PROPERTY

L"SmartCardUserCertStore"

HCERTSTORE che rappresenta l'archivio certificati utente della smart card.

NCRYPT_VERSION_PROPERTY

L"Version"

DWORD che contiene la versione software del provider. La parola alta contiene la versione principale e la parola bassa contiene la versione secondaria. Ad esempio, 0x00030033 = 3.51. Questa proprietà si applica solo ai provider.

NCRYPT_WINDOW_HANDLE_PROPERTY

L"HWND Handle"

Puntatore all'handle di finestra (HWND) da usare come elemento padre di qualsiasi interfaccia utente visualizzata.

Poiché il comportamento indesiderato può verificarsi quando un'interfaccia utente viene visualizzata usando un handle di finestra NULL per l'elemento padre, è consigliabile che un provider di archiviazione chiavi non visualizzi un'interfaccia utente a meno che questa proprietà non sia impostata.

I valori seguenti vengono usati per definire i limiti dei dati delle proprietà.

Costante Valore Descrizione
NCRYPT_MAX_PROPERTY_DATA 0x100000 Specifica la dimensione massima di un valore della proprietà, espressa in byte.
NCRYPT_MAX_PROPERTY_NAME 64 Specifica la dimensione massima di un nome di proprietà, espressa in caratteri.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Intestazione Ncrypt.h

Vedi anche