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
- SqlNodeAnnotations.cs
- Cursors.cs
- BufferedGenericXmlSecurityToken.cs
- PermissionSetTriple.cs
- CollectionViewGroupInternal.cs
- FtpWebRequest.cs
- FragmentQuery.cs
- ListViewEditEventArgs.cs
- Facet.cs
- ConfigurationStrings.cs
- DynamicExpression.cs
- ItemMap.cs
- TrackingRecord.cs
- XmlNamespaceManager.cs
- JsonReader.cs
- PropertyStore.cs
- HMACSHA384.cs
- DataGridViewColumnEventArgs.cs
- HandleCollector.cs
- DataBoundControlHelper.cs
- ReaderWriterLock.cs
- OleCmdHelper.cs
- Sequence.cs
- DbBuffer.cs
- EncryptedKey.cs
- NumberFunctions.cs
- ExceptionUtil.cs
- PasswordRecovery.cs
- MSG.cs
- TextBoxBase.cs
- TableDetailsRow.cs
- DataColumnSelectionConverter.cs
- SecurityTokenParametersEnumerable.cs
- EventLogReader.cs
- ToolboxItemCollection.cs
- DataBoundControlAdapter.cs
- NullableDoubleAverageAggregationOperator.cs
- _LazyAsyncResult.cs
- UnsafeNativeMethodsCLR.cs
- PolicyManager.cs
- MatrixCamera.cs
- TextWriterEngine.cs
- IntegerFacetDescriptionElement.cs
- ToolStripHighContrastRenderer.cs
- SqlRowUpdatedEvent.cs
- IndexedGlyphRun.cs
- SubstitutionList.cs
- SecurityDocument.cs
- HtmlButton.cs
- FrameworkElementFactoryMarkupObject.cs
- UnionExpr.cs
- XamlBrushSerializer.cs
- BatchStream.cs
- ObjectListComponentEditor.cs
- NotCondition.cs
- FixedSOMPage.cs
- TemplatedAdorner.cs
- TimerElapsedEvenArgs.cs
- XmlHierarchicalEnumerable.cs
- xmlformatgeneratorstatics.cs
- TableSectionStyle.cs
- SqlTrackingQuery.cs
- SqlDataSourceView.cs
- PeerPresenceInfo.cs
- ChannelSinkStacks.cs
- mediaclock.cs
- CursorConverter.cs
- ArrayElementGridEntry.cs
- TreeNodeConverter.cs
- ScriptingScriptResourceHandlerSection.cs
- BindableTemplateBuilder.cs
- XmlAutoDetectWriter.cs
- WebPartConnectionsConfigureVerb.cs
- ContentElement.cs
- SecurityPolicySection.cs
- Win32MouseDevice.cs
- shaperfactoryquerycacheentry.cs
- WorkflowQueuingService.cs
- PlatformNotSupportedException.cs
- Volatile.cs
- ConstraintEnumerator.cs
- DbParameterCollection.cs
- OleDbReferenceCollection.cs
- CustomErrorCollection.cs
- EventLogEntry.cs
- IdleTimeoutMonitor.cs
- Quad.cs
- MenuScrollingVisibilityConverter.cs
- URLString.cs
- OdbcParameterCollection.cs
- SafeNativeMethods.cs
- ServiceHttpHandlerFactory.cs
- InvalidDataException.cs
- Domain.cs
- SchemaTableOptionalColumn.cs
- SplitterPanel.cs
- Clause.cs
- PageAsyncTask.cs
- ProfessionalColorTable.cs
- ExpressionEditorAttribute.cs