Il tipo di enumerazione X509KeySpec specifica l'uso previsto di una chiave per un provider di servizi di crittografia legacy (CSP). I CSP legacy possono supportare al massimo un algoritmo di firma (XCN_AT_SIGNATURE) e un algoritmo di crittografia (XCN_AT_KEYEXCHANGE). Questa enumerazione viene usata dalle interfacce seguenti:
XCN_AT_NONE Valore: 0 L'uso previsto non è identificato. Questo valore viene impostato se il provider che supporta la chiave è un provider di archiviazione chiavi CNG (Cryptography API: Next Generation) key storage provider (KSP).
XCN_AT_KEYEXCHANGE Valore: 1 La chiave può essere usata per crittografare (incluso lo scambio di chiavi) o firmare a seconda dell'algoritmo. Per gli algoritmi RSA, se questo valore è impostato, la chiave può essere usata sia per la firma che per la crittografia. Per altri algoritmi, la firma potrebbe non essere supportata. Inoltre, è possibile supportare solo la crittografia per lo scambio di chiavi.
Nota la parte KEYEXCHANGE del nome valore è un trasferimento da CryptoAPI in cui originariamente fa riferimento alla crittografia simmetrica di una chiave privata utilizzata durante lo scambio di chiavi. L'uso del termine in ultima analisi è stato esteso per coprire tutta la crittografia simmetrica.
XCN_AT_SIGNATURE Valore: 2 La chiave può essere usata per la firma.