47 const std::span<const uint8_t>& content_,
48 const std::span<const uint8_t>& envelope_,
49 const std::span<const uint8_t>& signature_) :
70 const std::span<const uint8_t>& content_,
71 const std::span<const uint8_t>& envelope_,
72 const std::span<const uint8_t>& signature_,
95 const std::span<const uint8_t>& content_,
96 const std::span<const uint8_t>& envelope_,
97 const std::span<const uint8_t>& signature_,
124 std::optional<std::string> gov_msg_type_ = std::nullopt);
129 const std::shared_ptr<ccf::RpcContext>& ctx,
130 std::string& error_reason)
override;
133 std::shared_ptr<ccf::RpcContext> ctx,
134 std::string&& error_reason)
override;
162 const std::shared_ptr<ccf::RpcContext>& ctx,
163 std::string& error_reason)
override;
178 std::string msg_type_name;
179 std::string msg_created_at_name;
184 virtual std::unique_ptr<UserCOSESign1AuthnIdentity>
_authenticate(
186 const std::shared_ptr<ccf::RpcContext>& ctx,
187 std::string& error_reason);
193 const std::string& msg_type_name_ =
"ccf.msg.type",
194 const std::string& msg_created_at_name_ =
"ccf.msg.created_at") :
195 msg_type_name(msg_type_name_),
196 msg_created_at_name(msg_created_at_name_)
202 const std::shared_ptr<ccf::RpcContext>& ctx,
203 std::string& error_reason)
override;
206 std::shared_ptr<ccf::RpcContext> ctx,
207 std::string&& error_reason)
override;
229 std::string expected_msg_type;
235 const std::string& expected_msg_type_,
236 const std::string& msg_type_name_ =
"ccf.msg.type",
237 const std::string& msg_created_at_name_ =
"ccf.msg.created_at") :
239 expected_msg_type(expected_msg_type_)
244 const std::shared_ptr<ccf::RpcContext>& ctx,
245 std::string& error_reason)
override;
Definition cose_auth.h:154
std::string get_security_scheme_name() override
Definition cose_auth.h:165
std::unique_ptr< AuthnIdentity > authenticate(ccf::kv::ReadOnlyTx &tx, const std::shared_ptr< ccf::RpcContext > &ctx, std::string &error_reason) override
Definition cose_auth.cpp:405
static constexpr auto SECURITY_SCHEME_NAME
Definition cose_auth.h:156
Definition authentication_types.h:28
Definition cose_auth.h:115
std::optional< OpenAPISecuritySchema > get_openapi_security_schema() const override
Definition cose_auth.h:136
static const OpenAPISecuritySchema security_schema
Definition cose_auth.h:117
~MemberCOSESign1AuthnPolicy()
void set_unauthenticated_error(std::shared_ptr< ccf::RpcContext > ctx, std::string &&error_reason) override
Definition cose_auth.cpp:382
static constexpr auto SECURITY_SCHEME_NAME
Definition cose_auth.h:121
std::optional< std::string > gov_msg_type
Definition cose_auth.h:118
std::unique_ptr< AuthnIdentity > authenticate(ccf::kv::ReadOnlyTx &tx, const std::shared_ptr< ccf::RpcContext > &ctx, std::string &error_reason) override
Definition cose_auth.cpp:302
MemberCOSESign1AuthnPolicy(std::optional< std::string > gov_msg_type_=std::nullopt)
Definition cose_auth.cpp:297
std::string get_security_scheme_name() override
Definition cose_auth.h:142
Definition cose_auth.h:227
std::string get_security_scheme_name() override
Definition cose_auth.h:247
std::unique_ptr< AuthnIdentity > authenticate(ccf::kv::ReadOnlyTx &tx, const std::shared_ptr< ccf::RpcContext > &ctx, std::string &error_reason) override
Definition cose_auth.cpp:529
static constexpr auto SECURITY_SCHEME_NAME
Definition cose_auth.h:232
TypedUserCOSESign1AuthnPolicy(const std::string &expected_msg_type_, const std::string &msg_type_name_="ccf.msg.type", const std::string &msg_created_at_name_="ccf.msg.created_at")
Definition cose_auth.h:234
Definition cose_auth.h:177
std::optional< OpenAPISecuritySchema > get_openapi_security_schema() const override
Definition cose_auth.h:209
static const OpenAPISecuritySchema security_schema
Definition cose_auth.h:182
static constexpr auto SECURITY_SCHEME_NAME
Definition cose_auth.h:190
~UserCOSESign1AuthnPolicy()
UserCOSESign1AuthnPolicy(const std::string &msg_type_name_="ccf.msg.type", const std::string &msg_created_at_name_="ccf.msg.created_at")
Definition cose_auth.h:192
void set_unauthenticated_error(std::shared_ptr< ccf::RpcContext > ctx, std::string &&error_reason) override
Definition cose_auth.cpp:506
std::string get_security_scheme_name() override
Definition cose_auth.h:215
std::unique_ptr< AuthnIdentity > authenticate(ccf::kv::ReadOnlyTx &tx, const std::shared_ptr< ccf::RpcContext > &ctx, std::string &error_reason) override
Definition cose_auth.cpp:498
virtual std::unique_ptr< UserCOSESign1AuthnIdentity > _authenticate(ccf::kv::ReadOnlyTx &tx, const std::shared_ptr< ccf::RpcContext > &ctx, std::string &error_reason)
Definition cose_auth.cpp:440
Definition app_interface.h:14
std::pair< std::string, nlohmann::json > OpenAPISecuritySchema
Definition authentication_types.h:23
Definition authentication_types.h:19
Definition cose_auth.h:32
std::span< const uint8_t > content
Definition cose_auth.h:34
std::span< const uint8_t > envelope
Definition cose_auth.h:41
std::span< const uint8_t > signature
Definition cose_auth.h:44
COSESign1AuthnIdentity(const std::span< const uint8_t > &content_, const std::span< const uint8_t > &envelope_, const std::span< const uint8_t > &signature_)
Definition cose_auth.h:46
COSESign1AuthnIdentity()=default
Definition cose_auth.h:59
GovernanceProtectedHeader protected_header
Definition cose_auth.h:67
MemberId member_id
Definition cose_auth.h:61
ccf::crypto::Pem member_cert
Definition cose_auth.h:64
MemberCOSESign1AuthnIdentity(const std::span< const uint8_t > &content_, const std::span< const uint8_t > &envelope_, const std::span< const uint8_t > &signature_, const MemberId &member_id_, const ccf::crypto::Pem &member_cert_, const GovernanceProtectedHeader &protected_header_)
Definition cose_auth.h:69
Definition cose_auth.h:84
ccf::crypto::Pem user_cert
Definition cose_auth.h:89
UserId user_id
Definition cose_auth.h:86
UserCOSESign1AuthnIdentity(const std::span< const uint8_t > &content_, const std::span< const uint8_t > &envelope_, const std::span< const uint8_t > &signature_, const UserId &user_id_, const ccf::crypto::Pem &user_cert_, const TimestampedProtectedHeader &protected_header_)
Definition cose_auth.h:94
TimestampedProtectedHeader protected_header
Definition cose_auth.h:92