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
- BindingNavigatorDesigner.cs
- LeftCellWrapper.cs
- DefaultPropertyAttribute.cs
- _BaseOverlappedAsyncResult.cs
- WorkflowDurableInstance.cs
- TextEditorTables.cs
- RadioButton.cs
- ProviderConnectionPoint.cs
- StrokeNode.cs
- IResourceProvider.cs
- FieldToken.cs
- DataGridSortingEventArgs.cs
- X509Chain.cs
- ZipIOExtraFieldZip64Element.cs
- FragmentQuery.cs
- QilTernary.cs
- BooleanStorage.cs
- TraceLog.cs
- InstanceHandle.cs
- EpmCustomContentWriterNodeData.cs
- OleDbSchemaGuid.cs
- VarInfo.cs
- TypeElement.cs
- Model3D.cs
- ChtmlPageAdapter.cs
- figurelength.cs
- FreezableCollection.cs
- BindingExpression.cs
- SignedXml.cs
- CatalogPart.cs
- XamlSerializerUtil.cs
- GridViewRowEventArgs.cs
- ChtmlSelectionListAdapter.cs
- PeerNameRecordCollection.cs
- LongValidatorAttribute.cs
- ValidatingReaderNodeData.cs
- WebPartEditorApplyVerb.cs
- TableAutomationPeer.cs
- Trigger.cs
- ProxyBuilder.cs
- FusionWrap.cs
- Aggregates.cs
- pingexception.cs
- SqlCacheDependency.cs
- MessageLoggingFilterTraceRecord.cs
- SafeLocalAllocation.cs
- IMembershipProvider.cs
- SHA384.cs
- CompModSwitches.cs
- DtdParser.cs
- MetadataArtifactLoaderCompositeResource.cs
- ExpandCollapsePattern.cs
- ResXFileRef.cs
- ColorBuilder.cs
- DataSourceCacheDurationConverter.cs
- DataColumnSelectionConverter.cs
- XmlRawWriter.cs
- XmlDataImplementation.cs
- TextEditorParagraphs.cs
- SchemaImporter.cs
- IdentityReference.cs
- ViewBase.cs
- Win32SafeHandles.cs
- SpeakInfo.cs
- UserMapPath.cs
- WebPartZoneAutoFormat.cs
- KeyboardDevice.cs
- EnumValAlphaComparer.cs
- RectAnimationUsingKeyFrames.cs
- SoapInteropTypes.cs
- CompiledAction.cs
- Canvas.cs
- SynchronizedInputProviderWrapper.cs
- JsonFaultDetail.cs
- LinkedResource.cs
- BitmapEffectGroup.cs
- UdpSocketReceiveManager.cs
- Simplifier.cs
- Cloud.cs
- MaskedTextProvider.cs
- EmptyStringExpandableObjectConverter.cs
- OracleFactory.cs
- ResourceSet.cs
- Speller.cs
- SqlConnectionString.cs
- TableRowCollection.cs
- AnnotationHelper.cs
- XhtmlTextWriter.cs
- NonClientArea.cs
- VisualBrush.cs
- DataKeyCollection.cs
- AnnouncementInnerClient11.cs
- TrackingServices.cs
- DocumentViewer.cs
- GridViewSortEventArgs.cs
- PeerUnsafeNativeMethods.cs
- SqlFunctionAttribute.cs
- AmbientProperties.cs
- PackageRelationshipCollection.cs
- SuppressMessageAttribute.cs