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
- BitSet.cs
- ReflectPropertyDescriptor.cs
- CellLabel.cs
- OptimizedTemplateContentHelper.cs
- XmlLanguage.cs
- HttpContext.cs
- XslCompiledTransform.cs
- DeleteCardRequest.cs
- TemplateManager.cs
- EmptyEnumerator.cs
- SeekStoryboard.cs
- AssociationProvider.cs
- OutputWindow.cs
- Inline.cs
- CallbackHandler.cs
- RuleSetReference.cs
- DbConnectionHelper.cs
- DelegatedStream.cs
- TypeResolver.cs
- httpapplicationstate.cs
- SpnEndpointIdentityExtension.cs
- ContextProperty.cs
- SQLGuid.cs
- Regex.cs
- PreparingEnlistment.cs
- ColorBlend.cs
- SoapTransportImporter.cs
- DbConvert.cs
- ClipboardData.cs
- Mapping.cs
- Metadata.cs
- TraceProvider.cs
- DocumentApplication.cs
- WebPartCatalogCloseVerb.cs
- DbMetaDataCollectionNames.cs
- FixedDocument.cs
- WinFormsUtils.cs
- CodeConstructor.cs
- XmlSchemaProviderAttribute.cs
- BaseParagraph.cs
- CriticalExceptions.cs
- GridView.cs
- UnknownMessageReceivedEventArgs.cs
- X509SecurityTokenParameters.cs
- EndpointIdentity.cs
- Empty.cs
- FormatPage.cs
- LocationSectionRecord.cs
- SourceSwitch.cs
- TextStore.cs
- RecipientIdentity.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- DirectoryInfo.cs
- SqlParameter.cs
- Compiler.cs
- ListParagraph.cs
- FloaterParagraph.cs
- ParameterCollection.cs
- DataTemplate.cs
- SchemaNotation.cs
- AssemblySettingAttributes.cs
- ScriptingSectionGroup.cs
- PackagePart.cs
- BeginStoryboard.cs
- DataException.cs
- ImportCatalogPart.cs
- SafeNativeMethods.cs
- DataGridViewColumnConverter.cs
- DataControlFieldTypeEditor.cs
- UIElement.cs
- DictationGrammar.cs
- URL.cs
- UndirectedGraph.cs
- RtType.cs
- ZipIOFileItemStream.cs
- XamlUtilities.cs
- ServiceContractAttribute.cs
- ExpandCollapsePattern.cs
- RSACryptoServiceProvider.cs
- IFlowDocumentViewer.cs
- QilFactory.cs
- XD.cs
- SimpleWebHandlerParser.cs
- DCSafeHandle.cs
- FacetValues.cs
- PeoplePickerWrapper.cs
- DecimalAnimation.cs
- UrlMapping.cs
- RequestChannel.cs
- ControlBuilder.cs
- ellipse.cs
- JulianCalendar.cs
- IdentityNotMappedException.cs
- HostedElements.cs
- MenuItem.cs
- UserNameServiceElement.cs
- ResolvedKeyFrameEntry.cs
- MouseEventArgs.cs
- Signature.cs
- MessagePartSpecification.cs