Botan: Botan::EME1 Class Reference

Botan 1.10.17

Public Member Functions | List of all members
Botan::EME1 Class Reference

`#include <eme1.h>`

Inheritance diagram for Botan::EME1:

## Public Member Functions
SecureVector< byte > | decode (const byte in[], size_t in_length, size_t key_length) const
SecureVector< byte > | decode (const MemoryRegion< byte > &in, size_t key_length) const
| EME1 (HashFunction *hash, const std::string &P="")
SecureVector< byte > | encode (const byte in[], size_t in_length, size_t key_length, RandomNumberGenerator &rng) const
SecureVector< byte > | encode (const MemoryRegion< byte > &in, size_t key_length, RandomNumberGenerator &rng) const
size_t | maximum_input_size (size_t) const
| ~EME1 ()

## Detailed Description

EME1, aka OAEP

Definition at line 20 of file eme1.h.

## Constructor & Destructor Documentation

## ◆ EME1()

Botan::EME1::EME1 | ( | HashFunction * | hash,
|  | const std::string & | P = `""`
| ) |  |

Parameters

  hash | object to use for hashing (takes ownership)
  P | an optional label. Normally empty.

Definition at line 125 of file eme1.cpp.

References Botan::Buffered_Computation::process().

126 {
127 Phash = hash->process(P);
128 mgf = new MGF1(hash);
129 }

## ◆ ~EME1()

Botan::EME1::~EME1 | ( |  | ) |
| inline

Definition at line 31 of file eme1.h.

31 { delete mgf; }

## Member Function Documentation

## ◆ decode() [1/2]

SecureVector< byte > Botan::EME::decode | ( | const byte | in[],
|  | size_t | in_length,
|  | size_t | key_length
| ) |  | const
| inherited

Decode an input

Parameters

  in | the encoded plaintext
  in_length | length of encoded plaintext in bytes
  key_length | length of the key in bits

Returns
  plaintext

Definition at line 35 of file eme.cpp.

37 {
38 return unpad(msg, msg_len, key_bits);
39 }

## ◆ decode() [2/2]

SecureVector< byte > Botan::EME::decode | ( | const MemoryRegion< byte > & | in,
|  | size_t | key_length
| ) |  | const
| inherited

Decode an input

Parameters

  in | the encoded plaintext
  key_length | length of the key in bits

Returns
  plaintext

Definition at line 44 of file eme.cpp.

References Botan::MemoryRegion< T >::size().

46 {
47 return unpad(&msg[0], msg.size(), key_bits);
48 }

## ◆ encode() [1/2]

SecureVector< byte > Botan::EME::encode | ( | const byte | in[],
|  | size_t | in_length,
|  | size_t | key_length,
|  | RandomNumberGenerator & | rng
| ) |  | const
| inherited

Encode an input

Parameters

  in | the plaintext
  in_length | length of plaintext in bytes
  key_length | length of the key in bits
  rng | a random number generator

Returns
  encoded plaintext

Definition at line 15 of file eme.cpp.

18 {
19 return pad(msg, msg_len, key_bits, rng);
20 }

## ◆ encode() [2/2]

SecureVector< byte > Botan::EME::encode | ( | const MemoryRegion< byte > & | in,
|  | size_t | key_length,
|  | RandomNumberGenerator & | rng
| ) |  | const
| inherited

Encode an input

Parameters

  in | the plaintext
  key_length | length of the key in bits
  rng | a random number generator

Returns
  encoded plaintext

Definition at line 25 of file eme.cpp.

28 {
29 return pad(&msg[0], msg.size(), key_bits, rng);
30 }

## ◆ maximum_input_size()

size_t Botan::EME1::maximum_input_size | ( | size_t | keybits | ) | const
| virtual

Return the maximum input size in bytes we can support

Parameters

  keybits | the size of the key in bits

Returns
  upper bound of input in bytes

Implements Botan::EME.

Definition at line 114 of file eme1.cpp.

References Botan::MemoryRegion< T >::size().

115 {
116 if(keybits / 8 > 2*Phash.size() + 1)
117 return ((keybits / 8) - 2*Phash.size() - 1);
118 else
119 return 0;
120 }
Botan::MemoryRegion::size
size_t size() const
Definition: secmem.h:29

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

- src/pk_pad/eme1/eme1.h
- src/pk_pad/eme1/eme1.cpp