OtaUpgrade::EncryptedStream Class Reference
Encryption wrapper for BasicStream. More...
#include <EncryptedStream.h>
Inheritance diagram for OtaUpgrade::EncryptedStream:
Collaboration diagram for OtaUpgrade::EncryptedStream:
Public Member Functions | |
EncryptedStream ()=default | |
size_t | write (const uint8_t *data, size_t size) override |
Process an arbitrarily sized chunk of an encrypted OTA upgrade file. More... | |
Public Member Functions inherited from OtaUpgrade::BasicStream | |
BasicStream () | |
bool | hasError () const |
Returns true if an error happened during the upgrade process. More... | |
uint16_t | readMemoryBlock (char *data, int bufSize) override |
Read a block of memory. More... | |
virtual int | available () override |
Return the total length of the stream. More... | |
bool | isFinished () override |
Check if all data has been read. More... | |
Public Member Functions inherited from ReadWriteStream | |
size_t | write (uint8_t charToWrite) override |
From Stream class: We don't write using this stream. More... | |
virtual size_t | copyFrom (IDataSourceStream *source, size_t size=SIZE_MAX) |
Copy data from a source stream. More... | |
virtual size_t | write (uint8_t c)=0 |
Writes a single character to output stream. More... | |
size_t | write (const char *str) |
Writes a c-string to output stream. More... | |
virtual size_t | write (const uint8_t *buffer, size_t size) |
Writes characters from a buffer to output stream. More... | |
size_t | write (const char *buffer, size_t size) |
Writes characters from a buffer to output stream. More... | |
Public Member Functions inherited from IDataSourceStream | |
virtual StreamType | getStreamType () const |
Get the stream type. More... | |
virtual bool | isValid () const |
Determine if the stream object contains valid data. More... | |
size_t | readBytes (char *buffer, size_t length) override |
Read chars from stream into buffer. More... | |
int | read () override |
Read one character and moves the stream pointer. More... | |
int | peek () override |
Read a character without advancing the stream pointer. More... | |
virtual int | seekFrom (int offset, SeekOrigin origin) |
Change position in stream. More... | |
virtual bool | seek (int len) |
Move read cursor. More... | |
void | flush () override |
virtual String | id () const |
Returns unique id of the resource. More... | |
virtual String | getName () const |
Returns name of the resource. More... | |
virtual MimeType | getMimeType () const |
Get MIME type for stream content. More... | |
String | readString (size_t maxLen) override |
Overrides Stream method for more efficient reading. More... | |
virtual bool | moveString (String &s) |
Memory-based streams may be able to move content into a String. More... | |
virtual size_t | readBytes (char *buffer, size_t length) |
Read chars from stream into buffer. More... | |
size_t | readBytes (uint8_t *buffer, size_t length) |
Public Member Functions inherited from Stream | |
Stream () | |
void | setTimeout (unsigned long timeout) |
Set maximum milliseconds to wait for stream data, default is 1 second. More... | |
bool | find (const char *target) |
Read data from the stream until the target string is found. More... | |
bool | find (const char *target, size_t length) |
Read data from the stream until the target string of given length is found. More... | |
bool | findUntil (const char *target, const char *terminator) |
As find() but search ends if the terminator string is found. More... | |
bool | findUntil (const char *target, size_t targetLen, const char *terminate, size_t termLen) |
As findUntil(const char*, const char*) but search ends if the terminate string is found. More... | |
long | parseInt () |
Returns the first valid (long) integer value from the current position. More... | |
float | parseFloat () |
float version of parseInt More... | |
size_t | readBytes (uint8_t *buffer, size_t length) |
size_t | readBytesUntil (char terminator, char *buffer, size_t length) |
As readBytes() with terminator character. More... | |
String | readStringUntil (char terminator) |
virtual int | indexOf (char c) |
Public Member Functions inherited from Print | |
virtual | ~Print () |
int | getWriteError () |
Gets last error. More... | |
void | clearWriteError () |
Clears the last write error. More... | |
size_t | write (const char *str) |
Writes a c-string to output stream. More... | |
size_t | write (const char *buffer, size_t size) |
Writes characters from a buffer to output stream. More... | |
size_t | print (char c) |
Prints a single character to output stream. More... | |
size_t | print (const char str[]) |
Prints a c-string to output stream. More... | |
size_t | print (double num, int digits=2) |
Print a floating-point number to output stream. More... | |
template<typename T > | |
std::enable_if< has_printTo< T >::value, size_t >::type | print (const T &obj) |
Prints a Printable object to output stream. More... | |
size_t | print (const String &s) |
Prints a String to output stream. More... | |
template<typename E > | |
std::enable_if< std::is_enum< E >::value &&!std::is_convertible< E, int >::value, size_t >::type | print (E value) |
enums can be printed as strings provided they have a toString(E) implementation. More... | |
size_t | println () |
Prints a newline to output stream. More... | |
template<typename... Args> | |
size_t | println (const Args &... args) |
Print value plus newline to output stream. More... | |
size_t | printf (const char *fmt,...) |
Prints a formatted c-string to output stream. More... | |
size_t | print (unsigned long num, uint8_t base=DEC) |
template<typename... Args> | |
size_t | print (unsigned long num, Args... args) |
template<typename... Args> | |
size_t | print (const unsigned long long &num, Args... args) |
size_t | print (long num, uint8_t base=DEC) |
template<typename... Args> | |
size_t | print (long num, Args... args) |
template<typename... Args> | |
size_t | print (const long long &num, Args... args) |
template<typename... Args> | |
size_t | print (unsigned int num, Args... args) |
template<typename... Args> | |
size_t | print (unsigned char num, Args... args) |
template<typename... Args> | |
size_t | print (int num, Args... args) |
Additional Inherited Members | |
Public Types inherited from OtaUpgrade::BasicStream | |
enum class | Error { None , InvalidFormat , UnsupportedData , DecryptionFailed , NoRomFound , RomTooLarge , DowngradeNotAllowed , VerificationFailed , FlashWriteFailed , RomActivationFailed , OutOfMemory , Internal } |
Error code values. More... | |
Public Attributes inherited from OtaUpgrade::BasicStream | |
Error | errorCode = Error::None |
Error code. Only relevant if hasError() returns true . More... | |
Protected Member Functions inherited from OtaUpgrade::BasicStream | |
void | setError (Error ec) |
Protected Member Functions inherited from Stream | |
int | timedRead () |
int | timedPeek () |
int | peekNextDigit () |
returns the next numeric digit in the stream or -1 if timeout More... | |
long | parseInt (char skipChar) |
Like regular parseInt() but the given skipChar is ignored. More... | |
float | parseFloat (char skipChar) |
Like parseInt(skipChar) for float. More... | |
Protected Member Functions inherited from Print | |
void | setWriteError (int err=1) |
Protected Attributes inherited from Stream | |
uint16_t | receiveTimeout = 1000 |
number of milliseconds to wait for the next char before aborting timed read More... | |
Detailed Description
Encryption wrapper for BasicStream.
The class processes encrypted firmware upgrade files created by otatool.py. A buffer is allocated dynamically to fit the largest chunk of the encryption container (2kB unless otatool.py was modified). The actual processing of the decrypted data is deferred to BasicStream.
Constructor & Destructor Documentation
◆ EncryptedStream()
|
default |
Member Function Documentation
◆ write()
|
overridevirtual |
Process an arbitrarily sized chunk of an encrypted OTA upgrade file.
- Parameters
-
data Pointer to chunk of data. size Size of chunk pointed to by data in bytes.
- Returns
- If less than size, an error occurred. Check
errorCode
for more details.
- Note
- size does not have to match the chunk size used by otatool.py
Reimplemented from OtaUpgrade::BasicStream.
Member Data Documentation
◆ chunkSizeMinusOne
uint16_t OtaUpgrade::EncryptedStream::chunkSizeMinusOne |
◆ header
uint8_t OtaUpgrade::EncryptedStream::header[crypto_secretstream_xchacha20poly1305_HEADERBYTES] |
The documentation for this class was generated from the following file: