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
- DefaultValueAttribute.cs
- SqlDependencyListener.cs
- ValueType.cs
- CodePageUtils.cs
- SubMenuStyleCollection.cs
- DesignerOptionService.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- GeneralTransform.cs
- MemoryRecordBuffer.cs
- LinqToSqlWrapper.cs
- StringPropertyBuilder.cs
- XmlReflectionImporter.cs
- DependencyPropertyValueSerializer.cs
- ScriptManager.cs
- PowerModeChangedEventArgs.cs
- AutoFocusStyle.xaml.cs
- DEREncoding.cs
- SHA384CryptoServiceProvider.cs
- RemotingAttributes.cs
- EllipseGeometry.cs
- KeyGestureValueSerializer.cs
- SmiEventSink.cs
- PathStreamGeometryContext.cs
- TagPrefixInfo.cs
- Visual3D.cs
- PeerSecurityHelpers.cs
- HttpServerUtilityWrapper.cs
- DataGridViewMethods.cs
- VectorCollection.cs
- ValidationSummary.cs
- XmlSchemaResource.cs
- DocumentCollection.cs
- TypeNameConverter.cs
- TreeViewEvent.cs
- recordstatescratchpad.cs
- Hex.cs
- SrgsSubset.cs
- JsonReader.cs
- DesignerUtility.cs
- ServiceSecurityContext.cs
- assertwrapper.cs
- SQLBinary.cs
- ChineseLunisolarCalendar.cs
- ConnectionPointCookie.cs
- DBCommand.cs
- MetricEntry.cs
- ImageMap.cs
- KeyValueSerializer.cs
- _BufferOffsetSize.cs
- OleDbPermission.cs
- AttributeCollection.cs
- CapiSymmetricAlgorithm.cs
- StrongNameSignatureInformation.cs
- GreenMethods.cs
- MetadataItem_Static.cs
- TextDecoration.cs
- Animatable.cs
- OdbcConnectionString.cs
- Int32Rect.cs
- RtfNavigator.cs
- Menu.cs
- DataSourceControlBuilder.cs
- HtmlTableCell.cs
- SevenBitStream.cs
- DataGridViewTextBoxCell.cs
- PerformanceCounterPermissionEntryCollection.cs
- ConfigXmlSignificantWhitespace.cs
- WorkflowHostingResponseContext.cs
- TripleDESCryptoServiceProvider.cs
- PageVisual.cs
- SqlDataReaderSmi.cs
- MimeXmlImporter.cs
- SocketInformation.cs
- PathFigureCollection.cs
- CodeDomExtensionMethods.cs
- SoapObjectInfo.cs
- PointHitTestParameters.cs
- RuntimeConfig.cs
- COAUTHINFO.cs
- ReplyChannelAcceptor.cs
- EventArgs.cs
- PieceDirectory.cs
- PeerNameRegistration.cs
- SmiContext.cs
- FactoryMaker.cs
- HttpConfigurationContext.cs
- Pair.cs
- FilterQuery.cs
- DropDownButton.cs
- HttpDebugHandler.cs
- FrugalMap.cs
- TracePayload.cs
- cookiecollection.cs
- ListViewItemSelectionChangedEvent.cs
- LinkDescriptor.cs
- EventToken.cs
- CompModSwitches.cs
- PagesSection.cs
- _SSPIWrapper.cs
- MaterialGroup.cs