Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / IdentityModel / System / IdentityModel / CanonicalFormWriter.cs / 1305376 / CanonicalFormWriter.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.IdentityModel { using System.IO; using System.Security.Cryptography; using System.Text; using System.Xml; abstract class CanonicalFormWriter { internal static readonly UTF8Encoding Utf8WithoutPreamble = new UTF8Encoding(false); protected static void Base64EncodeAndWrite(Stream stream, byte[] workBuffer, char[] base64WorkBuffer, byte[] data) { if ((data.Length / 3) * 4 + 4 > base64WorkBuffer.Length) { EncodeAndWrite(stream, Convert.ToBase64String(data)); return; } int encodedLength = Convert.ToBase64CharArray(data, 0, data.Length, base64WorkBuffer, 0, Base64FormattingOptions.None); EncodeAndWrite(stream, workBuffer, base64WorkBuffer, encodedLength); } protected static void EncodeAndWrite(Stream stream, byte[] workBuffer, string s) { if (s.Length > workBuffer.Length) { EncodeAndWrite(stream, s); return; } for (int i = 0; i < s.Length; i++) { char c = s[i]; if (c < 127) { workBuffer[i] = (byte) c; } else { EncodeAndWrite(stream, s); return; } } stream.Write(workBuffer, 0, s.Length); } protected static void EncodeAndWrite(Stream stream, byte[] workBuffer, char[] chars) { EncodeAndWrite(stream, workBuffer, chars, chars.Length); } protected static void EncodeAndWrite(Stream stream, byte[] workBuffer, char[] chars, int count) { if (count > workBuffer.Length) { EncodeAndWrite(stream, chars, count); return; } for (int i = 0; i < count; i++) { char c = chars[i]; if (c < 127) { workBuffer[i] = (byte) c; } else { EncodeAndWrite(stream, chars, count); return; } } stream.Write(workBuffer, 0, count); } static void EncodeAndWrite(Stream stream, string s) { byte[] buffer = CanonicalFormWriter.Utf8WithoutPreamble.GetBytes(s); stream.Write(buffer, 0, buffer.Length); } static void EncodeAndWrite(Stream stream, char[] chars, int count) { byte[] buffer = CanonicalFormWriter.Utf8WithoutPreamble.GetBytes(chars, 0, count); stream.Write(buffer, 0, buffer.Length); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.IdentityModel { using System.IO; using System.Security.Cryptography; using System.Text; using System.Xml; abstract class CanonicalFormWriter { internal static readonly UTF8Encoding Utf8WithoutPreamble = new UTF8Encoding(false); protected static void Base64EncodeAndWrite(Stream stream, byte[] workBuffer, char[] base64WorkBuffer, byte[] data) { if ((data.Length / 3) * 4 + 4 > base64WorkBuffer.Length) { EncodeAndWrite(stream, Convert.ToBase64String(data)); return; } int encodedLength = Convert.ToBase64CharArray(data, 0, data.Length, base64WorkBuffer, 0, Base64FormattingOptions.None); EncodeAndWrite(stream, workBuffer, base64WorkBuffer, encodedLength); } protected static void EncodeAndWrite(Stream stream, byte[] workBuffer, string s) { if (s.Length > workBuffer.Length) { EncodeAndWrite(stream, s); return; } for (int i = 0; i < s.Length; i++) { char c = s[i]; if (c < 127) { workBuffer[i] = (byte) c; } else { EncodeAndWrite(stream, s); return; } } stream.Write(workBuffer, 0, s.Length); } protected static void EncodeAndWrite(Stream stream, byte[] workBuffer, char[] chars) { EncodeAndWrite(stream, workBuffer, chars, chars.Length); } protected static void EncodeAndWrite(Stream stream, byte[] workBuffer, char[] chars, int count) { if (count > workBuffer.Length) { EncodeAndWrite(stream, chars, count); return; } for (int i = 0; i < count; i++) { char c = chars[i]; if (c < 127) { workBuffer[i] = (byte) c; } else { EncodeAndWrite(stream, chars, count); return; } } stream.Write(workBuffer, 0, count); } static void EncodeAndWrite(Stream stream, string s) { byte[] buffer = CanonicalFormWriter.Utf8WithoutPreamble.GetBytes(s); stream.Write(buffer, 0, buffer.Length); } static void EncodeAndWrite(Stream stream, char[] chars, int count) { byte[] buffer = CanonicalFormWriter.Utf8WithoutPreamble.GetBytes(chars, 0, count); stream.Write(buffer, 0, buffer.Length); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- GlobalEventManager.cs
- Wildcard.cs
- SamlSubjectStatement.cs
- WebProxyScriptElement.cs
- PopupControlService.cs
- ConfigurationSectionHelper.cs
- ReliableSessionElement.cs
- SingleTagSectionHandler.cs
- KeyValueSerializer.cs
- CloudCollection.cs
- Logging.cs
- XmlSchemaExternal.cs
- PeerApplication.cs
- WebBrowserDocumentCompletedEventHandler.cs
- ReadOnlyDataSource.cs
- EndpointDesigner.cs
- ReadContentAsBinaryHelper.cs
- AspNetSynchronizationContext.cs
- SqlLiftIndependentRowExpressions.cs
- MetadataHelper.cs
- TableCellAutomationPeer.cs
- SynchronizationHandlesCodeDomSerializer.cs
- ControlPaint.cs
- AppDomainUnloadedException.cs
- StaticFileHandler.cs
- UserControl.cs
- BitmapEffectGroup.cs
- DataColumnMappingCollection.cs
- ObjectSelectorEditor.cs
- Helper.cs
- SecurityContext.cs
- RepeatBehaviorConverter.cs
- UTF8Encoding.cs
- VarRemapper.cs
- QilXmlReader.cs
- ExtentKey.cs
- RoutingConfiguration.cs
- ConstraintConverter.cs
- XmlWriterSettings.cs
- _IPv6Address.cs
- ClientProxyGenerator.cs
- HelpInfo.cs
- TrailingSpaceComparer.cs
- Metadata.cs
- FilterableAttribute.cs
- SqlDataSourceView.cs
- WindowsFormsSynchronizationContext.cs
- ClientUrlResolverWrapper.cs
- ComboBox.cs
- EllipticalNodeOperations.cs
- ColorEditor.cs
- COM2IDispatchConverter.cs
- CFStream.cs
- VectorConverter.cs
- smtppermission.cs
- HttpPostProtocolReflector.cs
- DesignerHost.cs
- CodeParameterDeclarationExpression.cs
- LayoutEngine.cs
- CommandExpr.cs
- AuthenticatedStream.cs
- SpeakCompletedEventArgs.cs
- MetadataFile.cs
- ElapsedEventArgs.cs
- CodeEventReferenceExpression.cs
- EntityDataSourceEntityTypeFilterConverter.cs
- DependencyPropertyHelper.cs
- ExportFileRequest.cs
- ArcSegment.cs
- GuidTagList.cs
- WebScriptMetadataInstanceContextProvider.cs
- BufferedWebEventProvider.cs
- XComponentModel.cs
- metadatamappinghashervisitor.cs
- TiffBitmapDecoder.cs
- StructuralComparisons.cs
- CompModSwitches.cs
- Visual3D.cs
- TreeNodeStyleCollectionEditor.cs
- MediaElementAutomationPeer.cs
- ResourcesBuildProvider.cs
- ToolStripEditorManager.cs
- EventLogPermission.cs
- EncodingInfo.cs
- XmlIgnoreAttribute.cs
- ToolStripDropDownButton.cs
- CompositeDuplexBindingElementImporter.cs
- WebBrowser.cs
- AssemblyContextControlItem.cs
- ScrollPattern.cs
- SimpleApplicationHost.cs
- TrustLevel.cs
- XmlCodeExporter.cs
- ManipulationCompletedEventArgs.cs
- InternalPermissions.cs
- HostSecurityManager.cs
- InternalDispatchObject.cs
- FileLoadException.cs
- DefaultSettingsSection.cs
- AutomationElementIdentifiers.cs