Botan 2.19.5 Crypto and TLS for C&

Public Member Functions | List of all members
Botan::Buffered_Computation Class Referenceabstract

`#include <buf_comp.h>`

Inheritance diagram for Botan::Buffered_Computation:

## Public Member Functions
secure_vector< uint8_t > | final ()
template<typename Alloc >
void | final (std::vector< uint8_t, Alloc > &out)
void | final (uint8_t out[])
std::vector< uint8_t > | final_stdvec ()
virtual size_t | output_length () const =0
secure_vector< uint8_t > | process (const secure_vector< uint8_t > &in)
secure_vector< uint8_t > | process (const std::string &in)
secure_vector< uint8_t > | process (const std::vector< uint8_t > &in)
secure_vector< uint8_t > | process (const uint8_t in[], size_t length)
void | update (const secure_vector< uint8_t > &in)
void | update (const std::string &str)
void | update (const std::vector< uint8_t > &in)
void | update (const uint8_t in[], size_t length)
void | update (uint8_t in)
void | update_be (uint16_t val)
void | update_be (uint32_t val)
void | update_be (uint64_t val)
void | update_le (uint16_t val)
void | update_le (uint32_t val)
void | update_le (uint64_t val)
virtual | ~Buffered_Computation ()

## Detailed Description

This class represents any kind of computation which uses an internal state, such as hash functions or MACs

Definition at line 20 of file buf_comp.h.

## Constructor & Destructor Documentation

## ◆ ~Buffered_Computation()

virtual Botan::Buffered_Computation::~Buffered_Computation | ( |  | ) |
| inline virtual

Definition at line 160 of file buf_comp.h.

160{}

## Member Function Documentation

## ◆ final() [1/3]

secure_vector< uint8_t > Botan::Buffered_Computation::final | ( |  | ) |
| inline

Complete the computation and retrieve the final result.

Returns
  secure_vector holding the result

Definition at line 90 of file buf_comp.h.

91 {
92 secure_vector<uint8_t> output(output_length());
93 final_result(output.data());
94 return output;
95 }
Botan::Buffered_Computation::output_length
virtual size_t output_length() const =0

## ◆ final() [2/3]

template<typename Alloc >

void Botan::Buffered_Computation::final | ( | std::vector< uint8_t, Alloc > & | out | ) |
| inline

Definition at line 105 of file buf_comp.h.

106 {
107 out.resize(output_length());
108 final_result(out.data());
109 }

## ◆ final() [3/3]

void Botan::Buffered_Computation::final | ( | uint8_t | out[] | ) |
| inline

Complete the computation and retrieve the final result.

Parameters

  out | The byte array to be filled with the result. Must be of length output_length()

Definition at line 83 of file buf_comp.h.

83{ final_result(out); }

Referenced by botan_mac_final(), Botan::ed25519_gen_keypair(), Botan::ed25519_sign(), Botan::ed25519_verify(), Botan::TLS::TLS_CBC_HMAC_AEAD_Encryption::finish(), Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::finish(), and Botan::pbkdf2().

## ◆ final_stdvec()

std::vector< uint8_t > Botan::Buffered_Computation::final_stdvec | ( |  | ) |
| inline

Definition at line 97 of file buf_comp.h.

98 {
99 std::vector<uint8_t> output(output_length());
100 final_result(output.data());
101 return output;
102 }

## ◆ output_length()

virtual size_t Botan::Buffered_Computation::output_length | ( |  | ) | const
| pure virtual

Returns
  length of the output of this function in bytes

Implemented in Botan::BLAKE2b, Botan::Adler32, Botan::CRC24, Botan::CRC32, Botan::Comb4P, Botan::GOST_34_11, Botan::Keccak_1600, Botan::MD4, Botan::MD5, Botan::Parallel, Botan::RIPEMD_160, Botan::SHA_160, Botan::SHA_224, Botan::SHA_256, Botan::SHA_384, Botan::SHA_512, Botan::SHA_512_256, Botan::SHA_3, Botan::SHAKE_128, Botan::SHAKE_256, Botan::Skein_512, Botan::SM3, Botan::Streebog, Botan::Tiger, Botan::Whirlpool, Botan::CBC_MAC, Botan::CMAC, Botan::GMAC, Botan::HMAC, Botan::Poly1305, Botan::SipHash, and Botan::ANSI_X919_MAC.

Referenced by botan_mac_output_length(), Botan::Tiger::clone(), Botan::pbkdf2(), Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::TLS_CBC_HMAC_AEAD_Mode(), and Botan::MDx_HashFunction::write_count().

## ◆ process() [1/4]

secure_vector< uint8_t > Botan::Buffered_Computation::process | ( | const secure_vector< uint8_t > & | in | ) |
| inline

Update and finalize computation. Does the same as calling update() and final() consecutively.

Parameters

  in | the input to process

Returns
  the result of the call to final()

Definition at line 130 of file buf_comp.h.

131 {
132 add_data(in.data(), in.size());
133 return final();
134 }

## ◆ process() [2/4]

secure_vector< uint8_t > Botan::Buffered_Computation::process | ( | const std::string & | in | ) |
| inline

Update and finalize computation. Does the same as calling update() and final() consecutively.

Parameters

  in | the input to process as a string

Returns
  the result of the call to final()

Definition at line 154 of file buf_comp.h.

155 {
156 update(in);
157 return final();
158 }
Botan::Buffered_Computation::update
void update(const uint8_t in[], size_t length)
Definition: buf_comp.h:33

