cxxmcp 1.1.6
C++ MCP SDK
Loading...
Searching...
No Matches
jwk.hpp File Reference

OpenSSL conversion helpers for public JSON Web Keys. More...

#include <openssl/bn.h>
#include <openssl/core_names.h>
#include <openssl/evp.h>
#include <openssl/obj_mac.h>
#include <openssl/param_build.h>
#include <memory>
#include <optional>
#include <string>
#include <string_view>
#include <utility>
#include <vector>
#include "cxxmcp/auth/jwks.hpp"
#include "cxxmcp/auth/openssl/base64url.hpp"
#include "cxxmcp/core/result.hpp"

Go to the source code of this file.

Classes

struct  mcp::auth::openssl::detail::BignumDeleter
 
struct  mcp::auth::openssl::detail::EvpPkeyDeleter
 
struct  mcp::auth::openssl::detail::EvpPkeyCtxDeleter
 
struct  mcp::auth::openssl::detail::OssParamBldDeleter
 
struct  mcp::auth::openssl::detail::OssParamDeleter
 
struct  mcp::auth::openssl::OpenSslPublicKey
 

Typedefs

using mcp::auth::openssl::detail::BignumPtr = std::unique_ptr< BIGNUM, BignumDeleter >
 
using mcp::auth::openssl::detail::EvpPkeyPtr = std::unique_ptr< EVP_PKEY, EvpPkeyDeleter >
 
using mcp::auth::openssl::detail::EvpPkeyCtxPtr = std::unique_ptr< EVP_PKEY_CTX, EvpPkeyCtxDeleter >
 
using mcp::auth::openssl::detail::OssParamBldPtr = std::unique_ptr< OSSL_PARAM_BLD, OssParamBldDeleter >
 
using mcp::auth::openssl::detail::OssParamPtr = std::unique_ptr< OSSL_PARAM, OssParamDeleter >
 
using mcp::auth::openssl::EvpPkeyPtr = detail::EvpPkeyPtr
 

Functions

core::Result< BignumPtr > mcp::auth::openssl::detail::jwk_bignum_from_base64url (const std::optional< std::string > &value, const char *name)
 
core::Result< std::vector< unsigned char > > mcp::auth::openssl::detail::jwk_bytes_from_base64url (const std::optional< std::string > &value, const char *name, std::size_t expected_size)
 
core::Result< BignumPtr > mcp::auth::openssl::detail::evp_pkey_bignum_param (EVP_PKEY *key, const char *name)
 
std::vector< unsigned char > mcp::auth::openssl::detail::bignum_to_bytes (const BIGNUM *value)
 
core::Result< std::vector< unsigned char > > mcp::auth::openssl::detail::bignum_to_fixed_bytes (const BIGNUM *value, std::size_t size)
 
const char * mcp::auth::openssl::detail::ec_group_name_for_jose_algorithm (std::string_view algorithm, std::string_view curve)
 
std::size_t mcp::auth::openssl::detail::ec_coordinate_size_for_jose_algorithm (std::string_view algorithm)
 
core::Result< EvpPkeyPtr > mcp::auth::openssl::detail::evp_pkey_from_params (const char *key_type, OSSL_PARAM *params)
 
core::Result< OpenSslPublicKeymcp::auth::openssl::rsa_public_key_from_jwk (const JsonWebKey &jwk, std::string algorithm)
 
core::Result< OpenSslPublicKeymcp::auth::openssl::ec_public_key_from_jwk (const JsonWebKey &jwk, std::string algorithm)
 
core::Result< OpenSslPublicKeymcp::auth::openssl::public_key_from_jwk (const JsonWebKey &jwk, std::optional< std::string > required_algorithm={})
 
core::Result< JsonWebKeymcp::auth::openssl::public_jwk_from_evp_pkey (EVP_PKEY *key, std::string algorithm, std::optional< std::string > key_id={})
 

Detailed Description

OpenSSL conversion helpers for public JSON Web Keys.