Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Security / EncryptedData.cs / 1 / EncryptedData.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Security { using System.Security.Cryptography; using System.ServiceModel.Channels; using System.Xml; class EncryptedData : EncryptedType { internal static readonly XmlDictionaryString ElementName = XD.XmlEncryptionDictionary.EncryptedData; internal static readonly string ElementType = XmlEncryptionStrings.ElementType; internal static readonly string ContentType = XmlEncryptionStrings.ContentType; SymmetricAlgorithm algorithm; byte[] decryptedBuffer; ArraySegmentbuffer; byte[] iv; byte[] cipherText; protected override XmlDictionaryString OpeningElementName { get { return ElementName; } } void EnsureDecryptionSet() { if (this.State == EncryptionState.DecryptionSetup) { SetPlainText(); } else if (this.State != EncryptionState.Decrypted) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new MessageSecurityException(SR.GetString(SR.BadEncryptionState))); } } protected override void ForceEncryption() { CryptoHelper.GenerateIVAndEncrypt(this.algorithm, this.buffer, out this.iv, out this.cipherText); this.State = EncryptionState.Encrypted; this.buffer = new ArraySegment (CryptoHelper.EmptyBuffer); } public byte[] GetDecryptedBuffer() { EnsureDecryptionSet(); return this.decryptedBuffer; } protected override void ReadCipherData(XmlDictionaryReader reader) { this.cipherText = reader.ReadContentAsBase64(); } protected override void ReadCipherData(XmlDictionaryReader reader, long maxBufferSize) { this.cipherText = SecurityUtils.ReadContentAsBase64(reader, maxBufferSize); } void SetPlainText() { this.decryptedBuffer = CryptoHelper.ExtractIVAndDecrypt(this.algorithm, this.cipherText, 0, this.cipherText.Length); this.State = EncryptionState.Decrypted; } public void SetUpDecryption(SymmetricAlgorithm algorithm) { if (this.State != EncryptionState.Read) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new MessageSecurityException(SR.GetString(SR.BadEncryptionState))); } if (algorithm == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("algorithm"); } this.algorithm = algorithm; this.State = EncryptionState.DecryptionSetup; } public void SetUpEncryption(SymmetricAlgorithm algorithm, ArraySegment buffer) { if (this.State != EncryptionState.New) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new MessageSecurityException(SR.GetString(SR.BadEncryptionState))); } if (algorithm == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("algorithm"); } this.algorithm = algorithm; this.buffer = buffer; this.State = EncryptionState.EncryptionSetup; } protected override void WriteCipherData(XmlDictionaryWriter writer) { writer.WriteBase64(this.iv, 0, this.iv.Length); writer.WriteBase64(this.cipherText, 0, this.cipherText.Length); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DataGridRowDetailsEventArgs.cs
- TextTreeUndo.cs
- InputLanguage.cs
- SqlCachedBuffer.cs
- NavigationPropertySingletonExpression.cs
- SubclassTypeValidatorAttribute.cs
- ItemCollectionEditor.cs
- AmbientProperties.cs
- StringComparer.cs
- SourceCollection.cs
- MonitoringDescriptionAttribute.cs
- infer.cs
- FileReader.cs
- BoundColumn.cs
- XmlSchemaAny.cs
- OdbcErrorCollection.cs
- ObjectListGeneralPage.cs
- TextProperties.cs
- RSATokenProvider.cs
- PopupEventArgs.cs
- ComplexTypeEmitter.cs
- EntityModelSchemaGenerator.cs
- DisplayInformation.cs
- CompositeFontInfo.cs
- SoapAttributes.cs
- GlobalItem.cs
- EntitySetBaseCollection.cs
- TextBoxBase.cs
- TreeWalker.cs
- ExpressionBuilder.cs
- TextPattern.cs
- DataGridViewColumn.cs
- Cursor.cs
- WebPartUtil.cs
- BrowserCapabilitiesFactoryBase.cs
- StorageRoot.cs
- StatusBarDesigner.cs
- AccessDataSourceView.cs
- CodeAccessSecurityEngine.cs
- XmlKeywords.cs
- ImageKeyConverter.cs
- ToolStripItemDataObject.cs
- ProviderBase.cs
- SocketPermission.cs
- SelectionPattern.cs
- EntityClassGenerator.cs
- BitStream.cs
- RegisteredScript.cs
- LinqDataSource.cs
- SelectionEditor.cs
- SweepDirectionValidation.cs
- Hyperlink.cs
- TrustManager.cs
- SQLGuid.cs
- DesignerGenericWebPart.cs
- Variable.cs
- SqlXml.cs
- SettingsAttributes.cs
- CollectionViewProxy.cs
- QueryReaderSettings.cs
- TagPrefixCollection.cs
- CalendarKeyboardHelper.cs
- GeneralTransform3DTo2D.cs
- PointConverter.cs
- IFlowDocumentViewer.cs
- BehaviorEditorPart.cs
- PartialCachingAttribute.cs
- Style.cs
- NonVisualControlAttribute.cs
- TraceData.cs
- RenderTargetBitmap.cs
- SafeHandle.cs
- Add.cs
- DataGridViewSelectedCellCollection.cs
- FeedUtils.cs
- LineBreak.cs
- SafeCoTaskMem.cs
- StorageMappingItemLoader.cs
- DBCommandBuilder.cs
- WCFServiceClientProxyGenerator.cs
- XamlSerializationHelper.cs
- RowParagraph.cs
- StoragePropertyMapping.cs
- DefaultBinder.cs
- ServicePoint.cs
- AssemblyCollection.cs
- DetailsViewModeEventArgs.cs
- SID.cs
- DBConnection.cs
- DataGridTablesFactory.cs
- ControlAdapter.cs
- PopOutPanel.cs
- RegisteredExpandoAttribute.cs
- DataRelationCollection.cs
- _UriTypeConverter.cs
- TypeForwardedToAttribute.cs
- KeysConverter.cs
- CacheManager.cs
- TextDecorations.cs
- StringToken.cs