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
- HatchBrush.cs
- Faults.cs
- FigureHelper.cs
- SHA1CryptoServiceProvider.cs
- SectionInformation.cs
- SqlCacheDependency.cs
- SymLanguageVendor.cs
- DbSetClause.cs
- WpfKnownMemberInvoker.cs
- QilChoice.cs
- IssuanceLicense.cs
- XPathMultyIterator.cs
- HttpHeaderCollection.cs
- Cursor.cs
- HtmlInputControl.cs
- WebBrowserHelper.cs
- TextPointerBase.cs
- DuplexChannel.cs
- RowToFieldTransformer.cs
- FloaterBaseParagraph.cs
- HtmlInputFile.cs
- X500Name.cs
- ConfigXmlWhitespace.cs
- ZipIOFileItemStream.cs
- Rule.cs
- SimplePropertyEntry.cs
- Clock.cs
- Char.cs
- FileUpload.cs
- ContextStaticAttribute.cs
- TaskResultSetter.cs
- ExcCanonicalXml.cs
- WindowsFormsHost.cs
- PrimitiveRenderer.cs
- RuleInfoComparer.cs
- QueryInterceptorAttribute.cs
- MaskDescriptors.cs
- ResourceSetExpression.cs
- HtmlTextArea.cs
- FormsAuthenticationUser.cs
- TextMetrics.cs
- CompilerGlobalScopeAttribute.cs
- AttributeEmitter.cs
- PropertyChangingEventArgs.cs
- Pair.cs
- PageCopyCount.cs
- TransactionWaitAsyncResult.cs
- ResourceReferenceExpressionConverter.cs
- DefaultIfEmptyQueryOperator.cs
- MessageSmuggler.cs
- ResXFileRef.cs
- TransformGroup.cs
- UriTemplateClientFormatter.cs
- DataServiceQueryContinuation.cs
- XmlSchemaElement.cs
- SyndicationSerializer.cs
- NullableFloatAverageAggregationOperator.cs
- WhereQueryOperator.cs
- AddInStore.cs
- AccessedThroughPropertyAttribute.cs
- Schema.cs
- RowType.cs
- TypeConverterHelper.cs
- HashRepartitionStream.cs
- XmlQueryCardinality.cs
- IsolatedStorageFilePermission.cs
- Bind.cs
- SoapClientProtocol.cs
- UnionExpr.cs
- FontDriver.cs
- PaintEvent.cs
- Calendar.cs
- NotFiniteNumberException.cs
- ToolStripRenderEventArgs.cs
- ConnectionStringsSection.cs
- StringToken.cs
- Compiler.cs
- WebInvokeAttribute.cs
- GridViewRowPresenterBase.cs
- SamlAuthorizationDecisionClaimResource.cs
- Win32KeyboardDevice.cs
- _Events.cs
- cookiecollection.cs
- PrePrepareMethodAttribute.cs
- Relationship.cs
- SQLBytes.cs
- ByteBufferPool.cs
- SiteMapNodeCollection.cs
- AvTrace.cs
- DataServiceContext.cs
- HelpExampleGenerator.cs
- TreeNodeStyleCollection.cs
- InstallHelper.cs
- TargetParameterCountException.cs
- CookieParameter.cs
- OracleParameter.cs
- CallSiteBinder.cs
- BamlRecordWriter.cs
- InvokeMethodDesigner.xaml.cs
- EncodingInfo.cs