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
- LinkButton.cs
- cache.cs
- EnglishPluralizationService.cs
- SchemaConstraints.cs
- LabelDesigner.cs
- XsltLibrary.cs
- DispatcherObject.cs
- WebServiceAttribute.cs
- OutputCacheSection.cs
- TokenBasedSet.cs
- ObjectStorage.cs
- TextDecorationUnitValidation.cs
- SortExpressionBuilder.cs
- Renderer.cs
- OdbcConnectionFactory.cs
- TextContainerHelper.cs
- StringCollection.cs
- ObjectComplexPropertyMapping.cs
- FileRecordSequence.cs
- FileUtil.cs
- RoutedPropertyChangedEventArgs.cs
- ToolStripContainer.cs
- FaultContractAttribute.cs
- Assembly.cs
- XpsSerializationManagerAsync.cs
- FileDetails.cs
- SystemWebSectionGroup.cs
- DataGridItemAttachedStorage.cs
- WebColorConverter.cs
- ToolStripDesignerAvailabilityAttribute.cs
- IPAddress.cs
- ExpressionVisitor.cs
- ResourceDisplayNameAttribute.cs
- AnimationLayer.cs
- PageRouteHandler.cs
- ParagraphResult.cs
- OleDbFactory.cs
- ToolStripItemCollection.cs
- GroupLabel.cs
- CorrelationResolver.cs
- DependencyPropertyConverter.cs
- HtmlImageAdapter.cs
- WebSysDisplayNameAttribute.cs
- Form.cs
- UnhandledExceptionEventArgs.cs
- Profiler.cs
- CompiledRegexRunnerFactory.cs
- RIPEMD160.cs
- TabItemWrapperAutomationPeer.cs
- StylusPointProperty.cs
- UserControl.cs
- MouseWheelEventArgs.cs
- sqlmetadatafactory.cs
- Hashtable.cs
- TypeElementCollection.cs
- SemaphoreFullException.cs
- ConfigXmlText.cs
- ProfileService.cs
- KnownIds.cs
- TextEditorSpelling.cs
- MouseActionValueSerializer.cs
- Base64Encoder.cs
- CacheVirtualItemsEvent.cs
- WebHttpBinding.cs
- InternalConfigHost.cs
- Sentence.cs
- WorkflowItemPresenter.cs
- BaseWebProxyFinder.cs
- DynamicControl.cs
- AutoFocusStyle.xaml.cs
- ObjectViewQueryResultData.cs
- WaitHandle.cs
- UpdateCompiler.cs
- PrimitiveCodeDomSerializer.cs
- DispatcherHookEventArgs.cs
- RemotingConfigParser.cs
- Automation.cs
- EntryWrittenEventArgs.cs
- HttpClientCertificate.cs
- GridViewColumnCollection.cs
- DataControlPagerLinkButton.cs
- complextypematerializer.cs
- TextureBrush.cs
- LineServicesRun.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- SqlDuplicator.cs
- XmlSerializer.cs
- ListViewItem.cs
- CodeDirectiveCollection.cs
- CodeDirectoryCompiler.cs
- String.cs
- XAMLParseException.cs
- LabelLiteral.cs
- Run.cs
- CodeLinePragma.cs
- CodeTryCatchFinallyStatement.cs
- FontSourceCollection.cs
- Adorner.cs
- Matrix3DConverter.cs
- XmlSchemaAppInfo.cs