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
- Method.cs
- DomNameTable.cs
- SweepDirectionValidation.cs
- LinqDataSourceEditData.cs
- ClassDataContract.cs
- SignatureToken.cs
- MD5Cng.cs
- SecurityException.cs
- Int32KeyFrameCollection.cs
- Transform3DGroup.cs
- ReachUIElementCollectionSerializer.cs
- XamlBrushSerializer.cs
- ButtonFieldBase.cs
- LocatorGroup.cs
- DataGridViewColumn.cs
- DefaultPrintController.cs
- FolderBrowserDialog.cs
- UrlMapping.cs
- MetadataItemEmitter.cs
- DynamicValueConverter.cs
- ValidatingPropertiesEventArgs.cs
- FactoryMaker.cs
- OracleConnectionString.cs
- Rect3D.cs
- ParameterModifier.cs
- SystemDiagnosticsSection.cs
- FreeFormDesigner.cs
- HtmlInputControl.cs
- DependencyPropertyConverter.cs
- WorkflowDefinitionContext.cs
- SqlProvider.cs
- DataRecordInternal.cs
- DataSourceConverter.cs
- SqlDataSourceCache.cs
- PopOutPanel.cs
- _SSPIWrapper.cs
- Journal.cs
- WebPartRestoreVerb.cs
- EventlogProvider.cs
- BulletedListEventArgs.cs
- BypassElement.cs
- TrackBar.cs
- Debug.cs
- SpellerError.cs
- ReferentialConstraint.cs
- FieldToken.cs
- PathFigureCollectionConverter.cs
- ChildChangedEventArgs.cs
- SettingsPropertyCollection.cs
- OledbConnectionStringbuilder.cs
- FlowDocument.cs
- ReachNamespaceInfo.cs
- EdmPropertyAttribute.cs
- ScriptResourceMapping.cs
- LineMetrics.cs
- XmlLanguageConverter.cs
- CaseStatement.cs
- __Error.cs
- InternalsVisibleToAttribute.cs
- ListViewSortEventArgs.cs
- MailWebEventProvider.cs
- DataGridViewCellValidatingEventArgs.cs
- TimeEnumHelper.cs
- CompilerTypeWithParams.cs
- TransformDescriptor.cs
- LineVisual.cs
- SqlProcedureAttribute.cs
- VersionedStreamOwner.cs
- KeyValueConfigurationCollection.cs
- OracleTransaction.cs
- _LocalDataStoreMgr.cs
- HandlerBase.cs
- InternalTransaction.cs
- SelectionGlyph.cs
- CollectionContainer.cs
- CodeBlockBuilder.cs
- WaitingCursor.cs
- CollectionChangedEventManager.cs
- NullableDoubleMinMaxAggregationOperator.cs
- ResourceContainer.cs
- XmlBinaryWriter.cs
- XmlQueryCardinality.cs
- _emptywebproxy.cs
- StylusPointProperties.cs
- StylusPointProperties.cs
- PropertyBuilder.cs
- newinstructionaction.cs
- EdmComplexTypeAttribute.cs
- XmlSchemaAny.cs
- safesecurityhelperavalon.cs
- Native.cs
- DispatcherObject.cs
- TaskExceptionHolder.cs
- SecurityTokenException.cs
- PersistencePipeline.cs
- SplineKeyFrames.cs
- XsltFunctions.cs
- ScrollPattern.cs
- ContentElementAutomationPeer.cs
- FilterQuery.cs