1 // ==++==
2 //
3 //   Copyright (c) Microsoft Corporation.  All rights reserved.
4 //
5 // ==--==
6 // <OWNER>Microsoft</OWNER>
7 //
8 
9 //
10 // AsymmetricSignatureDeformatter.cs
11 //
12 
13 namespace System.Security.Cryptography {
14     using System.Security;
15     using System;
16     using System.Diagnostics.Contracts;
17 
18 [System.Runtime.InteropServices.ComVisible(true)]
19     public abstract class AsymmetricSignatureDeformatter  {
20         //
21         // protected constructors
22         //
23 
AsymmetricSignatureDeformatter()24         protected AsymmetricSignatureDeformatter() {
25         }
26 
27         //
28         // public methods
29         //
30 
SetKey(AsymmetricAlgorithm key)31         abstract public void SetKey(AsymmetricAlgorithm key);
SetHashAlgorithm(String strName)32         abstract public void SetHashAlgorithm(String strName);
33 
VerifySignature(HashAlgorithm hash, byte[] rgbSignature)34         public virtual bool VerifySignature(HashAlgorithm hash, byte[] rgbSignature) {
35             if (hash == null) throw new ArgumentNullException("hash");
36             Contract.EndContractBlock();
37             SetHashAlgorithm(hash.ToString());
38             return VerifySignature(hash.Hash, rgbSignature);
39         }
40 
VerifySignature(byte[] rgbHash, byte[] rgbSignature)41         abstract public bool VerifySignature(byte[] rgbHash, byte[] rgbSignature);
42     }
43 }
44