Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Security / EncryptedKey.cs / 1 / EncryptedKey.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Security { using System.IO; using System.Security.Cryptography; using System.Text; using System.Xml; sealed class EncryptedKey : EncryptedType { internal static readonly XmlDictionaryString CarriedKeyElementName = XD.XmlEncryptionDictionary.CarriedKeyName; internal static readonly XmlDictionaryString ElementName = XD.XmlEncryptionDictionary.EncryptedKey; internal static readonly XmlDictionaryString RecipientAttribute = XD.XmlEncryptionDictionary.Recipient; string carriedKeyName; string recipient; ReferenceList referenceList; byte[] wrappedKey; public string CarriedKeyName { get { return this.carriedKeyName; } set { this.carriedKeyName = value; } } public string Recipient { get { return this.recipient; } set { this.recipient = value; } } public ReferenceList ReferenceList { get { return this.referenceList; } set { this.referenceList = value; } } protected override XmlDictionaryString OpeningElementName { get { return ElementName; } } protected override void ForceEncryption() { // no work to be done here since, unlike bulk encryption, key wrapping is done eagerly } public byte[] GetWrappedKey() { if (this.State == EncryptionState.New) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.BadEncryptionState))); } return this.wrappedKey; } public void SetUpKeyWrap(byte[] wrappedKey) { if (this.State != EncryptionState.New) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.BadEncryptionState))); } if (wrappedKey == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("wrappedKey"); } this.wrappedKey = wrappedKey; this.State = EncryptionState.Encrypted; } protected override void ReadAdditionalAttributes(XmlDictionaryReader reader) { this.recipient = reader.GetAttribute(RecipientAttribute, null); } protected override void ReadAdditionalElements(XmlDictionaryReader reader) { if (reader.IsStartElement(ReferenceList.ElementName, EncryptedType.NamespaceUri)) { this.referenceList = new ReferenceList(); this.referenceList.ReadFrom(reader); } if (reader.IsStartElement(CarriedKeyElementName, EncryptedType.NamespaceUri)) { reader.ReadStartElement(CarriedKeyElementName, EncryptedType.NamespaceUri); this.carriedKeyName = reader.ReadString(); reader.ReadEndElement(); } } protected override void ReadCipherData(XmlDictionaryReader reader) { this.wrappedKey = reader.ReadContentAsBase64(); } protected override void ReadCipherData(XmlDictionaryReader reader, long maxBufferSize) { this.wrappedKey = SecurityUtils.ReadContentAsBase64(reader, maxBufferSize); } protected override void WriteAdditionalAttributes(XmlDictionaryWriter writer) { if (this.recipient != null) { writer.WriteAttributeString(RecipientAttribute, null, this.recipient); } } protected override void WriteAdditionalElements(XmlDictionaryWriter writer) { if (this.carriedKeyName != null) { writer.WriteStartElement(CarriedKeyElementName, EncryptedType.NamespaceUri); writer.WriteString(this.carriedKeyName); writer.WriteEndElement(); // CarriedKeyName } if (this.referenceList != null) { this.referenceList.WriteTo(writer, ServiceModelDictionaryManager.Instance); } } protected override void WriteCipherData(XmlDictionaryWriter writer) { writer.WriteBase64(this.wrappedKey, 0, this.wrappedKey.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
- GZipStream.cs
- XmlLanguage.cs
- RubberbandSelector.cs
- SemanticResolver.cs
- EntityStoreSchemaFilterEntry.cs
- TraceProvider.cs
- WsatConfiguration.cs
- MembershipSection.cs
- ReceiveActivityValidator.cs
- ChameleonKey.cs
- ActiveXHelper.cs
- MdiWindowListItemConverter.cs
- RegexRunnerFactory.cs
- TraceFilter.cs
- ConfigurationLocationCollection.cs
- TcpAppDomainProtocolHandler.cs
- AnnotationComponentManager.cs
- AttributeEmitter.cs
- NumberFormatInfo.cs
- CachedRequestParams.cs
- XmlDocumentSurrogate.cs
- EntityDataSourceDesigner.cs
- MembershipUser.cs
- WebConfigurationHostFileChange.cs
- TreeNode.cs
- TableParaClient.cs
- FontSource.cs
- TextParentUndoUnit.cs
- DataTransferEventArgs.cs
- BlurBitmapEffect.cs
- HandoffBehavior.cs
- StringStorage.cs
- SequenceNumber.cs
- FontStretch.cs
- Grant.cs
- RectAnimationBase.cs
- ControlValuePropertyAttribute.cs
- PreservationFileWriter.cs
- NavigationProperty.cs
- TypeInitializationException.cs
- PartialCachingControl.cs
- LinkLabel.cs
- CompilerError.cs
- HttpModuleCollection.cs
- UnsafeNativeMethodsPenimc.cs
- DataGridRowEventArgs.cs
- DocumentXPathNavigator.cs
- DataServiceQueryOfT.cs
- LabelAutomationPeer.cs
- AspCompat.cs
- EncryptionUtility.cs
- TdsParser.cs
- SHA256.cs
- HttpEncoderUtility.cs
- IERequestCache.cs
- DESCryptoServiceProvider.cs
- ErrorHandler.cs
- ProcessInfo.cs
- CodeRemoveEventStatement.cs
- DataGridItemEventArgs.cs
- LogEntrySerializer.cs
- EndpointReference.cs
- ChameleonKey.cs
- ComponentResourceKeyConverter.cs
- ComplexBindingPropertiesAttribute.cs
- PagePropertiesChangingEventArgs.cs
- DiscoveryReferences.cs
- TreeView.cs
- AncillaryOps.cs
- EncodingStreamWrapper.cs
- DivideByZeroException.cs
- ScriptingRoleServiceSection.cs
- ListControlBoundActionList.cs
- PhysicalAddress.cs
- RootBrowserWindowAutomationPeer.cs
- MetadataArtifactLoaderFile.cs
- WsatServiceCertificate.cs
- PersistStreamTypeWrapper.cs
- ResourceContainer.cs
- PassportAuthenticationModule.cs
- UserPersonalizationStateInfo.cs
- DataObjectCopyingEventArgs.cs
- SmtpMail.cs
- AxHost.cs
- CommandBinding.cs
- SortedSet.cs
- TextDecorationUnitValidation.cs
- XmlDataCollection.cs
- RuntimeHandles.cs
- WindowsEditBoxRange.cs
- TimeoutValidationAttribute.cs
- PathFigureCollection.cs
- MenuCommands.cs
- BinarySerializer.cs
- safemediahandle.cs
- ClientSettingsSection.cs
- ObjectSet.cs
- StrokeRenderer.cs
- ISessionStateStore.cs
- WebPartHeaderCloseVerb.cs