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
- Error.cs
- Helper.cs
- BitmapEffectGroup.cs
- ListSortDescription.cs
- BaseHashHelper.cs
- LoginView.cs
- StrongNameUtility.cs
- GregorianCalendar.cs
- SelectedDatesCollection.cs
- StorageEntitySetMapping.cs
- DataGridViewCellValueEventArgs.cs
- XmlCharCheckingReader.cs
- TcpTransportBindingElement.cs
- ModelPropertyDescriptor.cs
- PathSegmentCollection.cs
- MultitargetUtil.cs
- SQLGuidStorage.cs
- SqlGenerator.cs
- SynchronizedInputAdaptor.cs
- XamlWriter.cs
- KnownIds.cs
- FieldInfo.cs
- ToolStripScrollButton.cs
- ScalarConstant.cs
- ManagementObject.cs
- TextPenaltyModule.cs
- Socket.cs
- PrimaryKeyTypeConverter.cs
- HitTestParameters.cs
- CodeDomLocalizationProvider.cs
- FixUp.cs
- StrongNameMembershipCondition.cs
- TextContainerHelper.cs
- SettingsProviderCollection.cs
- ListViewAutomationPeer.cs
- ExpressionBuilderContext.cs
- ImageField.cs
- WebBrowserDesigner.cs
- OrderedDictionary.cs
- DeviceSpecificDesigner.cs
- Mapping.cs
- SmtpNegotiateAuthenticationModule.cs
- CqlQuery.cs
- ClientData.cs
- ExportException.cs
- ConfigurationStrings.cs
- GatewayIPAddressInformationCollection.cs
- OleDbWrapper.cs
- FlagsAttribute.cs
- CrossAppDomainChannel.cs
- RC2CryptoServiceProvider.cs
- AmbientProperties.cs
- ToggleProviderWrapper.cs
- ValueTable.cs
- SafeNativeMethods.cs
- WrappedIUnknown.cs
- ScrollBar.cs
- InputReport.cs
- MetadataCacheItem.cs
- HierarchicalDataBoundControlAdapter.cs
- ServiceX509SecurityTokenProvider.cs
- StateFinalizationActivity.cs
- NavigationWindowAutomationPeer.cs
- util.cs
- GridViewSelectEventArgs.cs
- ViewgenGatekeeper.cs
- _AcceptOverlappedAsyncResult.cs
- GlobalProxySelection.cs
- FixedDocumentSequencePaginator.cs
- TreeView.cs
- Quaternion.cs
- ExpressionPrefixAttribute.cs
- CallbackValidatorAttribute.cs
- Vertex.cs
- Form.cs
- HttpModulesSection.cs
- TdsParserStaticMethods.cs
- ThicknessKeyFrameCollection.cs
- WebPartVerbCollection.cs
- SelectingProviderEventArgs.cs
- MarkedHighlightComponent.cs
- InvokeAction.cs
- FontCacheUtil.cs
- ListControlActionList.cs
- DockPatternIdentifiers.cs
- SubordinateTransaction.cs
- StateMachineAction.cs
- sqlmetadatafactory.cs
- ToolStripItemTextRenderEventArgs.cs
- SqlCharStream.cs
- LazyInitializer.cs
- CellTreeNode.cs
- StringResourceManager.cs
- NumberSubstitution.cs
- Helpers.cs
- CompilerWrapper.cs
- HtmlHead.cs
- SizeChangedInfo.cs
- HijriCalendar.cs
- XmlSchemaAny.cs