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
- HierarchicalDataSourceControl.cs
- CatalogPartDesigner.cs
- GetReadStreamResult.cs
- TypeUtil.cs
- Metafile.cs
- Vector3DAnimationBase.cs
- LineGeometry.cs
- DivideByZeroException.cs
- ServiceObjectContainer.cs
- SafeUserTokenHandle.cs
- DockingAttribute.cs
- ReadOnlyHierarchicalDataSourceView.cs
- TablePatternIdentifiers.cs
- ConstraintConverter.cs
- StorageAssociationSetMapping.cs
- SchemaEntity.cs
- OutputCacheSection.cs
- TracedNativeMethods.cs
- ErrorLog.cs
- PerspectiveCamera.cs
- AppDomainProtocolHandler.cs
- Application.cs
- InitializeCorrelation.cs
- XamlHostingSectionGroup.cs
- ProfileBuildProvider.cs
- WebPartCatalogCloseVerb.cs
- WebHttpBehavior.cs
- WindowPattern.cs
- SqlAliaser.cs
- NameSpaceEvent.cs
- WindowsHyperlink.cs
- ConfigurationLocation.cs
- MaterialCollection.cs
- EntityContainerEntitySetDefiningQuery.cs
- MarginsConverter.cs
- ContractComponent.cs
- HttpRawResponse.cs
- FlowDocumentReaderAutomationPeer.cs
- WebServiceParameterData.cs
- XmlUtf8RawTextWriter.cs
- ApplyTemplatesAction.cs
- CodeAttachEventStatement.cs
- InstanceContextMode.cs
- SafeArrayRankMismatchException.cs
- StringCollection.cs
- XmlIlTypeHelper.cs
- StructuredType.cs
- WebMessageBodyStyleHelper.cs
- LambdaCompiler.cs
- GeneralTransformCollection.cs
- KerberosSecurityTokenAuthenticator.cs
- TypeSystemHelpers.cs
- NonBatchDirectoryCompiler.cs
- TextSearch.cs
- List.cs
- mda.cs
- DeleteWorkflowOwnerCommand.cs
- Reference.cs
- ControlPropertyNameConverter.cs
- Ray3DHitTestResult.cs
- KeyFrames.cs
- LinqExpressionNormalizer.cs
- SafeIUnknown.cs
- DataStorage.cs
- TemplateControl.cs
- ToolStripSplitButton.cs
- DrawingServices.cs
- MenuCommandsChangedEventArgs.cs
- DataServiceHost.cs
- AsymmetricSecurityProtocol.cs
- DnsEndpointIdentity.cs
- graph.cs
- SqlCacheDependencyDatabaseCollection.cs
- SrgsGrammar.cs
- PathGeometry.cs
- AutoGeneratedFieldProperties.cs
- complextypematerializer.cs
- HtmlSelect.cs
- ETagAttribute.cs
- XamlBrushSerializer.cs
- Error.cs
- ColorDialog.cs
- COM2IProvidePropertyBuilderHandler.cs
- WebPartManagerInternals.cs
- EDesignUtil.cs
- ImageMapEventArgs.cs
- AttachmentService.cs
- HttpRawResponse.cs
- DataGridViewTopRowAccessibleObject.cs
- TraceProvider.cs
- EnumMemberAttribute.cs
- ApplicationSecurityInfo.cs
- DecoderNLS.cs
- OperatingSystem.cs
- FamilyTypeface.cs
- BoundingRectTracker.cs
- InputReportEventArgs.cs
- BStrWrapper.cs
- XmlSchemaValidationException.cs
- EntityCollectionChangedParams.cs