Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / IdentityModel / System / IdentityModel / Tokens / RsaKeyIdentifierClause.cs / 1 / 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. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- GridLength.cs
- ContentPlaceHolderDesigner.cs
- SoapMessage.cs
- BulletedList.cs
- WhitespaceRule.cs
- DockProviderWrapper.cs
- OdbcConnectionPoolProviderInfo.cs
- ContextBase.cs
- MLangCodePageEncoding.cs
- XmlDataSource.cs
- Executor.cs
- SchemaDeclBase.cs
- Stylus.cs
- RequestCacheEntry.cs
- CodeLinePragma.cs
- IntSumAggregationOperator.cs
- ListBindableAttribute.cs
- SqlCachedBuffer.cs
- MetabaseSettings.cs
- OracleTransaction.cs
- ElementHost.cs
- WindowsSpinner.cs
- Memoizer.cs
- GroupBox.cs
- SessionEndingEventArgs.cs
- PageWrapper.cs
- ConfigurationLockCollection.cs
- ErrorWrapper.cs
- DynamicRenderer.cs
- Win32.cs
- ElementsClipboardData.cs
- QilGeneratorEnv.cs
- NameObjectCollectionBase.cs
- DetailsViewDeletedEventArgs.cs
- InfoCardServiceInstallComponent.cs
- BitmapData.cs
- ComboBox.cs
- XmlEnumAttribute.cs
- SizeAnimationUsingKeyFrames.cs
- OdbcConnectionFactory.cs
- EastAsianLunisolarCalendar.cs
- KeyValuePair.cs
- ConfigXmlSignificantWhitespace.cs
- ComPersistableTypeElementCollection.cs
- DataGridColumnCollection.cs
- RootBuilder.cs
- TextRangeProviderWrapper.cs
- BrowserInteropHelper.cs
- InvalidDataException.cs
- Propagator.Evaluator.cs
- IdentityManager.cs
- ActivityDesigner.cs
- BuildResultCache.cs
- MasterPageParser.cs
- Delay.cs
- AssemblyCollection.cs
- TreeNodeCollectionEditor.cs
- OletxResourceManager.cs
- PropertyInformationCollection.cs
- DropSource.cs
- documentsequencetextpointer.cs
- SocketInformation.cs
- ArglessEventHandlerProxy.cs
- StaticDataManager.cs
- SelectionRangeConverter.cs
- DependencyPropertyKind.cs
- OracleException.cs
- RotateTransform.cs
- StreamWriter.cs
- SecurityUniqueId.cs
- CallbackHandler.cs
- ExpressionVisitor.cs
- HuffmanTree.cs
- Stopwatch.cs
- SqlXml.cs
- ProcessThreadCollection.cs
- StrongNameSignatureInformation.cs
- HandlerFactoryWrapper.cs
- ProfileParameter.cs
- ToolStripAdornerWindowService.cs
- InternalBufferManager.cs
- PartialCachingControl.cs
- FirstQueryOperator.cs
- AutomationAttributeInfo.cs
- ImageDrawing.cs
- MgmtConfigurationRecord.cs
- EditorPart.cs
- SqlException.cs
- PointF.cs
- Pool.cs
- HealthMonitoringSection.cs
- controlskin.cs
- ReturnEventArgs.cs
- RemotingException.cs
- CompilerGeneratedAttribute.cs
- HandleValueEditor.cs
- StateDesigner.Helpers.cs
- SchemaTypeEmitter.cs
- UniqueID.cs
- DataSetUtil.cs