Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / IdentityModel / System / IdentityModel / Tokens / X509SubjectKeyIdentifierClause.cs / 1 / X509SubjectKeyIdentifierClause.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.IdentityModel.Tokens { using System.Globalization; using System.Security.Cryptography.X509Certificates; public class X509SubjectKeyIdentifierClause : BinaryKeyIdentifierClause { const string SubjectKeyIdentifierOid = "2.5.29.14"; const int SkiDataOffset = 2; public X509SubjectKeyIdentifierClause(byte[] ski) : this(ski, true) { } internal X509SubjectKeyIdentifierClause(byte[] ski, bool cloneBuffer) : base(null, ski, cloneBuffer) { } static byte[] GetSkiRawData(X509Certificate2 certificate) { if (certificate == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("certificate"); X509SubjectKeyIdentifierExtension skiExtension = certificate.Extensions[SubjectKeyIdentifierOid] as X509SubjectKeyIdentifierExtension; if (skiExtension != null) { return skiExtension.RawData; } else { return null; } } public byte[] GetX509SubjectKeyIdentifier() { return GetBuffer(); } public bool Matches(X509Certificate2 certificate) { if (certificate == null) return false; byte[] data = GetSkiRawData(certificate); return data != null && Matches(data, SkiDataOffset); } public static bool TryCreateFrom(X509Certificate2 certificate, out X509SubjectKeyIdentifierClause keyIdentifierClause) { byte[] data = GetSkiRawData(certificate); keyIdentifierClause = null; if (data != null) { byte[] ski = SecurityUtils.CloneBuffer(data, SkiDataOffset, data.Length - SkiDataOffset); keyIdentifierClause = new X509SubjectKeyIdentifierClause(ski, false); } return keyIdentifierClause != null; } public static bool CanCreateFrom(X509Certificate2 certificate) { return null != GetSkiRawData(certificate); } public override string ToString() { return string.Format(CultureInfo.InvariantCulture, "X509SubjectKeyIdentifierClause(SKI = 0x{0})", ToHexString()); } } } // 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
- StorageFunctionMapping.cs
- UnaryOperationBinder.cs
- ProgressBarRenderer.cs
- JoinElimination.cs
- IndexOutOfRangeException.cs
- DataReceivedEventArgs.cs
- QueryExpr.cs
- FileIOPermission.cs
- Color.cs
- DynamicFilterExpression.cs
- XmlSerializerSection.cs
- ViewBox.cs
- CachedPathData.cs
- XPathDocumentNavigator.cs
- SspiSecurityToken.cs
- ReadOnlyHierarchicalDataSource.cs
- Expressions.cs
- GridView.cs
- SHA256Cng.cs
- MultiTrigger.cs
- MatrixTransform3D.cs
- IdnElement.cs
- HandlerBase.cs
- SafeSecurityHandles.cs
- CriticalHandle.cs
- HotSpotCollection.cs
- SearchExpression.cs
- ComponentEditorPage.cs
- DecoderFallback.cs
- Command.cs
- MarshalDirectiveException.cs
- SpecialNameAttribute.cs
- ListViewGroupItemCollection.cs
- RealProxy.cs
- TextPointer.cs
- SafeRegistryHandle.cs
- PackageRelationshipCollection.cs
- ListViewUpdateEventArgs.cs
- codemethodreferenceexpression.cs
- CodeMethodInvokeExpression.cs
- SdlChannelSink.cs
- X509CertificateValidator.cs
- _SslSessionsCache.cs
- MsmqIntegrationChannelFactory.cs
- ComboBox.cs
- StylusTouchDevice.cs
- RbTree.cs
- DesignerWithHeader.cs
- DynamicField.cs
- CacheDependency.cs
- ISAPIApplicationHost.cs
- Int16Converter.cs
- BasicViewGenerator.cs
- GridViewDeleteEventArgs.cs
- PackageFilter.cs
- MsmqHostedTransportConfiguration.cs
- WindowsListViewSubItem.cs
- IntSecurity.cs
- UserPersonalizationStateInfo.cs
- SplitterPanelDesigner.cs
- SqlConnectionFactory.cs
- HierarchicalDataTemplate.cs
- WebPartConnectionsConnectVerb.cs
- HtmlElementEventArgs.cs
- TextPattern.cs
- CuspData.cs
- UnitySerializationHolder.cs
- TextEditorMouse.cs
- Context.cs
- VScrollBar.cs
- HtmlHead.cs
- ConnectionProviderAttribute.cs
- RadioButton.cs
- PropertyBuilder.cs
- TypeLoadException.cs
- WebPartZoneCollection.cs
- FileFormatException.cs
- PreparingEnlistment.cs
- Catch.cs
- DbConnectionClosed.cs
- SafeFileHandle.cs
- HtmlImageAdapter.cs
- util.cs
- TypeDescriptorFilterService.cs
- ActiveDocumentEvent.cs
- GeneralTransform3DTo2DTo3D.cs
- Attributes.cs
- UIElement3DAutomationPeer.cs
- Vertex.cs
- CqlGenerator.cs
- ArrangedElement.cs
- TdsParser.cs
- AssemblyCache.cs
- Symbol.cs
- DataGridViewTextBoxEditingControl.cs
- ActivationArguments.cs
- UIInitializationException.cs
- SiteMapDataSource.cs
- SharedPersonalizationStateInfo.cs
- MessageHeaderInfoTraceRecord.cs