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
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MethodCallConverter.cs
- XPathArrayIterator.cs
- GridLengthConverter.cs
- DiscoveryServerProtocol.cs
- ColumnHeaderConverter.cs
- InteropBitmapSource.cs
- DocumentPageViewAutomationPeer.cs
- TabControlCancelEvent.cs
- AppearanceEditorPart.cs
- ASCIIEncoding.cs
- ObjectNavigationPropertyMapping.cs
- DrawingServices.cs
- StringOutput.cs
- DBCSCodePageEncoding.cs
- handlecollector.cs
- SeparatorAutomationPeer.cs
- OSFeature.cs
- ClientScriptManager.cs
- XmlHierarchyData.cs
- ComEventsHelper.cs
- ValidatedControlConverter.cs
- BitmapMetadata.cs
- SqlConnectionString.cs
- CompilerError.cs
- TextStore.cs
- httpserverutility.cs
- ValueOfAction.cs
- QueryParameter.cs
- WorkflowFileItem.cs
- Object.cs
- ExtendedProperty.cs
- XmlSecureResolver.cs
- TextUtf8RawTextWriter.cs
- ColumnReorderedEventArgs.cs
- StringWriter.cs
- Interlocked.cs
- MarkupCompilePass2.cs
- HostedTransportConfigurationManager.cs
- NotCondition.cs
- IncomingWebRequestContext.cs
- Events.cs
- ExceptionRoutedEventArgs.cs
- DBCommandBuilder.cs
- InfiniteIntConverter.cs
- AggregateNode.cs
- SecurityUtils.cs
- IdentifierCreationService.cs
- InternalCompensate.cs
- NegationPusher.cs
- OracleMonthSpan.cs
- GroupQuery.cs
- InvalidOleVariantTypeException.cs
- TypeBinaryExpression.cs
- _StreamFramer.cs
- MatrixAnimationBase.cs
- XmlHierarchyData.cs
- HttpDateParse.cs
- WindowsFormsDesignerOptionService.cs
- UInt16Converter.cs
- XmlSchemaSimpleTypeList.cs
- CompilerHelpers.cs
- GeneralTransform3DCollection.cs
- ModifiableIteratorCollection.cs
- MethodRental.cs
- TableAdapterManagerGenerator.cs
- DialogResultConverter.cs
- WindowAutomationPeer.cs
- TabletCollection.cs
- TextSegment.cs
- ElementAction.cs
- Int64.cs
- ServicePointManagerElement.cs
- Journaling.cs
- SelectionEditor.cs
- WebPartDisplayMode.cs
- AssemblyCacheEntry.cs
- CellTreeNode.cs
- wgx_sdk_version.cs
- ExtendedProtectionPolicy.cs
- PassportAuthentication.cs
- URLAttribute.cs
- RedistVersionInfo.cs
- BamlRecordHelper.cs
- LinqToSqlWrapper.cs
- Stroke2.cs
- CompositeScriptReference.cs
- BinaryWriter.cs
- WebPartManager.cs
- HostExecutionContextManager.cs
- ActivityCodeDomReferenceService.cs
- TextRangeEditTables.cs
- ResourceProperty.cs
- MarshalByRefObject.cs
- CalendarDateChangedEventArgs.cs
- HtmlInputFile.cs
- QueryContinueDragEventArgs.cs
- Part.cs
- IntPtr.cs
- StylusShape.cs
- OleDbException.cs