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