summaryrefslogtreecommitdiff
path: root/crc.h
diff options
context:
space:
mode:
Diffstat (limited to 'crc.h')
-rw-r--r--crc.h20
1 files changed, 16 insertions, 4 deletions
diff --git a/crc.h b/crc.h
index cc0e05e8..af33c593 100644
--- a/crc.h
+++ b/crc.h
@@ -30,10 +30,16 @@ public:
void Update(const byte *input, size_t length);
void TruncatedFinal(byte *hash, size_t size);
unsigned int DigestSize() const {return DIGESTSIZE;}
- CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() {return "CRC32";}
- std::string AlgorithmName() const {return StaticAlgorithmName();}
+ CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() {return "CRC32";}
+ std::string AlgorithmName() const {return StaticAlgorithmName();}
+ /// \brief Updates a CRC with additional input
+ /// \param b the additional input as a byte
void UpdateByte(byte b) {m_crc = m_tab[CRC32_INDEX(m_crc) ^ b] ^ CRC32_SHIFTED(m_crc);}
+
+ /// \brief Retrieves the i-th byte of the CRC
+ /// \param i the additional input as a byte
+ /// \return the byte at the i-th position
byte GetCrcByte(size_t i) const {return reinterpret_cast<const byte *>(&m_crc)[i];}
std::string AlgorithmProvider() const;
@@ -57,10 +63,16 @@ public:
void Update(const byte *input, size_t length);
void TruncatedFinal(byte *hash, size_t size);
unsigned int DigestSize() const {return DIGESTSIZE;}
- CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() {return "CRC32C";}
- std::string AlgorithmName() const {return StaticAlgorithmName();}
+ CRYPTOPP_STATIC_CONSTEXPR const char* StaticAlgorithmName() {return "CRC32C";}
+ std::string AlgorithmName() const {return StaticAlgorithmName();}
+ /// \brief Updates a CRC with additional input
+ /// \param b the additional input as a byte
void UpdateByte(byte b) {m_crc = m_tab[CRC32_INDEX(m_crc) ^ b] ^ CRC32_SHIFTED(m_crc);}
+
+ /// \brief Retrieves the i-th byte of the CRC
+ /// \param i the additional input as a byte
+ /// \return the byte at the i-th position
byte GetCrcByte(size_t i) const {return reinterpret_cast<const byte *>(&m_crc)[i];}
std::string AlgorithmProvider() const;