libfilezilla
Classes | Namespaces | Enumerations | Functions
signature.hpp File Reference

Signature scheme using Ed25519. More...

#include "libfilezilla.hpp"
#include <vector>
#include <string>
Include dependency graph for signature.hpp:

Go to the source code of this file.

Classes

class  public_verification_key
 Represents a public key to verify messages signed using Ed25519. More...
 
class  private_signing_key
 Represents a private key to sign message with using Ed25519. More...
 

Namespaces

 fz
 The namespace used by libfilezilla.
 

Enumerations

enum  { signature_size = 64 }
 

Functions

std::vector< uint8_t > sign (std::vector< uint8_t > const &message, private_signing_key const &priv, bool include_message=true)
 Returns the message with the signature appended, created using the passed private key.
 
std::vector< uint8_t > sign (std::string_view const &message, private_signing_key const &priv, bool include_message=true)
 
std::vector< uint8_t > sign (uint8_t const *message, size_t const size, private_signing_key const &priv, bool include_message=true)
 
bool verify (std::vector< uint8_t > const &message, public_verification_key const &pub)
 Verify a message with attached signature. Returns true iff it has been signed by the private key corresponding to the passed public key.
 
bool verify (std::string_view const &message, public_verification_key const &pub)
 
bool verify (uint8_t const *message, size_t const size, public_verification_key const &pub)
 
bool verify (std::vector< uint8_t > const &message, std::vector< uint8_t > const &signature, public_verification_key const &pub)
 Verify a message with detached signature. Returns true iff it has been signed by the private key corresponding to the passed public key.
 
bool verify (std::string_view const &message, std::string_view const &signature, public_verification_key const &pub)
 
bool verify (uint8_t const *message, size_t const message_size, uint8_t const *signature, size_t const sig_size, public_verification_key const &pub)
 

Detailed Description

Signature scheme using Ed25519.

See RFC 8032 for the X22519 specs.