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
- AxHost.cs
- NumberSubstitution.cs
- Vector.cs
- _OSSOCK.cs
- SqlConnectionStringBuilder.cs
- StateBag.cs
- MimeReflector.cs
- sqlmetadatafactory.cs
- PointKeyFrameCollection.cs
- ChtmlPageAdapter.cs
- _IPv4Address.cs
- DeviceContext2.cs
- ChangeToolStripParentVerb.cs
- ImageBrush.cs
- SqlPersistenceProviderFactory.cs
- Point3DAnimationUsingKeyFrames.cs
- SHA512.cs
- CodeDirectionExpression.cs
- SamlAssertion.cs
- PageOutputQuality.cs
- StringSorter.cs
- COM2Enum.cs
- SHA256Managed.cs
- WebServiceParameterData.cs
- SoapClientProtocol.cs
- EdmSchemaAttribute.cs
- SafeBitVector32.cs
- DictionarySectionHandler.cs
- PerformanceCounterPermissionAttribute.cs
- JoinElimination.cs
- IntegerFacetDescriptionElement.cs
- Resources.Designer.cs
- ResourceDisplayNameAttribute.cs
- ReadOnlyAttribute.cs
- SecurityPolicySection.cs
- DataGridViewColumnStateChangedEventArgs.cs
- DetailsViewAutoFormat.cs
- DataColumnPropertyDescriptor.cs
- DrawingAttributes.cs
- EventMappingSettings.cs
- WS2007FederationHttpBindingElement.cs
- ConnectionPoint.cs
- _AutoWebProxyScriptEngine.cs
- RectangleConverter.cs
- CodePageEncoding.cs
- HtmlUtf8RawTextWriter.cs
- DbMetaDataFactory.cs
- CodeObject.cs
- DockAndAnchorLayout.cs
- PrimarySelectionGlyph.cs
- InternalSafeNativeMethods.cs
- Propagator.ExtentPlaceholderCreator.cs
- InvalidCastException.cs
- ChainOfResponsibility.cs
- ComAdminInterfaces.cs
- TraceContextEventArgs.cs
- DropDownButton.cs
- XmlSignatureProperties.cs
- WebPartsPersonalizationAuthorization.cs
- ListViewItemEventArgs.cs
- DirectoryInfo.cs
- WindowsAuthenticationModule.cs
- MouseDevice.cs
- _ListenerAsyncResult.cs
- SQLString.cs
- ProtocolsSection.cs
- SessionEndingEventArgs.cs
- AssertValidation.cs
- ConfigurationSectionCollection.cs
- AdapterSwitches.cs
- ListViewItem.cs
- SpecularMaterial.cs
- BinHexEncoder.cs
- OraclePermissionAttribute.cs
- RenderTargetBitmap.cs
- DataGridRow.cs
- InfoCardRSAOAEPKeyExchangeDeformatter.cs
- Stroke2.cs
- BindingContext.cs
- EncryptedData.cs
- Filter.cs
- SharedStream.cs
- FormViewUpdateEventArgs.cs
- TemplateXamlParser.cs
- ModuleConfigurationInfo.cs
- XmlSignificantWhitespace.cs
- StrokeCollection2.cs
- AuthenticationServiceManager.cs
- ByteStreamGeometryContext.cs
- PageFunction.cs
- ProfileInfo.cs
- CodeDOMProvider.cs
- CodeArrayCreateExpression.cs
- CompilationLock.cs
- DecoderExceptionFallback.cs
- LayoutTableCell.cs
- UniformGrid.cs
- Tuple.cs
- BufferedWebEventProvider.cs
- GeometryHitTestResult.cs