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
- SvcMapFileLoader.cs
- Renderer.cs
- TablePatternIdentifiers.cs
- TagPrefixAttribute.cs
- EditorPart.cs
- LastQueryOperator.cs
- XsdBuilder.cs
- ExtensionQuery.cs
- FontStyleConverter.cs
- HttpDictionary.cs
- FlowDocumentScrollViewer.cs
- QuaternionAnimation.cs
- BlurBitmapEffect.cs
- PreservationFileReader.cs
- XmlILOptimizerVisitor.cs
- ExpressionDumper.cs
- WindowsEditBox.cs
- PropertyMetadata.cs
- CodeTypeReference.cs
- DetailsViewInsertedEventArgs.cs
- BamlStream.cs
- ListViewContainer.cs
- JoinTreeNode.cs
- AppearanceEditorPart.cs
- ItemTypeToolStripMenuItem.cs
- DynamicDocumentPaginator.cs
- KeyPressEvent.cs
- ApplySecurityAndSendAsyncResult.cs
- _NativeSSPI.cs
- localization.cs
- EmptyControlCollection.cs
- DecoderExceptionFallback.cs
- SelectionPatternIdentifiers.cs
- X509ChainElement.cs
- RecordBuilder.cs
- HtmlFormParameterWriter.cs
- Frame.cs
- DispatcherEventArgs.cs
- _AutoWebProxyScriptHelper.cs
- NavigationWindowAutomationPeer.cs
- BaseValidator.cs
- CanonicalFontFamilyReference.cs
- Rect3DValueSerializer.cs
- TemplateControlBuildProvider.cs
- PenContexts.cs
- Parsers.cs
- MultiBindingExpression.cs
- InstancePersistenceException.cs
- Repeater.cs
- ContentFileHelper.cs
- PositiveTimeSpanValidatorAttribute.cs
- NullEntityWrapper.cs
- CalendarDataBindingHandler.cs
- MonthChangedEventArgs.cs
- TypeDescriptor.cs
- DataGridViewColumnStateChangedEventArgs.cs
- ExpressionEditorAttribute.cs
- PeerPresenceInfo.cs
- TextDocumentView.cs
- SHA512.cs
- VectorCollectionConverter.cs
- QueryGeneratorBase.cs
- odbcmetadatafactory.cs
- UrlPath.cs
- NamedPipeAppDomainProtocolHandler.cs
- CacheForPrimitiveTypes.cs
- SerializationInfo.cs
- Compiler.cs
- LedgerEntry.cs
- GridViewCancelEditEventArgs.cs
- OleDbDataReader.cs
- ViewValidator.cs
- WebPartUtil.cs
- ExportOptions.cs
- DrawingContextDrawingContextWalker.cs
- ClonableStack.cs
- WebPartExportVerb.cs
- IRCollection.cs
- XmlSubtreeReader.cs
- COM2ExtendedUITypeEditor.cs
- XmlBinaryReaderSession.cs
- Helpers.cs
- complextypematerializer.cs
- ClassHandlersStore.cs
- CDSCollectionETWBCLProvider.cs
- BindingCompleteEventArgs.cs
- ImageUrlEditor.cs
- SettingsPropertyWrongTypeException.cs
- ServiceModelActivity.cs
- ReplyChannel.cs
- FontInfo.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- InputReferenceExpression.cs
- ISAPIRuntime.cs
- DataGridCellClipboardEventArgs.cs
- Adorner.cs
- RelationshipDetailsRow.cs
- AutomationPatternInfo.cs
- ThreadAbortException.cs
- GrammarBuilderPhrase.cs