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
- SuppressMergeCheckAttribute.cs
- UserControlCodeDomTreeGenerator.cs
- RecognitionResult.cs
- _SpnDictionary.cs
- Listbox.cs
- DetailsViewInsertedEventArgs.cs
- XmlEntityReference.cs
- ReferencedCollectionType.cs
- HtmlTernaryTree.cs
- StylusOverProperty.cs
- SiteMapNodeCollection.cs
- PersonalizationProvider.cs
- WebPartManagerInternals.cs
- FixUpCollection.cs
- PackWebRequestFactory.cs
- ChannelServices.cs
- StringResourceManager.cs
- CharUnicodeInfo.cs
- DiagnosticTrace.cs
- TextBreakpoint.cs
- CookieParameter.cs
- AnnotationAuthorChangedEventArgs.cs
- webeventbuffer.cs
- SimpleTypeResolver.cs
- PermissionSetEnumerator.cs
- SiteMap.cs
- EntitySqlException.cs
- UnhandledExceptionEventArgs.cs
- MergeFilterQuery.cs
- SocketElement.cs
- BamlMapTable.cs
- AppDomainUnloadedException.cs
- CustomCategoryAttribute.cs
- ValidationPropertyAttribute.cs
- StringSource.cs
- SafeMILHandle.cs
- SqlVersion.cs
- SizeAnimation.cs
- WorkflowLayouts.cs
- EdmRelationshipNavigationPropertyAttribute.cs
- ImageConverter.cs
- ImageDrawing.cs
- DefaultPropertyAttribute.cs
- CodeExporter.cs
- JournalEntryListConverter.cs
- CustomValidator.cs
- LinkGrep.cs
- DataTableMapping.cs
- NavigationProperty.cs
- XsdBuilder.cs
- ExpressionVisitor.cs
- IteratorDescriptor.cs
- PolicyStatement.cs
- ParserStreamGeometryContext.cs
- InvalidOperationException.cs
- ReadOnlyCollection.cs
- SrgsText.cs
- FormatException.cs
- WSAddressing10ProblemHeaderQNameFault.cs
- Calendar.cs
- OleDbStruct.cs
- VisualBasicValue.cs
- HyperLinkDesigner.cs
- InputLanguageManager.cs
- ToolStripSplitStackLayout.cs
- ActivityTypeResolver.xaml.cs
- CodeBlockBuilder.cs
- PopOutPanel.cs
- GiveFeedbackEvent.cs
- ParameterToken.cs
- ColorConvertedBitmap.cs
- CryptoProvider.cs
- DocumentAutomationPeer.cs
- QueryActivatableWorkflowsCommand.cs
- XmlReflectionImporter.cs
- HtmlButton.cs
- HashCodeCombiner.cs
- TokenCreationParameter.cs
- RegularExpressionValidator.cs
- XhtmlCssHandler.cs
- Configuration.cs
- AssemblyInfo.cs
- DataSvcMapFileSerializer.cs
- RelationshipEndCollection.cs
- LinqDataSource.cs
- CodeTypeReferenceExpression.cs
- File.cs
- HtmlInputControl.cs
- InvokePatternIdentifiers.cs
- UIHelper.cs
- RIPEMD160Managed.cs
- ZipIOExtraField.cs
- UpdatePanelTrigger.cs
- SystemNetworkInterface.cs
- ElementAction.cs
- ComboBoxAutomationPeer.cs
- WebPartDisplayModeCollection.cs
- DataViewManager.cs
- SamlSecurityToken.cs
- InternalSafeNativeMethods.cs