// TODO KEY_MC_RSP_UNSIGNED_EXTENSIONS_OUTPUT
}
-void MakeCredentialResponse::Notify(IMessageObserver &observer)
-{
- observer.HandleMakeCredentialResponse(*this);
-}
-
void GetAssertionResponse::Deserialize(BufferView &input)
{
CtapResponse::Deserialize(input);
*/
}
-void GetAssertionResponse::Notify(IMessageObserver &observer)
-{
- observer.HandleGetAssertionResponse(*this);
-}
-
void PostHandshakeResponse::Deserialize(BufferView &input)
{
auto helper = CborParsing::Parser::Create(input.data(), input.size());
THROW_UNKNOWN("Wrong handshake signature length "
<< m_linkData->m_handshakeSignature.size());
}
-
-void UpdateMessage::Notify(IMessageObserver &observer) { observer.HandleUpdateMessage(*this); }
#include <unordered_map>
#include <webauthn-types.h>
-class IMessageObserver;
-
enum class MessageType : uint8_t {
SHUTDOWN = 0, // sent only by the client
CTAP = 1, // CTAP2 command
const wauthn_pubkey_cred_request_options_s &m_options;
};
-class IIncomingNotifyingMessage : public IIncomingMessage {
-public:
- virtual void Notify(IMessageObserver &observer) = 0;
-};
-
// Contains status code (1B) | CBOR map
-class CtapResponse : public IIncomingNotifyingMessage {
+class CtapResponse : public IIncomingMessage {
public:
void Deserialize(BufferView &input) override;
class MakeCredentialResponse : public CtapResponse {
public:
void Deserialize(BufferView &input) override;
- void Notify(IMessageObserver &observer) override;
Buffer m_attestationObject;
std::string m_format;
class GetAssertionResponse : public CtapResponse {
public:
void Deserialize(BufferView &input) override;
- void Notify(IMessageObserver &observer) override;
Buffer m_credentialId;
Buffer m_signature;
};
// Contains only CBOR map
-class UpdateMessage : public IIncomingNotifyingMessage {
+class UpdateMessage : public IIncomingMessage {
public:
void Deserialize(BufferView &input) override;
- void Notify(IMessageObserver &observer) override;
struct LinkData {
Buffer m_contactId;
std::optional<LinkData> m_linkData;
};
-class IMessageObserver {
-public:
- virtual void HandleMakeCredentialResponse(const MakeCredentialResponse &response) = 0;
- virtual void HandleGetAssertionResponse(const GetAssertionResponse &response) = 0;
- virtual void HandleUpdateMessage(const UpdateMessage &response) = 0;
- virtual ~IMessageObserver() = default;
-};
-
void ValidateDomain(const char *rpId);