|
@@ -14,12 +14,15 @@ class AudioChunk {
|
|
|
private:
|
|
|
/**
|
|
|
* @brief Calculates a correct IV by performing bignum addition.
|
|
|
- *
|
|
|
+ *
|
|
|
* @param num Number to add to IV.
|
|
|
- * @return std::vector<uint8_t>
|
|
|
+ * @return std::vector<uint8_t>
|
|
|
*/
|
|
|
std::vector<uint8_t> getIVSum(uint32_t num);
|
|
|
|
|
|
+ size_t decryptedCount = 0;
|
|
|
+ size_t oldStartPos;
|
|
|
+
|
|
|
public:
|
|
|
std::unique_ptr<Crypto> crypto;
|
|
|
std::vector<uint8_t> decryptedData;
|
|
@@ -41,14 +44,21 @@ public:
|
|
|
std::unique_ptr<WrappedSemaphore> isLoadedSemaphore;
|
|
|
|
|
|
/**
|
|
|
- * @brief
|
|
|
+ * @brief
|
|
|
*/
|
|
|
std::unique_ptr<WrappedSemaphore> isHeaderFileSizeLoadedSemaphore;
|
|
|
|
|
|
+ /**
|
|
|
+ * Decrypts data and writes it to the target buffer
|
|
|
+ * @param target data buffer to write to
|
|
|
+ * @param offset data offset
|
|
|
+ * @param nbytes number of bytes to read
|
|
|
+ */
|
|
|
+ void readData(uint8_t *target, size_t offset, size_t nbytes);
|
|
|
|
|
|
/**
|
|
|
* @brief AudioChunk handles all audiochunk related operations.
|
|
|
- *
|
|
|
+ *
|
|
|
* @param seqId Sequence id of requested chunk
|
|
|
* @param audioKey Audio key used for decryption of audio data
|
|
|
* @param startPosition Start position of current chunk in audio file
|
|
@@ -59,16 +69,16 @@ public:
|
|
|
|
|
|
/**
|
|
|
* @brief Appends incoming chunked data to local cache.
|
|
|
- *
|
|
|
+ *
|
|
|
* @param data encrypted binary audio data.
|
|
|
*/
|
|
|
void appendData(const std::vector<uint8_t> &data);
|
|
|
|
|
|
/**
|
|
|
- * @brief Performs AES CTR decryption of received data.
|
|
|
- *
|
|
|
+ * @brief Sets loaded status on the chunk
|
|
|
+ *
|
|
|
*/
|
|
|
- void decrypt();
|
|
|
+ void finalize();
|
|
|
};
|
|
|
|
|
|
#endif
|