2006-12-05 Sebastien Pouliot <sebastien@ximian.com>
[mono.git] / mcs / class / Mono.Security / Mono.Security.X509 / ChangeLog
1 2006-12-05  Sebastien Pouliot  <sebastien@ximian.com> 
2
3         * X509CRL.cs: Fix DSA signature verification when numbers aren't 
4         exactly 20 bytes long (e.g. too short or negative with an extra 0x00).
5
6 2006-12-05  Sebastien Pouliot  <sebastien@ximian.com>
7
8         * X509CRL.cs: Expose the Hash and RawData properties to make it easier
9         to support CRL into stores.
10         * X509Store.cs: Add support to Import and Remove CRL from stores. 
11         Refactor the code to get unique identificators.
12         * X509Stores.cs: Change default, for Open, to stores that supports 
13         CRLs.
14
15 2006-12-04  Sebastien Pouliot  <sebastien@ximian.com>
16
17         * X509Certificate.cs: Added support for inherited DSA key parameters.
18
19 2006-11-22  Sebastien Pouliot  <sebastien@ximian.com>
20
21         * X509Store.cs: Add new Open method to access any certificate store
22         by any names (required to support 2.0 features).
23
24 2006-11-13  Sebastien Pouliot  <sebastien@ximian.com>
25
26         * X509Certificate.cs: Add support for PEM encoded (base64) x.509 
27         certificates (supported in 2.0).
28
29 2006-11-08  Sebastien Pouliot  <sebastien@ximian.com> 
30
31         * X501Name.cs: Fix build as the first build of 2.0's System.dll 
32         may depend on a Mono.Security.dll without the new ToString overload.
33
34 2006-11-08  Sebastien Pouliot  <sebastien@ximian.com>
35
36         * X501Name.cs: Refactor ToString method to allow most options available 
37         when using fx 2.0.
38         * X509Certificate.cs: Add methods to retrieve the Issuer and Subject
39         Distinguished Names in binary (ASN.1) form. Reverse (actually correct)
40         the text representation of Issuer and Subject for 2.0.
41
42 2006-10-08  Sebastien Pouliot  <sebastien@ximian.com>
43
44         * PKCS12.cs: A String.Empty is different from a null password. Fix bug
45         #79617.
46
47 2006-09-05  Sebastien Pouliot  <sebastien@ximian.com>
48
49         * X509Certificate.cs: Don't reset RSA or DSA property if the new value
50         is null (part of the fix for #79262).
51
52 2006-07-25  Sebastien Pouliot  <sebastien@ximian.com>
53
54         * X509CRL.cs: Fix the case where no entry are present in the CRL (as
55         the structure is optional) *and* when there are no x.509 certificate
56         extensions.
57
58 2006-01-24  Sebastien Pouliot  <sebastien@ximian.com>
59
60         * PKCS12.cs: Consider String.Empty as a null password (e.g. don't
61         throw an IndexOutOfRangeException). Fix part of bug #77342.
62
63 2006-01-05  Sebastien Pouliot  <sebastien@ximian.com>
64
65         * X509Extension.cs: Extension data may be encapsulated (i.e. ASN.1
66         data inside the octet string) if it comes from the X509Certificate 
67         parser.
68
69 2006-01-04  Sebastien Pouliot  <sebastien@ximian.com>
70
71         * X509Extension.cs: Added setter for Critical property (fix #77154).
72         Fixed asymmetry between encoding and decoding (fix #75781).
73
74 2005-12-16  Sebastien Pouliot  <sebastien@ximian.com> 
75
76         * X509Chain.cs: Fix chain building. Patch from Vincent Cote-Roy.
77
78 2005-11-18  Sebastien Pouliot  <sebastien@ximian.com> 
79
80         * X509Extension.cs: Changed default ctor to protected to help 
81         extensibility outside of Mono.Security.dll (fix bug #76742).
82
83 2005-11-04  Sebastien Pouliot  <sebastien@ximian.com> 
84  
85         * PKCS12.cs: It's now possible to add multiple keys of the same size
86         inside a pkcs12 file. Fix bug #76627.
87
88 2005-11-04  Sebastien Pouliot  <sebastien@ximian.com>
89
90         * PKCS12.cs: Added MaximumPasswordLength property to allow decoding 
91         the password with a length limits like MS PFXImportCertStore does.
92         In this case you just have to assign the value CryptoApiPasswordLimit
93         to the new static property.
94
95 2005-10-11  Sebastien Pouliot  <sebastien@ximian.com> 
96  
97         * X509Certificate.cs: Fixed bug #76407. ValidFrom and ValidUntil are
98         local date/time so IsCurrent most also use a local date/time.
99         * X509CRL.cs: ValidFrom and ValidUntil are local date/time so 
100         IsCurrent most also use a local date/time.
101
102 2005-10-06  Sebastien Pouliot  <sebastien@ximian.com>
103
104         * X509Chain.cs: Fixed the case where no chain is present (self signed)
105
106 2005-09-09  Sebastien Pouliot  <sebastien@ximian.com>
107
108         * X509Certificate.cs: Fixed version property (bug #76012). Added
109         ISerializable (for 2.0 so we're not breaking current compatibility).
110
111 2005-08-29  Sebastien Pouliot  <sebastien@ximian.com>
112
113         * X501Name.cs: Fixed quoted (bug #75780) and escaped values. Added
114         parsing for "direct" OID values. Plugged DC and UID with new X520 
115         classes.
116         * X520Attributes.cs: Added support for SerialNumber (fix bug #75783),
117         DomainComponent, UserId and Oid.
118
119 2005-08-12  Sebastien Pouliot  <sebastien@ximian.com>
120
121         * X520Attributes.cs: Don't select PRINTABLESTRING for non 7bits 
122         values. Fix bug #75782. Based on patch from Daniel Granath.
123
124 2005-06-29  Sebastien Pouliot  <sebastien@ximian.com>
125
126         * X509CRL.cs: Fix the case where no entry are present in the CRL (as
127         the structure is optional).
128
129 2005-04-26  Sebastien Pouliot  <sebastien@ximian.com>
130
131         * X509Certificate.cs: DSA and RSA properties are now cached. In 2.0
132         they also have a set accessor.
133         * PKCS12.cs: Modified code to allow providing the password as a byte
134         array (the new constructor is available in 2.0).
135
136 2005-02-25  Sebastien Pouliot  <sebastien@ximian.com>
137
138         * X501Name.cs: Added support for multiple entries in a same set.
139
140 2005-01-11  Sebastien Pouliot  <sebastien@ximian.com>
141
142         * X509Certificate.cs: Fixed NullReferenceException when asking for
143         data that wasn't a proper X.509 certificate.
144
145 2004-12-13  Sebastien Pouliot  <sebastien@ximian.com>
146
147         * X509Certificate.cs: Directly use the MD2 class when compiled in 
148         Mono.Security.dll assembly (even if not configured in machine.config).
149
150 2004-09-17  Sebastien Pouliot  <sebastien@ximian.com>
151
152         * PKCS12.cs: Fixed all level 4 compilation warnings.
153         * X501Name.cs: Fixed all level 4 compilation warnings.
154         * X509Certificate.cs: Fixed all level 4 compilation warnings.
155         * X509CertificateBuilder.cs: Fixed all level 4 compilation warnings.
156         * X509Extension.cs: In synch with corlib version. Fixed all level 4 
157         compilation warnings.
158         * X520Attributes.cs: Updated to check upperbounds - which fixed level
159         4 compilation warnings.
160
161 2004-09-07  Sebastien Pouliot  <sebastien@ximian.com>
162
163         * X509Chain.cs: Fixed a bug when constructing a certificate chain from
164         a collection (endless loop). Fixed bug when Reset-ing an empty chain.
165
166 2004-08-10  Sebastien Pouliot  <sebastien@ximian.com>
167
168         * X509Store.cs: Now returns empty collection/list for certificates/
169         CRL when access to a store is denied.
170
171 2004-07-15  Sebastien Pouliot  <sebastien@ximian.com>
172
173         * X501Name.cs: Support for E (email) in FromString.
174         * X520Attributes.cs: Added X520.EmailAddress.
175         Both patches fix bug #61241 and were contributed by Ianier Munoz.
176
177 2004-05-27  Sebastien Pouliot  <sebastien@ximian.com>
178
179         * X509Certificate.cs: Rethrow original exception when parsing X.509 
180         certificates (inside a CryptographicException) so people can see if 
181         their changes affects certificate decoding.
182
183 2004-05-12  Jesper Pedersen  <jep@itplus.dk>
184
185         * PKCS12.cs: Removed file exists check from SaveToFile(). Removed 
186         Equals() and GetHashCode(). Clone the original iteration count.
187         
188 2004-05-06  Jesper Pedersen  <jep@itplus.dk>
189
190         * PKCS12.cs: Fixed synchronization with X509CertificateCollection in 
191         GetBytes ().
192
193 2004-05-05  Jesper Pedersen  <jep@itplus.dk>
194
195         * PKCS12.cs: Added support for SafeBag attributes. Added support for 
196         Clone() (ICloneable), Equals and GetHashCode. New methods:
197         - AddCertificate (X509Certificate cert)
198         - AddCertificate (X509Certificate cert, IDictionary attributes)
199         - RemoveCertificate (X509Certificate cert)
200         - RemoveCertificate (X509Certificate cert, IDictionary attributes)
201         - AddPkcs8ShroudedKeyBag (AsymmetricAlgorithm aa)
202         - AddPkcs8ShroudedKeyBag (AsymmetricAlgorithm aa, IDictionary attributes)
203         - RemovePkcs8ShroudedKeyBag (AsymmetricAlgorithm aa)
204         - AddKeyBag (AsymmetricAlgorithm aa)
205         - AddKeyBag (AsymmetricAlgorithm aa, IDictionary attributes)
206         - RemoveKeyBag (AsymmetricAlgorithm aa)
207         - AsymmetricAlgorithm GetAsymmetricAlgorithm (IDictionary attrs)
208         - X509Certificate GetCertificate (IDictionary attrs)
209         - IDictionary GetAttributes (AsymmetricAlgorithm aa) 
210         - IDictionary GetAttributes (X509Certificate cert)
211
212 2004-04-22  Sebastien Pouliot  <sebastien@ximian.com>
213
214         * PKCS12.cs: FxCop-ized. CLS compliance.
215         * X501Name.cs: FxCop-ized.
216         * X509Builder.cs: FxCop-ized. Replaced Array.Copy with 
217         Buffer.BlockCopy.
218         * X509CRL.cs: FxCop-ized. Replaced Array.Copy with Buffer.BlockCopy.
219         * X509Certificate.cs: FxCop-ized. Replaced Array.Copy with 
220         Buffer.BlockCopy. Removed unused private method GetHash.
221         * X509CertificateBuilder.cs: Ajusted with changes. Replaced 
222         Array.Copy with Buffer.BlockCopy.
223         * X509CertificateCollection.cs: Added INSIDE_CORLIB as the class is
224         shared with corlib assembly.
225         * X509Chain.cs: FxCop-ized. Removed old ITrustAnchor support.
226         * X509ChainStatusFlags.cs: Added missing [Flags].
227         * X509Extension.cs: FxCop-ized. Added Equals, GetHashCode methods.
228         * X509Extensions.cs: FxCop-ized. Sealed class, renamed to 
229         X509ExtensionCollection and inherit from CollectionBase. Added missing
230         methods.
231         * X509Store.cs: FxCop-ized.
232         * X509StoreManager.cs: FxCop-ized. Sealed class.
233         * X509Stores.cs: Added INSIDE_CORLIB as the class is shared with 
234         corlib assembly.
235         * X520Attributes.cs: FxCop-ized. Added INSIDE_CORLIB.
236
237 2004-04-02  Lluis Sanchez Gual  <lluis@ximian.com>
238
239         * X509Chain.cs: Fixed build for net_1_0 profile.
240
241 2004-03-17  Jesper Pedersen  <jep@itplus.dk>
242
243         * PKCS12.cs: Fixed sequence problem in Pkcs8ShroudedKeyBag. Fixed key
244         bag implementation in GetBytes. Moved key bag implementation in 
245         GetBytes to fit OpenSSL. Added NULL digest in MAC (GetBytes) to fit
246         OpenSSL. Added SaveToFile method.
247
248 2004-03-10  Sebastien Pouliot  <sebastien@ximian.com>
249
250         * PKCS12.cs: Completed GetBytes() so it is now possible to encode
251         / encrypt PKCS12 files.
252
253 2004-02-26  Sebastien Pouliot  <sebastien@ximian.com>
254
255         * X509Store.cs: Changed not to use base64 in filenames as it can 
256         conflict with path separators. Now use plain hex. Now catch
257         incorrectly encoded certificates / CRL in stores. Added Name property.
258
259 2004-02-24  Sebastien Pouliot  <sebastien@ximian.com>
260
261         * X509Certificate.cs: Add support for the OID "1.3.14.3.2.29" (SHA1 
262         with RSA). Added a fix for "really" null algorithm parameters.
263         * X509CertificateCollection.cs: Fixed Contains and IndexOf (worked
264         on objects but not for the same certificate in a different object).
265
266 2004-02-23  Sebastien Pouliot  <sebastien@ximian.com>
267
268         * TestAnchors.cs: Removed - no need to be hardcoded anymore.
269         * X509Chain.cs: Updated to use the new store for trusted roots.
270         * X509CRL.cs: New. Certificate Revocation List v1/v2 support.
271         * X509Store.cs: New. Managed each individual store (with or
272         without CRL support).
273         * X509StoreManager.cs: New. Certificate Store Manager to access
274         user and machine stores and to merge them when required.
275         * X509Stores.cs: New. Certificate stores group for either the
276         current user or the local machine.
277
278 2004-02-20  Sebastien Pouliot  <sebastien@ximian.com>
279
280         * X509Chain.cs: Added an option to use a pre-built chain (like TLS
281         offers) to save time rebuilding it. Added some validations and more
282         detailled status. Still a LOT to do!
283         * X509ChainStatusFlags.cs: New. Status code for the results of the
284         chain building and verification.
285
286 2003-12-15  Sebastien Pouliot  <spouliot@videotron.ca>
287
288         * TrustAnchors.cs: Added a new trusted root, Thawte, for code signing.
289
290 2003-12-07  Sebastien Pouliot  <spouliot@videotron.ca>
291
292         * PKCS12.cs: New. PKCS#12 implementation. Only decoding is working
293         right now.
294
295 2003-09-01  Sebastien Pouliot  <spouliot@videotron.ca>
296
297         * ITrustAnchors.cs: New. Interface to trust anchors.
298         * TestAnchors.cs: New. Include 2 tests anchors: Microsoft Root Agency
299         (for Windows compatibility) and Mono Test Root.
300         * TrustAnchors.cs: New. Include some widely used (commercial) code 
301         signing root certificates.
302         * X509CertificateCollection.cs: New. Collection for Mono's X509 
303         certificates.
304         * X509Chain.cs: New. MINIMAL certificate chaining engine to support
305         Authenticode(tm). VERY PARTIAL IMPLEMENTATION!!!
306
307 2003-03-15  Sebastien Pouliot  <spouliot@videotron.ca>
308
309         * X501Name.cs: New. X.501 Distinguished Names stuff
310         * X509Builder.cs: New. Abstract class for building X.509 related
311         structures (like certificates and CRLs).
312         * X509Certificate.cs: New. A more complete class to handle X.509
313         certificates.
314         * X509CertificateBuilder.cs: New. Class to build X.509 certificates.
315         * X509Extension.cs: New. A base class for all X.509 extensions.
316         * X509Extensions.cs: New. X509Extension collection.
317         * X520Attributes.cs: New. X.520 attributes (mainly for X501 names)