Code:
/ FX-1434 / FX-1434 / 1.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
- ImageListStreamer.cs
- XmlCustomFormatter.cs
- PasswordPropertyTextAttribute.cs
- SafeUserTokenHandle.cs
- MultiTrigger.cs
- EnvelopedPkcs7.cs
- DataSourceSelectArguments.cs
- ClientScriptItemCollection.cs
- NavigationFailedEventArgs.cs
- WebServiceEnumData.cs
- LiteralControl.cs
- DataSourceCache.cs
- StyleModeStack.cs
- ContentType.cs
- TreeNode.cs
- SecureUICommand.cs
- BitmapSource.cs
- ObjectAnimationUsingKeyFrames.cs
- AliasExpr.cs
- SystemInformation.cs
- WebServiceHostFactory.cs
- MultiByteCodec.cs
- StorageInfo.cs
- PropertyConverter.cs
- EdmFunctions.cs
- _TransmitFileOverlappedAsyncResult.cs
- SchemaName.cs
- ExpressionNode.cs
- CheckBoxFlatAdapter.cs
- MenuItemBindingCollection.cs
- BezierSegment.cs
- ListViewItemEventArgs.cs
- InvalidOleVariantTypeException.cs
- pingexception.cs
- ComponentManagerBroker.cs
- ApplicationSecurityInfo.cs
- SortDescription.cs
- WebSysDescriptionAttribute.cs
- StylusButton.cs
- CacheForPrimitiveTypes.cs
- SurrogateChar.cs
- SqlTypesSchemaImporter.cs
- XmlWrappingReader.cs
- Pen.cs
- DataGridViewCellValidatingEventArgs.cs
- RowBinding.cs
- TextBox.cs
- figurelengthconverter.cs
- ThreadAbortException.cs
- OleServicesContext.cs
- TypeSystem.cs
- PostBackTrigger.cs
- dbenumerator.cs
- TraceFilter.cs
- WorkflowServiceNamespace.cs
- EdmPropertyAttribute.cs
- MethodCallTranslator.cs
- MultilineStringEditor.cs
- CheckBox.cs
- LeftCellWrapper.cs
- SelectionEditingBehavior.cs
- SerializationInfo.cs
- cookieexception.cs
- XmlSerializerNamespaces.cs
- TextOnlyOutput.cs
- RayHitTestParameters.cs
- StylusDevice.cs
- XamlSerializerUtil.cs
- ContactManager.cs
- WindowHideOrCloseTracker.cs
- DtdParser.cs
- PrefixQName.cs
- FontUnit.cs
- MailMessageEventArgs.cs
- NativeMethodsCLR.cs
- SystemIPInterfaceStatistics.cs
- DataObjectMethodAttribute.cs
- SemanticTag.cs
- HijriCalendar.cs
- CompatibleComparer.cs
- FrameworkTextComposition.cs
- DbConnectionStringBuilder.cs
- ControlParser.cs
- COM2Enum.cs
- Enum.cs
- PageClientProxyGenerator.cs
- VolatileEnlistmentMultiplexing.cs
- XslCompiledTransform.cs
- ResolveNameEventArgs.cs
- OracleInfoMessageEventArgs.cs
- DirectionalLight.cs
- PropertySegmentSerializer.cs
- SourceItem.cs
- EventLogPermissionEntryCollection.cs
- RegexCompilationInfo.cs
- PolyBezierSegment.cs
- SoapExtension.cs
- XmlElementAttribute.cs
- LogicalTreeHelper.cs
- WebPartConnectionsConnectVerb.cs