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
- DocumentSequenceHighlightLayer.cs
- ContentValidator.cs
- HuffmanTree.cs
- Drawing.cs
- OrderedEnumerableRowCollection.cs
- FunctionDescription.cs
- Brush.cs
- WsatAdminException.cs
- mediapermission.cs
- SqlFacetAttribute.cs
- precedingquery.cs
- BaseValidator.cs
- GridView.cs
- ChangeConflicts.cs
- RMEnrollmentPage1.cs
- Activation.cs
- SqlClientFactory.cs
- TimeSpanMinutesConverter.cs
- NavigationPropertyEmitter.cs
- TableRow.cs
- Enum.cs
- SQLUtility.cs
- SnapLine.cs
- ListParaClient.cs
- TypeResolvingOptions.cs
- _IPv4Address.cs
- ManagementOperationWatcher.cs
- Label.cs
- URLEditor.cs
- TextHidden.cs
- ToolboxComponentsCreatedEventArgs.cs
- DynamicQueryStringParameter.cs
- COM2Enum.cs
- TreeNodeStyle.cs
- GraphicsContainer.cs
- ECDiffieHellmanCngPublicKey.cs
- ServiceContractViewControl.cs
- ValueProviderWrapper.cs
- UInt64.cs
- BulletedList.cs
- HandlerMappingMemo.cs
- SqlConnectionStringBuilder.cs
- IdentifierCollection.cs
- SqlTypeSystemProvider.cs
- TargetControlTypeAttribute.cs
- DiagnosticsConfiguration.cs
- QuaternionAnimation.cs
- WaitHandle.cs
- WebPartZone.cs
- ElapsedEventArgs.cs
- AppDomain.cs
- InstanceHandleConflictException.cs
- Semaphore.cs
- TraversalRequest.cs
- XmlSchemaAll.cs
- ResourcesGenerator.cs
- WindowsTab.cs
- IndexOutOfRangeException.cs
- XmlIterators.cs
- OleDbFactory.cs
- HierarchicalDataBoundControlAdapter.cs
- UrlAuthFailedErrorFormatter.cs
- AddInBase.cs
- TableLayoutColumnStyleCollection.cs
- AccessDataSourceView.cs
- SqlProvider.cs
- SqlReorderer.cs
- EntitySqlQueryBuilder.cs
- DurableEnlistmentState.cs
- ListViewGroupCollectionEditor.cs
- HttpCapabilitiesSectionHandler.cs
- AssemblyNameProxy.cs
- SoapAttributeOverrides.cs
- SiteMapSection.cs
- HttpListenerResponse.cs
- ControlEvent.cs
- JoinElimination.cs
- Parser.cs
- Group.cs
- OdbcPermission.cs
- ComponentConverter.cs
- CancellationTokenSource.cs
- DistributedTransactionPermission.cs
- ProtectedUri.cs
- EventLogEntry.cs
- MachineSettingsSection.cs
- SendKeys.cs
- MessageDesigner.cs
- CryptoProvider.cs
- ObjectDataSourceMethodEventArgs.cs
- Point.cs
- SQLInt32.cs
- ActivityValidationServices.cs
- AbsoluteQuery.cs
- TokenizerHelper.cs
- OracleSqlParser.cs
- OdbcReferenceCollection.cs
- ThrowHelper.cs
- DefaultBindingPropertyAttribute.cs
- NamespaceEmitter.cs