Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / clr / src / BCL / System / Security / Permissions / StrongNamePublicKeyBlob.cs / 1 / StrongNamePublicKeyBlob.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== // StrongNamePublicKeyBlob.cs // namespace System.Security.Permissions { using System; using SecurityElement = System.Security.SecurityElement; using System.Security.Util; [System.Runtime.InteropServices.ComVisible(true)] [Serializable] sealed public class StrongNamePublicKeyBlob { internal byte[] PublicKey; internal StrongNamePublicKeyBlob() { } public StrongNamePublicKeyBlob( byte[] publicKey ) { if (publicKey == null) throw new ArgumentNullException( "PublicKey" ); this.PublicKey = new byte[publicKey.Length]; Array.Copy( publicKey, 0, this.PublicKey, 0, publicKey.Length ); } internal StrongNamePublicKeyBlob( String publicKey ) { this.PublicKey = Hex.DecodeHexString( publicKey ); } private static bool CompareArrays( byte[] first, byte[] second ) { if (first.Length != second.Length) { return false; } int count = first.Length; for (int i = 0; i < count; ++i) { if (first[i] != second[i]) return false; } return true; } internal bool Equals( StrongNamePublicKeyBlob blob ) { if (blob == null) return false; else return CompareArrays( this.PublicKey, blob.PublicKey ); } public override bool Equals( Object obj ) { if (obj == null || !(obj is StrongNamePublicKeyBlob)) return false; return this.Equals( (StrongNamePublicKeyBlob)obj ); } static private int GetByteArrayHashCode( byte[] baData ) { if (baData == null) return 0; int accumulator = 0; for (int i = 0; i < baData.Length; ++i) { accumulator = (accumulator << 8) ^ (int)baData[i] ^ (accumulator >> 24); } return accumulator; } public override int GetHashCode() { return GetByteArrayHashCode( PublicKey ); } public override String ToString() { return Hex.EncodeHexString( PublicKey ); } } }
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ValidatingReaderNodeData.cs
- HandleValueEditor.cs
- ExpressionBindings.cs
- ManipulationDevice.cs
- BCLDebug.cs
- PriorityItem.cs
- HttpRuntime.cs
- ActiveXSerializer.cs
- TextOnlyOutput.cs
- TerminateSequence.cs
- GridView.cs
- ResourceDisplayNameAttribute.cs
- Schema.cs
- TableLayoutPanel.cs
- EntityTypeEmitter.cs
- DtcInterfaces.cs
- EncodingTable.cs
- ScriptControl.cs
- ColumnCollection.cs
- ViewManager.cs
- ProfessionalColorTable.cs
- XmlResolver.cs
- XmlWhitespace.cs
- LinearKeyFrames.cs
- CalendarTable.cs
- NamespaceList.cs
- DispatcherExceptionFilterEventArgs.cs
- TypeName.cs
- UserControl.cs
- AdPostCacheSubstitution.cs
- CounterNameConverter.cs
- ElementProxy.cs
- DocumentPage.cs
- RecoverInstanceLocksCommand.cs
- TitleStyle.cs
- DependencyObject.cs
- PathFigure.cs
- DeviceFilterDictionary.cs
- PermissionRequestEvidence.cs
- HttpCookieCollection.cs
- ComponentResourceManager.cs
- VisualCollection.cs
- DataGridViewButtonCell.cs
- SessionStateContainer.cs
- HttpRequestWrapper.cs
- PrivilegedConfigurationManager.cs
- ReflectionPermission.cs
- HostingPreferredMapPath.cs
- SpeechUI.cs
- RawKeyboardInputReport.cs
- DeflateInput.cs
- ValidatorUtils.cs
- ComboBoxItem.cs
- KeyedPriorityQueue.cs
- DataReaderContainer.cs
- SafeEventLogWriteHandle.cs
- StatementContext.cs
- GridItem.cs
- ArrayList.cs
- AppDomainProtocolHandler.cs
- MethodAccessException.cs
- ArcSegment.cs
- EventHandlersStore.cs
- GridProviderWrapper.cs
- FtpWebResponse.cs
- WebServiceParameterData.cs
- IDQuery.cs
- FormsIdentity.cs
- Int32CAMarshaler.cs
- X500Name.cs
- IsolatedStorageFilePermission.cs
- EventDescriptor.cs
- SystemThemeKey.cs
- CodeStatementCollection.cs
- GreenMethods.cs
- NullReferenceException.cs
- CLSCompliantAttribute.cs
- HtmlTextViewAdapter.cs
- PageRequestManager.cs
- QueryContinueDragEvent.cs
- TextEndOfParagraph.cs
- WhitespaceRuleReader.cs
- GatewayDefinition.cs
- HttpStreamXmlDictionaryWriter.cs
- PageRequestManager.cs
- InvalidFilterCriteriaException.cs
- FrameworkPropertyMetadata.cs
- Pen.cs
- Panel.cs
- CollectionCodeDomSerializer.cs
- RolePrincipal.cs
- mda.cs
- RequiredFieldValidator.cs
- IpcPort.cs
- NonClientArea.cs
- ValidationHelpers.cs
- ConfigXmlWhitespace.cs
- SqlCachedBuffer.cs
- ControlAdapter.cs
- NamedPermissionSet.cs