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
- StorageAssociationTypeMapping.cs
- WebPartMovingEventArgs.cs
- PackagePartCollection.cs
- DBSchemaTable.cs
- MILUtilities.cs
- ControlBuilderAttribute.cs
- CookieHandler.cs
- TagPrefixAttribute.cs
- Control.cs
- DataBoundControl.cs
- RegisteredArrayDeclaration.cs
- MsmqOutputSessionChannel.cs
- SafeCryptoHandles.cs
- RegexRunner.cs
- XamlVector3DCollectionSerializer.cs
- LogRestartAreaEnumerator.cs
- SettingsProviderCollection.cs
- RSAOAEPKeyExchangeDeformatter.cs
- TransactionsSectionGroup.cs
- TerminateSequenceResponse.cs
- GroupDescription.cs
- ListViewInsertEventArgs.cs
- DragStartedEventArgs.cs
- DataGridViewCellCollection.cs
- DisplayMemberTemplateSelector.cs
- TextStore.cs
- SourceSwitch.cs
- ParameterReplacerVisitor.cs
- TreeNodeConverter.cs
- InternalConfigConfigurationFactory.cs
- OleDbSchemaGuid.cs
- X509Chain.cs
- WebSysDescriptionAttribute.cs
- TableMethodGenerator.cs
- CodeEventReferenceExpression.cs
- GCHandleCookieTable.cs
- BulletChrome.cs
- IIS7WorkerRequest.cs
- XPathConvert.cs
- SpecularMaterial.cs
- NetworkInformationException.cs
- MessageVersion.cs
- RelativeSource.cs
- TableLayoutPanelCodeDomSerializer.cs
- PriorityItem.cs
- QueryRewriter.cs
- BatchWriter.cs
- PhysicalFontFamily.cs
- CacheHelper.cs
- RawKeyboardInputReport.cs
- MarshalByRefObject.cs
- DirectoryInfo.cs
- streamingZipPartStream.cs
- CopyCodeAction.cs
- OptionUsage.cs
- CodeRemoveEventStatement.cs
- ListControl.cs
- XamlParser.cs
- _BufferOffsetSize.cs
- EventSetter.cs
- DataGridViewRowStateChangedEventArgs.cs
- PKCS1MaskGenerationMethod.cs
- PathSegmentCollection.cs
- NamespaceQuery.cs
- MiniConstructorInfo.cs
- EdmRelationshipNavigationPropertyAttribute.cs
- DataTemplateSelector.cs
- DataObjectPastingEventArgs.cs
- AppearanceEditorPart.cs
- XmlSerializerSection.cs
- QueryIntervalOp.cs
- TagPrefixCollection.cs
- QuaternionAnimationBase.cs
- LoginName.cs
- URIFormatException.cs
- TemplatedMailWebEventProvider.cs
- DrawListViewColumnHeaderEventArgs.cs
- AddInDeploymentState.cs
- RefreshPropertiesAttribute.cs
- ClonableStack.cs
- CustomErrorsSection.cs
- LayoutEngine.cs
- KeyEvent.cs
- WebPartConnectionsEventArgs.cs
- DataSourceNameHandler.cs
- GraphicsPathIterator.cs
- ClrPerspective.cs
- XmlSerializerAssemblyAttribute.cs
- Schema.cs
- TextTreeNode.cs
- ToolStripScrollButton.cs
- RelationshipConstraintValidator.cs
- SmuggledIUnknown.cs
- DataGridViewRowHeaderCell.cs
- ObjectStateEntryDbDataRecord.cs
- BaseUriHelper.cs
- AxisAngleRotation3D.cs
- PipelineModuleStepContainer.cs
- Int32AnimationBase.cs
- ColumnClickEvent.cs