AlgorithmOperationFlags enumeration (certenroll.h)
The AlgorithmOperationFlags enumeration type specifies the operations that an algorithm can perform. This enumeration is used in the following interfaces to retrieve the operational capabilities of a cryptographic provider or status information based on those capabilities.
The binary format of the flags are as follows.
XCN_NCRYPT_NO_OPERATION = 00000000 00000000 00000000
XCN_NCRYPT_CIPHER_OPERATION = 00000000 00000000 00000001
XCN_NCRYPT_HASH_OPERATION = 00000000 00000000 00000010
XCN_NCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION = 00000000 00000000 00000100
XCN_NCRYPT_SECRET_AGREEMENT_OPERATION = 00000000 00000000 00001000
XCN_NCRYPT_SIGNATURE_OPERATION = 00000000 00000000 00010000
XCN_NCRYPT_ANY_ASYMMETRIC_OPERATION = 00000000 00000000 00011100
XCN_NCRYPT_RNG_OPERATION = 00000000 00000000 00100000
XCN_NCRYPT_PREFER_SIGNATURE_ONLY_OPERATION = 00100000 00000000 00000000
XCN_NCRYPT_PREFER_NON_SIGNATURE_OPERATION = 01000000 00000000 00000000
XCN_NCRYPT_EXACT_MATCH_OPERATION = 10000000 00000000 00000000
XCN_NCRYPT_PREFERENCE_MASK_OPERATION = 11100000 00000000 00000000
Syntax
typedef enum AlgorithmOperationFlags {
XCN_NCRYPT_NO_OPERATION = 0,
XCN_NCRYPT_CIPHER_OPERATION = 0x1,
XCN_NCRYPT_HASH_OPERATION = 0x2,
XCN_NCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION = 0x4,
XCN_NCRYPT_SECRET_AGREEMENT_OPERATION = 0x8,
XCN_NCRYPT_SIGNATURE_OPERATION = 0x10,
XCN_NCRYPT_RNG_OPERATION = 0x20,
XCN_NCRYPT_KEY_DERIVATION_OPERATION = 0x40,
XCN_NCRYPT_ANY_ASYMMETRIC_OPERATION,
XCN_NCRYPT_PREFER_SIGNATURE_ONLY_OPERATION = 0x200000,
XCN_NCRYPT_PREFER_NON_SIGNATURE_OPERATION = 0x400000,
XCN_NCRYPT_EXACT_MATCH_OPERATION = 0x800000,
XCN_NCRYPT_PREFERENCE_MASK_OPERATION = 0xe00000
} ;
Constants
XCN_NCRYPT_NO_OPERATION Value: 0 No operation is specified. |
XCN_NCRYPT_CIPHER_OPERATION Value: 0x1 The algorithm can be used for symmetric encryption. This includes the RC2, RC4, Data Encryption Standard (DES), 3DED, and AES algorithms. |
XCN_NCRYPT_HASH_OPERATION Value: 0x2 The algorithm can be used for hashing. This includes the MD2, MD4, SHA1, SHA256, SHA384, SHA512 MAC, and Hash-Based Message Authentication Code (HMAC) hashing algorithms. |
XCN_NCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION Value: 0x4 The algorithm can be used for public key encryption. This includes RSA. |
XCN_NCRYPT_SECRET_AGREEMENT_OPERATION Value: 0x8 The algorithm can used for key exchange. This includes the Diffie-Hellman algorithm and ECDH algorithm. |
XCN_NCRYPT_SIGNATURE_OPERATION Value: 0x10 The algorithm can be used for signing. This includes the RSA algorithm, Digital Signature Algorithm (DSA), and ECDSA algorithm. |
XCN_NCRYPT_RNG_OPERATION Value: 0x20 The algorithm can be used to generate a random number. |
XCN_NCRYPT_KEY_DERIVATION_OPERATION Value: 0x40 |
XCN_NCRYPT_ANY_ASYMMETRIC_OPERATION The algorithm can be used for public key encryption, key exchange, and signing. This is a bitwise-OR combination of the following constants:
|
XCN_NCRYPT_PREFER_SIGNATURE_ONLY_OPERATION Value: 0x200000 Signature algorithms are preferred but not required. An encryption algorithm may be chosen instead. This is used when searching for cryptographic service provider (CSP) status information based on supported operational capability. |
XCN_NCRYPT_PREFER_NON_SIGNATURE_OPERATION Value: 0x400000 An encryption algorithm (such as that identified by the XCN_NCRYPT_ANY_ASYMMETRIC_OPERATION or XCN_NCRYPT_SECRET_AGREEMENT_OPERATION flags) is preferred but not required. A signature algorithm may be chosen instead. This is used when searching for CSP status information based on supported operational capability. |
XCN_NCRYPT_EXACT_MATCH_OPERATION Value: 0x800000 Only an algorithm that exactly matches the specified operations is selected. |
XCN_NCRYPT_PREFERENCE_MASK_OPERATION Value: 0xe00000 Use to mask the algorithm operation preference. |
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows Vista [desktop apps only] |
Minimum supported server | Windows Server 2008 [desktop apps only] |
Header | certenroll.h |