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