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