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
- Point4DValueSerializer.cs
- ToolStripItem.cs
- ListParaClient.cs
- ClockGroup.cs
- TextEffect.cs
- AdPostCacheSubstitution.cs
- CurrentTimeZone.cs
- SchemaElementLookUpTable.cs
- DragCompletedEventArgs.cs
- UnsafeNativeMethods.cs
- CodeSubDirectory.cs
- WSDualHttpSecurityElement.cs
- ArraySegment.cs
- InputScopeConverter.cs
- ListManagerBindingsCollection.cs
- serverconfig.cs
- BuildManager.cs
- ToolStripContentPanel.cs
- View.cs
- ChangePasswordAutoFormat.cs
- OptimizedTemplateContentHelper.cs
- BlurEffect.cs
- DropSource.cs
- cookiecontainer.cs
- documentsequencetextview.cs
- FileDialogCustomPlace.cs
- XmlSchemaInferenceException.cs
- ModelTreeEnumerator.cs
- GeneralTransformCollection.cs
- WindowsListView.cs
- WebPartManagerInternals.cs
- TextTreeUndo.cs
- MimeTextImporter.cs
- Cursors.cs
- XmlSerializerFactory.cs
- OleAutBinder.cs
- SymLanguageVendor.cs
- CodeDOMUtility.cs
- HostedNamedPipeTransportManager.cs
- ParseElementCollection.cs
- OrthographicCamera.cs
- StringFreezingAttribute.cs
- WpfKnownTypeInvoker.cs
- ApplicationInfo.cs
- MimeMapping.cs
- DoubleLinkListEnumerator.cs
- relpropertyhelper.cs
- UIElement.cs
- WorkflowRequestContext.cs
- StrokeFIndices.cs
- Tuple.cs
- WaitForChangedResult.cs
- Pkcs7Recipient.cs
- WebPartChrome.cs
- TextServicesLoader.cs
- Pens.cs
- SigningCredentials.cs
- XamlGridLengthSerializer.cs
- PreProcessor.cs
- Unit.cs
- DataGridViewCellValueEventArgs.cs
- CaseDesigner.xaml.cs
- ObjectDataSourceView.cs
- ColorAnimationBase.cs
- ControlCommandSet.cs
- AnnotationMap.cs
- DataGridTable.cs
- ExpressionReplacer.cs
- HttpCapabilitiesEvaluator.cs
- ImageClickEventArgs.cs
- BamlLocalizableResource.cs
- CellNormalizer.cs
- _TransmitFileOverlappedAsyncResult.cs
- ListControl.cs
- TrailingSpaceComparer.cs
- XmlReader.cs
- PenContext.cs
- AssemblyInfo.cs
- DPCustomTypeDescriptor.cs
- QuaternionAnimation.cs
- DiscoveryDocument.cs
- ExtractorMetadata.cs
- login.cs
- ConnectionProviderAttribute.cs
- WeakReferenceEnumerator.cs
- XmlNullResolver.cs
- StyleModeStack.cs
- StickyNote.cs
- RangeValuePatternIdentifiers.cs
- EntityDataSourceMemberPath.cs
- AppDomainAttributes.cs
- ApplicationFileCodeDomTreeGenerator.cs
- OracleEncoding.cs
- MsmqInputChannelListenerBase.cs
- TreeNodeBindingCollection.cs
- ListViewItemEventArgs.cs
- XsltFunctions.cs
- DrawingGroupDrawingContext.cs
- Effect.cs
- FontWeights.cs