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
- SoapSchemaMember.cs
- SystemIcmpV4Statistics.cs
- ProgressPage.cs
- TransactionTable.cs
- DuplicateDetector.cs
- SignatureGenerator.cs
- QilIterator.cs
- ParseChildrenAsPropertiesAttribute.cs
- HebrewCalendar.cs
- ListBindingConverter.cs
- OleDbParameterCollection.cs
- BufferedGraphicsManager.cs
- userdatakeys.cs
- CommandBindingCollection.cs
- Stack.cs
- PropertyConverter.cs
- Configuration.cs
- ProviderSettings.cs
- PtsPage.cs
- ValidatorUtils.cs
- PropertyToken.cs
- ContainerParaClient.cs
- WindowsAltTab.cs
- OptionUsage.cs
- ProcessProtocolHandler.cs
- ElementFactory.cs
- ConnectionInterfaceCollection.cs
- serverconfig.cs
- CodeAssignStatement.cs
- WorkflowDesignerColors.cs
- BrowserCapabilitiesCodeGenerator.cs
- SchemaCollectionPreprocessor.cs
- AnnotationResourceCollection.cs
- ListViewItemSelectionChangedEvent.cs
- DocumentPageHost.cs
- AnimationException.cs
- TreeNodeBinding.cs
- MarkupCompilePass1.cs
- CodeMethodReturnStatement.cs
- GridViewRowPresenter.cs
- HtmlTernaryTree.cs
- ImageConverter.cs
- Emitter.cs
- TriState.cs
- ReflectionUtil.cs
- AddressHeader.cs
- DefaultProxySection.cs
- BamlResourceContent.cs
- RotateTransform3D.cs
- BindingValueChangedEventArgs.cs
- SQLInt16Storage.cs
- Scheduling.cs
- RequestDescription.cs
- SqlCacheDependencyDatabaseCollection.cs
- ScopeCollection.cs
- CookieHandler.cs
- HttpWrapper.cs
- ImageField.cs
- SectionUpdates.cs
- GenerateScriptTypeAttribute.cs
- OrthographicCamera.cs
- CommandEventArgs.cs
- HwndHost.cs
- SettingsPropertyValue.cs
- XmlMapping.cs
- GenericUI.cs
- ModelPropertyDescriptor.cs
- BamlLocalizer.cs
- Positioning.cs
- SimpleType.cs
- VideoDrawing.cs
- LinqDataSourceSelectEventArgs.cs
- EventBuilder.cs
- StringUtil.cs
- HtmlString.cs
- ManipulationVelocities.cs
- EdmRelationshipNavigationPropertyAttribute.cs
- RuntimeConfig.cs
- InplaceBitmapMetadataWriter.cs
- SecurityDocument.cs
- GeometryCollection.cs
- XmlSchemaSimpleTypeList.cs
- RotationValidation.cs
- SqlCrossApplyToCrossJoin.cs
- WebBaseEventKeyComparer.cs
- RtType.cs
- SubMenuStyle.cs
- ModelTreeManager.cs
- ObjectAssociationEndMapping.cs
- embossbitmapeffect.cs
- MetaChildrenColumn.cs
- HtmlForm.cs
- SQLDecimalStorage.cs
- UnsafeNativeMethods.cs
- SendAgentStatusRequest.cs
- MarshalDirectiveException.cs
- RewritingValidator.cs
- Canvas.cs
- XmlnsDefinitionAttribute.cs
- CodeTypeMemberCollection.cs