Files
external_libcamera/include/libcamera/internal/pub_key.h
Laurent Pinchart 12f48aa65e libcamera: pub_key: Support openssl as an alternative to gnutls
Support verify IPA signatures with openssl as an alternative to gnutls,
to offer more flexibility in the selection of dependencies. Use gnutls
by default, for no specific reason as both are equally well supported.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Tested-by: Eric Curtin <ecurtin@redhat.com>
Reviewed-by: Eric Curtin <ecurtin@redhat.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
2022-08-09 16:05:58 +03:00

41 lines
667 B
C++

/* SPDX-License-Identifier: LGPL-2.1-or-later */
/*
* Copyright (C) 2020, Google Inc.
*
* pub_key.h - Public key signature verification
*/
#pragma once
#include <stdint.h>
#include <libcamera/base/span.h>
#if HAVE_CRYPTO
struct evp_pkey_st;
#elif HAVE_GNUTLS
struct gnutls_pubkey_st;
#endif
namespace libcamera {
class PubKey
{
public:
PubKey(Span<const uint8_t> key);
~PubKey();
bool isValid() const { return valid_; }
bool verify(Span<const uint8_t> data, Span<const uint8_t> sig) const;
private:
bool valid_;
#if HAVE_CRYPTO
struct evp_pkey_st *pubkey_;
#elif HAVE_GNUTLS
struct gnutls_pubkey_st *pubkey_;
#endif
};
} /* namespace libcamera */