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