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
- Point3D.cs
- DownloadProgressEventArgs.cs
- SqlDataSourceCache.cs
- DataSourceHelper.cs
- SqlClientPermission.cs
- _HelperAsyncResults.cs
- XamlInt32CollectionSerializer.cs
- ResourceReader.cs
- ResourcePermissionBaseEntry.cs
- DigitShape.cs
- HttpListener.cs
- Point3DIndependentAnimationStorage.cs
- ServicePointManager.cs
- XmlSerializerSection.cs
- EntityDesignerDataSourceView.cs
- WebPartCloseVerb.cs
- ValidationError.cs
- ComboBoxItem.cs
- DataTableReaderListener.cs
- ClusterRegistryConfigurationProvider.cs
- Message.cs
- DeflateStream.cs
- PenCursorManager.cs
- AttributeCollection.cs
- GridLengthConverter.cs
- VirtualizingPanel.cs
- MemberProjectionIndex.cs
- SqlBulkCopyColumnMapping.cs
- SecurityElement.cs
- GeometryGroup.cs
- _KerberosClient.cs
- DocComment.cs
- Point3DCollectionValueSerializer.cs
- FileInfo.cs
- ToolStripOverflow.cs
- InvokeWebServiceDesigner.cs
- DrawingDrawingContext.cs
- InternalBufferOverflowException.cs
- AggregateNode.cs
- DSASignatureDeformatter.cs
- CacheEntry.cs
- InvalidateEvent.cs
- SqlDelegatedTransaction.cs
- BamlVersionHeader.cs
- OrderedEnumerableRowCollection.cs
- HttpWebResponse.cs
- HeaderCollection.cs
- ResourcePermissionBase.cs
- _AuthenticationState.cs
- Error.cs
- LogArchiveSnapshot.cs
- DBBindings.cs
- AttributeCollection.cs
- MetadataSection.cs
- NamespaceEmitter.cs
- PackageFilter.cs
- WebServiceHandler.cs
- LowerCaseStringConverter.cs
- SettingsPropertyCollection.cs
- CheckBoxFlatAdapter.cs
- ExpandCollapsePattern.cs
- ListDataBindEventArgs.cs
- HttpCookiesSection.cs
- CustomAttributeSerializer.cs
- KeyFrames.cs
- Authorization.cs
- AuthenticateEventArgs.cs
- RequestResizeEvent.cs
- DbgUtil.cs
- DataSourceXmlElementAttribute.cs
- ClientBuildManager.cs
- DataRowComparer.cs
- LinkButton.cs
- PriorityItem.cs
- RequestResizeEvent.cs
- PackWebRequest.cs
- webclient.cs
- WindowsTokenRoleProvider.cs
- IntSecurity.cs
- MatrixTransform3D.cs
- CommandPlan.cs
- SortKey.cs
- NegotiateStream.cs
- _NestedMultipleAsyncResult.cs
- XmlSchemaProviderAttribute.cs
- SByteConverter.cs
- PolyBezierSegment.cs
- BehaviorEditorPart.cs
- TabRenderer.cs
- SHA256.cs
- List.cs
- TabControlCancelEvent.cs
- FixedSOMPageConstructor.cs
- _IPv4Address.cs
- HttpCapabilitiesBase.cs
- SrgsSubset.cs
- ControlEvent.cs
- DocumentPageHost.cs
- XamlFrame.cs
- TextTreeInsertUndoUnit.cs