26class GlobalConfiguration;
36 std::unique_ptr<T>
createIPA(
const char *name, uint32_t minVersion,
39 IPAModule *m = module(name, minVersion, maxVersion);
43 auto proxy = [&]() -> std::unique_ptr<T> {
44 if (isSignatureValid(m))
45 return std::make_unique<typename T::Threaded>(m, cm_);
47 return std::make_unique<typename T::Isolated>(m, cm_);
50 if (!proxy->isValid()) {
66 void parseDir(
const char *libDir,
unsigned int maxDepth,
67 std::vector<std::string> &files);
68 unsigned int addDir(
const char *libDir,
unsigned int maxDepth = 0);
70 IPAModule *module(
const char *name, uint32_t minVersion,
73 bool isSignatureValid(
IPAModule *ipa)
const;
76 std::vector<std::unique_ptr<IPAModule>> modules_;
79 static const uint8_t publicKeyData_[];
80 static const PubKey pubKey_;
Provide access and manage all cameras in the system.
Definition camera_manager.h:25
Manager for IPA modules.
Definition ipa_manager.h:30
static const PubKey & pubKey()
Retrieve the IPA module signing public key.
Definition ipa_manager.h:59
std::unique_ptr< T > createIPA(const char *name, uint32_t minVersion, uint32_t maxVersion)
Create an IPA proxy that matches a given pipeline handler.
Definition ipa_manager.h:36
Wrapper around IPA module shared object.
Definition ipa_module.h:22
Public key wrapper for signature verification.
Definition pub_key.h:22
Image Processing Algorithm interface.
Image Processing Algorithm module information.
#define LOG_DECLARE_CATEGORY(name)
Declare a category of log messages.
Definition log.h:51
#define LOG(category, severity)
Log a message.
Definition log.h:155
Top-level libcamera namespace.
Definition backtrace.h:17
Public key signature verification.