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
- AnnotationAuthorChangedEventArgs.cs
- ResXResourceReader.cs
- CapabilitiesAssignment.cs
- Pair.cs
- EpmCustomContentWriterNodeData.cs
- FileLoadException.cs
- DocumentPageViewAutomationPeer.cs
- UInt64Converter.cs
- MobileControl.cs
- StyleCollection.cs
- Overlapped.cs
- AbandonedMutexException.cs
- SerializableTypeCodeDomSerializer.cs
- ControlBuilderAttribute.cs
- DataGridViewRowConverter.cs
- ResourcesBuildProvider.cs
- embossbitmapeffect.cs
- TableLayoutPanelCellPosition.cs
- TimelineClockCollection.cs
- GlyphCollection.cs
- XmlUtil.cs
- SerializableTypeCodeDomSerializer.cs
- ManualResetEvent.cs
- EntitySetBaseCollection.cs
- MachineKeyConverter.cs
- GAC.cs
- BufferedStream.cs
- IdnElement.cs
- ProbeDuplex11AsyncResult.cs
- MD5CryptoServiceProvider.cs
- TaskForm.cs
- RegisteredScript.cs
- WindowInteractionStateTracker.cs
- GridViewDesigner.cs
- Highlights.cs
- MetadataUtil.cs
- ComboBoxRenderer.cs
- DataGridCellClipboardEventArgs.cs
- WeakReferenceEnumerator.cs
- DecimalKeyFrameCollection.cs
- DynamicDataRoute.cs
- IRCollection.cs
- SqlProviderManifest.cs
- Style.cs
- LabelDesigner.cs
- WrappedDispatcherException.cs
- DTCTransactionManager.cs
- SqlTrackingService.cs
- CssTextWriter.cs
- XmlTextReaderImplHelpers.cs
- TextServicesContext.cs
- SmiConnection.cs
- IntSecurity.cs
- DataStreams.cs
- PopOutPanel.cs
- BaseDataBoundControl.cs
- StreamGeometryContext.cs
- querybuilder.cs
- WebPartConnectionsCancelVerb.cs
- Transactions.cs
- SlotInfo.cs
- XmlSchemaException.cs
- BuildManagerHost.cs
- LabelExpression.cs
- FileSystemWatcher.cs
- RecommendedAsConfigurableAttribute.cs
- BaseInfoTable.cs
- Translator.cs
- Switch.cs
- ReachSerializer.cs
- ConfigurationValues.cs
- XmlLanguage.cs
- adornercollection.cs
- DetailsViewInsertEventArgs.cs
- DeobfuscatingStream.cs
- XmlQualifiedName.cs
- configsystem.cs
- IndexedSelectQueryOperator.cs
- PropertyChangedEventArgs.cs
- IisTraceListener.cs
- FontUnit.cs
- RoleGroupCollection.cs
- SmtpLoginAuthenticationModule.cs
- InlineObject.cs
- Stylesheet.cs
- LinqDataSourceContextData.cs
- ThemeableAttribute.cs
- TextRenderingModeValidation.cs
- DocumentPageTextView.cs
- Registry.cs
- Slider.cs
- SHA1Cng.cs
- XmlCodeExporter.cs
- MessageRpc.cs
- __FastResourceComparer.cs
- UniqueIdentifierService.cs
- SQLMembershipProvider.cs
- XmlHierarchicalDataSourceView.cs
- EndPoint.cs
- AutoResetEvent.cs