Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- BindingGraph.cs
- RelationshipConverter.cs
- ApplicationActivator.cs
- DeviceContext.cs
- CommandHelpers.cs
- NativeCompoundFileAPIs.cs
- UIElementHelper.cs
- SystemWebCachingSectionGroup.cs
- ByteStreamMessage.cs
- EndCreateSecurityTokenRequest.cs
- TextBoxAutoCompleteSourceConverter.cs
- CompositeActivityCodeGenerator.cs
- DecoderReplacementFallback.cs
- FigureParagraph.cs
- UserUseLicenseDictionaryLoader.cs
- RequestQueryProcessor.cs
- TextBreakpoint.cs
- XmlSchemaSimpleTypeUnion.cs
- BitmapDecoder.cs
- FormCollection.cs
- _LocalDataStoreMgr.cs
- ExpressionVisitor.cs
- IncrementalCompileAnalyzer.cs
- ReadOnlyHierarchicalDataSource.cs
- PointValueSerializer.cs
- PresentationTraceSources.cs
- SystemResourceKey.cs
- RecordManager.cs
- HtmlInputPassword.cs
- ConfigPathUtility.cs
- RawStylusInput.cs
- TypeConverterAttribute.cs
- FontFamilyConverter.cs
- XmlUTF8TextReader.cs
- Utils.cs
- _OverlappedAsyncResult.cs
- oledbmetadatacolumnnames.cs
- altserialization.cs
- ByteStorage.cs
- KeyValuePairs.cs
- XmlImplementation.cs
- ObjectItemAssemblyLoader.cs
- SqlInternalConnectionTds.cs
- MsmqIntegrationMessageProperty.cs
- TypeUtil.cs
- CallTemplateAction.cs
- RequestResponse.cs
- CodeSnippetCompileUnit.cs
- MetadataArtifactLoaderResource.cs
- CreateParams.cs
- GeneralTransform3DTo2D.cs
- UnSafeCharBuffer.cs
- HttpBrowserCapabilitiesWrapper.cs
- Activator.cs
- GuidelineSet.cs
- NonClientArea.cs
- CustomErrorCollection.cs
- EmissiveMaterial.cs
- ComboBoxItem.cs
- CustomErrorsSectionWrapper.cs
- PresentationSource.cs
- WebPartEditVerb.cs
- RadioButtonList.cs
- WebPartTransformerCollection.cs
- EntityDataSourceStatementEditorForm.cs
- Material.cs
- TypeUnloadedException.cs
- BackEase.cs
- EmptyReadOnlyDictionaryInternal.cs
- SetStateEventArgs.cs
- PagedControl.cs
- XsltLibrary.cs
- parserscommon.cs
- DataGridViewRowHeightInfoNeededEventArgs.cs
- BindableTemplateBuilder.cs
- TeredoHelper.cs
- AnnotationHelper.cs
- EFAssociationProvider.cs
- Border.cs
- XmlQualifiedNameTest.cs
- XmlExceptionHelper.cs
- GroupQuery.cs
- DocComment.cs
- Listbox.cs
- oledbmetadatacolumnnames.cs
- CompiledQueryCacheEntry.cs
- TextPatternIdentifiers.cs
- Vector3D.cs
- UITypeEditors.cs
- Helpers.cs
- ClassicBorderDecorator.cs
- ProcessManager.cs
- ItemCheckEvent.cs
- ManifestSignatureInformation.cs
- MediaTimeline.cs
- ColorBlend.cs
- ParameterReplacerVisitor.cs
- RegexTypeEditor.cs
- Adorner.cs
- DesignBindingConverter.cs