libfilezilla
Loading...
Searching...
No Matches
jws.hpp
Go to the documentation of this file.
1#ifndef LIBFILEZILLA_JWS_HEADER
2#define LIBFILEZILLA_JWS_HEADER
3
8#include "json.hpp"
9
10namespace fz {
11class logger_interface;
12
14enum class jwk_type {
16 ecdsa,
17
19 rsa
20};
21
26std::pair<json, json> FZ_PUBLIC_SYMBOL create_jwk(jwk_type t = jwk_type::ecdsa);
27
28std::pair<json, json> FZ_PUBLIC_SYMBOL jwk_from_x509_privkey(std::string_view const& data, bool pem = true, logger_interface * logger = nullptr);
29
41json FZ_PUBLIC_SYMBOL jws_sign_flattened(json const& priv, json const& payload, json const& extra_protected = {});
42
43std::string FZ_PUBLIC_SYMBOL create_jwt(json const& priv, json const& payload, json extra_protected = {});
44}
45
46#endif
json parser/builder
Definition json.hpp:31
Abstract interface for logging strings.
Definition logger.hpp:51
Simple json parser/builder.
The namespace used by libfilezilla.
Definition apply.hpp:17
jwk_type
Algorithm of JWKs.
Definition jws.hpp:14
@ ecdsa
EC key type with P-256 as algorithm.
@ rsa
RSA key.
std::pair< json, json > create_jwk(jwk_type t=jwk_type::ecdsa)
Creates a JWK pair.
json jws_sign_flattened(json const &priv, json const &payload, json const &extra_protected={})
Create a JWS, with optional protected data.