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
- OperationCanceledException.cs
- UnsafePeerToPeerMethods.cs
- ErrorRuntimeConfig.cs
- ImageMapEventArgs.cs
- StylusButton.cs
- UriParserTemplates.cs
- ArgumentNullException.cs
- CalendarSelectionChangedEventArgs.cs
- CodeAssignStatement.cs
- SQLDoubleStorage.cs
- OneOfConst.cs
- Geometry.cs
- DataServiceHostFactory.cs
- TextViewBase.cs
- DataGridViewRowPostPaintEventArgs.cs
- SoapObjectInfo.cs
- XmlSerializerNamespaces.cs
- SqlXml.cs
- AccessedThroughPropertyAttribute.cs
- SizeF.cs
- WeakReferenceEnumerator.cs
- ExtractedStateEntry.cs
- ScrollProviderWrapper.cs
- M3DUtil.cs
- MessageLoggingFilterTraceRecord.cs
- HttpCacheParams.cs
- GuidConverter.cs
- EnumBuilder.cs
- SerializationInfo.cs
- DataGridViewCheckBoxColumn.cs
- DataGridHeadersVisibilityToVisibilityConverter.cs
- RuleSettings.cs
- QueryTreeBuilder.cs
- GPRECTF.cs
- ByteAnimation.cs
- FragmentNavigationEventArgs.cs
- WebUtil.cs
- FileLogRecord.cs
- WebPartTracker.cs
- TargetFrameworkUtil.cs
- _ConnectionGroup.cs
- FormsAuthenticationModule.cs
- ImageAutomationPeer.cs
- GlobalizationAssembly.cs
- MenuItem.cs
- XmlValidatingReader.cs
- PerformanceCounterManager.cs
- PropertyChangedEventArgs.cs
- ResourceExpressionBuilder.cs
- WebPartRestoreVerb.cs
- InfoCardProofToken.cs
- Exceptions.cs
- XmlTextEncoder.cs
- XmlSchemaRedefine.cs
- DataServiceHost.cs
- DateTimeConstantAttribute.cs
- AssociatedControlConverter.cs
- OleDbParameter.cs
- SchemaImporterExtensionElementCollection.cs
- TextAnchor.cs
- LayoutTable.cs
- BitmapEffectCollection.cs
- TextEditorLists.cs
- DataGridViewCellEventArgs.cs
- DispatcherSynchronizationContext.cs
- PolicyVersionConverter.cs
- ListSourceHelper.cs
- CoordinationService.cs
- CommunicationObject.cs
- RegexRunner.cs
- DomainUpDown.cs
- MDIControlStrip.cs
- ParallelEnumerable.cs
- DataServiceRequest.cs
- WebSysDisplayNameAttribute.cs
- AspCompat.cs
- RtType.cs
- FileUtil.cs
- GridSplitter.cs
- ScriptResourceAttribute.cs
- WmiPutTraceRecord.cs
- Profiler.cs
- ProviderSettings.cs
- PrincipalPermission.cs
- PointUtil.cs
- HtmlMobileTextWriter.cs
- DefaultValueConverter.cs
- SmtpClient.cs
- ContentHostHelper.cs
- RegionInfo.cs
- SchemaConstraints.cs
- RenamedEventArgs.cs
- RIPEMD160Managed.cs
- OrthographicCamera.cs
- CatalogZone.cs
- ListViewCommandEventArgs.cs
- ContextStack.cs
- CultureTableRecord.cs
- XhtmlTextWriter.cs
- DodSequenceMerge.cs