error messages review
[mono.git] / mcs / class / corlib / System.Security / ChangeLog
1 2005-06-22  Sebastien Pouliot  <sebastien@ximian.com> 
2
3         * CodeAccessPermission.cs: Fix Unrestricted PermitOnly (which is like
4         a no-op). Speed up Assert if Unrestricted.
5         * HostSecurityManager.cs: Updated FIXME description.
6         * PermissionSet.cs: Remove Copy() of the permission set when non-CAS
7         permissions are used (replaced by an array of bools). Completed Assert
8         support by re-using the array of bools. Updated TODO descriptions.
9         * SecurityException.cs: Added evidence (if available) in the ToString
10         description of the exception.
11         * SecurityManager.cs: Reworked CheckExecutionRights to get the correct
12         behavior.
13
14 2005-06-20  Sebastien Pouliot  <sebastien@ximian.com> 
15
16         * CodeAccessPermission.cs: Removed redundant and unrequired TODO.
17         * PermissionSet.cs: Some 2.0 optimizations (because sets are simpler
18         without the special case for identity permissions).
19         * SecurityManager.cs: Shortcut for ResolveIdentityPermissions (in 2.0)
20         and some more declarative security syntax updates.
21
22 2005-06-16  Sebastien Pouliot  <sebastien@ximian.com> 
23
24         * PermissionSet.cs: Added support for non-CAS permissions in the
25         IsSubsetOf method.
26         * SecurityManager.cs: Simplified IsGranted and added support for 2.0
27         (where all permissions support unrestricted). Changed desclarative 
28         security syntax not to use flags (like the rest of the source code).
29
30 2005-06-16  Sebastien Pouliot  <sebastien@ximian.com> 
31  
32         * NamedPermissionSet.cs: A default NamedPermissionSet is Unrestricted.
33         * SecurityManager.cs: Simplified LinkDemandFullTrust as FullTrust is
34         immutable.
35
36 2005-06-14  Sebastien Pouliot  <sebastien@ximian.com>
37
38         * SecurityManager.cs: Added ResolvingPolicyLevel property to enable
39         support for FullTrustAssemblies during policy resolution. Reworked
40         (simplified) locking. Moved check for CheckExecutionRights to the 
41         "right" place.
42         * PermissionSet.cs: Added shortcut in GetPermission(Type).
43
44 2005-06-08  Sebastien Pouliot  <sebastien@ximian.com>
45
46         * AllowPartiallyTrustedCallersAttribute.cs, HostSecurityManagerFlags.cs
47         IEvidenceFactory.cs, IPermission.cs, ISecurityEncodable.cs,
48         ISecurityPolicyEncodable.cs, IStackWalk.cs, NamedPermissionSet.cs,
49         PolicyLevelType.cs, SecureString.cs, SecurityElement.cs, 
50         SecurityZone.cs, UnverifiableCodeAttribute.cs, VerificationException.cs
51         XmlSyntaxException.cs: Fix 2.0 beta2 API changes (which is mostly 
52         adding ComVisible attributes to classes).
53
54 2005-06-01  Sebastien Pouliot  <sebastien@ximian.com>
55
56         * PermissionBuilder.cs: Removed unification stuff. This is done at a 
57         lower level.
58         * SecurityManager.cs: Split loading PolicyLevel in two phases. The
59         PolicyHierarchy is now available after phase 1 which ensures we can
60         load permission from outside corlib.
61
62 2005-05-28  Sebastien Pouliot  <sebastien@ximian.com>
63
64         * HostSecurityManager.cs: Added check for ActivationArguments in 
65         application evidences.
66
67 2005-05-27  Sebastien Pouliot  <sebastien@ximian.com>
68
69         * CodeAccessPermission.cs: Allow unrestricted identity permissions in
70         2.0.
71         * PermissionBuilder.cs: New. Internal class to help create permission
72         instances from XML or with a fully qualified name. This class also 
73         deals with unification.
74         * PermissionSet.cs: Use PermissionBuilder to create permissions in 
75         FromXml method. Many 2.0 fixes (mostly to support unrestricted 
76         identity permissions)
77
78 2005-05-26  Sebastien Pouliot  <sebastien@ximian.com>
79
80         * CodeAccessPermission.cs: Fix typo for PermitOnly. Added ComVisible 
81         attribute for NET_2_0 profile.
82         * PermissionSet.cs: Changed static string to const. Added ComVisible 
83         attribute for NET_2_0 profile.
84         * SecurityContext.cs: Capture the identity token but don't create a 
85         WindowsIdentity instance unless required (e.g. Run). This requires 
86         less privileges (so it runs better that way under CAS).
87
88 2005-05-25  Sebastien Pouliot  <sebastien@ximian.com>
89
90         * SecurityException.cs: PermissionState isn't always serialized 
91         (depending on the security policy) so it cannot always be deserialized
92         too (and this must work without throwing exceptions).
93
94 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
95
96         * SecurityContext.cs: Includes more methods in NET_1_1 to enable 
97         ThreadPool.UnsafeQueueUserWorkItem to work properly (i.e. without
98         stack propagation).
99
100 2005-05-16  Sebastien Pouliot  <sebastien@ximian.com>
101
102         * PermissionSet.cs: Add support for "hidden" read-only mode (as used
103         by PolicyStatement).
104         * SecurityFrame.cs: Add some debugging code in the ToString method.
105         * SecurityManager.cs: Changed internal API so we can display the 
106         permission that failed in a PermissionSet (e.g. assembly or appdomain).
107
108 2005-05-11  Sebastien Pouliot  <sebastien@ximian.com>
109
110         * SecurityManager.cs: GetZoneAndOrigin is present in 1.1 too (but is 
111         hidden from mono-api-info because of the LinkDemand for ECMA key).
112
113 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com> 
114  
115         * SecurityContext.cs: That was the wrong place to capture the stack.
116
117 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
118
119         * SecurityContext.cs: Capture the CompressedStack when the current 
120         context one is empty.
121         * SecurityManager.cs: Class is now static (2.0).
122         * SecurityTreatAsSafeAttribute.cs: Fixed AttributeTargets.
123
124 2005-05-06  Sebastien Pouliot  <sebastien@ximian.com>
125
126         * CodeAccessPermission.cs: Reworked frames check to check only for
127         the stack modifiers. Throwing a SecurityException now calls Assembly.
128         UnprotectedGetName () to avoid throwing (recursively) other 
129         SecurityExceptions.
130         * PermissionSet.cs: Reworked frames check to include Assembly (moved) 
131         and AppDomain (new) transitions.
132         * SecurityFrame.cs: Added Domain member to match the runtime structure
133         definition. Removed debugging code (will be moved into the runtime 
134         later) as it can cause SecurityException is some cases.
135         * SecurityManager.cs: Added a method to check if a PermissionSet is
136         granted by an AppDomain.
137
138 2005-04-28  Sebastien Pouliot  <sebastien@ximian.com>
139
140         * PermissionSetCollection.cs: Updated wrt beta2. Seems this will be
141         removed before 2.0 final.
142         * HostProtectionException.cs: Updated wrt beta2. Added TODO as it 
143         isn't support by the runtime.
144         * SecurityContext.cs: Updated wrt beta2. Class is now internal in 
145         NET_1_1 to allow the compressed stack propagation to other threads.
146         * SecurityCriticalAttribute.cs: Added support for property Scope.
147         * SecurityException.cs: Removed PermitOnlySetInstance property to 
148         match beta2.
149         * SecurityTransparentAttribute.cs: Fixed AttributeUsage. Added TODO
150         as it isn't support by the runtime.
151         * SuppressUnmanagedCodeSecurityAttribute.cs: Added delegates to usage
152         in NET_2_0.
153
154 2005-04-27  Sebastien Pouliot  <sebastien@ximian.com>
155
156         * SecurityCriticalScope.cs: New. Enum introduced in 2.0 beta2.
157         * SecurityTreatAsSafeAttribute.cs: New. Attribute introducted in 2.0
158         beta2.
159
160 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
161
162         * HostSecurityManager.cs: Now refers to HostSecurityManagerOptions.
163         * HostSecurityManagerFlags.cs: Renamed enum to 
164         HostSecurityManagerOptions.
165
166 2005-03-31  Sebastien Pouliot  <sebastien@ximian.com>
167
168         * SecurityException.cs: Added try/catch in GetObjectData because the
169         PermissionState property is serialized only if both ControlEvidence 
170         and ControlPolicy are granted.
171
172 2005-03-24  Sebastien Pouliot  <sebastien@ximian.com>
173
174         * CodeAccessPermission.cs: Fixed PermitOnly when used in a set. Added
175         an InheritanceDemand for ControlEvidence and ControlPolicy on the 
176         class.
177         * PermissionSet.cs: Added an InheritanceDemand for MS public key on 
178         class.
179         * SecurityException.cs: Moved PermissionType up in ToString as this
180         property isn't restricted (i.e. will be part of the output even if
181         the other properties can't make it).
182
183 2005-03-15  Sebastien Pouliot  <sebastien@ximian.com>
184
185         * CodeAccessPermission.cs: Fixed depth for starting the stack walk
186         (imperative) and fixed assert condition.
187         * PermissionSet.cs: Fixed depth for starting the stack walk.
188         * SecurityFrame.cs: Reversed stack. Added optional debugging code.
189
190 2005-03-14  Sebastien Pouliot  <sebastien@ximian.com>
191
192         * SecurityManager.cs: Fix CodeAccessPermissionTest.CustomCAS unit test
193         when --security is enabled (code was over-optimized ;-).
194
195 2005-03-11  Sebastien Pouliot  <sebastien@ximian.com>
196
197         * SecurityManager.cs: Added methods to support reflection query and 
198         invoke for LinkDemand and InheritanceDemand. Added method to do a
199         stack walk (demand) when a p/invoking (called by JIT generated code).
200
201 2005-03-02  Sebastien Pouliot  <sebastien@ximian.com>
202
203         * CodeAccessPermission.cs,
204         * PermissionSet.cs: Don't throw NotSupportedException if the security 
205         manager (SecurityManager.SecurityEnabled) is off.
206
207 2005-02-25  Sebastien Pouliot  <sebastien@ximian.com> 
208
209         * CodeAccessPermission.cs: Implement Equals for NET_2_0 profile.
210         * PermissionSet.cs: Added code to decode the metadata format used for
211         declarative security in 2.0 (except enums and arrays now).
212         * PermissionSetCollection.cs: Added code to decode from the new metadata
213         format used for declarative security in 2.0.
214         * SecurityManager.cs: Added support for LinkDemandChoice, Inheritance
215         DemandChoice and DemandChoice (2.0). Added support for reflected 
216         LinkDemand (promotes the demand to a full Demand).
217
218 2005-02-15  Sebastien Pouliot  <sebastien@ximian.com> 
219
220         * SecurityException.cs: Show the method informations when displaying a
221         SecurityException.
222         * SecurityManager.cs: Reworked InheritanceDemand implementation. Added
223         a new method to throw a SecurityException for an InheritanceDemand.
224
225 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com> 
226  
227         * SecurityManager.cs: Reduced the number of parameters for LinkDemand.
228         Removed a (forgotten) debugging message.
229
230 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
231
232         * SecurityException.cs: Show more information when a SecurityException
233         occurs to help debugging.
234         * SecurityManager.cs: Reworked LinkDemand implementation. Supply more
235         informations when throwing a SecurityException for LinkDemand.
236         * PermissionSet.cs: Remove (now) unused code for LinkDemand.
237
238 2005-02-08  Sebastien Pouliot  <sebastien@ximian.com>
239
240         * SecurityManager.cs: Updated code for LinkDemand (and it's special
241         cases).
242
243 2005-01-27  Sebastien Pouliot  <sebastien@ximian.com>
244
245         * CodeAccessPermission.cs: Process Deny for empty PermissionSet (e.g.
246         an unrestricted permission set must deny all permissions).
247         * SecurityException.cs: Added missing HResult to NET_2_0 constructors.
248         Added securiy permissions for GrantedSet, RefusedSet and 
249         PermissionState properties (to avoid leaking policy informations). 
250         Make sure that ToString() always works.
251         * SecurityManager.cs: Remove outdated comments (now that the 
252         declarative attributes are in place).
253
254 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com>
255
256         * SecurityManager.cs: Now use Environment.InternalGetFolderPath to
257         avoid recursion when initializing security policies.
258
259 2005-01-24  Sebastien Pouliot  <sebastien@ximian.com>
260
261         * CodeAccessPermission.cs: Made ThrowSecurityException static so it 
262         can be reused from PermissionSet.
263         * SecurityManager.cs: Use the new icalls for SecurityEnabled and
264         CheckExecutionRights properties. Fix IsGranted for unrestricted 
265         permissions. Set type correctly when loading policy files.
266         * PermissionSet.cs: Now supports unrestricted permission set when
267         evaluating demands.
268
269 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
270
271         * SecurityFrame.cs: Keep RuntimeDeclSecurityEntry enum in sync with
272         runtime (added index to allow AOT to work with declarative security).
273
274 2005-01-19  Sebastien Pouliot  <sebastien@ximian.com>
275
276         * SecurityManager.cs: Fix the regressions on NET_1_1 introduced by my
277         refactoring 10 days ago.
278
279 2005-01-11  Sebastien Pouliot  <sebastien@ximian.com>
280
281         * PermissionSet.cs: Simplified GetHashCode as two exact copies may 
282         have different hash codes (documented as such). This fix some unit
283         tests for 2.0.
284
285 2005-01-10  Sebastien Pouliot  <sebastien@ximian.com>
286
287         * HostSecurityManager.cs: Fix signature as DetermineApplicationTrust
288         doesn't return a boolean anymore.
289         * SecurityElement.cs: The attributes and children elements are not
290         indented in 2.0. This fix many unit tests that do string compares.
291         * PermissionSetCollection.cs: We can't trust all IList implementations
292         to throw the ArgumentOutOfRangeException - so we better do it here.
293
294 2005-01-09  Sebastien Pouliot  <sebastien@ximian.com>
295
296         * CodeAccessPermission.cs: CheckAssert, CheckDemand, CheckDeny and
297         CheckPermitOnly are no more publicly avaiable in Fx 2.0 and have been
298         changed to internal for all profiles. Updated comments to reflect the
299         (better) documentation available with 2.0.
300         * HostSecurityManager.cs: Updated to Dec CTP specs. There is missing
301         documentation (and/or classes) to implement completly the 
302         DetermineApplicationTrust method at this point.
303         * PermissionSetCollection.cs: Completed implementation.
304         * PermissionSet.cs: Fix the case where Assert, Deny and PermitOnly 
305         must be ignored for non-CAS permissions.
306         * SecurityManager.cs: Refactored resolve methods to implements 
307         ResolveSystemPolicy (a resolve without the AppDomain policy level).
308         Added a default implementation for GetZoneAndOrigin (empty ArrayList) 
309         which seems to be right (at least) for FullTrust. 
310
311 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
312
313         * AllowPartiallyTrustedCallersAttribute.cs: Cleanup;
314         * HostSecurityManagerFlags.cs: Updated flags for 2.0 Dec CTP.
315         * SecurityCriticalAttribute.cs: New. New 2.0 attribute.
316         * SecurityTransparentAttribute.cs: New. New 2.0 attribute.
317         * SuppressUnmanagedCodeSecurityAttribute.cs: Cleanup;
318
319 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
320
321         * CodeAccessPermission.cs: Refactored to play more nicely with 
322         PermissionSet and the new functionalities in the runtime.
323         * PermissionSet.cs: Modified to use the new functionalities in the
324         runtime. This allows the declarative stack modifiers to work in a 
325         stack walk.
326         * SecurityFrame.cs: New. This is the managed representation of the
327         security informations associated with a stack frame. This current
328         version only support declarative stack modifiers.
329         * SecurityManager.cs: Modified to use the new functionalities in the
330         runtime.
331
332 2004-11-30  Sebastien Pouliot  <sebastien@ximian.com>
333
334         * CodeAccessPermission.cs:
335         * NamedPermissionSet.cs:
336         * PermissionSet.cs:
337         * SecurityElement.cs:
338         * SecurityException.cs:
339                 Added ComVisible attributes to match 2.0 October Preview.
340         * SecureString.cs: Added an internal method to get the unencrypted 
341         string (required to use the string inside mscorlib).
342
343 2004-10-19  Sebastien Pouliot  <sebastien@ximian.com>
344
345         * SecurityManager.cs: Changed private static methods to use a single
346         parameter (as method permissions overrides class permissions for
347         demand, assert, deny and permitonly).
348
349 2004-10-15  Sebastien Pouliot  <sebastien@ximian.com>
350
351         * CodeAccessPermission.cs: Implemented stubs (soon to be icalls) to
352         get/set/clear the current security frame on the stack. Implemented
353         Assert, Deny and PermitOnly with the new methods. Changed Demand to
354         use the CheckAssert, CheckDeny, CheckPermitOnly and CheckDemand 
355         introduced in 2.0.
356         * PermissionSet.cs: Fixed IsEmpty using documentation from 2.0 beta 1.
357         Implemented immediate (i.e. no stack walk) caller demand (CAS and 
358         non-CAS) required for LinkDemand and InheritanceDemand. Implemented
359         Assert, Deny and PermitOnly using CodeAccessPermission new methods.
360         Re-implement Demand to separate CAS and non-CAS permissions.
361         * SecurityManager.cs: Added new private static methods that will 
362         either be called by the JIT (linkdemand), runtime (inheritancedemand)
363         or by code emitted by the JIT (demand, assert, deny and permitonly).
364
365 2004-10-15  Sebastien Pouliot  <sebastien@ximian.com>
366
367         * SecurityException.cs: Provide more details when a security exception
368         is raised (to help debugging).
369
370 2004-09-02  Sebastien Pouliot  <sebastien@ximian.com>
371
372         * PermissionSet.cs: Updated to match latest unit tests, i.e. match
373         Fx 1.1 on NET_1_1 and Fx 2.0 (beta 1) in NET_2_0.
374         * SecurityElement.cs: FromString is now internal before NET_2_0.
375
376 2004-09-01  Sebastien Pouliot  <sebastien@ximian.com>
377
378         * NamedPermissionSet.cs: FromXml now calls base class instead of an
379         internal method of PermissionSet. This should allow class to inherit
380         from NamedPermissionSet properly.
381         * PermissionSet.cs: Added an internal PolicyLevel property to allow
382         policy file class name resolution. Fixed IsEmpty to return true if
383         the list contains "empty" permissions. Fixed Copy to copy permissions
384         even for unrestricted sets (again because of IUnrestrictedPermission).
385         * SecurityManager.cs: Fixed Resolve(Evidence) because permission 
386         classes Intersect methods can either return null or an empty 
387         PermissionSet.  Fixed ResolvePolicy(Evidence[]) for null (NET_2_0).
388
389 2004-08-31  Sebastien Pouliot  <sebastien@ximian.com>
390
391         * PermissionSet.cs: Fixed RemovePermission and Intersect (due to typos
392         in unit tests). Fixed SetPermission (null).
393
394 2004-08-30  Sebastien Pouliot  <sebastien@ximian.com>
395
396         * NamedPermissionSet.cs: Fixed Description in copies, GetHashCode and
397         Equals (for NET_2_0). Fixed handling of null Name when deserialized 
398         from XML.
399         * PermissionSet.cs: AddPermission now unions permissions of the same
400         type. CopyTo throw (most) exceptions only if there are items in the
401         set. Implemented Demand (but without support for Assert, Deny and 
402         PermitOnly). Fixed deserialized from XML when no class is specified.
403         Started implementation of ConvertPermissionSet (error cases). Fixed
404         Intersect to be compatible (including bugs like FDBK14612) with MS.
405         RemovePermission now compatible with MS (bug? FDBK14622). Fixed Union
406         to work with permissions that do not implement IUnrestrictedPermission.
407
408 2004-08-26  Sebastien Pouliot  <sebastien@ximian.com>
409
410         * SecurityElement.cs: Fixed the new Copy() in Fx 2.0 as it isn't a 
411         deep copy. Throw proper exceptions in FromString (Fx 2.0).
412         * SecurityManager.cs: Throw a NullReference exception in 
413         SavePolicyLevel as MS won't fix it (FDBK13121).
414
415 2004-08-19  Atsushi Enomoto  <atsushi@ximian.com>
416
417         * CodeAccessPermission.cs : csc build fix. Currently mcs has bugs on
418           CS0136 error detection (variable identifiers in switch cases share
419           the scope).
420
421 2004-08-17  Sebastien Pouliot  <sebastien@ximian.com>
422
423         * CodeAccessPermission.cs: Added common methods to help building all
424         Permissions classes in corlib. Most are declared static as they can 
425         also help non CodeAccessPermission-derived permissions.
426
427 2004-08-12  Sebastien Pouliot  <sebastien@ximian.com>
428
429         * SecurityManager.cs: Change ResolvePolicy to only care about host
430         provided evidence to create identity permissions.
431         * SecurityContextSwitcher.cs: Added missing [ReliabilityContract] to 
432         Undo method.
433
434 2004-08-11  Sebastien Pouliot  <sebastien@ximian.com>
435
436         * CodeAccessPermission.cs: Basic implementation for Demand (without
437         full stack trace, i.e. Assert, Deny and PermitOnly aren't considered).
438         Added TODO to unimplemented NET_2_0 methods.
439         * HostSecurityManager.cs: Added comments (as it looked not implemented
440         even to myself).
441         * PermissionSet.cs: Fixed Unrestricted when copied. Changed exception
442         ordering in Copy (ArgumentNullException couldn't work). Made IsEmpty
443         more robust.
444         * SecurityManager.cs: Implemented IsGranted using Assembly.Demand. 
445         Basic implementation for policy resolution.
446
447 2004-08-03  Sebastien Pouliot  <sebastien@ximian.com>
448
449         * PermissionSetCollection.cs: New class in Fx 2.0.
450         * SecureString.cs: New class in Fx 2.0. Not yet encrypted.
451
452 2004-08-02  Sebastien Pouliot  <sebastien@ximian.com>
453
454         * PolicyTypeLevel.cs: Removed duplicate license.
455         * SecurityManager.cs: Moved secuirty demands as attributes (but mcs 
456         doesn't seem to encode them properly as they show up in corcompare).
457         Implemented IsGranted, ResolvePolicy (but some code is still missing
458         in related classes) and SavePolicy/SavePolicyLevel.
459
460 2004-07-14  Sebastien Pouliot  <sebastien@ximian.com>
461
462         * CodeAccessPermission.cs: Added CheckAssert, CheckDemand, CheckDeny,
463         CheckPermitOnly, Equals and GetHashCode to NET_2_0 profile. Actualized
464         TODOs. Removed duplicate license.
465         * NamedPermissionSet.cs: Added Equals/GetHashCode to NET_2_0 profile.
466         Removed duplicate license.
467         * PermissionSet.cs: Added Equals/GetHashCode to NET_2_0 profile. 
468         Removed duplicate license.
469         * SecurityElement.cs: Added Copy and FromString methods to NET_2_0 
470         profile. Removed duplicate license.
471         * SecurityException.cs: Added new constructors and properties to 
472         NET_2_0 profile. Removed duplicate license.
473         * SecurityManager.cs: Added GetZoneAndOrigin and ResolvePolicy to 
474         NET_2_0 profile. Removed duplicate license.
475         * VerificationException.cs: Implements _Exception for NET_2_0 profile.
476         Removed duplicate license.
477         * XmlSyntaxException.cs: Implements _Exception for NET_2_0 profile. 
478         Removed duplicate license.
479
480 2004-07-14  Sebastien Pouliot  <sebastien@ximian.com>
481
482         * HostProtectionException.cs: New class in Fx 2.0.
483         * HostSecurityManager.cs: New class in Fx 2.0.
484         * HostSecurityManagerFlags.cs: New enum in Fx 2.0.
485         * SecurityContext.cs: New class in Fx 2.0.
486         * SecurityContextSwitcher.cs: New structure in Fx 2.0.
487
488 2004-06-15  Gert Driesen <drieseng@users.sourceforge.net>
489
490         * XmlSyntaxException.cs: added missing serialization ctor
491         * SecurityException.cs: fixed typo
492
493 2004-03-05  Atsushi Enomoto <atsushi@ximian.com>
494
495         * SecurityElement.cs : ignore prefix; this enables RSA.FromXmlString()
496           to allow namespaced elements.
497
498 2004-01-27  Sebastien Pouliot  <spouliot@videotron.ca>
499
500         * SecurityElement.cs: Attributes are now kept in an ArrayList (but
501         still returned in an Hashtable) so the attributes order can be
502         kept like MS implementation (but Hashtable cannot guarantee this).
503
504 2004-01-26  Sebastien Pouliot  <spouliot@videotron.ca>
505
506         * NamedPermissionSet.cs: Changed internal constructor 
507         NamedPermissionSet (SecurityElement e) to NamedPermissionSet ().
508         * PermissionSet.cs: Changed internal constructor 
509         PermissionSet (SecurityElement e) to PermissionSet ().
510
511 2004-01-24  David Sheldon <dave-mono@earth.li>
512
513        * SecurityElement.cs: Changed indentation in ToString, it seems
514         MS indent by 3 spaces, not 4. Also added NewLine to childless 
515         elements.
516
517 2004-01-24  David Sheldon <dave-mono@earth.li>
518
519        * SecurityElement.cs: Changed newline distribution in ToString.
520          Matches MS better.
521
522 2004-01-06  Sebastien Pouliot  <spouliot@videotron.ca>
523
524         * CodeAccessPermission.cs: Fixed Demand for custom permissions 
525         (permissions that do not implement, the internal, IBuiltInPermission).
526         Ref. http://bugzilla.ximian.com/show_bug.cgi?id=52626
527         * SecurityException.cs: Fixed ToString() which could, when no 
528         PermissionType where specified, throws a NullReferenceException.
529         Ref. http://bugzilla.ximian.com/show_bug.cgi?id=52626
530
531 2004-01-05  Sebastien Pouliot  <spouliot@videotron.ca>
532
533         * CodeAccessPermission.cs: Fixed Union to match 1.1/1.2 documentation. 
534         Simplified ToString to match MS implementation. Added LAMESPEC to 
535         Assert, Demand, Deny and PermitOnly as they aren't virtual.
536         * NamedPermissionSet.cs: Added internal constructor for PolicyLevel. 
537         * PermissionSet.cs: Added internal constructor for PolicyLevel. 
538         * SecurityManager.cs: Moved some stuff to PolicyLevel class (e.g. Load).
539
540 2004-01-03  Sebastien Pouliot  <spouliot@videotron.ca>
541
542         * SecurityManager.cs: Added some basic stuff to make some security unit
543         tests works (mostly when using PolicyHierarchy).
544
545 2004-01-02  Sebastien Pouliot  <spouliot@videotron.ca>
546
547         * AllowPartiallyTrustedCallersAttribute.cs: Fixed AttributeUsage using
548         1.2 documentation (AllowMultiple=false, Inherited=false)
549         * NamedPermissionSet.cs: Changes to match unit tests.
550         * PermissionSet.cs: Implemented Copy, Intersect, IsSubsetOf and Union 
551         methods. Corrected FromXml.
552         * PolicyLevelType.cs: Added missing [Serializable].
553         * SecurityElement.cs: Fixed constructor to match unit tests.
554         * SecurityException.cs: Added support for GrantedSet and RefusedSet 
555         properties (since 1.1). Set HResult to 0x8013150A.
556         * SecurityZone.cs: Added missing [Serializable].
557         * SuppressUnmanagedCodeSecurityAttribute.cs: Fixed AttributeUsage using
558         1.2 documentation (AllowMultiple=true, Inherited=false)
559         * UnverifiableCodeAttribute.cs: Fixed AttributeUsage using 1.2 
560         documentation (AllowMultiple=true, Inherited=false)
561
562 2003-06-29  Sebastien Pouliot  <spouliot@videotron.ca>
563
564         * PermissionSet.cs: Added missing "virtual" to Count, IsSynchronized 
565         and SyncRoot.
566
567 2003-06-29  Nick Drochak  <ndrochak@gol.com>
568
569         * NamedPermissionSet.cs : Fix buglet/typo/thinko. Thank you unit tests.
570
571 2003-06-28  Sebastien Pouliot  <spouliot@videotron.ca>
572
573         * CodeAccessPermission.cs: Added missing methods. Removed old XML
574         documentation (present in monodoc). Added missing MonoTODO attrs.
575         * NamedPermissionSet.cs : Changed some code from result of unit 
576         tests. Updated MonoTODO attributes.
577         * PermissionSet.cs: Added missing methods. Removed old XML
578         documentation (present in monodoc). Added missing MonoTODO attrs.
579         Added code to some methods.
580         * SecurityManager.cs: Added missing MonoTODO attributes.
581
582 2003-05-09  Sebastien Pouliot  <spouliot@videotron.ca>
583
584         * AllowPartiallyTrustedCallersAttribute.cs: New. Class was missing
585         from original 1.0 documentation (but inclufed in framework 1.0)
586
587 2002-06-10  Duncan Mak  <duncan@ximian.com>
588
589         * IEvidenceFactory.cs (Evidence): Added missing method.
590         
591         * SuppressUnmanagedCodeSecurityAttribute.cs:
592         * UnverifiableCodeAttribute.cs: Added missing
593         AttributeUsage attribute.
594
595 2002-06-05  Nick Drochak  <ndrochak@gol.com>
596
597         * SecurityElement.cs: Fixed couple of hard to spot typos which were
598         causing valid names and keys to be rejected.
599
600 2002-04-28  Lawrence Pit <loz@cable.a2000.nl>
601
602         * CodeAccessPermission.cs : implemented ToString method
603
604 2002-04-27  Lawrence Pit <loz@cable.a2000.nl>
605
606         * SecurityElement.cs: fixed bugs, implemented several methods
607
608 2002-03-12  Duncan Mak  <duncan@ximian.com>
609
610         * SecurityException.cs: Inherit from SystemException, not Exception.
611
612 2002-02-23  Nick Drochak  <ndrochak@gol.com>
613
614         * SecurityElement.cs: fixed typo
615
616 2002-02-13  Dan Lewis <dihlewis@yahoo.co.uk>
617         
618         * NamedPermissionSet.cs: New file (stub)
619
620 2002-02-07  Duncan Mak  <duncan@ximian.com>
621
622         * SecurityException.cs: Reformatted to fit the form of other
623         Exceptions. Added serialization bits.
624
625 2002-01-05  Ravi Pratap  <ravi@ximian.com>
626
627         * SecurityElement.cs : Insert MonoTODO attribute.
628
629 2002-01-02  Nick Drochak  <ndrochak@gol.com>
630
631         * CodeAccessPermission.cs: Fix syntax error hidden by exclusion in .build file
632
633 2001-12-30  Nick Drochak  <ndrochak@gol.com>
634
635         * PermissionSet.cs SecurityManager.cs: New Files
636         * CodeAccessPermission.cs: Add Skeleton code
637         * IPermission.cs: Make public and inherit from ISecurityEncodable 
638         * ISecurityEncodable.cs: Make interface public
639         * ISecurityPolicyEncodable.cs: Ditto
640         * IStackWalk.cs: Ditto
641
642 2001-12-29  Nick Drochak  <ndrochak@gol.com>
643
644         * ISecurityPolicyEncodable.cs, PolicyLevelType.cs, 
645         SecurityZone.cs, SecurityException.cs, UnverifiableCodeAttribute.cs,
646         SuppressUnmanagedCodeSecurityAttribute.cs,
647         VerificationException.cs, XmlSyntaxException.cs: New files
648
649 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
650
651         * SecurityElement.cs, CodeAccessPermission.cs IPermission.cs
652         IStackWalk.cs SecurityElement.cs ISecurityEncodable.cs: New files.
653