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
- DocumentGridContextMenu.cs
- RecognitionResult.cs
- KeysConverter.cs
- mongolianshape.cs
- Calendar.cs
- DataTemplateKey.cs
- XmlEntityReference.cs
- FixedLineResult.cs
- LifetimeServices.cs
- Geometry3D.cs
- ConfigurationManagerHelper.cs
- TableLayoutPanel.cs
- GlyphingCache.cs
- InvalidateEvent.cs
- MenuRenderer.cs
- MailDefinition.cs
- EndpointFilterProvider.cs
- GeometryCombineModeValidation.cs
- DeadCharTextComposition.cs
- XmlSerializationGeneratedCode.cs
- UmAlQuraCalendar.cs
- MulticastIPAddressInformationCollection.cs
- LogReservationCollection.cs
- WeakReadOnlyCollection.cs
- XmlC14NWriter.cs
- DefaultExpression.cs
- DefaultWorkflowSchedulerService.cs
- HashSet.cs
- DropSource.cs
- SessionStateSection.cs
- CodeMethodReturnStatement.cs
- EdmConstants.cs
- MessageHeaderT.cs
- SerializationEventsCache.cs
- PreviewControlDesigner.cs
- ConfigurationFileMap.cs
- UrlMapping.cs
- SizeAnimation.cs
- XomlCompilerParameters.cs
- ControlBindingsCollection.cs
- SpellerHighlightLayer.cs
- ObjectViewFactory.cs
- AnnotationMap.cs
- ToolStripPanel.cs
- OpCopier.cs
- ComponentChangedEvent.cs
- Ray3DHitTestResult.cs
- FlowDocument.cs
- ConstantExpression.cs
- DbConnectionClosed.cs
- ListViewItem.cs
- AbsoluteQuery.cs
- FileDialog_Vista.cs
- Restrictions.cs
- ServiceHostFactory.cs
- SignedXml.cs
- xmlsaver.cs
- DbModificationCommandTree.cs
- XmlNotation.cs
- PreparingEnlistment.cs
- IsolatedStorage.cs
- FastEncoderWindow.cs
- RuntimeEnvironment.cs
- VisualTransition.cs
- BCryptSafeHandles.cs
- QilReference.cs
- TdsParameterSetter.cs
- TcpProcessProtocolHandler.cs
- WebPartVerbCollection.cs
- QualifiedCellIdBoolean.cs
- ControlTemplate.cs
- XmlReturnReader.cs
- wmiprovider.cs
- xdrvalidator.cs
- ComponentChangedEvent.cs
- TaskHelper.cs
- CustomGrammar.cs
- TextWriter.cs
- LockCookie.cs
- SqlRewriteScalarSubqueries.cs
- LZCodec.cs
- ValuePattern.cs
- PropertyPathWorker.cs
- COM2PropertyDescriptor.cs
- Polyline.cs
- InheritedPropertyChangedEventArgs.cs
- ConstructorNeedsTagAttribute.cs
- WebBrowserSiteBase.cs
- PointUtil.cs
- PixelFormats.cs
- PropertyConverter.cs
- AssociationSetMetadata.cs
- ComponentSerializationService.cs
- FormViewUpdateEventArgs.cs
- DebugTraceHelper.cs
- DrawingAttributeSerializer.cs
- Label.cs
- InheritanceContextChangedEventManager.cs
- MDIWindowDialog.cs
- ResourceCodeDomSerializer.cs