Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / IdentityModel / System / IdentityModel / Tokens / X509SubjectKeyIdentifierClause.cs / 1305376 / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- WriteableBitmap.cs
- StringFreezingAttribute.cs
- OracleRowUpdatingEventArgs.cs
- LookupNode.cs
- PointLight.cs
- precedingsibling.cs
- TemplateControlCodeDomTreeGenerator.cs
- XslAstAnalyzer.cs
- PowerModeChangedEventArgs.cs
- _TLSstream.cs
- RangeBase.cs
- CriticalFileToken.cs
- ConfigXmlCDataSection.cs
- BitmapEffectGroup.cs
- RenderingBiasValidation.cs
- ArrayItemValue.cs
- KeyGestureConverter.cs
- ExpandableObjectConverter.cs
- Size3D.cs
- GPStream.cs
- AxisAngleRotation3D.cs
- ForeignConstraint.cs
- StorageMappingItemCollection.cs
- __Error.cs
- EmptyEnumerator.cs
- streamingZipPartStream.cs
- ButtonRenderer.cs
- PieceNameHelper.cs
- ProtocolsConfigurationEntry.cs
- SpanIndex.cs
- StoryFragments.cs
- MetadataArtifactLoader.cs
- HostingEnvironmentSection.cs
- RootBrowserWindow.cs
- PageParserFilter.cs
- FlowDocumentReaderAutomationPeer.cs
- WebPartHeaderCloseVerb.cs
- PerfCounterSection.cs
- MdiWindowListItemConverter.cs
- GridViewColumnHeaderAutomationPeer.cs
- CriticalExceptions.cs
- RegexWorker.cs
- LicenseManager.cs
- LocalBuilder.cs
- ImportContext.cs
- Message.cs
- NonClientArea.cs
- DebugInfoGenerator.cs
- ImageAutomationPeer.cs
- PropertyCondition.cs
- WebPartManager.cs
- TabItemWrapperAutomationPeer.cs
- DataGridViewButtonColumn.cs
- MessageEnumerator.cs
- TypeSystemProvider.cs
- dbenumerator.cs
- SHA1Managed.cs
- SQLDecimalStorage.cs
- TextLineResult.cs
- MsmqTransportElement.cs
- OAVariantLib.cs
- PageVisual.cs
- CollectionBuilder.cs
- IntranetCredentialPolicy.cs
- DispatchWrapper.cs
- WebPartDisplayMode.cs
- DropShadowBitmapEffect.cs
- TileBrush.cs
- Sequence.cs
- IntegerValidator.cs
- IndexedString.cs
- ExtendedPropertyDescriptor.cs
- VisualStyleRenderer.cs
- FontEmbeddingManager.cs
- XmlProcessingInstruction.cs
- XmlILConstructAnalyzer.cs
- GPRECT.cs
- HMACSHA512.cs
- XmlDataDocument.cs
- TreeNodeCollection.cs
- FileUpload.cs
- ReferencedAssembly.cs
- MultiView.cs
- DesigntimeLicenseContext.cs
- DurationConverter.cs
- QueryContinueDragEventArgs.cs
- ListBox.cs
- SecurityRequiresReviewAttribute.cs
- EventPrivateKey.cs
- SubpageParagraph.cs
- XmlQueryStaticData.cs
- ImageAutomationPeer.cs
- DataTableClearEvent.cs
- templategroup.cs
- Expression.cs
- AttachedPropertyInfo.cs
- SubMenuStyleCollection.cs
- Matrix3DStack.cs
- WebBrowser.cs
- DataGridPageChangedEventArgs.cs