Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / ManagedLibraries / Security / System / Security / Cryptography / Xml / CipherData.cs / 1305376 / CipherData.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== //[....] // // // CipherData.cs // // This object implements the CipherData element. // // 04/01/2001 // namespace System.Security.Cryptography.Xml { using System; using System.Collections; using System.Xml; [System.Security.Permissions.HostProtection(MayLeakOnAbort = true)] public sealed class CipherData { private XmlElement m_cachedXml = null; private CipherReference m_cipherReference = null; private byte[] m_cipherValue = null; public CipherData () {} public CipherData (byte[] cipherValue) { this.CipherValue = cipherValue; } public CipherData (CipherReference cipherReference) { this.CipherReference = cipherReference; } private bool CacheValid { get { return (m_cachedXml != null); } } public CipherReference CipherReference { get { return m_cipherReference; } set { if (value == null) throw new ArgumentNullException("value"); if (this.CipherValue != null) throw new CryptographicException(SecurityResources.GetResourceString("Cryptography_Xml_CipherValueElementRequired")); m_cipherReference = value; m_cachedXml = null; } } public byte[] CipherValue { get { return m_cipherValue; } set { if (value == null) throw new ArgumentNullException("value"); if (this.CipherReference != null) throw new CryptographicException(SecurityResources.GetResourceString("Cryptography_Xml_CipherValueElementRequired")); m_cipherValue = (byte[]) value.Clone(); m_cachedXml = null; } } public XmlElement GetXml () { if (CacheValid) return m_cachedXml; XmlDocument document = new XmlDocument(); document.PreserveWhitespace = true; return GetXml(document); } internal XmlElement GetXml (XmlDocument document) { // Create the CipherData element XmlElement cipherDataElement = (XmlElement)document.CreateElement("CipherData", EncryptedXml.XmlEncNamespaceUrl); if (CipherValue != null) { XmlElement cipherValueElement = document.CreateElement("CipherValue", EncryptedXml.XmlEncNamespaceUrl); cipherValueElement.AppendChild(document.CreateTextNode(Convert.ToBase64String(CipherValue))); cipherDataElement.AppendChild(cipherValueElement); } else { // No CipherValue specified, see if there is a CipherReference if (CipherReference == null) throw new CryptographicException(SecurityResources.GetResourceString("Cryptography_Xml_CipherValueElementRequired")); cipherDataElement.AppendChild(CipherReference.GetXml(document)); } return cipherDataElement; } public void LoadXml (XmlElement value) { if (value == null) throw new ArgumentNullException("value"); XmlNamespaceManager nsm = new XmlNamespaceManager(value.OwnerDocument.NameTable); nsm.AddNamespace("enc", EncryptedXml.XmlEncNamespaceUrl); XmlNode cipherValueNode = value.SelectSingleNode("enc:CipherValue", nsm); XmlNode cipherReferenceNode = value.SelectSingleNode("enc:CipherReference", nsm); if (cipherValueNode != null) { if (cipherReferenceNode != null) throw new CryptographicException(SecurityResources.GetResourceString("Cryptography_Xml_CipherValueElementRequired")); m_cipherValue = Convert.FromBase64String(Utils.DiscardWhiteSpaces(cipherValueNode.InnerText)); } else if (cipherReferenceNode != null) { m_cipherReference = new CipherReference(); m_cipherReference.LoadXml((XmlElement) cipherReferenceNode); } else { throw new CryptographicException(SecurityResources.GetResourceString("Cryptography_Xml_CipherValueElementRequired")); } // Save away the cached value m_cachedXml = value; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- AsymmetricSignatureDeformatter.cs
- UserInitiatedNavigationPermission.cs
- ActiveXHost.cs
- DesignerLabelAdapter.cs
- ChildDocumentBlock.cs
- XmlMemberMapping.cs
- XmlNamespaceMappingCollection.cs
- ClientTargetCollection.cs
- DBNull.cs
- StorageEntityContainerMapping.cs
- SoapHeader.cs
- DispatchWrapper.cs
- SortableBindingList.cs
- BidPrivateBase.cs
- SqlXml.cs
- XsltFunctions.cs
- X509CertificateCollection.cs
- DeviceSpecificChoice.cs
- Model3DGroup.cs
- PlanCompilerUtil.cs
- PrimitiveXmlSerializers.cs
- AVElementHelper.cs
- XsltOutput.cs
- CapacityStreamGeometryContext.cs
- BamlResourceDeserializer.cs
- ProxyHelper.cs
- IPEndPoint.cs
- Missing.cs
- SignedXml.cs
- ServiceAppDomainAssociationProvider.cs
- datacache.cs
- PageRouteHandler.cs
- CodeBlockBuilder.cs
- DataListItem.cs
- CultureMapper.cs
- ReachDocumentReferenceCollectionSerializerAsync.cs
- ClientTarget.cs
- FusionWrap.cs
- ThreadStartException.cs
- SqlProvider.cs
- Resources.Designer.cs
- ConstructorNeedsTagAttribute.cs
- TypeUsageBuilder.cs
- ReflectPropertyDescriptor.cs
- Claim.cs
- OpCodes.cs
- CircleHotSpot.cs
- CodeTypeReference.cs
- HttpFileCollection.cs
- IgnoreDeviceFilterElementCollection.cs
- XamlPoint3DCollectionSerializer.cs
- GradientStop.cs
- Perspective.cs
- NamespaceMapping.cs
- TableProviderWrapper.cs
- LinqToSqlWrapper.cs
- DbConnectionPoolGroupProviderInfo.cs
- EncryptedPackage.cs
- TypeSource.cs
- CodeDesigner.cs
- CalendarTable.cs
- TableLayoutRowStyleCollection.cs
- DtrList.cs
- FlowPosition.cs
- XamlReaderHelper.cs
- ConvertEvent.cs
- DataTransferEventArgs.cs
- GridViewColumnCollection.cs
- InputProcessorProfilesLoader.cs
- TreeNodeSelectionProcessor.cs
- IApplicationTrustManager.cs
- XamlRtfConverter.cs
- DataComponentGenerator.cs
- XmlnsDictionary.cs
- ForeignKeyConstraint.cs
- FormConverter.cs
- ObjectHelper.cs
- DataGridColumnEventArgs.cs
- DocumentXmlWriter.cs
- DataGridCommandEventArgs.cs
- ComponentChangedEvent.cs
- SamlSecurityTokenAuthenticator.cs
- DbParameterCollectionHelper.cs
- CodeBlockBuilder.cs
- DataViewSettingCollection.cs
- StateDesigner.CommentLayoutGlyph.cs
- WebPartCancelEventArgs.cs
- ProxyFragment.cs
- DoubleUtil.cs
- CodeTypeReference.cs
- AxHost.cs
- GregorianCalendar.cs
- BrowserCapabilitiesCodeGenerator.cs
- Stroke2.cs
- PrintDialog.cs
- uribuilder.cs
- LiteralDesigner.cs
- ManipulationInertiaStartingEventArgs.cs
- Thread.cs
- CodeAttachEventStatement.cs