Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / IdentityModel / System / IdentityModel / Tokens / X509SubjectKeyIdentifierClause.cs / 1305376 / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ViewLoader.cs
- EditorAttribute.cs
- ContentElement.cs
- OdbcTransaction.cs
- DataViewManagerListItemTypeDescriptor.cs
- MaskedTextBoxDesignerActionList.cs
- WebPartDescription.cs
- HtmlInputFile.cs
- RemotingAttributes.cs
- ConditionedDesigner.cs
- MetadataPropertyAttribute.cs
- MD5.cs
- QueryHandler.cs
- Label.cs
- SQLDateTimeStorage.cs
- WebControlToolBoxItem.cs
- TemplatedEditableDesignerRegion.cs
- ServiceElementCollection.cs
- InitiatorSessionSymmetricMessageSecurityProtocol.cs
- CatalogPartDesigner.cs
- FormsIdentity.cs
- WS2007FederationHttpBindingCollectionElement.cs
- SecureConversationSecurityTokenParameters.cs
- ComponentCollection.cs
- ZipFileInfoCollection.cs
- EventHandlingScope.cs
- MenuAutoFormat.cs
- PreProcessInputEventArgs.cs
- DeflateEmulationStream.cs
- wgx_render.cs
- DesignSurface.cs
- GPPOINT.cs
- FontFamily.cs
- DesignerOptions.cs
- SizeChangedInfo.cs
- LogExtentCollection.cs
- ReferencedCategoriesDocument.cs
- CodeTypeReferenceCollection.cs
- SiteMapNodeCollection.cs
- UInt16.cs
- OverflowException.cs
- MenuItemBinding.cs
- EmptyReadOnlyDictionaryInternal.cs
- XmlAnyAttributeAttribute.cs
- XmlTypeMapping.cs
- GlyphInfoList.cs
- BinaryMethodMessage.cs
- WaveHeader.cs
- ConditionalAttribute.cs
- httpserverutility.cs
- ErrorRuntimeConfig.cs
- MetadataItemEmitter.cs
- ExceptionUtil.cs
- VisualBrush.cs
- TransactionTable.cs
- AuthenticationConfig.cs
- VirtualizingStackPanel.cs
- SimpleBitVector32.cs
- TypographyProperties.cs
- CharacterMetricsDictionary.cs
- ObjectStateManager.cs
- DetailsViewRow.cs
- WebPartConnectionCollection.cs
- MsmqHostedTransportConfiguration.cs
- HttpProfileBase.cs
- MethodRental.cs
- TableLayoutCellPaintEventArgs.cs
- CreateUserErrorEventArgs.cs
- ConfigurationPermission.cs
- TextTreeInsertElementUndoUnit.cs
- BaseDataListPage.cs
- FaultBookmark.cs
- Viewport3DAutomationPeer.cs
- RequestCacheEntry.cs
- ResizeGrip.cs
- PageHandlerFactory.cs
- Range.cs
- DeviceContext.cs
- Empty.cs
- Solver.cs
- wgx_render.cs
- TraceXPathNavigator.cs
- WindowsGraphics.cs
- Expander.cs
- StateWorkerRequest.cs
- OdbcStatementHandle.cs
- PackageFilter.cs
- EditorZone.cs
- AnnotationAuthorChangedEventArgs.cs
- IDictionary.cs
- documentsequencetextview.cs
- TextTreeTextNode.cs
- FaultCallbackWrapper.cs
- Pen.cs
- DataGridTextBoxColumn.cs
- GreenMethods.cs
- BulletChrome.cs
- FixedTextView.cs
- BulletedList.cs
- NavigationCommands.cs