CryptographicEngine.Sign(CryptographicKey, IBuffer) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Подписывает цифровое содержимое. Дополнительные сведения см. в разделе MAC, хэши и подписи.
public:
static IBuffer ^ Sign(CryptographicKey ^ key, IBuffer ^ data);
static IBuffer Sign(CryptographicKey const& key, IBuffer const& data);
public static IBuffer Sign(CryptographicKey key, IBuffer data);
function sign(key, data)
Public Shared Function Sign (key As CryptographicKey, data As IBuffer) As IBuffer
Параметры
- key
- CryptographicKey
Ключ, используемый для подписывания.
- data
- IBuffer
Данные для подписи.
Возвращаемое значение
Подпись данных.
Примеры
public IBuffer SampleCreateHMAC(
String strMsg,
String strAlgName,
out IBuffer buffMsg,
out CryptographicKey hmacKey)
{
// Create a MacAlgorithmProvider object for the specified algorithm.
MacAlgorithmProvider objMacProv = MacAlgorithmProvider.OpenAlgorithm(strAlgName);
// Create a buffer that contains the message to be signed.
BinaryStringEncoding encoding = BinaryStringEncoding.Utf8;
buffMsg = CryptographicBuffer.ConvertStringToBinary(strMsg, encoding);
// Create a key to be signed with the message.
IBuffer buffKeyMaterial = CryptographicBuffer.GenerateRandom(objMacProv.MacLength);
hmacKey = objMacProv.CreateKey(buffKeyMaterial);
// Sign the key and message together.
IBuffer buffHMAC = CryptographicEngine.Sign(hmacKey, buffMsg);
// Verify that the HMAC length is correct for the selected algorithm
if (buffHMAC.Length != objMacProv.MacLength)
{
throw new Exception("Error computing digest");
}
// Return the HMAC.
return buffHMAC;
}
Комментарии
Если ключ является сохраненным и операция требует пользовательского интерфейса или занимает много времени, используйте метод SignAsync .
Дополнительные сведения о подписи цифровых данных см. в разделе MAC, хэши и подписи.