Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / clr / src / BCL / System / Reflection / StrongNameKeyPair.cs / 1 / StrongNameKeyPair.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** File: StrongNameKeyPair.cs ** ** ** Purpose: Encapsulate access to a public/private key pair ** used to sign strong name assemblies. ** ** ===========================================================*/ namespace System.Reflection { using System; using System.IO; using System.Runtime.CompilerServices; using System.Runtime.Serialization; using System.Security.Permissions; [Serializable()] [System.Runtime.InteropServices.ComVisible(true)] public class StrongNameKeyPair : IDeserializationCallback, ISerializable { private bool _keyPairExported; private byte[] _keyPairArray; private String _keyPairContainer; private byte[] _publicKey; // Build key pair from file. [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.UnmanagedCode)] public StrongNameKeyPair(FileStream keyPairFile) { if (keyPairFile == null) throw new ArgumentNullException("keyPairFile"); int length = (int)keyPairFile.Length; _keyPairArray = new byte[length]; keyPairFile.Read(_keyPairArray, 0, length); _keyPairExported = true; } // Build key pair from byte array in memory. [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.UnmanagedCode)] public StrongNameKeyPair(byte[] keyPairArray) { if (keyPairArray == null) throw new ArgumentNullException("keyPairArray"); _keyPairArray = new byte[keyPairArray.Length]; Array.Copy(keyPairArray, _keyPairArray, keyPairArray.Length); _keyPairExported = true; } // Reference key pair in named key container. [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.UnmanagedCode)] public StrongNameKeyPair(String keyPairContainer) { if (keyPairContainer == null) throw new ArgumentNullException("keyPairContainer"); _keyPairContainer = keyPairContainer; _keyPairExported = false; } [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.UnmanagedCode)] protected StrongNameKeyPair (SerializationInfo info, StreamingContext context) { _keyPairExported = (bool) info.GetValue("_keyPairExported", typeof(bool)); _keyPairArray = (byte[]) info.GetValue("_keyPairArray", typeof(byte[])); _keyPairContainer = (string) info.GetValue("_keyPairContainer", typeof(string)); _publicKey = (byte[]) info.GetValue("_publicKey", typeof(byte[])); } // Get the public portion of the key pair. public byte[] PublicKey { get { if (_publicKey == null) { _publicKey = nGetPublicKey(_keyPairExported, _keyPairArray, _keyPairContainer); } byte[] publicKey = new byte[_publicKey.Length]; Array.Copy(_publicKey, publicKey, _publicKey.Length); return publicKey; } } ///void ISerializable.GetObjectData (SerializationInfo info, StreamingContext context) { info.AddValue("_keyPairExported", _keyPairExported); info.AddValue("_keyPairArray", _keyPairArray); info.AddValue("_keyPairContainer", _keyPairContainer); info.AddValue("_publicKey", _publicKey); } /// void IDeserializationCallback.OnDeserialization (Object sender) {} // Internal routine used to retrieve key pair info from unmanaged code. private bool GetKeyPair(out Object arrayOrContainer) { arrayOrContainer = _keyPairExported ? (Object)_keyPairArray : (Object)_keyPairContainer; return _keyPairExported; } [MethodImplAttribute(MethodImplOptions.InternalCall)] private extern byte[] nGetPublicKey(bool exported, byte[] array, String container); } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** File: StrongNameKeyPair.cs ** ** ** Purpose: Encapsulate access to a public/private key pair ** used to sign strong name assemblies. ** ** ===========================================================*/ namespace System.Reflection { using System; using System.IO; using System.Runtime.CompilerServices; using System.Runtime.Serialization; using System.Security.Permissions; [Serializable()] [System.Runtime.InteropServices.ComVisible(true)] public class StrongNameKeyPair : IDeserializationCallback, ISerializable { private bool _keyPairExported; private byte[] _keyPairArray; private String _keyPairContainer; private byte[] _publicKey; // Build key pair from file. [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.UnmanagedCode)] public StrongNameKeyPair(FileStream keyPairFile) { if (keyPairFile == null) throw new ArgumentNullException("keyPairFile"); int length = (int)keyPairFile.Length; _keyPairArray = new byte[length]; keyPairFile.Read(_keyPairArray, 0, length); _keyPairExported = true; } // Build key pair from byte array in memory. [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.UnmanagedCode)] public StrongNameKeyPair(byte[] keyPairArray) { if (keyPairArray == null) throw new ArgumentNullException("keyPairArray"); _keyPairArray = new byte[keyPairArray.Length]; Array.Copy(keyPairArray, _keyPairArray, keyPairArray.Length); _keyPairExported = true; } // Reference key pair in named key container. [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.UnmanagedCode)] public StrongNameKeyPair(String keyPairContainer) { if (keyPairContainer == null) throw new ArgumentNullException("keyPairContainer"); _keyPairContainer = keyPairContainer; _keyPairExported = false; } [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.UnmanagedCode)] protected StrongNameKeyPair (SerializationInfo info, StreamingContext context) { _keyPairExported = (bool) info.GetValue("_keyPairExported", typeof(bool)); _keyPairArray = (byte[]) info.GetValue("_keyPairArray", typeof(byte[])); _keyPairContainer = (string) info.GetValue("_keyPairContainer", typeof(string)); _publicKey = (byte[]) info.GetValue("_publicKey", typeof(byte[])); } // Get the public portion of the key pair. public byte[] PublicKey { get { if (_publicKey == null) { _publicKey = nGetPublicKey(_keyPairExported, _keyPairArray, _keyPairContainer); } byte[] publicKey = new byte[_publicKey.Length]; Array.Copy(_publicKey, publicKey, _publicKey.Length); return publicKey; } } /// void ISerializable.GetObjectData (SerializationInfo info, StreamingContext context) { info.AddValue("_keyPairExported", _keyPairExported); info.AddValue("_keyPairArray", _keyPairArray); info.AddValue("_keyPairContainer", _keyPairContainer); info.AddValue("_publicKey", _publicKey); } /// void IDeserializationCallback.OnDeserialization (Object sender) {} // Internal routine used to retrieve key pair info from unmanaged code. private bool GetKeyPair(out Object arrayOrContainer) { arrayOrContainer = _keyPairExported ? (Object)_keyPairArray : (Object)_keyPairContainer; return _keyPairExported; } [MethodImplAttribute(MethodImplOptions.InternalCall)] private extern byte[] nGetPublicKey(bool exported, byte[] array, String container); } } // 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
- HttpFileCollectionBase.cs
- FeatureAttribute.cs
- ChangePassword.cs
- PrincipalPermissionMode.cs
- EditingCoordinator.cs
- CellNormalizer.cs
- UntrustedRecipientException.cs
- ColorMatrix.cs
- PermissionSet.cs
- CodeTypeDeclarationCollection.cs
- TraceListener.cs
- NamedPipeConnectionPoolSettingsElement.cs
- ObjectView.cs
- ChtmlMobileTextWriter.cs
- SqlBinder.cs
- Activation.cs
- COM2DataTypeToManagedDataTypeConverter.cs
- LocalIdKeyIdentifierClause.cs
- ListViewItemSelectionChangedEvent.cs
- ReferentialConstraint.cs
- IncrementalCompileAnalyzer.cs
- HtmlButton.cs
- Int32CAMarshaler.cs
- ToolBarPanel.cs
- DriveInfo.cs
- WebPartExportVerb.cs
- WebPartConnectionsConnectVerb.cs
- ScriptControl.cs
- Material.cs
- FixedSOMFixedBlock.cs
- OuterGlowBitmapEffect.cs
- EmissiveMaterial.cs
- RTLAwareMessageBox.cs
- ThicknessKeyFrameCollection.cs
- RegistryPermission.cs
- DynamicILGenerator.cs
- DirectionalLight.cs
- TextPatternIdentifiers.cs
- PenThread.cs
- WebRequestModuleElementCollection.cs
- Recipient.cs
- ProtocolViolationException.cs
- DesignerCommandAdapter.cs
- DescendentsWalkerBase.cs
- SocketPermission.cs
- PageContentAsyncResult.cs
- SrgsRuleRef.cs
- TextBoxDesigner.cs
- SmiRequestExecutor.cs
- EdmToObjectNamespaceMap.cs
- CultureInfo.cs
- NTAccount.cs
- DockProviderWrapper.cs
- DataRowCollection.cs
- Processor.cs
- Subtree.cs
- AdornerPresentationContext.cs
- ModifiableIteratorCollection.cs
- TransformedBitmap.cs
- ObjectListFieldCollection.cs
- IriParsingElement.cs
- DataObjectSettingDataEventArgs.cs
- CompilerGlobalScopeAttribute.cs
- Events.cs
- PerformanceCounterManager.cs
- WmlImageAdapter.cs
- XmlText.cs
- NumericUpDownAccelerationCollection.cs
- JsonGlobals.cs
- NumericPagerField.cs
- XmlAutoDetectWriter.cs
- AdCreatedEventArgs.cs
- TemplateManager.cs
- ListControlConvertEventArgs.cs
- DataTableReader.cs
- Queue.cs
- HttpDebugHandler.cs
- SafeFreeMibTable.cs
- OledbConnectionStringbuilder.cs
- UnsafeNativeMethods.cs
- TextBox.cs
- TextEditorThreadLocalStore.cs
- TabPage.cs
- safePerfProviderHandle.cs
- WhitespaceRuleLookup.cs
- TableItemStyle.cs
- GraphicsContext.cs
- Main.cs
- TextTabProperties.cs
- ProxyGenerationError.cs
- CachedFontFamily.cs
- RadialGradientBrush.cs
- ScrollChrome.cs
- PreservationFileReader.cs
- JsonWriterDelegator.cs
- Command.cs
- HttpContextWrapper.cs
- BaseUriHelper.cs
- SizeAnimationClockResource.cs
- nulltextcontainer.cs