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
- DbBuffer.cs
- CodeNamespaceCollection.cs
- HttpValueCollection.cs
- ProviderBase.cs
- Control.cs
- HttpCachePolicyElement.cs
- MapPathBasedVirtualPathProvider.cs
- SerializationFieldInfo.cs
- FontFamilyValueSerializer.cs
- Color.cs
- TrackingRecord.cs
- BaseTemplateCodeDomTreeGenerator.cs
- Visual3D.cs
- AcceleratedTokenAuthenticator.cs
- MouseGestureValueSerializer.cs
- WebPartEditorApplyVerb.cs
- WmlMobileTextWriter.cs
- _ProxyChain.cs
- WebPartAddingEventArgs.cs
- DatatypeImplementation.cs
- HelloMessage11.cs
- InternalSendMessage.cs
- CodePageUtils.cs
- CodeLabeledStatement.cs
- ApplicationServiceManager.cs
- BooleanConverter.cs
- DefaultAsyncDataDispatcher.cs
- TextViewBase.cs
- CodeAssignStatement.cs
- SqlAggregateChecker.cs
- ColorMap.cs
- OrderedHashRepartitionEnumerator.cs
- SqlCacheDependencyDatabaseCollection.cs
- PropertyValueChangedEvent.cs
- EnumType.cs
- ListChangedEventArgs.cs
- DbConnectionFactory.cs
- PropertyIDSet.cs
- FloatMinMaxAggregationOperator.cs
- SizeAnimationClockResource.cs
- DataListCommandEventArgs.cs
- CompositeDispatchFormatter.cs
- SimplePropertyEntry.cs
- DataKeyCollection.cs
- ExpressionPrefixAttribute.cs
- ToolStripScrollButton.cs
- SurrogateSelector.cs
- PrintPreviewDialog.cs
- SoapObjectReader.cs
- DataServiceResponse.cs
- MoveSizeWinEventHandler.cs
- CompositeDataBoundControl.cs
- ApplicationSecurityManager.cs
- FocusManager.cs
- StreamingContext.cs
- Configuration.cs
- OleCmdHelper.cs
- UrlMappingsModule.cs
- TextBoxBase.cs
- HttpStreamXmlDictionaryWriter.cs
- InvokeBase.cs
- CalendarDesigner.cs
- ControlPropertyNameConverter.cs
- SymbolMethod.cs
- TemplateControlCodeDomTreeGenerator.cs
- Button.cs
- SqlRowUpdatedEvent.cs
- SByte.cs
- HttpCookiesSection.cs
- ZoneIdentityPermission.cs
- WebBrowserEvent.cs
- SqlBuilder.cs
- ActivationProxy.cs
- HtmlInputCheckBox.cs
- Attributes.cs
- DiscoveryClientOutputChannel.cs
- ProcessModuleCollection.cs
- Dynamic.cs
- QuotedPrintableStream.cs
- ChangeDirector.cs
- DecoderFallbackWithFailureFlag.cs
- FileAuthorizationModule.cs
- MaskedTextBoxTextEditorDropDown.cs
- SqlBooleanizer.cs
- RegexRunner.cs
- Misc.cs
- WindowsTreeView.cs
- DocobjHost.cs
- LineGeometry.cs
- xsdvalidator.cs
- Effect.cs
- CssClassPropertyAttribute.cs
- DrawingState.cs
- ChannelServices.cs
- _ProxyChain.cs
- smtppermission.cs
- HwndHost.cs
- ConditionalDesigner.cs
- DeclaredTypeElementCollection.cs
- HandoffBehavior.cs