Welcome to mirror list, hosted at ThFree Co, Russian Federation.

AssemblyHash.cs « System.Configuration.Assemblies « corlib « class « mcs - github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: ffa152e639923c4183bdb6e8d0d3e78b5858ffcc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71

//
// AssemblyHash.cs
//
//    Implementation of the 
//    System.Configuration.Assemblies.AssemblyHash
//    class for the Mono Class Library
//
// Author:
//    Tomas Restrepo (tomasr@mvps.org)
//

namespace System.Configuration.Assemblies {
   
	[Serializable]
   public struct AssemblyHash : System.ICloneable
   {
      private AssemblyHashAlgorithm _algorithm;
      private byte[] _value;

      public static readonly AssemblyHash Empty = 
         new AssemblyHash(AssemblyHashAlgorithm.None,null);


      //
      // properties
      //
      public AssemblyHashAlgorithm Algorithm {
         get { return _algorithm; }
         set { _algorithm = value; }
      }


      //
      // construction
      //
      public AssemblyHash ( AssemblyHashAlgorithm algorithm, byte[] value )
      {
         _algorithm = algorithm;
         _value = null;
         if ( value != null )
         {
            int size = value.Length;
            _value = new byte[size];
            System.Array.Copy ( value, _value, size );
         }
      }

      public AssemblyHash ( byte[] value )
         : this(AssemblyHashAlgorithm.SHA1, value)
      {
      }

      public object Clone()
      {
         return new AssemblyHash(_algorithm,_value);
      }

      public byte[] GetValue()
      {
         return _value;
      }
      public void SetValue ( byte[] value )
      {
         _value = value;
      }

   } // class AssemblyHash

} // namespace System.Configuration.Assemblies