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