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
- SettingsAttributes.cs
- DockAndAnchorLayout.cs
- StringToken.cs
- Win32SafeHandles.cs
- ControlSerializer.cs
- MethodCallConverter.cs
- Msmq3PoisonHandler.cs
- Imaging.cs
- ExtensionSimplifierMarkupObject.cs
- EntitySetBaseCollection.cs
- CompoundFileStorageReference.cs
- WinCategoryAttribute.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- FloaterBaseParaClient.cs
- TargetControlTypeAttribute.cs
- BinaryFormatter.cs
- XamlStyleSerializer.cs
- SqlAliasesReferenced.cs
- TransformConverter.cs
- IdentityReference.cs
- FormatException.cs
- KeyFrames.cs
- AstTree.cs
- Renderer.cs
- ToolStripControlHost.cs
- Scene3D.cs
- SymLanguageVendor.cs
- Int32KeyFrameCollection.cs
- DrawingBrush.cs
- SourceItem.cs
- PropertyGrid.cs
- ModuleBuilderData.cs
- CompositeTypefaceMetrics.cs
- EnvelopedSignatureTransform.cs
- WindowsFormsEditorServiceHelper.cs
- AtomEntry.cs
- DataSourceControlBuilder.cs
- OleDbDataAdapter.cs
- NextPreviousPagerField.cs
- ContentTextAutomationPeer.cs
- TypeSource.cs
- Convert.cs
- TextCompositionManager.cs
- UidManager.cs
- HttpCapabilitiesEvaluator.cs
- AttributeCollection.cs
- DeviceContexts.cs
- RowToParametersTransformer.cs
- InvalidWorkflowException.cs
- WmfPlaceableFileHeader.cs
- _SafeNetHandles.cs
- EntityCollection.cs
- FormatVersion.cs
- QueryContinueDragEventArgs.cs
- PasswordRecoveryAutoFormat.cs
- Source.cs
- FileUtil.cs
- DispatcherExceptionEventArgs.cs
- sqlnorm.cs
- AbstractExpressions.cs
- ConstraintManager.cs
- PolyBezierSegment.cs
- WebPart.cs
- XmlChildNodes.cs
- AppDomainCompilerProxy.cs
- MultiplexingDispatchMessageFormatter.cs
- DefaultValueAttribute.cs
- StrongNameKeyPair.cs
- ImageConverter.cs
- ContextMenuStripGroup.cs
- TextEvent.cs
- AsyncPostBackErrorEventArgs.cs
- ParsedAttributeCollection.cs
- PropertyOverridesTypeEditor.cs
- Int32CAMarshaler.cs
- BulletedListEventArgs.cs
- sqlcontext.cs
- UpdateTranslator.cs
- ThicknessAnimation.cs
- ListItemDetailViewAttribute.cs
- ConfigurationLocation.cs
- HttpConfigurationSystem.cs
- ConfigUtil.cs
- ProcessingInstructionAction.cs
- ParameterBuilder.cs
- HMACMD5.cs
- InstanceDataCollectionCollection.cs
- NumberSubstitution.cs
- RefreshPropertiesAttribute.cs
- CompositeCollection.cs
- HashAlgorithm.cs
- SrgsItemList.cs
- PageAsyncTaskManager.cs
- SqlClientWrapperSmiStreamChars.cs
- PathFigureCollection.cs
- TailCallAnalyzer.cs
- UxThemeWrapper.cs
- EditorZone.cs
- EventLogPermissionEntry.cs
- SqlCommandSet.cs