Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Security / Cryptography / Crypto.cs / 1305376 / Crypto.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== //[....] // // // Crypto.cs // namespace System.Security.Cryptography { #if !SILVERLIGHT using Microsoft.Win32; using System.Runtime.Serialization; using System.Globalization; #endif // !SILVERLIGHT // This enum represents cipher chaining modes: cipher block chaining (CBC), // electronic code book (ECB), output feedback (OFB), cipher feedback (CFB), // and ciphertext-stealing (CTS). Not all implementations will support all modes. [Serializable] [System.Runtime.InteropServices.ComVisible(true)] public enum CipherMode { // Please keep in [....] with wincrypt.h CBC = 1, ECB = 2, OFB = 3, CFB = 4, CTS = 5 } // This enum represents the padding method to use for filling out short blocks. // "None" means no padding (whole blocks required). // "PKCS7" is the padding mode defined in RFC 2898, Section 6.1.1, Step 4, generalized // to whatever block size is required. // "Zeros" means pad with zero bytes to fill out the last block. // "ISO 10126" is the same as PKCS5 except that it fills the bytes before the last one with // random bytes. "ANSI X.923" fills the bytes with zeros and puts the number of padding // bytes in the last byte. [Serializable] [System.Runtime.InteropServices.ComVisible(true)] public enum PaddingMode { None = 1, PKCS7 = 2, Zeros = 3, ANSIX923 = 4, ISO10126 = 5 } #if !SILVERLIGHT // This structure is used for returning the set of legal key sizes and // block sizes of the symmetric algorithms. // Note: this class should be sealed, otherwise someone could sub-class it and the read-only // properties we depend on can have setters. Ideally, we should have a struct here (value type) // but we use what we have now and try to close the hole allowing someone to specify an invalid key size #if !FEATURE_CORECLR [System.Runtime.InteropServices.ComVisible(true)] #endif // !FEATURE_CORECLR public sealed class KeySizes { private int m_minSize; private int m_maxSize; private int m_skipSize; public int MinSize { get { return m_minSize; } } public int MaxSize { get { return m_maxSize; } } public int SkipSize { get { return m_skipSize; } } public KeySizes(int minSize, int maxSize, int skipSize) { m_minSize = minSize; m_maxSize = maxSize; m_skipSize = skipSize; } } #endif // !SILVERLIGHT #if !SILVERLIGHT [Serializable] [System.Runtime.InteropServices.ComVisible(true)] public class CryptographicException : SystemException { private const int FORMAT_MESSAGE_IGNORE_INSERTS = 0x00000200; private const int FORMAT_MESSAGE_FROM_SYSTEM = 0x00001000; private const int FORMAT_MESSAGE_ARGUMENT_ARRAY = 0x00002000; public CryptographicException() : base(Environment.GetResourceString("Arg_CryptographyException")) { SetErrorCode(__HResults.CORSEC_E_CRYPTO); } public CryptographicException(String message) : base(message) { SetErrorCode(__HResults.CORSEC_E_CRYPTO); } public CryptographicException(String format, String insert) : base(String.Format(CultureInfo.CurrentCulture, format, insert)) { SetErrorCode(__HResults.CORSEC_E_CRYPTO); } public CryptographicException(String message, Exception inner) : base(message, inner) { SetErrorCode(__HResults.CORSEC_E_CRYPTO); } [System.Security.SecuritySafeCritical] // auto-generated public CryptographicException(int hr) : this(Win32Native.GetMessage(hr)) { if ((hr & 0x80000000) != 0x80000000) hr = (hr & 0x0000FFFF) | unchecked((int)0x80070000); SetErrorCode(hr); } #if FEATURE_SERIALIZATION [System.Security.SecuritySafeCritical] // auto-generated protected CryptographicException(SerializationInfo info, StreamingContext context) : base (info, context) {} #endif // FEATURE_SERIALIZATION // This method is only called from inside the VM. private static void ThrowCryptographicException (int hr) { throw new CryptographicException(hr); } } [Serializable()] [System.Runtime.InteropServices.ComVisible(true)] public class CryptographicUnexpectedOperationException : CryptographicException { public CryptographicUnexpectedOperationException() : base() { SetErrorCode(__HResults.CORSEC_E_CRYPTO_UNEX_OPER); } public CryptographicUnexpectedOperationException(String message) : base(message) { SetErrorCode(__HResults.CORSEC_E_CRYPTO_UNEX_OPER); } public CryptographicUnexpectedOperationException(String format, String insert) : base(String.Format(CultureInfo.CurrentCulture, format, insert)) { SetErrorCode(__HResults.CORSEC_E_CRYPTO_UNEX_OPER); } public CryptographicUnexpectedOperationException(String message, Exception inner) : base(message, inner) { SetErrorCode(__HResults.CORSEC_E_CRYPTO_UNEX_OPER); } #if FEATURE_SERIALIZATION [System.Security.SecuritySafeCritical] // auto-generated protected CryptographicUnexpectedOperationException(SerializationInfo info, StreamingContext context) : base (info, context) {} #endif // FEATURE_SERIALIZATION } #endif // !SILVERLIGHT #if SILVERLIGHT // // The cryptography sources are from mscorlib, so they use several constructs which are not available in // non-msocrlib assemblies, such as System.Prototype.dll - where they ship in Silverlight. The following // are shim classes which have the interface of mscorlib constructs, but redirect to their non-mscorlib // equivilents on Silverlight builds. This prevents us from having to put any more #ifdefs in the // source than we necessary. // internal static class Buffer { internal static void InternalBlockCopy(Array source, int sourceOffset, Array destination, int destinationOffset, int count) { global::System.Buffer.BlockCopy(source, sourceOffset, destination, destinationOffset, count); } internal static void BlockCopy(Array source, int sourceOffset, Array destination, int destinationOffset, int count) { global::System.Buffer.BlockCopy(source, sourceOffset, destination, destinationOffset, count); } internal static unsafe void memcpyimpl(byte* src, byte* dest, int len) { // Just use a naive implementation since memcpyimpl isn't available outside mscorlib. for (; len > 0; --len, ++dest, ++src) { *dest = *src; } } } internal static class Environment { internal static OperatingSystem OSVersion { get { return global::System.Environment.OSVersion; } } internal static string GetResourceString(string message) { return SR.GetString(message); } internal static string GetResourceString(string message, params object[] args) { return SR.GetString(message, args); } } #endif } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== //[....] // // // Crypto.cs // namespace System.Security.Cryptography { #if !SILVERLIGHT using Microsoft.Win32; using System.Runtime.Serialization; using System.Globalization; #endif // !SILVERLIGHT // This enum represents cipher chaining modes: cipher block chaining (CBC), // electronic code book (ECB), output feedback (OFB), cipher feedback (CFB), // and ciphertext-stealing (CTS). Not all implementations will support all modes. [Serializable] [System.Runtime.InteropServices.ComVisible(true)] public enum CipherMode { // Please keep in [....] with wincrypt.h CBC = 1, ECB = 2, OFB = 3, CFB = 4, CTS = 5 } // This enum represents the padding method to use for filling out short blocks. // "None" means no padding (whole blocks required). // "PKCS7" is the padding mode defined in RFC 2898, Section 6.1.1, Step 4, generalized // to whatever block size is required. // "Zeros" means pad with zero bytes to fill out the last block. // "ISO 10126" is the same as PKCS5 except that it fills the bytes before the last one with // random bytes. "ANSI X.923" fills the bytes with zeros and puts the number of padding // bytes in the last byte. [Serializable] [System.Runtime.InteropServices.ComVisible(true)] public enum PaddingMode { None = 1, PKCS7 = 2, Zeros = 3, ANSIX923 = 4, ISO10126 = 5 } #if !SILVERLIGHT // This structure is used for returning the set of legal key sizes and // block sizes of the symmetric algorithms. // Note: this class should be sealed, otherwise someone could sub-class it and the read-only // properties we depend on can have setters. Ideally, we should have a struct here (value type) // but we use what we have now and try to close the hole allowing someone to specify an invalid key size #if !FEATURE_CORECLR [System.Runtime.InteropServices.ComVisible(true)] #endif // !FEATURE_CORECLR public sealed class KeySizes { private int m_minSize; private int m_maxSize; private int m_skipSize; public int MinSize { get { return m_minSize; } } public int MaxSize { get { return m_maxSize; } } public int SkipSize { get { return m_skipSize; } } public KeySizes(int minSize, int maxSize, int skipSize) { m_minSize = minSize; m_maxSize = maxSize; m_skipSize = skipSize; } } #endif // !SILVERLIGHT #if !SILVERLIGHT [Serializable] [System.Runtime.InteropServices.ComVisible(true)] public class CryptographicException : SystemException { private const int FORMAT_MESSAGE_IGNORE_INSERTS = 0x00000200; private const int FORMAT_MESSAGE_FROM_SYSTEM = 0x00001000; private const int FORMAT_MESSAGE_ARGUMENT_ARRAY = 0x00002000; public CryptographicException() : base(Environment.GetResourceString("Arg_CryptographyException")) { SetErrorCode(__HResults.CORSEC_E_CRYPTO); } public CryptographicException(String message) : base(message) { SetErrorCode(__HResults.CORSEC_E_CRYPTO); } public CryptographicException(String format, String insert) : base(String.Format(CultureInfo.CurrentCulture, format, insert)) { SetErrorCode(__HResults.CORSEC_E_CRYPTO); } public CryptographicException(String message, Exception inner) : base(message, inner) { SetErrorCode(__HResults.CORSEC_E_CRYPTO); } [System.Security.SecuritySafeCritical] // auto-generated public CryptographicException(int hr) : this(Win32Native.GetMessage(hr)) { if ((hr & 0x80000000) != 0x80000000) hr = (hr & 0x0000FFFF) | unchecked((int)0x80070000); SetErrorCode(hr); } #if FEATURE_SERIALIZATION [System.Security.SecuritySafeCritical] // auto-generated protected CryptographicException(SerializationInfo info, StreamingContext context) : base (info, context) {} #endif // FEATURE_SERIALIZATION // This method is only called from inside the VM. private static void ThrowCryptographicException (int hr) { throw new CryptographicException(hr); } } [Serializable()] [System.Runtime.InteropServices.ComVisible(true)] public class CryptographicUnexpectedOperationException : CryptographicException { public CryptographicUnexpectedOperationException() : base() { SetErrorCode(__HResults.CORSEC_E_CRYPTO_UNEX_OPER); } public CryptographicUnexpectedOperationException(String message) : base(message) { SetErrorCode(__HResults.CORSEC_E_CRYPTO_UNEX_OPER); } public CryptographicUnexpectedOperationException(String format, String insert) : base(String.Format(CultureInfo.CurrentCulture, format, insert)) { SetErrorCode(__HResults.CORSEC_E_CRYPTO_UNEX_OPER); } public CryptographicUnexpectedOperationException(String message, Exception inner) : base(message, inner) { SetErrorCode(__HResults.CORSEC_E_CRYPTO_UNEX_OPER); } #if FEATURE_SERIALIZATION [System.Security.SecuritySafeCritical] // auto-generated protected CryptographicUnexpectedOperationException(SerializationInfo info, StreamingContext context) : base (info, context) {} #endif // FEATURE_SERIALIZATION } #endif // !SILVERLIGHT #if SILVERLIGHT // // The cryptography sources are from mscorlib, so they use several constructs which are not available in // non-msocrlib assemblies, such as System.Prototype.dll - where they ship in Silverlight. The following // are shim classes which have the interface of mscorlib constructs, but redirect to their non-mscorlib // equivilents on Silverlight builds. This prevents us from having to put any more #ifdefs in the // source than we necessary. // internal static class Buffer { internal static void InternalBlockCopy(Array source, int sourceOffset, Array destination, int destinationOffset, int count) { global::System.Buffer.BlockCopy(source, sourceOffset, destination, destinationOffset, count); } internal static void BlockCopy(Array source, int sourceOffset, Array destination, int destinationOffset, int count) { global::System.Buffer.BlockCopy(source, sourceOffset, destination, destinationOffset, count); } internal static unsafe void memcpyimpl(byte* src, byte* dest, int len) { // Just use a naive implementation since memcpyimpl isn't available outside mscorlib. for (; len > 0; --len, ++dest, ++src) { *dest = *src; } } } internal static class Environment { internal static OperatingSystem OSVersion { get { return global::System.Environment.OSVersion; } } internal static string GetResourceString(string message) { return SR.GetString(message); } internal static string GetResourceString(string message, params object[] args) { return SR.GetString(message, args); } } #endif } // 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
- GeometryCollection.cs
- TrackBarRenderer.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- _FixedSizeReader.cs
- CommandHelpers.cs
- DateTimeParse.cs
- GridPattern.cs
- ByteStreamGeometryContext.cs
- PackageDocument.cs
- IsolatedStorageSecurityState.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- FunctionImportMapping.cs
- Converter.cs
- JournalEntryStack.cs
- ZipIOCentralDirectoryBlock.cs
- NativeMethods.cs
- TcpClientCredentialType.cs
- XmlDataSource.cs
- DrawingCollection.cs
- EntityDataSourceWizardForm.cs
- WindowsListViewSubItem.cs
- EqualityArray.cs
- EntityTypeBase.cs
- LinqMaximalSubtreeNominator.cs
- TrackingStringDictionary.cs
- ScriptResourceHandler.cs
- NetworkAddressChange.cs
- ReadWriteControlDesigner.cs
- ManagementObject.cs
- WebPartDisplayModeEventArgs.cs
- ConnectionStringsExpressionEditor.cs
- MenuItem.cs
- DataControlFieldCell.cs
- Popup.cs
- DBConcurrencyException.cs
- EditorResources.cs
- Buffer.cs
- PageBuildProvider.cs
- RangeExpression.cs
- TypeUnloadedException.cs
- Vector.cs
- MenuItemCollection.cs
- OletxDependentTransaction.cs
- TextMarkerSource.cs
- ConfigurationSectionGroup.cs
- JavaScriptSerializer.cs
- Misc.cs
- QilScopedVisitor.cs
- HandlerBase.cs
- TabControlCancelEvent.cs
- CompensationTokenData.cs
- IndependentAnimationStorage.cs
- xml.cs
- ClientTargetCollection.cs
- OdbcConnectionPoolProviderInfo.cs
- SoapAttributeAttribute.cs
- PowerModeChangedEventArgs.cs
- UserControl.cs
- UserControlParser.cs
- SourceElementsCollection.cs
- TableLayout.cs
- XmlConverter.cs
- AudienceUriMode.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- ProxyWebPartConnectionCollection.cs
- AxisAngleRotation3D.cs
- FileSecurity.cs
- XsdDateTime.cs
- ItemsControlAutomationPeer.cs
- Stylesheet.cs
- DelegatingHeader.cs
- TextComposition.cs
- SecurityChannelFactory.cs
- AspProxy.cs
- DocumentApplicationJournalEntry.cs
- BuildDependencySet.cs
- DifferencingCollection.cs
- TemplateField.cs
- Win32SafeHandles.cs
- oledbmetadatacollectionnames.cs
- AsyncPostBackErrorEventArgs.cs
- WebResourceUtil.cs
- SID.cs
- UriTemplateTableMatchCandidate.cs
- ProvidePropertyAttribute.cs
- TableLayoutPanel.cs
- SevenBitStream.cs
- GenericsInstances.cs
- DataSetFieldSchema.cs
- BuildManagerHost.cs
- MenuItemBinding.cs
- TrackingProfileDeserializationException.cs
- InstanceContext.cs
- TextRangeEditLists.cs
- ResizeGrip.cs
- Point3DCollectionValueSerializer.cs
- PackWebResponse.cs
- SqlCommandSet.cs
- CodeParameterDeclarationExpression.cs
- SevenBitStream.cs