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