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;
136 [[nodiscard]] std::optional<OpenAPISecuritySchema>
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 std::string msg_type_name_ =
"ccf.msg.type",
194 std::string msg_created_at_name_ =
"ccf.msg.created_at") :
195 msg_type_name(
std::move(msg_type_name_)),
196 msg_created_at_name(
std::move(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;
209 [[nodiscard]] std::optional<OpenAPISecuritySchema>
229 std::string expected_msg_type;
235 std::string expected_msg_type_,
236 std::string msg_type_name_ =
"ccf.msg.type",
237 std::string msg_created_at_name_ =
"ccf.msg.created_at") :
239 std::move(msg_type_name_),
std::move(msg_created_at_name_)),
240 expected_msg_type(
std::move(expected_msg_type_))
245 const std::shared_ptr<ccf::RpcContext>& ctx,
246 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:404
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:137
static const OpenAPISecuritySchema security_schema
Definition cose_auth.h:117
void set_unauthenticated_error(std::shared_ptr< ccf::RpcContext > ctx, std::string &&error_reason) override
Definition cose_auth.cpp:381
~MemberCOSESign1AuthnPolicy() override
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:301
MemberCOSESign1AuthnPolicy(std::optional< std::string > gov_msg_type_=std::nullopt)
Definition cose_auth.cpp:296
std::string get_security_scheme_name() override
Definition cose_auth.h:142
Definition cose_auth.h:227
TypedUserCOSESign1AuthnPolicy(std::string expected_msg_type_, std::string msg_type_name_="ccf.msg.type", std::string msg_created_at_name_="ccf.msg.created_at")
Definition cose_auth.h:234
std::string get_security_scheme_name() override
Definition cose_auth.h:248
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:528
static constexpr auto SECURITY_SCHEME_NAME
Definition cose_auth.h:232
Definition cose_auth.h:177
std::optional< OpenAPISecuritySchema > get_openapi_security_schema() const override
Definition cose_auth.h:210
~UserCOSESign1AuthnPolicy() override
static const OpenAPISecuritySchema security_schema
Definition cose_auth.h:182
static constexpr auto SECURITY_SCHEME_NAME
Definition cose_auth.h:190
void set_unauthenticated_error(std::shared_ptr< ccf::RpcContext > ctx, std::string &&error_reason) override
Definition cose_auth.cpp:505
UserCOSESign1AuthnPolicy(std::string msg_type_name_="ccf.msg.type", std::string msg_created_at_name_="ccf.msg.created_at")
Definition cose_auth.h:192
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:497
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:439
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_, MemberId member_id_, ccf::crypto::Pem member_cert_, GovernanceProtectedHeader protected_header_)
Definition cose_auth.h:69
Definition cose_auth.h:84
UserCOSESign1AuthnIdentity(const std::span< const uint8_t > &content_, const std::span< const uint8_t > &envelope_, const std::span< const uint8_t > &signature_, UserId user_id_, ccf::crypto::Pem user_cert_, TimestampedProtectedHeader protected_header_)
Definition cose_auth.h:94
ccf::crypto::Pem user_cert
Definition cose_auth.h:89
UserId user_id
Definition cose_auth.h:86
TimestampedProtectedHeader protected_header
Definition cose_auth.h:92