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