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
- EntityDataSourceState.cs
- OdbcPermission.cs
- BulletedListEventArgs.cs
- ZipIOLocalFileHeader.cs
- ImageIndexConverter.cs
- SpotLight.cs
- HMACSHA256.cs
- IPHostEntry.cs
- Point3DAnimationUsingKeyFrames.cs
- IChannel.cs
- RequestCachePolicy.cs
- MenuTracker.cs
- DeferrableContentConverter.cs
- RelationshipEndCollection.cs
- WebPartCancelEventArgs.cs
- FragmentQueryKB.cs
- ObjectStateEntryDbDataRecord.cs
- StyleHelper.cs
- FastEncoderWindow.cs
- CodeDomLocalizationProvider.cs
- bindurihelper.cs
- RelationshipSet.cs
- ResourceContainer.cs
- DateTimeParse.cs
- SqlMethodTransformer.cs
- RetrieveVirtualItemEventArgs.cs
- ErrorFormatter.cs
- InstanceCreationEditor.cs
- CmsInterop.cs
- ListItemCollection.cs
- Common.cs
- ListenerAdapter.cs
- ActivityDesignerResources.cs
- ITextView.cs
- TypeUtil.cs
- RectangleGeometry.cs
- TagMapCollection.cs
- SiteOfOriginPart.cs
- DataSourceExpression.cs
- CroppedBitmap.cs
- DbConnectionPoolGroup.cs
- BitmapEffectRenderDataResource.cs
- Effect.cs
- FixedFlowMap.cs
- FormViewUpdatedEventArgs.cs
- OleDbWrapper.cs
- MessageQueueConverter.cs
- TimeSpanMinutesConverter.cs
- XsltContext.cs
- IncomingWebResponseContext.cs
- OdbcConnection.cs
- MaterialGroup.cs
- XmlSchemas.cs
- MetadataItem_Static.cs
- TypeFieldSchema.cs
- SourceSwitch.cs
- DataGridViewRowPostPaintEventArgs.cs
- FilterableAttribute.cs
- BrowsableAttribute.cs
- TitleStyle.cs
- DataGridTableCollection.cs
- Drawing.cs
- ListChangedEventArgs.cs
- SqlMethods.cs
- DBSqlParser.cs
- Schema.cs
- ApplicationHost.cs
- SqlColumnizer.cs
- TextTreeTextBlock.cs
- NamespaceInfo.cs
- ThrowHelper.cs
- CellLabel.cs
- CompositeDesignerAccessibleObject.cs
- OleDbPropertySetGuid.cs
- StyleModeStack.cs
- FontCacheLogic.cs
- ToolStrip.cs
- TreeBuilderBamlTranslator.cs
- FilterInvalidBodyAccessException.cs
- Main.cs
- COM2Enum.cs
- ResourcePool.cs
- RequestCacheEntry.cs
- FloaterBaseParaClient.cs
- DelegatingTypeDescriptionProvider.cs
- WindowsTokenRoleProvider.cs
- XmlHelper.cs
- SettingsPropertyNotFoundException.cs
- SparseMemoryStream.cs
- InternalTransaction.cs
- PointAnimationBase.cs
- SiteMapDataSourceView.cs
- IsolatedStorageFilePermission.cs
- DataBindingExpressionBuilder.cs
- IImplicitResourceProvider.cs
- XamlPathDataSerializer.cs
- RightsDocument.cs
- MulticastDelegate.cs
- SmtpFailedRecipientException.cs
- ElementAction.cs