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