Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / IdentityModel / System / IdentityModel / Tokens / SymmetricKey.cs / 1 / 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.IsSymmetricAlgorithm(algorithm, this.KeySize)); } public override bool IsSymmetricAlgorithm(string algorithm) { return CryptoHelper.IsSymmetricAlgorithm(algorithm); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CodeGroup.cs
- ClipboardData.cs
- EntityCommandExecutionException.cs
- KoreanCalendar.cs
- PseudoWebRequest.cs
- StringAttributeCollection.cs
- Win32SafeHandles.cs
- LinearQuaternionKeyFrame.cs
- HttpRequest.cs
- DataRowComparer.cs
- SessionEndingEventArgs.cs
- SkipStoryboardToFill.cs
- FlowLayoutPanel.cs
- MemberDomainMap.cs
- SecurityCriticalDataForSet.cs
- ConstructorExpr.cs
- Point4D.cs
- TitleStyle.cs
- TypeDescriptorFilterService.cs
- TaskExtensions.cs
- DbgUtil.cs
- Html32TextWriter.cs
- SemanticValue.cs
- TypeUnloadedException.cs
- DbProviderConfigurationHandler.cs
- DeobfuscatingStream.cs
- ConstructorNeedsTagAttribute.cs
- OdbcStatementHandle.cs
- FullTextState.cs
- RectAnimation.cs
- VisualStyleElement.cs
- ILGenerator.cs
- RemoteWebConfigurationHostServer.cs
- IIS7WorkerRequest.cs
- EnumerableRowCollection.cs
- SamlAssertion.cs
- SmtpNetworkElement.cs
- Expander.cs
- IsolatedStoragePermission.cs
- SqlClientWrapperSmiStreamChars.cs
- SqlConnectionPoolGroupProviderInfo.cs
- ResolvedKeyFrameEntry.cs
- Journal.cs
- WorkflowCompensationBehavior.cs
- ISO2022Encoding.cs
- SafeNativeMethods.cs
- JapaneseLunisolarCalendar.cs
- VectorConverter.cs
- SHA256CryptoServiceProvider.cs
- CountAggregationOperator.cs
- LinkGrep.cs
- DPCustomTypeDescriptor.cs
- WpfSharedBamlSchemaContext.cs
- Rijndael.cs
- Workspace.cs
- Tokenizer.cs
- FolderNameEditor.cs
- Assert.cs
- MergePropertyDescriptor.cs
- SimpleType.cs
- SimplePropertyEntry.cs
- SaveFileDialog.cs
- GenerateDerivedKeyRequest.cs
- EventLogPermissionAttribute.cs
- Visual.cs
- SHA512Managed.cs
- NodeInfo.cs
- SoapIgnoreAttribute.cs
- FaultPropagationRecord.cs
- BamlLocalizationDictionary.cs
- StackBuilderSink.cs
- StreamingContext.cs
- TextElementEnumerator.cs
- HttpResponseWrapper.cs
- DataGridViewTopLeftHeaderCell.cs
- WebPartDeleteVerb.cs
- CodeParameterDeclarationExpression.cs
- RepeatButtonAutomationPeer.cs
- TextModifier.cs
- DataGridViewButtonColumn.cs
- BCLDebug.cs
- WorkflowNamespace.cs
- ObjectDataSource.cs
- PageStatePersister.cs
- AssemblyHash.cs
- XmlResolver.cs
- NotCondition.cs
- TcpClientChannel.cs
- IdentitySection.cs
- FixUp.cs
- MorphHelpers.cs
- BeginEvent.cs
- activationcontext.cs
- SoapHeaderException.cs
- Subset.cs
- MediaTimeline.cs
- GetPageCompletedEventArgs.cs
- BitVector32.cs
- WebReferenceOptions.cs
- WebPart.cs