LibLogicalAccess  2.5.0
An Open Source RFID Library
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | List of all members
logicalaccess::openssl::SymmetricCipher Class Referenceabstract

A symmetric cipher. More...

#include <symmetric_cipher.hpp>

Inheritance diagram for logicalaccess::openssl::SymmetricCipher:
logicalaccess::openssl::OpenSSLSymmetricCipher logicalaccess::openssl::AESCipher logicalaccess::openssl::DESCipher

Public Member Functions

virtual ~SymmetricCipher ()
 Destructor.
 
virtual void cipher (const ByteVector &src, ByteVector &dest, const SymmetricKey &key, const InitializationVector &iv, bool padding)=0
 Cipher a buffer.
 
void cipher (const ByteVector &src, ByteVector &dest, const SymmetricKey &key)
 
void cipher (const ByteVector &src, ByteVector &dest, const ByteVector &key, const ByteVector &iv={})
 
virtual void decipher (const ByteVector &src, ByteVector &dest, const SymmetricKey &key, const InitializationVector &iv, bool padding)=0
 Decipher a buffer.
 
void decipher (const ByteVector &src, ByteVector &dest, const SymmetricKey &key)
 
void decipher (const ByteVector &src, ByteVector &dest, const ByteVector &key, const ByteVector &iv={})
 
virtual unsigned char getBlockSize () const =0
 

Detailed Description

A symmetric cipher.

Constructor & Destructor Documentation

◆ ~SymmetricCipher()

logicalaccess::openssl::SymmetricCipher::~SymmetricCipher ( )
virtual

Destructor.

This is required for the compiler to properly generate RTTI information. Do not remove, and do not inline.

Member Function Documentation

◆ cipher() [1/3]

void logicalaccess::openssl::SymmetricCipher::cipher ( const ByteVector src,
ByteVector dest,
const ByteVector key,
const ByteVector iv = {} 
)

◆ cipher() [2/3]

void logicalaccess::openssl::SymmetricCipher::cipher ( const ByteVector src,
ByteVector dest,
const SymmetricKey key 
)

◆ cipher() [3/3]

virtual void logicalaccess::openssl::SymmetricCipher::cipher ( const ByteVector src,
ByteVector dest,
const SymmetricKey key,
const InitializationVector iv,
bool  padding 
)
pure virtual

Cipher a buffer.

Parameters
srcThe buffer to cipher.
destThe ciphered buffer.
keyThe key to use.
ivThe initialisation vector.
paddingWhether to use padding. In case of a failure, the call throw an InvalidCallException.

Implemented in logicalaccess::openssl::OpenSSLSymmetricCipher.

◆ decipher() [1/3]

void logicalaccess::openssl::SymmetricCipher::decipher ( const ByteVector src,
ByteVector dest,
const ByteVector key,
const ByteVector iv = {} 
)

◆ decipher() [2/3]

void logicalaccess::openssl::SymmetricCipher::decipher ( const ByteVector src,
ByteVector dest,
const SymmetricKey key 
)

◆ decipher() [3/3]

virtual void logicalaccess::openssl::SymmetricCipher::decipher ( const ByteVector src,
ByteVector dest,
const SymmetricKey key,
const InitializationVector iv,
bool  padding 
)
pure virtual

Decipher a buffer.

Parameters
srcThe buffer to decipher.
destThe deciphered buffer.
keyThe key to use.
ivThe initialisation vector.
paddingWhether to use padding. In case of a failure, the call throw a InvalidCallException.

Implemented in logicalaccess::openssl::OpenSSLSymmetricCipher.

◆ getBlockSize()

virtual unsigned char logicalaccess::openssl::SymmetricCipher::getBlockSize ( ) const
pure virtual

The documentation for this class was generated from the following files: