Win32 API 日本語リファレンス
ホームSecurity.Cryptography.Certificates › AlgorithmOperationFlags

AlgorithmOperationFlags

列挙型
基底型i4

メンバー 14

名前10進16進説明
XCN_NCRYPT_NO_OPERATION00x0操作は指定されません。
XCN_NCRYPT_CIPHER_OPERATION10x1アルゴリズムを 共通鍵暗号化 に使用できます。これには、RC2RC4Data Encryption Standard (DES)、3DED、および AES の各アルゴリズムが含まれます。
XCN_NCRYPT_HASH_OPERATION20x2アルゴリズムをハッシュ処理に使用できます。これには、MD2MD4、SHA1、SHA256、SHA384、SHA512 MAC、および Hash-Based Message Authentication Code (HMAC) の各ハッシュ アルゴリズムが含まれます。
XCN_NCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION40x4アルゴリズムを公開鍵暗号化に使用できます。これには RSA が含まれます。
XCN_NCRYPT_SECRET_AGREEMENT_OPERATION80x8アルゴリズムを鍵交換に使用できます。これには Diffie-Hellman アルゴリズムと ECDH アルゴリズムが含まれます。
XCN_NCRYPT_SIGNATURE_OPERATION160x10アルゴリズムを署名に使用できます。これには、RSA アルゴリズム、Digital Signature Algorithm (DSA)、および ECDSA アルゴリズムが含まれます。
XCN_NCRYPT_RNG_OPERATION320x20アルゴリズムを乱数の生成に使用できます。
XCN_NCRYPT_KEY_DERIVATION_OPERATION640x40
XCN_NCRYPT_KEY_ENCAPSULATION_OPERATION1280x80
XCN_NCRYPT_ANY_ASYMMETRIC_OPERATION1560x9C

アルゴリズムを公開鍵暗号化、鍵交換、および署名に使用できます。これは次の定数のビット単位の OR の組み合わせです。

XCN_NCRYPT_PREFER_SIGNATURE_ONLY_OPERATION20971520x200000署名アルゴリズムが優先されますが、必須ではありません。代わりに暗号化アルゴリズムが選択される場合があります。これは、サポートされる操作機能に基づいて暗号化サービス プロバイダー (CSP) の状態情報を検索するときに使用されます。
XCN_NCRYPT_PREFER_NON_SIGNATURE_OPERATION41943040x400000暗号化アルゴリズム (XCN_NCRYPT_ANY_ASYMMETRIC_OPERATION フラグまたは XCN_NCRYPT_SECRET_AGREEMENT_OPERATION フラグで識別されるものなど) が優先されますが、必須ではありません。代わりに署名アルゴリズムが選択される場合があります。これは、サポートされる操作機能に基づいて CSP の状態情報を検索するときに使用されます。
XCN_NCRYPT_EXACT_MATCH_OPERATION83886080x800000指定された操作に完全に一致するアルゴリズムのみが選択されます。
XCN_NCRYPT_PREFERENCE_MASK_OPERATION146800640xE00000アルゴリズムの操作の優先設定をマスクするために使用します。

公式ドキュメント

AlgorithmOperationFlags 列挙型は、アルゴリズムが実行できる操作を指定します。この列挙型は、暗号化プロバイダーの操作機能、またはそれらの機能に基づく状態情報を取得するために、次のインターフェイスで使用されます。

フラグのバイナリ形式は次のとおりです。

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
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

各言語での定義

列挙メンバーの定義。HSP タブは #define global(値は16進)。

