KeyDerivationParameters.BuildForSP80056a メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
SP800-56A キー派生関数で使用する KeyDerivationParameters オブジェクトを作成します。
public:
static KeyDerivationParameters ^ BuildForSP80056a(IBuffer ^ algorithmId, IBuffer ^ partyUInfo, IBuffer ^ partyVInfo, IBuffer ^ suppPubInfo, IBuffer ^ suppPrivInfo);
static KeyDerivationParameters BuildForSP80056a(IBuffer const& algorithmId, IBuffer const& partyUInfo, IBuffer const& partyVInfo, IBuffer const& suppPubInfo, IBuffer const& suppPrivInfo);
public static KeyDerivationParameters BuildForSP80056a(IBuffer algorithmId, IBuffer partyUInfo, IBuffer partyVInfo, IBuffer suppPubInfo, IBuffer suppPrivInfo);
function buildForSP80056a(algorithmId, partyUInfo, partyVInfo, suppPubInfo, suppPrivInfo)
Public Shared Function BuildForSP80056a (algorithmId As IBuffer, partyUInfo As IBuffer, partyVInfo As IBuffer, suppPubInfo As IBuffer, suppPrivInfo As IBuffer) As KeyDerivationParameters
パラメーター
- algorithmId
- IBuffer
派生キーの目的を指定します。
- partyUInfo
- IBuffer
イニシエーターによって提供されるパブリック情報が含まれます。
- partyVInfo
- IBuffer
レスポンダーによって投稿された公開情報が含まれます。
- suppPubInfo
- IBuffer
イニシエーターとレスポンダーの両方に既知のパブリック情報が含まれています。
- suppPrivInfo
- IBuffer
共有シークレットなど、イニシエーターとレスポンダーの両方に既知の個人情報が含まれます。
戻り値
キーの派生時に使用されるパラメーターを参照します。
例
public void SampleDeriveFromSP80056a()
{
// Create a string that contains the algorithm name.
String strAlgName = KeyDerivationAlgorithmNames.Sp80056aConcatSha512;
// Open the specified algorithm.
KeyDerivationAlgorithmProvider objKdfProv = KeyDerivationAlgorithmProvider.OpenAlgorithm(strAlgName);
// Specify the requested size, in bytes, of the derived key.
UInt32 targetSize = 32;
// Create a buffer that contains the secret to be used during derivation.
IBuffer buffSecret = CryptographicBuffer.GenerateRandom(32);
// Create a buffer that contains the intended purpose of the derived key.
String strAlgId = "Purpose";
IBuffer buffAlgId = CryptographicBuffer.ConvertStringToBinary(strAlgId, BinaryStringEncoding.Utf8);
// Create a buffer that contains public information contributed by the initiator.
String strPartyUInfo = "Initiator public info";
IBuffer buffPartyUInfo = CryptographicBuffer.ConvertStringToBinary(strPartyUInfo, BinaryStringEncoding.Utf8);
// Create a buffer that contains public information contributed by the responder.
String strPartyVInfo = "Responder public info";
IBuffer buffPartyVInfo = CryptographicBuffer.ConvertStringToBinary(strPartyVInfo, BinaryStringEncoding.Utf8);
// Create a buffer that contains public information known to both parties.
String strSuppPubInfo = "Two party public info";
IBuffer buffSuppPubInfo = CryptographicBuffer.ConvertStringToBinary(strSuppPubInfo, BinaryStringEncoding.Utf8);
// Create a buffer that contains a shared private secret.
IBuffer buffSuppPrivInfo = CryptographicBuffer.GenerateRandom(32);
// Create the derivation parameters.
KeyDerivationParameters kdf80056AParamsEx = KeyDerivationParameters.BuildForSP80056a(
buffAlgId,
buffPartyUInfo,
buffPartyVInfo,
buffSuppPubInfo,
buffSuppPrivInfo);
// Create a key from the secret value.
CryptographicKey keyOriginal = objKdfProv.CreateKey(buffSecret);
// Derive a key based on the original key and the derivation parameters.
IBuffer keyDerived = CryptographicEngine.DeriveKeyMaterial(
keyOriginal,
kdf80056AParamsEx,
targetSize);
// Encode the key to a hexadecimal value (for display)
String strKeyHex = CryptographicBuffer.EncodeToHexString(keyDerived);
}
注釈
OpenAlgorithm 関数で次のアルゴリズム名を使用して、SP80056a KDF アルゴリズム プロバイダーを開くことができます。
- KeyDerivationAlgorithmNames.Sp80056aConcatMd5
- KeyDerivationAlgorithmNames.Sp80056aConcatSha1
- KeyDerivationAlgorithmNames.Sp80056aConcatSha256
- KeyDerivationAlgorithmNames.Sp80056aConcatSha384
- KeyDerivationAlgorithmNames.Sp80056aConcatSha512