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
- HttpServerVarsCollection.cs
- ResourceKey.cs
- EventProvider.cs
- FormView.cs
- RSAOAEPKeyExchangeDeformatter.cs
- PhoneCallDesigner.cs
- JavaScriptString.cs
- WinEventTracker.cs
- SynchronizedInputPattern.cs
- SmiGettersStream.cs
- HashLookup.cs
- CodeAssignStatement.cs
- DoubleAnimationBase.cs
- MarkupExtensionParser.cs
- Panel.cs
- SpecialTypeDataContract.cs
- HtmlWindow.cs
- securestring.cs
- ColorAnimationUsingKeyFrames.cs
- RawStylusActions.cs
- EntityProviderServices.cs
- LogSwitch.cs
- CapabilitiesAssignment.cs
- SchemaNotation.cs
- ErrorWebPart.cs
- PreloadedPackages.cs
- BufferBuilder.cs
- Label.cs
- XamlBrushSerializer.cs
- LinkLabelLinkClickedEvent.cs
- InternalUserCancelledException.cs
- VolatileEnlistmentState.cs
- ElementsClipboardData.cs
- BasicCellRelation.cs
- WebPartEventArgs.cs
- TextTreePropertyUndoUnit.cs
- ToolStripRenderEventArgs.cs
- DataControlPagerLinkButton.cs
- GenericTextProperties.cs
- ServicePoint.cs
- DataServiceQueryContinuation.cs
- DrawingImage.cs
- TraceSwitch.cs
- UnsafeNativeMethodsMilCoreApi.cs
- Point4DConverter.cs
- ListItemConverter.cs
- DBCSCodePageEncoding.cs
- KoreanLunisolarCalendar.cs
- HostedImpersonationContext.cs
- WebPartMinimizeVerb.cs
- FieldBuilder.cs
- HashJoinQueryOperatorEnumerator.cs
- mactripleDES.cs
- Adorner.cs
- EntitySqlQueryBuilder.cs
- SetterBaseCollection.cs
- IWorkflowDebuggerService.cs
- PanelStyle.cs
- odbcmetadatafactory.cs
- IOThreadTimer.cs
- Token.cs
- RouteItem.cs
- IxmlLineInfo.cs
- TraceListener.cs
- TransformedBitmap.cs
- DesignerActionListCollection.cs
- ConsoleTraceListener.cs
- TranslateTransform3D.cs
- VerificationAttribute.cs
- QilName.cs
- QilFunction.cs
- WindowsFont.cs
- FileSystemEnumerable.cs
- SourceItem.cs
- CombinedTcpChannel.cs
- MSAANativeProvider.cs
- RepeatBehavior.cs
- TextTrailingWordEllipsis.cs
- InvokeMemberBinder.cs
- DiscoveryService.cs
- ExpressionLexer.cs
- ResourceSetExpression.cs
- GlobalProxySelection.cs
- PropertyPathConverter.cs
- GraphicsPathIterator.cs
- WindowsGraphics2.cs
- BuilderInfo.cs
- WorkflowDefinitionDispenser.cs
- CatalogPart.cs
- CodeDomComponentSerializationService.cs
- Dynamic.cs
- WebConfigurationHostFileChange.cs
- ThicknessConverter.cs
- HtmlShim.cs
- GroupQuery.cs
- ProjectionPathSegment.cs
- CodeSnippetTypeMember.cs
- WindowsAuthenticationEventArgs.cs
- DataGridViewRow.cs
- DbProviderFactory.cs