typedef enum AlgorithmOperationFlags : int {
    XCN_NCRYPT_NO_OPERATION = 0,
    XCN_NCRYPT_CIPHER_OPERATION = 1,
    XCN_NCRYPT_HASH_OPERATION = 2,
    XCN_NCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION = 4,
    XCN_NCRYPT_SECRET_AGREEMENT_OPERATION = 8,
    XCN_NCRYPT_SIGNATURE_OPERATION = 16,
    XCN_NCRYPT_RNG_OPERATION = 32,
    XCN_NCRYPT_KEY_DERIVATION_OPERATION = 64,
    XCN_NCRYPT_KEY_ENCAPSULATION_OPERATION = 128,
    XCN_NCRYPT_ANY_ASYMMETRIC_OPERATION = 156,
    XCN_NCRYPT_PREFER_SIGNATURE_ONLY_OPERATION = 2097152,
    XCN_NCRYPT_PREFER_NON_SIGNATURE_OPERATION = 4194304,
    XCN_NCRYPT_EXACT_MATCH_OPERATION = 8388608,
    XCN_NCRYPT_PREFERENCE_MASK_OPERATION = 14680064
} AlgorithmOperationFlags;
public enum AlgorithmOperationFlags : int
{
    XCN_NCRYPT_NO_OPERATION = 0,
    XCN_NCRYPT_CIPHER_OPERATION = 1,
    XCN_NCRYPT_HASH_OPERATION = 2,
    XCN_NCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION = 4,
    XCN_NCRYPT_SECRET_AGREEMENT_OPERATION = 8,
    XCN_NCRYPT_SIGNATURE_OPERATION = 16,
    XCN_NCRYPT_RNG_OPERATION = 32,
    XCN_NCRYPT_KEY_DERIVATION_OPERATION = 64,
    XCN_NCRYPT_KEY_ENCAPSULATION_OPERATION = 128,
    XCN_NCRYPT_ANY_ASYMMETRIC_OPERATION = 156,
    XCN_NCRYPT_PREFER_SIGNATURE_ONLY_OPERATION = 2097152,
    XCN_NCRYPT_PREFER_NON_SIGNATURE_OPERATION = 4194304,
    XCN_NCRYPT_EXACT_MATCH_OPERATION = 8388608,
    XCN_NCRYPT_PREFERENCE_MASK_OPERATION = 14680064,
}
Public Enum AlgorithmOperationFlags As Integer
    XCN_NCRYPT_NO_OPERATION = 0
    XCN_NCRYPT_CIPHER_OPERATION = 1
    XCN_NCRYPT_HASH_OPERATION = 2
    XCN_NCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION = 4
    XCN_NCRYPT_SECRET_AGREEMENT_OPERATION = 8
    XCN_NCRYPT_SIGNATURE_OPERATION = 16
    XCN_NCRYPT_RNG_OPERATION = 32
    XCN_NCRYPT_KEY_DERIVATION_OPERATION = 64
    XCN_NCRYPT_KEY_ENCAPSULATION_OPERATION = 128
    XCN_NCRYPT_ANY_ASYMMETRIC_OPERATION = 156
    XCN_NCRYPT_PREFER_SIGNATURE_ONLY_OPERATION = 2097152
    XCN_NCRYPT_PREFER_NON_SIGNATURE_OPERATION = 4194304
    XCN_NCRYPT_EXACT_MATCH_OPERATION = 8388608
    XCN_NCRYPT_PREFERENCE_MASK_OPERATION = 14680064
End Enum
import enum

class AlgorithmOperationFlags(enum.IntEnum):
    XCN_NCRYPT_NO_OPERATION = 0
    XCN_NCRYPT_CIPHER_OPERATION = 1
    XCN_NCRYPT_HASH_OPERATION = 2
    XCN_NCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION = 4
    XCN_NCRYPT_SECRET_AGREEMENT_OPERATION = 8
    XCN_NCRYPT_SIGNATURE_OPERATION = 16
    XCN_NCRYPT_RNG_OPERATION = 32
    XCN_NCRYPT_KEY_DERIVATION_OPERATION = 64
    XCN_NCRYPT_KEY_ENCAPSULATION_OPERATION = 128
    XCN_NCRYPT_ANY_ASYMMETRIC_OPERATION = 156
    XCN_NCRYPT_PREFER_SIGNATURE_ONLY_OPERATION = 2097152
    XCN_NCRYPT_PREFER_NON_SIGNATURE_OPERATION = 4194304
    XCN_NCRYPT_EXACT_MATCH_OPERATION = 8388608
    XCN_NCRYPT_PREFERENCE_MASK_OPERATION = 14680064
