Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Base / MS / Internal / IO / Packaging / PartManifestEntry.cs / 1 / PartManifestEntry.cs
//------------------------------------------------------------------------------ // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: // Simple struct for maintaining information of a Part found in an Xml signature manifest // // History: // 02/07/2005: BruceMac: Initial Implementation // 11/30/2005: BruceMac: Security Mitigations // //----------------------------------------------------------------------------- using System; using System.Diagnostics; using System.Collections.Generic; using System.Security.Cryptography; using System.Security.Cryptography.Xml; using System.Xml; using System.Windows; using System.IO.Packaging; using MS.Internal; namespace MS.Internal.IO.Packaging { ////// Represents parsed value for a single Part/Relationship entry in the Manifest /// internal struct PartManifestEntry { //----------------------------------------------------- // // Internal Properties // //----------------------------------------------------- // is this a relationship entry? internal bool IsRelationshipEntry { get { return _relationshipSelectors != null; } } internal Uri Uri { get { return _uri; } } internal ContentType ContentType { get { return _contentType; } } internal String HashAlgorithm { get { return _hashAlgorithm; } } internal String HashValue { get { return _hashValue; } } internal ListTransforms { get { return _transforms; } } internal List RelationshipSelectors { get { return _relationshipSelectors; } } // null if Part entry internal Uri OwningPartUri // only valid if IsRelationshipEntry { get { Debug.Assert(_owningPartUri != null, "Logic error: OwningPart is null on a non-Relationship entry"); return _owningPartUri; } } //------------------------------------------------------ // // Internal Methods // //----------------------------------------------------- /// /// Constructor /// /// part uri of part in question /// type of part /// digest method /// value of the hash calculation extracted from the signature Xml /// ordered transform list - may be null /// may be null but can never be empty internal PartManifestEntry(Uri uri, ContentType contentType, String hashAlgorithm, String hashValue, Listtransforms, List relationshipSelectors) { Invariant.Assert(uri != null); Invariant.Assert(contentType != null); Invariant.Assert(hashAlgorithm != null); _uri = uri; _contentType = contentType; _hashAlgorithm = hashAlgorithm; _hashValue = hashValue; _transforms = transforms; _relationshipSelectors = relationshipSelectors; _owningPartUri = null; if (_relationshipSelectors != null) { Invariant.Assert(relationshipSelectors.Count > 0); #if DEBUG Invariant.Assert(DoAllSelectorsHaveSameOwningPart(relationshipSelectors), "All relationship selectors should have same owningPart for a given part manifest"); #endif //Get owning Part uri from one of the relationship selectors _owningPartUri = relationshipSelectors[0].SourceUri; } } #if DEBUG private bool DoAllSelectorsHaveSameOwningPart(IEnumerable relationshipSelectors) { Uri owningPartUri = null; foreach (PackageRelationshipSelector selector in relationshipSelectors) { if (owningPartUri == null) { owningPartUri = selector.SourceUri; } else if (Uri.Compare(owningPartUri, selector.SourceUri, UriComponents.SerializationInfoString, UriFormat.UriEscaped, StringComparison.Ordinal) != 0 ) return false; } return true; } #endif //------------------------------------------------------ // // Private Fields // //------------------------------------------------------ private Uri _owningPartUri; // owing part if this is a Relationship Uri private Uri _uri; private ContentType _contentType; private String _hashAlgorithm; private String _hashValue; private List _transforms; private List _relationshipSelectors; // null if this is a Part } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------ // // // Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: // Simple struct for maintaining information of a Part found in an Xml signature manifest // // History: // 02/07/2005: BruceMac: Initial Implementation // 11/30/2005: BruceMac: Security Mitigations // //----------------------------------------------------------------------------- using System; using System.Diagnostics; using System.Collections.Generic; using System.Security.Cryptography; using System.Security.Cryptography.Xml; using System.Xml; using System.Windows; using System.IO.Packaging; using MS.Internal; namespace MS.Internal.IO.Packaging { ////// Represents parsed value for a single Part/Relationship entry in the Manifest /// internal struct PartManifestEntry { //----------------------------------------------------- // // Internal Properties // //----------------------------------------------------- // is this a relationship entry? internal bool IsRelationshipEntry { get { return _relationshipSelectors != null; } } internal Uri Uri { get { return _uri; } } internal ContentType ContentType { get { return _contentType; } } internal String HashAlgorithm { get { return _hashAlgorithm; } } internal String HashValue { get { return _hashValue; } } internal ListTransforms { get { return _transforms; } } internal List RelationshipSelectors { get { return _relationshipSelectors; } } // null if Part entry internal Uri OwningPartUri // only valid if IsRelationshipEntry { get { Debug.Assert(_owningPartUri != null, "Logic error: OwningPart is null on a non-Relationship entry"); return _owningPartUri; } } //------------------------------------------------------ // // Internal Methods // //----------------------------------------------------- /// /// Constructor /// /// part uri of part in question /// type of part /// digest method /// value of the hash calculation extracted from the signature Xml /// ordered transform list - may be null /// may be null but can never be empty internal PartManifestEntry(Uri uri, ContentType contentType, String hashAlgorithm, String hashValue, Listtransforms, List relationshipSelectors) { Invariant.Assert(uri != null); Invariant.Assert(contentType != null); Invariant.Assert(hashAlgorithm != null); _uri = uri; _contentType = contentType; _hashAlgorithm = hashAlgorithm; _hashValue = hashValue; _transforms = transforms; _relationshipSelectors = relationshipSelectors; _owningPartUri = null; if (_relationshipSelectors != null) { Invariant.Assert(relationshipSelectors.Count > 0); #if DEBUG Invariant.Assert(DoAllSelectorsHaveSameOwningPart(relationshipSelectors), "All relationship selectors should have same owningPart for a given part manifest"); #endif //Get owning Part uri from one of the relationship selectors _owningPartUri = relationshipSelectors[0].SourceUri; } } #if DEBUG private bool DoAllSelectorsHaveSameOwningPart(IEnumerable relationshipSelectors) { Uri owningPartUri = null; foreach (PackageRelationshipSelector selector in relationshipSelectors) { if (owningPartUri == null) { owningPartUri = selector.SourceUri; } else if (Uri.Compare(owningPartUri, selector.SourceUri, UriComponents.SerializationInfoString, UriFormat.UriEscaped, StringComparison.Ordinal) != 0 ) return false; } return true; } #endif //------------------------------------------------------ // // Private Fields // //------------------------------------------------------ private Uri _owningPartUri; // owing part if this is a Relationship Uri private Uri _uri; private ContentType _contentType; private String _hashAlgorithm; private String _hashValue; private List _transforms; private List _relationshipSelectors; // null if this is a Part } } // 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
- SiteMapHierarchicalDataSourceView.cs
- MSG.cs
- HTMLTagNameToTypeMapper.cs
- PaintValueEventArgs.cs
- Parameter.cs
- AutoGeneratedFieldProperties.cs
- ReferenceSchema.cs
- DrawingGroupDrawingContext.cs
- WebPartConnectionsCancelEventArgs.cs
- ManifestSignatureInformation.cs
- CommandHelper.cs
- SafeFileMapViewHandle.cs
- AppSettingsSection.cs
- Size3DConverter.cs
- DiscoveryVersionConverter.cs
- CodeDirectionExpression.cs
- MailSettingsSection.cs
- bidPrivateBase.cs
- CharEntityEncoderFallback.cs
- DataServiceHostFactory.cs
- XmlSchemaAttributeGroup.cs
- SqlRecordBuffer.cs
- WebZone.cs
- ConfigurationElementCollection.cs
- X509SecurityTokenAuthenticator.cs
- InternalDuplexChannelListener.cs
- TableRow.cs
- XmlSerializer.cs
- PassportIdentity.cs
- InputLanguageProfileNotifySink.cs
- SmiEventSink_Default.cs
- SslStreamSecurityElement.cs
- Point3DCollection.cs
- cookieexception.cs
- BorderGapMaskConverter.cs
- AtomPub10ServiceDocumentFormatter.cs
- ExpressionList.cs
- DbReferenceCollection.cs
- CreateUserWizardStep.cs
- LocalBuilder.cs
- PageCatalogPartDesigner.cs
- SqlCrossApplyToCrossJoin.cs
- AuthorizationPolicyTypeElement.cs
- CryptoApi.cs
- ReaderWriterLockSlim.cs
- AffineTransform3D.cs
- ScriptDescriptor.cs
- ObjectItemAttributeAssemblyLoader.cs
- CanExecuteRoutedEventArgs.cs
- Calendar.cs
- ReadOnlyDataSourceView.cs
- DataContractSerializerMessageContractImporter.cs
- Operand.cs
- CorruptStoreException.cs
- EntityDataSourceWizardForm.cs
- DataGridPageChangedEventArgs.cs
- ExtendedPropertyDescriptor.cs
- RtfToXamlLexer.cs
- TransformValueSerializer.cs
- XmlException.cs
- PixelFormatConverter.cs
- StaticFileHandler.cs
- ObjectListDesigner.cs
- NamespaceInfo.cs
- SimpleRecyclingCache.cs
- WebAdminConfigurationHelper.cs
- OutputCacheSettingsSection.cs
- _NetRes.cs
- IWorkflowDebuggerService.cs
- ReceiveMessageContent.cs
- JournalEntry.cs
- EventArgs.cs
- EventLogTraceListener.cs
- ParallelDesigner.cs
- Version.cs
- Comparer.cs
- MethodBody.cs
- ScaleTransform3D.cs
- TemplateBuilder.cs
- DocumentProperties.cs
- Viewport3DAutomationPeer.cs
- FilteredReadOnlyMetadataCollection.cs
- EntityAdapter.cs
- ProjectionAnalyzer.cs
- RuntimeEnvironment.cs
- RSACryptoServiceProvider.cs
- UrlUtility.cs
- ImplicitInputBrush.cs
- ConfigurationStrings.cs
- TagNameToTypeMapper.cs
- ActivityStatusChangeEventArgs.cs
- ToolStripPanelRenderEventArgs.cs
- _FtpDataStream.cs
- MessageQueueConverter.cs
- WinFormsSecurity.cs
- TypeUtil.cs
- ListViewHitTestInfo.cs
- WSDualHttpSecurity.cs
- ExcCanonicalXml.cs
- Timeline.cs