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
- ErrorFormatter.cs
- CheckBoxStandardAdapter.cs
- DocumentSchemaValidator.cs
- XmlAtomErrorReader.cs
- GetImportFileNameRequest.cs
- VerificationAttribute.cs
- BeginStoryboard.cs
- XmlDataLoader.cs
- GradientStopCollection.cs
- XamlPathDataSerializer.cs
- TakeOrSkipQueryOperator.cs
- ELinqQueryState.cs
- ConfigurationManagerInternalFactory.cs
- QuaternionRotation3D.cs
- StoreAnnotationsMap.cs
- CodeAssignStatement.cs
- ColumnCollection.cs
- Boolean.cs
- Pen.cs
- NamespaceQuery.cs
- EventLogTraceListener.cs
- Material.cs
- NestPullup.cs
- WebHeaderCollection.cs
- CryptoProvider.cs
- NativeMethods.cs
- SelectionRange.cs
- SessionSymmetricMessageSecurityProtocolFactory.cs
- MulticastDelegate.cs
- Label.cs
- InstanceDescriptor.cs
- TextOutput.cs
- activationcontext.cs
- odbcmetadatacollectionnames.cs
- TextComposition.cs
- Command.cs
- TreeViewImageIndexConverter.cs
- PropertyEntry.cs
- StyleBamlTreeBuilder.cs
- EntityViewGenerationAttribute.cs
- DmlSqlGenerator.cs
- HttpListenerException.cs
- WinInetCache.cs
- HyperLinkStyle.cs
- QilName.cs
- Odbc32.cs
- GlobalDataBindingHandler.cs
- ApplicationTrust.cs
- PingReply.cs
- RTLAwareMessageBox.cs
- LongValidator.cs
- RawTextInputReport.cs
- NativeMethodsCLR.cs
- AuthenticationManager.cs
- DataObjectFieldAttribute.cs
- BamlTreeUpdater.cs
- _NegoStream.cs
- MailWebEventProvider.cs
- ConfigurationFileMap.cs
- ApplicationActivator.cs
- ISCIIEncoding.cs
- MediaCommands.cs
- AppModelKnownContentFactory.cs
- TailPinnedEventArgs.cs
- URL.cs
- UnicodeEncoding.cs
- prompt.cs
- TargetPerspective.cs
- OleDbException.cs
- MemoryFailPoint.cs
- HostProtectionPermission.cs
- WebFaultClientMessageInspector.cs
- UInt32Storage.cs
- ProfileSection.cs
- SignatureDescription.cs
- EndSelectCardRequest.cs
- TypeConverterAttribute.cs
- PeerNameRecordCollection.cs
- XmlComment.cs
- ServerIdentity.cs
- ContentOperations.cs
- OdbcCommand.cs
- QilVisitor.cs
- ToolStripItemClickedEventArgs.cs
- BrushConverter.cs
- LoginNameDesigner.cs
- TypeToken.cs
- InfoCardRSAOAEPKeyExchangeDeformatter.cs
- ObjectFullSpanRewriter.cs
- RuleInfoComparer.cs
- BeginCreateSecurityTokenRequest.cs
- BufferedWebEventProvider.cs
- ReflectPropertyDescriptor.cs
- TextEditorThreadLocalStore.cs
- WSUtilitySpecificationVersion.cs
- BitmapEffectrendercontext.cs
- ThreadPool.cs
- ComponentResourceKeyConverter.cs
- XmlWellformedWriter.cs
- Ticks.cs