Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Security / Cryptography / RijndaelManaged.cs / 1305376 / RijndaelManaged.cs
using System.Diagnostics.Contracts; // ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== //[....] // // // RijndaelManaged.cs // namespace System.Security.Cryptography { [System.Runtime.InteropServices.ComVisible(true)] public sealed class RijndaelManaged : Rijndael { public RijndaelManaged () { #if FEATURE_CRYPTO if (CryptoConfig.AllowOnlyFipsAlgorithms) throw new InvalidOperationException(Environment.GetResourceString("Cryptography_NonCompliantFIPSAlgorithm")); Contract.EndContractBlock(); #endif // FEATURE_CRYPTO } // #CoreCLRRijndaelModes // // On CoreCLR we limit the supported cipher modes and padding modes for the AES algorithm to a // single hard coded value. This allows us to remove a lot of code by removing support for the // uncommon cases and forcing everyone to use the same common padding and ciper modes: // // - CipherMode: CipherMode.CBC // - PaddingMode: PaddingMode.PKCS7 public override ICryptoTransform CreateEncryptor (byte[] rgbKey, byte[] rgbIV) { return NewEncryptor(rgbKey, ModeValue, rgbIV, FeedbackSizeValue, RijndaelManagedTransformMode.Encrypt); } public override ICryptoTransform CreateDecryptor (byte[] rgbKey, byte[] rgbIV) { return NewEncryptor(rgbKey, ModeValue, rgbIV, FeedbackSizeValue, RijndaelManagedTransformMode.Decrypt); } public override void GenerateKey () { KeyValue = Utils.GenerateRandom(KeySizeValue / 8); } public override void GenerateIV () { IVValue = Utils.GenerateRandom(BlockSizeValue / 8); } private ICryptoTransform NewEncryptor (byte[] rgbKey, CipherMode mode, byte[] rgbIV, int feedbackSize, RijndaelManagedTransformMode encryptMode) { // Build the key if one does not already exist if (rgbKey == null) { rgbKey = Utils.GenerateRandom(KeySizeValue / 8); } // If not ECB mode, make sure we have an IV. In CoreCLR we do not support ECB, so we must have // an IV in all cases. #if !FEATURE_CRYPTO if (mode != CipherMode.ECB) { #endif // !FEATURE_CRYPTO if (rgbIV == null) { rgbIV = Utils.GenerateRandom(BlockSizeValue / 8); } #if !FEATURE_CRYPTO } #endif // !FEATURE_CRYPTO // Create the encryptor/decryptor object return new RijndaelManagedTransform (rgbKey, mode, rgbIV, BlockSizeValue, feedbackSize, PaddingValue, encryptMode); } } } // 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
- TextDecoration.cs
- GroupItemAutomationPeer.cs
- GroupBoxAutomationPeer.cs
- InvalidCommandTreeException.cs
- DataPointer.cs
- SAPICategories.cs
- ChildDocumentBlock.cs
- HierarchicalDataBoundControlAdapter.cs
- PrincipalPermission.cs
- WebSysDefaultValueAttribute.cs
- DefaultWorkflowSchedulerService.cs
- RecognizedAudio.cs
- XamlGridLengthSerializer.cs
- XamlHttpHandlerFactory.cs
- CalendarAutoFormat.cs
- VersionedStreamOwner.cs
- ComponentResourceManager.cs
- Convert.cs
- CommandID.cs
- EventLogException.cs
- DataViewListener.cs
- MenuCommands.cs
- SqlConnectionManager.cs
- QilScopedVisitor.cs
- Adorner.cs
- WebEventTraceProvider.cs
- RelationshipWrapper.cs
- basecomparevalidator.cs
- BroadcastEventHelper.cs
- MenuCommand.cs
- MDIClient.cs
- RemotingSurrogateSelector.cs
- TileBrush.cs
- HyperLink.cs
- BindingGroup.cs
- BindingGroup.cs
- InstancePersistenceEvent.cs
- InvalidDocumentContentsException.cs
- PrivateFontCollection.cs
- CapabilitiesRule.cs
- StaticDataManager.cs
- Vector3DAnimationBase.cs
- InputManager.cs
- InvalidMessageContractException.cs
- SmtpNetworkElement.cs
- RowToFieldTransformer.cs
- SoundPlayer.cs
- PartialClassGenerationTaskInternal.cs
- SqlConnectionPoolGroupProviderInfo.cs
- FragmentQueryProcessor.cs
- HttpInputStream.cs
- MultipleViewProviderWrapper.cs
- CodeMemberEvent.cs
- CompositeFontParser.cs
- SmiEventStream.cs
- DesignTimeVisibleAttribute.cs
- updatecommandorderer.cs
- MethodBuilder.cs
- ArithmeticException.cs
- DataGridViewRowStateChangedEventArgs.cs
- BitmapEffectGeneralTransform.cs
- XmlMembersMapping.cs
- AssociationSetMetadata.cs
- AnimationClockResource.cs
- CharAnimationUsingKeyFrames.cs
- XPathNavigatorKeyComparer.cs
- InstanceNormalEvent.cs
- WebControl.cs
- JournalNavigationScope.cs
- DataConnectionHelper.cs
- CreateParams.cs
- GenerateHelper.cs
- AmbientLight.cs
- ConfigXmlAttribute.cs
- Crypto.cs
- TrayIconDesigner.cs
- SHA384.cs
- RepeatEnumerable.cs
- PerfCounterSection.cs
- SafeCryptoHandles.cs
- StrongNamePublicKeyBlob.cs
- TypeLibConverter.cs
- ChunkedMemoryStream.cs
- IFlowDocumentViewer.cs
- SByte.cs
- GridViewCommandEventArgs.cs
- DefaultAsyncDataDispatcher.cs
- DataGridAutoGeneratingColumnEventArgs.cs
- CultureInfoConverter.cs
- PropertyNames.cs
- DefaultDialogButtons.cs
- HttpContextServiceHost.cs
- GroupBox.cs
- TreeView.cs
- SelectorAutomationPeer.cs
- WindowsTab.cs
- CountAggregationOperator.cs
- TransformerConfigurationWizardBase.cs
- TreeViewItemAutomationPeer.cs
- DataSourceCache.cs