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
- WebPartMinimizeVerb.cs
- Model3D.cs
- HttpCookie.cs
- PackWebRequestFactory.cs
- NonVisualControlAttribute.cs
- ProviderUtil.cs
- RowBinding.cs
- ResourceExpressionBuilder.cs
- DataSourceDescriptorCollection.cs
- BitHelper.cs
- Win32Native.cs
- GenericNameHandler.cs
- UidManager.cs
- SystemIPGlobalStatistics.cs
- FormViewCommandEventArgs.cs
- DiffuseMaterial.cs
- FormViewInsertedEventArgs.cs
- QilGenerator.cs
- TextEditorParagraphs.cs
- StrokeCollectionDefaultValueFactory.cs
- StringConcat.cs
- StylusPointPropertyInfo.cs
- PreviewControlDesigner.cs
- DataRecordInternal.cs
- StrokeSerializer.cs
- FontFamilyValueSerializer.cs
- GridViewSortEventArgs.cs
- ReliableSessionBindingElement.cs
- OdbcEnvironment.cs
- CodeTypeReferenceExpression.cs
- LoggedException.cs
- OdbcStatementHandle.cs
- XmlILOptimizerVisitor.cs
- OdbcConnectionPoolProviderInfo.cs
- XamlReaderConstants.cs
- ReadOnlyCollectionBase.cs
- SqlTrackingQuery.cs
- IOThreadScheduler.cs
- DbException.cs
- CodeBlockBuilder.cs
- X509Utils.cs
- TransformGroup.cs
- XmlSerializerAssemblyAttribute.cs
- PerformanceCounter.cs
- PagePropertiesChangingEventArgs.cs
- StringWriter.cs
- CheckedPointers.cs
- ReachPrintTicketSerializer.cs
- XmlSchemaAll.cs
- AccessDataSourceView.cs
- SqlCrossApplyToCrossJoin.cs
- ExpandedWrapper.cs
- DeclarationUpdate.cs
- ReachDocumentSequenceSerializerAsync.cs
- AuthenticationManager.cs
- WindowsFormsSynchronizationContext.cs
- StreamMarshaler.cs
- ManagedWndProcTracker.cs
- RefExpr.cs
- DataSourceHelper.cs
- SymmetricCryptoHandle.cs
- EncoderFallback.cs
- StrokeNode.cs
- DataListItemCollection.cs
- LogEntryUtils.cs
- InputReport.cs
- BasicBrowserDialog.designer.cs
- XmlSchemaInferenceException.cs
- DataGridViewColumnEventArgs.cs
- DefaultAssemblyResolver.cs
- ReversePositionQuery.cs
- Guid.cs
- InputElement.cs
- JsonReaderWriterFactory.cs
- Internal.cs
- WebReferencesBuildProvider.cs
- ColumnClickEvent.cs
- Attributes.cs
- FacetEnabledSchemaElement.cs
- AlternateView.cs
- ClonableStack.cs
- DrawingContextFlattener.cs
- DataObjectMethodAttribute.cs
- AggregateNode.cs
- DispatchWrapper.cs
- HttpPostProtocolReflector.cs
- CellTreeNodeVisitors.cs
- SymLanguageVendor.cs
- _SpnDictionary.cs
- DataServiceException.cs
- DataBindEngine.cs
- Flattener.cs
- WebRequest.cs
- RepeaterItemEventArgs.cs
- CustomErrorsSection.cs
- EncoderExceptionFallback.cs
- BasePattern.cs
- MarkupCompilePass1.cs
- BinaryMethodMessage.cs
- StyleSelector.cs