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
- Privilege.cs
- DeferredReference.cs
- ExponentialEase.cs
- DataSourceHelper.cs
- ConfigurationPermission.cs
- NotifyIcon.cs
- ImageConverter.cs
- SrgsElementFactory.cs
- ErrorCodes.cs
- HttpCacheVaryByContentEncodings.cs
- SHA512.cs
- WindowsBrush.cs
- XPathAncestorIterator.cs
- DNS.cs
- BeginEvent.cs
- GB18030Encoding.cs
- FolderBrowserDialogDesigner.cs
- RoutingSection.cs
- TreeViewImageGenerator.cs
- AttributeData.cs
- WindowsGraphics2.cs
- XmlSchemaElement.cs
- SafePEFileHandle.cs
- FigureParagraph.cs
- SymLanguageVendor.cs
- FrameworkObject.cs
- BitmapEffectrendercontext.cs
- AlgoModule.cs
- LayoutEditorPart.cs
- _BasicClient.cs
- Stopwatch.cs
- StaticExtension.cs
- ConfigurationException.cs
- RSAProtectedConfigurationProvider.cs
- OpenTypeLayoutCache.cs
- FixedDocumentPaginator.cs
- TextServicesCompartmentEventSink.cs
- EventManager.cs
- PasswordPropertyTextAttribute.cs
- PhonemeConverter.cs
- MenuAdapter.cs
- TimeoutValidationAttribute.cs
- ResourceDescriptionAttribute.cs
- XamlTreeBuilder.cs
- ToolStripAdornerWindowService.cs
- ListViewPagedDataSource.cs
- RegexMatch.cs
- Empty.cs
- NavigationPropertySingletonExpression.cs
- Table.cs
- BoundPropertyEntry.cs
- AccessDataSourceDesigner.cs
- SqlParameter.cs
- IsolatedStoragePermission.cs
- DefinitionBase.cs
- RoleGroupCollection.cs
- UnsafeNativeMethods.cs
- ReadOnlyTernaryTree.cs
- PropertyDescriptorComparer.cs
- cookiecontainer.cs
- UnsafeNativeMethodsPenimc.cs
- DoubleAnimationClockResource.cs
- SafeRegistryKey.cs
- MonitorWrapper.cs
- ToolStripLabel.cs
- PtsHost.cs
- InteropAutomationProvider.cs
- DoubleKeyFrameCollection.cs
- PolicyException.cs
- StrongName.cs
- TypeDescriptionProviderAttribute.cs
- CodeEntryPointMethod.cs
- ReferencedAssembly.cs
- SqlBooleanMismatchVisitor.cs
- ClientOptions.cs
- XmlNodeReader.cs
- DataListItemEventArgs.cs
- IISMapPath.cs
- ImageAttributes.cs
- TreeNodeSelectionProcessor.cs
- ProxyWebPartConnectionCollection.cs
- ToolStripPanelSelectionGlyph.cs
- ConstructorNeedsTagAttribute.cs
- WebRequest.cs
- XmlCountingReader.cs
- CustomBinding.cs
- KeyGesture.cs
- ListenerServiceInstallComponent.cs
- ColorAnimationUsingKeyFrames.cs
- TypeUsage.cs
- SaveWorkflowCommand.cs
- PenCursorManager.cs
- UnsignedPublishLicense.cs
- StreamGeometryContext.cs
- Attributes.cs
- TileBrush.cs
- Interlocked.cs
- DocumentAutomationPeer.cs
- FlowDocument.cs
- AssemblyBuilder.cs