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
- DrawListViewItemEventArgs.cs
- DecimalConstantAttribute.cs
- SSmlParser.cs
- FloatMinMaxAggregationOperator.cs
- InertiaRotationBehavior.cs
- SafeSerializationManager.cs
- XmlSchemaCompilationSettings.cs
- MethodBody.cs
- ToolStripDropTargetManager.cs
- DataGridViewCell.cs
- COM2ExtendedBrowsingHandler.cs
- SubMenuStyle.cs
- SmiEventSink_Default.cs
- DocumentViewerAutomationPeer.cs
- ParagraphResult.cs
- ComponentEvent.cs
- DashStyle.cs
- ColumnWidthChangedEvent.cs
- CallContext.cs
- ItemAutomationPeer.cs
- FileEnumerator.cs
- DataGridPagerStyle.cs
- SymLanguageType.cs
- RayMeshGeometry3DHitTestResult.cs
- EngineSite.cs
- CompiledXpathExpr.cs
- Matrix3D.cs
- MessageDescription.cs
- WriteableBitmap.cs
- MultiView.cs
- ResourceWriter.cs
- ModelVisual3D.cs
- UnlockInstanceAsyncResult.cs
- ImageCodecInfo.cs
- DataControlField.cs
- FileDetails.cs
- DataFormat.cs
- ClientScriptItem.cs
- XmlUtil.cs
- SqlNodeAnnotation.cs
- HtmlPageAdapter.cs
- PrintEvent.cs
- ClassData.cs
- ComponentRenameEvent.cs
- AsyncOperation.cs
- EntityStoreSchemaFilterEntry.cs
- PermissionSet.cs
- ClassHandlersStore.cs
- ReferencedCollectionType.cs
- DelegateBodyWriter.cs
- CollectionTypeElement.cs
- versioninfo.cs
- DelayedRegex.cs
- CompiledRegexRunnerFactory.cs
- ExpressionBuilder.cs
- NavigationProgressEventArgs.cs
- RotationValidation.cs
- SchemaTableOptionalColumn.cs
- ObjectDataSourceView.cs
- IndexedGlyphRun.cs
- Encoder.cs
- OleDbErrorCollection.cs
- Column.cs
- safex509handles.cs
- TemplatingOptionsDialog.cs
- ChannelSinkStacks.cs
- SrgsSubset.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- WinInet.cs
- TextServicesManager.cs
- RequestCacheManager.cs
- ApplicationTrust.cs
- CharUnicodeInfo.cs
- WebPartMinimizeVerb.cs
- XmlSchemaComplexContentRestriction.cs
- UnsafeCollabNativeMethods.cs
- BinaryNode.cs
- Selector.cs
- TextBoxDesigner.cs
- MessageQueueInstaller.cs
- CreateUserWizardStep.cs
- AsyncResult.cs
- TextOptions.cs
- ScrollEvent.cs
- DataGridPageChangedEventArgs.cs
- RegistrationServices.cs
- FontFamily.cs
- Util.cs
- WebPartConnectionsDisconnectVerb.cs
- DocumentReference.cs
- ASCIIEncoding.cs
- UnorderedHashRepartitionStream.cs
- OracleBoolean.cs
- ArrangedElement.cs
- InlineCollection.cs
- AppDomainResourcePerfCounters.cs
- ListBoxItemAutomationPeer.cs
- CaseStatementProjectedSlot.cs
- _LazyAsyncResult.cs
- ManagementQuery.cs