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