VerifySignedByAsmKey (Transact-SQL)

Teste si les données signées numériquement ont été modifiées depuis la dernière signature.

Icône Lien de rubriqueConventions de syntaxe Transact-SQL

Syntaxe

VerifySignedByAsymKey( Asym_Key_ID , clear_text , signature )

Arguments

  • Asym_Key_ID
    ID d'un certificat de clé asymétrique de la base de données.
  • clear_text
    Texte clair en cours de vérification.
  • signature
    Signature attachée aux données signées. varbinary.

Notes

VerifySignedByAsmKey dérive une signature à partir de données signées précédemment à l'aide d'une clé asymétrique stockée dans la base de données. VerifySignedByAsmKey compare la signature ainsi obtenue à celle qui était associée aux données signées lors de leur extraction. Si la nouvelle signature dérivée est identique à celle qui était attachée aux données signées, cela prouve que les données n'ont pas été modifiées depuis leur dernière signature.

Autorisations

Nécessite l'autorisation VIEW DEFINITION sur la clé asymétrique.

Types de retour

int

Retourne 1 si les signatures correspondent, sinon 0.

Exemples

A. Test de données ayant une signature valide

Le code exemple suivant retourne 1 si les données sélectionnées n'ont pas été modifiées depuis leur dernière signature avec la clé asymétrique WillisKey74. Le code exemple retourne 0 si les données ont été modifiées.

SELECT Data,
     VerifySignedByAsymKey( AsymKey_Id( 'WillisKey74' ), SignedData,
     DataSignature ) as IsSignatureValid
FROM [AdventureWorks].[SignedData04] 
WHERE Description = N'data encrypted by asymmetric key ''WillisKey74'''
GO
RETURN

B. Retour d'un ensemble de résultats qui contient des données avec une signature valide

L'exemple suivant retourne les lignes dans SignedData04 qui contiennent des données qui n'ont pas été modifiées depuis leur dernière signature avec la clé asymétrique WillisKey74. L'exemple de code appelle la fonction AsymKey_ID pour obtenir l'ID de la clé asymétrique à partir de la base de données.

SELECT Data 
FROM [AdventureWorks].[SignedData04] 
WHERE VerifySignedByAsymKey( AsymKey_Id( 'WillisKey74' ), Data,
     DataSignature ) = 1
AND Description = N'data encrypted by asymmetric key ''WillisKey74'''
GO

Voir aussi

Référence

AsymKey_ID (Transact-SQL)
SignByAsymKey (Transact-SQL)
CREATE ASYMMETRIC KEY (Transact-SQL)
ALTER ASYMMETRIC KEY (Transact-SQL)
DROP ASYMMETRIC KEY (Transact-SQL)

Autres ressources

Hiérarchie de chiffrement

Aide et Informations

Assistance sur SQL Server 2005