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