Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / IdentityModel / System / IdentityModel / Tokens / RsaKeyIdentifierClause.cs / 1305376 / RsaKeyIdentifierClause.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.IdentityModel.Tokens { using System.Globalization; using System.Security.Cryptography; using System.Xml; public class RsaKeyIdentifierClause : SecurityKeyIdentifierClause { static string clauseType = XmlSignatureStrings.Namespace + XmlSignatureStrings.RsaKeyValue; readonly RSA rsa; readonly RSAParameters rsaParameters; RsaSecurityKey rsaSecurityKey; public RsaKeyIdentifierClause(RSA rsa) : base(clauseType) { if (rsa == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("rsa"); this.rsa = rsa; this.rsaParameters = rsa.ExportParameters(false); } public override bool CanCreateKey { get { return true; } } public RSA Rsa { get { return this.rsa; } } public override SecurityKey CreateKey() { if (this.rsaSecurityKey == null) { this.rsaSecurityKey = new RsaSecurityKey(this.rsa); } return this.rsaSecurityKey; } public byte[] GetExponent() { return SecurityUtils.CloneBuffer(this.rsaParameters.Exponent); } public byte[] GetModulus() { return SecurityUtils.CloneBuffer(this.rsaParameters.Modulus); } public override bool Matches(SecurityKeyIdentifierClause keyIdentifierClause) { RsaKeyIdentifierClause that = keyIdentifierClause as RsaKeyIdentifierClause; // PreSharp Bug: Parameter 'that' to this public method must be validated: A null-dereference can occur here. #pragma warning suppress 56506 return ReferenceEquals(this, that) || (that != null && that.Matches(this.rsa)); } public bool Matches(RSA rsa) { if (rsa == null) return false; RSAParameters rsaParameters = rsa.ExportParameters(false); return SecurityUtils.MatchesBuffer(this.rsaParameters.Modulus, rsaParameters.Modulus) && SecurityUtils.MatchesBuffer(this.rsaParameters.Exponent, rsaParameters.Exponent); } public override string ToString() { return string.Format(CultureInfo.InvariantCulture, "RsaKeyIdentifierClause(Modulus = {0}, Exponent = {1})", Convert.ToBase64String(this.rsaParameters.Modulus), Convert.ToBase64String(this.rsaParameters.Exponent)); } public void WriteExponentAsBase64(XmlWriter writer) { if (writer == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("writer"); } writer.WriteBase64(this.rsaParameters.Exponent, 0, this.rsaParameters.Exponent.Length); } public void WriteModulusAsBase64(XmlWriter writer) { if (writer == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("writer"); } writer.WriteBase64(this.rsaParameters.Modulus, 0, this.rsaParameters.Modulus.Length); } } } // 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
- CodeFieldReferenceExpression.cs
- UnsignedPublishLicense.cs
- PerformanceCounterManager.cs
- DrawItemEvent.cs
- SiteOfOriginContainer.cs
- odbcmetadatafactory.cs
- LocatorPart.cs
- WebPartManagerInternals.cs
- XamlToRtfWriter.cs
- SQLUtility.cs
- PerformanceCounterNameAttribute.cs
- CompilerLocalReference.cs
- JulianCalendar.cs
- BasePropertyDescriptor.cs
- MenuItemCollection.cs
- QuotedPrintableStream.cs
- SiteMapDataSource.cs
- XDRSchema.cs
- PaginationProgressEventArgs.cs
- BrowserCapabilitiesFactory.cs
- XmlElementList.cs
- StylusPlugInCollection.cs
- VersionValidator.cs
- AncestorChangedEventArgs.cs
- ConnectionManagementSection.cs
- PreviewPrintController.cs
- StyleSelector.cs
- AvTraceFormat.cs
- QilStrConcatenator.cs
- TextRunCache.cs
- UiaCoreProviderApi.cs
- XmlILIndex.cs
- WorkflowServiceHostFactory.cs
- RenderContext.cs
- WindowPatternIdentifiers.cs
- Bold.cs
- EventHandlersDesigner.cs
- Transform.cs
- DoubleLink.cs
- ImageSource.cs
- ProfessionalColors.cs
- FilterException.cs
- AutomationAttributeInfo.cs
- ColorBlend.cs
- XPathParser.cs
- SelectorAutomationPeer.cs
- SetIterators.cs
- PropertyChangingEventArgs.cs
- ComponentEditorForm.cs
- Message.cs
- PropertyTab.cs
- InkCanvasInnerCanvas.cs
- ProxyDataContractResolver.cs
- RSAOAEPKeyExchangeDeformatter.cs
- SafeEventLogWriteHandle.cs
- TouchesCapturedWithinProperty.cs
- PageThemeParser.cs
- TraceSection.cs
- ReliableChannelBinder.cs
- ToolStripStatusLabel.cs
- ProcessThreadCollection.cs
- WorkflowApplication.cs
- mda.cs
- ClientSettingsProvider.cs
- EntityClientCacheEntry.cs
- InputProcessorProfilesLoader.cs
- ContextBase.cs
- HttpConfigurationSystem.cs
- BamlWriter.cs
- ThreadSafeList.cs
- FigureParaClient.cs
- StreamInfo.cs
- CredentialManagerDialog.cs
- ClrPerspective.cs
- PointKeyFrameCollection.cs
- KeyEvent.cs
- RuntimeWrappedException.cs
- MulticastNotSupportedException.cs
- XXXOnTypeBuilderInstantiation.cs
- RtfToXamlLexer.cs
- SqlDataSourceQueryConverter.cs
- FormClosedEvent.cs
- FontNamesConverter.cs
- BamlLocalizableResource.cs
- TemplateControlBuildProvider.cs
- SmtpTransport.cs
- XPathChildIterator.cs
- OracleEncoding.cs
- LayoutEditorPart.cs
- Console.cs
- HitTestWithPointDrawingContextWalker.cs
- WindowsPen.cs
- Dispatcher.cs
- ProfileGroupSettings.cs
- SHA256Managed.cs
- PermissionListSet.cs
- ClaimTypeElement.cs
- InheritedPropertyChangedEventArgs.cs
- QilXmlReader.cs
- PositiveTimeSpanValidatorAttribute.cs