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
- cookieexception.cs
- WindowExtensionMethods.cs
- CodeMemberEvent.cs
- BaseTemplateParser.cs
- CodeIndexerExpression.cs
- DirectionalLight.cs
- SqlComparer.cs
- DataMember.cs
- ActivityMarkupSerializationProvider.cs
- NamespaceExpr.cs
- HijriCalendar.cs
- PointHitTestResult.cs
- SecurityPolicySection.cs
- FormatSettings.cs
- SspiNegotiationTokenProvider.cs
- NavigationHelper.cs
- StyleSelector.cs
- XpsSerializerWriter.cs
- XamlPointCollectionSerializer.cs
- CommandID.cs
- OutputCacheSettingsSection.cs
- FtpWebRequest.cs
- VariableModifiersHelper.cs
- MergeFilterQuery.cs
- _NetworkingPerfCounters.cs
- WaitingCursor.cs
- _NetworkingPerfCounters.cs
- SessionIDManager.cs
- peernodestatemanager.cs
- AnonymousIdentificationModule.cs
- CompilationUtil.cs
- X509Certificate.cs
- Rights.cs
- SurrogateEncoder.cs
- AppDomain.cs
- AssociationSetEnd.cs
- BuildProviderCollection.cs
- SoapIncludeAttribute.cs
- XmlValidatingReaderImpl.cs
- SafeReadContext.cs
- DbCommandDefinition.cs
- ReferencedType.cs
- SiteMapDataSourceView.cs
- BufferBuilder.cs
- JoinCqlBlock.cs
- BinaryMethodMessage.cs
- GuidConverter.cs
- ContainsRowNumberChecker.cs
- AssociatedControlConverter.cs
- SharedStatics.cs
- CodeConstructor.cs
- ConstructorBuilder.cs
- XPathNode.cs
- HebrewNumber.cs
- Exceptions.cs
- NavigatorInput.cs
- WsdlBuildProvider.cs
- MarshalDirectiveException.cs
- KnownBoxes.cs
- EnumUnknown.cs
- MulticastDelegate.cs
- CellParaClient.cs
- InitiatorServiceModelSecurityTokenRequirement.cs
- RequestResizeEvent.cs
- Privilege.cs
- TypedDataSetSchemaImporterExtension.cs
- XPathDescendantIterator.cs
- TemplateComponentConnector.cs
- WindowsIPAddress.cs
- RSAPKCS1SignatureFormatter.cs
- OdbcTransaction.cs
- StyleHelper.cs
- CodeRegionDirective.cs
- DataControlButton.cs
- DesigntimeLicenseContextSerializer.cs
- CheckBoxPopupAdapter.cs
- LabelLiteral.cs
- StorageModelBuildProvider.cs
- CqlParserHelpers.cs
- WebScriptMetadataFormatter.cs
- HttpRuntime.cs
- ResourceDescriptionAttribute.cs
- LinkedResourceCollection.cs
- NonVisualControlAttribute.cs
- ContentElement.cs
- RectangleF.cs
- TerminateWorkflow.cs
- DbgCompiler.cs
- LayoutSettings.cs
- Expression.cs
- XmlNode.cs
- OrderingQueryOperator.cs
- QueryableDataSource.cs
- MediaElement.cs
- TemplateControlCodeDomTreeGenerator.cs
- OracleConnection.cs
- MulticastIPAddressInformationCollection.cs
- WSTrust.cs
- SnapLine.cs
- PropertyNames.cs