Code:
/ 4.0 / 4.0 / 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. //------------------------------------------------------------ // 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
- UnsafeNativeMethods.cs
- ObjectStateEntryOriginalDbUpdatableDataRecord.cs
- FileFormatException.cs
- ManipulationStartedEventArgs.cs
- _BasicClient.cs
- ZoneLinkButton.cs
- StructuralType.cs
- SqlDataSourceStatusEventArgs.cs
- WindowsListViewGroupHelper.cs
- CustomTrackingRecord.cs
- SmtpFailedRecipientsException.cs
- DateTimeOffset.cs
- XmlBinaryReaderSession.cs
- Membership.cs
- SerTrace.cs
- Metafile.cs
- XmlSerializerAssemblyAttribute.cs
- serverconfig.cs
- ControlIdConverter.cs
- TraceUtility.cs
- XPathScanner.cs
- DirectoryInfo.cs
- ModelFunctionTypeElement.cs
- FreezableDefaultValueFactory.cs
- SmiEventSink.cs
- Transform.cs
- Visual3D.cs
- SmtpNegotiateAuthenticationModule.cs
- GridViewDesigner.cs
- XsltConvert.cs
- Int16.cs
- PeerContact.cs
- HwndTarget.cs
- ProviderMetadataCachedInformation.cs
- Transform.cs
- Timer.cs
- DeviceContexts.cs
- ItemCheckedEvent.cs
- Control.cs
- UserNameServiceElement.cs
- ExpressionPrefixAttribute.cs
- ToolBarOverflowPanel.cs
- ThrowOnMultipleAssignment.cs
- GlobalAclOperationRequirement.cs
- EmptyStringExpandableObjectConverter.cs
- CompressedStack.cs
- TreeNodeCollection.cs
- Avt.cs
- ManagementNamedValueCollection.cs
- XmlSchemaAnyAttribute.cs
- CacheMode.cs
- CallbackValidator.cs
- DbConnectionPoolIdentity.cs
- StringConcat.cs
- DocumentPaginator.cs
- Point3D.cs
- UserPersonalizationStateInfo.cs
- ClientFormsIdentity.cs
- ISCIIEncoding.cs
- ObjectListTitleAttribute.cs
- XamlDesignerSerializationManager.cs
- HostedAspNetEnvironment.cs
- KeyValuePair.cs
- MemoryPressure.cs
- Helper.cs
- HtmlInputPassword.cs
- TextLineResult.cs
- COAUTHINFO.cs
- WeakReference.cs
- DrawingVisualDrawingContext.cs
- EmissiveMaterial.cs
- DesignerForm.cs
- PointConverter.cs
- AutoCompleteStringCollection.cs
- UndoManager.cs
- CodeDirectiveCollection.cs
- AutomationProperty.cs
- StrongNameKeyPair.cs
- ExtenderControl.cs
- DeferredRunTextReference.cs
- SafeCryptoKeyHandle.cs
- PrtTicket_Public_Simple.cs
- ObjectStateEntryBaseUpdatableDataRecord.cs
- MeshGeometry3D.cs
- EastAsianLunisolarCalendar.cs
- Constraint.cs
- SparseMemoryStream.cs
- RadioButton.cs
- CounterCreationDataCollection.cs
- TypeElement.cs
- ActivityValidationServices.cs
- CodeExpressionCollection.cs
- StringConverter.cs
- ListDictionaryInternal.cs
- ExceptionUtil.cs
- HttpAsyncResult.cs
- GenerateHelper.cs
- DirectionalLight.cs
- SelectionEditor.cs
- BackStopAuthenticationModule.cs