CertCompareIntegerBlob 関数 (wincrypt.h)
CertCompareIntegerBlob 関数は、2 つの整数 BLOB を比較して、それらが等しい数値を表しているかどうかを判断します。
構文
BOOL CertCompareIntegerBlob(
[in] PCRYPT_INTEGER_BLOB pInt1,
[in] PCRYPT_INTEGER_BLOB pInt2
);
パラメーター
[in] pInt1
比較の最初の整数を含む CRYPT_INTEGER_BLOB 構造体へのポインター。
[in] pInt2
比較の 2 番目の整数を含む CRYPT_INTEGER_BLOB 構造体へのポインター。
戻り値
整数 BLOB の表現が同じで、関数が成功した場合、関数は 0 以外 (TRUE) を返します。
関数が失敗した場合は、0 (FALSE) を返します。 拡張エラー情報については、 GetLastError を呼び出します。
解説
比較を行う前に、0x00の値を持つ最も重要なバイトは正の数から削除されます。 ここで正の値は、次の 0 以外のバイトの最上位ビットが設定されていないことを意味します。
0xFFの値を持つ最も重要なバイトは、負の数から削除されます。 ここで負の値を指定すると、次の非0xFF バイトの最上位ビットが設定されます。 これにより、次の表に示すように、その整数の一意の表現が生成されます。
元のバイト数 | 縮小フォーム |
---|---|
0xFFFFFF88 | 0xFF88 |
0xFF23 | 0xFF23 |
0x007F | 0x7F |
0x00000080 | 0x80 |
複数バイト整数は 、リトル エンディアンとして扱われます。 最下位バイトは pbData[0] です。 最も重要なバイトは pbData[cbData - 1] です。つまり、0xFFFFFF88は次のように 4 バイトで格納されます。
{0x88、0xFF、0xFF、0xFF}
例
この関数を使用する例については、「 サンプル C プログラム: CertOIDToAlgId と CertCompareIntegerBlob の使用」を参照してください。
要件
サポートされている最小のクライアント | Windows XP [デスクトップ アプリ | UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | wincrypt.h |
Library | Crypt32.lib |
[DLL] | Crypt32.dll |