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
- InputManager.cs
- Rotation3DKeyFrameCollection.cs
- WebBrowserProgressChangedEventHandler.cs
- XmlEventCache.cs
- DataExpression.cs
- NamedPermissionSet.cs
- DrawingContext.cs
- PriorityBinding.cs
- SkipStoryboardToFill.cs
- PropVariant.cs
- XmlConverter.cs
- NativeCompoundFileAPIs.cs
- SerialStream.cs
- SHA1.cs
- DesignSurface.cs
- AutoResizedEvent.cs
- glyphs.cs
- HiddenFieldPageStatePersister.cs
- FolderBrowserDialog.cs
- IndependentAnimationStorage.cs
- PropertyPanel.cs
- HostedAspNetEnvironment.cs
- TrackingMemoryStreamFactory.cs
- RequestCachingSection.cs
- StatusBar.cs
- RefreshEventArgs.cs
- DBCommand.cs
- QilIterator.cs
- WindowsScrollBar.cs
- Authorization.cs
- elementinformation.cs
- PreparingEnlistment.cs
- HtmlInputButton.cs
- TextBoxView.cs
- CodeArgumentReferenceExpression.cs
- SHA1.cs
- AspNetPartialTrustHelpers.cs
- RepeaterItemCollection.cs
- XmlException.cs
- _NestedMultipleAsyncResult.cs
- SoapAttributes.cs
- StringWriter.cs
- Internal.cs
- GeometryModel3D.cs
- TransactionFlowBindingElement.cs
- EncryptedXml.cs
- ProxyGenerationError.cs
- HttpBrowserCapabilitiesBase.cs
- WsdlBuildProvider.cs
- Accessible.cs
- ThaiBuddhistCalendar.cs
- MouseCaptureWithinProperty.cs
- HtmlCommandAdapter.cs
- XmlSerializerNamespaces.cs
- Helper.cs
- BindingManagerDataErrorEventArgs.cs
- InternalConfigConfigurationFactory.cs
- BaseDataListDesigner.cs
- Site.cs
- GenerateDerivedKeyRequest.cs
- WmiEventSink.cs
- ProtocolsConfiguration.cs
- LambdaExpression.cs
- GlobalizationAssembly.cs
- MatrixAnimationBase.cs
- SerializerDescriptor.cs
- HostingEnvironmentSection.cs
- EventItfInfo.cs
- TimeManager.cs
- TaiwanLunisolarCalendar.cs
- SystemSounds.cs
- BitmapEffectInput.cs
- SelectionHighlightInfo.cs
- XmlExtensionFunction.cs
- xamlnodes.cs
- ScrollBar.cs
- ConsoleKeyInfo.cs
- ContainsRowNumberChecker.cs
- IconConverter.cs
- WebException.cs
- DateTimeAutomationPeer.cs
- DES.cs
- OdbcReferenceCollection.cs
- WebHttpSecurityElement.cs
- HttpModuleCollection.cs
- AttachmentService.cs
- XamlInt32CollectionSerializer.cs
- XPathNodeHelper.cs
- FloaterParagraph.cs
- InvalidPrinterException.cs
- ToolStripOverflowButton.cs
- CachedPathData.cs
- BaseResourcesBuildProvider.cs
- ToolStripDropDownClosedEventArgs.cs
- CopyCodeAction.cs
- ObjectConverter.cs
- SqlInternalConnectionTds.cs
- PointIndependentAnimationStorage.cs
- XComponentModel.cs
- BooleanProjectedSlot.cs