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
- ScaleTransform3D.cs
- ConfigurationConverterBase.cs
- ByteConverter.cs
- SmtpNtlmAuthenticationModule.cs
- ExpressionsCollectionConverter.cs
- ConfigurationConverterBase.cs
- ViewManager.cs
- PenContexts.cs
- TableLayoutPanelCellPosition.cs
- ListViewPagedDataSource.cs
- FolderBrowserDialog.cs
- ReliabilityContractAttribute.cs
- RowSpanVector.cs
- bindurihelper.cs
- GPPOINT.cs
- ScopelessEnumAttribute.cs
- DateTimeFormat.cs
- Registration.cs
- EndPoint.cs
- FormatException.cs
- FixedTextPointer.cs
- EntityConnection.cs
- FontSource.cs
- URLIdentityPermission.cs
- SemanticAnalyzer.cs
- CodeObject.cs
- VisualStyleRenderer.cs
- ToolTipService.cs
- ArrayList.cs
- PlatformNotSupportedException.cs
- BitmapEffectCollection.cs
- SplineKeyFrames.cs
- Quad.cs
- ObjectViewFactory.cs
- LinkTarget.cs
- AdRotator.cs
- XmlSerializableWriter.cs
- TypeForwardedToAttribute.cs
- WCFServiceClientProxyGenerator.cs
- Model3D.cs
- ContentElement.cs
- CodeTypeDeclaration.cs
- sqlpipe.cs
- ReadOnlyDataSourceView.cs
- TextBox.cs
- ParameterModifier.cs
- InternalEnumValidatorAttribute.cs
- TabItem.cs
- PropertyGeneratedEventArgs.cs
- ProviderBase.cs
- TreeViewDataItemAutomationPeer.cs
- StringFormat.cs
- FormatSettings.cs
- HttpWebResponse.cs
- HMACSHA256.cs
- base64Transforms.cs
- PasswordBoxAutomationPeer.cs
- ServiceBusyException.cs
- RegistryDataKey.cs
- IssuanceLicense.cs
- QueryComponents.cs
- ToolStripProgressBar.cs
- TryCatchDesigner.xaml.cs
- DetailsViewUpdateEventArgs.cs
- Win32PrintDialog.cs
- CodeMemberEvent.cs
- SimplePropertyEntry.cs
- MimeTypePropertyAttribute.cs
- StructuralType.cs
- ProfileGroupSettingsCollection.cs
- CallbackHandler.cs
- ContextBase.cs
- MissingMemberException.cs
- DesignerView.cs
- XamlWriter.cs
- HttpException.cs
- Speller.cs
- InputMethodStateTypeInfo.cs
- ScriptHandlerFactory.cs
- SHA1Managed.cs
- FreeFormDesigner.cs
- AVElementHelper.cs
- SafeSecurityHandles.cs
- DocumentReference.cs
- VoiceChangeEventArgs.cs
- StylusDownEventArgs.cs
- UxThemeWrapper.cs
- ResourceType.cs
- ErrorItem.cs
- ExtenderProvidedPropertyAttribute.cs
- CompositeCollectionView.cs
- AutoScrollHelper.cs
- ApplicationManager.cs
- OleCmdHelper.cs
- ProtectedConfiguration.cs
- RadioButtonList.cs
- SimpleLine.cs
- DbConnectionPoolGroupProviderInfo.cs
- FolderLevelBuildProvider.cs
- FormCollection.cs