Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Security / Cryptography / RSAPKCS1KeyExchangeDeformatter.cs / 1305376 / RSAPKCS1KeyExchangeDeformatter.cs
using System.Diagnostics.Contracts; // ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== //[....] // namespace System.Security.Cryptography { [System.Runtime.InteropServices.ComVisible(true)] public class RSAPKCS1KeyExchangeDeformatter : AsymmetricKeyExchangeDeformatter { RSA _rsaKey; RandomNumberGenerator RngValue; // Constructors public RSAPKCS1KeyExchangeDeformatter() {} public RSAPKCS1KeyExchangeDeformatter(AsymmetricAlgorithm key) { if (key == null) throw new ArgumentNullException("key"); Contract.EndContractBlock(); _rsaKey = (RSA) key; } // // public properties // public RandomNumberGenerator RNG { get { return RngValue; } set { RngValue = value; } } public override String Parameters { get { return null; } set { ;} } // // public methods // [System.Security.SecuritySafeCritical] // auto-generated public override byte[] DecryptKeyExchange(byte[] rgbIn) { if (_rsaKey == null) throw new CryptographicUnexpectedOperationException(Environment.GetResourceString("Cryptography_MissingKey")); byte[] rgbOut; if (_rsaKey is RSACryptoServiceProvider) { rgbOut = ((RSACryptoServiceProvider) _rsaKey).Decrypt(rgbIn, false); } else { int i; byte[] rgb; rgb = _rsaKey.DecryptValue(rgbIn); // // Expected format is: // 00 || 02 || PS || 00 || D // where PS does not contain any zeros. // for (i = 2; i= rgb.Length) throw new CryptographicUnexpectedOperationException(Environment.GetResourceString("Cryptography_PKCS1Decoding")); i++; // Skip over the zero rgbOut = new byte[rgb.Length - i]; Buffer.InternalBlockCopy(rgb, i, rgbOut, 0, rgbOut.Length); } return rgbOut; } public override void SetKey(AsymmetricAlgorithm key) { if (key == null) throw new ArgumentNullException("key"); Contract.EndContractBlock(); _rsaKey = (RSA) key; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. using System.Diagnostics.Contracts; // ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== // [....] // namespace System.Security.Cryptography { [System.Runtime.InteropServices.ComVisible(true)] public class RSAPKCS1KeyExchangeDeformatter : AsymmetricKeyExchangeDeformatter { RSA _rsaKey; RandomNumberGenerator RngValue; // Constructors public RSAPKCS1KeyExchangeDeformatter() {} public RSAPKCS1KeyExchangeDeformatter(AsymmetricAlgorithm key) { if (key == null) throw new ArgumentNullException("key"); Contract.EndContractBlock(); _rsaKey = (RSA) key; } // // public properties // public RandomNumberGenerator RNG { get { return RngValue; } set { RngValue = value; } } public override String Parameters { get { return null; } set { ;} } // // public methods // [System.Security.SecuritySafeCritical] // auto-generated public override byte[] DecryptKeyExchange(byte[] rgbIn) { if (_rsaKey == null) throw new CryptographicUnexpectedOperationException(Environment.GetResourceString("Cryptography_MissingKey")); byte[] rgbOut; if (_rsaKey is RSACryptoServiceProvider) { rgbOut = ((RSACryptoServiceProvider) _rsaKey).Decrypt(rgbIn, false); } else { int i; byte[] rgb; rgb = _rsaKey.DecryptValue(rgbIn); // // Expected format is: // 00 || 02 || PS || 00 || D // where PS does not contain any zeros. // for (i = 2; i= rgb.Length) throw new CryptographicUnexpectedOperationException(Environment.GetResourceString("Cryptography_PKCS1Decoding")); i++; // Skip over the zero rgbOut = new byte[rgb.Length - i]; Buffer.InternalBlockCopy(rgb, i, rgbOut, 0, rgbOut.Length); } return rgbOut; } public override void SetKey(AsymmetricAlgorithm key) { if (key == null) throw new ArgumentNullException("key"); Contract.EndContractBlock(); _rsaKey = (RSA) key; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- AssemblySettingAttributes.cs
- EmptyControlCollection.cs
- UInt32Converter.cs
- RegionData.cs
- CompilationUnit.cs
- NameObjectCollectionBase.cs
- PartitionResolver.cs
- SqlDataSourceSelectingEventArgs.cs
- UidManager.cs
- ResXDataNode.cs
- RefreshEventArgs.cs
- NetCodeGroup.cs
- DoubleAverageAggregationOperator.cs
- DateTimeUtil.cs
- DateTimeStorage.cs
- BamlRecordHelper.cs
- IPAddress.cs
- DataObjectPastingEventArgs.cs
- XmlSchemaIdentityConstraint.cs
- Registration.cs
- FileLevelControlBuilderAttribute.cs
- SafeHandles.cs
- IisTraceListener.cs
- StaticTextPointer.cs
- ProcessInfo.cs
- RoleManagerSection.cs
- CallContext.cs
- StrongTypingException.cs
- ContentPosition.cs
- Wizard.cs
- PartialTrustVisibleAssembliesSection.cs
- StrongNameMembershipCondition.cs
- IisTraceListener.cs
- PeerToPeerException.cs
- RoleManagerSection.cs
- MimeTypeMapper.cs
- VersionPair.cs
- SqlDependencyUtils.cs
- CredentialCache.cs
- Tablet.cs
- ProfileGroupSettings.cs
- DisplayToken.cs
- MouseButton.cs
- TextParagraphView.cs
- CssTextWriter.cs
- HashAlgorithm.cs
- ValidatingPropertiesEventArgs.cs
- SortableBindingList.cs
- XmlIncludeAttribute.cs
- Hyperlink.cs
- DataMisalignedException.cs
- DesignColumn.cs
- FormattedTextSymbols.cs
- ControlBuilderAttribute.cs
- WorkflowQueue.cs
- ContactManager.cs
- StylusOverProperty.cs
- OleDbTransaction.cs
- BrowserDefinitionCollection.cs
- Color.cs
- XamlRtfConverter.cs
- ViewManagerAttribute.cs
- NotFiniteNumberException.cs
- AssemblyName.cs
- DataServiceResponse.cs
- SerializationObjectManager.cs
- EventListenerClientSide.cs
- TargetInvocationException.cs
- ScriptResourceHandler.cs
- Comparer.cs
- ListenerTraceUtility.cs
- ExpressionBuilderContext.cs
- StorageEntitySetMapping.cs
- CacheDict.cs
- ParallelDesigner.cs
- Compiler.cs
- AdRotatorDesigner.cs
- GlyphInfoList.cs
- WebPartExportVerb.cs
- MethodToken.cs
- ScrollChangedEventArgs.cs
- WebPartTransformer.cs
- RuntimeHelpers.cs
- XmlWhitespace.cs
- Parameter.cs
- BaseParagraph.cs
- FormattedText.cs
- MailMessage.cs
- EntityTypeEmitter.cs
- DictionaryBase.cs
- SqlMethods.cs
- XsdDuration.cs
- SignatureResourcePool.cs
- FileInfo.cs
- xdrvalidator.cs
- ConfigXmlWhitespace.cs
- Operand.cs
- ping.cs
- ProxyFragment.cs
- UnSafeCharBuffer.cs