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
- ProfileGroupSettings.cs
- TableLayoutSettingsTypeConverter.cs
- ComponentResourceKeyConverter.cs
- RectValueSerializer.cs
- BuildProvidersCompiler.cs
- CorrelationHandle.cs
- SupportingTokenListenerFactory.cs
- HtmlProps.cs
- FtpCachePolicyElement.cs
- DataFormat.cs
- ResourceCategoryAttribute.cs
- WaitingCursor.cs
- AssemblyInfo.cs
- GeneralTransformGroup.cs
- SynchronousChannel.cs
- DataError.cs
- Peer.cs
- StateChangeEvent.cs
- SetState.cs
- FlowDocumentReaderAutomationPeer.cs
- BooleanFunctions.cs
- WebPartsPersonalizationAuthorization.cs
- DataList.cs
- DebugHandleTracker.cs
- FileDocument.cs
- DataGridBoundColumn.cs
- DispatcherExceptionEventArgs.cs
- FilterException.cs
- WindowsSysHeader.cs
- PriorityRange.cs
- Literal.cs
- ClientSponsor.cs
- ComponentCollection.cs
- PassportPrincipal.cs
- Function.cs
- DataControlFieldCollection.cs
- ComboBox.cs
- StringValidator.cs
- XmlDataSource.cs
- RegexMatch.cs
- DataRecordInfo.cs
- OleDbException.cs
- XMLSchema.cs
- WebPartTransformerCollection.cs
- ValidationErrorInfo.cs
- PathFigure.cs
- WindowManager.cs
- ContractNamespaceAttribute.cs
- InheritanceAttribute.cs
- InlineObject.cs
- RegisteredExpandoAttribute.cs
- EventSinkHelperWriter.cs
- HwndMouseInputProvider.cs
- RangeExpression.cs
- SettingsPropertyValue.cs
- DataKey.cs
- HttpListener.cs
- SqlBulkCopyColumnMappingCollection.cs
- WSHttpSecurityElement.cs
- PasswordBoxAutomationPeer.cs
- HebrewCalendar.cs
- PropertySourceInfo.cs
- OdbcEnvironmentHandle.cs
- ISO2022Encoding.cs
- PointAnimation.cs
- WebFaultException.cs
- UserUseLicenseDictionaryLoader.cs
- InternalSendMessage.cs
- WindowsRichEditRange.cs
- DbDeleteCommandTree.cs
- MemberInitExpression.cs
- StringFunctions.cs
- PeerNameRecordCollection.cs
- KeyedCollection.cs
- ContentElement.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- ByteAnimationBase.cs
- StyleHelper.cs
- Trigger.cs
- Binding.cs
- OdbcDataReader.cs
- EntityDataSourceDesigner.cs
- ClientSession.cs
- SplineQuaternionKeyFrame.cs
- TemplateBaseAction.cs
- PromptEventArgs.cs
- PackWebRequest.cs
- CodeExpressionStatement.cs
- SecurityTraceRecordHelper.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- counter.cs
- StateMachineWorkflowInstance.cs
- Char.cs
- FontStretches.cs
- QilNode.cs
- XMLUtil.cs
- NullExtension.cs
- KeyInterop.cs
- ProtocolsConfigurationEntry.cs
- PeerSecurityHelpers.cs