Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / IdentityModel / System / IdentityModel / Tokens / SymmetricKey.cs / 1305376 / SymmetricKey.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.IdentityModel.Tokens { using System.IdentityModel.Selectors; using System.Security.Cryptography; public class InMemorySymmetricSecurityKey : SymmetricSecurityKey { int keySize; byte[] symmetricKey; public InMemorySymmetricSecurityKey(byte[] symmetricKey) : this(symmetricKey, true) { } public InMemorySymmetricSecurityKey(byte[] symmetricKey, bool cloneBuffer) { if (symmetricKey == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("symmetricKey")); } if (symmetricKey.Length == 0) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentException(SR.GetString(SR.SymmetricKeyLengthTooShort, symmetricKey.Length))); } this.keySize = symmetricKey.Length * 8; if (cloneBuffer) { this.symmetricKey = new byte[symmetricKey.Length]; Buffer.BlockCopy(symmetricKey, 0, this.symmetricKey, 0, symmetricKey.Length); } else { this.symmetricKey = symmetricKey; } } public override int KeySize { get { return this.keySize; } } public override byte[] DecryptKey(string algorithm, byte[] keyData) { return CryptoHelper.UnwrapKey(this.symmetricKey, keyData, algorithm); } public override byte[] EncryptKey(string algorithm, byte[] keyData) { return CryptoHelper.WrapKey(this.symmetricKey, keyData, algorithm); } public override byte[] GenerateDerivedKey(string algorithm, byte[] label, byte[] nonce, int derivedKeyLength, int offset) { return CryptoHelper.GenerateDerivedKey(this.symmetricKey, algorithm, label, nonce, derivedKeyLength, offset); } public override ICryptoTransform GetDecryptionTransform(string algorithm, byte[] iv) { return CryptoHelper.CreateDecryptor(this.symmetricKey, iv, algorithm); } public override ICryptoTransform GetEncryptionTransform(string algorithm, byte[] iv) { return CryptoHelper.CreateEncryptor(this.symmetricKey, iv, algorithm); } public override int GetIVSize(string algorithm) { return CryptoHelper.GetIVSize(algorithm); } public override KeyedHashAlgorithm GetKeyedHashAlgorithm(string algorithm) { return CryptoHelper.CreateKeyedHashAlgorithm(this.symmetricKey, algorithm); } public override SymmetricAlgorithm GetSymmetricAlgorithm(string algorithm) { return CryptoHelper.GetSymmetricAlgorithm(this.symmetricKey, algorithm); } public override byte[] GetSymmetricKey() { byte[] local = new byte[this.symmetricKey.Length]; Buffer.BlockCopy(this.symmetricKey, 0, local, 0, this.symmetricKey.Length); return local; } public override bool IsAsymmetricAlgorithm(string algorithm) { return (CryptoHelper.IsAsymmetricAlgorithm(algorithm)); } public override bool IsSupportedAlgorithm(string algorithm) { return (CryptoHelper.IsSymmetricSupportedAlgorithm(algorithm, this.KeySize)); } public override bool IsSymmetricAlgorithm(string algorithm) { return CryptoHelper.IsSymmetricAlgorithm(algorithm); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SettingsAttributeDictionary.cs
- EncryptedData.cs
- ToolStripManager.cs
- DescendentsWalker.cs
- ListItemParagraph.cs
- HtmlImage.cs
- HitTestWithGeometryDrawingContextWalker.cs
- DiagnosticEventProvider.cs
- ArrayList.cs
- ArrayItemValue.cs
- SQLByteStorage.cs
- TypeResolver.cs
- ModelUIElement3D.cs
- BasicCommandTreeVisitor.cs
- SystemGatewayIPAddressInformation.cs
- Relationship.cs
- ClientProtocol.cs
- HtmlControlPersistable.cs
- RequestCachePolicyConverter.cs
- CultureMapper.cs
- SetIterators.cs
- LayoutTable.cs
- ConstraintStruct.cs
- Calendar.cs
- AnnouncementEndpoint.cs
- LayoutEditorPart.cs
- TextContainer.cs
- SplashScreenNativeMethods.cs
- DetailsViewUpdateEventArgs.cs
- ListControl.cs
- CodeObjectCreateExpression.cs
- DataGridPageChangedEventArgs.cs
- InvokeMethodDesigner.xaml.cs
- PrivilegeNotHeldException.cs
- FaultHandlingFilter.cs
- SystemIPGlobalProperties.cs
- DataFormats.cs
- MediaElementAutomationPeer.cs
- XNameTypeConverter.cs
- ExpressionEditorAttribute.cs
- HostedElements.cs
- ReadOnlyPermissionSet.cs
- XmlEntity.cs
- RecordManager.cs
- LeftCellWrapper.cs
- DataGridRow.cs
- TimerTable.cs
- WebAdminConfigurationHelper.cs
- ImageMapEventArgs.cs
- RegisteredScript.cs
- OdbcUtils.cs
- BooleanAnimationUsingKeyFrames.cs
- TriggerBase.cs
- MiniAssembly.cs
- ManagementObject.cs
- ILGenerator.cs
- CompilationSection.cs
- ServiceMetadataContractBehavior.cs
- FormViewInsertedEventArgs.cs
- BaseProcessProtocolHandler.cs
- ResourceExpressionBuilder.cs
- basecomparevalidator.cs
- ThreadAttributes.cs
- Ipv6Element.cs
- SlotInfo.cs
- SQLInt32.cs
- UmAlQuraCalendar.cs
- BindingsCollection.cs
- InstanceLockQueryResult.cs
- GenericsInstances.cs
- Membership.cs
- Pens.cs
- HexParser.cs
- FrameworkElementFactory.cs
- BamlLocalizationDictionary.cs
- IImplicitResourceProvider.cs
- IssuedTokenParametersElement.cs
- PerfCounters.cs
- DrawingImage.cs
- SafeCryptoHandles.cs
- SkinIDTypeConverter.cs
- Win32SafeHandles.cs
- MergeFailedEvent.cs
- NCryptNative.cs
- SchemaTypeEmitter.cs
- QueryCursorEventArgs.cs
- ListViewUpdatedEventArgs.cs
- VersionConverter.cs
- ECDiffieHellmanCng.cs
- ServiceOperationListItem.cs
- ControlValuePropertyAttribute.cs
- FixUp.cs
- Throw.cs
- FamilyMap.cs
- DropShadowBitmapEffect.cs
- InputProviderSite.cs
- PerspectiveCamera.cs
- SafeEventHandle.cs
- Rules.cs
- Delay.cs