Botan 2.1.0 Crypto and TLS for C++11

- Main Page
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

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

`#include <data_src.h>`

Inheritance diagram for Botan::DataSource:

## Public Member Functions
virtual bool | check_available (size_t n)=0
| DataSource ()=default
| DataSource (const DataSource &)=delete
size_t | discard_next (size_t N)
virtual bool | end_of_data () const =0
virtual size_t | get_bytes_read () const =0
virtual std::string | id () const
DataSource & | operator= (const DataSource &)=delete
virtual size_t | peek (uint8_t out[], size_t length, size_t peek_offset) const BOTAN_WARN_UNUSED_RESULT=0
size_t | peek_byte (uint8_t &out) const
virtual size_t | read (uint8_t out[], size_t length) BOTAN_WARN_UNUSED_RESULT=0
size_t | read_byte (uint8_t &out)
virtual | ~DataSource ()=default

## Detailed Description

This class represents an abstract data source object.

Definition at line 21 of file data_src.h.

## Constructor & Destructor Documentation

Botan::DataSource::DataSource | ( |  | ) |
| default

virtual Botan::DataSource::~DataSource | ( |  | ) |
| virtual default

Botan::DataSource::DataSource | ( | const DataSource & |  | ) |
| delete

## Member Function Documentation

virtual bool Botan::DataSource::check_available | ( | size_t | n | ) |
| pure virtual

Implemented in Botan::Pipe, Botan::DataSource_Stream, Botan::DataSource_Memory, and Botan::SecureQueue.

Referenced by Botan::BER_Decoder::get_next_object().

size_t Botan::DataSource::discard_next | ( | size_t | N | ) |

Discard the next N bytes of the data

Parameters

  N | the number of bytes to discard

Returns
  number of bytes actually discarded

Definition at line 38 of file data_src.cpp.

References Botan::CT::min(), and read().

39 {
40 uint8_t buf[64] = { 0 };
41 size_t discarded = 0;
42
43 while(n)
44 {
45 const size_t got = this->read(buf, std::min(n, sizeof(buf)));
46 discarded += got;
47 n -= got;
48
49 if(got == 0)
50 break;
51 }
52
53 return discarded;
54 }
Botan::DataSource::read
virtual size_t read(uint8_t out[], size_t length) BOTAN_WARN_UNUSED_RESULT=0
Botan::CT::min
T min(T a, T b)
Definition: ct_utils.h:180

virtual bool Botan::DataSource::end_of_data | ( |  | ) | const
| pure virtual

Test whether the source still has data that can be read.

Returns
  true if there is still data to read, false otherwise

Implemented in Botan::Pipe, Botan::DataSource_Stream, Botan::DataSource_Memory, and Botan::SecureQueue.

Referenced by Botan::BER_Decoder::end_cons(), Botan::BER_Decoder::more_items(), Botan::BER_Decoder::verify_end(), and Botan::Pipe::write().

virtual size_t Botan::DataSource::get_bytes_read | ( |  | ) | const
| pure virtual

Returns
  number of bytes read so far.

Implemented in Botan::Pipe, Botan::DataSource_Stream, Botan::DataSource_Memory, and Botan::SecureQueue.

virtual std::string Botan::DataSource::id | ( |  | ) | const
| inline virtual

return the id of this data source

Returns
  std::string representing the id of this data source

Reimplemented in Botan::DataSource_Stream.

Definition at line 59 of file data_src.h.

59 { return ""; }

DataSource& Botan::DataSource::operator= | ( | const DataSource & |  | ) |
| delete

virtual size_t Botan::DataSource::peek | ( | uint8_t | out[],
|  | size_t | length,
|  | size_t | peek_offset
| ) |  | const
| pure virtual

Read from the source but do not modify the internal offset. Consecutive calls to peek() will return portions of the source starting at the same position.

Parameters

  out | the byte array to write the output to
  length | the length of the byte array out
  peek_offset | the offset into the stream to read at

Returns
  length in bytes that was actually read and put into out

Implemented in Botan::Pipe, Botan::DataSource_Stream, Botan::DataSource_Memory, and Botan::SecureQueue.

Referenced by Botan::PEM_Code::matches(), and peek_byte().

size_t Botan::DataSource::peek_byte | ( | uint8_t & | out | ) | const

Peek at one byte.

Parameters

  out | an output byte

Returns
  length in bytes that was actually read and put into out

Definition at line 30 of file data_src.cpp.

References peek().

Referenced by Botan::ASN1::maybe_BER().

31 {
32 return peek(&out, 1, 0);
33 }
Botan::DataSource::peek
virtual size_t peek(uint8_t out[], size_t length, size_t peek_offset) const BOTAN_WARN_UNUSED_RESULT=0

virtual size_t Botan::DataSource::read | ( | uint8_t | out[],
|  | size_t | length
| ) |  |
| pure virtual

Read from the source. Moves the internal offset so that every call to read will return a new portion of the source.

Parameters

  out | the byte array to write the result to
  length | the length of the byte array out

Returns
  length in bytes that was actually read and put into out

Implemented in Botan::Pipe, Botan::DataSource_Stream, Botan::DataSource_Memory, and Botan::SecureQueue.

Referenced by discard_next(), Botan::BER_Decoder::get_next_object(), read_byte(), and Botan::Pipe::write().

size_t Botan::DataSource::read_byte | ( | uint8_t & | out | ) |

Read one byte.

Parameters

  out | the byte to read to

Returns
  length in bytes that was actually read and put into out

Definition at line 22 of file data_src.cpp.

References read().

Referenced by Botan::PEM_Code::decode(), Botan::BER_Decoder::discard_remaining(), Botan::ASN1::maybe_BER(), and Botan::BER_Decoder::raw_bytes().

23 {
24 return read(&out, 1);
25 }
Botan::DataSource::read
virtual size_t read(uint8_t out[], size_t length) BOTAN_WARN_UNUSED_RESULT=0

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

- src/lib/utils/data_src.h
- src/lib/utils/data_src.cpp