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
- SessionState.cs
- BaseTemplateBuildProvider.cs
- UniformGrid.cs
- XamlReaderHelper.cs
- BuildProvider.cs
- SmiTypedGetterSetter.cs
- SerializationInfoEnumerator.cs
- Pair.cs
- ObjectIDGenerator.cs
- WpfXamlMember.cs
- MediaTimeline.cs
- PathSegment.cs
- SqlAggregateChecker.cs
- DES.cs
- PersonalizableAttribute.cs
- CopyAttributesAction.cs
- OverlappedAsyncResult.cs
- SoapReflectionImporter.cs
- PeerEndPoint.cs
- ObjectDataSourceFilteringEventArgs.cs
- Compiler.cs
- EarlyBoundInfo.cs
- TreeNodeMouseHoverEvent.cs
- GlobalizationSection.cs
- VisualCollection.cs
- ListViewHitTestInfo.cs
- RefreshEventArgs.cs
- ParameterCollection.cs
- ObjectListCommandEventArgs.cs
- UpdateProgress.cs
- TextParagraphCache.cs
- SendMessageRecord.cs
- SqlDataSourceRefreshSchemaForm.cs
- IgnoreFlushAndCloseStream.cs
- Base64Encoder.cs
- HyperLink.cs
- SqlCaseSimplifier.cs
- CngProperty.cs
- ButtonBaseAutomationPeer.cs
- XmlHelper.cs
- EventLogPermission.cs
- WriteStateInfoBase.cs
- PenThreadWorker.cs
- EncryptedType.cs
- SortDescription.cs
- SystemEvents.cs
- UserValidatedEventArgs.cs
- Label.cs
- TextEditorTables.cs
- XslAstAnalyzer.cs
- EventHandlerList.cs
- RawStylusInputReport.cs
- CqlErrorHelper.cs
- ClientUrlResolverWrapper.cs
- HtmlInputReset.cs
- FileLogRecordStream.cs
- ZipIOLocalFileHeader.cs
- EventWaitHandleSecurity.cs
- TransformerTypeCollection.cs
- AttachmentService.cs
- COSERVERINFO.cs
- MultiBinding.cs
- InvokeMethodDesigner.xaml.cs
- InstanceNotFoundException.cs
- ColorContextHelper.cs
- RouteValueExpressionBuilder.cs
- ReferentialConstraint.cs
- EventsTab.cs
- OleDbSchemaGuid.cs
- DataGridViewCellStyleBuilderDialog.cs
- PageHandlerFactory.cs
- XmlDataImplementation.cs
- AsyncPostBackTrigger.cs
- MetadataHelper.cs
- EntityObject.cs
- RegisterResponseInfo.cs
- DataSourceSelectArguments.cs
- DefaultWorkflowLoaderService.cs
- UriExt.cs
- RoleGroupCollection.cs
- QEncodedStream.cs
- ObjectQuery.cs
- CompilerInfo.cs
- CustomGrammar.cs
- MessageSmuggler.cs
- xmlNames.cs
- DBConcurrencyException.cs
- AuthenticationServiceManager.cs
- SchemaExporter.cs
- ApplicationContext.cs
- WindowsToolbarItemAsMenuItem.cs
- PrimitiveDataContract.cs
- SmtpReplyReaderFactory.cs
- RegexParser.cs
- InputMethod.cs
- sortedlist.cs
- ElementInit.cs
- ColorTranslator.cs
- HighlightComponent.cs
- RequestedSignatureDialog.cs