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