Credential Store
An overridden CredentialStore object, which is needed for authenticating the messages, needs to be implemented in both controllers.
protected override CredentialStore CredentialStore { get; } = new CredentialStore("private_key", "public_key");
The CredentialStore object must be initialized correctly, and the parameters must be entered in the correct order. Otherwise, messages will not be processed correctly due to Verification errors. As long as this object is implemented, the abstract controller methods will handle all signature verification automatically.