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