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
- Visual3D.cs
- UnauthorizedAccessException.cs
- CompositionAdorner.cs
- DrawingGroup.cs
- ConfigXmlAttribute.cs
- SerializationInfoEnumerator.cs
- PowerModeChangedEventArgs.cs
- ApplicationFileParser.cs
- ChtmlCalendarAdapter.cs
- ReflectionServiceProvider.cs
- ColorContext.cs
- Hash.cs
- Bezier.cs
- Debug.cs
- SrgsNameValueTag.cs
- UxThemeWrapper.cs
- CollectionBase.cs
- FuncTypeConverter.cs
- ColorMap.cs
- RecognizedAudio.cs
- UIElement3DAutomationPeer.cs
- prefixendpointaddressmessagefiltertable.cs
- LocalizableAttribute.cs
- StateWorkerRequest.cs
- WaitHandleCannotBeOpenedException.cs
- FieldInfo.cs
- CodeTypeReferenceExpression.cs
- DataGridViewTextBoxCell.cs
- TextDecorations.cs
- WsatAdminException.cs
- ConsoleCancelEventArgs.cs
- MenuBase.cs
- CapabilitiesSection.cs
- Rectangle.cs
- ComponentEditorPage.cs
- ExitEventArgs.cs
- StorageMappingItemCollection.cs
- TreeIterator.cs
- SharedPerformanceCounter.cs
- RegistryPermission.cs
- ExpressionDumper.cs
- BitmapImage.cs
- NavigationFailedEventArgs.cs
- UnaryNode.cs
- PathSegmentCollection.cs
- RectIndependentAnimationStorage.cs
- XmlSchemaAppInfo.cs
- Guid.cs
- IisTraceListener.cs
- PointKeyFrameCollection.cs
- ObjectTokenCategory.cs
- BackgroundWorker.cs
- InheritanceContextHelper.cs
- PhysicalAddress.cs
- StatementContext.cs
- RequiredFieldValidator.cs
- EmbeddedMailObject.cs
- MetafileHeaderWmf.cs
- DesignTableCollection.cs
- ComboBoxAutomationPeer.cs
- ParameterCollection.cs
- Timer.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- ObjectHandle.cs
- SectionUpdates.cs
- NavigatorOutput.cs
- ControlCachePolicy.cs
- SwitchElementsCollection.cs
- DialogWindow.cs
- MenuCommand.cs
- TypeToArgumentTypeConverter.cs
- ServiceDescription.cs
- InlineUIContainer.cs
- ReflectPropertyDescriptor.cs
- AssociationSetEnd.cs
- InputLanguageManager.cs
- CurrentChangedEventManager.cs
- DataGridSortCommandEventArgs.cs
- FixedSOMTable.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- TextEditorLists.cs
- XmlSchemaCompilationSettings.cs
- AttributeEmitter.cs
- SerializationSectionGroup.cs
- DesignerExtenders.cs
- CroppedBitmap.cs
- GACMembershipCondition.cs
- MutexSecurity.cs
- PolyLineSegment.cs
- CheckBoxFlatAdapter.cs
- WindowsEditBoxRange.cs
- ObjectList.cs
- XmlSchemaImporter.cs
- CodeGeneratorAttribute.cs
- AllMembershipCondition.cs
- AttributeQuery.cs
- DataGridViewElement.cs
- DataControlFieldHeaderCell.cs
- FrameworkElement.cs
- SpellerHighlightLayer.cs