// AlgorithmOperationFlags
pub const XCN_NCRYPT_NO_OPERATION: i32 = 0;
pub const XCN_NCRYPT_CIPHER_OPERATION: i32 = 1;
pub const XCN_NCRYPT_HASH_OPERATION: i32 = 2;
pub const XCN_NCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION: i32 = 4;
pub const XCN_NCRYPT_SECRET_AGREEMENT_OPERATION: i32 = 8;
pub const XCN_NCRYPT_SIGNATURE_OPERATION: i32 = 16;
pub const XCN_NCRYPT_RNG_OPERATION: i32 = 32;
pub const XCN_NCRYPT_KEY_DERIVATION_OPERATION: i32 = 64;
pub const XCN_NCRYPT_KEY_ENCAPSULATION_OPERATION: i32 = 128;
pub const XCN_NCRYPT_ANY_ASYMMETRIC_OPERATION: i32 = 156;
pub const XCN_NCRYPT_PREFER_SIGNATURE_ONLY_OPERATION: i32 = 2097152;
pub const XCN_NCRYPT_PREFER_NON_SIGNATURE_OPERATION: i32 = 4194304;
pub const XCN_NCRYPT_EXACT_MATCH_OPERATION: i32 = 8388608;
pub const XCN_NCRYPT_PREFERENCE_MASK_OPERATION: i32 = 14680064;
// AlgorithmOperationFlags
const (
	XCN_NCRYPT_NO_OPERATION int32 = 0
	XCN_NCRYPT_CIPHER_OPERATION int32 = 1
	XCN_NCRYPT_HASH_OPERATION int32 = 2
	XCN_NCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION int32 = 4
	XCN_NCRYPT_SECRET_AGREEMENT_OPERATION int32 = 8
	XCN_NCRYPT_SIGNATURE_OPERATION int32 = 16
	XCN_NCRYPT_RNG_OPERATION int32 = 32
	XCN_NCRYPT_KEY_DERIVATION_OPERATION int32 = 64
	XCN_NCRYPT_KEY_ENCAPSULATION_OPERATION int32 = 128
	XCN_NCRYPT_ANY_ASYMMETRIC_OPERATION int32 = 156
	XCN_NCRYPT_PREFER_SIGNATURE_ONLY_OPERATION int32 = 2097152
	XCN_NCRYPT_PREFER_NON_SIGNATURE_OPERATION int32 = 4194304
	XCN_NCRYPT_EXACT_MATCH_OPERATION int32 = 8388608
	XCN_NCRYPT_PREFERENCE_MASK_OPERATION int32 = 14680064
)
const
  XCN_NCRYPT_NO_OPERATION = 0;
  XCN_NCRYPT_CIPHER_OPERATION = 1;
  XCN_NCRYPT_HASH_OPERATION = 2;
  XCN_NCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION = 4;
  XCN_NCRYPT_SECRET_AGREEMENT_OPERATION = 8;
  XCN_NCRYPT_SIGNATURE_OPERATION = 16;
  XCN_NCRYPT_RNG_OPERATION = 32;
  XCN_NCRYPT_KEY_DERIVATION_OPERATION = 64;
  XCN_NCRYPT_KEY_ENCAPSULATION_OPERATION = 128;
  XCN_NCRYPT_ANY_ASYMMETRIC_OPERATION = 156;
  XCN_NCRYPT_PREFER_SIGNATURE_ONLY_OPERATION = 2097152;
  XCN_NCRYPT_PREFER_NON_SIGNATURE_OPERATION = 4194304;
  XCN_NCRYPT_EXACT_MATCH_OPERATION = 8388608;
  XCN_NCRYPT_PREFERENCE_MASK_OPERATION = 14680064;