References update.

## ◆ process() [3/4]

secure_vector< uint8_t > Botan::Buffered_Computation::process | ( | const std::vector< uint8_t > & | in | ) |
| inline

Update and finalize computation. Does the same as calling update() and final() consecutively.

Parameters

  in | the input to process

Returns
  the result of the call to final()

Definition at line 142 of file buf_comp.h.

143 {
144 add_data(in.data(), in.size());
145 return final();
146 }

## ◆ process() [4/4]

secure_vector< uint8_t > Botan::Buffered_Computation::process | ( | const uint8_t | in[],
|  | size_t | length
| ) |  |
| inline

Update and finalize computation. Does the same as calling update() and final() consecutively.

Parameters

  in | the input to process as a byte array
  length | the length of the byte array

Returns
  the result of the call to final()

Definition at line 118 of file buf_comp.h.

119 {
120 add_data(in, length);
121 return final();
122 }

## ◆ update() [1/5]

void Botan::Buffered_Computation::update | ( | const secure_vector< uint8_t > & | in | ) |
| inline

Add new input to process.

Parameters

  in | the input to process as a secure_vector

Definition at line 39 of file buf_comp.h.

40 {
41 add_data(in.data(), in.size());
42 }

## ◆ update() [2/5]

void Botan::Buffered_Computation::update | ( | const std::string & | str | ) |
| inline

Add new input to process.

Parameters

  str | the input to process as a std::string. Will be interpreted as a byte array based on the strings encoding.

Definition at line 66 of file buf_comp.h.

67 {
68 add_data(cast_char_ptr_to_uint8(str.data()), str.size());
69 }
Botan::cast_char_ptr_to_uint8
const uint8_t * cast_char_ptr_to_uint8(const char *s)
Definition: mem_ops.h:190

References Botan::cast_char_ptr_to_uint8().

## ◆ update() [3/5]

void Botan::Buffered_Computation::update | ( | const std::vector< uint8_t > & | in | ) |
| inline

Add new input to process.

Parameters

  in | the input to process as a std::vector

Definition at line 48 of file buf_comp.h.

49 {
50 add_data(in.data(), in.size());
51 }

## ◆ update() [4/5]

void Botan::Buffered_Computation::update | ( | const uint8_t | in[],
|  | size_t | length
| ) |  |
| inline

Add new input to process.

Parameters

  in | the input to process as a byte array
  length | of param in in bytes

Definition at line 33 of file buf_comp.h.

33{ add_data(in, length); }

Referenced by botan_mac_update(), Botan::ed25519_gen_keypair(), Botan::ed25519_sign(), Botan::ed25519_verify(), Botan::TLS::TLS_CBC_HMAC_AEAD_Encryption::finish(), Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::finish(), and Botan::pbkdf2().

## ◆ update() [5/5]

void Botan::Buffered_Computation::update | ( | uint8_t | in | ) |
| inline

Process a single byte.

Parameters

  in | the byte to process

Definition at line 75 of file buf_comp.h.

75{ add_data(&in, 1); }

## ◆ update_be() [1/3]

void Botan::Buffered_Computation::update_be | ( | uint16_t | val | ) |

Definition at line 12 of file buf_comp.cpp.

13 {
14 uint8_t inb[sizeof(val)];
15 store_be(val, inb);
16 add_data(inb, sizeof(inb));
17 }
Botan::store_be
void store_be(uint16_t in, uint8_t out[2])
Definition: loadstor.h:438

References Botan::store_be().

Referenced by Botan::pbkdf2().

## ◆ update_be() [2/3]

void Botan::Buffered_Computation::update_be | ( | uint32_t | val | ) |

Definition at line 19 of file buf_comp.cpp.

20 {
21 uint8_t inb[sizeof(val)];
22 store_be(val, inb);
23 add_data(inb, sizeof(inb));
24 }

References Botan::store_be().

## ◆ update_be() [3/3]

void Botan::Buffered_Computation::update_be | ( | uint64_t | val | ) |

Definition at line 26 of file buf_comp.cpp.

27 {
28 uint8_t inb[sizeof(val)];
29 store_be(val, inb);
30 add_data(inb, sizeof(inb));
31 }

References Botan::store_be().

## ◆ update_le() [1/3]

void Botan::Buffered_Computation::update_le | ( | uint16_t | val | ) |

Definition at line 33 of file buf_comp.cpp.

34 {
35 uint8_t inb[sizeof(val)];
36 store_le(val, inb);
37 add_data(inb, sizeof(inb));
38 }
Botan::store_le
void store_le(uint16_t in, uint8_t out[2])
Definition: loadstor.h:454

References Botan::store_le().

## ◆ update_le() [2/3]

void Botan::Buffered_Computation::update_le | ( | uint32_t | val | ) |

Definition at line 40 of file buf_comp.cpp.

41 {
42 uint8_t inb[sizeof(val)];
43 store_le(val, inb);
44 add_data(inb, sizeof(inb));
45 }

References Botan::store_le().

## ◆ update_le() [3/3]

void Botan::Buffered_Computation::update_le | ( | uint64_t | val | ) |

Definition at line 47 of file buf_comp.cpp.

48 {
49 uint8_t inb[sizeof(val)];
50 store_le(val, inb);
51 add_data(inb, sizeof(inb));
52 }

References Botan::store_le().

The documentation for this class was generated from the following files:

- src/lib/base/buf_comp.h
- src/lib/base/buf_comp.cpp