2009-05-21 Atsushi Enomoto <atsushi@ximian.com>
[mono.git] / mcs / class / System.ServiceModel / System.ServiceModel.Channels / ChangeLog
1 2009-05-21  Atsushi Enomoto  <atsushi@ximian.com>
2
3         * InputChannelBase.cs, TransportBindingElement.cs, RequestContext.cs:
4           a few minor API fixes.
5
6 2009-05-21  Atsushi Enomoto  <atsushi@ximian.com>
7
8         * MessageEncoderFactory.cs : implement CreateSessionEncoder().
9
10 2009-05-19  Atsushi Enomoto  <atsushi@ximian.com>
11
12         * TcpDuplexSessionChannel.cs : add To header.
13
14 2009-05-19  Atsushi Enomoto  <atsushi@ximian.com>
15
16         * MessageFault.cs : fix several SOAP12 fault deserialization in xml
17           parsing.
18
19 2009-05-18  Atsushi Enomoto  <atsushi@ximian.com>
20
21         * FaultConverter.cs : avoid NRE for null IncomingMessageHeaders.
22
23 2009-05-15  Atsushi Enomoto  <atsushi@ximian.com>
24
25         * MessageFault.cs : Reason is mandatory. raise XmlException, and
26           CommunicationException in each CreateFault().
27
28 2009-05-15  Atsushi Enomoto  <atsushi@ximian.com>
29
30         * TcpDuplexSessionChannel.cs : on listener side, get TcpClient at
31           Open(). Some (but not all yet) continuous communication works now.
32           Use ProtocolException. Remove dummy binary session string.
33
34 2009-05-14  Atsushi Enomoto  <atsushi@ximian.com>
35
36         * TcpDuplexSessionChannel.cs : more [MC-NMF] implementation. Moved
37           sending/receiving SizedMessageRecord parts to manager class.
38           Handle writer session, though it is likely broken at dictionary
39           writer part (no string is written so far).
40         * BinaryMessageEncoder.cs : add writer session and rename reader
41           session.
42
43 2009-05-14  Atsushi Enomoto  <atsushi@ximian.com>
44
45         * TcpDuplexSessionChannel.cs : more [MC-NMF] implementation. Via uri
46           is mandatory in initiator preamble packet. Handle Fault reply in
47           initiator preamble.
48
49 2009-05-14  Atsushi Enomoto  <atsushi@ximian.com>
50
51         * TcpDuplexSessionChannel.cs : ongoing refactoring to collect [MC-NMF]
52           based communication under TcpBinaryFrameManager class.
53
54 2009-05-13  Jb Evain  <jbevain@novell.com>
55
56         * MessageHeader.cs: use a SL friendly way of creating an XmlReader
57         from a StringReader.
58
59 2009-05-13  Atsushi Enomoto  <atsushi@ximian.com>
60
61         * MessageImpl.cs, MessageHeader.cs : eliminate xlinq in 2.1, and
62           actually eliminate DOM-based implementation too in 2.0.
63
64 2009-04-28  Atsushi Enomoto  <atsushi@ximian.com>
65
66         * TcpDuplexSessionChannel.cs : implement in-band dictionary support
67           in [MC-NMF] and [MC-NBFSE], used in duplex channels. Added some
68           comments for magic numbers based on [MC-NMF].
69
70 2009-04-28  Atsushi Enomoto  <atsushi@ximian.com>
71
72         * BinaryMessageEncoder.cs : implement part of in-band dictionary
73           support for [MC-NBFSE] record in [MC-NMF], in this class.
74
75 2009-04-28  Atsushi Enomoto  <atsushi@ximian.com>
76
77         * BinaryMessageEncodingBindingElement.cs : clear extra public members.
78
79 2009-04-27  Atsushi Enomoto  <atsushi@ximian.com>
80
81         * TcpDuplexSessionChannel.cs : implemented some channel methods.
82
83 2009-04-27  Atsushi Enomoto  <atsushi@ximian.com>
84
85         * BinaryMessageEncoder.cs : use XmlDictionary specified as [MC-NBFS].
86
87 2009-04-27  Atsushi Enomoto  <atsushi@ximian.com>
88
89         * ChannelManagerBase.cs : implement Open/CloseTimeout correctly.
90
91 2009-04-23  Atsushi Enomoto  <atsushi@ximian.com>
92
93         * BinaryMessageEncoder.cs : use quotas in binding element.
94           Implement WriteMessage().
95
96 2009-04-22  Atsushi Enomoto  <atsushi@ximian.com>
97
98         * PeerCustomResolverBindingElement.cs : do initialize field.
99
100 2009-04-21  Atsushi Enomoto  <atsushi@ximian.com>
101
102         * PeerCustomResolverBindingElement.cs :
103           implement full custom resolver.
104
105 2009-04-21  Atsushi Enomoto  <atsushi@ximian.com>
106
107         * PeerDuplexChannel.cs, PeerChannelListener.cs,
108           PeerOutputChannel.cs, PeerCustomResolverBindingElement.cs,
109           PeerChannelFactory.cs : ongoing p2p channel implementation.
110
111 2009-04-21  Atsushi Enomoto  <atsushi@ximian.com>
112
113         * PnrpPeerResolverBindingElement.cs : sync with PeerResolver changes.
114
115 2009-04-21  Atsushi Enomoto  <atsushi@ximian.com>
116
117         * BinaryMessageEncodingBindingElement.cs, ChannelBase.cs,
118           ChannelFactoryBase.cs, WindowsStreamSecurityBindingElement.cs :
119           implement GetProperty<T>(). Return documented objects or null.
120
121 2009-04-20  Atsushi Enomoto  <atsushi@ximian.com>
122
123         * PeerChannelFactory.cs, PeerChannelListener.cs,
124           PeerCustomResolverBindingElement.cs, PeerDuplexChannel.cs
125           PeerInputChannel.cs, PeerOutputChannel.cs :
126           new; ongoing peer transport implementation.
127         * DuplexSessionChannelBase.cs, InputChannelBase.cs
128           MsmqOutputChannel.cs, OutputChannelBase.cs,
129           PeerResolverBindingElement.cs, PeerTransportBindingElement.cs,
130           PnrpPeerResolverBindingElement.cs, TcpDuplexSessionChannel.cs :
131           several internal changes (either required or for simplification)
132           for ongoing peer transport implementation.
133
134 2009-04-08  Atsushi Enomoto  <atsushi@ximian.com>
135
136         * PeerTransportBindingElement.cs : ListenIPAddress is IPAddress.
137
138 2009-04-07  Atsushi Enomoto  <atsushi@ximian.com>
139
140         * TcpTransportBindingElement.cs : check build-ability before
141           actually building channels.
142         * ConnectionOrientedTransportBindingElement.cs : fixed build-ability
143           conditions according to MSDN.
144
145 2009-03-05  Atsushi Enomoto  <atsushi@ximian.com>
146
147         * MessageHeader.cs, MessageHeaders.cs, MessageImpl.cs :
148           handle headers in SL2. Slightly changed 3.0 code too.
149
150 2009-03-04  Atsushi Enomoto  <atsushi@ximian.com>
151
152         * HttpRequestChannel.cs : use cross domain access manager.
153
154 2009-02-27  Atsushi Enomoto  <atsushi@ximian.com>
155
156         * Message.cs : (in CreateBufferedCopy) do not pass the entire
157           message as BodyWriter.
158           (in GetReaderAtBodyContents) just write body contents.
159         * MessageImpl.cs : do not try to read body at ctor (fixed tons
160           of test failures).
161           Add some state check in GetReaderAtBodyContents().
162         * XmlReaderBodyWriter.cs : avoid possible extra xmldecl onto output.
163
164 2009-02-18  Atsushi Enomoto  <atsushi@ximian.com>
165
166         * Message.cs : do not forget to flush.
167         * HttpRequestChannel.cs : give more exact error info.
168
169 2009-02-18  Atsushi Enomoto  <atsushi@ximian.com>
170
171         * Message.cs, MessageBufferImpl.cs, XmlReaderBodyWriter.cs :
172           make buffered copy in ML2 really buffered.
173
174 2009-02-12  Atsushi Enomoto  <atsushi@ximian.com>
175
176         * Message.cs : if there is no header item to write, do not write
177           SOAP header element.
178
179 2009-01-22  Alan McGovern  <amcgovern@novell.com>
180
181         * MessageHeaders.cs : List<T>.RemoveAll(Predicate<T>) doesn't exist in Silverlight.
182         Rewrite to avoid usage of it.
183
184 2009-01-14  Atsushi Enomoto  <atsushi@ximian.com>
185
186         * ChannelParameterCollection.cs : implement, rather than NIE.
187
188 2008-05-22  Noam Lampert <noaml@mainsoft.com>
189
190         * MessageFault.cs: Correctly serialize ExceptionDetails. Expose SimpleMessageFault to allow
191           internal users to know the type of the detail. 
192         
193 2008-05-20  Noam Lampert <noaml@mainsoft.com>
194
195         * Message.c: Use private setter for state private variable to ease debugging.
196                                  Modify ToString not to change the state, as it is called quite often by VS debugger
197                                  
198 2008-04-21  Roei Erez <roeie@mainsoft.com>
199
200         * HttpChannleManager: Fix for multithreaded use.
201         * HttpReplyChannel: Fix crash during sutdown.
202
203 2008-04-17  Igor Zelmanovich <igorz@mainsoft.com>
204
205         * HttpChannleManager: ensure trailing slash in uri.
206
207 2008-04-17  Vladimir Krasnov  <vladimirk@mainsoft.com>
208
209         * added: HttpChannleManager,
210         * HttpChannelListener: added use of HttpChannelManager
211
212 2008-04-17  Vladimir Krasnov  <vladimirk@mainsoft.com>
213
214         * MessageEncodingBindingElement.cs: fixed ctor
215
216 2008-04-17  Vladimir Krasnov  <vladimirk@mainsoft.com>
217
218         * XmlReaderBodyWriter.cs: fixed ctor, skip xml declaration
219
220 2008-04-17  Vladimir Krasnov  <vladimirk@mainsoft.com>
221
222         * HttpReplyChannel.cs: fixed TryReceiveRequest, fix message header To
223
224 2008-04-17  Vladimir Krasnov  <vladimirk@mainsoft.com>
225
226         * MessageFault.cs: fixed CreateFault11, implemented "detail"
227
228 2008-04-17  Noam Lampert <noaml@mainsoft.com>
229
230         * HttpReplyChannel.cs: fix API - Fix crash during service shutdown.
231
232 2008-04-13  Igor Zelmanovich <igorz@mainsoft.com>
233
234         * BindingElementCollection.cs: fix API - .ctor's signature.
235
236 2008-04-10  Eyal Alaluf <eyala@mainsoft.com>
237
238         * XmlSerializerBodyWriter.cs: Removed.
239
240 2008-03-25  Vladimir Krasnov  <vladimirk@mainsoft.com>
241
242         * MessageFault.cs: fixed WriteReason, .net XmlWriter compatible
243
244 2008-02-20  Atsushi Enomoto  <atsushi@ximian.com>
245
246         * DuplexSessionChannelBase.cs : made it non-session (more reusable).
247         * TcpChannelFactory.cs, TcpChannelListener.cs :
248           unify factory and listener into TcpChannelInfo for use in
249           TCP channel implementation. Do not store stream in the listener.
250           Factory now uses BinaryMessageEncoder.
251         * TcpDuplexSessionChannel.cs : changes explained above, and now it
252           holds TcpClient that the listener has accepted.
253
254           tcp-transport-binding-element sample now communicates (though
255           only when both sides are mono: there seems binary mismatch).
256
257 2008-02-20  Atsushi Enomoto  <atsushi@ximian.com>
258
259         * TcpTransportBindingElement.cs, TcpConnectionPoolSettings.cs :
260           clone connection pool settings too.
261         * NamedPipetransportBindingElement.cs,
262           NamedPipeConnectionPoolSettings.cs : let's clean them up too (not
263           being likely implemented though).
264
265 2008-02-20  Atsushi Enomoto  <atsushi@ximian.com>
266
267         * ConnectionOrientedTransportBindingElement.cs, 
268           TcpTransportBindingElement.cs : some API updates.
269           Initialize default values.
270         * TcpConnectionPoolSettings.cs : new file.
271
272 2008-02-18  Atsushi Enomoto  <atsushi@ximian.com>
273
274         * ServiceHostParser.cs, SvcHttpHandlerFactory.cs, SvcHttpHandler.cs:
275           added support for "factory" attribute.
276
277 2008-02-15  Atsushi Enomoto  <atsushi@ximian.com>
278
279         * HttpRequestContent.cs : consider HttpResponseMessageProperty.
280
281 2008-02-15  Atsushi Enomoto  <atsushi@ximian.com>
282
283         * HttpRequestChannel.cs : pass response ContentType to ReadMessage().
284
285 2008-02-15  Atsushi Enomoto  <atsushi@ximian.com>
286
287         * HttpRequestChannel.cs : create WebRequest against To message header
288           item (if exists).
289           Consider HttpRequestMessageProperty.
290           Do not output body when suppressed or the method is GET.
291
292 2008-02-15  Atsushi Enomoto  <atsushi@ximian.com>
293
294         * HttpChannelListener.cs : BindingContext may not have listenUri
295           at its .ctor() step.
296
297 2008-02-08  Atsushi Enomoto  <atsushi@ximian.com>
298
299         * BindingContext.cs : RemainingBindingElements is not just a dummy
300           collection but is actually user-controlled.
301
302 2008-02-08  Atsushi Enomoto  <atsushi@ximian.com>
303
304         * TcpChannelFactory.cs, TcpChannelListener.cs, 
305           HttpChannelFactory.cs, HttpChannelListener.cs,
306           MsmqChannelFactory.cs, MsmqChannelListener.cs,
307           TextMessageEncodingBindingElement.cs,
308           BinaryMessageEncodingBindingElement.cs,
309           MtomMessageEncodingBindingElement.cs :
310           message encoder should be retrieved only through public API.
311         * BindingContext.cs : so my old guess was wrong.
312
313         See also: http://blogs.msdn.com/drnick/archive/2006/05/10/594134.aspx
314
315 2008-02-05  Atsushi Enomoto  <atsushi@ximian.com>
316
317         * HttpTransportBindingElement.cs : implemented copy constructor.
318
319 2007-08-20  Atsushi Enomoto  <atsushi@ximian.com>
320
321         * HttpRequestChannel.cs, HttpReplyChannel.cs : treat SOAPAction HTTP
322           header when AddressingVersion is None.
323
324 2007-08-20  Atsushi Enomoto  <atsushi@ximian.com>
325
326         * MessageHeaders.cs : AddressingVersion.None rejects some WSA
327           property setters.
328
329 2007-08-19  Atsushi Enomoto  <atsushi@ximian.com>
330
331         * OneWayBindingElementImporter.cs
332           CompositeDuplexBindingElementImporter.cs : new files.
333
334 2007-08-17  Atsushi Enomoto  <atsushi@ximian.com>
335
336         * MessageHeaders.cs : due to the DataContractSerializer.ReadObject()
337           semantic change, its bool parameter must be false, not true.
338
339 2007-07-13  Atsushi Enomoto  <atsushi@ximian.com>
340
341         * InputChannelBase.cs, MsmqChannelListener.cs, MsmqInputChannel.cs :
342           new files. Msmq transport listener Implementation.
343         * MsmqOutputChannel.cs : implemented Send(). Not sure if it works
344           (wait for System.Messaging impl.)
345         * HttpReplyChannel.cs : added comment
346
347 2007-07-06  Atsushi Enomoto  <atsushi@ximian.com>
348
349         * MsmqChannelFactory.cs MsmqOutputChannel.cs OutputChannelBase.cs :
350           new files. internal stuff for msmq channel.
351         * BinaryMessageEncoder.cs : added another .ctor().
352         * MsmqTransportBindingElement.cs :
353           implemented [Can]BuildChannelFactory().
354
355 2007-07-06  Atsushi Enomoto  <atsushi@ximian.com>
356
357         * MsmqBindingElementBase.cs MsmqTransportBindingElement.cs :
358           initialize some fields.
359
360 2007-07-05  Atsushi Enomoto  <atsushi@ximian.com>
361
362         * MsmqBindingElementBase.cs MsmqMessageProperty.cs
363           MsmqTransportBindingElement.cs ITransactedBindingElement.cs :
364           couple of msmq stubs.
365
366 2007-04-02  Atsushi Enomoto  <atsushi@ximian.com>
367
368         * SecureMessageGenerator.cs : SecurityContextToken support (though
369           it is still regarded as invalid by WCF).
370
371 2007-03-13  Atsushi Enomoto  <atsushi@ximian.com>
372
373         * WSSecurityMessageHeader.cs, SecureMessageGenerator.cs :
374           make header.Contents.Add() more strict.
375           Use HasAsymmetricKey to determine whether to use asymmetric algorithm
376           or not.
377           Added some hack to allow ssl token external mode.
378           Commented out such lines that always premised asymmtric key.
379
380 2007-03-08  Atsushi Enomoto  <atsushi@ximian.com>
381
382         * TransactionFlowBindingElement.cs : forgot necessary Clone().
383
384 2007-03-08  Atsushi Enomoto  <atsushi@ximian.com>
385
386         * MessageSecurityBindingSupport.cs : support check to create
387           authenticator is now done in both initiator/recipient sides.
388         * SecurityRequestContext.cs : don't encrypt WS-Trust RSTR.
389
390 2007-03-07  Atsushi Enomoto  <atsushi@ximian.com>
391
392         * MessageSecurityBindingSupport.cs : for now, comment out the code
393           that makes authenticator creation optional.
394         * SecurityRequestContext.cs : don't decrypt message when it is
395           WS-Trust messages. Also, do not secure SOAP Fault (it is likely
396           to fail).
397         * SecurityChannelListener.cs : GetProperty<T>() now returns
398           MessageSecurityBindingSupport when requested. It is used by
399           EndpointDispatcher to check if it supports WS-Trust negotiation.
400         * ChannelListenerBase.cs :
401           removed extra TODO and field. Implemented GetProperty<T>().
402         * Message.cs : In CreateMessage() for SOAP Fault, create
403           SimpleMessage with IsFault = true.
404
405 2007-03-07  Atsushi Enomoto  <atsushi@ximian.com>
406
407         * SecurityRequestContext.cs : try to reply fault with the inner
408           channel when an error occurred internally.
409         * FaultConverter.cs : implemented based on OperationContext (at normal
410           state it does not seem to create messages, so I implemented it this
411           way).
412
413 2007-03-07  Atsushi Enomoto  <atsushi@ximian.com>
414
415         * TransportBindingElement.cs : implemented GetProperty<T>().
416         * TransactionFlowBindingElement.cs : on building factory or listener,
417           reject channel types that cannot build.
418         * SecurityBindingElement.cs : added some TODO comments.
419         * HttpTransportBindingElement.cs : GetProperty<T>() should rather
420           delegate to base, not BindingContext.
421         * SecurityRequestContext.cs : somewhat late decryption.
422
423 2007-03-06  Atsushi Enomoto  <atsushi@ximian.com>
424
425         * MessageSecurityBindingSupport.cs,
426           AsymmetricSecurityBindingElement.cs,
427           SymmetricSecurityBindingElement.cs :
428           renamed *SecurityBindingElementSupport to *SecurityCapabilities and
429           implemented ISecurityCapabilities on them. Now those binding
430           elements support GetProperty<ISecurityCapabilities>().
431
432 2007-03-05  Atsushi Enomoto  <atsushi@ximian.com>
433
434         * SecurityBindingElement.cs : SetIssuerBindingContextIfRequired()
435           will work only for predefined parameter types.
436
437 2007-03-01  Atsushi Enomoto  <atsushi@ximian.com>
438
439         * MessageSecurityBindingSupport.cs :
440           Set proper MessageDirection to the requirement after creation.
441           split CreateTokenAuthenticator() as MessageDirection is different.
442           Removed extra creation of requirement.
443
444 2007-03-01  Atsushi Enomoto  <atsushi@ximian.com>
445
446         * MessageSecurityBindingSupport.cs : token authenticator is not
447           always created on channel-opening stage.
448         * SecurityBindingElement.cs : use SslSecurityTokenParameters for
449           Sslnego binding factory method.
450
451 2007-02-28  Atsushi Enomoto  <atsushi@ximian.com>
452
453         * SecureMessageGenerator.cs : inconsistent ReferenceList has caused
454           signature velification failure.
455
456 2007-02-27  Atsushi Enomoto  <atsushi@ximian.com>
457
458         * SecureMessageGenerator.cs : encrypt signature confirmations only
459           when they are required.
460
461 2007-02-27  Atsushi Enomoto  <atsushi@ximian.com>
462
463         * SecureMessageGenerator.cs : SignatureConfirmation must be encrypted
464           when [Signature Protection is true i.e. when we use
465           SignBeforeEncryptAndEncryptSignature.
466
467           With this change finally samplesvc.cs/samplecli.cs became
468           interoperable(!)
469
470 2007-02-27  Atsushi Enomoto  <atsushi@ximian.com>
471
472         * SecureMessageDecryptor.cs : signature verification was not done
473           for endorsing supporting tokens.
474         * SecureMessageGenerator.cs : moved SignatureConfirmation position
475           in the security header. Don't output empty ReferenceList.
476
477 2007-02-27  Atsushi Enomoto  <atsushi@ximian.com>
478
479         * SecureMessageGenerator.cs : signingToken was added before being
480           initialized and thus caused NRE.
481
482 2007-02-27  Atsushi Enomoto  <atsushi@ximian.com>
483
484         * WSSecurityMessageHeader.cs, SecureMessageDecryptor.cs,
485           SecureMessageGenerator.cs : use SHA1 instead of HMACSHA1. Now we
486           don't need workaround for symmetric key restoration.
487
488 2007-02-27  Atsushi Enomoto  <atsushi@ximian.com>
489
490         * WSSecurityMessageHeader.cs, SecureMessageDecryptor.cs,
491           SecureMessageGenerator.cs :
492           Avoid extra reference search from the request's ReferenceList.
493           create HMACSHA1 always with the key to compute hash (I'm not sure
494           it is correct; it is rather to adjust all hash consistent.)
495
496 2007-02-27  Atsushi Enomoto  <atsushi@ximian.com>
497
498         * SecureMessageDecryptor.cs : verify that endorsing supporting tokens
499           actually endorsed the primary signature.
500         * SecureMessageGenerator.cs : implemented endorsing of the primary
501           signature. So, now supporting tokens are fully implemented.
502
503 2007-02-27  Atsushi Enomoto  <atsushi@ximian.com>
504
505         * MessageSecurityBindingSupport.cs : so, those supporting tokens are
506           totally signing tokens.
507         * SecureMessageGenerator.cs : Endorsing tokens should also be
508           included in the message. They are just not signed.
509
510 2007-02-26  Atsushi Enomoto  <atsushi@ximian.com>
511
512         * SecureMessageGenerator.cs : support signing and encryption of
513           supporting tokens. Some required refactory to do it.
514         * MessageSecurityBindingSupport.cs : added EncryptedData member.
515
516 2007-02-26  Atsushi Enomoto  <atsushi@ximian.com>
517
518         * SecureMessageDecryptor.cs : fix exception message.
519         * WSSecurityMessageHeader.cs, WSSignedXml.cs, WSEncryptedXml.cs :
520           XmlNamespaceManager is not required for GetIdElement().
521
522 2007-02-22  Atsushi Enomoto  <atsushi@ximian.com>
523
524         * SecureMessageDecryptor.cs, WSSecurityMessageHeader.cs :
525           moved decryption part from former file to latter file, to reuse
526           SignedXml instance (though now I doubt how it actually was good)
527           which in turn required to replace EncryptedData in
528           WSSecurityMessageHeader with decrypted one.
529         * WSEncryptedXml.cs : similar to WSSignedXml.cs, to handle wsu:Id.
530
531 2007-02-21  Atsushi Enomoto  <atsushi@ximian.com>
532
533         * SecureMessageGenerator.cs : when we create DerivedKeyToken, those
534           EncryptedData should contain KeyInfo as it is not obvious which key
535           is used there. .net<->mono DerivedKeyToken introp is done.
536         * SecureMessageDecryptor.cs : check derived key requirement.
537           Reduce dom-dependent parts.
538
539 2007-02-21  Atsushi Enomoto  <atsushi@ximian.com>
540
541         * WSSecurityMessageHeader.cs : ReferenceList needs to be bound to
542           the related DerivedKeyToken (if any).
543         * SecureMessageGenerator.cs : largely done with DerivedKeyToken
544           support. Some refactoring to distinguish deried-token-related
545           variables.
546         * SecureMessageDecryptor.cs : removed its own support for derived
547           key tokens. Now it fully works with DerivedKeySecurityToken.
548
549 2007-02-21  Atsushi Enomoto  <atsushi@ximian.com>
550
551         * WSSecurityMessageHeader.cs, SecureMessageDecryptor.cs,
552           SecureMessageDecryptor.cs :
553           Implemented increment token reading in o:Security, as
554           DerivedKeyToken could reference to existing wrapped key.
555           Removed WsscDerivedKeyToken and all relevant code.
556         * SecureMessageGenerator.cs : replaced WsscDerivedKeyToken with
557           DerivedKeySecurityToken.
558
559 2007-02-16  Atsushi Enomoto  <atsushi@ximian.com>
560
561         * SecureMessageGenerator.cs : it was setting security tokens into
562           incorrect SecurityMessageProperty.
563           Use correct WrappedKeySecurityToken for EncryptedKeySHA1.
564           Now it uses SecurityRequestContext instead of just primary key.
565         * SecureMessageDecryptor.cs : removed extra lines. Limit workarounds
566           to symmetric reply decryption, which is the only trouble case.
567           Do not create another SignedXml.
568         * WSSecurityMessageHeader.cs : SignedXml processing changes above.
569
570 2007-02-15  Atsushi Enomoto  <atsushi@ximian.com>
571
572         * SecureMessageDecryptor.cs : Now it uses union token resolver and
573           the resolver works with in-progress token reading in o:Security.
574         * WSSecurityMessageHeader.cs : now it does not read EncryptedKey
575           as EncryptedKeyIdentifierClause. It is rather a SecurityToken.
576         * SecureMessageGenerator.cs : cosmetic refactoring.
577
578 2007-02-14  Atsushi Enomoto  <atsushi@ximian.com>
579
580         * WSSecurityMessageHeader.cs : read EncryptedKeyIdentifierClause
581           instead of EncryptedKey.
582
583 2007-02-13  Atsushi Enomoto  <atsushi@ximian.com>
584
585         * MessageSecurityBindingSupport.cs : SigningToken and EncryptionToken
586           should not be always prepared at channel Open(). It also caused
587           that extra token requirements.
588         * SecureMessageGenerator.cs : use correct key clause for encryption.
589         * SecureMessageDecryptor.cs : reduce extra key acquisition.
590
591 2007-02-06  Atsushi Enomoto  <atsushi@ximian.com>
592
593         * MessageSecurityBindingSupport.cs : added CreateTokenAuthenticator()
594           for supporting 'supporting tokens' .
595         * SecureMessageGenerator.cs : Supporting token creation is done only
596           at initiator (not sure if it is supposed that, but for now it is).
597           Removed extraneous CollectSupportingTokens().
598         * SecureMessageDecryptor.cs : implemented supporting token
599           authentication (partly). "Signed" supporting tokens are expected
600           to work fine.
601
602 2007-02-06  Atsushi Enomoto  <atsushi@ximian.com>
603
604         * SecureMessageGenerator.cs :
605           make SignBeforeEncryptAndEncryptSignature working.
606
607 2007-02-06  Atsushi Enomoto  <atsushi@ximian.com>
608
609         * SecureMessageGenerator.cs : EncryptedKeySHA1 needs key hash, not
610           the key itself. ProtectionToken is WrappedKey.
611         * SecureMessageDecryptor.cs : now it is internal encrypted key clause,
612           not EncryptedKeyIdentifierClause which is not for embedded key.
613         * MessageProperties.cs : Fixed copy direction in CopyProperties().
614
615 2007-02-05  Atsushi Enomoto  <atsushi@ximian.com>
616
617         * MessageSecurityBindingSupport.cs : added DefaultKeyWrapAlgorithm
618           to switch asymmetric and symmetric. Not used yet.
619         * SecurityRequestChannel.cs : now it pass the request security
620           property to reply receiver so that it could use the primary key
621           used at request phase.
622         * SecurityRequestContext.cs : now it pass the context itself to
623           reply sender so that it could embed related MessageID.
624         * SecureMessageGenerator.cs : ongoing changes to support symmetric
625           binding element. Add RelatesTo output and remove MessageID when
626           replying to the sender. Added some hacks to get symmetric binding
627           (kind of) working.
628         * SecureMessageDecryptor.cs : ditto. Handle embedded encryption key
629           in SecurityTokenReference (it also involved existing encrypted key 
630           retrieval). In reply receiver, reuse the key that was used at
631           request phase. It needs significant token resolution refactoring.
632
633 2007-02-02  Atsushi Enomoto  <atsushi@ximian.com>
634
635         * MessageSecurityBindingSupport.cs : cosmetic refactoring.
636         * SecureMessageDecryptor.cs : store token and its authentication
637           policies into the security property, and reuse it on reply.
638           Some code refactoring; there is at most one o:Security to solve at
639           one endpoint (depends on Actor). Some attempt to use correct
640           token parameters (but for now I have only samples that use x509).
641         * SecureMessageGenerator.cs : For replying message, use initiator's
642           signing token as the encryption token. Simply reuse security
643           property from the input message.
644
645           I have some nasty workaround at decryptor for initiator that could
646           not retrieve decryption key.
647
648 2007-02-02  Atsushi Enomoto  <atsushi@ximian.com>
649
650         * SecureMessageGenerator.cs, SecurityChannelListener.cs,
651           SecurityRequestContext.cs, MessageSecurityBindingSupport.cs:
652           several refactoring on token acquisition. Large part of
653           MessageSecurityBindingSupport code is unified.
654
655 2007-02-02  Atsushi Enomoto  <atsushi@ximian.com>
656
657         * MessageProperties.cs : Security property should be one of the items.
658           Actually many other properties should be similar as well.
659         * MessageImpl.cs, MessageBufferImpl.cs, Message.cs :
660           when copying a message, copy properties as well.
661         * SecurityRequestContext.cs : on replying, pass input 
662           SecurityMessageProperty to the security generator.
663         * SecureMessageGenerator.cs : both of above, for SignatureConfirmation
664           support.
665         * WSSecurityMessageHeader.cs : fixed lazy .ctor() that did nothing.
666
667 2007-02-01  Atsushi Enomoto  <atsushi@ximian.com>
668
669         * WSSignedXml.cs:
670           MessageHeader.cs, Message.cs, WSSecurityMessageHeader.cs,
671           SecureMessageDecryptor.cs, SecureMessageGenerator.cs:
672           use new WSSignedXml instead of SignedXml, and remove coexisting
673           Id and wsu:Id. Now we can live only with wsu:Id and therefore
674           - our reply messages could be consumed by .NET, and
675           - .NET signature could be verified.
676
677 2007-02-01  Atsushi Enomoto  <atsushi@ximian.com>
678
679         * SecureMessageDecryptor.cs : The signing key must be passed as
680           CheckSignature() argument, not SigningKey.
681
682 2007-01-31  Atsushi Enomoto  <atsushi@ximian.com>
683
684         * MessageImpl.cs : don't read attribute after ReadStartElement().
685
686 2007-01-31  Atsushi Enomoto  <atsushi@ximian.com>
687
688         * MessageSecurityBindingSupport.cs : some Release() refactoring.
689         * SecureMessageGenerator.cs : use correct signing key clause for
690           SecurityTokenReferenceKeyInfo to be serialized.
691         * SecureMessageDecryptor.cs : now it can try to parse signature.
692
693 2007-01-31  Atsushi Enomoto  <atsushi@ximian.com>
694
695         Ongoing changes to support signature confirmation
696         * SecureMessageGenerator.cs :
697           Don't output ReplyTo onto reply message.
698           Write SignatureConfirmation if needed.
699         * SecureMessageDecryptor.cs :
700           Some refactoring for header cunsumption. Added commented-out
701           signature verification part (not working yet, on client side due
702           to incorrect reply from service and insufficient clause reader).
703         * WSSecurityMessageHeader.cs :
704           Added SignatureConfirmation support.
705           KeyInfoClause for o:SecurityTokenReference should be replaced with
706           SecurityTokenReferenceKeyInfo.
707
708 2007-01-29  Atsushi Enomoto  <atsushi@ximian.com>
709
710         * SecureMessageGenerator.cs : support Timestamp signature.
711           Removed unused code, and extra argument in CreateReference().
712         * WSSecurityMessageHeader.cs : Timestamp also needs Id for SignedXml.
713
714 2007-01-29  Atsushi Enomoto  <atsushi@ximian.com>
715
716         * SecureMessageGenerator.cs :
717           Several fixes to make asymmetric binding working:
718           - Differentiate signing and encryption token in several areas.
719           - Fixed signing keyinfo.
720           Use SenderIdPrefix.
721           Added initial SecurityMessageProperty handling, not sure if it is
722           appropriate here though.
723         * HttpRequestChannel.cs : (some debugging lines)
724
725 2007-01-26  Atsushi Enomoto  <atsushi@ximian.com>
726
727         Woohoo! Here is a very basic WS-Security compliant message which could
728         be allowed by Indigo.
729         * MessageHeader.cs : added Id support for writing.
730         * Message.cs : added internal BodyId for signature reference.
731         * MessageImpl.cs : write Body Id if required.
732         * SecureMessageGenerator.cs : Before signing, the target elements must
733           be given wsu:Id. Since I still use System.Security.dll, I need some
734           trick for signing (I give both Id and wsu:Id, former to sign and
735           latter to be consumed). Maybe I will have to replace xmldsig/xmlenc
736           implementation later. Now singning mechanism works except for
737           wsu:Timestamp (which is kind of mandatory).
738
739         I can's still consume replies from Indigo but it's a big progress :)
740
741 2007-01-26  Atsushi Enomoto  <atsushi@ximian.com>
742
743         * MessageHeaderInfo.cs : added internal Id.
744         * MessageHeader.cs : read and write wsu:Id.
745         * Message.cs : output wsu namespace if Id exists in any header.
746         * HttpReplyChannel.cs : (some debugging lines.)
747         * SecureMessageDecryptor.cs : (remove debugging lines.)
748         * MessageImpl.cs : removed obsolete code.
749         * WSSecurityMessageHeader.cs : output "o" prefix.
750         * SecureMessageGenerator.cs : replaced XmlElement-based header
751           signing with MessageHeader-based signing, to support Id correctly.
752
753 2007-01-15  Atsushi Enomoto  <atsushi@ximian.com>
754
755         * SecureMessageGenerator.cs : some more refactoring and code comments.
756         * MessageSecurityUtility.cs : made decryptor into an instance class,
757           like I've done for SecureMessageGenerator.
758         * SecurityRequestContext.cs, SecurityRequestChannel.cs :
759           dependent changes for above.
760
761 2007-01-12  Atsushi Enomoto  <atsushi@ximian.com>
762
763         * SecureMessageGenerator.cs : fixed derived keysize. derived key was
764           causing NRE due to the lack of token reference.
765           No need to pass doc to SignedXml.ctor() anymore.
766           Moved ReferenceList before the signature(s).
767
768 2007-01-12  Atsushi Enomoto  <atsushi@ximian.com>
769
770         * SecureMessageGenerator.cs : add wsu:Timestamp to signing target.
771           Moved signing key generation code to non-HMACSHA1 signing part.
772           Don't try to sign wss:Security.
773           Pass document itself to SignedXml.ctor().
774           Use temporary DataObjects to avoid adding Ids (not sure what is the
775           expected processing yet).
776         * WSSecurityMessageHeader.cs : to support timestamp signing, add
777           WriteTo() method in WsuTimestamp.
778
779 2007-01-12  Atsushi Enomoto  <atsushi@ximian.com>
780
781         * SecureMessageGenerator.cs : wrong key was used for signing.
782           Omit KeyInfo for now - it seems that .net (sometimes?) omits it.
783
784 2007-01-11  Atsushi Enomoto  <atsushi@ximian.com>
785
786         * SecureMessageGenerator.cs :
787           Now ID generation process does not modify input message.
788           Moved derived key generation part into (virtual) signing loop.
789           MessagePartSpecification support for signing is done.
790
791 2007-01-11  Atsushi Enomoto  <atsushi@ximian.com>
792
793         * SecureMessageGenerator.cs : some reordering to handle signing and
794           encryption with supporting tokens. Fixed XPath query bug for
795           soap header contents (we want s:Header/*, not s:Header).
796
797 2007-01-11  Atsushi Enomoto  <atsushi@ximian.com>
798
799         * MessageSecurityBindingSupport.cs : more refactoring.
800           Made it abstract and added Initiator- and Recipient- classes.
801           Several members were moved to those derived types.
802         * AsymmetricSecurityBindingElement.cs, 
803           SymmetricSecurityBindingElement.cs
804           SecurityChannelFactory.cs, SecurityChannelListener.cs,
805           SecurityRequestChannel.cs, SecurityOutputChannel.cs,
806           SecurityRequestContext.cs, SecureMessageGenerator.cs :
807           All dependent changes by above. Removed ISecurityChannelSource
808           which became useless.
809
810 2007-01-11  Atsushi Enomoto  <atsushi@ximian.com>
811
812         * SecureMessageGenerator.cs : encryption parts should exist too.
813         * AsymmetricSecurityBindingElement.cs
814           SymmetricSecurityBindingElement.cs,
815           MessageSecurityBindingSupport.cs : some refactoring.
816           Split MessageSecurityBindingSupport into security binding element
817           specific parts and made MessageSecurityBindingSupport concrete.
818           It is likely split again, next time based on initiator/recipient.
819
820 2007-01-11  Atsushi Enomoto  <atsushi@ximian.com>
821
822         * MessageSecurityUtility.cs, SecureMessageGenerator.cs :
823           split encryptor part in the former file into latter file, and
824           make it nonstatic.
825         * SecurityRequestChannel.cs, SecurityOutputChannel.cs,
826           SecurityRequestContext.cs : apply the change above.
827
828 2007-01-11  Atsushi Enomoto  <atsushi@ximian.com>
829
830         * MessageSecurityBindingSupport.cs :
831           Fixed incorrect TrgGetValue() use.
832           Added CollectRecipientSupportingTokens().
833
834 2007-01-11  Atsushi Enomoto  <atsushi@ximian.com>
835
836         * MessageSecurityUtility.cs: acctually ReferenceList was inside
837           EncryptedKey. So, when a key itself is used to encrypt data,
838           ReferenceList is contained by itself.
839         * MessageSecurityBindingSupport.cs :
840           added CollectInitiatorSupportingTokens().
841
842 2007-01-10  Atsushi Enomoto  <atsushi@ximian.com>
843
844         * MessageSecurityUtility.cs: it should support ReferenceList-less
845           messages.
846
847 2007-01-10  Atsushi Enomoto  <atsushi@ximian.com>
848
849         * WSSecurityMessageHeader.cs : reverted previous unnecessary change.
850         * MessageSecurityUtility.cs : there already was uuid.
851
852 2007-01-09  Atsushi Enomoto  <atsushi@ximian.com>
853
854         * MessageSecurityUtility.cs : replaced EncryptedKey with
855           WrappedKeySecurityToken, which seems to be in actual use in .net.
856         * WSSecurityMessageHeader.cs : added internal Guid so that it
857           could be shared between header items.
858
859 2006-12-14  Atsushi Enomoto  <atsushi@ximian.com>
860
861         * HttpRequestContext.cs, TextMessageEncoder.cs :
862           some null arg check.
863
864 2006-12-08  Atsushi Enomoto  <atsushi@ximian.com>
865
866         * MessageSecurityUtility.cs : reducing DOM dependency. Use KeyInfoNode
867           for SecurityTokenReference resolution.
868
869 2006-12-08  Atsushi Enomoto  <atsushi@ximian.com>
870
871         * MessageSecurityUtility.cs : fixed EncryptedData decryption to
872           consider DerivedKeyTokens correctly.
873           When creating LocalId, don't add '#' here.
874
875 2006-12-07  Atsushi Enomoto  <atsushi@ximian.com>
876
877         * MessageSecurityUtility.cs :
878           handle key mapping for each wsse:Security.
879
880 2006-12-07  Atsushi Enomoto  <atsushi@ximian.com>
881
882         * WSSecurityMessageHeader.cs : use prefix "c" for ws-secureconv.
883
884 2006-12-06  Atsushi Enomoto  <atsushi@ximian.com>
885
886         * WSSecurityMessageHeader.cs : write top-level ReferenceList in
887           wsse:Security.
888         * MessageSecurityUtility.cs :
889           Now ReferenceList is placed under wsse:Security as WS-Security 1.1 
890           suggests, and it is used to dereference decryption targets.
891           Now it premises multiple wsse:Security elements to read.
892
893 2006-12-06  Atsushi Enomoto  <atsushi@ximian.com>
894
895         * WSSecurityMessageHeader.cs : don't write o:SecurityTokenReference
896           manually (and actually the namespace URI was wrong).
897
898 2006-12-06  Atsushi Enomoto  <atsushi@ximian.com>
899
900         * WSSecurityMessageHeader.cs : improved DerivedKeyToken writing
901           and reading.
902         * MessageSecurityUtility.cs : DerivedKeyToken creation.
903
904 2006-12-06  Atsushi Enomoto  <atsushi@ximian.com>
905
906         * SecurityBindingElement.cs,
907           SymmetricSecurityBindingElement.cs,
908           AsymmetricSecurityBindingElement.cs :
909           implemented SetKeyDerivation().
910
911 2006-12-06  Atsushi Enomoto  <atsushi@ximian.com>
912
913         * MessageSecurityUtility.cs : don't add KeyInfoClause to EncryptedKey
914           more than once.
915
916 2006-12-06  Atsushi Enomoto  <atsushi@ximian.com>
917
918         * MessageBufferImpl.cs : XmlReader-based buffer is not possible, so
919           don't use it.
920
921 2006-12-05  Atsushi Enomoto  <atsushi@ximian.com>
922
923         * MessageSecurityUtility.cs : u:Timestamp will be encrypted/signed,
924           thus move it in front of encryption/signing.
925
926 2006-12-04  Atsushi Enomoto  <atsushi@ximian.com>
927
928         * TransactionFlowBindingElement.cs : OnOpen()/OnClose() should not
929           check state by themselves (btw it's not really working).
930         * HttpChannelListener.cs : If the url does not end with '/' add it
931           so that it could be fed to HttpListener.
932
933 2006-12-04  Atsushi Enomoto  <atsushi@ximian.com>
934
935         * HttpChannelFactory.cs : check scheme on CreateChannel.
936         * MessageHeader.cs : finish IsMessageVersionSupported().
937
938 2006-12-04  Atsushi Enomoto  <atsushi@ximian.com>
939
940         * FaultConverter.cs : new file, not used yet though.
941
942 2006-10-21  Atsushi Enomoto  <atsushi@ximian.com>
943
944         * SvcHttpHandler.cs : set GET URL to ServiceMetadataBehavior.
945
946 2006-10-20  Atsushi Enomoto  <atsushi@ximian.com>
947
948         * SvcHttpHandler.cs : once AspNetReplyChannel get working with HTTP
949           GET as well as HttpReplyChannel, configuration would be ready now.
950
951 2006-10-18  Ankit Jain  <jankit@novell.com>
952
953         * TextMessageEncoder.cs (MediaType): Use 'application/soap+xml' for
954         EnvelopeVersion.Soap12 and 'text/xml' for others.
955         * HttpReplyChannel.cs (TryReceiveRequest): Revert earlier patch for GET
956         handling.
957         Strip '?' from the query string.
958
959 2006-10-13  Ankit Jain  <jankit@novell.com>
960
961         * MessageVersion.cs (None): Set AddressingVersion.None
962
963 2006-10-12  Atsushi Enomoto  <atsushi@ximian.com>
964
965         * SvcHttpHandler.cs : added config-based endpoint addition code.
966           Though due to some weird bug in mono-core it does not seem to work,
967           so commented out for now.
968         * HttpReplyChannel.cs : handle wsdl query parameter. btw creating
969           mex request message might just be wrong.
970           Use expected MessageVersion by the channel.
971         * AspNetReplyChannel.cs : ditto. Plus, HTTP GET support.
972
973 2006-10-12  Atsushi Enomoto  <atsushi@ximian.com>
974
975         * MessageSecurityBindingSupport.cs : added DefaultSignatureAlgorithm
976           which differs depending on whether it is asymmetric or symmetric.
977         * SecurityRequestChannel.cs, SecurityRequestContext.cs :
978           simplify SecureMessage() and DecryptMessage() arguments (just
979           take MessageSecurityBindingSupport instead of several parameters).
980         * MessageSecurityUtility.cs :
981           - simplify SecureMessage() and DecryptMessage() arguments (just
982             take MessageSecurityBindingSupport instead of several parameters).
983           - Take token inclusion mode into account. Don't include them when
984             it is not expected. Also, change the token reference style.
985           - add wsa:MessageID to the headers.
986           - For hmac-sha1 signing (default for symmetric binding), use
987             symmetric key created for encryption as well to create HMACSHA1.
988           - add Id to wsu:Timestamp.
989           - start to handle SecurityMessageProperty.
990         * WSSecurityMessageHeader.cs :
991           Added Id to WsuTimestamp. Also use prefixes for its XML output.
992           Changed date format.
993
994 2006-10-06  Atsushi Enomoto  <atsushi@ximian.com>
995
996         * CommunicationObject.cs : reject faulted state on Open()/Close().
997         * MessageHeaders.cs : removed extra fields.
998
999 2006-10-06  Ankit Jain  <jankit@novell.com>
1000
1001         * HttpReplyChannel.cs (TryReceiveRequest): Handle HTTP GET.
1002
1003 2006-10-05  Atsushi Enomoto  <atsushi@ximian.com>
1004
1005         * MessageSecurityUtility.cs, SecurityRequestContext.cs :
1006           added some FIXMEs and additional arg.
1007
1008 2006-10-05  Atsushi Enomoto  <atsushi@ximian.com>
1009
1010         * MessageSecurityUtility.cs : remove duplicate Action header.
1011
1012 2006-10-05  Atsushi Enomoto  <atsushi@ximian.com>
1013
1014         * MessageFault.cs : partly implemented CreateFault(Message, int).
1015         * Message.cs, MessageImpl.cs, MessageBufferImpl.cs :
1016           handle IsFault correctly in each implementation.
1017
1018 2006-10-04  Ankit Jain  <jankit@novell.com>
1019
1020         * HttpRequestChannel.cs (ProcessRequest): Read till the end.
1021
1022 2006-10-04  Ankit Jain  <jankit@novell.com>
1023
1024         * HttpRequestChannel.cs (ProcessRequest): Temporary workaround for a bug
1025         in WebConnectionStream.
1026
1027 2006-10-04  Ankit Jain  <jankit@novell.com>
1028
1029         * MessageHeaders.cs (To): Use GetHeader<string> till
1030         DataContractSerializer gets ISerializable support.
1031         * CustomBinding.cs (.ctor): Get scheme from TransportBindingElement.
1032
1033 2006-10-04  Ankit Jain  <jankit@novell.com>
1034
1035         * ServiceHostParser.cs (Parse):
1036         (Split): Add some error checks.
1037
1038 2006-10-03  Atsushi Enomoto  <atsushi@ximian.com>
1039
1040         * SslStreamSecurityBindingElement.cs : updated API to Sep. CTP.
1041         * StreamUpgradeAcceptor.cs : Fix AcceptUpgrade().
1042         * SslStreamSecurityUpgradeProvider.cs,
1043           SslStreamSecurityUpgradeAcceptor.cs :
1044           new files for Ssl upgrade provider implementation.
1045         * MessageSecurityUtility.cs :
1046           Create proper C14NTransform. Don't use enveloped signature
1047           transform but sign every significant bits. On securing messages
1048           use ChannelProtectionRequirements.
1049         * SecurityRequestContext.cs : pass ChannelProtectionRequirements to
1050           SecureMessage().
1051         * MessageEncoder.cs : fix API (missing constraint).
1052         * WSSecurityMessageHeader.cs : it is MustUnderstand.
1053         * StreamUpgradeProvider.cs : API fix and implemented .ctor().
1054         * AsymmetricSecurityBindingElement.cs : default protection order is
1055           SignBeforeEncryptAndEncryptSignature.
1056
1057 2006-09-29  Ankit Jain  <jankit@novell.com>
1058
1059         * SvcHttpHandlerFactory.cs (GetTypeFromSvc): Extract and move code to
1060         ServicHostParser and use that here.
1061         (PrivateBinPath): New.
1062         (GetTypeFromBin): New. Load assembly from PrivateBinPath.
1063         (RemovedCallback): Remove and close the SvcHttpHandler when its
1064         corresponding file (.svc) changes.
1065         * SvcHttpHandler.cs (Close): New. Close the ServiceHost.
1066
1067         * ServiceHostParser.cs : New.
1068         * CachingCompiler.cs : New. Code extracted from
1069         System.Web.Compilation.CachingCompiler
1070         * CompilationException.cs : New. From System.Web.Compilation
1071         * HtmlizedException.cs : New. Likewise.
1072
1073 2006-09-29  Atsushi Enomoto  <atsushi@ximian.com>
1074
1075         * MessageSecurityBindingSupport.cs : For client side, it is always
1076           InitiatorServiceModelSecurityTokenRequirement which should be
1077           created. Fixed wrong client encryption key acquisition.
1078
1079 2006-09-29  Atsushi Enomoto  <atsushi@ximian.com>
1080
1081         * SecurityChannelListener.cs, SecurityRequestContext.cs,
1082           MessageSecurityBindingSupport.cs : made similar changes as factories
1083           to listener so that session channels and input channels would work.
1084           Added authenticator creation.
1085
1086 2006-09-29  Atsushi Enomoto  <atsushi@ximian.com>
1087
1088         * Binding.cs : added missing members.
1089
1090 2006-09-28  Atsushi Enomoto  <atsushi@ximian.com>
1091
1092         * SecurityRequestChannel.cs, SecurityOutputChannel.cs,
1093           MessageSecurityUtility.cs, MessageSecurityBindingSupport.cs :
1094           reduce code duplication between request and output channels.
1095           The common parts are now in MessageSecurityBindingSupport.
1096           Now reduced several arguments in SecureMessage() for client.
1097
1098 2006-09-28  Atsushi Enomoto  <atsushi@ximian.com>
1099
1100         * ChannelFactoryBase.cs : implemented ValidateCreateChannel().
1101
1102 2006-09-28  Atsushi Enomoto  <atsushi@ximian.com>
1103
1104         * AsymmetricSecurityBindingElement.cs,
1105           SecurityChannelListener.cs,
1106           SecurityRequestContext.cs,
1107           SymmetricSecurityBindingElement.cs,
1108           SecurityRequestChannel.cs,
1109           SecurityOutputChannel.cs,
1110           SecurityChannelFactory.cs,
1111           MessageSecurityBindingSupport.cs : 1) Refactoring. 
1112           IMessageSecurityBindingSupport now becomes a class and contains
1113           all the members which resided in ISecurityChannelSource.
1114           Now it takes more constructor params.
1115           Made dependent changes on all sources above.
1116
1117           2) Added SecurityTokenAuthenticator creation in
1118           SecurityRequestChannel (SecurityOutputChannel should do the same).
1119
1120 2006-09-27  Atsushi Enomoto  <atsushi@ximian.com>
1121
1122         * SecurityRequestChannel.cs : ongoing improvements on conditional
1123           key creation. Actually there must be some part that creates an
1124           authenticator (WinFX does that).
1125
1126 2006-09-27  Ankit Jain  <jankit@novell.com>
1127
1128         Add suport for handling .svc files.
1129         * SvcHttpHandlerFactory.cs: New.
1130         * SvcHttpHandler.cs: New.
1131
1132         * HttpChannelListener.cs (PopulateChannel): Use AspNetReplyChannel if in
1133         asp.net environment.
1134         (OnOpen): Do nothing in asp.net environment.
1135         (OnClose): Likewise.
1136         * HttpReplyChannel.cs (HttpRequestContext): Move to ..
1137         * HttpRequestContext.cs: .. here.
1138
1139         * AspNetReplyChannel.cs: New.
1140         * AspNetRequestContext.cs: New.
1141
1142 2006-09-26  Atsushi Enomoto  <atsushi@ximian.com>
1143
1144         * MessageSecurityUtility.cs :
1145           Significantly rewritten decryption parts to respect ReferenceList
1146           to decrypt (so no workaround anymore).
1147           Now e:ReferenceList inside o:Security is treated as the referenced
1148           EncryptedType items are encrypted by 1) the derived key which is
1149           immediately in front of it, or 2) the default key (it is according
1150           to WS-SecureConversation section 9.1). Thus removed immediately
1151           previous hack to auto-fill wsu:Id attributes.
1152
1153           On securing a message, generate correct Id and add DataReference
1154           to ReferenceList properly.
1155
1156 2006-09-26  Atsushi Enomoto  <atsushi@ximian.com>
1157
1158         * WSSecurityMessageHeader.cs : handle ReferenceList. It is being
1159           practically used.
1160
1161 2006-09-26  Atsushi Enomoto  <atsushi@ximian.com>
1162
1163         * WSSecurityMessageHeader.cs : handle DerivedKeyToken as a header content.
1164           Actually WSSecurityTokenSerializer should be able to consume it, but after
1165           spending a lot of time I still cannot successfully read it on WinFX.
1166           Skip ReferenceList for now.
1167         * MessageSecurityUtility.cs :
1168           Replaced some string literals with constants.
1169           Added some workaround for DerivedKeyToken retrieval.
1170           WinFX somehow sends incomplete ISO10126 padding which contains
1171           bigger number than the key size and is rejected by EncryptedXml,
1172           so added DecryptLax() which processes such ones in PaddingMode.None
1173           to workaround it (only for cross-connection between mono and winfx).
1174           Added some incomplete implicit wsu:Id processing.
1175           Don't try to replace SignedXml with EncryptedData. It is not added
1176           to the document tree.
1177
1178 2006-09-25  Atsushi Enomoto  <atsushi@ximian.com>
1179
1180         * MessageSecurityUtility.cs : support message signature encryption. Some
1181           more refactoring.
1182
1183 2006-09-22  Atsushi Enomoto  <atsushi@ximian.com>
1184
1185         * SecurityBindingElement.cs : implement Clone(). Remove some MonoTODOs.
1186
1187 2006-09-22  Atsushi Enomoto  <atsushi@ximian.com>
1188
1189         * MessageSecurityUtility.cs : fix warnings.
1190
1191 2006-09-22  Atsushi Enomoto  <atsushi@ximian.com>
1192
1193         * MessageSecurityUtility.cs : actually there would be more than one
1194           EncryptedData. Decrypt all.
1195
1196 2006-09-22  Atsushi Enomoto  <atsushi@ximian.com>
1197
1198         * MessageSecurityUtility.cs : supply correct URIs in SecureMessage().
1199           Use ISO10126 padding mode (it is not required but in manner).
1200
1201 2006-09-21  Atsushi Enomoto  <atsushi@ximian.com>
1202
1203         * MessageSecurityUtility.cs : now that EncryptedXml decryption bug is
1204           fixed, remove 16 bytes workaround (we still need encryption bugfix in
1205           that class to make it work fine with mono client).
1206           Removed buggy lines that reset decryption key to AES.
1207           Modified GetKey() argument to take EncryptedData/EncryptedKey element.
1208         * WSSecurityMessageHeader.cs :
1209           (SecurityTokenReferenceKeyInfo) support LoadXml.
1210
1211 2006-09-20  Atsushi Enomoto  <atsushi@ximian.com>
1212
1213         * TransactionMessageProperty.cs : new file.
1214
1215 2006-09-20  Atsushi Enomoto  <atsushi@ximian.com>
1216
1217         * ChannelPoolSettings.cs, OneWayBindingElement.cs : build fix, as
1218           gmcs happened to report wrong code.
1219
1220 2006-09-19  Atsushi Enomoto  <atsushi@ximian.com>
1221
1222         * SecurityChannelFactory.cs, SecurityChannelListener.cs :
1223           .ctor() now requires ChannelProtectionRequirements which will be
1224           supplied via BindingParameterCollection.
1225         * SymmetricSecurityBindingElement.cs,
1226           AsymmetricSecurityBindingElement.cs : thus add
1227           ChannelProtectionRequirement parameter to factory/listener.
1228         * SecurityRequestChannel.cs : use recipient token requirement to
1229           create an encryption token. Thus differentiate the logic from
1230           signing (initiator) token.
1231
1232 2006-09-19  Atsushi Enomoto  <atsushi@ximian.com>
1233
1234         * SymmetricSecurityChannelFactory.cs, SecurityChannelFactory.cs :
1235           renamed former to latter.
1236         * SymmetricSecurityChannelListener.cs, SecurityChannelListener.cs :
1237           ditto.
1238
1239 2006-09-19  Atsushi Enomoto  <atsushi@ximian.com>
1240
1241         * MessageSecurityBindingSupport.cs : new internal types to commonize
1242           AsymmetricSecurityBindingElement and SymmetricSecurityBindingElement
1243           and thus make internal factory and listener reusable.
1244         * SymmetricSecurityChannelFactory.cs, SecurityRequestContext.cs,
1245           SecurityRequestChannel.cs, SecurityOutputChannel.cs,
1246           SymmetricSecurityChannelListener.cs : rewrote dependent parts on
1247           SymmetricSecurityBindingElement, using the new types above.
1248         * SymmetricSecurityBindingElement.cs :
1249           Use SymmetricMessageSecurityBindingSupport.
1250         * AsymmetricSecurityBindingElement.cs :
1251           thus implemented, using AsymmetricMessageSecurityBindingSupport.
1252
1253 2006-09-19  Atsushi Enomoto  <atsushi@ximian.com>
1254
1255         * ChannelFactoryBase.cs : more RC1 update.
1256
1257 2006-09-19  Atsushi Enomoto  <atsushi@ximian.com>
1258
1259         * MessageEncoder.cs, BinaryMessageEncoder.cs, MtomMessageEncoder.cs,
1260           TextMessageEncoder.cs : updated ReadMessage() API to RC1.
1261         * ChannelListenerBase.cs, ChannelListenerBase_1.cs,
1262           ChannelBase.cs : RC1 API updates.
1263         * MessageImpl.cs : implemented Properties.
1264         * HttpReplyChannel.cs : added HttpRequestMessageProperty support.
1265
1266 2006-09-18  Ankit Jain  <jankit@novell.com>
1267
1268         * MessageHeaders.cs (MessageId):
1269         (RelatesTo): UniqueId is not serializable, serialize it as a string.
1270
1271 2006-09-17  Atsushi Enomoto  <atsushi@ximian.com>
1272
1273         * ChannelParameterCollection.cs : new file.
1274         * LayeredOutputChannel.cs, SecurityOutputChannel.cs :
1275           new files for IOutputChannel implementation.
1276         * OneWayBindingElement.cs : hacky implementation.
1277         * SymmetricSecurityChannelFactory.cs : support IOutputChannel.
1278         * MessageSecurityUtility.cs : now create identifier from the security
1279           token and the token parameters which is added as an argument.
1280         * SecurityRequestContext.cs,
1281           SecurityRequestChannel.cs : SecureMessage() argument changes.
1282           Set MessageSecurityVersion (SecurityTokenVersion) to the token
1283           requirement.
1284
1285 2006-09-17  Atsushi Enomoto  <atsushi@ximian.com>
1286
1287         * HttpRequestChannel.cs : close the HttpWebRequest.
1288
1289 2006-09-17  Atsushi Enomoto  <atsushi@ximian.com>
1290
1291         * HttpRequestChannel.cs,
1292           HttpChannelFactory.cs : implement async request/reply.
1293         * HttpChannelFactory.cs :
1294           verify factory state when creating a channel.
1295
1296 2006-09-17  Atsushi Enomoto  <atsushi@ximian.com>
1297
1298         * MessageEncoder.cs, TextMessageEncoder.cs, MtomMessageEncoder.cs,
1299           BinaryMessageEncoder.cs : added message version mismatch check.
1300
1301 2006-09-15  Atsushi Enomoto  <atsushi@ximian.com>
1302
1303         * SymmetricSecurityChannelListener.cs, SecurityRequestContext.cs :
1304           Making incomplete changes to handle different tokens for encryption
1305           and signature.
1306         * SymmetricSecurityChannelFactory.cs, SecurityRequestChannel.cs :
1307           split channel implementation classes out to the latter file.
1308         * MessageSecurityUtility.cs : seems like there is
1309           TimeStampValidityDuration property, so use it (incomplete; a server
1310           needs another love).
1311
1312 2006-09-12  Atsushi Enomoto  <atsushi@ximian.com>
1313
1314         * MessageSecurityUtility.cs, SymmetricSecurityChannelFactory.cs,
1315           SecurityRequestContext.cs : now that we have key identifier clause
1316           and working ResolveKeyIdentifierClause(), just create keys inside
1317           SecureMessage(). Add KeyInfo to the xmldsig.
1318
1319 2006-09-12  Atsushi Enomoto  <atsushi@ximian.com>
1320
1321         * SymmetricSecurityChannelFactory.cs, SecurityRequestContext.cs :
1322           pass SecurityKeyIdentifierClause to SecureMessage().
1323         * SecurityBindingElement.cs : set X509ReferenceStyle as Thumbprint
1324           for IssuedToken binding element.
1325         * SymmetricSecurityChannelListener.cs : removed hack to just create
1326           X509 security token, and implemented correct token creation.
1327         * WSSecurityMessageHeader.cs : added new KeyInfoClause type that
1328           wraps SecurityTokenReference element.
1329         * MessageSecurityUtility.cs : use the above.
1330
1331 2006-09-08  Atsushi Enomoto  <atsushi@ximian.com>
1332
1333         * MessageSecurityUtility.cs : raise MessageSecurityException when it
1334           could not find a security header.
1335         * SymmetricSecurityChannelFactory.cs : now it also supports
1336           IRequestSessionChannel. Extracted SecurityRequestChannel out from
1337           the factory type.
1338
1339 2006-09-08  Atsushi Enomoto  <atsushi@ximian.com>
1340
1341         * SecurityRequestContext.cs : moved securing message part to
1342           MessageSecurityUtility.cs.
1343         * MessageSecurityUtility.cs : the change above.
1344           use DateTime.Now for timestamp basis. Don't append signature to
1345           the document. Instead it is added to the header. Capture body
1346           content instead of the body itself.
1347         * SymmetricSecurityChannelFactory.cs : decrypt reply message to
1348           be processed by upper layers.
1349
1350 2006-09-08  Atsushi Enomoto  <atsushi@ximian.com>
1351
1352         * MessageSecurityUtility.cs, WSSecurityMessageHeader.cs,
1353           SymmetricSecurityChannelListener.cs,
1354           SymmetricSecurityChannelFactory.cs, SecurityRequestContext.cs :
1355           more refactoring. Request serialization became much more conformant
1356           and add required header items.
1357           Security Token retrieval is needed to send it in the request.
1358           Fixed wrong key encryption.
1359
1360 2006-09-07  Atsushi Enomoto  <atsushi@ximian.com>
1361
1362         * SecurityRequestContext.cs : the workaround was not functional.
1363
1364 2006-09-07  Atsushi Enomoto  <atsushi@ximian.com>
1365
1366         * SecurityRequestContext.cs : some more refactoring. Use EncryptedXml
1367           API, especially ReplaceData(), instead of native crypto stuff.
1368         * WSSecurityMessageHeader.cs : handle dsig:Signature as well (for
1369           MessageProtectionOrder.SignBeforeEncrypt).
1370
1371 2006-09-07  Atsushi Enomoto  <atsushi@ximian.com>
1372
1373         * SecurityRequestContext.cs : label should be combined of both
1374           the client's and the server's.
1375
1376 2006-09-06  Atsushi Enomoto  <atsushi@ximian.com>
1377
1378         * SecurityRequestContext.cs : enable key derivation (though for now
1379           GenerateDerivedKey() is unimplemented). Create meaningful,
1380           decrypted request message to be consumed by the upper layer.
1381
1382 2006-09-06  Atsushi Enomoto  <atsushi@ximian.com>
1383
1384         * SecurityRequestContext.cs : implement Close() and Reply().
1385           ongoing implementation of Reply(TimeSpan).
1386         * MessageSecurityUtility.cs : new file to collect utility methods.
1387         * SymmetricSecurityChannelFactory.cs : moved securing message code
1388           to the above file.
1389         * SymmetricSecurityChannelListener.cs : tiny renaming.
1390
1391 2006-09-06  Atsushi Enomoto  <atsushi@ximian.com>
1392
1393         * SecurityRequestContext.cs : security header is also stored.
1394           removed NotImpl.
1395         * WSSecurityMessageHeader.cs : read EncryptedKey and EncryptedData
1396           as well.
1397
1398 2006-09-06  Atsushi Enomoto  <atsushi@ximian.com>
1399
1400         * SymmetricSecurityChannelFactory.cs : tiny progress on securing
1401           message.
1402
1403 2006-09-05  Atsushi Enomoto  <atsushi@ximian.com>
1404
1405         * SymmetricSecurityChannelFactory.cs : specify KeyUsage.Exchange
1406           so that it retrieves the security key in that manner.
1407
1408 2006-09-05  Atsushi Enomoto  <atsushi@ximian.com>
1409
1410         * Binding.cs : MessageVersion is null when there is no
1411           MessageEncodingBindingElement.
1412         * Message.cs : null arg check.
1413
1414 2006-09-05  Atsushi Enomoto  <atsushi@ximian.com>
1415
1416         * ChannelPoolSettings.cs, OneWayBindingElement.cs : new files.
1417
1418 2006-09-04  Atsushi Enomoto  <atsushi@ximian.com>
1419
1420         * SymmetricSecurityChannelListener.cs, SecurityRequestContext.cs, 
1421           LayeredReplyChannel.cs, LayeredCommunicationObject.cs,
1422           LayeredRequestChannel.cs : some refactoring.
1423         * SymmetricSecurityChannelFactory.cs :
1424           ongoing secure message creation implementation.
1425
1426 2006-09-01  Atsushi Enomoto  <atsushi@ximian.com>
1427
1428         * SymmetricSecurityBindingElement.cs :
1429           pass specific ServiceCredentialsSecurityTokenManager type to
1430           SymmetricSecurityChannelListener as it needs ServiceCertificate.
1431         * SymmetricSecurityChannelListener.cs :
1432           get service certificate. It's a temporary hack.
1433           Move RequestContext code to below.
1434         * SecurityRequestContext.cs : new file.
1435         * WSSecurityMessageHeader.cs : implementing Read(), but to finish
1436           it I have to finish decryption of the incoming message.
1437
1438 2006-08-31  Atsushi Enomoto  <atsushi@ximian.com>
1439
1440         * MessageImpl.cs : don't write attributes on the first body content
1441           element *on soap Body element*.
1442         * MessageBufferImpl.cs : don't throw ArgumentNullException.
1443           ObjectDisposedException is appropriate.
1444         * MessageHeader.cs : (RawMessageHeader) don't write element itself
1445           in OnWriteHeader*Contents*().
1446
1447 2006-08-31  Atsushi Enomoto  <atsushi@ximian.com>
1448
1449         * WSSecurityMessageHeader.cs : new file.
1450         * SymmetricSecurityChannelFactory.cs :
1451           moved WSSecurityHeader and related types to the above.
1452         * SymmetricSecurityChannelListener.cs :
1453           reject SOAP-env-less message.
1454
1455 2006-08-31  Atsushi Enomoto  <atsushi@ximian.com>
1456
1457         * SecurityChannelListener.cs, SymmetricSecurityChannelListener.cs :
1458           renamed former to latter.
1459         * SymmetricSecurityChannelFactory.cs :
1460           create requirements every time. It is also likely that I need
1461           another requirement instance to get service credentials here.
1462
1463 2006-08-30  Atsushi Enomoto  <atsushi@ximian.com>
1464
1465         * SymmetricSecurityBindingElement.cs : make BuildChannelListener()
1466           similar to BuildChannelFactory() (set credentials, issuer binding
1467           context etc.).
1468         * SecurityChannelListener.cs :
1469           more ongoing security support implementation.
1470         * SymmetricSecurityChannelFactory.cs :
1471           moved GetSecurityKey() to SymmetricSecurityRequestChannel.
1472
1473 2006-08-29  Atsushi Enomoto  <atsushi@ximian.com>
1474
1475         * SecurityChannelListener.cs, SymmetricSecurityBindingElement.cs :
1476           Renamed SecurityChannelListener to SymmetricSecurityChannelListener.
1477           Implementation is underway.
1478         * LayeredReplyChannel.cs :
1479           like LayeredRequestChannel, use ChannelListenerBase to provide
1480           default timeouts.
1481
1482 2006-08-29  Atsushi Enomoto  <atsushi@ximian.com>
1483
1484         * MessageHeader.cs : added another implementation type that uses
1485           XmlElement, for buffering purpose.
1486         * MessageImpl.cs : Header item types are user-driven by
1487           MessageHeader.GetHeader<T>(int), so at storing phase just store
1488           nodes as XmlElement.
1489         * MessageHeaders.cs : avoid dumping XmlNode to string to create
1490           another XmlReader.
1491
1492 2006-08-28  Atsushi Enomoto  <atsushi@ximian.com>
1493
1494         * SymmetricSecurityBindingElement.cs : find ClientCredentials from
1495           BindingParameterCollection, not from binding element properties.
1496
1497 2006-08-28  Atsushi Enomoto  <atsushi@ximian.com>
1498
1499         * SecurityChannelFactory.cs, SymmetricSecurityChannelFactory.cs :
1500           renamed former to latter.
1501
1502 2006-08-25  Atsushi Enomoto  <atsushi@ximian.com>
1503
1504         * SecurityBindingElement.cs : SetIssuerBindingContext should also
1505           work for SslSecurityTokenParameters.
1506
1507 2006-08-24  Atsushi Enomoto  <atsushi@ximian.com>
1508
1509         * SecurityBindingElement.cs :
1510           Added SetIssuerBindingContextIfRequired().
1511         * SecurityChannelFactory.cs :
1512           Changed .ctor() arg again, just to receive binding element.
1513         * SymmetricSecurityBindingElement.cs :
1514           Call SetIssuerBindingContextIfRequired() in BuildChannelFactory().
1515           SymmetricSecurityChannelFactory .ctor() arg changes.
1516           "ProtectionTokenParameters" is not passed now.
1517
1518 2006-08-23  Atsushi Enomoto  <atsushi@ximian.com>
1519
1520         * SymmetricSecurityBindingElement.cs : requirements should be
1521           filled at InitializeSecurityTokenParameters as long as possible.
1522           SymmetricSecurityChannelFactory<T> now does not receive
1523           requirements (it now creates one inside it) at .ctor().
1524         * SecurityChannelFactory.cs : remove requirement argument.
1525
1526 2006-08-23  Atsushi Enomoto  <atsushi@ximian.com>
1527
1528         * SymmetricSecurityBindingElement.cs : implemented copy constructor.
1529
1530 2006-08-22  Atsushi Enomoto  <atsushi@ximian.com>
1531
1532         * SymmetricSecurityBindingElement.cs :
1533           MessageSecurityVersion property is of type SecurityTokenVersion.
1534         * SecurityBindingElement.cs :
1535           Implemented CreateSecureConversationBindingElement().
1536           For CreateIssuedTokenBindingElement(), ProtectionTokenParameters is
1537           the argument IssuedSecurityTokenParameters itself.
1538
1539 2006-08-22  Atsushi Enomoto  <atsushi@ximian.com>
1540
1541         * SymmetricSecurityBindingElement.cs :
1542           CreateSecurityTokenManager() can be directly used now. 
1543           Use CallInitializeSecurityTokenRequirement() to fill requirement
1544           properties.
1545
1546 2006-08-16  Atsushi Enomoto  <atsushi@ximian.com>
1547
1548         * ChannelFactoryBase.cs : GetProperty() is virtual.
1549
1550 2006-08-14  Atsushi Enomoto  <atsushi@ximian.com>
1551
1552         * SymmetricSecurityBindingElement.cs : in BuildChannelFactory(),
1553           create token manager, token parameters and token requirements,
1554           and fill some requirements.
1555         * TransportBindingElement.cs, HttpTransportBindingElement.cs,
1556           TextMessageEncodingBindingElement.cs : workaround to not throw NIE.
1557         * BindingContext.cs : implemented RemainingBindingElements.
1558           kill "no remaining binding element" error in GetInnerProperty()
1559         * SecurityChannelFactory.cs : now it became 
1560           SymmetricSecurityChannelFactory, thus soon to be renamed.
1561           Several ongoing actual security resolution is on.
1562
1563 2006-08-11  Atsushi Enomoto  <atsushi@ximian.com>
1564
1565         * CommunicationObject.cs :
1566           add GetCommunicationObjectType() and use it.
1567         * ChannelFactoryBase.cs, ChannelListenerBase_1.cs :
1568           use ThrowIfDisposedOrNotOpen().
1569         * LayeredCommunicationObject.cs : have similar ThrowIf...() methods
1570           to CommunicationObject. Make it IDisposable.
1571         * LayeredRequestChannel.cs : use above.
1572         * SecurityChannelFactory.cs : removed state check as it is done at
1573           above class.
1574
1575 2006-08-10  Atsushi Enomoto  <atsushi@ximian.com>
1576
1577         * SecurityBindingElement.cs : (CanBuildChannelFactory and
1578           CanBuildChannelListener) directly dispatch to BindingContext.
1579         * SymmetricSecurityBindingElement.cs : require protection token
1580           parameters before building a channel or a listener.
1581         * ChannelFactoryBase.cs : raise an error when a channel is being
1582           created without opening the factory.
1583         * ChannelListenerBase_1.cs : ditto for the listener.
1584         * SecurityChannelFactory.cs : before sending a request, it must be
1585           opened.
1586
1587 2006-08-07  Atsushi Enomoto  <atsushi@ximian.com>
1588
1589         * MessageBufferImpl.cs : initialize fields.
1590           workaround BufferSize just to return 0.
1591         * MessageImpl.cs : for BodyWriter, don't use DefaultMessageBuffer
1592           which does not support multi time write.
1593         * Message.cs : implemented State.
1594
1595 2006-08-07  Atsushi Enomoto  <atsushi@ximian.com>
1596
1597         * Message.cs : OnGetBodyAttribute() cannot return anything unless it
1598           is consuming XmlReader.
1599           Implemented OnCreateBufferedCopy(), to return XPathMessageBuffer.
1600         * MessageBuffer.cs : implemented CreateNavigator().
1601         * MessageBufferImpl.cs : added XPathMessageBuffer class.
1602
1603         I kinda know that MS heavily depends on binary XmlReader and may have
1604         XPathNavigator implementation based on the binary stuff, but at
1605         least for now we have almost no motivation to mimick it.
1606
1607 2006-08-07  Atsushi Enomoto  <atsushi@ximian.com>
1608
1609         * SecurityChannelFactory.cs : a bit more of security header code.
1610
1611 2006-08-04  Atsushi Enomoto  <atsushi@ximian.com>
1612
1613         * SymmetricSecurityBindingElement.cs :
1614           set default MessageProtectionOrder in every construction.
1615
1616 2006-08-03  Atsushi Enomoto  <atsushi@ximian.com>
1617
1618         * LayeredRequestChannel.cs, SecurityChannelFactory.cs : 
1619           changed to require ChannelFactoryBase to support default timeout.
1620           Made some methods non-virtual. Preparing code to add security
1621           headers (empty yet).
1622         * SecurityBindingElement.cs : implemented several factory methods
1623           that return SymmetricSecurityBindingElement.
1624
1625 2006-08-02  Atsushi Enomoto  <atsushi@ximian.com>
1626
1627         * IStreamUpgradeBindingElement.cs,
1628           StreamUpgradeBindingElement.cs : renamed from former to latter.
1629
1630 2006-08-02  Atsushi Enomoto  <atsushi@ximian.com>
1631
1632         * IStreamUpgradeBindingElement.cs : API update, soon to be renamed.
1633
1634 2006-07-31  Ankit Jain  <jankit@novell.com>
1635
1636         * MessageHeaders.cs (From): Use Constants.WSA1
1637         (MessageId): Implement the same pattern as other properties (From etc).
1638
1639 2006-07-28  Atsushi Enomoto  <atsushi@ximian.com>
1640
1641         * LocalClientSecuritySettings.cs : initialize IdentityVerifier as well.
1642         * SecurityBindingElement.cs : some cosmetic changes.
1643
1644 2006-07-28  Atsushi Enomoto  <atsushi@ximian.com>
1645
1646         * SecurityBindingElement.cs : LocalClientSettings and 
1647           LocalServiceSettings returns an instance for each.
1648         * LocalClientSecuritySettings.cs : initialized fields.
1649
1650 2006-07-28  Atsushi Enomoto  <atsushi@ximian.com>
1651
1652         * LocalClientSecuritySettings.cs : moved from S.SM.Description, and
1653           kinda implemented Clone() just with MemberwiseClone().
1654
1655 2006-07-27  Ankit Jain  <jankit@novell.com>
1656
1657         * MessageHeaders.cs (set_To): Use Uri.AbsoluteUri .
1658         * MessageHeader.cs (knownTypes): New. Known type array containing
1659         EndpointAddress10.
1660         (CreateHeader): Use knownTypes with the DataContractSerializer .ctor
1661
1662 2006-07-21  Atsushi Enomoto  <atsushi@ximian.com>
1663
1664         * LayeredRequestChannel.cs, LayeredReplyChannel.cs,
1665           LayeredCommunicationObject.cs,
1666           SecurityChannelFactory.cs, SecurityChannelListener.cs :
1667           new files to support security channels, though right now they
1668           just pass inner channels through.
1669         * SymmetricSecurityBindingElement.cs : use above.
1670
1671 2006-07-21  Atsushi Enomoto  <atsushi@ximian.com>
1672
1673         * AsymmetricSecurityBindingElement.cs,
1674           SymmetricSecurityBindingElement.cs :
1675           Default SecurityTokenParameters is null.
1676
1677 2006-07-20  Atsushi Enomoto  <atsushi@ximian.com>
1678
1679         * AsymmetricSecurityBindingElement.cs : remove NotImpl for now.
1680
1681 2006-07-20  Atsushi Enomoto  <atsushi@ximian.com>
1682
1683         * Message.cs : When EnvelopeVersion is None, don't write SOAP
1684           envelope.
1685         * MessageHeader.cs : don't write headers when EnvelopeVersion is None.
1686         * MessageHeaders.cs : When EnvelopeVersion is None, don't output
1687           headers. When AddressingVersion is None, don't output addressing
1688           headers as well, except for Action which is still needed by
1689           service dispatcher.
1690
1691 2006-07-20  Atsushi Enomoto  <atsushi@ximian.com>
1692
1693         * MessageHeaders.cs : changed specific properties to find it from
1694           headers as Action property does (local variables won't be set by
1695           setter). Cache serializers. Check null serializer arguments.
1696           For EndpointAddress, GetHeader<T>() shouldn't use serializer.
1697
1698 2006-07-19  Atsushi Enomoto  <atsushi@ximian.com>
1699
1700         * MessageHeader.cs : WriteTo() should treat EndpointAddress to not
1701           use XmlObjectSerializer (since it is not data contract type).
1702
1703 2006-07-18  Atsushi Enomoto  <atsushi@ximian.com>
1704
1705         * MessageImpl.cs : Improved ReadHeaders().
1706           For certain header items, use EndpointAddress.ReadFrom().
1707
1708 2006-07-18  Atsushi Enomoto  <atsushi@ximian.com>
1709
1710         * AsymmetricSecurityBindingElement.cs :
1711           it is not ISecurityCapabilities anymore.
1712
1713 2006-07-18  Atsushi Enomoto  <atsushi@ximian.com>
1714
1715         * MessageVersion.cs : added None.
1716
1717 2006-07-14  Atsushi Enomoto  <atsushi@ximian.com>
1718
1719         * Message.cs : GetReaderAtBodyContents() implementation using
1720           writer methods.
1721
1722 2006-07-13  Atsushi Enomoto  <atsushi@ximian.com>
1723
1724         * Message.cs : CreateMessage(version,action,xmlReader) incorrectly
1725           used MessageVersion.Default.
1726
1727 2006-07-12  Duncan Mak  <duncan@novell.com>
1728
1729         * MessageBuffer.cs (MessageContentType): Return
1730         "application/soap+msbin1".
1731
1732         * MessageImpl.cs (EmptyMessage.OnCreateBufferedCopy):
1733         (SimpleMessage.OnCreateBufferedCopy):
1734         (XmlReaderMessage.OnCreateBufferedCopy): Hook up with the new
1735         MessageBuffer implementations.
1736
1737         * MessageBufferImpl.cs: Concrete implmentations for MessageBuffer.
1738         (DefaultMessageBuffer): Used by EmptyMessage and SimpleMessage.
1739         (XmlReaderMessageBuffer): Used by XmlReaderMessage.
1740
1741 2006-07-12  Atsushi Enomoto  <atsushi@ximian.com>
1742
1743         * MessageImpl.cs : Action should be added in request messages. Omit
1744           it only in reply message, thus moved to dispatcher logic.
1745
1746 2006-07-12  Ankit Jain  <jankit@novell.com>
1747
1748         * HttpRequestChannel.cs (HttpRequestChannel.Request): Workaround for a
1749         bug in WebConnectionStream.
1750         * MessageHeaders.cs (MessageHeaders.From):
1751         (MessageHeaders.ReplyTo):
1752         (MessageHeaders.To): Add the corresponding MessageHeader on set.
1753
1754 2006-07-11  Atsushi Enomoto  <atsushi@ximian.com>
1755
1756         * MessageImpl.cs : when AddressingVersion is None (e.g. POX), don't
1757           add SOAP Action to the response at any time.
1758
1759 2006-07-10  Atsushi Enomoto  <atsushi@ximian.com>
1760
1761         * SymmetricSecurityBindingElement.cs,
1762           SecurityBindingElement.cs : They are not ISecurityCapabilities now.
1763           Implemented .ctor() and some properties.
1764
1765 2006-07-10  Atsushi Enomoto  <atsushi@ximian.com>
1766
1767         * TransactionFlowBindingElement.cs : new file.
1768         * HttpTransportBindingElement.cs : added missing KeepAliveEnabled.
1769
1770 2006-07-06  Atsushi Enomoto  <atsushi@ximian.com>
1771
1772         * MessageFault.cs :
1773           DefaultAction vanished. CreateFault() now takes bufferSize arg.
1774         * MessageHeaders.cs : ArgumentException -> MessageHeaderException.
1775         * AddressingVersion.cs : added None. Equals() and GetHashCode()
1776           vanished (there is anyways no way to instantiate this type).
1777         * MessageVersion.cs : added Soap11 and Soap12.
1778         * TextMessageEncoder.cs : silly quotation mark wrapper disappeared
1779           in June CTP. goodie.
1780
1781 2006-07-05  Atsushi Enomoto  <atsushi@ximian.com>
1782
1783         * MtomMessageEncoder.cs, BinaryMessageEncoder.cs, Message.cs :
1784           removed some vanished CreateMessage() overloads.
1785
1786 2006-07-05  Atsushi Enomoto  <atsushi@ximian.com>
1787
1788         * CustomBinding.cs, HttpsTransportBindingElement.cs, 
1789           HttpTransportBindingElement.cs :
1790           They are not ISecurityCapabilities anymore.
1791           Modified code to match June CTP behavior.
1792
1793 2006-07-05  Atsushi Enomoto  <atsushi@ximian.com>
1794
1795         * StreamSecurityUpgradeProvider.cs : Identity -> EndpointIdentity.
1796
1797 2006-07-05  Atsushi Enomoto  <atsushi@ximian.com>
1798
1799         * EmptyFaultException.cs : removed unused code.
1800         * IRequestContext.cs, RequestContext.cs : renamed former to latter.
1801
1802 2006-07-05  Atsushi Enomoto  <atsushi@ximian.com>
1803
1804         * LayeredChannelFactory.cs : removed obsolete class.
1805         * ChannelFactoryBase.cs, HttpChannelFactory.cs,
1806           ChannelListenerBase.cs, HttpChannelListener.cs,
1807           HttpReplyChannel.cs, ChannelManagerBase.cs :
1808           all those changes were brought by ChannelManagerBase changes.
1809
1810 2006-07-05  Atsushi Enomoto  <atsushi@ximian.com>
1811
1812         * ReplyChannelBase.cs, HttpChannelFactory.cs, ChannelBase.cs
1813           CommunicationObject.cs, HttpChannelListener.cs,
1814           ChannelFactoryBase.cs :
1815           CommunicationObject abstract changes brought this madness.
1816
1817 2006-07-05  Atsushi Enomoto  <atsushi@ximian.com>
1818
1819         * BindingContext.cs : listenUri address parameters could be null in
1820           June CTP.
1821
1822 2006-07-05  Atsushi Enomoto  <atsushi@ximian.com>
1823
1824         * IRequestContext.cs :
1825           Now it became a class. File renaming will follow soon.
1826         * IChannelFactory.cs, IInputChannel.cs, IReplyChannel.cs,
1827           IDuplexChannel.cs, IDuplexSessionChannel.cs,
1828           IOutputChannel.cs, IOutputSessionChannel.cs,
1829           IRequestChannel.cs, IRequestSessionChannel.cs :
1830           They are not IDisposable anymore.
1831           For IReplyChannel, IRequestContext -> RequestContext.
1832         * IChannelListener.cs : removed Identity. Added GetProperty().
1833         * ChannelListenerBase.cs, ChannelListenerBase.cs,
1834           ReplyChannelBase.cs, HttpReplyChannel.cs :
1835           Several members disappeared, and dependent changes.
1836         * HttpTransportBindingElement.cs,
1837           HttpChannelListener.cs, :
1838           ChannelListenerBase.SharedChannelListener vanished.
1839
1840 2006-07-05  Atsushi Enomoto  <atsushi@ximian.com>
1841
1842         * MessageEncodingBindingElement.cs
1843           MtomMessageEncodingBindingElement.cs,
1844           TextMessageEncodingBindingElement.cs,
1845           BinaryMessageEncodingBindingElement.cs :
1846           June CTP updates: AddressingVersion -> MessageVersion.
1847         * Binding.cs : June CTP. MessageVersion is added.
1848         * ChannelBase.cs, BindingContext.cs, IChannel.cs
1849           ChannelListenerBase_1.cs,
1850           ChannelListenerBase.cs, IChannelListener.cs,
1851           IChannelFactory.cs,
1852           ChannelFactoryBase.cs, ChannelManagerBase.cs :
1853           June CTP. Several interface changes.
1854         * HttpTransportBindingElement.cs : June CTP. HttpMappingMode is gone.
1855         * IChannelManager.cs, LayeredChannelListener.cs,
1856           GenericWrapperChannelFactory.cs,
1857           GenericWrapperChannelListener.cs : They are not used anymore.
1858
1859 2006-07-04  Atsushi Enomoto  <atsushi@ximian.com>
1860
1861         * MtomMessageEncoder.cs, BinaryMessageEncoder.cs :
1862           sync fix with June CTP API updates.
1863
1864 2006-07-03  Ankit Jain  <jankit@novell.com>
1865
1866         * MessageEncodingBindingElementConverter.cs:
1867         * StandardBindingConverter.cs:
1868         * TransportBindingElementConverter.cs:
1869         * TransactionFlowBindingElementConverter.cs:
1870         * ReliableSessionBindingElementConverter.cs:
1871         * SecurityBindingElementConverter.cs:
1872         Rename *Converter.cs to *Importer.cs
1873
1874         * TransferMode.cs: Move to System.ServiceModel
1875
1876 2006-06-22  Atsushi Enomoto  <atsushi@ximian.com>
1877
1878         * CommunicationObject.cs : make sure to change State before
1879           OnClosing/OnClosed/OnOpening/OnOpened when they are overriden.
1880
1881 2006-06-20  Atsushi Enomoto  <atsushi@ximian.com>
1882
1883         * Message.cs : output WSAddressing xmlns only when Action is
1884           specified (To should be affected, but seems like it is ignored).
1885
1886 2006-06-20  Atsushi Enomoto  <atsushi@ximian.com>
1887
1888         * MessageImpl.cs : don't set Action when it is null.
1889
1890 2006-06-12  Ankit Jain  <jankit@novell.com>
1891
1892         * TransportBindingElementConverter.cs (ImportEndpoint): Implement.
1893
1894 2006-05-29  Atsushi Enomoto  <atsushi@ximian.com>
1895
1896         * SecurityBindingElement.cs, SecurityBindingElementConverter.cs :
1897           some updated API fixes.
1898
1899 2006-05-29  Atsushi Enomoto  <atsushi@ximian.com>
1900
1901         * EnvelopeVersion.cs : moved back to S.SM.
1902
1903 2006-05-29  Atsushi Enomoto  <atsushi@ximian.com>
1904
1905         * IBindingManualAddressing.cs : vanished in beta2.
1906         * HostedTransportConfiguration.cs, EnvelopeVersion.cs,
1907           LocalClientSecuritySettings.cs, LocalServiceSecuritySettings.cs :
1908           namespace changes.
1909         * SecurityBindingElement.cs :
1910           SecurityStandardsManager -> SecurityTokenSerializer.
1911
1912 2006-05-29  Atsushi Enomoto  <atsushi@ximian.com>
1913
1914         * XmlSerializerBodyWriter.cs : new file to handle 
1915           TypedMessageConverter.ToMessage().
1916
1917 2006-04-26  Ankit Jain  <jankit@novell.com>
1918
1919         * TransportBindingElementConverter.cs (BeforeImport): Remove
1920         NotImplementedException.
1921         (ImportContract): Likewise.
1922         * CustomBinding.cs (.ctor): Use scheme from the binding parameter.
1923
1924 2006-04-14  Atsushi Enomoto  <atsushi@ximian.com>
1925
1926         * HttpRequestChannel.cs, HttpChannelFactory.cs : message encoder 
1927           being used was not reflecting that of Binding elements.
1928
1929 2006-04-07  Atsushi Enomoto  <atsushi@ximian.com>
1930
1931         * HttpReplyChannel.cs : when SOAP action is not set as a header item,
1932           just assume that it is in the message.
1933
1934 2006-04-06  Atsushi Enomoto  <atsushi@ximian.com>
1935
1936         * HttpReplyChannel.cs : actually HTTP header item might be null.
1937
1938 2006-04-06  Atsushi Enomoto  <atsushi@ximian.com>
1939
1940         * HttpReplyChannel.cs : under SOAP 1.1 SOAP Action is sent as HTTP
1941           header.
1942
1943 2006-04-06  Atsushi Enomoto  <atsushi@ximian.com>
1944
1945         * TextMessageEncoder.cs : for SOAP 1.1 content type is text/xml.
1946
1947 2006-04-06  Atsushi Enomoto  <atsushi@ximian.com>
1948
1949         * MessageFault.cs : Fixed SOAP12 reason output.
1950
1951 2006-04-05  Atsushi Enomoto  <atsushi@ximian.com>
1952
1953         * HttpReplyChannel.cs : no need to set response ContentEncoding since
1954           MessageEncoder.ContentType explicitly contains encoding.
1955         * AddressingVersion.cs : added ActionNotSupported property. Not sure
1956           if it is SOAP version dependent.
1957
1958 2006-03-23  Atsushi Enomoto  <atsushi@ximian.com>
1959
1960         * HttpReplyChannel.cs : actually I could just workaround bug #77816.
1961
1962 2006-03-16  Atsushi Enomoto  <atsushi@ximian.com>
1963
1964         * HttpChannelFactory.cs BindingContext.cs
1965           HttpChannelListener.cs HttpTransportBindingElement.cs :
1966           Now BindingContext holds MessageEncoder, and non-custom
1967           channel factory/listener should use it.
1968         * MtomMessageEncodingBindingElement.cs
1969           TextMessageEncodingBindingElement.cs
1970           BinaryMessageEncodingBindingElement.cs : BuildChannelFactory()/
1971           -Listener() now sets internal BindingContext.MessageEncoder.
1972           Fixed some public API.
1973
1974 2006-03-15  Atsushi Enomoto  <atsushi@ximian.com>
1975
1976         * BindingContext.cs : CanBuildChannelXXX() should not raise error
1977           for insufficient elements.
1978         * DispatchRuntime.cs : OperationDescription name is not action. So
1979           OperationSelector is created by name, not by action.
1980         * TextMessageEncodingBindingElement.cs : Feb. CTP API fixes.
1981
1982 2006-03-14  Atsushi Enomoto  <atsushi@ximian.com>
1983
1984         * MessageFaultBodyWriter.cs
1985           XmlReaderBodyWriter.cs
1986           XmlObjectSerializerBodyWriter.cs : made internal.
1987         * SecurityBindingElement.cs
1988           AsymmetricSecurityBindingElement.cs
1989           SymmetricSecurityBindingElement.cs : API fixes.
1990         * TransportBindingElementConverter.cs : ditto.
1991         * TextMessageEncodingBindingElement.cs : added set_AddressingVersion.
1992         * WindowsStreamSecurityBindingElement.cs
1993           SslStreamSecurityBindingElement.cs
1994           TransportSecurityBindingElement.cs : new files.
1995
1996 2006-03-14  Atsushi Enomoto  <atsushi@ximian.com>
1997
1998         * MessageImpl.cs : according to the W3C REC, mustUnderstand when
1999           reading can be any xs:boolean value.
2000
2001 2006-03-14  Atsushi Enomoto  <atsushi@ximian.com>
2002
2003         * Message.cs MessageImpl.cs : more sorting out the role of each
2004           write method.
2005         * MessageHeader.cs : use envelope namespace, not addressing namespace.
2006
2007 2006-03-14  Atsushi Enomoto  <atsushi@ximian.com>
2008
2009         * Message.cs : don't write body contents if it is empty.
2010           Moved WriteStartElement(,"Header",) to OnWriteStartHeaders().
2011         * MessageImpl.cs : implemented XmlReaderMessage.OnWriteBodyContents().
2012         * TextMessageEncoder.cs : WriteMessage() should close XmlWriter.
2013         * HttpRequestChannel.cs : close request stream before GetResponse().
2014
2015 2006-03-13  Atsushi Enomoto  <atsushi@ximian.com>
2016
2017         * TextMessageEncoderFactory.cs
2018           TextMessageEncoder.cs : encoder does not hold reference to the
2019           factory anymore. Use MessageVersion property in CreateMssage().
2020         * HttpChannelListener.cs : now it holds message encoder.
2021         * HttpReplyChannel.cs : now it uses listener's shared message encoder.
2022         * MessageImpl.cs : header is optional.
2023         * EnvelopeVersion.cs : namespace URI is missing.
2024
2025 2006-03-10  Atsushi Enomoto  <atsushi@ximian.com>
2026
2027         * CustomBinding.cs : removed Initialize().
2028         * Message.cs : renamed ForwardingMessage -> XmlReaderMessage.
2029         * MessageImpl.cs : renamed ForwardingMessage to XmlReaderMessage (used
2030           by Message.CreateMessage(MessageVersion,XmlReader,int) and
2031           implemented Headers, IsEmpty and GetReaderAtBodyContents().
2032
2033 2006-03-08  Atsushi Enomoto  <atsushi@ximian.com>
2034
2035         * MessageHeaders.cs : implemented GetReaderAtHeader() and Action (it
2036           could be also added by Add() method and could be reset by Remove()).
2037         * MessageImpl.cs : implemented more. As noted above, Now we don't 
2038           have to add Action header explicitly.
2039         * MessageHeader.cs : recovered Writer methods and ToString() from
2040           commented old version. Use prefixes for writing.
2041           Use WriteObjectContent() rather than WriteObject() (it needs
2042           DataContractSerializer fix btw).
2043
2044 2006-03-08  Atsushi Enomoto  <atsushi@ximian.com>
2045
2046         * MessageHeader.cs : added missing IsReferenceParameter.
2047         * MessageHeaderInfo.cs : added missing IsReferenceParameter.
2048         * MessageHeaders.cs : avoid NullRef when actors is null.
2049         * MessageImpl.cs : (MessageImplBase) add Action header in .ctor().
2050           (ForwardingMessage) reader consumer is being added (not done).
2051         * MtomMessageEncodingBindingElement.cs : simply use Mtom factory.
2052         * MtomMessageEncoder.cs : updated ContentType value to Feb. CTP.
2053         * HttpRequestChannel.cs : this channel automatically call Open()
2054           when Request() is called. Set content length for request.
2055           Use MessageEncoder's ContentType to also handle charset.
2056
2057 2006-03-07  Atsushi Enomoto  <atsushi@ximian.com>
2058
2059         * MessageImpl.cs : make them internal.
2060         * HttpReplyChannel.cs : set HttpListenerResponse properties correctly.
2061
2062 2006-03-07  Atsushi Enomoto  <atsushi@ximian.com>
2063
2064         * ChannelManagerBase.cs : cleanup MonoTODO and unused field.
2065         * HttpChannelListener.cs : removed commented line.
2066         * RequestChannelBase.cs : new base class for request channel classes.
2067         * ChannelListenerBase.cs : OnEndClose() is rather NotImplemented yet.
2068         * HttpReplyChannel.cs : WaitHandle accepts limited timeout value.
2069         * Message.cs : default IsEmpty and IsFault false by default.
2070         * LayeredChannelListener.cs : removed Uri (no chance to set).
2071         * ChannelBase.cs : reimplemented timeout properties.
2072         * HttpRequestChannel.cs : now it is mostly based on
2073           RequestChannelBase. Some more attempt to implement Request().
2074
2075 2006-03-07  Atsushi Enomoto  <atsushi@ximian.com>
2076
2077         * Binding.cs CustomBinding.cs : removed OnApplyConfiguration() and
2078           OnInitialize(). Added more BuildChannelListener() overloads.
2079
2080 2006-03-06  Atsushi Enomoto  <atsushi@ximian.com>
2081
2082         * Binding.cs : added some more missing members especially to support
2083           listener creation.
2084         * HttpChannelListener.cs : Uri should not be null.
2085         * HttpTransportBindingElement.cs : implemented
2086           CanBuildChannelFactory() and CanBuildChannelListener().
2087         * ServiceHostBase.cs : make Initialize() practically work at OnOpen().
2088
2089 2006-03-06  Atsushi Enomoto  <atsushi@ximian.com>
2090
2091         * Binding.cs : updated default namespace property value to Feb. CTP.
2092
2093 2006-03-03  Atsushi Enomoto  <atsushi@ximian.com>
2094
2095         * AddressHeader.cs : avoid null reference when value is null.
2096         * BindingContext.cs : check null ListenUri args.
2097
2098 2006-03-03  Atsushi Enomoto  <atsushi@ximian.com>
2099
2100         * MessageFault.cs : Fixed default action name. Null arg check.
2101
2102 2006-03-03  Atsushi Enomoto  <atsushi@ximian.com>
2103
2104         * BindingElement.cs : Dequeue elements in BindingContext directly.
2105         * BindingContext.cs : Added GetProperty<T>().
2106         * GenericWrapperChannelFactory.cs GenericWrapperChannelListener.cs :
2107           Now we don't need these extra classes, so marked as deprecated.
2108
2109 2006-03-03  Atsushi Enomoto  <atsushi@ximian.com>
2110
2111         * Binding.cs : null arg check.
2112         * AddressingVersion.cs : fixed constants to pass the tests.
2113         * BindingElement.cs : tiny meessage fix.
2114
2115 2006-03-02  Atsushi Enomoto  <atsushi@ximian.com>
2116
2117         * MessageEncodingBindingElement.cs
2118           BinaryMessageEncodingBindingElement.cs
2119           TextMessageEncodingBindingElement.cs
2120           MtomMessageEncodingBindingElement.cs
2121           MessageEncodingBindingElementConverter.cs : several API fixes.
2122         * BindingElement.cs : now if we use generic wrapper it causes
2123           infinite loop, so for now replace it with most-possible-but-
2124           untested logic.
2125
2126 2006-03-02  Atsushi Enomoto  <atsushi@ximian.com>
2127
2128         (back to normal "record-ChangeLogs" mode after the big API change mess)
2129         * HttpTransportBindingElement.cs : fixed minor API differences.
2130
2131 2006-02-23  Atsushi Enomoto  <atsushi@ximian.com>
2132
2133         * AsymmetricSecurityBindingElement.cs SecurityBindingElement.cs
2134           SymmetricSecurityBindingElement.cs :
2135           Dependent fixes for System.IdentityModel reorgainzation.
2136
2137 2006-02-23  Atsushi Enomoto  <atsushi@ximian.com>
2138
2139         * InputChannelBase.cs.notused IInputSession.cs IOutputSession.cs
2140           IProxyFormatter.cs WSHttpBindingBase.cs 
2141           PnrpPeerResolverBindingElement.cs IMessageHeaderInfo.cs
2142           MessageInterceptorEventArgs.cs WSHttpBinding.cs
2143           WSFederationBinding.cs ISessionChannel.cs
2144           CompositeDuplexBindingElement.cs MessageVersion.cs
2145           MessageHeader.cs IRequestSessionChannel.cs 
2146           BindingElementCollection.cs IReplySessionChannel.cs
2147           MessageProperties.cs IDuplexClientChannel.cs
2148           IInputSessionChannel.cs MessageImpl.cs IDuplexSessionChannel.cs
2149           TcpTransportBindingElement.cs EmptyFaultException.cs
2150           IBindingRuntimePreferences.cs AddressHeaderCollection.cs
2151           IStubFormatter.cs AsymmetricSecurityBindingElement.cs
2152           ConnectionOrientedTransportBindingElement.cs
2153           IProxyOperationSelector.cs MessageBuffer.cs IChannel.cs
2154           PeerResolverBindingElement.cs Message.cs
2155           HttpsTransportBindingElement.cs BindingElement.cs
2156           NamedPipetransportBindingElement.cs IBindingManualAddressing.cs
2157           MessageFaultBodyWriter.cs IReplyChannel.cs
2158           IBindingCapabilities.cs AddressHeader.cs IInputChannel.cs
2159           IMessageProperty.cs IOutputChannel.cs NetPeerTcpBinding.cs
2160           IRequestContext.cs IInputSessionShutdown.cs
2161           SecurityBindingElement.cs PeerTransportBindingElement.cs
2162           IDuplexSession.cs IChannelInitializer.cs
2163           IProxyMessageInspector.cs IChannelListener.cs NetTcpBinding.cs
2164           AddressingVersion.cs FaultException.cs
2165           IRequestChannel.cs MtomMessageEncodingBindingElement.cs
2166           TransportBindingElement.cs BinaryMessageEncodingBindingElement.cs
2167           TextMessageEncodingBindingElement.cs IChannelFactory.cs Binding.cs
2168           ITransportBindingElement.cs IChannelManager.cs MessageFault.cs
2169           MessageHeaders.cs IStubMessageInspector.cs UnderstoodHeaders.cs
2170           BindingParameterCollection.cs IInstanceProvider.cs
2171           WSDualHttpBinding.cs ISession.cs IErrorHandler.cs
2172           MessageEncodingBindingElement.cs HttpTransportBindingElement.cs
2173           IDuplexChannel.cs CustomBinding.cs IOutputSessionChannel.cs
2174           MessageContractAttribute.cs SymmetricSecurityBindingElement.cs :
2175           moved from System.ServiceModel due to the API changes.
2176
2177 2006-02-23  Atsushi Enomoto  <atsushi@ximian.com>
2178
2179         * ChannelFactoryBase.cs ChannelListenerBase.cs HttpChannelFactory.cs
2180           HttpChannelListener.cs HttpRequestChannel.cs
2181           LayeredChannelListener.cs PeerMessagePropagationFilter.cs
2182           PeerNode.cs ReplyChannelBase.cs :
2183           Feb. CTP API changes - chapter 1.
2184
2185 2006-02-15  Atsushi Enomoto  <atsushi@ximian.com>
2186
2187         * ChannelBase.cs : OnOpen() and OnClosed() do nothing.
2188         * ReplyChannelBase.cs : now it is based on ChannelBase.
2189         * ChannelListenerBase_1.cs : use DefaultCommunicationTimeouts.Instance
2190           and check null argument in .ctor().
2191         * HttpReplyChannel.cs : several changes.
2192           Non-async members are mostly implemented.
2193         * HttpChannelListener.cs : no need to receive 
2194           IDefaultCommunicationTimeouts.
2195         * HttpRequestChannel.cs : maxSizeOfHeaders is used in MessageHeaders
2196           to allocate buffer array and int.MaxValue causes OutOfMemory.
2197
2198 2006-02-15  Atsushi Enomoto  <atsushi@ximian.com>
2199
2200         * ClientFramingDecoderState.cs : added missing enum.
2201         * HttpRequestMessageProperty.cs HttpResponseMessageProperty.cs :
2202           added missing bits.
2203         * ChannelBase.cs, LayeredChannelListener.cs : tiny API fixes.
2204
2205 2006-02-15  Atsushi Enomoto  <atsushi@ximian.com>
2206
2207         * HttpChannelListener.cs : Added GetChannels() and OnClose().
2208           AcceptChannel() has some code now but it needs more love.
2209
2210 2006-02-14  Atsushi Enomoto  <atsushi@ximian.com>
2211
2212         * CommunicationObject.cs : Close() does not call Begin/EndClose().
2213         * ChannelManagerBase.cs : implemented AbortChannel and CloseChannel.
2214         * ChannelListenerBase.cs : implemented OnAbort and OnClose.
2215
2216 2006-02-10  Atsushi Enomoto  <atsushi@ximian.com>
2217
2218         * HttpRequestChannel.cs : close the streams.
2219         * HttpListener.cs
2220           HttpChannelListener.cs : renamed from former to latter.
2221
2222 2006-02-09  Atsushi Enomoto  <atsushi@ximian.com>
2223
2224         * ReplyChannelBase.cs : new file for IReplyChannel implementations.
2225         * HttpReplyChannel.cs : new file for HTTP IReplyChannel.
2226         * HttpListenerFactory.cs : removed obsolete file.
2227         * HttpListener.cs : hacky WaitForChannel and AcceptChannel.
2228         * ChannelListenerBase_1.cs : implemented virtual stuff.
2229         * CommunicationObject.cs : Open() should not call BeginOpen() and
2230           EndOpen(). Instead, invoke events individually.
2231         * ChannelListenerBase.cs : its Open() is WaitForChannel().
2232
2233 2006-02-08  Atsushi Enomoto  <atsushi@ximian.com>
2234
2235         * HttpRequestChannel.cs : call Flush() after serializing message
2236           into HTTP stream.
2237
2238 2006-02-08  Atsushi Enomoto  <atsushi@ximian.com>
2239
2240         * HttpRequestChannel.cs : implemented pretty hacky Request().
2241
2242 2006-02-02  Atsushi Enomoto  <atsushi@ximian.com>
2243
2244         * HttpRequestChannel.cs : Manager is HttpChannelFactory.
2245
2246 2006-02-01  Atsushi Enomoto  <atsushi@ximian.com>
2247
2248         * ChannelFactoryBase.cs : removed some NotImplementedException for
2249           further internal implementation.
2250
2251 2006-01-26  Atsushi Enomoto  <atsushi@ximian.com>
2252
2253         * HttpRequestChannel.cs : new file. mostly not implemented.
2254         * HttpChannelFactory.cs : Implemented CanCreateChannel().
2255           Partly implemented CreateChannel().
2256
2257 2006-01-26  Atsushi Enomoto  <atsushi@ximian.com>
2258
2259         * HttpChannelFactory.cs : (.ctor())
2260           Don't take ChannelBuildContext.
2261
2262 2005-11-21  Atsushi Enomoto  <atsushi@ximian.com>
2263
2264         * StreamSecurityUpgradeInitiator.cs PeerMessageOrigination.cs
2265           ChannelBase.cs StreamSecurityUpgradeAcceptor.cs
2266           PeerMessagePropagation.cs : updated to Nov. CTP.
2267
2268 2005-11-21  Atsushi Enomoto  <atsushi@ximian.com>
2269
2270         * ChannelListenerBase.cs, ChannelManagerBase.cs,
2271           ChannelListenerBase_1.cs, LayeredChannelListener.cs,
2272           StreamSecurityUpgradeAcceptor.cs,
2273           StreamSecurityUpgradeInitiator.cs :
2274           Updated to Nov. CTP API.
2275
2276 2005-11-21  Atsushi Enomoto  <atsushi@ximian.com>
2277
2278         Now we can rename ListenerFactoryBase.cs to ChannelListenerBase.cs.
2279
2280 2005-11-21  Atsushi Enomoto  <atsushi@ximian.com>
2281
2282         renamed ChannelListenerBase.cs to ChannelListenerBase_1.cs.
2283
2284 2005-11-21  Atsushi Enomoto  <atsushi@ximian.com>
2285
2286         * ChannelBase.cs : tiny filename fix.
2287         * ChannelListenerBase.cs : added more .ctor()s.
2288
2289 2005-11-21  Atsushi Enomoto  <atsushi@ximian.com>
2290
2291         * HttpListenerFactory.cs LayeredChannelListener.cs HttpListener.cs
2292           ListenerFactoryBase.cs ChannelListenerBase.cs :
2293           updated IListener related stuff to Nov. CTP.
2294           file renaming will come soon.
2295
2296 2005-11-21  Atsushi Enomoto  <atsushi@ximian.com>
2297
2298         * ListenerBase.cs, ChannelListenerBase.cs :
2299           moved from former to latter.
2300         * LayeredListenerFactory.cs, LayeredChannelListener.cs :
2301           moved from former to latter.
2302
2303 2005-11-20  Atsushi Enomoto  <atsushi@ximian.com>
2304
2305         * SessionFaultedException.cs : removed in Nov. CTP
2306
2307 2005-11-20  Atsushi Enomoto  <atsushi@ximian.com>
2308
2309         * CommunicationObject.cs : updated to Nov. CTP.
2310         * SessionFaultedException.cs : removed (in Nov. CTP)
2311
2312 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
2313
2314         * TextMessageEncoder.cs : kinda implemented (untested; Message is not
2315           working).
2316
2317 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
2318
2319         * MtomMessageEncoder.cs, BinaryMessageEncoderFactory.cs,
2320           TextMessageEncoderFactory.cs, BinaryMessageEncoder.cs,
2321           TextMessageEncoder.cs, MtomMessageEncoderFactory.cs : new files.
2322         * MessageEncoder.cs : largely implemented.
2323
2324 2005-11-02  Atsushi Enomoto  <atsushi@ximian.com>
2325
2326         * IRequestReplyCorrelator.cs : new file.
2327
2328 2005-11-02  Atsushi Enomoto  <atsushi@ximian.com>
2329
2330         * CommunicationObject.cs : OnClose() and OnError() are not virtual.
2331         * DirectionalAction.cs : implemented IComparable<DirectionalAction>.
2332         * MessageEncoder.cs : added misssing ToString().
2333
2334 2005-11-02  Atsushi Enomoto  <atsushi@ximian.com>
2335
2336         * ChannelBehaviorCollection.cs : moved to sys.sm.
2337
2338 2005-10-28  Atsushi Enomoto  <atsushi@ximian.com>
2339
2340         * HttpListenerFactory.cs, HttpListener.cs : new files.
2341         * ListenerFactoryBase.cs, ChannelManagerBase.cs,
2342           CommunicationObject.cs, ChannelFactoryBase.cs,
2343           StreamUpgradeProvider.cs, ChannelBase.cs : timeouts are now
2344           protected internal.
2345         * CommunicationObject.cs : Aborted is bool. Added InternalClose()
2346         * ListenerFactoryBase.cs : kinda implemented GetListeners().
2347
2348 2005-10-26  Atsushi Enomoto  <atsushi@ximian.com>
2349
2350         * ListenerFactoryBase.cs : some implementation.
2351
2352 2005-10-26  Atsushi Enomoto  <atsushi@ximian.com>
2353
2354         * CommunicationObject.cs : more state fixes.
2355
2356 2005-10-26  Atsushi Enomoto  <atsushi@ximian.com>
2357
2358         * CommunicationObject.cs : some state machine fixes.
2359
2360 2005-10-26  Atsushi Enomoto  <atsushi@ximian.com>
2361
2362         * PeerNode.cs, ChannelManagerBase.cs :
2363           several API fixes detected by improved corcompare.
2364
2365 2005-10-25  Atsushi Enomoto  <atsushi@ximian.com>
2366
2367         * LayeredListenerFactory.cs : added missing generic class constraint.
2368
2369 2005-10-25  Atsushi Enomoto  <atsushi@ximian.com>
2370
2371         * ListenerFactoryBase.cs,
2372           ListenerBase.cs : class constraints were missing for generic args.
2373
2374 2005-10-24  Atsushi Enomoto  <atsushi@ximian.com>
2375
2376         * StreamUpgradeInitiator.cs : tiny API fix.
2377
2378 2005-10-23  Atsushi Enomoto  <atsushi@ximian.com>
2379
2380         * PeerMessagePropagationFilter.cs : tiny build fix.
2381
2382 2005-10-23  Atsushi Enomoto  <atsushi@ximian.com>
2383
2384         * HttpRequestMessageProperty.cs, HttpResponseMessageProperty.cs :
2385           added Name. fixed StatusCode type.
2386         * StreamSecurityUpgradeInitiator.cs, StreamUpgradeAcceptor.cs,
2387           PeerNode.cs, StreamSecurityUpgradeAcceptor.cs,
2388           StreamUpgradeProvider.cs, StreamUpgradeInitiator.cs,
2389           DirectionalAction.cs, HostedTransportConfiguration.cs,
2390           StreamSecurityUpgradeProvider.cs, SessionFaultedException.cs,
2391           PeerMessagePropagationFilter.cs : added missing files.
2392         * Dummy.cs : removed. MSMQ stuff can be added later.
2393
2394 2005-10-21  Atsushi Enomoto  <atsushi@ximian.com>
2395
2396         * DeliveryStatus.cs, DeliveryFailure.cs,
2397           HttpRequestMessageProperty.cs, PeerMessageOrigination.cs,
2398           PeerMessagePropagation.cs, HttpResponseMessageProperty.cs :
2399           new files.
2400         * Dummy.cs : removed above.
2401
2402 2005-10-18  Atsushi Enomoto  <atsushi@ximian.com>
2403
2404         * ChannelFactoryBase.cs : tiny .ctor() delegation fix.
2405
2406 2005-10-09  Atsushi Enomoto  <atsushi@ximian.com>
2407
2408         * MessageEncoderFactory.cs, LayeredListenerFactory.cs,
2409           MessageEncoder.cs, BufferManager.cs : new files.
2410         * Dummy.cs : removed above.
2411
2412 2005-10-09  Atsushi Enomoto  <atsushi@ximian.com>
2413
2414         * ChannelBase.cs, ChannelBehaviorCollection.cs : new channel files.
2415         * Dummy.cs : removed above.
2416         * CommunicationObject.cs, ListenerFactoryBase.cs : added missing bits.
2417
2418 2005-10-09  Atsushi Enomoto  <atsushi@ximian.com>
2419
2420         * HttpChannelFactory.cs : new file.
2421
2422 2005-10-08  Atsushi Enomoto  <atsushi@ximian.com>
2423
2424         * IReplyChannel.cs, IRequestContext.cs, IRequestChannel.cs:
2425           moved to ../System.ServiceModel (correct location).
2426         * ChannelFactoryBase.cs, LayeredChannelFactory.cs, TransferMode.cs:
2427           new files for channels.
2428         * Dummy.cs : reflected above changes.
2429         * ChannelManagerBase.cs : added a bit of code and todos.
2430
2431 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
2432
2433         * ChannelManagerBase.cs, ListenerBase.cs, ListenerFactoryBase.cs :
2434           added listener support files.
2435         * Dummy.cs : removed above.
2436
2437 2005-10-03  Atsushi Enomoto  <atsushi@ximian.com>
2438
2439         * IReplyChannel.cs, IRequestContext.cs, IRequestChannel.cs :
2440           added request/reply channel interfaces.
2441         * Dummy.cs : removed above.
2442         * CommunicationObject.cs : FIXME comments.
2443
2444 2005-10-03  Atsushi Enomoto  <atsushi@ximian.com>
2445
2446         * CommunicationObject.cs : implemented some members.
2447
2448 2005-09-29  Atsushi Enomoto  <atsushi@ximian.com>
2449
2450         * CommunicationObject.cs : some signature fixes.
2451