CSharpTest.Net
CSharpTest.Net.Crypto Namespace
See Also  Inheritance Hierarchy Send Feedback Download Help File
CSharpTest.Net.Library Assembly : CSharpTest.Net.Crypto Namespace

Glossary Item Box

Classes

 ClassDescription
ClassAESCryptoKey Provides AES-256 bit encryption using a global IV (Init vector) based on the current process' entry assembly.
ClassAsciiEncoder This class has been moved to CSharpTest.Net.Formatting.Safe64Encoding
ClassAsymmetricKey Provides the ability to encrypt and decrypt block-transform data
ClassBinaryComparer Dictionary comparer for comparing arrays of bytes by value equality
ClassCryptoKey Base class for encryption/decryption classes
ClassEncryption Maintains backwards compatibility for access to the encryption api
ClassHash Represents a comparable, sortable, hash code
ClassHashDerivedBytes<THash> Provided an implementation very similiar to that of the Rfc2898DeriveBytes with the following excpetions: 1) any hash size can be used, 2) original key bytes are always hashed, 3) bytes generated are always rounded to hash size, thus GetBytes(4) + GetBytes(4) != GetBytes(8)
ClassHashStream Represents a writtable stream for computing the hash value without retaining the data
ClassLocalHostKey Provides access to local machine and local user encryption via the ProtectedData class
ClassModifiedRijndael This class is provided to essentially unlock the Rijndael algorithm from the constraints imposed by the AES standards. The Rijndael algorithm here supports a wider length of key sizes and allows users to explicitly set the number of rounds. This class is fully AES compliant when used with key sizes of 16, 24, or 32 bytes with rounds of 10, 12, and 14 respectivly.
ClassPassword Stores an encrypted version of the supplied password in memory so that it can be provided as clear-text to external systems.
ClassPassword.EqualityComparer Implements the equality comparer
ClassPasswordHash Creates a salted hash
ClassPasswordKey Creates an in-memory object that can be used for salted password encryption without storing the password in memory (based on Rfc2898DeriveBytes, SHA1 hash of password is stored)
ClassPBKDF2 Provided an implementation of Rfc2898DeriveBytes accessable via the IPasswordDerivedBytes interface. One primary difference in GetBytes() ensures that the number of bytes generated are always rounded to hash size, thus GetBytes(4) + GetBytes(4) != GetBytes(8)
ClassRSAPrivateKey Provides a wrapper around encrypting/decrypting with public/private key pairs from Certificats or CSP
ClassRSAPublicKey Provides a wrapper around encrypting with public keys from Certificats or CSP
ClassRtlProcessKey Provides the ability to encrypt and decrypt data accessable by the current process only, requires
ClassSalt Represents a random sequence of bytes used to combine with hash and encryption values to provide an extra level of security.
ClassSaltedData Represents the combination of Salt and Data together
ClassSecureStringStream Allows you to stream raw bytes from a secure string, use UTF16 to decode text
ClassSecureStringUtils Various utility methods for access to secure strings. Lets be real about this before you go off, SecureString is NOT secure, it obfuscated. If your in the process you can access it's contents; however, if you looking at a crash dump or swap file then the SecureString provides value... just not much ;) So these methods are actually my attempt to get people to USE a SecureString or similar class (i.e. Password) rather than continuing to use plain text strings. Hopefully with the ease of access within the process we can provide better security without.
ClassSecureTransfer SecureTransfer is a static class that contains two user types, Sender and Receiver. Each provide one-half of a secure file transfer protocol. The security is based on pre-shared public keys used to sign all messages between the client and server. Additionally these keys are used durring the session negotiation to exchange a 256-bit session key. The session key is combined with a random salt for each message to produce an AES-256 cryptographic key. The file content is then tranfered with this session key.
ClassSecureTransfer.BeginTransferEventArgs Event args that provides details about the start of a transfer
ClassSecureTransfer.BytesReceivedEventArgs Event args that provides details about the contents of a transfer
ClassSecureTransfer.Client Provides a file transfer handler for the client-side of file transfers.
ClassSecureTransfer.CompleteTransferEventArgs Event args that provides details about the completion of a transfer
ClassSecureTransfer.DownloadBytesEventArgs Event args that provides details about the contents of a transfer
ClassSecureTransfer.Server Provides a file transfer handler for the server-side (receiver) of file transfers.
ClassUnicodeReader Bufferless stream reader for Unicode data
ClassWhirlpoolManaged The Whirlpool hashing function. References The Whirlpool algorithm was developed by Paulo S. L. M. Barreto and Vincent Rijmen. See P.S.L.M. Barreto, V. Rijmen, ``The Whirlpool hashing function,'' NESSIE submission, 2000 (tweaked version, 2001), https://www.cosic.esat.kuleuven.ac.be/nessie/workshop/submissions/whirlpool.zip @author Paulo S.L.M. Barreto @author Vincent Rijmen. ============================================================================= .Net Coversion on May 2010 by Roger O Knapp http://csharptest.net Performance considerations: coult be improved by moving to unmanaged/unsafe implementations, currently SHA512 is about 10% faster. The code remains, as much as was possible, exactly as it appears in the example 'c' implementation available from the documentation package on http://www.larc.usp.br/~pbarreto/WhirlpoolPage.html ============================================================================= @version 3.0 (2003.03.12) ============================================================================= Differences from version 2.1: - Suboptimal diffusion matrix replaced by cir(1, 1, 4, 1, 8, 5, 2, 9). ============================================================================= Differences from version 2.0: - Generation of ISO/IEC 10118-3 test vectors. - Bug fix: nonzero carry was ignored when tallying the data length (this bug apparently only manifested itself when feeding data in pieces rather than in a single chunk at once). - Support for MS Visual C++ 64-bit integer arithmetic. Differences from version 1.0: - Original S-box replaced by the tweaked, hardware-efficient version. ============================================================================= THIS SOFTWARE IS PROVIDED BY THE AUTHORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Interfaces

 InterfaceDescription
InterfaceIEncryptDecrypt A simple interface for encrypting and decrypting strings, obtain an instance through the static Encryption inteface calss.
InterfaceIPasswordDerivedBytes Provides an interface for abstracting the password derivation routine used for password key derivation

Delegates

 DelegateDescription
DelegateSecureTransfer.Client.TransmitMessageAction Provides the transmission of a stream of bytes to the server/receiver and returns the result stream

Enumerations

 EnumerationDescription
EnumerationSalt.Size Size of a salt-key in bits

See Also

Generated with Document! X 2011 by Innovasys