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
- Application.cs
- ManipulationVelocities.cs
- CustomLineCap.cs
- SendKeys.cs
- SubMenuStyleCollection.cs
- DefaultTraceListener.cs
- Point3DAnimation.cs
- DocumentReference.cs
- FlowNode.cs
- Int16KeyFrameCollection.cs
- IdnElement.cs
- ProvidePropertyAttribute.cs
- ChameleonKey.cs
- NameHandler.cs
- CustomErrorsSection.cs
- DynamicFilter.cs
- TrustManager.cs
- PenContexts.cs
- Publisher.cs
- PropertyGridCommands.cs
- SafeRightsManagementSessionHandle.cs
- SafeUserTokenHandle.cs
- XmlNode.cs
- ScriptControlManager.cs
- EmptyTextWriter.cs
- StateChangeEvent.cs
- SqlClientWrapperSmiStreamChars.cs
- DeriveBytes.cs
- XmlSerializer.cs
- DiscoveryServiceExtension.cs
- AppDomainFactory.cs
- QuadraticBezierSegment.cs
- CombinedGeometry.cs
- JsonUriDataContract.cs
- IdentifierElement.cs
- MeasurementDCInfo.cs
- ToggleButton.cs
- MessageBox.cs
- HitTestDrawingContextWalker.cs
- InvokeSchedule.cs
- sitestring.cs
- DetailsViewInsertEventArgs.cs
- OdbcConnectionString.cs
- SQLInt16.cs
- ContentIterators.cs
- ThreadExceptionEvent.cs
- CodeNamespace.cs
- SQLConvert.cs
- WhileDesigner.cs
- AnonymousIdentificationModule.cs
- Object.cs
- DocumentPageView.cs
- StandardMenuStripVerb.cs
- CompilerError.cs
- VisualTreeHelper.cs
- CreateDataSourceDialog.cs
- SegmentTree.cs
- CLSCompliantAttribute.cs
- WebPartDisplayModeEventArgs.cs
- GeometryConverter.cs
- UrlEncodedParameterWriter.cs
- WebRequestModuleElement.cs
- VirtualDirectoryMappingCollection.cs
- OdbcEnvironmentHandle.cs
- SendActivity.cs
- RuleSet.cs
- InputProcessorProfilesLoader.cs
- EntityProviderFactory.cs
- CachingHintValidation.cs
- Input.cs
- DecimalConverter.cs
- SamlSecurityTokenAuthenticator.cs
- ObjectItemCollectionAssemblyCacheEntry.cs
- WebPartTracker.cs
- PtsCache.cs
- ManagementDateTime.cs
- BaseTemplateBuildProvider.cs
- ConnectionStringsSection.cs
- LineGeometry.cs
- CodeGen.cs
- NamespaceDecl.cs
- SpeechDetectedEventArgs.cs
- RequestChannel.cs
- HWStack.cs
- EdmComplexTypeAttribute.cs
- SqlConnectionString.cs
- CallContext.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- XmlSchemaNotation.cs
- ListSourceHelper.cs
- EntityContainer.cs
- QilNode.cs
- SqlGatherConsumedAliases.cs
- PrintControllerWithStatusDialog.cs
- PersistNameAttribute.cs
- FontCacheUtil.cs
- DataGridTextBox.cs
- InheritablePropertyChangeInfo.cs
- SessionSwitchEventArgs.cs
- SpStreamWrapper.cs