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
- PtsCache.cs
- ToolBar.cs
- RegexGroupCollection.cs
- Inline.cs
- UserControlBuildProvider.cs
- ListViewUpdateEventArgs.cs
- ScriptingWebServicesSectionGroup.cs
- TreeView.cs
- ExtendedProtectionPolicyTypeConverter.cs
- FlowDocumentScrollViewer.cs
- SqlWebEventProvider.cs
- HandleValueEditor.cs
- HtmlContainerControl.cs
- DTCTransactionManager.cs
- ResourcesGenerator.cs
- FormatException.cs
- DataViewListener.cs
- DataGridCellsPanel.cs
- HtmlInputImage.cs
- UidPropertyAttribute.cs
- DbBuffer.cs
- BamlMapTable.cs
- Opcode.cs
- XmlDocumentViewSchema.cs
- DelegateSerializationHolder.cs
- MultiPartWriter.cs
- CfgSemanticTag.cs
- OdbcPermission.cs
- precedingquery.cs
- StylusCaptureWithinProperty.cs
- FormatConvertedBitmap.cs
- _NegotiateClient.cs
- MemberPath.cs
- WindowManager.cs
- KeyedByTypeCollection.cs
- RawTextInputReport.cs
- DateTime.cs
- CalendarDay.cs
- FactorySettingsElement.cs
- ZipIOCentralDirectoryBlock.cs
- InputLanguageProfileNotifySink.cs
- SqlDataSourceCustomCommandEditor.cs
- InternalControlCollection.cs
- SafeEventLogWriteHandle.cs
- EventMappingSettings.cs
- SoapCodeExporter.cs
- Crc32Helper.cs
- Directory.cs
- GridViewRowCollection.cs
- NativeCppClassAttribute.cs
- ListControlConvertEventArgs.cs
- CorePropertiesFilter.cs
- VectorConverter.cs
- InputLanguageManager.cs
- XDRSchema.cs
- TemplateControlParser.cs
- DrawListViewItemEventArgs.cs
- Version.cs
- SmiEventStream.cs
- UpdateManifestForBrowserApplication.cs
- ObsoleteAttribute.cs
- PropertyCondition.cs
- BasicExpandProvider.cs
- Delegate.cs
- FixUpCollection.cs
- RoleManagerEventArgs.cs
- SqlConnectionFactory.cs
- SQLInt16.cs
- EdmComplexTypeAttribute.cs
- UnaryQueryOperator.cs
- ByteStreamBufferedMessageData.cs
- CheckedListBox.cs
- XmlText.cs
- RowToParametersTransformer.cs
- RegexMatch.cs
- RectIndependentAnimationStorage.cs
- ListViewGroupItemCollection.cs
- SocketElement.cs
- XmlNamespaceDeclarationsAttribute.cs
- OdbcPermission.cs
- StaticContext.cs
- MonthChangedEventArgs.cs
- ObjectComplexPropertyMapping.cs
- SoundPlayerAction.cs
- Stacktrace.cs
- ResourceWriter.cs
- ParallelLoopState.cs
- XmlSerializerAssemblyAttribute.cs
- FormViewUpdatedEventArgs.cs
- SQLBytesStorage.cs
- RawKeyboardInputReport.cs
- IgnoreDeviceFilterElementCollection.cs
- IisTraceListener.cs
- LogSwitch.cs
- InstanceCreationEditor.cs
- RayHitTestParameters.cs
- coordinator.cs
- WindowPatternIdentifiers.cs
- UnionCodeGroup.cs
- mediaeventshelper.cs