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
- EFTableProvider.cs
- TextTreeNode.cs
- documentsequencetextcontainer.cs
- FontStretches.cs
- COM2IVsPerPropertyBrowsingHandler.cs
- ProgressBarAutomationPeer.cs
- TextDecorationUnitValidation.cs
- ACL.cs
- SourceLineInfo.cs
- Root.cs
- WorkerRequest.cs
- VisualStyleTypesAndProperties.cs
- PersianCalendar.cs
- ActiveXHost.cs
- DataContractAttribute.cs
- InkCanvasFeedbackAdorner.cs
- AuthenticatedStream.cs
- LabelDesigner.cs
- FunctionParameter.cs
- DataView.cs
- CollectionTypeElement.cs
- PageRanges.cs
- MenuItemBinding.cs
- FixedDocumentPaginator.cs
- FactoryId.cs
- EntityDataSourceWrapperCollection.cs
- OdbcConnectionPoolProviderInfo.cs
- CLSCompliantAttribute.cs
- EventlogProvider.cs
- GifBitmapEncoder.cs
- NonSerializedAttribute.cs
- IODescriptionAttribute.cs
- DataTableExtensions.cs
- XmlTextEncoder.cs
- CapabilitiesPattern.cs
- MouseButtonEventArgs.cs
- LinqDataSourceContextEventArgs.cs
- Crc32.cs
- CustomErrorsSection.cs
- TdsEnums.cs
- CheckBoxStandardAdapter.cs
- HGlobalSafeHandle.cs
- MdbDataFileEditor.cs
- BorderGapMaskConverter.cs
- CommandEventArgs.cs
- UshortList2.cs
- MethodExpr.cs
- LinkButton.cs
- DockPanel.cs
- MediaElementAutomationPeer.cs
- CancellationHandler.cs
- ProviderConnectionPoint.cs
- HttpResponseWrapper.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- ViewLoader.cs
- CodeMemberProperty.cs
- ListViewDeleteEventArgs.cs
- BrowserCapabilitiesFactoryBase.cs
- URLMembershipCondition.cs
- PnrpPeerResolverElement.cs
- DesignerActionItem.cs
- EntityContainerEmitter.cs
- DataGridViewTextBoxEditingControl.cs
- AuthenticatingEventArgs.cs
- TextCompositionEventArgs.cs
- ListView.cs
- HtmlInputText.cs
- DefaultPropertiesToSend.cs
- PropertyGroupDescription.cs
- BrushValueSerializer.cs
- ValueQuery.cs
- SmtpReplyReader.cs
- RegexMatchCollection.cs
- DataGridClipboardCellContent.cs
- ProcessHostFactoryHelper.cs
- PropertyCollection.cs
- FtpRequestCacheValidator.cs
- VisualStateManager.cs
- SupportsEventValidationAttribute.cs
- XmlArrayItemAttributes.cs
- RTLAwareMessageBox.cs
- ResourcePropertyMemberCodeDomSerializer.cs
- SelectedCellsChangedEventArgs.cs
- CompositeFontParser.cs
- ProtocolsConfigurationEntry.cs
- HealthMonitoringSectionHelper.cs
- StrokeRenderer.cs
- GregorianCalendarHelper.cs
- ProviderCommandInfoUtils.cs
- FixedBufferAttribute.cs
- EncryptedKeyHashIdentifierClause.cs
- XpsFont.cs
- UInt32.cs
- XmlSchemaProviderAttribute.cs
- RelatedCurrencyManager.cs
- TransferRequestHandler.cs
- RelationshipSet.cs
- ZipFileInfo.cs
- RecognizedPhrase.cs
- safesecurityhelperavalon.cs