SymmetricAlgorithm

SymmetricAlgorithm class

Symmetric algorithm using same key for encryption and decryption base class. Objects of this class should only be allocated using System::MakeObject() function. Never create instance of this type on stack or using operator new, as it will result in runtime errors and/or assertion faults. Always wrap this class into System::SmartPtr pointer and use this pointer to pass it to functions as argument.

class SymmetricAlgorithm : public virtual System::Object

Methods

MethodDescription
static SharedPtr<SymmetricAlgorithm> Create(const String&)Creates algorithm instance.
virtual SharedPtr<ICryptoTransform> CreateDecryptor()Creates decryptor with parameters associated with algorithm object.
virtual SharedPtr<ICryptoTransform> CreateDecryptor(System::ArrayPtr<uint8_t>, System::ArrayPtr<uint8_t>)Creates decryptor with explicit parameters.
virtual SharedPtr<ICryptoTransform> CreateEncryptor()Creates encryptor with parameters associated with algorithm object.
virtual SharedPtr<ICryptoTransform> CreateEncryptor(System::ArrayPtr<uint8_t>, System::ArrayPtr<uint8_t>)Creates encryptor with explicit parameters.
virtual bool Equals(ptr)Compares objects using C# Object.Equals semantics.
static std::enable_if<IsSmartPtr<T1>::value&&IsSmartPtr<T2>::value, bool>::type Equals(T1 const&, T2 const&)Compares reference type objects in C# style.
static std::enable_if<!IsSmartPtr<T1>::value&&!IsSmartPtr<T2>::value, bool>::type Equals(T1 const&, T2 const&)Compares value type objects in C# style.
static bool Equals(float const&, float const&)Emulates C#-style floating point comparison where two NaNs are considered equal even though according to IEC 60559:1989 NaN is not equal to any value, including NaN.
static bool Equals(double const&, double const&)Emulates C#-style floating point comparison where two NaNs are considered equal even though according to IEC 60559:1989 NaN is not equal to any value, including NaN.
virtual bool FastCast(const Details::FastRttiBase&, void **) constFor internal purposes only.
virtual void GenerateIV()Generates random initial value for the algorithm. Overrides existing one (if any).
virtual void GenerateKey()Generates random key for the algorithm. Overrides existing one (if any).
virtual int get_BlockSize()Gets block size of cryptographic operation.
virtual int get_FeedbackSize()Gets feedback size of cryptographic operation.
virtual System::ArrayPtr<uint8_t> get_IV()Gets initial value of cryptographic operation. Creates new if not created yet.
virtual System::ArrayPtr<uint8_t> get_Key()Gets key of cryptographic operation. Creates new if not created yet.
virtual int get_KeySize()Gets key size of cryptographic operation.
virtual CipherMode get_Mode()Gets mode of cryptographic operation.
virtual PaddingMode get_Padding()Gets padding of cryptographic operation.
Detail::SmartPtrCounter * GetCounter()Gets reference counter data structure associated with the object.
virtual int32_t GetHashCode() constAnalog of C# Object.GetHashCode() method. Enables hashing of custom objects.
virtual const TypeInfo& GetType() constGets actual type of object. Analog of C# System.Object.GetType() call.
virtual bool Is(const TypeInfo&) constCheck if object represents an instance of type described by targetType. Analog of C# ‘is’ operator.
void Lock()Implements C# lock() statement locking. Call directly or use LockContext sentry object.
virtual ptr MemberwiseClone() constAnalog of C# Object.MemberwiseClone() method. Enables cloning custom types.
Object()Creates object. Initializes all internal data structures.
Object(Object const&)Copy constructor. Doesn’t copy anything, really, just initializes new object and enables copy constructing subclasses.
Object& operator=(Object const&)Assignment operator. Doesn’t copy anything, really, just initializes new object and enables copy constructing subclasses.
static bool ReferenceEquals(ptr const&, ptr const&)Compares objects by reference.
static std::enable_if<!IsSmartPtr<T>::value, bool>::type ReferenceEquals(T const&, T const&)Compares objects by reference.
static std::enable_if<!IsSmartPtr<T>::value, bool>::type ReferenceEquals(T const&, std::nullptr_t)Reference-compares value type object with nullptr.
bool ReferenceEquals(String const&, std::nullptr_t)Specialization of Object::ReferenceEquals for case of string and nullptr.
bool ReferenceEquals(String const&, String const&)Specialization of Object::ReferenceEquals for case of strings.
int RemovedSharedRefs(int)Decreases shared reference count by specified value.
virtual void set_BlockSize(int)Sets block size of cryptographic operation.
virtual void set_FeedbackSize(int)Sets feedback size of cryptographic operation.
virtual void set_IV(System::ArrayPtr<uint8_t>)Sets initial value of cryptographic operation.
virtual void set_Key(System::ArrayPtr<uint8_t>)Sets key of cryptographic operation.
virtual void set_KeySize(int)Sets key size of cryptographic operation.
virtual void set_Mode(CipherMode)Sets mode of cryptographic operation.
virtual void set_Padding(PaddingMode)Sets padding of cryptographic operation.
virtual void SetTemplateWeakPtr(uint32_t)Set n’th template argument a weak pointer (rather than shared). Allows switching pointers in containers to weak mode.
int SharedCount() constGets current value of shared reference counter.
Object * SharedRefAdded()Increments shared reference count. Shouldn’t be called directly; instead, use smart pointers or ThisProtector.
int SharedRefRemovedSafe()Decrements and returns shared reference count. Shouldn’t be called directly; instead, use smart pointers or ThisProtector.
virtual String ToString() constAnalog of C# Object.ToString() method. Enables converting custom objects to string.
static const TypeInfo& Type()Implements C# typeof(System.Object) construct.
void Unlock()Implements C# lock() statement unlocking. Call directly or use LockContext sentry object.
bool ValidKeySize(int)Checks if key size is valid.
Detail::SmartPtrCounter * WeakRefAdded()Increments weak reference count. Shouldn’t be called directly; instead, use smart pointers or ThisProtector.
void WeakRefRemoved()Decrements weak reference count. Shouldn’t be called directly; instead, use smart pointers or ThisProtector.
virtual ~Object()Destroys object. Frees all internal data structures.

See Also