ptth/bare_minimum_crypto/cpp/signing_key.h

34 lines
704 B
C++

#pragma once
#include <optional>
#include <stdint.h>
#include <vector>
#include "expiring_signature.h"
#include "time_helpers.h"
namespace BareMinimumCrypto {
using namespace std;
class SigningKey {
vector <uint8_t> pk;
vector <uint8_t> sk;
public:
SigningKey ();
//static optional <SigningKey> generate_to_file
vector <uint8_t> pubkey () const;
vector <uint8_t> pub_to_msgpack () const;
optional <ExpiringSignature> sign (
const vector <uint8_t> & payload,
TimeRange tr
) const;
optional <ExpiringSignature> sign_key (const SigningKey & k, Instant now) const;
optional <ExpiringSignature> sign_data (const vector <uint8_t> & v, Instant now) const;
};
}