// AlgorithmOperationFlags
pub const XCN_NCRYPT_NO_OPERATION: i32 = 0;
pub const XCN_NCRYPT_CIPHER_OPERATION: i32 = 1;
pub const XCN_NCRYPT_HASH_OPERATION: i32 = 2;
pub const XCN_NCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION: i32 = 4;
pub const XCN_NCRYPT_SECRET_AGREEMENT_OPERATION: i32 = 8;
pub const XCN_NCRYPT_SIGNATURE_OPERATION: i32 = 16;
pub const XCN_NCRYPT_RNG_OPERATION: i32 = 32;
pub const XCN_NCRYPT_KEY_DERIVATION_OPERATION: i32 = 64;
pub const XCN_NCRYPT_KEY_ENCAPSULATION_OPERATION: i32 = 128;
pub const XCN_NCRYPT_ANY_ASYMMETRIC_OPERATION: i32 = 156;
pub const XCN_NCRYPT_PREFER_SIGNATURE_ONLY_OPERATION: i32 = 2097152;
pub const XCN_NCRYPT_PREFER_NON_SIGNATURE_OPERATION: i32 = 4194304;
pub const XCN_NCRYPT_EXACT_MATCH_OPERATION: i32 = 8388608;
pub const XCN_NCRYPT_PREFERENCE_MASK_OPERATION: i32 = 14680064;
const
  XCN_NCRYPT_NO_OPERATION* = 0
  XCN_NCRYPT_CIPHER_OPERATION* = 1
  XCN_NCRYPT_HASH_OPERATION* = 2
  XCN_NCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION* = 4
  XCN_NCRYPT_SECRET_AGREEMENT_OPERATION* = 8
  XCN_NCRYPT_SIGNATURE_OPERATION* = 16
  XCN_NCRYPT_RNG_OPERATION* = 32
  XCN_NCRYPT_KEY_DERIVATION_OPERATION* = 64
  XCN_NCRYPT_KEY_ENCAPSULATION_OPERATION* = 128
  XCN_NCRYPT_ANY_ASYMMETRIC_OPERATION* = 156
  XCN_NCRYPT_PREFER_SIGNATURE_ONLY_OPERATION* = 2097152
  XCN_NCRYPT_PREFER_NON_SIGNATURE_OPERATION* = 4194304
  XCN_NCRYPT_EXACT_MATCH_OPERATION* = 8388608
  XCN_NCRYPT_PREFERENCE_MASK_OPERATION* = 14680064
enum AlgorithmOperationFlags : int {
    XCN_NCRYPT_NO_OPERATION = 0,
    XCN_NCRYPT_CIPHER_OPERATION = 1,
    XCN_NCRYPT_HASH_OPERATION = 2,
    XCN_NCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION = 4,
    XCN_NCRYPT_SECRET_AGREEMENT_OPERATION = 8,
    XCN_NCRYPT_SIGNATURE_OPERATION = 16,
    XCN_NCRYPT_RNG_OPERATION = 32,
    XCN_NCRYPT_KEY_DERIVATION_OPERATION = 64,
    XCN_NCRYPT_KEY_ENCAPSULATION_OPERATION = 128,
    XCN_NCRYPT_ANY_ASYMMETRIC_OPERATION = 156,
    XCN_NCRYPT_PREFER_SIGNATURE_ONLY_OPERATION = 2097152,
    XCN_NCRYPT_PREFER_NON_SIGNATURE_OPERATION = 4194304,
    XCN_NCRYPT_EXACT_MATCH_OPERATION = 8388608,
    XCN_NCRYPT_PREFERENCE_MASK_OPERATION = 14680064,
}
#define global XCN_NCRYPT_NO_OPERATION                    0x0
#define global XCN_NCRYPT_CIPHER_OPERATION                0x1
#define global XCN_NCRYPT_HASH_OPERATION                  0x2
#define global XCN_NCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION 0x4
#define global XCN_NCRYPT_SECRET_AGREEMENT_OPERATION      0x8
#define global XCN_NCRYPT_SIGNATURE_OPERATION             0x10
#define global XCN_NCRYPT_RNG_OPERATION                   0x20
#define global XCN_NCRYPT_KEY_DERIVATION_OPERATION        0x40
#define global XCN_NCRYPT_KEY_ENCAPSULATION_OPERATION     0x80
#define global XCN_NCRYPT_ANY_ASYMMETRIC_OPERATION        0x9C
#define global XCN_NCRYPT_PREFER_SIGNATURE_ONLY_OPERATION 0x200000
#define global XCN_NCRYPT_PREFER_NON_SIGNATURE_OPERATION  0x400000
#define global XCN_NCRYPT_EXACT_MATCH_OPERATION           0x800000
#define global XCN_NCRYPT_PREFERENCE_MASK_OPERATION       0xE00000