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
- MemberHolder.cs
- QilTargetType.cs
- GregorianCalendarHelper.cs
- ConsoleKeyInfo.cs
- TextBlockAutomationPeer.cs
- BaseCAMarshaler.cs
- KeyBinding.cs
- XPathBinder.cs
- HandlerBase.cs
- XmlMemberMapping.cs
- AppDomainProtocolHandler.cs
- Int64Animation.cs
- XmlSerializationReader.cs
- DynamicDataRouteHandler.cs
- DataGridViewSortCompareEventArgs.cs
- VideoDrawing.cs
- FragmentQuery.cs
- SchemaImporter.cs
- SingleAnimationBase.cs
- documentation.cs
- ThicknessConverter.cs
- FileVersion.cs
- SpotLight.cs
- FileLoadException.cs
- sortedlist.cs
- SettingsPropertyIsReadOnlyException.cs
- TileBrush.cs
- ColorMatrix.cs
- KeySplineConverter.cs
- FatalException.cs
- XmlUrlResolver.cs
- Model3DCollection.cs
- ProfileParameter.cs
- SqlProfileProvider.cs
- BitmapEffectGroup.cs
- FormatterServices.cs
- SpecularMaterial.cs
- SendMailErrorEventArgs.cs
- ApplicationActivator.cs
- DefaultTraceListener.cs
- StylusOverProperty.cs
- HighlightComponent.cs
- RedBlackList.cs
- SqlCommand.cs
- UserThread.cs
- NativeMethods.cs
- FtpCachePolicyElement.cs
- AttributeInfo.cs
- VerificationAttribute.cs
- PathFigure.cs
- IconConverter.cs
- SafeNativeMethods.cs
- DataGridViewHitTestInfo.cs
- PingReply.cs
- XmlDocument.cs
- XmlSchemas.cs
- CheckoutException.cs
- KeyedCollection.cs
- MSAAWinEventWrap.cs
- SettingsContext.cs
- PathHelper.cs
- ConfigurationManager.cs
- AspNetSynchronizationContext.cs
- TextStore.cs
- ListControlDesigner.cs
- EmptyQuery.cs
- GeometryGroup.cs
- DataRelation.cs
- HealthMonitoringSectionHelper.cs
- CheckBoxStandardAdapter.cs
- OledbConnectionStringbuilder.cs
- X509AsymmetricSecurityKey.cs
- HtmlTextArea.cs
- SafeThreadHandle.cs
- ProbeMatchesApril2005.cs
- COMException.cs
- HotSpot.cs
- CodeNamespaceImportCollection.cs
- TextBoxRenderer.cs
- ListBox.cs
- StorageMappingFragment.cs
- CategoryGridEntry.cs
- ConfigurationManager.cs
- PreProcessor.cs
- ProxyManager.cs
- CodeCastExpression.cs
- BitmapEffectInputData.cs
- NameValuePair.cs
- ItemsPresenter.cs
- XPathSingletonIterator.cs
- CheckBoxFlatAdapter.cs
- METAHEADER.cs
- GridViewItemAutomationPeer.cs
- PerformanceCounterPermission.cs
- MemoryPressure.cs
- SecurityUtils.cs
- PolyQuadraticBezierSegment.cs
- CancelEventArgs.cs
- ButtonField.cs
- QilGeneratorEnv.cs