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
- SecurityHelper.cs
- MexTcpBindingElement.cs
- PropertyChangingEventArgs.cs
- DataGridViewColumnEventArgs.cs
- FormClosingEvent.cs
- latinshape.cs
- NameScopePropertyAttribute.cs
- PathSegment.cs
- DynamicArgumentDialog.cs
- OpCodes.cs
- XmlSchemaIdentityConstraint.cs
- Point3DConverter.cs
- Ticks.cs
- SystemTcpStatistics.cs
- FormClosingEvent.cs
- ToolBar.cs
- SupportingTokenDuplexChannel.cs
- AuthenticationServiceManager.cs
- StyleSheet.cs
- MailAddressCollection.cs
- GetLastErrorDetailsRequest.cs
- Attribute.cs
- Themes.cs
- _ConnectOverlappedAsyncResult.cs
- DataSourceCache.cs
- XsdValidatingReader.cs
- GeneralTransform3DTo2D.cs
- WorkflowRuntimeElement.cs
- EditorPartChrome.cs
- Variable.cs
- PropertyCondition.cs
- EntityTypeEmitter.cs
- LightweightCodeGenerator.cs
- SafeFindHandle.cs
- FixedSOMContainer.cs
- NumberSubstitution.cs
- HighlightVisual.cs
- PrincipalPermission.cs
- WindowsAuthenticationEventArgs.cs
- SimpleTypeResolver.cs
- XmlSerializerFormatAttribute.cs
- FacetValueContainer.cs
- RecognizedPhrase.cs
- SEHException.cs
- WindowsBrush.cs
- DataTemplateSelector.cs
- PersonalizablePropertyEntry.cs
- StatusStrip.cs
- MenuItemCollection.cs
- Faults.cs
- DesignerLabelAdapter.cs
- ReadOnlyTernaryTree.cs
- HttpConfigurationSystem.cs
- CollectionChangeEventArgs.cs
- CollectionChangedEventManager.cs
- GeneralTransform3DCollection.cs
- ColumnWidthChangingEvent.cs
- ProcessHostMapPath.cs
- ServiceHostingEnvironment.cs
- SettingsPropertyWrongTypeException.cs
- Compress.cs
- RegexWorker.cs
- WebPartTransformer.cs
- Compiler.cs
- XmlMapping.cs
- TextPointer.cs
- MultiView.cs
- TransformValueSerializer.cs
- OperatingSystem.cs
- XDeferredAxisSource.cs
- CodeAccessSecurityEngine.cs
- ToolStripPanelDesigner.cs
- MultiByteCodec.cs
- StrokeDescriptor.cs
- LongAverageAggregationOperator.cs
- ReachDocumentReferenceCollectionSerializer.cs
- ResolveMatchesMessageCD1.cs
- TextProperties.cs
- SchemaComplexType.cs
- TextWriterTraceListener.cs
- XmlIncludeAttribute.cs
- XmlDocumentSurrogate.cs
- OutputCacheSettings.cs
- TCPListener.cs
- SemanticKeyElement.cs
- MultiByteCodec.cs
- CachedFontFamily.cs
- CompiledIdentityConstraint.cs
- FrameworkPropertyMetadata.cs
- BasicHttpMessageSecurity.cs
- ResourceWriter.cs
- CurrentTimeZone.cs
- ChannelPoolSettingsElement.cs
- XpsPartBase.cs
- ErrorEventArgs.cs
- SqlEnums.cs
- GetPageCompletedEventArgs.cs
- PeerTransportSecurityElement.cs
- StringStorage.cs
- ClientUtils.cs