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
- InternalBase.cs
- ListViewDataItem.cs
- ActivityInterfaces.cs
- ToolStripSettings.cs
- BaseCodeDomTreeGenerator.cs
- InkCanvasSelectionAdorner.cs
- ContentDisposition.cs
- DependencyObjectPropertyDescriptor.cs
- Char.cs
- TextBox.cs
- CodeAssignStatement.cs
- base64Transforms.cs
- DocumentCollection.cs
- ChangePasswordDesigner.cs
- QueryCacheEntry.cs
- SchemaTypeEmitter.cs
- ColumnWidthChangingEvent.cs
- FontStyles.cs
- QilSortKey.cs
- HttpApplicationFactory.cs
- OdbcConnectionStringbuilder.cs
- DataFieldEditor.cs
- WSSecureConversation.cs
- EntityDataSourceSelectedEventArgs.cs
- CodeTypeDelegate.cs
- URLAttribute.cs
- ListViewTableRow.cs
- SqlParameterCollection.cs
- ListBoxChrome.cs
- TemplateAction.cs
- RemotingAttributes.cs
- ModelUIElement3D.cs
- COSERVERINFO.cs
- Padding.cs
- Size3D.cs
- Geometry3D.cs
- DBNull.cs
- CqlLexer.cs
- FacetValueContainer.cs
- Formatter.cs
- ZipIOExtraFieldElement.cs
- MethodToken.cs
- BuilderInfo.cs
- CodeDomSerializer.cs
- grammarelement.cs
- XmlComment.cs
- ElementUtil.cs
- ResourceLoader.cs
- itemelement.cs
- Substitution.cs
- ChtmlLinkAdapter.cs
- PathData.cs
- DateTimeConverter2.cs
- ScaleTransform.cs
- WebServiceHost.cs
- BindingCompleteEventArgs.cs
- QuadraticBezierSegment.cs
- PriorityChain.cs
- BinarySecretKeyIdentifierClause.cs
- HostUtils.cs
- ServiceEndpoint.cs
- DebugManager.cs
- ObjectDataSourceEventArgs.cs
- TailCallAnalyzer.cs
- TiffBitmapEncoder.cs
- StringArrayConverter.cs
- BoundPropertyEntry.cs
- EditCommandColumn.cs
- xml.cs
- invalidudtexception.cs
- SecurityKeyIdentifierClause.cs
- ModelFunctionTypeElement.cs
- ServiceModelSectionGroup.cs
- figurelength.cs
- IOThreadTimer.cs
- CacheSection.cs
- IncrementalCompileAnalyzer.cs
- HtmlTitle.cs
- NextPreviousPagerField.cs
- OverflowException.cs
- CorrelationResolver.cs
- NetPeerTcpBindingCollectionElement.cs
- OleDbEnumerator.cs
- MenuItemStyle.cs
- Properties.cs
- XmlHierarchicalEnumerable.cs
- Lasso.cs
- Accessible.cs
- FieldInfo.cs
- AnchoredBlock.cs
- InfoCardSymmetricCrypto.cs
- EdgeModeValidation.cs
- mediaclock.cs
- AttributeCollection.cs
- ScrollChangedEventArgs.cs
- SoapSchemaExporter.cs
- FilterEventArgs.cs
- SqlConnectionString.cs
- DbParameterHelper.cs
- ClientSession.cs