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
- DeviceSpecific.cs
- ConfigUtil.cs
- AutomationInteropProvider.cs
- LookupNode.cs
- StylusPointProperties.cs
- SecurityDocument.cs
- RegisteredDisposeScript.cs
- FamilyTypefaceCollection.cs
- TrustManager.cs
- GridViewItemAutomationPeer.cs
- DecodeHelper.cs
- XmlEntity.cs
- TableLayoutStyle.cs
- NumberAction.cs
- Pair.cs
- ExtensionQuery.cs
- FlowDocumentView.cs
- ConstraintManager.cs
- GridViewRowEventArgs.cs
- InfiniteIntConverter.cs
- DataPager.cs
- EnumMember.cs
- SafeFileHandle.cs
- WebServiceEndpoint.cs
- SiteMapDataSource.cs
- SqlDataSourceConfigureSelectPanel.cs
- OleDbException.cs
- SecurityDocument.cs
- WindowsGraphics.cs
- QuotedPrintableStream.cs
- TextUtf8RawTextWriter.cs
- UserControlCodeDomTreeGenerator.cs
- Base64Encoding.cs
- SingleAnimationBase.cs
- SecurityUtils.cs
- InfoCardRSAPKCS1KeyExchangeDeformatter.cs
- FormatConvertedBitmap.cs
- BitSet.cs
- AppDomainShutdownMonitor.cs
- SecurityContextSecurityToken.cs
- RawStylusSystemGestureInputReport.cs
- MediaContext.cs
- DragEvent.cs
- recordstatescratchpad.cs
- MoveSizeWinEventHandler.cs
- ToolStripRenderEventArgs.cs
- TableLayoutRowStyleCollection.cs
- PropertyStore.cs
- SourceFilter.cs
- ListViewItemMouseHoverEvent.cs
- PageParserFilter.cs
- WebServiceEndpoint.cs
- HttpRequestBase.cs
- ProxyWebPartManager.cs
- COM2ExtendedUITypeEditor.cs
- OverlappedContext.cs
- InternalCache.cs
- TreeViewEvent.cs
- RequestCachePolicy.cs
- ObjectCloneHelper.cs
- PeerNameRecordCollection.cs
- PointConverter.cs
- WebServiceEnumData.cs
- ScriptRegistrationManager.cs
- XmlSchemaProviderAttribute.cs
- ZoneIdentityPermission.cs
- DES.cs
- DataGridViewTextBoxColumn.cs
- DataViewManager.cs
- PrimaryKeyTypeConverter.cs
- CompositeControl.cs
- AppDomainGrammarProxy.cs
- DataSysAttribute.cs
- DataReceivedEventArgs.cs
- SqlDataAdapter.cs
- IconBitmapDecoder.cs
- XamlFigureLengthSerializer.cs
- ContextMenuStrip.cs
- TextPenaltyModule.cs
- TypeDelegator.cs
- CompilationLock.cs
- ValueTable.cs
- WebPartExportVerb.cs
- HtmlInputCheckBox.cs
- WebWorkflowRole.cs
- SizeConverter.cs
- GeometryGroup.cs
- pingexception.cs
- XPathMultyIterator.cs
- MsmqVerifier.cs
- Normalization.cs
- EntityProviderServices.cs
- DataList.cs
- Point3D.cs
- ToolStripArrowRenderEventArgs.cs
- DesignerVerbCollection.cs
- EdmRelationshipNavigationPropertyAttribute.cs
- ErrorsHelper.cs
- SQLMoneyStorage.cs
- FormConverter.cs