RadioShuttle Lib for the STM32 L4 Heltec Board
Dependents: Turtle_RadioShuttle
RadioSecurityInterface.h
- Committer:
- Helmut Tschemernjak
- Date:
- 2019-04-14
- Revision:
- 13:591254bed18b
- Parent:
- 0:0c31756924a2
File content as of revision 13:591254bed18b:
/*
* The file is licensed under the Apache License, Version 2.0
* (c) 2019 Helmut Tschemernjak
* 30826 Garbsen (Hannover) Germany
*/
class RadioSecurityInterface {
public:
virtual ~RadioSecurityInterface() { }
/*
* Get security protocol version to allow
* and differentiate between multiple security versions
*/
virtual int GetSecurityVersion(void) = 0;
/*
* The block size for the hash code (e.g. SHA256) in bytes
*/
virtual int GetHashBlockSize(void) = 0;
/*
* The calculation for the public password hash code utilizes a seed (e.g. random)
* and the cleartext password
*/
virtual void HashPassword(void *seed, int seedLen, void *password, int pwLen, void *hashResult) = 0;
/*
* The encryption/decryption block size in bytes (e.g. 16 bytes for AES128)
*/
virtual int GetEncryptionBlockSize(void) = 0;
/*
* The creation of a context allocates the memory needed, and initializes
* its data (e.g. key and initial vector 'iv' for AES)
*/
virtual void *CreateEncryptionContext(void *key, int keyLen, void *seed = NULL, int seedlen = 0) = 0;
/*
* Release the context and its allocated memory from CreateEncryptionContext
*/
virtual void DestroyEncryptionContext(void *context) = 0;
/*
*Encrypts a cleartext input message into an encrypted output block
*/
virtual void EncryptMessage(void *context, const void *input, void *output, int len) = 0;
/*
* Decrypts an input block into an cleartext output message
*/
virtual void DecryptMessage(void *context, const void *input, void *output, int len) = 0;
virtual void EncryptTest(void) = 0;
};
Helmut Tschemernjak