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
- ChildTable.cs
- PropertyMap.cs
- DbConnectionHelper.cs
- ConnectionsZone.cs
- DataGridViewColumnCollectionEditor.cs
- SizeAnimation.cs
- BaseCAMarshaler.cs
- StringDictionaryEditor.cs
- counter.cs
- Span.cs
- XmlSchemaInfo.cs
- MethodRental.cs
- DataSourceProvider.cs
- Vector3DValueSerializer.cs
- SimpleExpression.cs
- GPRECTF.cs
- HttpCachePolicyElement.cs
- ElementHost.cs
- EmbeddedMailObjectCollectionEditor.cs
- WhiteSpaceTrimStringConverter.cs
- PopupEventArgs.cs
- ListDictionary.cs
- IDReferencePropertyAttribute.cs
- BrowserCapabilitiesCompiler.cs
- VisualBrush.cs
- PeerConnector.cs
- MailDefinition.cs
- KeyedHashAlgorithm.cs
- InteropExecutor.cs
- BaseValidatorDesigner.cs
- SystemEvents.cs
- MdImport.cs
- ApplicationDirectory.cs
- LoadGrammarCompletedEventArgs.cs
- ExpandoClass.cs
- KeyValueConfigurationCollection.cs
- StylusPointCollection.cs
- LogLogRecordEnumerator.cs
- DisplayNameAttribute.cs
- ASCIIEncoding.cs
- Point3DKeyFrameCollection.cs
- ImportContext.cs
- BinaryCommonClasses.cs
- ViewCellSlot.cs
- InputScopeAttribute.cs
- XmlCodeExporter.cs
- SSmlParser.cs
- ActivityExecutor.cs
- FloaterBaseParaClient.cs
- TempEnvironment.cs
- HttpListenerRequest.cs
- SiteMembershipCondition.cs
- DataColumn.cs
- NativeObjectSecurity.cs
- remotingproxy.cs
- Literal.cs
- QuadraticBezierSegment.cs
- Debug.cs
- WorkItem.cs
- SmiRecordBuffer.cs
- DataRecordObjectView.cs
- BindValidationContext.cs
- ApplicationFileParser.cs
- SystemInfo.cs
- CacheAxisQuery.cs
- ExceptionRoutedEventArgs.cs
- _SslStream.cs
- _ConnectionGroup.cs
- SQLGuid.cs
- ProtectedConfigurationSection.cs
- Label.cs
- SendMailErrorEventArgs.cs
- DynamicResourceExtensionConverter.cs
- TextServicesContext.cs
- MatrixIndependentAnimationStorage.cs
- DataGridItem.cs
- TemplateApplicationHelper.cs
- BrowserDefinitionCollection.cs
- BitStack.cs
- ExpressionBuilder.cs
- DataServiceConfiguration.cs
- QilInvokeEarlyBound.cs
- SafeProcessHandle.cs
- SchemaElementLookUpTableEnumerator.cs
- SpellerHighlightLayer.cs
- ListCollectionView.cs
- QueryAccessibilityHelpEvent.cs
- DocumentViewerConstants.cs
- __ConsoleStream.cs
- HttpCachePolicy.cs
- LocatorPartList.cs
- MessageFault.cs
- ObjectSpanRewriter.cs
- XmlElementCollection.cs
- CheckBox.cs
- DataGridTablesFactory.cs
- SignerInfo.cs
- TextTreeTextElementNode.cs
- FocusManager.cs
- CapabilitiesState.cs