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
- ElementAction.cs
- XamlTemplateSerializer.cs
- QueryInterceptorAttribute.cs
- Mapping.cs
- ComPlusDiagnosticTraceSchemas.cs
- CodeTypeDeclaration.cs
- IPAddress.cs
- PackagingUtilities.cs
- SchemaSetCompiler.cs
- FileIOPermission.cs
- DbProviderFactories.cs
- Timeline.cs
- CommandEventArgs.cs
- JsonDeserializer.cs
- WindowsGrip.cs
- ImageButton.cs
- DetailsViewCommandEventArgs.cs
- MSG.cs
- XmlRawWriter.cs
- UTF32Encoding.cs
- ArrayTypeMismatchException.cs
- Memoizer.cs
- CharKeyFrameCollection.cs
- CodeGen.cs
- PathFigureCollection.cs
- ResourceProperty.cs
- PersonalizationDictionary.cs
- SynthesizerStateChangedEventArgs.cs
- TextBreakpoint.cs
- QuaternionRotation3D.cs
- QueryContinueDragEvent.cs
- ObjectListItem.cs
- QuaternionAnimation.cs
- ColorComboBox.cs
- _BaseOverlappedAsyncResult.cs
- ConstraintEnumerator.cs
- StylusPointCollection.cs
- LeafCellTreeNode.cs
- DefaultValidator.cs
- Camera.cs
- CreateUserWizard.cs
- PropertyRef.cs
- XmlSerializerVersionAttribute.cs
- LexicalChunk.cs
- MDIControlStrip.cs
- WhiteSpaceTrimStringConverter.cs
- QueryFunctions.cs
- SynthesizerStateChangedEventArgs.cs
- ConnectionStringsSection.cs
- HtmlTableRowCollection.cs
- DynamicRendererThreadManager.cs
- StringHandle.cs
- GridSplitterAutomationPeer.cs
- TypeLibConverter.cs
- LongPath.cs
- ArithmeticLiteral.cs
- GeneralTransformCollection.cs
- DataGridColumnHeaderAutomationPeer.cs
- AttributedMetaModel.cs
- RMEnrollmentPage3.cs
- XmlExtensionFunction.cs
- PatternMatcher.cs
- MsmqBindingElementBase.cs
- PingReply.cs
- DbParameterCollectionHelper.cs
- SqlDataSourceParameterParser.cs
- FixedPage.cs
- HttpHandlerAction.cs
- ManipulationPivot.cs
- CancellationToken.cs
- TextRangeBase.cs
- VirtualDirectoryMapping.cs
- FromReply.cs
- LexicalChunk.cs
- Intellisense.cs
- CompoundFileIOPermission.cs
- UpdateRecord.cs
- X509SecurityToken.cs
- HtmlElement.cs
- GridItemPatternIdentifiers.cs
- FixedHyperLink.cs
- invalidudtexception.cs
- GridViewRowPresenterBase.cs
- __ConsoleStream.cs
- OutputCacheProfile.cs
- AssemblyBuilderData.cs
- BlockUIContainer.cs
- AutomationProperty.cs
- PngBitmapEncoder.cs
- DocumentPageView.cs
- UIElement.cs
- NetworkInformationException.cs
- KeyBinding.cs
- MasterPage.cs
- PanelStyle.cs
- SecurityTokenTypes.cs
- EventLogConfiguration.cs
- DeploymentExceptionMapper.cs
- DbProviderServices.cs
- OdbcConnectionStringbuilder.cs