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