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
- XmlNotation.cs
- ZeroOpNode.cs
- ChangeConflicts.cs
- DispatcherEventArgs.cs
- DBBindings.cs
- DataGridViewSortCompareEventArgs.cs
- OrderedDictionary.cs
- SqlLiftWhereClauses.cs
- sqlnorm.cs
- UIElement3D.cs
- EntityDataSourceColumn.cs
- EntityCommandExecutionException.cs
- WebPartUserCapability.cs
- BitmapEffectInput.cs
- NodeFunctions.cs
- StringCollection.cs
- CompositeFontParser.cs
- VectorAnimation.cs
- SqlConnectionHelper.cs
- BuilderPropertyEntry.cs
- BindingExpression.cs
- QilSortKey.cs
- ExpressionEditor.cs
- HwndHost.cs
- SHA256Managed.cs
- ListBindingHelper.cs
- Utils.cs
- TextDecoration.cs
- ThumbAutomationPeer.cs
- ColumnMapTranslator.cs
- BrowserDefinitionCollection.cs
- TraceRecord.cs
- SerialStream.cs
- SafeArrayRankMismatchException.cs
- XmlNodeList.cs
- EDesignUtil.cs
- CollectionEditorDialog.cs
- Crc32Helper.cs
- Schema.cs
- RowCache.cs
- SpellerStatusTable.cs
- BitmapInitialize.cs
- SerialPort.cs
- DockingAttribute.cs
- ToolStripDropDownButton.cs
- DesignerSerializationManager.cs
- StatusBarPanel.cs
- ToolTip.cs
- ConfigXmlSignificantWhitespace.cs
- XmlDictionaryWriter.cs
- SignatureHelper.cs
- EntryIndex.cs
- SqlBuilder.cs
- ConditionalAttribute.cs
- LinqTreeNodeEvaluator.cs
- DoubleUtil.cs
- WebPartTransformer.cs
- LineSegment.cs
- SqlCommand.cs
- CommandID.cs
- WebBrowserEvent.cs
- LoadedEvent.cs
- PageThemeParser.cs
- StopStoryboard.cs
- UniqueEventHelper.cs
- NamespaceEmitter.cs
- BamlLocalizableResourceKey.cs
- ColumnMapProcessor.cs
- DictationGrammar.cs
- CommandValueSerializer.cs
- SqlDeflator.cs
- ObjectComplexPropertyMapping.cs
- TreeNode.cs
- FirstQueryOperator.cs
- Fonts.cs
- EpmContentSerializer.cs
- ImageIndexConverter.cs
- AnnotationAuthorChangedEventArgs.cs
- AssemblyAttributesGoHere.cs
- Label.cs
- AliasGenerator.cs
- CqlBlock.cs
- CrossSiteScriptingValidation.cs
- BrowserCapabilitiesCompiler.cs
- WizardSideBarListControlItem.cs
- ListItemsPage.cs
- DataTableReaderListener.cs
- Activation.cs
- XmlIgnoreAttribute.cs
- BooleanAnimationBase.cs
- LambdaCompiler.Logical.cs
- ErrorLog.cs
- SafeWaitHandle.cs
- DynamicDocumentPaginator.cs
- ContentTypeSettingClientMessageFormatter.cs
- SqlBulkCopyColumnMappingCollection.cs
- WebConfigManager.cs
- MenuItemStyleCollection.cs
- GcHandle.cs
- XpsS0ValidatingLoader.cs