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
- ThreadExceptionDialog.cs
- PeerEndPoint.cs
- GradientSpreadMethodValidation.cs
- PropVariant.cs
- oledbmetadatacolumnnames.cs
- Rect3DValueSerializer.cs
- Delegate.cs
- LeaseManager.cs
- PngBitmapDecoder.cs
- InternalRelationshipCollection.cs
- ToolStripPanel.cs
- ConditionalWeakTable.cs
- DataBindingExpressionBuilder.cs
- SelectedDatesCollection.cs
- CodeLabeledStatement.cs
- StylusEditingBehavior.cs
- ActivityWithResult.cs
- DateTimeUtil.cs
- GridViewColumnCollection.cs
- PreservationFileWriter.cs
- CodeGotoStatement.cs
- SystemKeyConverter.cs
- Rotation3DAnimationBase.cs
- SamlEvidence.cs
- DataGridViewColumnDesignTimeVisibleAttribute.cs
- SortKey.cs
- latinshape.cs
- UrlAuthorizationModule.cs
- XmlAttributeOverrides.cs
- LogStore.cs
- DataControlPagerLinkButton.cs
- WindowsStatic.cs
- ListViewHitTestInfo.cs
- CachedFontFamily.cs
- HitTestParameters3D.cs
- ObservableCollectionDefaultValueFactory.cs
- WebPartZoneBase.cs
- WorkflowViewService.cs
- PerformanceCounterCategory.cs
- EmptyReadOnlyDictionaryInternal.cs
- DataServiceExpressionVisitor.cs
- TypeConverterAttribute.cs
- Debug.cs
- Keyboard.cs
- XmlNullResolver.cs
- PropertyEmitter.cs
- ToolStripItemBehavior.cs
- Geometry3D.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- StateDesigner.CommentLayoutGlyph.cs
- ExtensionDataReader.cs
- SmiConnection.cs
- ThemeableAttribute.cs
- Listbox.cs
- IOException.cs
- IItemContainerGenerator.cs
- SequenceDesignerAccessibleObject.cs
- PersonalizationProvider.cs
- RegexTypeEditor.cs
- ButtonBase.cs
- RSAProtectedConfigurationProvider.cs
- FlowPanelDesigner.cs
- TemplatedWizardStep.cs
- MouseActionValueSerializer.cs
- PtsPage.cs
- IntSecurity.cs
- PersistenceTypeAttribute.cs
- ListViewInsertEventArgs.cs
- DbMetaDataFactory.cs
- _SslSessionsCache.cs
- WindowsToolbar.cs
- MediaCommands.cs
- DbXmlEnabledProviderManifest.cs
- ExpressionBuilder.cs
- TraceUtils.cs
- SendMailErrorEventArgs.cs
- XmlCharCheckingReader.cs
- Timer.cs
- ConnectionManager.cs
- ConditionalWeakTable.cs
- TargetPerspective.cs
- X509Utils.cs
- HandlerFactoryWrapper.cs
- WindowsScrollBarBits.cs
- x509store.cs
- CodeTypeParameterCollection.cs
- WebPartZone.cs
- SecurityException.cs
- SimpleType.cs
- CustomAttribute.cs
- MimeWriter.cs
- DataControlField.cs
- CodeLinePragma.cs
- CodePageEncoding.cs
- AbsoluteQuery.cs
- FrameworkElement.cs
- DataControlFieldCell.cs
- ToolStripStatusLabel.cs
- FormatVersion.cs
- SQLBinary.cs