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
- RSAPKCS1SignatureFormatter.cs
- ImageIndexConverter.cs
- UnsafeNativeMethodsMilCoreApi.cs
- SqlUserDefinedTypeAttribute.cs
- Compilation.cs
- FileChangesMonitor.cs
- DbXmlEnabledProviderManifest.cs
- XamlValidatingReader.cs
- ThicknessAnimationUsingKeyFrames.cs
- ConfigXmlText.cs
- OracleBFile.cs
- ViewManager.cs
- TableLayoutPanel.cs
- Border.cs
- ResourceBinder.cs
- SqlProfileProvider.cs
- HandlerFactoryCache.cs
- WebResourceUtil.cs
- ThaiBuddhistCalendar.cs
- SymmetricKeyWrap.cs
- InputScope.cs
- DecimalAnimation.cs
- XmlDataSourceView.cs
- SingleKeyFrameCollection.cs
- PeerNameResolver.cs
- ContextMenuStripGroupCollection.cs
- RemoteWebConfigurationHostServer.cs
- CallbackValidator.cs
- CaseInsensitiveHashCodeProvider.cs
- UnionExpr.cs
- AddingNewEventArgs.cs
- ButtonChrome.cs
- ServiceHostFactory.cs
- EdgeModeValidation.cs
- SortExpressionBuilder.cs
- RemotingException.cs
- CodeTypeDeclaration.cs
- WebFormsRootDesigner.cs
- KnownColorTable.cs
- DropSource.cs
- xamlnodes.cs
- Converter.cs
- XsltArgumentList.cs
- ActivityStateQuery.cs
- ProjectionAnalyzer.cs
- LoginUtil.cs
- MatrixAnimationUsingPath.cs
- ThreadStateException.cs
- XamlStyleSerializer.cs
- SqlAliaser.cs
- RoleService.cs
- HttpListenerPrefixCollection.cs
- DataGridViewCellStateChangedEventArgs.cs
- Sentence.cs
- SqlBulkCopy.cs
- ZipPackagePart.cs
- XmlArrayItemAttribute.cs
- HotSpotCollection.cs
- ImageCodecInfoPrivate.cs
- XmlTextWriter.cs
- CompositeClientFormatter.cs
- TextServicesCompartmentEventSink.cs
- ModifierKeysConverter.cs
- WindowsListViewItem.cs
- DesignerLoader.cs
- Roles.cs
- SqlDataSourceStatusEventArgs.cs
- ConsoleEntryPoint.cs
- AutoGeneratedField.cs
- Floater.cs
- TextElementAutomationPeer.cs
- ProfilePropertyMetadata.cs
- ActiveDocumentEvent.cs
- _FtpControlStream.cs
- WebFaultClientMessageInspector.cs
- ErrorWrapper.cs
- XmlName.cs
- NameValueCollection.cs
- SelectionItemPattern.cs
- TypeConverterValueSerializer.cs
- PrintPreviewGraphics.cs
- MonthChangedEventArgs.cs
- MsmqIntegrationOutputChannel.cs
- InkSerializer.cs
- Menu.cs
- TreeNodeEventArgs.cs
- BitmapEffectCollection.cs
- AccessDataSourceDesigner.cs
- DataGridViewTextBoxEditingControl.cs
- ProvidePropertyAttribute.cs
- CodeAttachEventStatement.cs
- PathData.cs
- DurationConverter.cs
- GregorianCalendar.cs
- DataGridViewHitTestInfo.cs
- Dynamic.cs
- XPathAncestorQuery.cs
- ScalarConstant.cs
- XPathNodeList.cs
- SafeThreadHandle.cs