mscorlib(4.0.0.0) API with additions
AsnEncodedData.cs
2 {
4  public class AsnEncodedData
5  {
6  internal Oid m_oid;
7 
8  internal byte[] m_rawData;
9 
12  public Oid Oid
13  {
14  get
15  {
16  return m_oid;
17  }
18  set
19  {
20  if (value == null)
21  {
22  m_oid = null;
23  }
24  else
25  {
26  m_oid = new Oid(value);
27  }
28  }
29  }
30 
34  public byte[] RawData
35  {
36  get
37  {
38  return m_rawData;
39  }
40  set
41  {
42  if (value == null)
43  {
44  throw new ArgumentNullException("value");
45  }
46  m_rawData = (byte[])value.Clone();
47  }
48  }
49 
50  internal AsnEncodedData(Oid oid)
51  {
52  m_oid = oid;
53  }
54 
55  internal AsnEncodedData(string oid, CAPIBase.CRYPTOAPI_BLOB encodedBlob)
56  : this(oid, CAPI.BlobToByteArray(encodedBlob))
57  {
58  }
59 
60  internal AsnEncodedData(Oid oid, CAPIBase.CRYPTOAPI_BLOB encodedBlob)
61  : this(oid, CAPI.BlobToByteArray(encodedBlob))
62  {
63  }
64 
66  protected AsnEncodedData()
67  {
68  }
69 
72  public AsnEncodedData(byte[] rawData)
73  {
74  Reset(null, rawData);
75  }
76 
80  public AsnEncodedData(string oid, byte[] rawData)
81  {
82  Reset(new Oid(oid), rawData);
83  }
84 
88  public AsnEncodedData(Oid oid, byte[] rawData)
89  {
90  Reset(oid, rawData);
91  }
92 
97  public AsnEncodedData(AsnEncodedData asnEncodedData)
98  {
99  if (asnEncodedData == null)
100  {
101  throw new ArgumentNullException("asnEncodedData");
102  }
103  Reset(asnEncodedData.m_oid, asnEncodedData.m_rawData);
104  }
105 
110  public virtual void CopyFrom(AsnEncodedData asnEncodedData)
111  {
112  if (asnEncodedData == null)
113  {
114  throw new ArgumentNullException("asnEncodedData");
115  }
116  Reset(asnEncodedData.m_oid, asnEncodedData.m_rawData);
117  }
118 
123  public virtual string Format(bool multiLine)
124  {
125  if (m_rawData == null || m_rawData.Length == 0)
126  {
127  return string.Empty;
128  }
129  string lpszStructType = string.Empty;
130  if (m_oid != null && m_oid.Value != null)
131  {
132  lpszStructType = m_oid.Value;
133  }
134  return CAPI.CryptFormatObject(1u, multiLine ? 1u : 0u, lpszStructType, m_rawData);
135  }
136 
137  private void Reset(Oid oid, byte[] rawData)
138  {
139  Oid = oid;
140  RawData = rawData;
141  }
142  }
143 }
The exception that is thrown when a null reference (Nothing in Visual Basic) is passed to a method th...
Represents Abstract Syntax Notation One (ASN.1)-encoded data.
Oid Oid
Gets or sets the T:System.Security.Cryptography.Oid value for an T:System.Security....
Represents a cryptographic object identifier. This class cannot be inherited.
Definition: Oid.cs:6
string Value
Gets or sets the dotted number of the identifier.
Definition: Oid.cs:17
AsnEncodedData(string oid, byte[] rawData)
Initializes a new instance of the T:System.Security.Cryptography.AsnEncodedData class using a byte ar...
AsnEncodedData(Oid oid, byte[] rawData)
Initializes a new instance of the T:System.Security.Cryptography.AsnEncodedData class using an T:Syst...
byte [] RawData
Gets or sets the Abstract Syntax Notation One (ASN.1)-encoded data represented in a byte array.
virtual void CopyFrom(AsnEncodedData asnEncodedData)
Copies information from an T:System.Security.Cryptography.AsnEncodedData object.
AsnEncodedData(AsnEncodedData asnEncodedData)
Initializes a new instance of the T:System.Security.Cryptography.AsnEncodedData class using an instan...
AsnEncodedData()
Initializes a new instance of the T:System.Security.Cryptography.AsnEncodedData class.
AsnEncodedData(byte[] rawData)
Initializes a new instance of the T:System.Security.Cryptography.AsnEncodedData class using a byte ar...
virtual string Format(bool multiLine)
Returns a formatted version of the Abstract Syntax Notation One (ASN.1)-encoded data as a string.