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
- AlignmentYValidation.cs
- SemanticAnalyzer.cs
- WinEventHandler.cs
- PropertyRef.cs
- xmlglyphRunInfo.cs
- KoreanCalendar.cs
- UxThemeWrapper.cs
- CompModHelpers.cs
- GlobalDataBindingHandler.cs
- QilStrConcat.cs
- AssemblyInfo.cs
- AutomationProperties.cs
- XmlSerializationReader.cs
- Executor.cs
- LinqDataSourceSelectEventArgs.cs
- BindingWorker.cs
- HtmlShim.cs
- MultilineStringConverter.cs
- MessageEnumerator.cs
- DataTableClearEvent.cs
- SqlDataSourceCustomCommandEditor.cs
- HMACRIPEMD160.cs
- ProfileService.cs
- WpfPayload.cs
- HandleTable.cs
- BitmapScalingModeValidation.cs
- MLangCodePageEncoding.cs
- DtdParser.cs
- FontDialog.cs
- DetailsView.cs
- UriWriter.cs
- DataGridViewRow.cs
- PropertyGridView.cs
- OracleInternalConnection.cs
- TreeChangeInfo.cs
- PlainXmlDeserializer.cs
- MatrixUtil.cs
- DesignerDataConnection.cs
- GraphicsContainer.cs
- CodeAttributeArgumentCollection.cs
- DataGridColumnEventArgs.cs
- XmlSecureResolver.cs
- TransactionContextManager.cs
- CommentAction.cs
- NameValuePermission.cs
- HeaderedContentControl.cs
- BaseServiceProvider.cs
- IPEndPointCollection.cs
- ProgressBarAutomationPeer.cs
- MetadataPropertyCollection.cs
- TextElementEditingBehaviorAttribute.cs
- CodeNamespace.cs
- BamlVersionHeader.cs
- DependencyProperty.cs
- QuotedPrintableStream.cs
- OptimizedTemplateContentHelper.cs
- PagesSection.cs
- arc.cs
- WebDescriptionAttribute.cs
- PriorityQueue.cs
- Parameter.cs
- UniqueIdentifierService.cs
- OutputCacheProfile.cs
- MaskDesignerDialog.cs
- MessageDecoder.cs
- ISCIIEncoding.cs
- _BufferOffsetSize.cs
- MergablePropertyAttribute.cs
- OutputCacheProviderCollection.cs
- XPathNavigatorKeyComparer.cs
- RecognizeCompletedEventArgs.cs
- InteropAutomationProvider.cs
- localization.cs
- ProfileInfo.cs
- DiscoveryUtility.cs
- WindowsEditBoxRange.cs
- SecurityUtils.cs
- PropertyGeneratedEventArgs.cs
- PostBackTrigger.cs
- StorageSetMapping.cs
- BaseParagraph.cs
- SoapCommonClasses.cs
- NativeCppClassAttribute.cs
- GroupAggregateExpr.cs
- BoundField.cs
- ToolStripLabel.cs
- SafeHGlobalHandleCritical.cs
- SkewTransform.cs
- DataGridColumnHeader.cs
- PropertyGridCommands.cs
- ExpanderAutomationPeer.cs
- MimeTypeMapper.cs
- FormViewPageEventArgs.cs
- InputReportEventArgs.cs
- AutomationAttributeInfo.cs
- XmlSecureResolver.cs
- SystemDiagnosticsSection.cs
- SystemException.cs
- TranslateTransform.cs
- VirtualPathUtility.cs