Loading...
Searching...
No Matches
lime_crypto_primitives.hpp File Reference

Go to the source code of this file.

## Classes

struct | lime::sBuffer< T >
| auto clean fixed size buffer(std::array based) More...
class | lime::X< Curve, dataType >
| Base buffer definition for Key Exchange data structure. More...
class | lime::Xpair< Curve >
| Key pair structure for key exchange algorithm. More...
class | lime::DSA< Curve, dataType >
| Base buffer definition for DSA data structure. More...
class | lime::DSApair< Curve >
| Key pair structure for DSA algorithm. More...
class | lime::RNG
| Random number generator interface. More...
class | lime::keyExchange< Curve >
| Key exchange interface. More...
class | lime::Signature< Curve >
| Digital Signature interface. More...

## Namespaces

namespace | lime

## Functions

void | lime::cleanBuffer (uint8_t *buffer, size_t size)
| force a buffer values to zero in a way that shall prevent the compiler from optimizing it out
template<typename hashAlgo>
void | lime::HMAC (const uint8_t *const key, const size_t keySize, const uint8_t *const input, const size_t inputSize, uint8_t *hash, size_t hashSize)
| templated HMAC
template<>
void | lime::HMAC< SHA512 > (const uint8_t *const key, const size_t keySize, const uint8_t *const input, const size_t inputSize, uint8_t *hash, size_t hashSize)
template<typename hashAlgo, typename infoType>
void | lime::HMAC_KDF (const std::vector< uint8_t > &salt, const std::vector< uint8_t > &ikm, const infoType &info, uint8_t *okm, size_t okmSize)
| HKDF as described in RFC5869.
template<typename hashAlgo, typename infoType>
void | lime::HMAC_KDF (const uint8_t *const salt, const size_t saltSize, const uint8_t *const ikm, const size_t ikmSize, const infoType &info, uint8_t *output, size_t outputSize)
template<typename AEADAlgo>
void | lime::AEAD_encrypt (const uint8_t *const key, const size_t keySize, const uint8_t *const IV, const size_t IVSize, const uint8_t *const plain, const size_t plainSize, const uint8_t *const AD, const size_t ADSize, uint8_t *tag, const size_t tagSize, uint8_t *cipher)
| Encrypt and tag using scheme given as template parameter.
template<typename AEADAlgo>
bool | lime::AEAD_decrypt (const uint8_t *const key, const size_t keySize, const uint8_t *const IV, const size_t IVSize, const uint8_t *const cipher, const size_t cipherSize, const uint8_t *const AD, const size_t ADSize, const uint8_t *const tag, const size_t tagSize, uint8_t *plain)
| Authenticate and Decrypt using scheme given as template parameter.
template<>
void | lime::AEAD_encrypt< AES256GCM > (const uint8_t *const key, const size_t keySize, const uint8_t *const IV, const size_t IVSize, const uint8_t *const plain, const size_t plainSize, const uint8_t *const AD, const size_t ADSize, uint8_t *tag, const size_t tagSize, uint8_t *cipher)
template<>
bool | lime::AEAD_decrypt< AES256GCM > (const uint8_t *const key, const size_t keySize, const uint8_t *const IV, const size_t IVSize, const uint8_t *const cipher, const size_t cipherSize, const uint8_t *const AD, const size_t ADSize, const uint8_t *const tag, const size_t tagSize, uint8_t *plain)
std::shared_ptr< RNG > | lime::make_RNG ()
template<typename Curve>
std::shared_ptr< keyExchange< Curve > > | lime::make_keyExchange ()
template<typename Curve>
std::shared_ptr< Signature< Curve > > | lime::make_Signature ()
template void | lime::HMAC_KDF< SHA512, std::vector< uint8_t > > (const std::vector< uint8_t > &salt, const std::vector< uint8_t > &ikm, const std::vector< uint8_t > &info, uint8_t *output, size_t outputSize)
template void | lime::HMAC_KDF< SHA512, std::string > (const std::vector< uint8_t > &salt, const std::vector< uint8_t > &ikm, const std::string &info, uint8_t *output, size_t outputSize)
template void | lime::HMAC_KDF< SHA512, std::vector< uint8_t > > (const uint8_t *const salt, const size_t saltSize, const uint8_t *const ikm, const size_t ikmSize, const std::vector< uint8_t > &info, uint8_t *output, size_t outputSize)
template void | lime::HMAC_KDF< SHA512, std::string > (const uint8_t *const salt, const size_t saltSize, const uint8_t *const ikm, const size_t ikmSize, const std::string &info, uint8_t *output, size_t outputSize)